blob: 266a8ffbfcb32127e52cf2206e1367c7ab3c11e1 (
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
48
|
This example shows how to embed the binary representation of the schema
grammar into an application and then use it with the C++/Tree mapping to
parse and validate XML documents. This example is similar to the 'caching'
example except that it loads the binary representation of the schemas
embedded into the application instead of pre-parsing external schema files.
The example consists of the following files:
xsdbin.cxx
Tool for converting one or more XML Schema files to the compressed binary
representation. The output is written as a pair of C++ source files
containing the array with the binary data. Use the --help option to see
the tool's usage information.
library.xsd
XML Schema which describes a library of books.
library.xml
Sample XML instance document.
library.hxx
library.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 the XSD compiler from library.xsd.
library-schema.hxx
library-schema.cxx
Binary representation of the library.xsd schema. These files are generated
by the xsdbin tool.
grammar-input-stream.hxx
grammar-input-stream.cxx
Input stream implementation with the special-purpose schema grammar
decompression algorithm. It is used to load the binary schema representation
produced by the xsdbin tool.
driver.cxx
Driver for the example. It first sets up the Xerces-C++ DOM parser and
loads the embedded binary schema grammar for validation. It then performs
ten iterations that parse the input file to a DOM document using the DOM
parser and call one of the parsing functions that constructs the object
model from this DOM document. On each iteration the driver prints a number
of books in the object model to STDERR.
To run the example on the sample XML instance document simply execute:
$ ./driver library.xml
|