簡體   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