Co chcę zrobić, to utworzyć element sekwencji w schemacie XML, tak że zawartość musi być w porządku, ale nie wszystkie mogą być obecne. Na przykład, schemat byłoby coś takiego:Jak utworzyć sekwencję elementów opcjonalnych, które muszą być w porządku w schemacie 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>
i pozwoli XML tak:
<rods>
<green>142</green>
<white>34</white>
<gray>65</gray>
</rods>
MSDN ma do powiedzenia na ten temat:
Poniższy przykład ilustruje element (zooAnimals), który może mieć zero lub więcej z następujących elementów, słoń, niedźwiedź, żyrafa, w elemencie sekwencji.
<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 sugeruje samo. Jednak zarówno studio graficzne, jak i usługa weryfikacji online nie podoba się sugestie.
Oto co mam w tej chwili:
<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>
A oto XML:
<rods>
<green>142</green>
<white>34</white>
<gray>65</gray>
</rods>
Visual Studio 2005 twierdzi, że "szary" jest nieważny, "niebieski" oczekiwano, tak wyraźnie chce wszystkie dzieci
Dzięki
Eric
Twoja definicja schematu wygląda dobrze dla mnie. Chcesz podzielić się wynikami/opiniami Visual Studio i weryfikatorów internetowych? –
Dodałem wyniki do posta – Eric