我意识到值0.00不是有效的nonNegativeInteger,也不是整数。 不幸的是,数据以这种格式出现。如果它以.0结尾,我不想丢弃它。但是,我也不想将类型更改为十进制,并且可能将以.1结尾的值作为有效值。

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

由于 -c

有帮助吗?

解决方案

您可以查看更改为小数并对小数点后的位置设置限制。特别是,您可以使用正则表达式方面。我从来没有试过这个,甚至不知道它是否有效,但它是一个方向来看待。你要限制词汇空间而不是价值空间,但这就是你想要的。

其他提示

这符合我的需要,感谢John

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top