在 XML Schema 中,Facets 是用于对简单类型进行约束和限定的机制。Facets 允许你定义关于数据的规则,例如数值的范围、字符串的长度、日期的格式等。Facets 在 <xs:simpleType> 元素内使用,用于对基本数据类型进行约束。以下是一些常见的 Facets:

1. <xs:minInclusive> 和 <xs:maxInclusive>:

用于定义最小和最大包含值的限定。
<xs:simpleType name="positiveInteger">
  <xs:restriction base="xs:integer">
    <xs:minInclusive value="1"/>
  </xs:restriction>
</xs:simpleType>

在这个例子中,positiveInteger 类型的值必须大于或等于1。

2. <xs:minExclusive> 和 <xs:maxExclusive>:

用于定义最小和最大不包含值的限定。
<xs:simpleType name="positiveInteger">
  <xs:restriction base="xs:integer">
    <xs:minExclusive value="0"/>
  </xs:restriction>
</xs:simpleType>

在这个例子中,positiveInteger 类型的值必须大于0。

3. <xs:totalDigits> 和 <xs:fractionDigits>:

用于定义总位数和小数位数的限定。
<xs:simpleType name="priceType">
  <xs:restriction base="xs:decimal">
    <xs:totalDigits value="8"/>
    <xs:fractionDigits value="2"/>
  </xs:restriction>
</xs:simpleType>

在这个例子中,priceType 类型的值总共可以包含8位数字,其中小数部分有2位。

4. <xs:length>、<xs:minLength> 和 <xs:maxLength>:

用于定义字符串长度的限定。
<xs:simpleType name="shortString">
  <xs:restriction base="xs:string">
    <xs:length value="5"/>
  </xs:restriction>
</xs:simpleType>

在这个例子中,shortString 类型的字符串长度必须为5。

5. <xs:pattern>:

用于定义字符串的正则表达式模式。
<xs:simpleType name="zipCode">
  <xs:restriction base="xs:string">
    <xs:pattern value="[0-9]{5}"/>
  </xs:restriction>
</xs:simpleType>

在这个例子中,zipCode 类型的字符串必须匹配 [0-9]{5} 的正则表达式。

这些 Facets 提供了对数据类型的更精细的限制和规则,确保 XML 文档中的数据满足特定的条件。Facets 可以在 <xs:simpleType> 元素内使用,通过这种方式对数据进行精确的控制。


转载请注明出处:http://www.pingtaimeng.com/article/detail/12283/XML