XSDスキーマ:値で数字数を指定する方法は?
-
26-09-2019 - |
質問
要素で許可されている数字を6に制限したい:
<AccountNumber>123456</AccountNumber>
<AccountNumber>999999</AccountNumber>
<AccountNumber>000000</AccountNumber>
フィールド形式の仕様は、6桁、ゼロパッド、数値です。
使いたいと思うかもしれません totalDigits
に基づく制限:
totalDigits
許可される正確な数字数を指定します。ゼロより大きくなければなりません
だから私はシンプルなタイプを持っています:
<xs:simpleType name="AccountNumber">
<xs:restriction base="xs:int">
<xs:totalDigits value="6"/>
</xs:restriction>
</xs:simpleType>
そして、次のような無効な数字をキャッチしますが、
<AccountNumber>1234567</AccountNumber>
<AccountNumber>0000000</AccountNumber>
<AccountNumber></AccountNumber>
無効な数字をキャッチしません:
<AccountNumber>12345</AccountNumber>
<AccountNumber>01234</AccountNumber>
<AccountNumber>00123</AccountNumber>
<AccountNumber>00012</AccountNumber>
<AccountNumber>00001</AccountNumber>
<AccountNumber>00000</AccountNumber>
<AccountNumber>0000</AccountNumber>
<AccountNumber>000</AccountNumber>
<AccountNumber>00</AccountNumber>
<AccountNumber>0</AccountNumber>
許可される正確な数字数を指定するための提案された制限は何ですか?
解決
使用する必要があります xs:pattern
そして、それを数に制限するために正規表現を提供します。
<xs:simpleType name="AccountNumber">
<xs:restriction base="xs:int">
<xs:pattern value="\d{6}"/>
</xs:restriction>
</xs:simpleType>
他のヒント
これが最も簡単な方法です
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
私はおそらく使うでしょう XS:MinInclusive と XS:MaxInclusive.
所属していません StackOverflow