xmlcase-sensitive

Case conventions on element names?


Are there any formal recommendations on element casing in XML?

I know XHTML uses lowercase element names (as opposed to HTML which canonically uses uppercase but is case-insensitive.)

But I'm talking about XML for generic content.

lowercase:

<customer> 
   <accountnumber>619</accountnumber>
   <name>Shelby Lake</name>
</customer>

camelCase:

<customer> 
   <accountNumber>619</accountNumber>
   <name>Shelby Lake</name>
</customer>

PascalCase:

<Customer> 
   <AccountNumber>619</AccountNumber>
   <Name>Shelby Lake</Name>
</Customer>

UPPERCASE:

<CUSTOMER> 
   <ACCOUNTNUMBER>619</ACCOUNTNUMBER>
   <NAME>Shelby Lake</NAME>
</CUSTOMER>

Note: I'm looking for cited guidelines rather than opinions. But the opinion with the most up-votes can be considered a guideline.


Solution

  • Most XML standards originating from the W3C tend to use lower case with hyphens.

    There is a philosophical distinction between seeing XML as a format for platform neutral documents, which W3C standards try to encourage, and languages such as XAML which see XML as a serialisation of a platform specific object graph.

    If you're not using XML as a platform neutral document format, but as an application specific serialisation, then you might as well save yourself some bother and have a 1:1 correspondence between the XML names and the platform specific names. But almost any other object graph format is better than XML for that purpose.

    If you are trying to use it in a platform neutral way, then you might want to fit in with XHTML, XSLT, SVG, XProc, RelaxNG and the rest.

    On the use of hyphens in identifiers and XSLT expressions - there are many programming languages where adding whitespace will change the meaning of code (Python, JavaScript), and notable programming languages which allow hyphens in identifiers, such as LISP. So whether this bothers you is more about your experience with those languages than about XML naming itself.