寻找一种模式,以便我的 XSD 可以强制格式

Looking for a pattern so my XSD can force the format

我是新手,但我想在我的 XSD 中设置一个模式,将字符串格式化为 999.999,其中左侧数字必须介于 1 和 999 之间,右侧数字必须介于 1 和 999 之间在 0-999 之间。

如有任何帮助,我们将不胜感激。

您拥有的号码的正则表达式将是

[1-9][0-9]{0,2}\.[0-9]{1,3}

demo

在 XSD 中,您不需要任何锚点,因为 pattern 属性值是默认锚定的。

"Between" 在这种情况下可以用两种不同的方式来理解,具体取决于您是否需要恰好三位数。

如果每边刚好需要三个:

[1-9][0-9]{2}\.[0-9]{3}

如果您只需要一个介于 1/0 和 999 之间的数字:

[1-9][0-9]{0,2}\.[0-9]{1,3}

解释:

  • [0-9]匹配任何数字,[1-9]匹配除零以外的任何数字。
  • x{n} 匹配 x n 次,x{n,m} 匹配 x n 到 m 次。
  • \. 匹配文字点。

xsd:string 基数使用正则表达式方面的替代方法是对 [=15= 使用 xsd:totalDigitsxsd:fractionDigitsxsd:minExclusive 等数字方面]基地:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > 
  <xsd:element name="x">
    <xsd:simpleType>
      <xsd:restriction base="xsd:decimal"> 
        <xsd:totalDigits value="6"/> 
        <xsd:fractionDigits value="3"/> 
        <xsd:minInclusive value="1"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:element>
</xsd:schema>

根据您的要求,这可以更好地控制可接受的内容,尤其是当您的数据基本上是数字时。