This example measures the performance of XML parsing in the C++/Parser mapping. It also shows how to structure your code to achieve the maximum performance for this operation. The example consists of the following files: test.xsd XML Schema which describes the test vocabulary. test-50k.xml Test XML document. gen.cxx Program to generate a test document of desired size. To compile and link this program we can use the following commands (replace 'c++' with your C++ compiler name): c++ -c gen.cxx c++ -o gen gen.o To generate the test document execute, for example: ./gen 633 test-100k.xml time.hxx time.cxx Class definition that represents time. test-pskel.hxx test-pskel.ixx test-pskel.cxx Parser skeletons generated by the XSD compiler from test.xsd using the following command line: xsd cxx-parser --skel-file-suffix=-xerces-pskel test.xsd Or if using Expat instead of Xerces-C++ as the underlying XML parser: xsd cxx-parser --xml-parser=expat --skel-file-suffix=-expat-pskel test.xsd driver.cxx Driver for the example. It first parses the command line arguments and reads the entire document into a memory buffer. It then creates a SAX parser and pre-parses and caches the schema if validation is enabled (Xerces-C++ only). Finally, it runs the performance measurement loop which on each iteration parses the XML document from the in-memory buffer. To compile and link the example manually from the command line we can use the following commands (replace 'c++' with your C++ compiler name): c++ -c test-xerces-pskel.cxx c++ -c time.cxx c++ -DXERCES_PARSER -c driver.cxx c++ -o driver driver.o time.o test-xerces-pskel.o -lxerces-c Or if using Expat as the underlying XML parser: c++ -c test-expat-pskel.cxx c++ -c time.cxx c++ -c driver.cxx c++ -o driver driver.o time.o test-expat-pskel.o -lexpat To run the example on a test XML document execute: ./driver test-50k.xml The -v option can be used to turn on validation in the underlying XML parser (only makes sense for Xerces-C++, off by default). The -i option can be used to specify the number of parsing iterations (1000 by default). For example: ./driver -v -i 100 test-50k.xml