首页 > 解决方案 > XML XSD 小数部分数字

问题描述

我有一个 XSD 模式,它是 SimpleType - Decimal,fractionDigits = 2,根据这个例子如何在 XML Schema 中指定 fractionDigits 限制的最小值?.

这完全正确地允许:-

12 12.34 12.06 12.5

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

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

我已经尝试过这里看到的模式限制 -如何在 XML Schema 中为 fractionDigits 限制指定最小值?但是,它仍然不会在 12.23000000 上出错。

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

谢谢克雷格

标签: xmlxsddecimalrestriction

解决方案


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

如果您想限制词法空间(即写入值的方式),您只能使用模式方面来做到这一点。

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

我无法解释为什么您尝试使用模式方面没有成功。如果你按照你引用的帖子那样做,它应该可以工作。


推荐阅读