summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/dbxml/README
blob: 59e67d04852c4c065d58f3db7043255975bbae75 (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 the C++/Tree mapping on top of the Berkeley
DB XML embedded XML database. This example is described in detail in the
"C++/Tree Mapping and Berkeley DB XML Integration Guide" which can be
found in the documentation/cxx/tree/dbxml directory of the XSD
distribution.

You will need the Berkeley DB XML libraries[1] installed in order to build
and run this example. The makefiles and project files for this example link
to the DB XML library names corresponding to version 2.3.X. Earlier and later
versions can also be used but may require adjustments to the library names
being linked to.

Note that due to the incomplete DOM API implementation provided by DB
XML (as of version 2.3.10), the generated code and your application
should be compiled with the DBXML_DOM macro defined in order to avoid
using unsupported parts of the API.

The example consists of the following files:

library.xsd
  XML Schema which describes a library of books.

library.hxx
library.cxx
  C++ types that represent the given vocabulary, a set of parsing
  functions that convert XML instance documents to a tree-like in-memory
  object model, and a set of serialization functions that convert the
  object model back to XML. These are generated by XSD from library.xsd.

driver.cxx
  Driver for the example. It performs the following four operations on
  the database:

    * Create a new document in DB from an object model
    * Create an object model from a document in DB
    * Create an object model from a document fragment in DB
    * Update a document fragment in DB from an object model


To run the example simply execute:

$ ./driver


[1] http://www.sleepycat.com/products/bdbxml.html