0

次の xml 構造をサポートする xsd スキーマを作成しています。

<Switch code="enable'>
 .....more..stuff.....
</Switch>

スキーマで宣言する方法は次のとおりです

 <xs:element name="Switch minOccurs="1" maxOccurs="1">
      <xs:complexType>
         ................
        <xs:attribute type="xs:string" name="Code" use="required"/>
      </xs:complexType>
    </xs:element>

現在、Switch コードの値は「有効」または「無効」のいずれかのみです。私の xsd スキーマでは、これらの値のいずれかのみを指定する方法を教えてください。それは可能ですか、これを処理するには C# などのプログラミング言語を使用する必要がありますか?

誰かが私を助けてくれれば幸いです。

ありがとう、

4

2 に答える 2

2

XML スキーマで列挙型を定義できます。

<xs:simpleType name="enableDisable">
  <xs:restriction base="xs:string">
    <xs:enumeration value="enable" />
    <xs:enumeration value="disable" />
  </xs:restriction>
</xs:simpleType>

xs:stringその場所で、属性の代わりにこのタイプを使用できます

<xs:attribute type="enableDisable" name="Code" use="required"/>

(スキーマに が含まれている場合は、プレフィックスが必要になる場合がありますtargetNamespace)

于 2013-04-04T19:58:08.703 に答える
1

イアンの回答を参照してください...または名前付きタイプを宣言せずに直接:

<xs:element name="Switch" minOccurs="1" maxOccurs="1">
  <xs:complexType>
     ................
    <xs:attribute name="Code" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="enable" />
          <xs:enumeration value="disable" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>
于 2013-04-04T20:11:03.723 に答える