如何通过XSD限制定义价格数据范围

时间:2014-04-23 14:11:58

标签: xml regex xsd

我很难对XML标记进行限制。

XML标记名称=价格,值= $ 150

限制:价格必须包含' $'后跟一个0到400之间的浮点数。

我需要一个具有上述限制的价格的XSD定义。

1 个答案:

答案 0 :(得分:1)

此XSD:

<?xml version='1.0' encoding='UTF-8'?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="prices">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="price" maxOccurs="unbounded">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:pattern value="\$[1-3]?[0-9]?[0-9]?(\.[0-9][0-9])?|(\$400(\.00)?)"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

允许这些价格:

<?xml version="1.0" encoding="utf-8" ?>
<prices>
  <price>$0</price>
  <price>$1</price>
  <price>$1.00</price>
  <price>$1.99</price>
  <price>$400.00</price>
  <price>$400</price>
  <price>$.99</price>
</prices>