2017-01-13 4 views
0

true,false、または(NULL)の値を許可するフィールドを作成するにはどうすればよいですか?私が現在やっていることは次のとおりです。やっての代わりにxsdのNullable booleanフィールド

<xs:element name="IsPromotional" minOccurs="0"> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="(true|false)?" /> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

:また、空の値を受け入れ

<xsd:element name="IsPromotional" type="xsd:boolean" minOccers="0" /> 

IsPromotionalので。 true、false、または ''を許可するカスタムのxsdフィールドを作成するにはどうすればよいですか?

答えて

2

(NULL)と書くと、空の文字列を意味すると思いますか?

これは、スキーマをどのように使用しているかによって異なります。検証のためだけの場合は、 "true"と "false"を許可する文字列フィールドと、 "true"と "false"を許可するブール値フィールドの間に意味のある違いはありません。 true "、" false "、" ")はうまく動作します。しかし、データ型(JAXBやスキーマ対応のXSLT/XQueryなど)の場合でも、これをブール値にする方が良いでしょう。

私の好ましいアプローチは、maxLengthの1

、はminLength 0とブール値のリストの型を定義することです(これはまた、あなたがすることによって防ぐことができる、0と1を可能にサブタイプ:xs:boolean)

+0

回答ありがとうございました。私はあなたの "0"/"1"アプローチが好きです。あなたは特別なタイプを定義するためにxsdコードを投稿してもらえますか?私はあなたの答えを受け入れますか? – David542

+0

いいえ、私はあなたにそれをするつもりです。一般的に私は、人の手を持って目的地に連れて行くのではなく、正しい方向に人を向けることを好む。 –

関連する問題