我们有一个请求来实现我们的 web 服务响应,以便 xsd:decimal 小数位在模式指示时不够长时将被零填充。我想知道这是否是一个合理的请求,以及 xsd:decimal 是否应该与这些模式一起使用。根据他们的规格,这是 xsd 的相关部分:
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="14"/>
<xsd:fractionDigits value="2"/>
<xsd:pattern value="[\-+]?[0-9]{1,12}[.][0-9]{2}"/>
</xsd:restriction>
</xsd:simpleType>
所以 fractionDigits 设置为 2,这意味着精度最多可以是 2 位。根据http://zvon.org/xxl/XMLSchemaTutorial/Output/ser_types_st2.html,如果小数位数较少(例如5.1这样的数字)也可以
但是根据模式 {2} 应该总是有 2 个小数位。
我们正在开发一个通用的应用程序开发平台 (Mendix),并且不知道小数点将用于什么(货币、pH 值、距离等)。这个案例来自一个使用我们平台的特定项目,但通常我们不知道正在传输什么样的数据。在这方面,我们可以决定只遵循 WSDL,它规定它应该有 2 个小数位。但是我们的实现必须非常通用。
没有任何说明应该用什么来填充这些小数位数,甚至没有说明我们应该填充而不是完全省略这个小数。理论上,我们可以决定用 5 填充,直到它与模式匹配。据我所知,模式很少使用,如果它们被用于密码之类的东西。XSD 规范虽然含糊不清,但如果有人能阐明这是否是对 XSD 的有效使用,以及我们决定用 0 填充是否有意义,我们将不胜感激。