XML XSD 十进制分数

标签 xml xsd decimal restriction

我有一个 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/

相关文章:

xml-serialization - 在 hbase 中存储分层数据的最佳方式

javascript - 打印包含整数的 float 时删除 '.00'

java - 如何生成随机数以提供正确的除法结果

java - 为什么 JAXB 找不到 XML 行数?

xml - Magento 类别页面 : Change layout of specific categories from grid mode to list mode

java - JAXB 向元素添加属性

java - Xmlpullparser 解析嵌套项目

java - 针对包含 xsd :import without location 的 XSD 验证 XML

python - 如何在德语语言环境中将字符串转换为 Python Decimal(使用逗号而不是点)

Python 字符串格式化和 UUID