XSD - xs:nonNegativeInteger 和以 .00 结尾的值

发布于 2024-07-18 13:43:34 字数 237 浏览 4 评论 0原文

我意识到值 0.00 不是一个有效的非负整数,甚至也不是一个整数。 不幸的是,数据是以这种格式出现的。 如果它以 .0 结尾,我不想丢弃它,但是,我也不想将类型更改为 Decimal,并且可能以 .1 结尾的值有效。

有没有办法我的 XSD 可以验证数字,使它们只是正整数,因此 0.00、0、1、1.0、2.0000000 等值都被接受,但 -1、1.1、2.2、3.3333 都是无效的?

谢谢 -C

I realize that the value 0.00 is not a valid nonNegativeInteger, nor is it even an Integer.
Unfortunately, the data is coming in that format. I don't want to throw it away if it ends with .0 but, I also don't want to change the type to Decimal and possibly have values ending in .1 coming in as valid.

Is there a way my XSD can validate numbers such that they are just positive whole numbers, so values of 0.00, 0, 1, 1.0, 2.0000000 etc are all accepted, but -1, 1.1, 2.2, 3.3333 are all invalid?

Thanks
-c

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寒尘 2024-07-25 13:43:34

您可以考虑更改为十进制并对小数点后的位数进行限制。 特别是,您也许可以使用正则表达式方面。 我从来没有尝试过这个,甚至不知道它是否有效,但这是一个值得关注的方向。 您将限制词法空间而不是值空间,但这就是您想要的。

You could look at changing to decimal and placing a restriction on the places after the decimal point. In particular, you might be able to use a regex facet. I've never tried this, and don't even know if it's valid, but it's a direction to look at. You'd be restricting the lexical space rather than the value space, but that's what you want.

晌融 2024-07-25 13:43:34

这适合我的需要,谢谢约翰

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>

This works for what I need, thanks John

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文