在xsd中不删除分数后的尾随零

时间:2019-01-04 10:54:39

标签: xml xsd schema

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>

2 个答案:

答案 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