我有一个 XSD 架构,其中 SimpleType - Decimal,fractionDigits = 2,如本示例所示 How to specify minimal value for fractionDigits restriction in XML Schema? .
这完全正确地允许:-
12 12.34 12.06 12.5
但它也接受 12.230000000(它不接受 12.230000001)。为什么它不能识别那些尾随的零?
那么,有没有办法只允许小数点后 2 位数字,这样在 12.230000000 上就会出错?
我已经尝试过这里看到的模式限制 - How to specify minimal value for fractionDigits restriction in XML Schema?但在 12.23000000 上仍然不会出错。
任何帮助将不胜感激 - 我确信我错过了一些非常简单的东西!
谢谢 克雷格
最佳答案
fractionDigits 方面是对值空间的限制,而不是词法空间的限制。这意味着该值必须是0.01的倍数,但对该值的写入方式没有限制。
如果您想限制词法空间(即值的写入方式),则只能使用模式方面来实现。
我个人认为限制词法空间通常是一个错误,因为生成 XML 的软件通常不会尊重这一点。但这取决于你。
我无法解释为什么您尝试使用模式方面不成功。如果您按照您引用的帖子中的方式进行操作,那么它应该可以工作。
关于XML XSD 十进制分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633943/