XML区分大小写吗?

时间:2011-09-14 10:25:18

标签: xml case-sensitive

简短问题

XML是否区分大小写?

更长的问题

例如:

<Shirt color="Red"/>

属性颜色属于string类型,可能包含一组有效颜色(RedBlueGreen)。

为了验证XML,我使用了以下XSD:

  <xs:simpleType name="ColorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Red"/>
      <xs:enumeration value="Blue"/>
      <xs:enumeration value="Green"/>
    </xs:restriction>
  </xs:simpleType>

期望接受红色,蓝色和绿色的不同案例变体?或者XML被广泛接受为区分大小写?

2 个答案:

答案 0 :(得分:74)

简答:

是 - XML区分大小写。

更长的答案:

它被广泛接受为区分大小写,但如果您想更灵活地接受,请查看下面的问题,该问题讨论了不区分大小写的枚举:

XML Schema Case Insensitive Enumeration of Simple Type String

答案 1 :(得分:15)

使用XSD 1.1,您可以使用断言实现不区分大小写的枚举:

<xs:simpleType name="RGB">
  <xs:restriction base="xs:string">
    <xs:assert test="lower-case($value) = ('red', 'green', 'blue')"/>
  </xs:restriction>
</xs:simpleType>

最新版本的Saxon和Xerces支持XSD 1.1。