blob: 19f2381bb5c9eacbbf8f8e2e9d0a1dbc13593b2c (plain
This example shows how to use ordered types to capture and maintain
element order, including element wildcards.
The example consists of the following files:
XML Schema which describes various bank transactions. A batch of
transactions can contain any number of different transactions in
any order but the order of transaction in the batch is significant.
Sample XML instance document.
C++ types that represent the given vocabulary as well as a set of
parsing and serialization functions. These are generated by XSD
from transactions.xsd. Note that the --ordered-type option is
used to indicate to the XSD compiler that the batch type is
ordered. We also use the --generate-wildcard option to enable
wildcard support. An element wildcard is used in the batch to
allow transaction extensions.
Driver for the example. It first calls one of the parsing functions
that constructs the object model from the input XML file. It then
iterates over transactions in the batch using the content order
sequence. The driver then performs various modifications of the
object model while showing how to maintain the content order.
Finally, it saves the modified transaction batch back to XML to
verify that the content order is preserved in the output document.
To run the example on the sample XML instance document simply execute:
$ ./driver transactions.xml