简短问题
XML是否区分大小写?
更长的问题
例如:
<Shirt color="Red"/>
属性颜色属于string
类型,可能包含一组有效颜色(Red
,Blue
和Green
)。
为了验证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被广泛接受为区分大小写?
答案 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。