0

必須要素を任意の順序で含む複合型スキーマを作成しようとしています。私のcomplextypeは次のようになります。

   <xs:choice minOccurs="0" maxOccurs="1">
      <xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
      <xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
    </xs:choice>

2つの要素の1つだけを入力すると、xmlファイルは有効になります(有効ではないはずです)。

<link>123<link/>

また

<Plan>222<Plan/>

以下のみを有効にしたいのですが、有効です。

<link>123<link/>
<Plan>222<Plan/>

また

 <Plan>222<Plan/>
 <link>123<link/>

手伝ってくれませんか?ありがとうございました

4

2 に答える 2

0
        <xs:choice minOccurs="0" maxOccurs="1">
        <xs:sequence>
            <xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
            <xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:sequence>               
            <xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
            <xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        </xs:choice>

問題を解決できますが、これが単なる疑似サンプル コードである場合は<xs:group><xs:choice>

于 2012-09-04T03:50:20.153 に答える
0

各要素が 1 回しか出現しない場合は、xs:all を使用します。

 <xs:all>
   <xs:element name="link" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
   <xs:element name="Plan" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
 </xs:all>

XSD 1.1 では、要素を繰り返すことができる場合にも機能します。

于 2012-09-04T07:51:23.437 に答える