Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Два одинковых по названию элента, но разные по структуре / 3 сообщений из 3, страница 1 из 1
07.08.2006, 12:38
    #33902762
Ступор
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два одинковых по названию элента, но разные по структуре
Что-то у меня полный ступор.
Есть XML-документ
Для него никак не могу составить нормальную схему.
Вот его эелементы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE pinnacle_line_feed [
<!ELEMENT PinnacleFeedTime (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT event (event_datetimeGMT, gamenumber,sporttype, league, description?, (participants |  periods | total)+)>
<!ELEMENT event_datetimeGMT (#PCDATA)>
<!ELEMENT gamenumber (#PCDATA)>
<!ELEMENT league (#PCDATA)>
<!ELEMENT odds (moneyline, to_base?)>
<!ELEMENT over_adjust (#PCDATA)>
<!ELEMENT participants (participant*)>
<!ELEMENT participant (participant_name, contestantnum, rotnum, visiting_home_draw?, odds?, pitcher?)>
<!ELEMENT participant_name (#PCDATA)>
<!ELEMENT periods (period*)>
<!ELEMENT period (period_number, period_description, periodcutoff_datetimeGMT, period_status,periodnumber, moneyline, spread, total)>
<!ELEMENT period_number (#PCDATA)>
<!ELEMENT period_description (#PCDATA)>
<!ELEMENT period_status (#PCDATA)>
<!ELEMENT periodnumber (#PCDATA)>
<!ELEMENT periodcutoff_datetimeGMT (#PCDATA)>
<!ELEMENT pinnacle_line_feed (PinnacleFeedTime, events)>
<!ELEMENT events (event*)>
<!ELEMENT pitcher (#PCDATA)>
<!ELEMENT rotnum (#PCDATA)>
<!ELEMENT sporttype (#PCDATA)>
<!ELEMENT moneyline (moneyline_visiting,moneyline_home,moneyline_draw?)>
<!ELEMENT moneyline_visiting (#PCDATA)>
<!ELEMENT moneyline_home (#PCDATA)>
<!ELEMENT moneyline_draw (#PCDATA)>
<!ELEMENT spread (spread_visiting, spread_adjust_visiting, spread_home, spread_adjust_home)>
<!ELEMENT spread_adjust_home (#PCDATA)>
<!ELEMENT spread_adjust_visiting (#PCDATA)>
<!ELEMENT spread_home (#PCDATA)>
<!ELEMENT spread_visiting (#PCDATA)>
<!ELEMENT to_base (#PCDATA)>
<!ELEMENT total (total_points, over_adjust?, under_adjust?, units?)>
<!ELEMENT total_points (#PCDATA)>
<!ELEMENT under_adjust (#PCDATA)>
<!ELEMENT units (#PCDATA)>
<!ELEMENT visiting_home_draw (#PCDATA)>
]>
Есть два одинковых по названию элемента но разные по структуре moneyline .
В первом случае это простой элемент с данными
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<event>
   <event_datetimeGMT> 2006 - 08 - 14   13 : 00 </event_datetimeGMT>
   <sporttype>Tennis</sporttype>
   <league> 151 * Mens US Open. Flushing Meadows: Big  2  (Federer/Nadal) vs Field</league>
   <gamenumber> 73464331 </gamenumber>
   <description>Who Will Win US Open? (Both Must Start Rnd  1 )</description>
   <participants>
   <participant>
      <participant_name>Big  2  (Federer/Nadal)</participant_name>
      <rotnum> 905 </rotnum>
       <contestantnum> 73464400 </contestantnum>
      <odds>
         <moneyline>- 557 </moneyline>
         <to_base> 0 </to_base>
      </odds>
   </participant>
   <participant>
      <participant_name>The Field</participant_name>
      <rotnum> 906 </rotnum>
       <contestantnum> 73464401 </contestantnum>
      <odds>
         <moneyline> 507 </moneyline>
         <to_base> 0 </to_base>
      </odds>
   </participant>
   </participants>
</event>
В другом случае это структурированный элемент moneyline имеющий дочернии элементы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
   <period>
      <periodnumber> 0 </periodnumber>
      <period_description>Game</period_description>
      <periodcutoff_datetimeGMT> 2006 - 09 - 02   23 : 00 </periodcutoff_datetimeGMT>
      <period_status>I</period_status>
      <moneyline>
         <moneyline_visiting>null</moneyline_visiting>
         <moneyline_home>null</moneyline_home>
      </moneyline>
      <spread>
         <spread_visiting>- 10 </spread_visiting>
         <spread_adjust_visiting>- 105 </spread_adjust_visiting>
         <spread_home> 10 </spread_home>
         <spread_adjust_home>- 105 </spread_adjust_home>
      </spread>
      <total>
         <total_points>null</total_points>
         <over_adjust>null</over_adjust>
         <under_adjust>null</under_adjust>
      </total>
   </period>
Вот схема которая у меня получилась на весь документ.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PinnacleFeedTime" type="PinnacleFeedTimeType"/>
  <xs:simpleType name="PinnacleFeedTimeType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="description" type="descriptionType"/>
  <xs:simpleType name="descriptionType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="event" type="eventType"/>
  <xs:complexType name="eventType">
    <xs:sequence>
      <xs:element name="event_datetimeGMT" type="event_datetimeGMTType"/>
      <xs:element name="gamenumber" type="gamenumberType"/>
      <xs:element name="sporttype" type="sporttypeType"/>
      <xs:element name="league" type="leagueType"/>
      <xs:element name="description" type="descriptionType"/>
      <xs:element name="participants" type="participantsType" minOccurs="1" maxOccurs="unbounded"/>
      <xs:element name="periods" type="periodsType" minOccurs="1" maxOccurs="unbounded"/>
      <xs:element name="total" type="totalType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="event_datetimeGMT" type="event_datetimeGMTType"/>
  <xs:simpleType name="event_datetimeGMTType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="gamenumber" type="gamenumberType"/>
  <xs:simpleType name="gamenumberType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="league" type="leagueType"/>
  <xs:simpleType name="leagueType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="odds" type="oddsType"/>
  <xs:complexType name="oddsType">
    <xs:sequence>
      <xs:element name="moneyline" type="moneylineType"/>
      <xs:element name="to_base" type="to_baseType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="over_adjust" type="over_adjustType"/>
  <xs:simpleType name="over_adjustType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="participants" type="participantsType"/>
  <xs:complexType name="participantsType">
    <xs:sequence>
      <xs:element name="participant" type="participantType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="participant" type="participantType"/>
  <xs:complexType name="participantType">
    <xs:sequence>
      <xs:element name="participant_name" type="participant_nameType"/>
      <xs:element name="contestantnum" type="contestantnumType"/>
      <xs:element name="rotnum" type="rotnumType"/>
      <xs:element name="visiting_home_draw" type="visiting_home_drawType"/>
      <xs:element name="odds" type="oddsType"/>
      <xs:element name="pitcher" type="pitcherType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="participant_name" type="participant_nameType"/>
  <xs:simpleType name="participant_nameType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="periods" type="periodsType"/>
  <xs:complexType name="periodsType">
    <xs:sequence>
      <xs:element name="period" type="periodType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="period" type="periodType"/>
  <xs:complexType name="periodType">
    <xs:sequence>
      <xs:element name="period_number" type="period_numberType"/>
      <xs:element name="period_description" type="period_descriptionType"/>
      <xs:element name="periodcutoff_datetimeGMT" type="periodcutoff_datetimeGMTType"/>
      <xs:element name="period_status" type="period_statusType"/>
      <xs:element name="periodnumber" type="periodnumberType"/>
      <xs:element name="moneyline" type="moneylineType"/>
      <xs:element name="spread" type="spreadType"/>
      <xs:element name="total" type="totalType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="period_number" type="period_numberType"/>
  <xs:simpleType name="period_numberType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="period_description" type="period_descriptionType"/>
  <xs:simpleType name="period_descriptionType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="period_status" type="period_statusType"/>
  <xs:simpleType name="period_statusType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="periodnumber" type="periodnumberType"/>
  <xs:simpleType name="periodnumberType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="periodcutoff_datetimeGMT" type="periodcutoff_datetimeGMTType"/>
  <xs:simpleType name="periodcutoff_datetimeGMTType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="pinnacle_line_feed" type="pinnacle_line_feedType"/>
  <xs:complexType name="pinnacle_line_feedType">
    <xs:sequence>
      <xs:element name="PinnacleFeedTime" type="PinnacleFeedTimeType"/>
      <xs:element name="events" type="eventsType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="events" type="eventsType"/>
  <xs:complexType name="eventsType">
    <xs:sequence>
      <xs:element name="event" type="eventType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="pitcher" type="pitcherType"/>
  <xs:simpleType name="pitcherType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="rotnum" type="rotnumType"/>
  <xs:simpleType name="rotnumType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="sporttype" type="sporttypeType"/>
  <xs:simpleType name="sporttypeType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="moneyline" type="moneylineType"/>
  <xs:complexType name="moneylineType">
    <xs:sequence>
      <xs:element name="moneyline_visiting" type="moneyline_visitingType"/>
      <xs:element name="moneyline_home" type="moneyline_homeType"/>
      <xs:element name="moneyline_draw" type="moneyline_drawType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="moneyline_visiting" type="moneyline_visitingType"/>
  <xs:simpleType name="moneyline_visitingType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="moneyline_home" type="moneyline_homeType"/>
  <xs:simpleType name="moneyline_homeType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="moneyline_draw" type="moneyline_drawType"/>
  <xs:simpleType name="moneyline_drawType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="spread" type="spreadType"/>
  <xs:complexType name="spreadType">
    <xs:sequence>
      <xs:element name="spread_visiting" type="spread_visitingType"/>
      <xs:element name="spread_adjust_visiting" type="spread_adjust_visitingType"/>
      <xs:element name="spread_home" type="spread_homeType"/>
      <xs:element name="spread_adjust_home" type="spread_adjust_homeType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="spread_adjust_home" type="spread_adjust_homeType"/>
  <xs:simpleType name="spread_adjust_homeType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="spread_adjust_visiting" type="spread_adjust_visitingType"/>
  <xs:simpleType name="spread_adjust_visitingType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="spread_home" type="spread_homeType"/>
  <xs:simpleType name="spread_homeType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="spread_visiting" type="spread_visitingType"/>
  <xs:simpleType name="spread_visitingType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="to_base" type="to_baseType"/>
  <xs:simpleType name="to_baseType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="total" type="totalType"/>
  <xs:complexType name="totalType">
    <xs:sequence>
      <xs:element name="total_points" type="total_pointsType"/>
      <xs:element name="over_adjust" type="over_adjustType"/>
      <xs:element name="under_adjust" type="under_adjustType"/>
      <xs:element name="units" type="unitsType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="total_points" type="total_pointsType"/>
  <xs:simpleType name="total_pointsType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="under_adjust" type="under_adjustType"/>
  <xs:simpleType name="under_adjustType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="units" type="unitsType"/>
  <xs:simpleType name="unitsType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="visiting_home_draw" type="visiting_home_drawType"/>
  <xs:simpleType name="visiting_home_drawType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:element name="contestantnum" type="contestantnumType"/>
  <xs:simpleType name="contestantnumType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
</xs:schema>
Здесь описывается только один структурированный moneyline . Как описать простой элемент moneyline ?
...
Рейтинг: 0 / 0
07.08.2006, 16:18
    #33903552
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два одинковых по названию элента, но разные по структуре
По-моему такая ситуация недопустима, имя <-> структура однозначны должны быть.
Выход: переименовать один из элементов.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
08.08.2006, 11:39
    #33905008
Ступор
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два одинковых по названию элента, но разные по структуре
LelikkПо-моему такая ситуация недопустима, имя <-> структура однозначны должны быть.
Выход: переименовать один из элементов.

В том-то и дело что я не могу переименовать элементв структуре документа XML. Он экспортируется из за рубежа. Вопрос тогда в другом. В схеме я могу задать два типа для одного элемента но с разными именами?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Два одинковых по названию элента, но разные по структуре / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]