Invisible XML

Invisible XML is a language for describing the implicit structure of data, and a set of technologies for making that structure explicit as XML markup. It allows you to write a declarative description of the format of some text and then leverage that format to represent the text as structured information.

Specification

Invisible XML (ixml) 1.0 was published on 10 June, 2022. The same specification was published as a Final Community Group Report by the W3C on 12 December, 2023. The grammar of Invisible XML is defined with Invisible XML. The ixml grammar for ixml is available in ixml format or in xml format. Invisible XML was developed by the Invisible Markup Community Group (CG) at the W3C.

The current working draft is also available. This draft includes the resolved errata and any additional proposals adopted since the 1.0 specification was published.

Discussion

If you’re interested in following along in the discussion, please join the community group! You can also:

Tutorials

Implementations

Test suite

The ixml GitHub repository includes a comprehensive test suite. It is also available as a browsable catalog.

Schemas

The XML versions of Invisible XML grammars conform to the RELAX NG schemas provided.

Example grammars

A selection of sample grammars are available including:

In addition, Gunther Rademacher's grammar converter is able to convert Invisible XML to W3C-style EBNF. This can be used to produce syntax diagrams using the RR tool.

Other resources

Other things named “ixml”

If you found your way to this page with a web search for “ixml” and you weren’t looking for Invisible XML, you might have been looking for one of these:

  • iXML, a standard for embedded metadata in production media files.
  • ixml, an iterative event-driven XML parser with a standard Python iterator interface.
  • IXmlNode, a Microsoft DOM interface.
  • iXML Library, an SAP API for handling XML documents in DOM format. (sic)

Bibliography

There are a few additional papers and presentations on the development of Invisible XML