2

興味深いのは、次のxml子要素です。

<optInItem type='MARKETING_EMAILS'>NO</optInItem>

属性'type'の可能な値(2つの可能な値を想定)を列挙し、optInItemのテキスト値の可能な値を列挙したいと思います(値はYes | Noの可能性があります)。私は次のxsdから始めていますが、2つの別々の列挙を追加する方法がわかりません。

 <xs:element name="optInItem" maxOccurs="2" minOccurs="2">
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute type="xs:string" name="type" use="required"/>
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
</xs:element>

任意の提案/ポインタをいただければ幸いです。

ありがとう

4

1 に答える 1

3

何度も繰り返した後、次のように見えます。

<xs:element name="account">
 <xs:complexType>
  <xs:sequence>
    <xs:element type="optInItemType" name="optInItem" maxOccurs="2" minOccurs="2">
  </xs:sequence>
 </xs:complexType>
</xs:element>
<xs:complexType name="optInItemType"> 
 <xs:simpleContent> 
    <xs:extension base="elementOptInItemType">
         <xs:attribute name="type" type="attrOptInItemType"/> 
    </xs:extension> 
 </xs:simpleContent>
</xs:complexType>  
<xs:simpleType name="elementOptInItemType">
 <xs:restriction base="xs:string">
   <xs:enumeration value="YES"/>
   <xs:enumeration value="NO"/>
 </xs:restriction>
</xs:simpleType>
<xs:simpleType name="attrOptInItemType">
 <xs:restriction base="xs:string">
   <xs:enumeration value="MARKETING_EMAILS"/>
   <xs:enumeration value="UPDATE_NOTIFICATIONS"/>
 </xs:restriction>
</xs:simpleType>

それは私が思っていたよりも複雑でした。simpleContent 拡張ベースはユーザー定義型を許可しているため、すべてをまとめる鍵でした。

于 2012-06-27T01:16:48.620 に答える