Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Xdocument validate Error Если узлы стоят не в том порядке / 18 сообщений из 18, страница 1 из 1
12.10.2012, 10:12
    #37995022
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Если узлы стоят не в том порядке, то валидация документа не проходит.
Можно ли как-то написать, что бы порядок не учитывался?
...
Рейтинг: 0 / 0
12.10.2012, 12:49
    #37995415
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
/topic/928597
...
Рейтинг: 0 / 0
12.10.2012, 14:02
    #37995614
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
_Vasilisk_/topic/928597


Это не подходит
Вот схема, только порядок мб произвольный у узлов. Как такое сделать:

Код: xml
\r\n<?xml version="1.0" encoding="utf-8" ?>\r\n<!--Created with Liquid XML Studio - 30 Day Trial Edition 7.1.6.1440 (http://www.liquid-technologies.com)-->\r\n<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">\r\n  <xs:element name="billing-log">\r\n    <xs:complexType>\r\n      <xs:sequence>\r\n          <xs:element minOccurs="1" name="log-start-date" type="xs:dateTime" />\r\n          <xs:element minOccurs="1" name="player-name" type="xs:string" />\r\n          <xs:element minOccurs="1" name="schema-version" type="xs:unsignedByte" />\r\n          <xs:element minOccurs="1" name="player-uuid" type="xs:string" />\r\n          <xs:element minOccurs="1" name="log-end-date" type="xs:dateTime" />\r\n        <xs:element minOccurs="1" maxOccurs="unbounded" name="entry">\r\n          <xs:complexType>\r\n            <xs:sequence>\r\n              <xs:element minOccurs="0" name="page" type="xs:string" />\r\n              <xs:element minOccurs="0" name="path" type="xs:string" />\r\n              <xs:element minOccurs="1" name="in" type="xs:dateTime" />\r\n              <xs:element minOccurs="1" name="out" type="xs:dateTime" />\r\n              <xs:element minOccurs="1" name="duration" type="xs:decimal" />\r\n              <xs:element minOccurs="1" name="channel" type="xs:string" />\r\n              <xs:element minOccurs="1" name="frame" type="xs:string" />\r\n              <xs:element minOccurs="1" name="mediaitem-path" type="xs:string" />\r\n              <xs:element minOccurs="0" name="custom" type="xs:string" />\r\n            </xs:sequence>\r\n          </xs:complexType>\r\n        </xs:element>\r\n      </xs:sequence>\r\n    </xs:complexType>\r\n  </xs:element>\r\n</xs:schema>\r\n
\r\n
...
Рейтинг: 0 / 0
12.10.2012, 14:07
    #37995632
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
PavluhaЭто не подходитОбоснуете?
...
Рейтинг: 0 / 0
12.10.2012, 14:09
    #37995638
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
_Vasilisk_PavluhaЭто не подходитОбоснуете?Чем Вам не подошло xsd:all?
...
Рейтинг: 0 / 0
12.10.2012, 14:25
    #37995679
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
_Vasilisk__Vasilisk_пропущено...
Обоснуете?Чем Вам не подошло xsd:all?

maxOccurs="unbounded" нельзя указать
...
Рейтинг: 0 / 0
12.10.2012, 14:36
    #37995707
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Укажите maxOccurs="unbounded" у нужной вам sequence.
...
Рейтинг: 0 / 0
12.10.2012, 14:38
    #37995713
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
PavluhamaxOccurs="unbounded" нельзя указатьА где в Вашей исходной схеме maxOccurs="unbounded"?
...
Рейтинг: 0 / 0
12.10.2012, 14:48
    #37995728
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
_Vasilisk_PavluhamaxOccurs="unbounded" нельзя указатьА где в Вашей исходной схеме maxOccurs="unbounded"?

Код: xml
1.
<xs:element minOccurs="1" maxOccurs="unbounded" name="entry">
...
Рейтинг: 0 / 0
12.10.2012, 15:49
    #37995880
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
AntonariyУкажите maxOccurs="unbounded" у нужной вам sequence.

Указал, не работает. Да и в xsd:all нельзя вкладывать xs:sequence
...
Рейтинг: 0 / 0
12.10.2012, 17:21
    #37996098
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
PavluhaAntonariyУкажите maxOccurs="unbounded" у нужной вам sequence.

Указал, не работает. Да и в xsd:all нельзя вкладывать xs:sequenceЗамените all на sequence, очевидно же. И почитайте для разнообразия документацию по xsd — all предназначено как раз для того, чтобы группа элементов не повторялась.
...
Рейтинг: 0 / 0
15.10.2012, 09:38
    #37997986
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
AntonariyЗамените all на sequence, очевидно же. И почитайте для разнообразия документацию по xsd — all предназначено как раз для того, чтобы группа элементов не повторялась.

Вопрос был о др. Я читал документацию и не нашел, как сделать то, что написал в вопросе.
Ваши же предложенные варианты не работаю, которые я и сам пробовал.
...
Рейтинг: 0 / 0
15.10.2012, 09:54
    #37998014
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
PavluhaAntonariyЗамените all на sequence, очевидно же. И почитайте для разнообразия документацию по xsd — all предназначено как раз для того, чтобы группа элементов не повторялась.

Вопрос был о др. Я читал документацию и не нашел, как сделать то, что написал в вопросе.
Ваши же предложенные варианты не работаю, которые я и сам пробовал.Приведите пример xml, который должен проходить валидацию, а то я перестал понимать, что вам нужно.
...
Рейтинг: 0 / 0
15.10.2012, 10:04
    #37998034
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8" ?>
<billing-log>
  <schema-version>1</schema-version>
  <player-name>PLAYER</player-name>
  <player-uuid>7da60fe7-36ac-4d44-ad0c-c2e19de64f10</player-uuid>
  <log-start-date>2012-09-16T00:00:00+04:00</log-start-date>
  <log-end-date>2012-09-16T23:59:59.999+04:00</log-end-date>
<entry><page>SVk</page><path>Path</path><in>2012-09-15T09:00:00.265+04:00</in><out>2012-09-15T09:00:15.265+04:00</out><duration>15.000</duration><channel>dghgh</channel><frame>New 0</frame><mediaitem-path>path</mediaitem-path><custom>736f4bf8-d0d9-48ab-b64e-84b627a9e843</custom></entry>
</billing-log>



Здесь последовательность изменена, но хмл верный.
Вот так все работает
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="UTF-8" ?>
<billing-log>
  <log-start-date>2012-09-16T00:00:00+04:00</log-start-date>
  <player-name>PLAYER</player-name>
  <schema-version>1</schema-version>
  <player-uuid>7da60fe7-36ac-4d44-ad0c-c2e19de64f10</player-uuid>
  <log-end-date>2012-09-16T23:59:59.999+04:00</log-end-date>
<entry><page>SVk</page><path>Path</path><in>2012-09-15T09:00:00.265+04:00</in><out>2012-09-15T09:00:15.265+04:00</out><duration>15.000</duration><channel>dghgh</channel><frame>New 0</frame><mediaitem-path>path</mediaitem-path><custom>736f4bf8-d0d9-48ab-b64e-84b627a9e843</custom></entry>
</billing-log>
...
Рейтинг: 0 / 0
15.10.2012, 10:13
    #37998055
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Так работают оба. Подходит?
Код: xml
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.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="billing-log">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
          <xs:element minOccurs="1" name="log-start-date" type="xs:dateTime" />
          <xs:element minOccurs="1" name="player-name" type="xs:string" />
          <xs:element minOccurs="1" name="schema-version" type="xs:unsignedByte" />
          <xs:element minOccurs="1" name="player-uuid" type="xs:string" />
          <xs:element minOccurs="1" name="log-end-date" type="xs:dateTime" />
        <xs:element minOccurs="1" maxOccurs="unbounded" name="entry">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="page" type="xs:string" />
              <xs:element minOccurs="0" name="path" type="xs:string" />
              <xs:element minOccurs="1" name="in" type="xs:dateTime" />
              <xs:element minOccurs="1" name="out" type="xs:dateTime" />
              <xs:element minOccurs="1" name="duration" type="xs:decimal" />
              <xs:element minOccurs="1" name="channel" type="xs:string" />
              <xs:element minOccurs="1" name="frame" type="xs:string" />
              <xs:element minOccurs="1" name="mediaitem-path" type="xs:string" />
              <xs:element minOccurs="0" name="custom" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
15.10.2012, 10:39
    #37998107
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Antonariy,

Спасибо большое за помощь!
Entry обязательный элемент, но валидация пропустила его. Хотя в схеме стоит 1 раз обязательное должен присутствовать.
...
Рейтинг: 0 / 0
15.10.2012, 11:36
    #37998207
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
PavluhaEntry обязательный элемент, но валидация пропустила его. Хотя в схеме стоит 1 раз обязательное должен присутствовать.Можно сделать так, но тогда содержимое типа billing-log становится необязательным или может дублироваться. Можно чуть ужесточить правило, написав <xs:choice minOccurs="5" maxOccurs="5">, но все равно не айс.
Что-то я в затруднении.
Код: xml
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.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="billing-log">
    <xs:complexType mixed="false">
		<xs:complexContent>
			<xs:extension base="billing-log">
				<xs:sequence>
					<xs:element minOccurs="1" maxOccurs="unbounded" name="entry">
					  <xs:complexType>
						<xs:sequence>
						  <xs:element minOccurs="0" name="page" type="xs:string" />
						  <xs:element minOccurs="0" name="path" type="xs:string" />
						  <xs:element minOccurs="1" name="in" type="xs:dateTime" />
						  <xs:element minOccurs="1" name="out" type="xs:dateTime" />
						  <xs:element minOccurs="1" name="duration" type="xs:decimal" />
						  <xs:element minOccurs="1" name="channel" type="xs:string" />
						  <xs:element minOccurs="1" name="frame" type="xs:string" />
						  <xs:element minOccurs="1" name="mediaitem-path" type="xs:string" />
						  <xs:element minOccurs="0" name="custom" type="xs:string" />
						</xs:sequence>
					  </xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
    </xs:complexType>
  </xs:element>

	
<xs:complexType name="billing-log">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
          <xs:element minOccurs="1" name="log-start-date" type="xs:dateTime" />
          <xs:element minOccurs="1" name="player-name" type="xs:string" />
          <xs:element minOccurs="1" name="schema-version" type="xs:unsignedByte" />
          <xs:element minOccurs="1" name="player-uuid" type="xs:string" />
          <xs:element minOccurs="1" name="log-end-date" type="xs:dateTime" />
    </xs:choice>
</xs:complexType>
	
</xs:schema>
...
Рейтинг: 0 / 0
15.10.2012, 11:46
    #37998221
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Xdocument validate Error Если узлы стоят не в том порядке
Antonariy,

Спасибо большое еще раз!
Я написал свой валидатор на присутствие узлов. Этого хватило.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Xdocument validate Error Если узлы стоят не в том порядке / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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