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
|