Xml xsd中定义一组可能是子元素且可能重复的元素的正确方法是什么?
我试图确定使用xsd模式定义元素的正确方法,该元素可能包含一组子元素(包括可能重复的子元素)中的任何一个 例如,给定以下XML文档:Xml xsd中定义一组可能是子元素且可能重复的元素的正确方法是什么?,xml,xsd,Xml,Xsd,我试图确定使用xsd模式定义元素的正确方法,该元素可能包含一组子元素(包括可能重复的子元素)中的任何一个 例如,给定以下XML文档: <?xml version="1.0" encoding="utf-8" ?> <EncounterDefinitions xmlns="http://lavendersoftware.org/schemas/SteamGame/Data/Xml/Encounters.xsd"> <Encounter name="Sample
<?xml version="1.0" encoding="utf-8" ?>
<EncounterDefinitions
xmlns="http://lavendersoftware.org/schemas/SteamGame/Data/Xml/Encounters.xsd">
<Encounter name="Sample Encounter">
<Task>
<Weapon/>
<Weapon/>
<Information/>
</Task>
<Task>
<Tool count="3"/>
<Ritual/>
</Task>
</Encounter>
</EncounterDefinitions>
到目前为止,我已经成功地完成了XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Encounters"
targetNamespace="http://lavendersoftware.org/schemas/SteamGame/Data/Xml/Encounters.xsd"
elementFormDefault="qualified"
xmlns="http://lavendersoftware.org/schemas/SteamGame/Data/Xml/Encounters.xsd"
xmlns:mstns="http://lavendersoftware.org/schemas/SteamGame/Data/Xml/Encounters.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<!-- attribute types -->
<xs:attribute name="name" type="xs:string" />
<!-- complex types -->
<xs:element name="Task">
<xs:complexType>
<xs:sequence>
<!-- This type here should be any of a set of Elements -->
<xs:element name="Objective" type="Objective"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Encounter">
<xs:complexType>
<xs:sequence>
<xs:element ref="Task"/>
</xs:sequence>
<xs:attribute ref="name" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="EncounterDefinitions">
<xs:complexType>
<xs:sequence>
<xs:element ref="Encounter"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
如果子项的顺序或每个子项的出现次数没有限制,请使用重复选择:
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Objective" type="Objective"/>
<xs:element name="Weapon" type="Weapon"/>
<xs:element name="Information" type="Information"/>
</xs:sequence>
</xs:complexType>