it-swarm.cn

XML区分大小写吗?

简短的问题

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被广泛接受为区分大小写?

99
Ian

简答: /

是 - XML区分大小写。

更长的答案: /

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

XML模式大小写简单类型字符串的枚举

74
Jon Egerton

使用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。

15
Michael Kay