blob: 22625ed5aa134734cbc214c09cdcf931ba98f359 [file] [log] [blame]
<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD>
<BODY>
<h2 align="center">Xalan-C++ API Documentation</h2>
<h3 align="center">The Xalan C++ XSLT Processor Version 1.10</h3>
</BODY>
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>XalanSourceTreeContentHandler.hpp</h1><a href="XalanSourceTreeContentHandler_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>
00002 <font class="comment"> * Copyright 1999-2004 The Apache Software Foundation.</font>
00003 <font class="comment"> *</font>
00004 <font class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</font>
00005 <font class="comment"> * you may not use this file except in compliance with the License.</font>
00006 <font class="comment"> * You may obtain a copy of the License at</font>
00007 <font class="comment"> *</font>
00008 <font class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</font>
00009 <font class="comment"> *</font>
00010 <font class="comment"> * Unless required by applicable law or agreed to in writing, software</font>
00011 <font class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</font>
00012 <font class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</font>
00013 <font class="comment"> * See the License for the specific language governing permissions and</font>
00014 <font class="comment"> * limitations under the License.</font>
00015 <font class="comment"> */</font>
00016
00017 <font class="preprocessor">#if !defined(XALANSOURCETREECONTENTHANDLER_HEADER_GUARD_1357924680)</font>
<a name="l00018"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a0">00018</a> <font class="preprocessor"></font><font class="preprocessor">#define XALANSOURCETREECONTENTHANDLER_HEADER_GUARD_1357924680</font>
00019 <font class="preprocessor"></font>
00020
00021
00022 <font class="preprocessor">#include &lt;<a class="code" href="XalanSourceTreeDefinitions_8hpp.html">xalanc/XalanSourceTree/XalanSourceTreeDefinitions.hpp</a>&gt;</font>
00023
00024
00025
00026 <font class="preprocessor">#include &lt;<a class="code" href="XalanVector_8hpp.html">xalanc/Include/XalanVector.hpp</a>&gt;</font>
00027
00028
00029
00030 <font class="preprocessor">#include &lt;xercesc/sax/DocumentHandler.hpp&gt;</font>
00031 <font class="preprocessor">#include &lt;xercesc/sax/DTDHandler.hpp&gt;</font>
00032 <font class="preprocessor">#include &lt;xercesc/sax2/ContentHandler.hpp&gt;</font>
00033 <font class="preprocessor">#include &lt;xercesc/sax2/LexicalHandler.hpp&gt;</font>
00034
00035
00036
00037 <font class="preprocessor">#include &lt;<a class="code" href="XalanDOMString_8hpp.html">xalanc/XalanDOM/XalanDOMString.hpp</a>&gt;</font>
00038
00039
00040
00041 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(Attributes)
00042 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(AttributeList)
00043 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(ContentHandler)
00044 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(DTDHandler)
00045 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(LexicalHandler)
00046 <a class="code" href="XSLTProcessor_8hpp.html#a1">XALAN_DECLARE_XERCES_CLASS</a>(Locator)
00047
00048
00049
00050 XALAN_CPP_NAMESPACE_BEGIN
00051
00052
00053
00054 <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER Attributes AttributesType;
<a name="l00055"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a1">00055</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER AttributeList AttributeListType;
<a name="l00056"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a2">00056</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER ContentHandler ContentHandlerType;
<a name="l00057"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a3">00057</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER DTDHandler DTDHandlerType;
<a name="l00058"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a4">00058</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER LexicalHandler LexicalHandlerType;
<a name="l00059"></a><a class="code" href="XalanSourceTreeContentHandler_8hpp.html#a5">00059</a> <font class="keyword">typedef</font> XERCES_CPP_NAMESPACE_QUALIFIER Locator LocatorType;
00060
00061
00062
00063 <font class="keyword">class </font><a class="code" href="classXalanNode.html">XalanNode</a>;
00064 <font class="keyword">class </font><a class="code" href="classXalanSourceTreeDocument.html">XalanSourceTreeDocument</a>;
00065 <font class="keyword">class </font><a class="code" href="classXalanSourceTreeElement.html">XalanSourceTreeElement</a>;
00066
00067
00068
<a name="l00069"></a><a class="code" href="classXalanSourceTreeContentHandler.html">00069</a> <font class="keyword">class </font>XALAN_XALANSOURCETREE_EXPORT <a class="code" href="classXalanSourceTreeContentHandler.html">XalanSourceTreeContentHandler</a> :
00070 <font class="keyword">public</font> ContentHandlerType,
00071 <font class="keyword">public</font> DTDHandlerType,
00072 <font class="keyword">public</font> LexicalHandlerType
00073 {
00074 <font class="keyword">public</font>:
00075
<a name="l00076"></a><a class="code" href="classXalanSourceTreeContentHandler.html#s0">00076</a> <font class="keyword">typedef</font> XalanVector&lt;XalanSourceTreeElement*&gt; ElementStackType;
<a name="l00077"></a><a class="code" href="classXalanSourceTreeContentHandler.html#s1">00077</a> <font class="keyword">typedef</font> XalanVector&lt;XalanNode*&gt; LastChildStackType;
00078
00079 <font class="keyword">enum</font> { eDefaultStackSize = 50, eDefaultTextBufferSize = 100 };
00080
00081
00082 <font class="comment">// Constructor</font>
00083 <font class="keyword">explicit</font>
00084 <a class="code" href="classXalanSourceTreeContentHandler.html#a0">XalanSourceTreeContentHandler</a>(
00085 MemoryManagerType&amp; theManager,
00086 <a class="code" href="classXalanSourceTreeDocument.html">XalanSourceTreeDocument</a>* theDocument = 0,
00087 <font class="keywordtype">bool</font> fAccumulateText = <font class="keyword">true</font>);
00088
00089 <font class="keyword">virtual</font>
00090 <a class="code" href="classXalanSourceTreeContentHandler.html#a1">~XalanSourceTreeContentHandler</a>();
00091
00092
00093 <font class="comment">// Inherited from ContentHandler...</font>
00094 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00095 <a class="code" href="classXalanSourceTreeContentHandler.html#a2">characters</a>(
00096 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars,
00097 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length);
00098
00099 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00100 <a class="code" href="classXalanSourceTreeContentHandler.html#a3">endDocument</a>();
00101
00102 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00103 <a class="code" href="classXalanSourceTreeContentHandler.html#a4">endElement</a>(
00104 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> uri,
00105 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> localname,
00106 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> qname);
00107
00108 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00109 <a class="code" href="classXalanSourceTreeContentHandler.html#a5">ignorableWhitespace</a>(
00110 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars,
00111 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length);
00112
00113 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00114 <a class="code" href="classXalanSourceTreeContentHandler.html#a6">processingInstruction</a>(
00115 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> target,
00116 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> data);
00117
00118 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00119 <a class="code" href="classXalanSourceTreeContentHandler.html#a7">setDocumentLocator</a>(<font class="keyword">const</font> LocatorType* <font class="keyword">const</font> locator);
00120
00121 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00122 <a class="code" href="classXalanSourceTreeContentHandler.html#a8">startDocument</a>();
00123
00124 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00125 <a class="code" href="classXalanSourceTreeContentHandler.html#a9">startElement</a>(
00126 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> uri,
00127 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> localname,
00128 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> qname,
00129 <font class="keyword">const</font> AttributesType&amp; attrs);
00130
00131 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00132 <a class="code" href="classXalanSourceTreeContentHandler.html#a10">startPrefixMapping</a>(
00133 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> prefix,
00134 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> uri);
00135
00136 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00137 <a class="code" href="classXalanSourceTreeContentHandler.html#a11">endPrefixMapping</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> prefix);
00138
00139
00140 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00141 <a class="code" href="classXalanSourceTreeContentHandler.html#a12">skippedEntity</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name);
00142
00143
00144 <font class="comment">// Inherited from DTDHandler...</font>
00145
00146 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00147 <a class="code" href="classXalanSourceTreeContentHandler.html#a13">notationDecl</a>(
00148 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name,
00149 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> publicId,
00150 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> systemId);
00151
00152 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00153 <a class="code" href="classXalanSourceTreeContentHandler.html#a14">unparsedEntityDecl</a>(
00154 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name,
00155 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> publicId,
00156 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> systemId,
00157 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> notationName);
00158
00159 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00160 <a class="code" href="classXalanSourceTreeContentHandler.html#a15">resetDocType</a>();
00161
00162
00163 <font class="comment">// Inherited from LexicalHandler...</font>
00164
00165 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00166 <a class="code" href="classXalanSourceTreeContentHandler.html#a16">comment</a>(
00167 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars,
00168 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length);
00169
00170 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00171 <a class="code" href="classXalanSourceTreeContentHandler.html#a17">endCDATA</a>();
00172
00173 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00174 <a class="code" href="classXalanSourceTreeContentHandler.html#a18">endDTD</a>();
00175
00176 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00177 <a class="code" href="classXalanSourceTreeContentHandler.html#a19">endEntity</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name);
00178
00179 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00180 <a class="code" href="classXalanSourceTreeContentHandler.html#a20">startCDATA</a>();
00181
00182 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00183 <a class="code" href="classXalanSourceTreeContentHandler.html#a21">startDTD</a>(
00184 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name,
00185 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> publicId,
00186 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> systemId);
00187
00188 <font class="keyword">virtual</font> <font class="keywordtype">void</font>
00189 <a class="code" href="classXalanSourceTreeContentHandler.html#a22">startEntity</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name);
00190
00191
00192 <font class="comment">// New to XalanSourceTreeContentHandler...</font>
00193
00194 <a class="code" href="classXalanSourceTreeDocument.html">XalanSourceTreeDocument</a>*
<a name="l00195"></a><a class="code" href="classXalanSourceTreeContentHandler.html#a23">00195</a> <a class="code" href="classXalanSourceTreeContentHandler.html#a23">getDocument</a>()<font class="keyword"> const</font>
00196 <font class="keyword"> </font>{
00197 <font class="keywordflow">return</font> m_document;
00198 }
00199
00200 <font class="keywordtype">void</font>
00201 <a class="code" href="classXalanSourceTreeContentHandler.html#a24">setDocument</a>(<a class="code" href="classXalanSourceTreeDocument.html">XalanSourceTreeDocument</a>* theDocument);
00202
00203 <font class="keyword">private</font>:
00204
00205 <font class="comment">// Not implemented...</font>
00206 <a class="code" href="classXalanSourceTreeContentHandler.html#a0">XalanSourceTreeContentHandler</a>(<font class="keyword">const</font> <a class="code" href="classXalanSourceTreeContentHandler.html">XalanSourceTreeContentHandler</a>&amp;);
00207
00208 <a class="code" href="classXalanSourceTreeContentHandler.html">XalanSourceTreeContentHandler</a>&amp;
00209 operator=(<font class="keyword">const</font> <a class="code" href="classXalanSourceTreeContentHandler.html">XalanSourceTreeContentHandler</a>&amp;);
00210
00211 <font class="keywordtype">bool</font>
00212 <a class="code" href="ElemAttributeSet_8hpp.html#a1">operator==</a>(<font class="keyword">const</font> <a class="code" href="classXalanSourceTreeContentHandler.html">XalanSourceTreeContentHandler</a>&amp;) <font class="keyword">const</font>;
00213
00214 <font class="comment">// Helper functions...</font>
00215 <a class="code" href="classXalanSourceTreeElement.html">XalanSourceTreeElement</a>*
00216 createElement(
00217 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> uri,
00218 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> localname,
00219 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> qname,
00220 <font class="keyword">const</font> AttributesType&amp; attrs,
00221 <a class="code" href="classXalanSourceTreeElement.html">XalanSourceTreeElement</a>* theOwnerElement);
00222
00223 <font class="keywordtype">void</font>
00224 processAccumulatedText();
00225
00226 <font class="keywordtype">void</font>
00227 doCharacters(
00228 <font class="keyword">const</font> XMLCh* chars,
00229 XalanDOMString::size_type length);
00230
00231 <font class="comment">// Data members...</font>
00232
00233 <font class="comment">// The current document we're building...</font>
00234 <a class="code" href="classXalanSourceTreeDocument.html">XalanSourceTreeDocument</a>* m_document;
00235
00236 <font class="comment">// The current element...</font>
00237 <a class="code" href="classXalanSourceTreeElement.html">XalanSourceTreeElement</a>* m_currentElement;
00238
00239 <font class="comment">// Stack of elements...</font>
00240 ElementStackType m_elementStack;
00241
00242 <font class="comment">// The last child appended to the current element. This is</font>
00243 <font class="comment">// an important optimization, because XalanSourceTreeElement</font>
00244 <font class="comment">// does not have a pointer to its last child. Without this,</font>
00245 <font class="comment">// appending a child becomes a linear search.</font>
00246 <a class="code" href="classXalanNode.html">XalanNode</a>* m_lastChild;
00247
00248 <font class="comment">// Stack of last children appended. There is a ono-to-one</font>
00249 <font class="comment">// correspondance to the entries in m_elementStack.</font>
00250 LastChildStackType m_lastChildStack;
00251
00252 <font class="comment">// If true, the handler will accumulate text from calls to</font>
00253 <font class="comment">// characters() until another event triggers the creation</font>
00254 <font class="comment">// of the node.</font>
00255 <font class="keyword">const</font> <font class="keywordtype">bool</font> m_accumulateText;
00256
00257 <font class="comment">// A buffer to hold accumulated text.</font>
00258 <a class="code" href="classXalanDOMString.html">XalanDOMString</a> m_textBuffer;
00259
00260 <font class="comment">// A flag to determine if the DTD is being processed.</font>
00261 <font class="keywordtype">bool</font> m_inDTD;
00262 };
00263
00264
00265
00266 XALAN_CPP_NAMESPACE_END
00267
00268
00269
00270 <font class="preprocessor">#endif // #if !defined(XALANSOURCETREECONTENTHANDLER_HEADER_GUARD_1357924680)</font>
</font></pre></div><p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p>
<p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
<i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and
<A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p>
<TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="../resources/dot.gif" width="1" alt="dot"></TD></TR></TABLE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%">
<TR>
<TD WIDTH="80%" VALIGN="TOP">
<P ALIGN="CENTER"><B>Xalan-C++ XSLT Processor Version 1.10</B><BR>
Copyright &copy; 1999-2004 The Apache Software Foundation. All Rights Reserved.</i></p>
</TD>
</TR>
<TR>
<TD WIDTH="100%">
<P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0" ALT="Apache Logo">
</TD>
</TR>
</TABLE>