将单个元素中所有随机出现的元素处理成 xsd
Handle all random occurring element in single element into xsd
我在 xsd 文件中定义了一个元素,如下所示
<xs:element name="NonTeachingActivity">
<xs:complexType>
<xs:sequence>
<xs:element name="NTCode" type="String10"/>
<xs:element name="Description" type="String100"/>
<xs:element name="Type" type="MeetingType"/>
</xs:sequence>
<xs:attribute name="RefId" type="GUID" use="required"/>
</xs:complexType>
</xs:element>
在这个元素的元素序列中不需要按照顺序,
标签将是
1) NTCode,Description,Type 2) Description,NTCode,Type 3)
Type,NTCode,Description
所以可以处理给定(NonTeachingActivity)单个元素中的所有顺序?
使用 XSD 1.0 有两种可能的解决方案:
在你的 sequence
:
中使用 choice
<xs:element name="NonTeachingActivity">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="NTCode" type="String10"/>
<xs:element name="Description" type="String100"/>
<xs:element name="Type" type="MeetingType"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="RefId" type="GUID" use="required"/>
</xs:complexType>
</xs:element>
但这不会限制每个子元素的出现次数。
另一种方法是使用all
:
<xs:element name="NonTeachingActivity">
<xs:complexType>
<xs:all>
<xs:element name="NTCode" type="String10"/>
<xs:element name="Description" type="String100"/>
<xs:element name="Type" type="MeetingType"/>
</xs:all>
<xs:attribute name="RefId" type="GUID" use="required"/>
</xs:complexType>
</xs:element>
但是每个子元素可以出现零次或一次。
我在 xsd 文件中定义了一个元素,如下所示
<xs:element name="NonTeachingActivity">
<xs:complexType>
<xs:sequence>
<xs:element name="NTCode" type="String10"/>
<xs:element name="Description" type="String100"/>
<xs:element name="Type" type="MeetingType"/>
</xs:sequence>
<xs:attribute name="RefId" type="GUID" use="required"/>
</xs:complexType>
</xs:element>
在这个元素的元素序列中不需要按照顺序, 标签将是
1) NTCode,Description,Type 2) Description,NTCode,Type 3) Type,NTCode,Description
所以可以处理给定(NonTeachingActivity)单个元素中的所有顺序?
使用 XSD 1.0 有两种可能的解决方案:
在你的
中使用sequence
:choice
<xs:element name="NonTeachingActivity"> <xs:complexType> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="NTCode" type="String10"/> <xs:element name="Description" type="String100"/> <xs:element name="Type" type="MeetingType"/> </xs:choice> </xs:sequence> <xs:attribute name="RefId" type="GUID" use="required"/> </xs:complexType> </xs:element>
但这不会限制每个子元素的出现次数。
另一种方法是使用
all
:<xs:element name="NonTeachingActivity"> <xs:complexType> <xs:all> <xs:element name="NTCode" type="String10"/> <xs:element name="Description" type="String100"/> <xs:element name="Type" type="MeetingType"/> </xs:all> <xs:attribute name="RefId" type="GUID" use="required"/> </xs:complexType> </xs:element>
但是每个子元素可以出现零次或一次。