blob: 20960649b27263091fafb799f2cd6332b378e090 (
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
|
This example shows how to save/load the object model to/from XDR
(eXternal Data Representation) binary format using XDR streams.
The XDR API is available on most UNIX and GNU/Linux systems as part
of Sun RPC (libtirpc-dev package on Debian/Ubuntu, libtirpc-devel
package on Fedora/RHEL, and as a part of the Standard C Library on
FreeBSD and MacOS). On Windows 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
C++ types that represent the given vocabulary as well as data
representation stream insertion and extraction operations.
These files are generated by the XSD compiler from library.xsd using
the following command line:
xsd cxx-tree --generate-ostream --generate-comparison \
--generate-insertion 'XDR' --generate-extraction 'XDR' library.xsd
Note that the --generate-insertion and --generate-extraction options
are used to generate the insertion and extraction operations for XDR
stream.
driver.cxx
Driver for the example. It first calls one of the parsing functions
that constructs the object model from the input XML file. It then
saves the object model to the XDR representation and loads it back.
Additionally, it prints the content of the object model before saving
it to the XDR representation and after loading it from the XDR
representation.
To compile and link the example manually from the command line we can use
the following commands (replace 'c++' with your C++ compiler name):
c++ -c library.cxx
c++ -c driver.cxx
c++ -o driver driver.o library.o -ltirpc -lxerces-c
To run the example on the sample XML instance document execute:
./driver library.xml
|