XSD -Schema: Wie kann ich die Anzahl der Ziffern in einem Wert angeben?
-
26-09-2019 - |
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?
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.