<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD> <BODY> <h2 align="center">Xalan-C++ API Documentation</h2> <h3 align="center">The Xalan C++ XSL Transformer Version 1.1</h3> </BODY> <!-- Generated by Doxygen 1.2.0 on Thu Feb 15 10:43:54 2001 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center> <hr><h1>FormatterToSourceTree.hpp</h1><a href="FormatterToSourceTree.hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/* </font>00002 <font class="comment"> * The Apache Software License, Version 1.1 </font>00003 <font class="comment"> * </font>00004 <font class="comment"> * </font>00005 <font class="comment"> * Copyright (c) 1999-2000 The Apache Software Foundation. All rights </font>00006 <font class="comment"> * reserved. </font>00007 <font class="comment"> * </font>00008 <font class="comment"> * Redistribution and use in source and binary forms, with or without </font>00009 <font class="comment"> * modification, are permitted provided that the following conditions </font>00010 <font class="comment"> * are met: </font>00011 <font class="comment"> * </font>00012 <font class="comment"> * 1. Redistributions of source code must retain the above copyright </font>00013 <font class="comment"> * notice, this list of conditions and the following disclaimer. </font>00014 <font class="comment"> * </font>00015 <font class="comment"> * 2. Redistributions in binary form must reproduce the above copyright </font>00016 <font class="comment"> * notice, this list of conditions and the following disclaimer in </font>00017 <font class="comment"> * the documentation and/or other materials provided with the </font>00018 <font class="comment"> * distribution. </font>00019 <font class="comment"> * </font>00020 <font class="comment"> * 3. The end-user documentation included with the redistribution, </font>00021 <font class="comment"> * if any, must include the following acknowledgment: </font>00022 <font class="comment"> * "This product includes software developed by the </font>00023 <font class="comment"> * Apache Software Foundation (http://www.apache.org/)." </font>00024 <font class="comment"> * Alternately, this acknowledgment may appear in the software itself, </font>00025 <font class="comment"> * if and wherever such third-party acknowledgments normally appear. </font>00026 <font class="comment"> * </font>00027 <font class="comment"> * 4. The names "Xalan" and "Apache Software Foundation" must </font>00028 <font class="comment"> * not be used to endorse or promote products derived from this </font>00029 <font class="comment"> * software without prior written permission. For written </font>00030 <font class="comment"> * permission, please contact apache@apache.org. </font>00031 <font class="comment"> * </font>00032 <font class="comment"> * 5. Products derived from this software may not be called "Apache", </font>00033 <font class="comment"> * nor may "Apache" appear in their name, without prior written </font>00034 <font class="comment"> * permission of the Apache Software Foundation. </font>00035 <font class="comment"> * </font>00036 <font class="comment"> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED </font>00037 <font class="comment"> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES </font>00038 <font class="comment"> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE </font>00039 <font class="comment"> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR </font>00040 <font class="comment"> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, </font>00041 <font class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT </font>00042 <font class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF </font>00043 <font class="comment"> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND </font>00044 <font class="comment"> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, </font>00045 <font class="comment"> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT </font>00046 <font class="comment"> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF </font>00047 <font class="comment"> * SUCH DAMAGE. </font>00048 <font class="comment"> * ==================================================================== </font>00049 <font class="comment"> * </font>00050 <font class="comment"> * This software consists of voluntary contributions made by many </font>00051 <font class="comment"> * individuals on behalf of the Apache Software Foundation and was </font>00052 <font class="comment"> * originally based on software copyright (c) 1999, International </font>00053 <font class="comment"> * Business Machines, Inc., http://www.ibm.com. For more </font>00054 <font class="comment"> * information on the Apache Software Foundation, please see </font>00055 <font class="comment"> * <http://www.apache.org/>. </font>00056 <font class="comment"> */</font> 00057 <font class="preprocessor">#if !defined(FORMATTERTOSOURCETREE_HEADER_GUARD_1357924680) </font><a name="l00058"></a><a class="code" href="FormatterToSourceTree.hpp.html#a0">00058</a> <font class="preprocessor"></font><font class="preprocessor">#define FORMATTERTOSOURCETREE_HEADER_GUARD_1357924680 </font>00059 <font class="preprocessor"></font> 00060 00061 00062 <font class="comment">// Base include file. Must be first.</font> 00063 <font class="preprocessor">#include <<a class="code" href="XalanSourceTreeDefinitions.hpp.html">XalanSourceTree/XalanSourceTreeDefinitions.hpp</a>></font> 00064 00065 00066 00067 <font class="preprocessor">#include <vector></font> 00068 00069 00070 00071 <font class="comment">// Base class header file.</font> 00072 <font class="preprocessor">#include <<a class="code" href="FormatterListener.hpp.html">XMLSupport/FormatterListener.hpp</a>></font> 00073 00074 00075 00076 <font class="preprocessor">#include <<a class="code" href="XalanDOMString.hpp.html">XalanDOM/XalanDOMString.hpp</a>></font> 00077 00078 00079 00080 <font class="keyword">class </font><a class="code" href="class_xalandocument.html">XalanDocument</a>; 00081 <font class="keyword">class </font><a class="code" href="class_xalandocumentfragment.html">XalanDocumentFragment</a>; 00082 <font class="keyword">class </font><a class="code" href="class_xalanelement.html">XalanElement</a>; 00083 <font class="keyword">class </font><a class="code" href="class_xalannode.html">XalanNode</a>; 00084 <font class="keyword">class </font><a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>; 00085 <font class="keyword">class </font><a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>; 00086 00087 00088 <a name="l00093"></a><a class="code" href="class_formattertosourcetree.html">00093</a> <font class="keyword">class </font>XALAN_XALANSOURCETREE_EXPORT <a class="code" href="class_formattertosourcetree.html">FormatterToSourceTree</a> : <font class="keyword">public</font> <a class="code" href="class_formatterlistener.html">FormatterListener</a> 00094 { 00095 <font class="keyword">public</font>: 00096 00100 <font class="keyword">static</font> <font class="keywordtype">void</font> 00101 <a class="code" href="class_formatterlistener.html#d0">initialize</a>(); 00102 00106 <font class="keyword">static</font> <font class="keywordtype">void</font> 00107 <a class="code" href="class_formatterlistener.html#d1">terminate</a>(); 00108 00109 00116 <a class="code" href="class_formattertosourcetree.html#a0">FormatterToSourceTree</a>(<a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>* theDocument); 00117 00125 <a class="code" href="class_formattertosourcetree.html#a0">FormatterToSourceTree</a>( 00126 <a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>* theDocument, 00127 <a class="code" href="class_xalandocumentfragment.html">XalanDocumentFragment</a>* theDocumentFragment); 00128 00129 <font class="keyword">virtual</font> 00130 <a class="code" href="class_formattertosourcetree.html#a2">~FormatterToSourceTree</a>(); 00131 00132 00133 <font class="comment">// These methods are inherited from DocumentHandler ...</font> 00134 00135 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00136 <a class="code" href="class_formatterlistener.html#a3">charactersRaw</a>( 00137 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars, 00138 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length); 00139 00140 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00141 <a class="code" href="class_formatterlistener.html#a4">comment</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> data); 00142 00143 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00144 <a class="code" href="class_formatterlistener.html#a5">cdata</a>( 00145 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> ch, 00146 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length); 00147 00148 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00149 <a class="code" href="class_formatterlistener.html#a6">entityReference</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name); 00150 00151 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00152 <a class="code" href="class_formatterlistener.html#a13">setDocumentLocator</a>(<font class="keyword">const</font> Locator* <font class="keyword">const</font> locator); 00153 00154 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00155 <a class="code" href="class_formatterlistener.html#a14">startDocument</a>(); 00156 00157 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00158 <a class="code" href="class_formatterlistener.html#a8">endDocument</a>(); 00159 00160 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00161 <a class="code" href="class_formatterlistener.html#a15">startElement</a>( 00162 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name, 00163 <a class="code" href="class_attributelist.html">AttributeList</a>& attrs); 00164 00165 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00166 <a class="code" href="class_formatterlistener.html#a9">endElement</a>(<font class="keyword">const</font> XMLCh* <font class="keyword">const</font> name); 00167 00168 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00169 <a class="code" href="class_formatterlistener.html#a7">characters</a>( 00170 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars, 00171 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length); 00172 00173 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00174 <a class="code" href="class_formatterlistener.html#a10">ignorableWhitespace</a>( 00175 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> chars, 00176 <font class="keyword">const</font> <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length); 00177 00178 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00179 <a class="code" href="class_formatterlistener.html#a11">processingInstruction</a>( 00180 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> target, 00181 <font class="keyword">const</font> XMLCh* <font class="keyword">const</font> data); 00182 00183 <font class="keyword">virtual</font> <font class="keywordtype">void</font> 00184 <a class="code" href="class_formatterlistener.html#a12">resetDocument</a>(); 00185 00186 <a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>* <a name="l00187"></a><a class="code" href="class_formattertosourcetree.html#a16">00187</a> <a class="code" href="class_formattertosourcetree.html#a16">getDocument</a>()<font class="keyword"> const </font>00188 <font class="keyword"> </font>{ 00189 <font class="keywordflow">return</font> m_document; 00190 } 00191 00192 <font class="keywordtype">void</font> <a name="l00193"></a><a class="code" href="class_formattertosourcetree.html#a17">00193</a> <a class="code" href="class_formattertosourcetree.html#a17">setDocument</a>(<a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>* theDocument)<font class="keyword"> </font>00194 <font class="keyword"> </font>{ 00195 m_document = theDocument; 00196 } 00197 00198 <a class="code" href="class_xalandocumentfragment.html">XalanDocumentFragment</a>* <a name="l00199"></a><a class="code" href="class_formattertosourcetree.html#a18">00199</a> <a class="code" href="class_formattertosourcetree.html#a18">getDocumentFragment</a>()<font class="keyword"> const </font>00200 <font class="keyword"> </font>{ 00201 <font class="keywordflow">return</font> m_documentFragment; 00202 } 00203 00204 <font class="keywordtype">void</font> <a name="l00205"></a><a class="code" href="class_formattertosourcetree.html#a19">00205</a> <a class="code" href="class_formattertosourcetree.html#a19">setDocumentFragment</a>(<a class="code" href="class_xalandocumentfragment.html">XalanDocumentFragment</a>* theDocumentFragment)<font class="keyword"> </font>00206 <font class="keyword"> </font>{ 00207 m_documentFragment = theDocumentFragment; 00208 } 00209 00210 <a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>* <a name="l00211"></a><a class="code" href="class_formattertosourcetree.html#a20">00211</a> <a class="code" href="class_formattertosourcetree.html#a20">getCurrentElement</a>()<font class="keyword"> const </font>00212 <font class="keyword"> </font>{ 00213 <font class="keywordflow">return</font> m_currentElement; 00214 } 00215 00216 <font class="keywordtype">void</font> <a name="l00217"></a><a class="code" href="class_formattertosourcetree.html#a21">00217</a> <a class="code" href="class_formattertosourcetree.html#a21">setCurrentElement</a>(<a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>* theElement)<font class="keyword"> </font>00218 <font class="keyword"> </font>{ 00219 m_currentElement = theElement; 00220 } 00221 00222 <font class="keyword">private</font>: 00223 00224 <font class="comment">// Some utility functions...</font> 00225 <font class="keywordtype">void</font> 00226 processAccumulatedText(); 00227 00228 <font class="keywordtype">void</font> 00229 doCharacters( 00230 <font class="keyword">const</font> XMLCh* chars, 00231 <font class="keywordtype">unsigned</font> <font class="keywordtype">int</font> length); 00232 00233 <font class="keywordtype">void</font> 00234 doProcessingInstruction( 00235 <font class="keyword">const</font> XMLCh* target, 00236 <font class="keyword">const</font> XMLCh* data); 00237 00238 00239 <font class="comment">// Data members...</font> 00240 <a class="code" href="class_xalansourcetreedocument.html">XalanSourceTreeDocument</a>* m_document; 00241 00242 <a class="code" href="class_xalandocumentfragment.html">XalanDocumentFragment</a>* m_documentFragment; 00243 00244 <a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>* m_currentElement; 00245 00246 <font class="preprocessor">#if defined(XALAN_NO_NAMESPACES) </font>00247 <font class="preprocessor"></font> <font class="keyword">typedef</font> vector<<a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>*> ElementStackType; 00248 <font class="preprocessor">#else </font>00249 <font class="preprocessor"></font> <font class="keyword">typedef</font> std::vector<<a class="code" href="class_xalansourcetreeelement.html">XalanSourceTreeElement</a>*> ElementStackType; 00250 <font class="preprocessor">#endif </font>00251 <font class="preprocessor"></font> 00252 ElementStackType m_elementStack; 00253 00254 <a class="code" href="class_xalandomstring.html">XalanDOMString</a> m_textBuffer; 00255 }; 00256 00257 00258 00259 <font class="preprocessor">#endif // FORMATTERTOSOURCETREE_HEADER_GUARD_1357924680 </font></div></pre><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="images/dot.gif" width="1"></TD></TR></TABLE> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%"> <TR> <TD WIDTH="80%" VALIGN="TOP"> <P ALIGN="CENTER"><B>Xalan-C++ XSL Transformer Version 1.1</B><BR> Copyright © 2000, 2001 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"> </TD> </TR> </TABLE>