2016-06-22 15 views
1

私はXSDを書いています。このような要素があれば、Valueのデフォルト値を整数に設定したいと思います。私はこれを行うことができます要素の1つの範囲の番号がある場合のように見えますが、私は下に示すように複数の範囲がある場合、私はValueにデフォルト値を追加することはできません。複数の範囲を定義している要素にデフォルト値を追加する方法はありますか?私はこれはタイプxs:unionのために許可されていないと思うが、私はどのようなデフォルトと範囲のセットの両方を取得するために行うと確信しています。要素の複数の範囲とXSDの既定値の設定方法は?

<xs:element name="Value" default="20"> 
    <xs:annotation> 
     <xs:documentation xml:lang="en"> 
      Some Random Annotation 
     </xs:documentation> 
    </xs:annotation> 
    <xs:simpleType> 
     <xs:union> 
      <xs:simpleType> 
       <xs:restriction base='xs:integer'> 
        <xs:minInclusive value="20"/> 
        <xs:maxInclusive value="30"/> 
       </xs:restriction> 
      </xs:simpleType> 
      <xs:simpleType> 
       <xs:restriction base='xs:integer'> 
        <xs:minInclusive value="40"/> 
        <xs:maxInclusive value="54"/> 
       </xs:restriction> 
      </xs:simpleType> 
     </xs:union> 
    </xs:simpleType> 
</xs:element> 

答えて

1

ユニオンで定義された型と一致する限り、unionのデフォルト値を設定できます。この場合、デフォルト値の20は最初の単純型の制約を満たしているため、問題ありません。代わりにデフォルト値が200の場合は許可されません。

1

デフォルトは要素宣言の一部であり、型定義の一部ではありません。デフォルト値として指定した値が型の値の範囲内にある限り、それは受け入れられます。 (つまり、エラーメッセージが表示される場合は、原因ではありません)

関連する問題