summaryrefslogtreecommitdiff
path: root/xsd-examples/cxx/tree/mixed/README
blob: fc23faaafa18277362ffa6a02efdce1365521b74 (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 access the underlying DOM nodes in the
C++/Tree mapping in order to handle raw, "type-less content" such
as mixed content models, anyType/anySimpleType, and any/anyAttribute.

For an alternative (and recommended) approach that employs ordered
types see the order/mixed example.

For an alternative approach that employes type customization see
examples in the custom/ directory, in particular, custom/mixed and
custom/wildcard.

In this example we use mixed content model to describe text with
embedded links, e.g.,

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

The example transforms such text into plain text with references, e.g.,

  This paragraph talks about time[0].

  [0] uri

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 and a set of parsing
  functions that convert XML instance documents to a tree-like in-memory
  object model. These are generated by XSD from text.xsd.

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 uses
  both the underlying DOM and statically-typed mapping to perform the
  transformation.

To run the example on the sample XML instance document simply execute:

$ ./driver text.xml