質問

要素で許可されている数字を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:MinInclusiveXS:MaxInclusive.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top