7

からの値または に一致する値のいずれかであるsimpleTypeを持つ を定義しています。からすべて実行できることはわかっていますが、 が提供する選択リストが必要です。restrictionenumerationpatternpatternenumeration

これは私ができると思っていたことです:

<xs:simpleType name="both">
  <xs:restriction base="xs:string">
    <xs:enumeration value="one" />
    <xs:enumeration value="two" />
    <xs:pattern value="[0..9]+" />
  </xs:restriction>
<xs:simpleType>

しかし、値が両方の制約に一致することはできないため、これは失敗します。列挙値を許可するようにパターンを変更すると、パターンに一致する場合にのみ失敗します。

4

1 に答える 1

11

が必要であることがわかりましたunion。列挙型を別の型として定義します。

<xs:simpleType name="enumeration">
  <xs:restriction base="xs:string">
    <xs:enumeration value="one" />
    <xs:enumeration value="two" />

  </xs:restriction>
<xs:simpleType>

次に、列挙型としてターゲット タイプを作成します。

<xs:simpleType name="both">
  <xs:union memberTypes="enumeration">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[0..9]+" />
      </xs:restriction>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

これで、選択リストを取得するか、パターンに一致させます。まさに私が欲しかったものです!

更新:実際には両方の単純型を の子として、または属性unionを介して定義できます。memberTypes

于 2012-06-20T21:44:29.470 に答える