C++/Parser: Validating XML Parsing
C++/Parser is an event-driven, stream-oriented W3C XML Schema to C++ mapping for mobile and embedded systems. It generates validating parser skeletons for data types defined in XML Schema which can be extended with application logic. In comparison to the traditional, tree-like data binding model, the C++/Parser mapping allows you to handle large XML documents that would not fit into memory, perform stream-oriented processing, or build your own in-memory representations using existing data types. For an introduction to the C++/Parser mapping refer to the Hello World Example from the C++/Parser Mapping Getting Started Guide.
Features
- High-performance XML Schema validation in the generated code (perfect parser).
- No dynamic memory allocations during validation (non-recursive parsing).
- Small memory footprint, including heap and stack usage.
- Highly-portable, can be used without STL, RTTI, iostream, C++ exceptions, and templates.
- Ready to use parsers for all XML Schema built-in types.
- Automatic generation of sample parser implementations and test drivers.
- Support for XML Schema polymorphism (
xsi:type
and substitution groups). - Support for parsing XML documents with varying root elements.
- Support for type-less content: mixed content model,
xsd:anyType/xsd:anySimpleType
, andxsd:any/xsd:anyAttribute
. - Support for delegation-based (tiein) and inheritance-based (mixin) parser reuse.
- Customizable XML Schema namespace to C++ namespace mapping.
- Support for schema importing, inclusion and chameleon-style inclusion.
- Automatic morphing of anonymous types into named ones.
- Support for the file-per-schema and file-per-type compilation models.
- Built-in support for UTF-8, UTF-16, ISO-8859-1, and US-ASCII encoded XML documents.
- Configurable application character encoding (UTF-8 or ISO-8859-1).
- Support for custom memory allocators.
Documentation
Getting Started Guide | An introduction to the C++/Parser mapping with examples. Also available in PDF and PostScript. |
---|---|
XSD/e Compiler Manual | The XSD/e compiler command line interface documentation. |
XSD/e Wiki Pages | XSD/e community resources, such as FAQs, HOWTOs, etc. |
Support
We provide free, best-effort technical support for XSD/e via the xsde-users mailing list. Simply send an email to this mailing list with the description of a bug or a problem that you encountered. Please follow the Posting Guidelines to receive a prompt reply.
We also offer priority support on a commercial basis. Visit our support page for more information.
Resources
XSD/e project page | Source code, build instructions and other information for XSD/e compiler developers. |
---|---|
XML Schema Part 0: Primer | An easily approachable description of the XML Schema facilities. It is oriented towards quickly understanding how to create schemas using the W3C XML Schema language. |