summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/order/element/README
blob: 19f2381bb5c9eacbbf8f8e2e9d0a1dbc13593b2c (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
This example shows how to use ordered types to capture and maintain
element order, including element wildcards.

The example consists of the following files:

transactions.xsd
  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.

library.xml
  Sample XML instance document.

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