6

XML スキーマを使用して acomplexTypeが子要素を 1 つだけ持つことを宣言する場合、以下の 3 つの方法すべてで目的が達成されます。

<xs:complexType> <xs:sequence> <xs:element ref="somevalue"/> </xs:sequence> </xs:comlexType>
<xs:complexType> <xs:choice>   <xs:element ref="somevalue"/> </xs:choice>   </xs:comlexType>
<xs:complexType> <xs:all>      <xs:element ref="somevalue"/> </xs:all>      </xs:comlexType>

どうやら、sequencechoiceall、複数の要素の順序を示すために使用する必要があるため、単一の要素には必要ありません。子要素が 1 つしかないa を宣言するより簡潔な方法はありますか? complexType(つまり、何らかの形でsequenceallまたはの使用を排除するもの。)choice

4

1 に答える 1

9

xs:sequencexs:choice、またはを単に削除することxs:allはできません。

  <xs:complexType name="cType">
    <xs:element name="e"/> 
  </xs:complexType>

有効じゃない。

のコンテンツ モデルが次のように定義されている複合型定義の XML 表現を参照してください。complexType

(注釈?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))

elementの直接の子であるという規定はありませんcomplexType

于 2013-10-07T12:24:49.960 に答える