powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Два одинковых по названию элента, но разные по структуре
3 сообщений из 3, страница 1 из 1
Два одинковых по названию элента, но разные по структуре
    #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
Два одинковых по названию элента, но разные по структуре
    #33903552
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему такая ситуация недопустима, имя <-> структура однозначны должны быть.
Выход: переименовать один из элементов.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Два одинковых по названию элента, но разные по структуре
    #33905008
Ступор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelikkПо-моему такая ситуация недопустима, имя <-> структура однозначны должны быть.
Выход: переименовать один из элементов.

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


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