2010-11-19 2 views
4

난 6 요소 허용 자릿수를 제한하려는 :XSD 스키마 : 값의 자릿수를 지정하는 방법은 무엇입니까?

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

필드 포맷 스펙은 6 자리, 제로 패딩 된 숫자이다. 를 기반으로

i read that i might want to usetotalDigits 제한 :

totalDigits 허용 숫자의 정확한 수를 지정합니다.

0보다 큰 그래서 단순한 형식이 있어야합니다 : 그것은 잘못된 번호를 캐치하지 않았던

<AccountNumber>1234567</AccountNumber> 
<AccountNumber>0000000</AccountNumber> 
<AccountNumber></AccountNumber> 

:

<xs:simpleType name="AccountNumber"> 
    <xs:restriction base="xs:int"> 
     <xs:totalDigits value="6"/> 
    </xs:restriction> 
</xs:simpleType> 

을 그리고 같은 잘못된 번호를 잡는다 동안 :

<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

@ Jeff - 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> 
관련 문제