在我的应用程序中,我们使用xsd验证来检查给定的文本输入是否大于或等于0。这很好,但当我们输入000或001这样的数字时,它也会验证它。因此,当我们写入文件时,它会写入000和001,但我们不想验证它们。我们希望它们是0或1,而不是000或001。如何启用它并在开始时修剪00?是否有xsd类型或限制?如何解决这个问题?
7lrncoxx1#
我不确定您是否只想验证从文件中写入或读取的内容,或者同时更改它。xml架构无法更改数据。假设要验证的内容是字符串类型。可以使用regex模式检查内容是否正确。下面的示例检查字符串中的最后一个字符是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>
1条答案
按热度按时间7lrncoxx1#
我不确定您是否只想验证从文件中写入或读取的内容,或者同时更改它。xml架构无法更改数据。假设要验证的内容是字符串类型。可以使用regex模式检查内容是否正确。下面的示例检查字符串中的最后一个字符是0还是1,并且它之前的所有字符都必须是0。
收到评论后更新
如果您只想批准单个数字在0到9之间的xml结构,可以使用下面的示例。