Frage

Ich möchte die Anzahl der in einem Element erlaubten Ziffern auf 6 einschränken:

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

Die Feldformatspezifikation ist 6-stellig, null, numerisch.

Ich habe gelesen, dass ich vielleicht verwenden möchte das totalDigits Einschränkung, basierend auf:

totalDigits Gibt die genaue Anzahl der zulässigen Ziffern an. Muss größer als Null sein

Also habe ich den einfachen Typ:

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

Und während es ungültige Zahlen fängt, wie z.

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

Es fängt keine ungültigen Zahlen an:

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

Was ist eine vorgeschlagene Einschränkung, um die genaue Anzahl der zulässigen Ziffern anzugeben?

War es hilfreich?

Lösung

Sie müssen verwenden xs:pattern und geben Sie einen regelmäßigen Ausdruck, um ihn auf eine Zahl zu beschränken.

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

Andere Tipps

Dies ist der einfachste Weg

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

Ich würde wahrscheinlich verwenden XS: Mininclusive und XS: Maxinclusive.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top