This example shows how to handle "type-less content" such as
mixed content models, xsd:anyType/xsd:anySimpleType, and
xsd:any/xsd:anyAttribute in the Embedded C++/Parser mapping.
In this example we use mixed content model to describe text
with embedded links, e.g.,
This paragraph talks about time.
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.
anchor.hxx
Anchor type that captures the information about a link.
text.map
Type map. It maps XML Schema anchor types defined in
text.xsd to C++ anchor class defined in anchor.hxx.
text-pskel.hxx
text-pskel.ixx
text-pskel.cxx
Parser skeletons generated by XSD/e from text.xsd and
text.map.
driver.cxx
A parser implementation and a driver for the example. The
parser implementation prints the transformed text to STDOUT.
The driver first constructs a parser instance from the parser
implementation mentioned above and a couple of predefined
parsers for the XML Schema built-in types. In then invokes
this parser instance to parse the input file.
To run the example on the sample XML instance document simply
execute:
$ ./driver text.xml
The example reads from STDIN if input file is not specified:
$ ./driver