XML XSD十进制小数位

时间:2018-12-05 13:53:28

标签: xml xsd decimal restriction

根据示例How to specify minimal value for fractionDigits restriction in XML Schema?,我有一个XSD架构,该架构的SimpleType-Decimal,fractionDigits = 2。

这完全正确地允许:-

12 12.34 12.06 12.5

但是它也接受12.230000000(不接受12.230000001)。为什么它不识别那些尾随的零?

那么,有没有办法只允许小数点后两位数字,所以它在12.230000000上出错?

我已经尝试过在此处看到的模式限制-How to specify minimal value for fractionDigits restriction in XML Schema?,但在12.23000000上没有错误。

任何帮助将不胜感激-我确定我缺少一些非常简单的东西!

谢谢 克雷格

1 个答案:

答案 0 :(得分:1)

fractionDigits方面是对值空间的限制,而不是对词法空间的限制。这意味着该值必须是0.01的倍数,但对如何写入该值没有限制。

如果要限制词法空间(即值的写入方式),则只能使用模式构面来实现。

我个人认为限制词法空间通常是一个错误,因为生成XML的软件通常不会尊重这一点。但这取决于你。

我无法解释您为何尝试使用模式构面失败。如果您按照引用的内容进行操作,那么它应该可以工作。