blob: 6e54e49c0f97fdf0ec3ba8b3640d289168e1ddc6 (
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
|
This example shows how to use XML Schema polymorphism features such as
xsi:type attributes and substitution groups in the C++/Tree mapping.
The example consists of the following files:
supermen.xsd
XML Schema which describes the "supermen" instance documents.
supermen.xml
Sample XML instance document.
supermen.hxx
supermen.cxx
C++ types that represent the given vocabulary, a set of parsing
functions that convert XML instance documents to a tree-like in-memory
object model, and a set of serialization functions that convert the
object model back to XML. These are generated by XSD from supermen.xsd.
Note also that we use the --generate-polymorphic command line option
and that we don't need to use --polymorphic-type to explicitly mark
types as polymorphic because this is automatically deduced by the
XSD compiler from the substitution groups used in the supermen.xsd
schema.
driver.cxx
Driver for the example. It first calls one of the parsing functions
that constructs the object model from the input file. It then prints
the content of the object model to STDERR. Finally, the driver serializes
the object model back to XML.
To run the example on the sample XML instance document simply execute:
$ ./driver instance.xml
|