<?xml version="1.0" standalone="no"?> <!-- * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. --> <!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd"> <s1 title="&XercesCName; Samples"> <s2 title="Introduction"> <p>&XercesCName; comes packaged with sample applications that demonstrate salient features of the parser using 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.</p> </s2> <s2 title="Building the Samples"> <p>For general information related to building--including platform-specific information--please refer to the <jump href="build.html">Build Page</jump>. This information covers a standard installation where one has downloaded the entire Xerces-C binary distribution to a place on the filesystem to which one has write access. Below, we cover what to do if Xerces-C has been preinstalled on a system into a directory to which one does not have write access, but compiling the samples is desired.</p> <p> In this situation, just do the following: </p> <ol> <li>Copy the entire contents of the <code>samples</code> directory into a directory named samples that you have write-access to;</li> <li>Set the <code>XERCESCOUT</code> environment variable to point to the directory that is the parent of the newly-created <code>samples</code> directory;</li> <li>Proceed as normal to compile the samples (not forgetting to set <code>XERCESCROOT</code> to point to the place on the file system where Xerces-C's include files etc. are to be found);</li> </ol> <p>Once this is done, the compiled samples will be placed in a directory named <code>bin</code>; this directory will be located in the same directory as the <code>samples</code> directory created in step 1 above.</p> </s2> <s2 title="Running the Samples"> <p>The sample applications are dependent on the &XercesCName; shared library (and could also depend on the ICU library if you built &XercesCName; with ICU). Therefore, on Windows platforms you must make sure that your <code>PATH</code> environment variable is set properly to pick up these shared libraries at runtime.</p> <p>On UNIX platforms you must ensure that <ref>LIBPATH</ref> environment variable is set properly to pick up the shared libraries at runtime. (UNIX gurus will understand here that <ref>LIBPATH</ref> actually translates to <em>LD_LIBRARY_PATH</em> on Solaris and Linux, <em>SHLIB_PATH</em> on HP-UX, <em>DYLD_LIBRARY_PATH</em> on Mac OS X, and stays as <em>LIBPATH</em> on AIX).</p> <p>To set you LIBPATH (on AIX for example), you would type:</p> <source>export LIBPATH=&XercesCInstallDir;/lib:$LIBPATH</source> <p>On both Windows and UNIX platforms, if the parser is built with icu message loader (like IBM XML4C binaries), or message catalog loader, then you need to set another environment variable, XERCESC_NLS_HOME to point to the directory, $XERCESCROOT/msg, where the message files reside. </p> <source> set XERCESC_NLS_HOME=$XERCESCROOT\msg or export XERCESC_NLS_HOME=$XERCESCROOT/msg or setenv XERCESC_NLS_HOME=$XERCESCROOT/msg </source> <p>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).</p> <s3 title="&XercesCName; Samples"> <ul> <li><link idref="saxcount">SAXCount</link> <br/>SAXCount counts the elements, attributes, spaces and characters in an XML file.</li> <li><link idref="saxprint">SAXPrint</link> <br/>SAXPrint parses an XML file and prints it out.</li> <li><link idref="domcount">DOMCount</link> <br/>DOMCount counts the elements in a XML file.</li> <li><link idref="domprint">DOMPrint</link> <br/>DOMPrint parses an XML file and prints it out.</li> <li><link idref="memparse">MemParse</link> <br/>MemParse parses XML in a memory buffer, outputing the number of elements and attributes.</li> <li><link idref="redirect">Redirect</link> <br/>Redirect redirects the input stream for external entities.</li> <li><link idref="pparse">PParse</link> <br/>PParse demonstrates progressive parsing.</li> <li><link idref="stdinparse">StdInParse</link> <br/>StdInParse demonstrates streaming XML data from standard input.</li> <li><link idref="enumval">EnumVal</link> <br/>EnumVal shows how to enumerate the markup decls in a DTD Grammar.</li> <li><link idref="senumval">SEnumVal</link> <br/>SEnumVal shows how to enumerate the markup decls in a Schema Grammar.</li> <li><link idref="createdoc">CreateDOMDocument</link> <br/>CreateDOMDocument creates a DOM tree in memory from scratch.</li> <li><link idref="sax2count">SAX2Count</link> <br/>SAX2Count counts the elements, attributes, spaces and characters in an XML file.</li> <li><link idref="sax2print">SAX2Print</link> <br/>SAX2Print parses an XML file and prints it out.</li> <li><link idref="psviwriter">PSVIWriter</link> <br/>PSVIWriter exposes the underlying PSVI of the parsed XML file.</li> <li><link idref="scmprint">SCMPrint</link> <br/>SCMPrint parses an XSD file and prints information about the Schema Component Model.</li> </ul> </s3> </s2> </s1>