繁体   English   中英

无序模式中的XML模式显示元素

[英]XML Schema Display Elements in Unordered pattern

我有一个Schema XSD文件,其中包含序列中列出的元素。 问题是Sequence强制XML文件列出顺序中的元素。 现在,我想使用选择标记。 但是根据xml规范,choice只允许声明中包含的一个元素出现在contains元素中。 另外,我不能使用All标签,因为我想要多次出现 但是,我希望以无序模式显示所有A,B,C,D和E. 有什么建议么?

Xml架构文件

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="A" />
        <xsd:element name="B" />
        <xsd:element name="C" />
        <xsd:element name="D" />
        <xsd:element name="E" />
    </xsd:sequence>
</xsd:complexType>

XML文件(我希望这些元素以任何顺序排列)

<a>a</a>
<b>b</b>
<c>c</c>
<d>d</d>
<e>e</e>

这个XSD,

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="r">
    <xsd:complexType>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element name="A" />
        <xsd:element name="B" />
        <xsd:element name="C" />
        <xsd:element name="D" />
        <xsd:element name="E" />
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

将以任何顺序和任意数量的事件验证元素AE作为r子元素。

说明

xsd:choice元素的出现约束允许选择本身重复指定的次数。 因此,您可以在子元素之间进行零次选择,并获得r的空内容模型。 有一次,你可以选择任何一个孩子。 您可以第二次选择您第一次做的同一个孩子或任何其他孩子。 如您所见,此持续操作允许任意数量的子元素以任何顺序出现。

例子

以下所有XML文档对上述XSD都有效:

  • <r></r>
  • <r><A/><A/></r>
  • <r><A/><A/><A/></r>
  • <r><A/><B/><A/><C/><A/><D/><A/><E/><A/></r>
  • <r><E/><D/><C/><B/><A/></r>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM