blob: e81a1499c16d8f70bf03046d8747983ac91e1cc0 (
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
47
48
49
50
|
This example shows how to save/load the C++/Hybrid object model to/from
XDR (eXternal Data Representation) binary format using XDR streams. The
XDR API is available out of the box on most POSIX systems as part of Sun
RPC. On other platforms you may need to install a third-party library
which provides the XDR API.
The example consists of the following files:
library.xsd
XML Schema which describes a library of books.
library.xml
Sample XML instance document.
library.hxx
library.cxx
library-pskel.hxx
library-pskel.cxx
library-pimpl.hxx
library-pimpl.cxx
library-pskel.hxx
library-pskel.cxx
library-pimpl.hxx
library-pimpl.cxx
Object model (the first pair of files), parser skeletons (the
second pair), parser implementations (the third pair), serializer
skeletons (the fourth pair), and serializer implementations (the
fifth pair). These files are generated by the XSD/e compiler from
library.xsd. The --generate-parser, --generate-serializer, and
--generate-aggregate options were used to request the generation
of the parsing and serialization code. The --generate-insertion and
--generate-extraction options were used to generate the insertion
and extraction operations for the XDR streams.
driver.cxx
Driver for the example. It first calls the parser that constructs
the object model from the input XML file. It then saves the object
model to the XDR representation and loads it back. Finally, the
driver calls the serializer to serialize the loaded object model
back to XML.
To run the example on the sample XML instance document simply execute:
$ ./driver library.xml
The example reads from STDIN if input file is not specified:
$ ./driver <library.xml
|