1

今、私は次のXMLように検証しています:

<?xml version="1.0" encoding="utf-8"?>
  <all>
     <allElem>
      <a>12345</a>        
      <b>2</b>              
      <c>3</c>                  
      <d>                               
        <d1>4</d1>              
        <d2>5</d2>               
        <d3>6</d3>           
      </d>
      <d>                               
       <d1>7</d1>               
       <d2>8</d2>               
       <d3>9</d3>
      </d>                      
   </allElem>
</all>

私は次のように簡単に書きましたXSD

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

   <xs:element name="all">
  <xs:complexType>
    <xs:sequence>
    <xs:element name="allElem" maxOccurs="1">
        <xs:complexType>
            <xs:sequence>
            <xs:element name="a" type="xs:string"/>
            <xs:element name="b" type="xs:string"/>
            <xs:element name="c" type="xs:string"/>
            <xs:element name="d" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>    
                    <xs:sequence>
                    <xs:element name="d1" type="xs:string"/>
                    <xs:element name="d2" type="xs:string"/>
                    <xs:element name="d3" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    </xs:sequence>
  </xs:complexType> 
   </xs:element>    

 </xs:schema>

私の質問xs:sequence:何度も現れる。xsd に、順序付けされていない要素が 1 回または何度も表示されるように定義できる解決策はありますか? 言い換えれば、複数回出現する可能性のある順序付けられていない要素を定義できる xsd タグがあるかどうかを知りたいです。

4

1 に答える 1

0

XSD 1.0 の場合:

  • xs:sequence の代わりに xs:all を使用できますが、各要素は (0 または 1) 回しか表示されません。

  • minOccurs=0 maxOccurs=unbounded で xs:choice を使用できますが、各要素は何度でも表示できます

XSD 1.1 の場合:

  • xs:all を使用して、各要素の最小/最大カーディナリティを指定できます (これが求めているものです)。

XSD 1.1 は現在、Xerces (ベータ版) および Saxon (現在のリリースの Saxon-EE 9.5) で利用できます。

于 2013-05-15T08:04:38.040 に答える