summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/streaming/README
blob: ac7e7f06fa4451d024a5717661546d776df133c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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:

position.xsd
  XML Schema which describes a simple object position vocabulary. The
  position is represented as a potentially large series of latitude and
  longitude measurements.

position.xml
  Sample object position document.

position.hxx
position.cxx
  C++ types that represent the position vocabulary as well as parsing 
  and serialization functions. These are generated by XSD from
  position.xsd.

parser.hxx
parser.cxx
  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.

serializer.hxx
serializer.cxx
  Stream-oriented DOM serializer implementation that allows us to  
  serialize an XML Document as a series of object model fragments.

driver.cxx
  Driver for the example. It first 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. The driver then creates a new XML document (out.xml) by
  creating and serializing a series of object model fragments.

To run the example simply execute:

$ ./driver position.xml

The serialization results are written to the out.xml file.