مخطط XSD: كيفية تحديد عدد الأرقام في القيمة؟
-
26-09-2019 - |
سؤال
أرغب في الحد من عدد الأرقام المسموح بها في عنصر إلى 6:
<AccountNumber>123456</AccountNumber>
<AccountNumber>999999</AccountNumber>
<AccountNumber>000000</AccountNumber>
مواصفات تنسيق الحقل عبارة عن 6 أرقام ، غير محفوظة الصفر ، رقمية.
قرأت أنني قد أرغب في استخدامها ال 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>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>
ما هو القيود المقترحة لتحديد العدد الدقيق للأرقام المسموح بها؟
المحلول
تحتاج إلى استخدام xs:pattern
وتوفير تعبير منتظم للحد من ذلك.
<xs:simpleType name="AccountNumber">
<xs:restriction base="xs:int">
<xs:pattern value="\d{6}"/>
</xs:restriction>
</xs:simpleType>
نصائح أخرى
هذه أبسط طريقة
<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>
ربما سأستخدم XS: Mininclusive و XS: MaxInclusion.
لا تنتمي إلى StackOverflow