blob: 5a467e02061957a644fe462061b776adeba73e9d (plain
This example shows how to perform stream-oriented, partially in-memory
XML processing using the C++/Tree mapping. With the partially in-memory
parsing and serialization only a part of the object model is in memory at
any given time. With this approach we can process parts of the document
as they become available as well as handle documents that are too large
to fit into memory.
The example consists of the following files:
XML Schema which describes a simple object position vocabulary. The
position is represented as a potentially large series of latitude and
Sample object position document.
C++ types that represent the position vocabulary as well as parsing
and serialization functions. These are generated by XSD from
Stream-oriented DOM parser implementation that is built on top of the
Xerces-C++ SAX2 parser in the progressive parsing mode. This parser
allows us to parse an XML document as a series of DOM fragments.
Stream-oriented DOM serializer implementation that allows us to
serialize an XML Document as a series of object model fragments.
Input stream implementation with the special-purpose schema grammar
decompression algorithm. It is used internally by the streaming parser.
Driver for the example. It parses the input file into a series of DOM
fragments which are then parsed into the object model fragments. The
driver prints the information from the document as it becomes available.
It also serializes the object model fragments into a new XML document
To run the example simply execute:
$ ./driver position.xml
The serialization results are written to the out.xml file.