Что я хочу сделать, так это создать элемент последовательности в XML-схеме, чтобы содержимое было в порядке, но может не все присутствовать. Например, схема будет выглядеть примерно так:Как вы можете сделать последовательность необязательных элементов, которые должны быть упорядочены в XML-схеме?
<xs:element name="rods" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="green" type="xs:positiveInteger" />
<xs:element name="white" type="xs:positiveInteger" />
<xs:element name="blue" type="xs:positiveInteger" />
<xs:element name="yellow" type="xs:positiveInteger" />
<xs:element name="red" type="xs:positiveInteger" />
<xs:element name="tan" type="xs:positiveInteger" />
<xs:element name="gray" type="xs:positiveInteger" />
<xs:element name="black" type="xs:positiveInteger" />
</xs:sequence>
</xs:complexType>
</xs:element>
и позволит XML, как это:
<rods>
<green>142</green>
<white>34</white>
<gray>65</gray>
</rods>
MSDN это сказать об этом:
Следующий пример показывает, элемент (zooAnimals), который может иметь нулевой или более из следующих элементов: слон, медведь, жираф, в элементе последовательности.
<xs:element name="zooAnimals"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="elephant"/> <xs:element name="bear"/> <xs:element name="giraffe"/> </xs:sequence> </xs:complexType> </xs:element>
W3Schools предлагает то же самое. Однако, как визуальная студия, так и онлайн-служба проверки не любят предлагаемого.
Вот что у меня есть на данный момент:
<xs:element name="rods" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="green" type="xs:positiveInteger" />
<xs:element name="white" type="xs:positiveInteger" />
<xs:element name="blue" type="xs:positiveInteger" />
<xs:element name="yellow" type="xs:positiveInteger" />
<xs:element name="red" type="xs:positiveInteger" />
<xs:element name="tan" type="xs:positiveInteger" />
<xs:element name="gray" type="xs:positiveInteger" />
<xs:element name="black" type="xs:positiveInteger" />
</xs:sequence>
</xs:complexType>
</xs:element>
И вот XML:
<rods>
<green>142</green>
<white>34</white>
<gray>65</gray>
</rods>
Visual Studio 2005 утверждает, что "серый" является недействительным, "синий" и следовало ожидать, так ясно он хочет, чтобы все дети
Спасибо,
Эрик
Ваше определение схемы выглядит хорошо для меня. Хотите поделиться результатами/отзывами Visual Studio и онлайн-валидаторов? –
Я добавил результаты в сообщение – Eric