微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

整数 0001 或 000 上的 XSD 验证

如何解决整数 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 举报,一经查实,本站将立刻删除。