xsd中的小数位数删除了我不需要的尾随零。请帮助
我正在使用以下代码限制我的十进制值
<xs:simpleType name="Decimal_15_2">
<xs:restriction base="xs:decimal">
<xs:totalDigits value="15"/>
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
预期结果为
<principalAmount>500.00</principalAmount>
但实际输出是
<principalAmount>500</principalAmount>
答案 0 :(得分:0)
我不知道相关的TIBCO产品规范对此有何评论,但它没有违反任何XSD规则。分数分数面限制了值空间,而不是词法空间:value='2'
表示该值必须是0.01的精确倍数,而不是该值必须用两位十进制数字写。您的工具生成的输出对您的模式有效。
您可以使用pattern
构面将词法空间限制为包含两个十进制数字,但是我非常怀疑任何实例生成器都会注意到这一点,因为生成符合特定正则表达式的字符串是一项颇具挑战性的任务。
答案 1 :(得分:0)
根据W3C.org-前导零和尾随零对于十进制数据类型是可选的。
引用-W3C.org
阅读文章-SUPPRESSION OF LEADING AND TRAILING ZEROES IN TYPE R DECIMAL NUMBER
IBM的另一篇文章-standards rules for Leading or Trailing zeroes