XML验证:如何在任何订单中包含元素,但至少出现一次且仅出现一次

时间:2013-09-06 11:34:49

标签: xml xsd xml-validation

我想使用xsd验证我的xml。我的要求是我想要包含一些元素。

  1. 这些元素可以采取任何顺序
  2. 一个元素应该恰好包含一次
  3. 不是xs:选择适合我,因为父元素有多个上面的elemts

    应该看到xml如下:

    <parent>
    <child1></child1> // at least one time and only once
    <child2></child2> // at least one time and only once //any order
    </parent>
    

    所以我的XSD应该包含

    element type="xs:int" name="....." minOccurs="1" maxOccurs="1"
    

    我不能使用序列标签,因为它需要按顺序使用这些子元素,不能使用只允许一个子元素的选择标记。你能建议我一个方法

1 个答案:

答案 0 :(得分:0)

我找到了答案:xsd如下

<xs:element name="parent">

                <xs:complexType>
                    <xs:choice maxOccurs="unbounded">
                        <xs:element type="xs:int" name="child1" minOccurs="1" maxOccurs="1">

                        </xs:element>
                        <xs:element type="xs:string" name="child2" minOccurs="1" maxOccurs="1">

                        </xs:element>

                     </xs:all>
                </xs:complexType>
            </xs:element>