| Introduction |

| Xerces-C++ comes with sample applications that demonstrate salient features of the parser. They are simple applications written on top of the SAX and DOM APIs provided by the parser. Sample XML data files are provided in the `samples/data` directory.

| Running the Samples |

The sample applications are dependent on the Xerces-C++ shared library (and could also depend on the ICU library if you built Xerces-C++ with ICU). Therefore, on Windows platforms you must make sure that your `PATH` environment variable is set properly to pick up these shared libraries at runtime.

On UNIX platforms you must ensure that `LD_LIBRARY_PATH` environment variable is set properly to pick up the shared libraries at runtime. (UNIX gurus will understand here that `LD_LIBRARY_PATH` actually translates to `LD_LIBRARY_PATH` on Solaris and Linux, `SHLIB_PATH` on HP-UX, `DYLD_LIBRARY_PATH` on Mac OS X, and `LIBPATH` on AIX).

On both Windows and UNIX platforms, if the parser is built with the ICU message loader or message catalog loader, then you may need to set another environment variable, `XERCESC_NLS_HOME`, to point to the xerces-c-3.3.0/msg directory, which is where the message files reside.

Once you have set up the environment variables, you can run the samples by opening a command window (or your shell prompt for UNIX environments).

| Xerces-C++ Samples |

- SAXCount
  SAXCount counts the elements, attributes, spaces and characters in an XML file.
- SAXPrint
  SAXPrint parses an XML file and prints it out.
- SAX2Count
  SAX2Count counts the elements, attributes, spaces and characters in an XML file.
- SAX2Print
  SAX2Print parses an XML file and prints it out.
- DOMCount
  DOMCount counts the elements in a XML file.
- DOMPrint
  DOMPrint parses an XML file and prints it out.
- CreateDOMDocument
  CreateDOMDocument creates a DOM tree in memory from scratch.
- MemParse
  MemParse parses XML in a memory buffer, printing the number of elements and attributes.
- Redirect
  Redirect redirects the input stream for external entities.
- PParse
  PParse demonstrates progressive parsing.
- StdInParse
  StdInParse demonstrates streaming XML data from standard input.
- EnumVal
  EnumVal shows how to enumerate the markup declarations in a DTD Grammar.
- SEnumVal
  SEnumVal shows how to enumerate the markup declarations in a Schema Grammar.
- PSVIWriter
  PSVIWriter exposes the underlying PSVI of the parsed XML file.
- SCMPrint
  SCMPrint parses an XSD file and prints information about the Schema Component Model.
- XInclude
  XInclude parses an XML file and writes a new XML file with the xi:include elements expanded.

Copyright © 1999-2017 The Apache Software Foundation. All Rights Reserved.