Domanda

Voglio limitare il numero di cifre consentite in un elemento a 6:

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

La specifica del formato di campo è a 6 cifre, a zero, numerico.

Ho letto che potrei voler usare il totalDigits restrizione, basata su:

totalDigits Specifica il numero esatto di cifre consentite. Deve essere maggiore di zero

Quindi ho il tipo semplice:

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

E mentre cattura numeri non validi, come ad esempio:

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

Non cattura numeri non validi:

<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>

Qual è una restrizione suggerita per specificare il numero esatto di cifre consentite?

È stato utile?

Soluzione

Devi usare xs:pattern e fornire un'espressione regolare per limitarlo a un numero.

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

Altri suggerimenti

Questo è il modo più semplice

    <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> 

Probabilmente lo userei XS: mininclusive e XS: maxinclusive.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top