XML is an extremely successful technology, but it has flaws that some say could be fixed by MicroXML, a simpler, backward-compatible specification of XML.
James Clark first proposed the MicroXML specification in a Dec. 13, 2010 blog post. In it, he described MicroXML as a “subset of XML 1.0 that is not intended to replace XML 1.0, but is intended for contexts where XML 1.0 is, or is perceived as, too heavyweight.”
Interest in MicroXML has recently swelled again. On June 12, Uche Ogbuji, partner at Zepheira (an information management solution provider), wrote about MicroXML in an IBM developerWorks blog post. He explained that MicroXML is an attractive alternative because “People are dealing with the complexity of XML namespaces, and with recent XML processing specs, such as XPath, XSLT and XQuery 3.0. Some influential core XML experts looked at the bold possibility of starting over with a simplification of XML itself.”
In a June interview with SD Times, Ogbuji said that “MicroXML has been a move from not inside the establishment; that’s the best way to put it. MicroXML is a bit of a movement of outsiders, but that’s okay because some of the best things in XML have come from outsiders.
“James Clark is one of the most respected computer scientists and engineers in the XML world,” he continued. “So when he came out and said, ‘Let’s simplify XML, and actually I have some specific ideas on how we should do it,’ a lot of people really paid attention.”
MicroXML has been supported and advanced by John Cowan, who wrote an editor’s draft of a specification for MicroXML and also created its first parser, MicroLark. MicroLark is open source (Apache 2.0 license), written in the Java language, and implements several modes of parsing: pull mode, push mode and tree mode.
“MicroXML is a simplified version of XML, in the same way that XML is a simplified version of [Standard Generalized Markup Language],” Cowan told SD Times in an interview.
He said that MicroXML is not intended to compete with existing applications of XML, but to extend the range of XML into places where XML has historically been disfavored for its perceived complexity.