blob: 48d40d61838e35d36eb758fa9f914cd5679f4a05 (
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
46
47
|
This example shows how to use the C++/Tree mapping together with XPath.
In particular, it shows how to execute an XPath query on the underlying
DOM document and then handle the result using the more convenient object
model representation. For more information on maintaining association
with the underlying DOM document, refer to Section 5.1, "DOM Association"
in the C++/Tree Mapping User Manual.
You will need the XQilla library[1] which provides XQuery and XPath 2
support on top of Xerces-C++ in order to build and run this example.
[1] http://xqilla.sourceforge.net
The example consists of the following files:
people.xsd
XML Schema definition for a simple person record vocabulary.
people.xml
Sample XML instance document.
people.hxx
people.cxx
C++ types that represent the person record 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 people.xsd.
dom-parse.hxx
dom-parse.cxx
Definition and implementation of the parse() function that parses an
XML document to a DOM document.
driver.cxx
Driver for Xerces-C++ 3.x.y/XQilla 2.2.x. It first calls the above
parse() function to parse the input file to a DOM document using
XQilla-provided DOM Implementation with support for XPath 2. It
then parses the DOM document to the object model. Finally, it
prepares and executes an XPath query on the underlying DOM
document and then handles the result by getting back from the
returned DOM nodes to object model nodes.
driver-2.cxx
Driver for Xerces-C++ 2.x.y/XQilla 2.1.x. It performs the same set
of actions as driver.cxx above.
To run the example on the sample XML document simply execute:
$ ./driver people.xml
|