https://invisiblexml.org/ [logo_gradi] 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 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 at the W3C. Tutorials * Steven Pemberton's hands-on tutorial is a great way to begin learning how to write your own grammars. * Norm Tovey-Walsh has written introductory material about ixml and about writing grammars on xml.com. Implementations * Steven Pemberton's implementation is available online as a web service. * CoffeePot is Norm Tovey-Walsh's Java implementation. * joiXML is John Lumley's browser-based JavaScript implementation. * Aparecium is Michael Sperberg-McQueen's proof-of-concept implementation in XQuery. * JayParser is Tomos Hillman's XSLT implementation (in progress). * Hywel is Bethan Tovey-Walsh's Python implementation (in development) 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: * ABNF, the grammar notation used in IETF Requests for Comments, as defined in RFC 5234. * ISBN, International Standard Book Numbers. * ISO 8601, the standard ISO date, time, datetime, duration, interval, and recurrence formats, as defined in ISO 8601:2004. * BCP 47, tags for identifying languages, as defined in BCP 47. In addition, Gunther Rademacher's grammar converter will attempt to output Invisible XML. Other Tools * Gingersnap is a library of XSLT modules for processing (the XML form) of Invisible XML grammars. Bibliography There are a few additional papers and presentations on the development of Invisible XML * Hillman, Tomos. XSLT Earley: First Steps to a Declarative Parser Generator. Presented in two halves at XML Prague, 2020 and Declarative Amsterdam, 2020. * Pemberton, Steven. Invisible XML: introduces the concepts, and develops a notation to support them. * Pemberton, Steven. Data just wants to be (format) neutral: discusses issues with automatic serialisation, and the relationship between Invisible XML grammars and data schemas. * Pemberton, Steven. Parse Earley, Parse Often: How to parse anything to XML: discusses issues around grammar design, and in particular parsing algorithms used to recognise any document, and converting the resultant parse-tree into XML, and gives a new perspective on a classic algorithm. * Pemberton, Steven. On the Descriptions of Data: discusses the Usability of Notations: Discusses changes to the design following experience with using it, giving examples of its use to develop data descriptions, and in passing, suggests other output formats. * Pemberton, Steven. On the Specification of Invisible XML: describes decisions made during the production of the specification of ixml. * Sperberg-McQueen, C. M. "Aparecium: An XQuery / XSLT library for invisible XML." Presented at Balisage: The Markup Conference 2019, Washington, DC, July 30 - August 2, 2019. In Proceedings of Balisage: The Markup Conference 2019. Balisage Series on Markup Technologies, vol. 23 (2019). https://doi.org/10.4242/ BalisageVol23.Sperberg-McQueen01.