Rosetta Stone (Photo (c) skëne, Flickr)
Rosetta Stone (Photo (c) skëne, Flickr)

When I started playing with XML, I was an early adopter. It was interesting, intrigant. Now, everybody knows what XML is and other needs arise, such as “how the heck do I write those tags?”.

The purpose of this document is to propose a standard for writing elements and attributes in a coherent way.

Why?

I googled for XML coding convention, XML coding style, XML writing convention, XML writing style… I got basically nothing interesting.

So I went to the industry leaders and tried to discover a trend, a de facto standard. Sun with Java and Eclipse have a convention; Apache, OASIS and W3C have another one. Sun provides Java SE, Java EE with numerous XML files.

Apache provides Ant, Maven, Jelly and many projects using XML. W3C provides many core specifications (XML, XML Schema…), while OASIS provides application standards (ebXML, OpenDocument, DocBook…).

Oracle exports data from database in another way.

Proposal

Therefore, I enforce & recommend the following rule, based on OASIS:

  • Applies to both elements and attributes.
  • Applies, when possible to attributes’ values.
  • First word is all lowercase.
  • Following words are glued to the previous, in lowercase except for the initial.
  • Acronyms are all uppercase.
  • Use of intelligible words & abbreviations.

It is very similar to the naming convention used for a Java method (function).

Examples

Good Bad
element Element
elementName ElementName, element-name
attribute Attribute, att
allowLinking allow-linking, AllowLinking
antiJARLocking antiJarLocking
cacheTTL Cache-TTL, cache-TTL, cacheTtl
database db, dataBase

Preferred keywords

This is a list of preferres keywords for use in XML tags (elements, attributes and value of attributes).

Keyword Comment Prefer over
description Description of an item desc, descr
database db
name
size
scale
default Default value. def
javaName Name in Java.
className Name of a class.

References

Source of Inspiration

This standard is used by / derived from:

Acronym Name Version Organization URL
SVG Scalable Vector Graphics 1.1 W3C http://www.w3.org/TR/SVG11
RSS Really Simple Syndication 2.0 Harvard LawSchool http://blogs.law.harvard.edu/tech/rss
Torque XML database schema DTD 3.2 Apache http://db.apache.org/torque/dtd

Other References