xml - XSD 架构 : How to specify the number of digits in a value?

标签 xml xsd xsd-validation

我想将元素中允许的数字位数限制为 6:

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

字段格式规范为 6 位数字,零填充,数字。

i read that i might want to use totalDigits 限制,基于:

totalDigits Specifies the exact number of digits allowed. Must be greater than zero

所以我有简单的类型:

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

关于xml - XSD 架构 : How to specify the number of digits in a value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228607/

相关文章:

c# - XML:使用 C# 搜索特定文本的元素

xml - 找不到适合请求类型 JAXBElement 的 HttpMessageConverter

java - XMLBeans:获取嵌套元素的注释

eclipse - 如何解决 xsi :noNamespaceSchemaLocation in jdoconfig. xml 上的验证错误

java - 每次我添加/删除任何内容时都强制重新启动并使缓存无效?

Python XPath 抓取显示列表没有文本属性

java - 为 XML 持久性选择框架

java - java 9 上的 jaxb2-maven-plugin 失败

xml - XSD 可选元素 minOccurs ="0"但在验证时这是预期的吗?

xml - XSD 模式是否可以根据是否存在多个元素而具有不同的条件?