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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
<?xml version="1.0" standalone="no"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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="Programming Guide">
<p>This Programming Guide is for &XercesCName; version &XercesC3Version;.</p>
<p>Independent of the API you want to use, DOM, SAX, or SAX2, your
application must initialize the &XercesCProjectName; system
before using the API, and terminate it after you are done. This
is achieved by the following code:</p>
<source>
#include <xercesc/util/PlatformUtils.hpp>
// Other include files, declarations, and non-&XercesCName; initializations.
using namespace xercesc;
int main(int argc, char* argv[])
{
try {
XMLPlatformUtils::Initialize();
}
catch (const XMLException& toCatch) {
// Do your failure processing here
return 1;
}
// Do your actual work with &XercesCName; here.
XMLPlatformUtils::Terminate();
// Other terminations and cleanup.
return 0;
}</source>
<p><code>XMLPlatformUtils::Initialize()</code> and
<code>XMLPlatformUtils::Terminate</code> must be called at
least once in each process. You are allowed to call
<code>XMLPlatformUtils::Initialize()</code> and
<code>XMLPlatformUtils::Terminate</code> multiple times, but
each call to <code>XMLPlatformUtils::Initialize()</code> must
be matched with a call to
<code>XMLPlatformUtils::Terminate</code>.</p>
<s2 title="DOM Programming Guide">
<p>The DOM API is based on the
<jump href="ApacheDOMC++Binding.html">Apache Recommended DOM C++ binding</jump>.</p>
<p>Read the <jump href="program-dom-&XercesC3Series;.html">DOM Programming Guide</jump> document
or jump directly to:</p>
<ul>
<li><jump href="program-dom-&XercesC3Series;.html#Objectives">Design Objectives</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOM3">DOM Level 3 Support in &XercesCName; </jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#UsingDOMAPI">Using DOM API</jump></li>
<ul>
<li><jump href="program-dom-&XercesC3Series;.html#AccessAPI">Accessing API from application code</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMClassNames">Class Names</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMObjMgmt">Objects Management</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMMemMgmt">Memory Management</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#XMLCh">String Type</jump></li>
</ul>
<li><jump href="program-dom-&XercesC3Series;.html#XercesDOMParser">XercesDOMParser</jump></li>
<ul>
<li><jump href="program-dom-&XercesC3Series;.html#ConstructXercesDOMParser">Constructing a XercesDOMParser</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#XercesDOMFeatures">Supported Features</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#XercesDOMProperties">Supported Properties</jump></li>
</ul>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSParser">DOMLSParser</jump></li>
<ul>
<li><jump href="program-dom-&XercesC3Series;.html#ConstructDOMLSParser">Constructing a DOMLSParser</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#InputSourceWrapper">How to interchange DOMLSInput and SAX InputSource?</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSParserFeatures">Supported Features</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSParserProperties">Supported Properties</jump></li>
</ul>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSSerializer">DOMLSSerializer</jump></li>
<ul>
<li><jump href="program-dom-&XercesC3Series;.html#ConstructDOMLSSerializer">Constructing a DOMLSSerializer</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSSerializerEntityRef">How does DOMLSSerializer handle built-in entity Reference in node value?</jump></li>
<li><jump href="program-dom-&XercesC3Series;.html#DOMLSSerializerFeatures">Supported Features</jump></li>
</ul>
</ul>
</s2>
<s2 title="SAX2 Programming Guide">
<p>Read the <jump href="program-sax2-&XercesC3Series;.html">SAX2 Programming Guide</jump> document
or jump directly to:</p>
<ul>
<li><jump href="program-sax2-&XercesC3Series;.html#UsingSAX2API">Using the SAX2 API</jump></li>
<li><jump href="program-sax2-&XercesC3Series;.html#SAX2XMLReader">SAX2XMLReader</jump></li>
<ul>
<li><jump href="program-sax2-&XercesC3Series;.html#ConstructParser2">Constructing an XML Reader</jump></li>
<li><jump href="program-sax2-&XercesC3Series;.html#SAX2Features">Supported Features</jump></li>
<li><jump href="program-sax2-&XercesC3Series;.html#SAX2Properties">Supported Properties</jump></li>
</ul>
</ul>
</s2>
<s2 title="SAX Programming Guide">
<p>Read the <jump href="program-sax-&XercesC3Series;.html">SAX Programming Guide</jump> document
or jump directly to:</p>
<ul>
<li><jump href="program-sax-&XercesC3Series;.html#UsingSAX1API">Using the SAX API</jump></li>
<li><jump href="program-sax-&XercesC3Series;.html#SAXParser">SAXParser</jump></li>
<ul>
<li><jump href="program-sax-&XercesC3Series;.html#ConstructParser">Constructing a SAXParser</jump></li>
<li><jump href="program-sax-&XercesC3Series;.html#SAXFeatures">Supported Features</jump></li>
</ul>
</ul>
</s2>
<s2 title="Other Features">
<p>Read the <jump href="program-others-&XercesC3Series;.html">&XercesCName; Programming Guide</jump> document
or jump directly to:</p>
<ul>
<li><jump href="program-others-&XercesC3Series;.html#Macro">Version Macros</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#Schema">Schema Support</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#Progressive">Progressive Parsing</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#GrammarCache">Pre-parsing Grammar and Grammar Caching</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#LoadableMessageText">Loadable Message Text</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#PluggableTranscoders">Pluggable Transcoders</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#PortingGuidelines">Porting Guidelines</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#CPPNamespace">Using C++ Namespace</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#SpecifylocaleforMessageLoader">Specify Locale for Message Loader</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#SpecifylocationforMessageLoader">Specify Location for Message Loader</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#UseSpecificScanner">Use Specific Scanner</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#PluggablePanicHandler">Pluggable Panic Handler</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#PluggableMemoryManager">Pluggable Memory Manager</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#SecurityManager">Managing Security Vulnerabilities</jump></li>
<li><jump href="program-others-&XercesC3Series;.html#EntityResolution">Entity Resolution and NetAccessors</jump></li>
</ul>
</s2>
</s1>
|