MicroXML is a simplified subset of normal XML 1.0 (5th edition) created by James Clark and John Cowan. The MicroXML specification is currently the subject of a W3C Community Group, but is not a W3C Standard or on the Standards Track. An informative pair of articles about it by Uche Ogbuji are here and here.
The MXL Parser is designed to parse MicroXML by two different methods. It produces a Data Model in stricr accordance with the spec, and also provides SAX-type push parsing at the same time. Either or both are selectable.
MXL reports as errors everything in the document that is not conformant to the MicroXML spec. In its FullXML mode, it does the same, and when in its SAX mode it also reports the content of four constructs excluded from the data model: comments, DOCTYPEs, CDATA sections, and PIs. They each have their own callback function. None of the four ever appear in the Data Model itself, and the parser does not read any referenced DTD or schema. Therefore it will not add attributes from a DTD (such as the @class used in DITA) to the elements.
MXL is written in C++ and is currently compiled with Visual C++ 6.0. It references windows.h along with stdio.h and stdlib.h, but does not use Microsoft-specific functions, so it should be readily portable to other platforms. The Windows version consists of two parts: mxlparser.dll, the parser itself, and mxl.exe, a simple console driver for it. Downloads are available on the uDoc2Go site for the Windows executables and for the C++ source. The parser is also hosted on GitHub.
The MXL parser is FOSS, released under the Apache license to permit commercial use.