Implementation Notes

From MicroXML Community Group
Jump to: navigation, search

These are general purpose, cross-platform notes for implementors. Please keep any platform or language-specific notes elsewhere.

You can implement MicroXML by implementing the entire grammar presented in the Syntax section of the spec, perhaps using a parser generator tool. There are but a few added requirements not expressed in the syntax:

  • normalize line breaks prior to application of the grammar ("translating both the two-character sequence #xD followed by #xA, and any #xD that is not followed by #xA, to a single #xA character")
  • ensure that for each element the name in the end tag matches the name in the start tag
  • ensure that all the attributes of a given element have distinct names
  • ensure that for all numeric character references, the referent matches the "char" production

See https://github.com/jclark/microxml-er for a specification of one error recovery mechanism.