C validating xml xsd
With XSD/e you can have all the benefits of using XML without any of the drawbacks.
Your application stays small and fast and the code you write will be enjoyable to work with.
Provided with a schema, XSD/e generates C++ classes that represent the given XML vocabulary as well as parsing and serialization code.
You can then access the data stored in XML using types and functions that semantically correspond to your application domain rather than dealing with the intricacies of reading and writing XML: Manually handling XML in mobile and embedded applications with low-level APIs such as SAX and DOM traditionally leads to increased complexity, poor performance, and a large footprint.
In addition to XML, you can serialize the object model into a number of compact binary formats, for example, for storage or over-the-wire transfer.
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.
XSD/e has been successfully used in the following mobile and embedded application domains: XSD/e supports several distinct methods, called mappings, for manipulating the data stored in XML.
It provides XML parsing, serialization, XML Schema validation and XML data binding while maintaining a small footprint and portability.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++.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.For example, a validating parser executable can be as small as 120KB in size and process a 10MB/s XML stream.
Alternatively, you can forego the in-memory representation and process the data as it becomes available using the lower-level C++/Parser (for XML parsing) and C++/Serializer (for XML serialization) mappings.
The C++/Hybrid mapping also supports the hybrid, partially in-memory, partially event-driven processing model which allows you to load/save XML documents a small fragment at a time.