From railML 2 Wiki
Jump to navigation Jump to search

XML Syntax issues

Correct quoting of XML attribute values

Sometimes there is a little confusion about the correct XML syntax in attribute definitions. Which version is valid, which not?

  1. <element attribute="value"/>
  2. <element attribute='value'/>

The W3C XML specification gives us the answer: both are correct!

Usage in XML parsers and XML processors

Thus each XML parser has to accept both versions (according to the W3C standard), and you may choose to use either one in your output.

From current experience, it has to be noted that XML files with "double quotes" as attribute delimiters are much more common than XML file with 'single quotes'.

Character references

A railML® file may contain character references such as every other XML file, e.g. &#252; or &#xFC; for the ü character.

W3C Definition Character Reference

A character reference refers to a specific character in the ISO/IEC 10646 character set, for example one not directly accessible from available input devices.
[66] CharRef  ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
If the character reference begins with " &#x ", the digits and letters up to the terminating ; provide a hexadecimal representation of the character's code point in ISO/IEC 10646. If it begins just with " &# ", the digits up to the terminating ; provide a decimal representation of the character's code point.

That means, character references may occur everywhere independent of the encoding declaration on top of the XML file. For the attribute-styled railML® files, they mainly may occur in attributes. Please be aware of this topic by consuming railML® files. For further info, e good entry point might be the List of XML and HTML character entity references (Wiki banner.png).