将单个元素中的所有随机出现元素处理为xsd

时间:2016-07-18 09:50:34

标签: xml xsd xsd-validation xml-validation

我在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,描述,类型2)描述,NTCode,类型3)   型,NTCode,说明

所以可以处理给定(NonTeachingActivity)单个元素中的所有顺序吗?

1 个答案:

答案 0 :(得分:1)

使用XSD 1.0,有两种可能的解决方案:

  1. scrollView

    中使用choice
    sequence

    但这并不会限制每个子元素的出现次数。

  2. 另一种方法是使用<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

    但每个子元素可以出现零次或一次。