2010-11-19 40 views
4

iは6要素で許可桁数を制限したい:XSDスキーマ:値の桁数を指定するにはどうすればよいですか?

<AccountNumber>123456</AccountNumber> 
<AccountNumber>999999</AccountNumber> 
<AccountNumber>000000</AccountNumber> 

フィールドフォーマット仕様が6桁、ゼロパディング、数値です。

i read that i might want to useに基づいて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></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> 

正確な桁数は許可されていますか?

答えて

4

xs:patternを使用し、正規表現を使用して数値に制限する必要があります。

<xs:simpleType name="AccountNumber"> 
    <xs:restriction base="xs:int"> 
     <xs:pattern value="\d{6}"/> 
    </xs:restriction> 
</xs:simpleType> 
+0

である「あなたは 'XSとパターンを使用することができます?int'まあどのようにそのことについて。」* –

+1

@Ian:ええ、私少し驚いた。私はこれに答える何かを学びました。常に喜んで助けてください。 –

-1

私はおそらくxs:minInclusivexs:maxInclusiveを使用します。

+0

...他の回答が投稿されたことを通知するためにしばらく時間がかかります – Anon

+0

私はこれらの制限を桁数ではなく値であると考えています。 minInclusiveが7の場合と同様に、7桁ではなく7桁を意味します。 –

+1

@ジェフ - 1000000の「minInclusive」は7桁であると思いますか?そして、9999999の「maxExclusive」も7桁ですか? – Anon

0

これは*、私が言うことを約あった最も簡単な方法

<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> 
関連する問題