如何解决整数 0001 或 000 上的 XSD 验证
在我的应用程序中,我们使用 XSD 验证来检查给定的文本输入是否为大于或等于 0 的数字。这很好用,但是当我们输入像 000 或 001 这样的数字时,它也会对其进行验证。因此,当我们写入文件时,它会写入 000 和 001,但我们不想验证它们。我们希望它们是 0 或 1,而不是 000 或 001。
我们如何启用它并在开头修剪00?是否有 XSD 类型或限制?
我们如何解决这个问题?
解决方法
我不确定您是否只想验证从文件中写入或读取的内容,或者也更改它。 xml 架构无法更改数据。假设要验证的内容是字符串类型。您可以使用正则表达式模式来检查内容是否正确。下面的示例检查字符串中的最后一个字符是 0 还是 1,并且它之前的所有字符都必须是 0。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="input">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(0*[0-1])?[0-1]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
收到评论后更新
如果您只想批准具有 0 到 9 范围内的单个数字的 xml 结构,您可以使用以下示例。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="input">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:pattern value="[0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。