summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/order/mixed/README
blob: e66c1adceac312ec9fc025fa63a1d31bb56efbbe (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
This example shows how to use ordered types to capture mixed content
text and to maintain order information between elements and text.

In this example we use mixed content model to describe text with
embedded links in the form:

  This paragraph talks about <a href="uri">time</a>.

The example transforms such text into plain text with references in
the form:

  This paragraph talks about time[uri].

It also saves the modified text back to XML in order to verify the
element and text order.

The example consists of the following files:

text.xsd
  XML Schema which describes "text with links" instance documents.

text.xml
  Sample XML instance document.

text.hxx
text.cxx
  C++ types that represent the given vocabulary as well as a set of
  parsing and serialization functions. These are generated by XSD
  from text.xsd. Note that the --ordered-type-mixed option is used
  to indicate to the XSD compiler that all types with mixed content
  should be automatically treated as ordered.

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 the text and elements in the content order to convert
  the document to its plain text representation. The driver then adds
  another paragraph of text and a link to the object model while showing
  how to maintain the content order. Finally, it saves the modified
  text 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 text.xml