Я хочу, чтобы проверить следующий XML, не навязывая порядок пунктов:XSD и xmllint: замена хз: последовательность с хз: все выдает ошибку
<?xml version='1.0' encoding='ISO-8859-1'?>
<root>
<name>Map corners</name>
<point>NW</point>
<point>SW</point>
<point>NE</point>
<point>SE</point>
</root>
Мой XSD является:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="point" type="xs:string" fixed="NW"/>
<xs:element name="point" type="xs:string" fixed="SW"/>
<xs:element name="point" type="xs:string" fixed="NE"/>
<xs:element name="point" type="xs:string" fixed="SE"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
xmllint проверяет мой XML.
Но если я заменю хз: последовательность с хз: все (освободить ограничение порядка: SW может быть, прежде чем NW), он не проверяет, и у меня есть следующее сообщение:
my6.xsd: 4: element complexType: ошибка парсера схемы: локальный сложный тип: модель контента не является детерминированной.
Я что-то пропустил?
Спасибо Петру. Добавление ограничения идентификации полезно избегать, например, NW, NW, NW, SE. Это означает: «это (.)« Точка »должна быть уникальной» (с использованием xs: key и xs: unique почти одинаковы). См. Также: http://docstore.mik.ua/orelly/xml/schema/ch09_02.htm –