Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 3c90d4f0807cc46df5c0517e9fe40564 > files > 762

xalan-c-doc-1.4-2mdk.ppc.rpm

<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.4</h3>
</BODY>
<!-- Generated by Doxygen 1.1.2 on Mon Sep 16 08:26:33 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</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>XalanDOMString.hpp</h1><a href="XalanDOMString.hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 /*
00002  * The Apache Software License, Version 1.1
00003  *
00004  *
00005  * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
00006  * reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions
00010  * are met:
00011  *
00012  * 1. Redistributions of source code must retain the above copyright
00013  *    notice, this list of conditions and the following disclaimer. 
00014  *
00015  * 2. Redistributions in binary form must reproduce the above copyright
00016  *    notice, this list of conditions and the following disclaimer in
00017  *    the documentation and/or other materials provided with the
00018  *    distribution.
00019  *
00020  * 3. The end-user documentation included with the redistribution,
00021  *    if any, must include the following acknowledgment:  
00022  *       "This product includes software developed by the
00023  *        Apache Software Foundation (http://www.apache.org/)."
00024  *    Alternately, this acknowledgment may appear in the software itself,
00025  *    if and wherever such third-party acknowledgments normally appear.
00026  *
00027  * 4. The names "Xalan" and "Apache Software Foundation" must
00028  *    not be used to endorse or promote products derived from this
00029  *    software without prior written permission. For written 
00030  *    permission, please contact apache@apache.org.
00031  *
00032  * 5. Products derived from this software may not be called "Apache",
00033  *    nor may "Apache" appear in their name, without prior written
00034  *    permission of the Apache Software Foundation.
00035  *
00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00039  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
00040  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00041  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00042  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
00043  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00044  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00045  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
00046  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00047  * SUCH DAMAGE.
00048  * ====================================================================
00049  *
00050  * This software consists of voluntary contributions made by many
00051  * individuals on behalf of the Apache Software Foundation and was
00052  * originally based on software copyright (c) 1999, International
00053  * Business Machines, Inc., http://www.ibm.com.  For more
00054  * information on the Apache Software Foundation, please see
00055  * &lt;http://www.apache.org/&gt;.
00056  */
00057 #if !defined(XALANDOMSTRING_HEADER_GUARD_1357924680)
<a name="l00058"><a class="code" href="XalanDOMString.hpp.html#a0">00058</a></a> #define XALANDOMSTRING_HEADER_GUARD_1357924680
00059 
00060 
00061 
00062 #include &lt;XalanDOM/XalanDOMDefinitions.hpp&gt;
00063 
00064 
00065 
00066 #include &lt;vector&gt;
00067 
00068 
00069 
00070 #include &lt;XalanDOM/XalanDOMException.hpp&gt;
00071 
00072 
00073 
00074 #if defined(XALAN_USE_NATIVE_WCHAR_T)
00075 typedef wchar_t         XalanDOMChar;
00076 #else
00077 // UTF-16 character...
<a name="l00078"><a class="code" href="XalanDOMString.hpp.html#a16">00078</a></a> typedef unsigned short  XalanDOMChar;
00079 #endif
00080 
00081 
00082 
00083 #include &lt;cassert&gt;
00084 
00085 
00086 
<a name="l00087"><a class="code" href="class_xalandomstring.html">00087</a></a> class XALAN_DOM_EXPORT <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
00088 {
00089 public:
00090 
00091 #if defined(XALAN_NO_NAMESPACES)
00092     typedef vector&lt;XalanDOMChar&gt;        XalanDOMCharVectorType;
00093     typedef vector&lt;char&gt;                CharVectorType;
00094     typedef vector&lt;wchar_t&gt;             WideCharVectorType;
00095 #else
<a name="l00096"><a class="code" href="class_xalandomstring.html#s0">00096</a></a>     typedef std::vector&lt;XalanDOMChar&gt;   XalanDOMCharVectorType;
<a name="l00097"><a class="code" href="class_xalandomstring.html#s1">00097</a></a>     typedef std::vector&lt;char&gt;           CharVectorType;
<a name="l00098"><a class="code" href="class_xalandomstring.html#s2">00098</a></a>     typedef std::vector&lt;wchar_t&gt;        WideCharVectorType;
00099 #endif
00100 
<a name="l00101"><a class="code" href="class_xalandomstring.html#s3">00101</a></a>     typedef XalanDOMChar                value_type;
<a name="l00102"><a class="code" href="class_xalandomstring.html#s4">00102</a></a>     typedef XalanDOMChar&amp;               reference;
<a name="l00103"><a class="code" href="class_xalandomstring.html#s5">00103</a></a>     typedef const XalanDOMChar&amp;         const_reference;
00104 
<a name="l00105"><a class="code" href="class_xalandomstring.html#s6">00105</a></a>     typedef XalanDOMCharVectorType::size_type               size_type;
00106 
<a name="l00107"><a class="code" href="class_xalandomstring.html#s7">00107</a></a>     typedef XalanDOMCharVectorType::iterator                iterator;
<a name="l00108"><a class="code" href="class_xalandomstring.html#s8">00108</a></a>     typedef XalanDOMCharVectorType::const_iterator          const_iterator;
<a name="l00109"><a class="code" href="class_xalandomstring.html#s9">00109</a></a>     typedef XalanDOMCharVectorType::reverse_iterator        reverse_iterator;
<a name="l00110"><a class="code" href="class_xalandomstring.html#s10">00110</a></a>     typedef XalanDOMCharVectorType::const_reverse_iterator  const_reverse_iterator;
00111 
00112 #if defined(XALAN_INLINE_INITIALIZATION)
00113     static const size_type  npos = ~0u;
00114 #else
00115     enum { npos = -1 };
00116 #endif
00117 
00118     explicit
00119     <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>();
00120 
00121     explicit
00122     <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(
00123             const char*     theString,
00124             size_type       theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos));
00125 
00126     <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(
00127             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theSource,
00128             size_type               theStartPosition = 0,
00129             size_type               theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos));
00130 
00131     explicit
00132     <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(
00133             const XalanDOMChar*     theString,
00134             size_type               theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos));
00135 
00136     <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(
00137             size_type       theCount,
00138             XalanDOMChar    theChar);
00139 
<a name="l00140"><a class="code" href="class_xalandomstring.html#a5">00140</a></a>     <a class="code" href="class_xalandomstring.html#a5">~XalanDOMString</a>()
00141     {
00142     }
00143 
00144     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00145"><a class="code" href="class_xalandomstring.html#a6">00145</a></a>     operator=(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp; theRHS)
00146     {
00147         return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS);
00148     }
00149 
00150     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00151"><a class="code" href="class_xalandomstring.html#a7">00151</a></a>     operator=(const XalanDOMChar*   theRHS)
00152     {
00153         return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS);
00154     }
00155 
00156     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00157"><a class="code" href="class_xalandomstring.html#a8">00157</a></a>     operator=(const char*   theRHS)
00158     {
00159         return <a class="code" href="class_xalandomstring.html#a36">assign</a>(theRHS);
00160     }
00161 
00162     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00163"><a class="code" href="class_xalandomstring.html#a9">00163</a></a>     operator=(XalanDOMChar  theRHS)
00164     {
00165         return <a class="code" href="class_xalandomstring.html#a36">assign</a>(1, theRHS);
00166     }
00167 
00168     iterator
<a name="l00169"><a class="code" href="class_xalandomstring.html#a10">00169</a></a>     <a class="code" href="class_xalandomstring.html#a11">begin</a>()
00170     {
00171         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00172 
00173         return m_data.begin();
00174     }
00175 
00176     const_iterator
<a name="l00177"><a class="code" href="class_xalandomstring.html#a11">00177</a></a>     <a class="code" href="class_xalandomstring.html#a11">begin</a>() const
00178     {
00179         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00180 
00181         return m_data.begin();
00182     }
00183 
00184     iterator
<a name="l00185"><a class="code" href="class_xalandomstring.html#a12">00185</a></a>     <a class="code" href="class_xalandomstring.html#a13">end</a>()
00186     {
00187         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00188 
00189         return m_data.end();
00190     }
00191 
00192     const_iterator
<a name="l00193"><a class="code" href="class_xalandomstring.html#a13">00193</a></a>     <a class="code" href="class_xalandomstring.html#a13">end</a>() const
00194     {
00195         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00196 
00197         return m_data.end();
00198     }
00199 
00200     reverse_iterator
<a name="l00201"><a class="code" href="class_xalandomstring.html#a14">00201</a></a>     <a class="code" href="class_xalandomstring.html#a15">rbegin</a>()
00202     {
00203         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00204 
00205         return m_data.rbegin();
00206     }
00207 
00208     const_reverse_iterator
<a name="l00209"><a class="code" href="class_xalandomstring.html#a15">00209</a></a>     <a class="code" href="class_xalandomstring.html#a15">rbegin</a>() const
00210     {
00211         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00212 
00213         return m_data.rbegin();
00214     }
00215 
00216     reverse_iterator
<a name="l00217"><a class="code" href="class_xalandomstring.html#a16">00217</a></a>     <a class="code" href="class_xalandomstring.html#a17">rend</a>()
00218     {
00219         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00220 
00221         return m_data.rend();
00222     }
00223 
00224     const_reverse_iterator
<a name="l00225"><a class="code" href="class_xalandomstring.html#a17">00225</a></a>     <a class="code" href="class_xalandomstring.html#a17">rend</a>() const
00226     {
00227         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00228 
00229         return m_data.rend();
00230     }
00231 
00232     size_type
<a name="l00233"><a class="code" href="class_xalandomstring.html#a18">00233</a></a>     <a class="code" href="class_xalandomstring.html#a18">size</a>() const
00234     {
00235         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00236 
00237         return m_size;
00238     }
00239 
00240     size_type
<a name="l00241"><a class="code" href="class_xalandomstring.html#a19">00241</a></a>     <a class="code" href="class_xalandomstring.html#a19">length</a>() const
00242     {
00243         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00244 
00245         return <a class="code" href="class_xalandomstring.html#a18">size</a>();
00246     }
00247 
00248     size_type
<a name="l00249"><a class="code" href="class_xalandomstring.html#a20">00249</a></a>     <a class="code" href="class_xalandomstring.html#a20">max_size</a>() const
00250     {
00251         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00252 
00253         return <a class="code" href="class_xalandomstring.html#s6">size_type</a>(~0);
00254     }
00255 
00256     void
00257     <a class="code" href="class_xalandomstring.html#a21">resize</a>(
00258             size_type       theCount,
00259             XalanDOMChar    theChar);
00260 
00261     void
<a name="l00262"><a class="code" href="class_xalandomstring.html#a22">00262</a></a>     <a class="code" href="class_xalandomstring.html#a21">resize</a>(size_type    theCount)
00263     {
00264         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00265 
00266         <a class="code" href="class_xalandomstring.html#a21">resize</a>(theCount, <a class="code" href="XalanDOMString.hpp.html#a16">XalanDOMChar</a>(0));
00267     }
00268 
00269     size_type
<a name="l00270"><a class="code" href="class_xalandomstring.html#a23">00270</a></a>     <a class="code" href="class_xalandomstring.html#a23">capacity</a>() const
00271     {
00272         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00273 
00274         return m_data.capacity() - 1;
00275     }
00276 
00277     void
<a name="l00278"><a class="code" href="class_xalandomstring.html#a24">00278</a></a>     <a class="code" href="class_xalandomstring.html#a24">reserve</a>(size_type   theCount = 0)
00279     {
00280         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00281 
00282         m_data.reserve(theCount + 1);
00283     }
00284 
00285     void
<a name="l00286"><a class="code" href="class_xalandomstring.html#a25">00286</a></a>     <a class="code" href="class_xalandomstring.html#a25">clear</a>()
00287     {
00288         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00289 
00290         m_data.erase(m_data.begin(), m_data.end());
00291 
00292         m_size = 0;
00293 
00294         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00295     }
00296 
00297     void
00298     <a class="code" href="class_xalandomstring.html#a26">erase</a>(
00299             size_type   theStartPosition = 0,
00300             size_type   theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos));
00301 
00302     bool
<a name="l00303"><a class="code" href="class_xalandomstring.html#a27">00303</a></a>     <a class="code" href="class_xalandomstring.html#a27">empty</a>() const
00304     {
00305         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00306 
00307         return m_size == 0 ? true : false;
00308     }
00309 
00310     const_reference
<a name="l00311"><a class="code" href="class_xalandomstring.html#a28">00311</a></a>     operator[](size_type    theIndex) const
00312     {
00313         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00314 
00315         return m_data[theIndex];
00316     }
00317 
00318     reference
<a name="l00319"><a class="code" href="class_xalandomstring.html#a29">00319</a></a>     operator[](size_type    theIndex)
00320     {
00321         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00322 
00323         return m_data[theIndex];
00324     }
00325 
00326 #if 0
00327     // $$$ ToDo: at() is not supported in the current version of GCC's vector&lt;&gt;
00328     // implementation.  Eventually, it should be.
00329     const_reference
00330     at(size_type    theIndex) const
00331     {
00332         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00333 
00334         return m_data.at(theIndex);
00335     }
00336 
00337     reference
00338     at(size_type    theIndex)
00339     {
00340         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00341 
00342         return m_data.at(theIndex);
00343     }
00344 #endif
00345 
00346     const XalanDOMChar*
<a name="l00347"><a class="code" href="class_xalandomstring.html#a30">00347</a></a>     <a class="code" href="class_xalandomstring.html#a30">c_str</a>() const
00348     {
00349         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00350 
00351         // $$$ ToDo: Do we really want to do this?
00352         // for convenience, we will return a pointer to
00353         // a default empty string so that c_str() never
00354         // returns a null pointer...
00355         return m_data.empty() == true ? &amp;s_empty : &amp;m_data[0];
00356     }
00357 
00358     const XalanDOMChar*
<a name="l00359"><a class="code" href="class_xalandomstring.html#a31">00359</a></a>     <a class="code" href="class_xalandomstring.html#a31">data</a>() const
00360     {
00361         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00362 
00363         return <a class="code" href="class_xalandomstring.html#a30">c_str</a>();
00364     }
00365 
00366     void
<a name="l00367"><a class="code" href="class_xalandomstring.html#a32">00367</a></a>     <a class="code" href="class_xalandomstring.html#a32">swap</a>(<a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;    theOther)
00368     {
00369         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00370 
00371         m_data.swap(theOther.m_data);
00372 
00373 #if defined(XALAN_NO_NAMESPACES)
00374 <a class="code" href="class_xalandomstring.html#a32">		::swap</a>(m_size, theOther.m_size);
00375 #else
00376         std::swap(m_size, theOther.m_size);
00377 #endif
00378     }
00379 
00380     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00381"><a class="code" href="class_xalandomstring.html#a33">00381</a></a>     operator+=(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;    theSource)
00382     {
00383         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource);
00384     }
00385 
00386     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00387"><a class="code" href="class_xalandomstring.html#a34">00387</a></a>     operator+=(const XalanDOMChar*  theString)
00388     {
00389         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString);
00390     }
00391 
00392     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00393"><a class="code" href="class_xalandomstring.html#a35">00393</a></a>     operator+=(XalanDOMChar theChar)
00394     {
00395         <a class="code" href="class_xalandomstring.html#a44">append</a>(1, theChar);
00396 
00397         return *this;
00398     }
00399 
00400     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00401"><a class="code" href="class_xalandomstring.html#a36">00401</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(const XalanDOMChar*  theSource)
00402     {
00403         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00404 
00405         <a class="code" href="class_xalandomstring.html#a26">erase</a>();
00406 
00407         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00408 
00409         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource);
00410     }
00411 
00412     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00413"><a class="code" href="class_xalandomstring.html#a37">00413</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(
00414             const XalanDOMChar*     theSource,
00415             size_type               theCount)
00416     {
00417         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00418 
00419         <a class="code" href="class_xalandomstring.html#a26">erase</a>();
00420 
00421         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00422 
00423         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource, theCount);
00424     }
00425 
00426     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00427"><a class="code" href="class_xalandomstring.html#a38">00427</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(const char*  theSource)
00428     {
00429         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00430 
00431         <a class="code" href="class_xalandomstring.html#a26">erase</a>();
00432 
00433         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00434 
00435         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource);
00436     }
00437 
00438     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00439"><a class="code" href="class_xalandomstring.html#a39">00439</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(
00440             const char*     theSource,
00441             size_type       theCount)
00442     {
00443         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00444 
00445         <a class="code" href="class_xalandomstring.html#a26">erase</a>();
00446 
00447         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00448 
00449         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource, theCount);
00450     }
00451 
00452     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00453     <a class="code" href="class_xalandomstring.html#a36">assign</a>(
00454             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theSource,
00455             size_type               thePosition,
00456             size_type               theCount);
00457 
00458     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00459"><a class="code" href="class_xalandomstring.html#a41">00459</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;    theSource)
00460     {
00461         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00462 
00463         if (&amp;theSource != this)
00464         {
00465             m_data = theSource.m_data;
00466 
00467             m_size = theSource.m_size;
00468         }
00469 
00470         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00471 
00472         return *this;
00473     }
00474 
00475     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00476"><a class="code" href="class_xalandomstring.html#a42">00476</a></a>     <a class="code" href="class_xalandomstring.html#a36">assign</a>(
00477             size_type       theCount,
00478             XalanDOMChar    theChar)
00479     {
00480         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00481 
00482         <a class="code" href="class_xalandomstring.html#a26">erase</a>();
00483 
00484         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00485 
00486         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theCount, theChar);
00487     }
00488 
00489     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00490     <a class="code" href="class_xalandomstring.html#a36">assign</a>(
00491         const_iterator  theFirstPosition,
00492         const_iterator  theLastPosition);
00493 
00494     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00495"><a class="code" href="class_xalandomstring.html#a44">00495</a></a>     <a class="code" href="class_xalandomstring.html#a44">append</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;    theSource)
00496     {
00497         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>());
00498     }
00499 
00500     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00501"><a class="code" href="class_xalandomstring.html#a45">00501</a></a>     <a class="code" href="class_xalandomstring.html#a44">append</a>(
00502             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theSource,
00503             size_type               thePosition,
00504             size_type               theCount)
00505     {
00506         assert(thePosition &lt; theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>() &amp;&amp;
00507                (theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) || thePosition + theCount &lt;= theSource.<a class="code" href="class_xalandomstring.html#a19">length</a>()));
00508 
00509         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theSource.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition, theCount);
00510     }
00511 
00512     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00513     <a class="code" href="class_xalandomstring.html#a44">append</a>(
00514             const XalanDOMChar*     theString,
00515             size_type               theCount);
00516 
00517     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00518"><a class="code" href="class_xalandomstring.html#a47">00518</a></a>     <a class="code" href="class_xalandomstring.html#a44">append</a>(const XalanDOMChar*  theString)
00519     {
00520         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString));
00521     }
00522 
00523     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00524     <a class="code" href="class_xalandomstring.html#a44">append</a>(
00525             const char*     theString,
00526             size_type       theCount);
00527 
00528     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00529"><a class="code" href="class_xalandomstring.html#a49">00529</a></a>     <a class="code" href="class_xalandomstring.html#a44">append</a>(const char*  theString)
00530     {
00531         return <a class="code" href="class_xalandomstring.html#a44">append</a>(theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString));
00532     }
00533 
00534     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00535     <a class="code" href="class_xalandomstring.html#a44">append</a>(
00536             size_type       theCount,
00537             XalanDOMChar    theChar);
00538 
00539     void
<a name="l00540"><a class="code" href="class_xalandomstring.html#a51">00540</a></a>     <a class="code" href="class_xalandomstring.html#a51">push_back</a>(XalanDOMChar  theChar)
00541     {
00542         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00543 
00544         <a class="code" href="class_xalandomstring.html#a44">append</a>(1, theChar);
00545 
00546         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00547     }
00548 
00549     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00550"><a class="code" href="class_xalandomstring.html#a52">00550</a></a>     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00551             size_type               thePosition,
00552             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theString)
00553     {
00554         return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition, theString.c_str(), theString.length());
00555     }
00556 
00557     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00558"><a class="code" href="class_xalandomstring.html#a53">00558</a></a>     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00559             size_type               thePosition1,
00560             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theString,
00561             size_type               thePosition2,
00562             size_type               theCount)
00563     {
00564         return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition2, theCount);
00565     }
00566 
00567     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00568     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00569             size_type               thePosition,
00570             const XalanDOMChar*     theString,
00571             size_type               theCount);
00572 
00573     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00574"><a class="code" href="class_xalandomstring.html#a55">00574</a></a>     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00575             size_type               thePosition,
00576             const XalanDOMChar*     theString)
00577     {
00578         return <a class="code" href="class_xalandomstring.html#a52">insert</a>(thePosition, theString, <a class="code" href="class_xalandomstring.html#a19">length</a>(theString));
00579     }
00580 
00581     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
00582     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00583             size_type       thePosition,
00584             size_type       theCount,
00585             XalanDOMChar    theChar);
00586 
00587     iterator
00588     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00589             iterator        thePosition,
00590             XalanDOMChar    theChar);
00591 
00592     void
00593     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00594             iterator        thePosition,
00595             size_type       theCount,
00596             XalanDOMChar    theChar);
00597 
00598     void
00599     <a class="code" href="class_xalandomstring.html#a52">insert</a>(
00600         iterator        theInsertPosition,
00601         const_iterator  theFirstPosition,
00602         const_iterator  theLastPosition);
00603 
00604     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00605"><a class="code" href="class_xalandomstring.html#a60">00605</a></a>     <a class="code" href="class_xalandomstring.html#a60">substr</a>(
00606             size_type   thePosition = 0,
00607             size_type   theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const
00608     {
00609         assert(theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) &amp;&amp; thePosition &lt; <a class="code" href="class_xalandomstring.html#a19">length</a>() ||
00610                thePosition + theCount &lt;= <a class="code" href="class_xalandomstring.html#a19">length</a>());
00611 
00612         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00613 
00614         return <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(*this, thePosition, theCount);
00615     }
00616 
00617     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;
<a name="l00618"><a class="code" href="class_xalandomstring.html#a61">00618</a></a>     <a class="code" href="class_xalandomstring.html#a60">substr</a>(
00619             <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;     theSubstring,
00620             size_type           thePosition = 0,
00621             size_type           theCount = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const
00622     {
00623         assert(theCount == <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos) &amp;&amp; thePosition &lt; <a class="code" href="class_xalandomstring.html#a19">length</a>() ||
00624                thePosition + theCount &lt;= <a class="code" href="class_xalandomstring.html#a19">length</a>());
00625 
00626         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00627 
00628         return theSubstring.<a class="code" href="class_xalandomstring.html#a36">assign</a>(*this, thePosition, theCount);
00629     }
00630 
00631     int
<a name="l00632"><a class="code" href="class_xalandomstring.html#a62">00632</a></a>     <a class="code" href="class_xalandomstring.html#a62">compare</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theString) const
00633     {
00634         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00635 
00636         return <a class="code" href="class_xalandomstring.html#a62">compare</a>(theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>());
00637     }
00638 
00639     int
<a name="l00640"><a class="code" href="class_xalandomstring.html#a63">00640</a></a>     <a class="code" href="class_xalandomstring.html#a62">compare</a>(
00641             size_type               thePosition1,
00642             size_type               theCount1,
00643             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theString) const
00644     {
00645         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00646 
00647         return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theString.<a class="code" href="class_xalandomstring.html#a19">length</a>());
00648     }
00649 
00650     int
<a name="l00651"><a class="code" href="class_xalandomstring.html#a64">00651</a></a>     <a class="code" href="class_xalandomstring.html#a62">compare</a>(
00652             size_type               thePosition1,
00653             size_type               theCount1,
00654             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theString,
00655             size_type               thePosition2,
00656             size_type               theCount2) const
00657     {
00658         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00659 
00660         return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, theString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>() + thePosition2, theCount2);
00661     }
00662 
00663     int
00664     <a class="code" href="class_xalandomstring.html#a62">compare</a>(const XalanDOMChar*     theString) const;
00665 
00666     int
00667     <a class="code" href="class_xalandomstring.html#a62">compare</a>(
00668             size_type               thePosition1,
00669             size_type               theCount1,
00670             const XalanDOMChar*     theString,
00671             size_type               theCount2 = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const;
00672 
00673     int
<a name="l00674"><a class="code" href="class_xalandomstring.html#a67">00674</a></a>     <a class="code" href="class_xalandomstring.html#a62">compare</a>(const char*     theString) const
00675     {
00676         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00677 
00678         return <a class="code" href="class_xalandomstring.html#a62">compare</a>(<a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(theString));
00679     }
00680 
00681     int
<a name="l00682"><a class="code" href="class_xalandomstring.html#a66">00682</a></a>     <a class="code" href="class_xalandomstring.html#a62">compare</a>(
00683             size_type       thePosition1,
00684             size_type       theCount1,
00685             const char*     theString,
00686             size_type       theCount2 = <a class="code" href="class_xalandomstring.html#s6">size_type</a>(npos)) const
00687     {
00688         <a class="code" href="class_xalandomstring.html#b0">invariants</a>();
00689 
00690         return <a class="code" href="class_xalandomstring.html#a62">compare</a>(thePosition1, theCount1, <a class="code" href="class_xalandomstring.html#a0">XalanDOMString</a>(theString, theCount2));
00691     }
00692 
00693     CharVectorType
00694     <a class="code" href="class_xalandomstring.html#a69">transcode</a>() const;
00695 
00696     static bool
00697     <a class="code" href="class_xalandomstring.html#d0">equals</a>(
00698             const XalanDOMChar*     theLHS,
00699             size_type               theLHSLength,
00700             const XalanDOMChar*     theRHS,
00701             size_type               theRHSLength);
00702 
00703     static bool
<a name="l00704"><a class="code" href="class_xalandomstring.html#d1">00704</a></a>     <a class="code" href="class_xalandomstring.html#d0">equals</a>(
00705             const XalanDOMChar*     theLHS,
00706             const XalanDOMChar*     theRHS)
00707     {
00708         return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS, <a class="code" href="class_xalandomstring.html#a19">length</a>(theLHS), theRHS, <a class="code" href="class_xalandomstring.html#a19">length</a>(theRHS));
00709     }
00710 
00711     static bool
00712     <a class="code" href="class_xalandomstring.html#d0">equals</a>(
00713             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00714             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS);
00715 
00716     static bool
<a name="l00717"><a class="code" href="class_xalandomstring.html#d3">00717</a></a>     <a class="code" href="class_xalandomstring.html#d0">equals</a>(
00718             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00719             const XalanDOMChar*     theRHS)
00720     {
00721         return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), theRHS);
00722     }
00723 
00724     static bool
<a name="l00725"><a class="code" href="class_xalandomstring.html#d4">00725</a></a>     <a class="code" href="class_xalandomstring.html#d0">equals</a>(
00726             const XalanDOMChar*     theLHS,
00727             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00728     {
00729         return <a class="code" href="class_xalandomstring.html#d0">equals</a>(theLHS, theRHS.c_str());
00730     }
00731 
00732     /*
00733      * Helper function to determine the length of a null-
00734      * terminated string.
00735      *
00736      * @theString The string
00737      * @return the length
00738      */
00739     static size_type
00740     <a class="code" href="class_xalandomstring.html#a19">length</a>(const XalanDOMChar*  theString);
00741 
00742     /*
00743      * Helper function to determine the length of a null-
00744      * terminated string.
00745      *
00746      * @theString The string
00747      * @return the length
00748      */
00749     static size_type
00750     <a class="code" href="class_xalandomstring.html#a19">length</a>(const char*  theString);
00751 
<a name="l00752"><a class="code" href="class_xalandomstring__transcodingerror.html">00752</a></a>     class TranscodingError : public <a class="code" href="class_xalandomexception.html">XalanDOMException</a>
00753     {
00754     public:
00755 
<a name="l00756"><a class="code" href="class_xalandomstring__transcodingerror.html#a0">00756</a></a>         TranscodingError() :
00757             <a class="code" href="class_xalandomexception.html">XalanDOMException</a>(TRANSCODING_ERR)
00758         {
00759         }
00760 
00761         virtual
<a name="l00762"><a class="code" href="class_xalandomstring__transcodingerror.html#a1">00762</a></a>         ~TranscodingError()
00763         {
00764         }
00765     };
00766 
00767 protected:
00768 
00769     /*
00770      * Function to assert invariant conditions for the class.
00771      *
00772      * @return the iterator
00773      */
00774     void
<a name="l00775"><a class="code" href="class_xalandomstring.html#b0">00775</a></a>     invariants() const
00776     {
00777 #if !defined(NDEBUG)
00778         assert((m_data.empty() == true &amp;&amp; m_size == 0) || m_size == m_data.size() - 1);
00779         assert(m_data.empty() == true || m_data.back() == 0);
00780 #endif
00781     }
00782 
00783     /*
00784      * Get an iterator to the position of the terminating null.
00785      *
00786      * @return the iterator
00787      */
00788     iterator
<a name="l00789"><a class="code" href="class_xalandomstring.html#b1">00789</a></a>     getBackInsertIterator()
00790     {
00791         invariants();
00792 
00793         return m_data.empty() == true ? m_data.end() : m_data.end() - 1;
00794     }
00795 
00796     const_iterator
<a name="l00797"><a class="code" href="class_xalandomstring.html#b2">00797</a></a>     getBackInsertIterator() const
00798     {
00799         invariants();
00800 
00801         return m_data.empty() == true ? m_data.end() : m_data.end() - 1;
00802     }
00803 
00804     iterator
<a name="l00805"><a class="code" href="class_xalandomstring.html#b3">00805</a></a>     getIteratorForPosition(size_type    thePosition)
00806     {
00807         invariants();
00808 
00809         return m_data.begin() + thePosition;
00810     }
00811 
00812     const_iterator
<a name="l00813"><a class="code" href="class_xalandomstring.html#b4">00813</a></a>     getIteratorForPosition(size_type    thePosition) const
00814     {
00815         invariants();
00816 
00817         return m_data.begin() + thePosition;
00818     }
00819 
00820 private:
00821 
00822     XalanDOMCharVectorType      m_data;
00823 
00824     size_type                   m_size;
00825 
00826     static const XalanDOMChar   s_empty;
00827 };
00828 
00829 
00830 
00831 inline bool
<a name="l00832"><a class="code" href="XalanDOMString.hpp.html#a1">00832</a></a> operator==(
00833             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00834             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00835 {
00836     return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00837 }
00838 
00839 
00840 
00841 inline bool
<a name="l00842"><a class="code" href="XalanDOMString.hpp.html#a2">00842</a></a> operator==(
00843             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00844             const XalanDOMChar*     theRHS)
00845 {
00846     return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00847 }
00848 
00849 
00850 
00851 inline bool
<a name="l00852"><a class="code" href="XalanDOMString.hpp.html#a3">00852</a></a> operator==(
00853             const XalanDOMChar*     theLHS,
00854             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00855 {
00856     // Note reversing of operands...
00857     return <a class="code" href="class_xalandomstring.html#d0">XalanDOMString::equals</a>(theLHS, theRHS);
00858 }
00859 
00860 
00861 
00862 inline bool
<a name="l00863"><a class="code" href="XalanDOMString.hpp.html#a4">00863</a></a> operator!=(
00864             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00865             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00866 {
00867     return !(theLHS == theRHS);
00868 }
00869 
00870 
00871 
00872 inline bool
<a name="l00873"><a class="code" href="XalanDOMString.hpp.html#a5">00873</a></a> operator!=(
00874             const XalanDOMChar*     theLHS,
00875             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00876 {
00877     return !(theLHS == theRHS);
00878 }
00879 
00880 
00881 
00882 inline bool
<a name="l00883"><a class="code" href="XalanDOMString.hpp.html#a6">00883</a></a> operator!=(
00884             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00885             const XalanDOMChar*     theRHS)
00886 {
00887     return !(theRHS == theLHS);
00888 }
00889 
00890 
00891 
00892 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00893"><a class="code" href="XalanDOMString.hpp.html#a7">00893</a></a> operator+(
00894             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00895             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00896 {
00897     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>  theTemp(theLHS);
00898 
00899     return theTemp += theRHS;
00900 }
00901 
00902 
00903 
00904 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00905"><a class="code" href="XalanDOMString.hpp.html#a8">00905</a></a> operator+(
00906             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00907             const XalanDOMChar*     theRHS)
00908 {
00909     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>  theTemp(theLHS);
00910 
00911     return theTemp += theRHS;
00912 }
00913 
00914 
00915 
00916 inline <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00917"><a class="code" href="XalanDOMString.hpp.html#a9">00917</a></a> operator+(
00918             const XalanDOMChar*     theLHS,
00919             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00920 {
00921     <a class="code" href="class_xalandomstring.html">XalanDOMString</a>  theTemp(theLHS);
00922 
00923     return theTemp += theRHS;
00924 }
00925 
00926 
00927 
00928 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00929"><a class="code" href="XalanDOMString.hpp.html#a10">00929</a></a> operator+(
00930             const char*             theLHS,
00931             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theRHS)
00932 {
00933     return XalanDOMString(theLHS) + theRHS;
00934 }
00935 
00936 
00937 
00938 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l00939"><a class="code" href="XalanDOMString.hpp.html#a11">00939</a></a> operator+(
00940             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theLHS,
00941             const char*             theRHS)
00942 {
00943     return theLHS + XalanDOMString(theRHS);
00944 }
00945 
00946 
00947 
00948 // Standard vector of XalanDOMChars and chars
00949 #if defined(XALAN_NO_NAMESPACES)
00950 typedef vector&lt;XalanDOMChar&gt;        XalanDOMCharVectorType;
00951 
00952 typedef vector&lt;char&gt;                CharVectorType;
00953 #else
<a name="l00954"><a class="code" href="XalanDOMString.hpp.html#a17">00954</a></a> typedef std::vector&lt;XalanDOMChar&gt;   XalanDOMCharVectorType;
00955 
<a name="l00956"><a class="code" href="XalanDOMString.hpp.html#a18">00956</a></a> typedef std::vector&lt;char&gt;           CharVectorType;
00957 #endif
00958 
00959 
00960 
<a name="l00972"><a class="code" href="XalanDOMString.hpp.html#a12">00972</a></a> <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool)
00973 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(
00974             const XalanDOMChar*         theSourceString,
00975             XalanDOMString::size_type   theSourceStringLength,
00976             CharVectorType&amp;             targetVector,
00977             bool                        terminate = false);
00978 
00979 
00980 
00991 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool)
00992 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(
00993             const XalanDOMChar*     theSourceString,
00994             CharVectorType&amp;         targetVector,
00995             bool                    terminate = false);
00996 
00997 
00998 
01007 inline const CharVectorType
01008 <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(const XalanDOMChar*    theSourceString)
01009 {
01010     CharVectorType  theResult;
01011 
01012     <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString, theResult, true);
01013 
01014     return theResult;
01015 }
01016 
01017 
01018 
01028 inline bool
<a name="l01029"><a class="code" href="XalanDOMString.hpp.html#a13">01029</a></a> <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(
01030             const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;   theSourceString,
01031             CharVectorType&amp;         targetVector,
01032             bool                    terminate = false)
01033 {
01034     return <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString.<a class="code" href="class_xalandomstring.html#a30">c_str</a>(), targetVector, terminate);
01035 }
01036 
01037 
01038 
01047 inline const CharVectorType
<a name="l01048"><a class="code" href="XalanDOMString.hpp.html#a14">01048</a></a> <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>&amp;  theSourceString)
01049 {
01050     CharVectorType  theResult;
01051 
01052     <a class="code" href="XalanDOMString.hpp.html#a13">TranscodeToLocalCodePage</a>(theSourceString, theResult, true);
01053 
01054     return theResult;
01055 }
01056 
01057 
01058 
01067 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
<a name="l01068"><a class="code" href="XalanDOMString.hpp.html#a15">01068</a></a> <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(
01069             const char*                 theSourceString,
01070             XalanDOMString::size_type   theSourceStringLength = XalanDOMString::npos)
01071 {
01072     return XalanDOMString(theSourceString, theSourceStringLength);
01073 }
01074 
01075 
01076 
01088 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool)
01089 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(
01090             const char*                 theSourceString,
01091             XalanDOMString::size_type   theSourceStringLength,
01092             XalanDOMCharVectorType&amp;     theTargetVector,
01093             bool                        terminate = false);
01094 
01095 
01096 
01107 <a class="code" href="XalanDOMDefinitions.hpp.html#a2">XALAN_DOM_EXPORT_FUNCTION</a>(bool)
01108 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(
01109             const char*                 theSourceString,
01110             XalanDOMCharVectorType&amp;     theTargetVector,
01111             bool                        terminate = false);
01112 
01113 
01114 
01122 inline const <a class="code" href="class_xalandomstring.html">XalanDOMString</a>
01123 <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(const CharVectorType&amp;    theSourceString)
01124 {
01125     typedef XalanDOMString::size_type       size_type;
01126 
01127     const CharVectorType::size_type     theSize = theSourceString.<a class="code" href="class_xalandomstring.html#a18">size</a>();
01128 
01129     if (theSourceString[theSize - 1] == CharVectorType::value_type(0))
01130     {
01131         return <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(&amp;*theSourceString.<a class="code" href="class_xalandomstring.html#a11">begin</a>(), size_type(theSize) - 1);
01132     }
01133     else
01134     {
01135         return <a class="code" href="XalanDOMString.hpp.html#a15">TranscodeFromLocalCodePage</a>(&amp;*theSourceString.<a class="code" href="class_xalandomstring.html#a11">begin</a>(), size_type(theSize));
01136     }
01137 }
01138 
01139 
01140 
01141 #endif  // !defined(XALANDOMSTRING_HEADER_GUARD_1357924680)
</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++ XSLT Processor Version 1.4</B><BR>
			Copyright &copy; 2000, 2001, 2002 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>