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

XSD-xs:nonNegativeInteger和以.00结尾的值,xsd,integer,decimal,Xsd,Integer,Decimal,我意识到值0.00不是有效的非负整数,甚至不是整数。 不幸的是,数据是以这种格式出现的。如果它以.0结尾,我不想将其丢弃,但我也不想将类型更改为Decimal,并且可能使以.1结尾的值作为有效值 我的XSD有没有办法验证数字,使它们只是正整数,所以0.00、0、1、1.0、2.0000000等值都可以接受,但是-1、1.1、2.2、3.3333都是无效的 谢谢 -c您可以考虑更改为十进制,并对小数点后的位数进行限制。特别是,您可能能够使用正则表达式方面。我从来没有尝试过这个,甚至不知道它是否有效

我意识到值0.00不是有效的非负整数,甚至不是整数。 不幸的是,数据是以这种格式出现的。如果它以.0结尾,我不想将其丢弃,但我也不想将类型更改为Decimal,并且可能使以.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>