小编Cha*_*han的帖子

XML 模式中的嵌套选择元素?

我想做的是,声明一个名为“data”的父元素,它有 6 个子元素,这两个元素是有条件的,这意味着如果选择元素 A,则 B 不会出现在“data”中。

像这样:

<data>
   <A>text1</A>
   <B>text1</B>
   <C>text1</C>
   <D>text1</D>

   <E>text1</E> or <F>text1</F>

</data>
Run Code Online (Sandbox Code Playgroud)

要求1:所有元素可以以任意顺序、任意次数出现。

要求2:元素E和F是有条件的,意味着只有其中之一出现在数据中。

我的xsd代码是这样的:

<xs:element name="data">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="sequence" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded" >
                            <xs:element ref="A" />
                            <xs:element ref="B" />
                            <xs:element ref="C" />
                            <xs:element ref="D" />                          
                            <xs:choice>
                                <xs:element ref="E" />
                                <xs:element ref="F" />
                                <xs:element ref="G" />
                            </xs:choice>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="status"/>
        </xs:complexType>
    </xs:element>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有这些链接,但仍然没有得到我的解决方案。

XSD - 如何允许元素以任意顺序出现任意次数?

XSD 中的嵌套序列

XSD 嵌套元素

xml schema xsd xsd-validation

4
推荐指数
1
解决办法
3224
查看次数

标签 统计

schema ×1

xml ×1

xsd ×1

xsd-validation ×1