Is XML case-sensitive?

XmlCase Sensitive

Xml Problem Overview


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?

Xml Solutions


Solution 1 - Xml

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:

https://stackoverflow.com/questions/359359/xml-schema-case-insensitive-enumeration-of-simple-type-string

Solution 2 - Xml

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionIanView Question on Stackoverflow
Solution 1 - XmlJon EgertonView Answer on Stackoverflow
Solution 2 - XmlMichael KayView Answer on Stackoverflow