【问题标题】:XSD - xs:nonNegativeInteger and values ending with .00XSD - xs:nonNegativeInteger 和以 .00 结尾的值
【发布时间】:2026-01-27 17:25:02
【问题描述】:

我意识到值 0.00 不是有效的非负整数,甚至也不是整数。 不幸的是,数据是以这种格式出现的。如果它以 .0 结尾,我不想将其丢弃,但我也不想将类型更改为 Decimal 并且可能以 .1 结尾的值作为有效值。

有没有办法我的 XSD 可以验证数字,使它们只是正整数,所以 0.00、0、1、1.0、2.0000000 等值都被接受,但 -1、1.1、2.2、3.3333 都是无效的?

谢谢 -c

【问题讨论】:

    标签: xsd integer decimal


    【解决方案1】:

    您可以考虑更改为小数并对小数点后的位置进行限制。特别是,您可能能够使用正则表达式方面。我从来没有尝试过这个,甚至不知道它是否有效,但这是一个值得关注的方向。你会限制词汇空间而不是值空间,但这就是你想要的。

    【讨论】:

      【解决方案2】:

      这可以满足我的需要,谢谢约翰

      <xs:simpleType name="nonNegativeWholeDecimal">
          <xs:restriction base="xs:decimal">
              <xs:pattern value="[0-9]*(\.[0]*)?"/>
          </xs:restriction>
      </xs:simpleType>
      

      【讨论】:

        最近更新 更多