【问题标题】:XML Schema, One of each child element?XML Schema,每个子元素之一?
【发布时间】:2010-10-26 22:33:18
【问题描述】:

我想定义一个允许子元素以任何顺序出现的模式,类似于<choice minOccurs="0" maxOccurs="unbounded">,但每个元素只允许一个,类似于<sequence minOccurs="1" maxOccurs="1">

这个可以吗?

例如

<Root>
 <ele1>
 <ele3>
 <ele2>
</Root>    <!--Valid-->

如下:

<Root>
 <ele1>
 <ele1>
 <ele3> 
</Root> <!--Invalid-->

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    使用 xs:all 而不是 xs:sequence,所以你应该这样写:

    <xs:element name="Root">
        <xs:complexType>
                <xs:all>
                    <xs:element name="element1"/>
                    <xs:element name="element2"/>
                    <xs:element name="element3"/>
                </xs:all>
        </xs:complexType>
    </xs:element>
    

    【讨论】:

    • 啊哈!谢谢。我在测试中也发现了这一点。谢谢!
    【解决方案2】:

    您可以在元素中添加maxOccurs="1"

    【讨论】:

    • 我在几个地方尝试了这几种方法,但似乎没有强制执行。也许我做错了?
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2014-09-08
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多