シンプルなString型のXMLスキーマ例小文字を区別しない列挙
-
21-08-2019 - |
質問
私は私のXMLスキーマ(の.xsd)ファイルで、大文字小文字を区別しない文字列の列挙型を必要としています。私は、次の作業を実行して、大文字と小文字を区別を取得することができます。
<xs:simpleType name="setDigitalPointType">
<xs:restriction base="xs:string">
<xs:pattern value="[Oo][Nn]" />
<xs:pattern value="[Oo][Ff][Ff]" />
</xs:restriction>
</xs:simpleType>
唯一の問題は、私は何の列挙値を取得していないということです。私のXMLを書くためのVisual Studioを使用したとき、私は素敵なintellesenseを取得することはありません。以下は、私の列挙を与えるだろうが、それは大文字と小文字が区別されます。
<xs:simpleType name="setDigitalPointType">
<xs:restriction base="xs:string">
<xs:enumeration value="on" />
<xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
これは私に私の列挙を与えるだろうが、私は今まで「オン」、「ON」の値を受信した場合、またはそれが検証に失敗する「ON」ます。
私は、「オン」、「オフ」の列挙をしたいし、大文字小文字を区別しないバージョンのエントリを許可します。
解決
IBM developerWorksのはにXSLTを使用する方法については記事を持っています自動化された方法で列挙選択肢のフルセットの構築を行います。これは、大文字と小文字を区別しない列挙型の欠如の回避策として提示されます。
他のヒント
あなたがまだのVisual Studio 2010でインテリセンスを取得中に、両方の、大文字と小文字を区別しない検証を維持したい場合は、労働組合を使用することができます:
<xs:simpleType name="setDigitalPointType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="on" />
<xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[Oo][Nn]" />
<xs:pattern value="[Oo][Ff][Ff]" />
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
それはそれはそれはインテリセンスデータだビルドすると、Visual Studio 2010のが唯一の労働組合の最初の単純型を処理という事実を利用するので、これは動作します。それは文書を検証するときしかし、それはまだそれが列挙値のリストにない場合でも有効であると判断され、「オン」を意味し、両方を処理します。
さて、あなただけのパターンとしてすべての順列をリストできます。)
所属していません StackOverflow