Open source validating xml parser

28-Dec-2016 19:08

Based on the static analysis of the schema, XSD/e generates compact, highly-optimized hierarchical state machines that combine data conversion, validation, and even dispatching in a single step.As a result, the XSD/e-generated code is 2-10 times faster than general-purpose XML Schema validators while maintaining the lowest static and dynamic memory footprints.

This article has been translated to Serbo-Croatian language by Anja Skrba from Entire library is contained in a single header file, and requires no building or configuration. Property Tree library, which presents a higher level interface, and uses Rapid Xml as its default XML parser. Supports XML namespaces, wide range of character sets & encodings. Info from the developer: The packaging is or debian package (not yet in debian repo).

For example, a validating parser executable can be as small as 120KB in size and process a 10MB/s XML stream.

XSD/e is also highly-portable and can be configured to use the C feature set ranging from modern C to highly-restricted embedded C .

Compliant to XML 1.0, partially XML 1.1, DOM lv1, DOM lv2 Core, partially DOM lv3, SAX 1.0/2.0, Namespaces, XML Schema. Instead, it uses an underlying parser like expat, libxml, Xerces or MSXML to do the low level parsing. It aims to provide a more lightweight and hassle-free alternative to MSXML with a focus on native C development (as opposed to managed/. Xml Lite features a simple "pull" programming model with a stream-oriented Xml Reader class.

"The primary goals of Xml Lite are ease of use, performance, and standards compliance." Not tested.

This article has been translated to Serbo-Croatian language by Anja Skrba from Entire library is contained in a single header file, and requires no building or configuration. Property Tree library, which presents a higher level interface, and uses Rapid Xml as its default XML parser. Supports XML namespaces, wide range of character sets & encodings. Info from the developer: The packaging is or debian package (not yet in debian repo).

For example, a validating parser executable can be as small as 120KB in size and process a 10MB/s XML stream.

XSD/e is also highly-portable and can be configured to use the C feature set ranging from modern C to highly-restricted embedded C .

Compliant to XML 1.0, partially XML 1.1, DOM lv1, DOM lv2 Core, partially DOM lv3, SAX 1.0/2.0, Namespaces, XML Schema. Instead, it uses an underlying parser like expat, libxml, Xerces or MSXML to do the low level parsing. It aims to provide a more lightweight and hassle-free alternative to MSXML with a focus on native C development (as opposed to managed/. Xml Lite features a simple "pull" programming model with a stream-oriented Xml Reader class.

"The primary goals of Xml Lite are ease of use, performance, and standards compliance." Not tested.

It includes both full blown as well as lightweight parsers. I'll start with a comparison table giving a quick overview of all available libraires. Hence, Arabica has to be set up and built for one of the underlying parsers before use. Included documentation is sparse but there are a lot of external sites providing docs, examples, tutorials. For example uses Glib::ustring instead of std:strings. : For Win32, libxml 1.0 is better suited than libxml 2.x, due to a nasty glibmm dependency. Various third party SAX/DOM wrappers and language bindings. As usual for a Microsoft product, there are lots of high quality documentation and articles.