116
votes

Short question

Is XML case-sensitive?

Longer question

For example:

<Shirt color="Red"/>

The attribute color is of type string that may contain a set of valid colors (Red, Blue and Green).

To validate the XML, I used the following 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>

Am I expected to accept different case variations of Red, Blue and Green? Or XML is widely accepted as case-sensitive?

2
Yes, it is. One of the first things one learns about XML. - Oded

2 Answers

86
votes

Short Answer:

Yes - XML is case sensitive.

Longer Answer:

It is widely accepted as case sensitive, however if you want to accept more flexibly, take a look at the question below, which discusses having case-insensitive enumerations:

XML Schema Case Insensitive Enumeration of Simple Type String

17
votes

With XSD 1.1 you can achieve a case-insensitive enumeration using an assertion:

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

XSD 1.1 is supported in recent releases of Saxon and Xerces.