<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>XalanComment  Class Reference</h1><code>#include &lt;<a class="el" href="XalanComment_8hpp-source.html">XalanComment.hpp</a>&gt;</code>
<p>
Inheritance diagram for XalanComment:<p><center><img src="classXalanComment__inherit__graph.gif" border="0" usemap="#XalanComment_inherit_map" alt="Inheritance graph"></center>
<map name="XalanComment_inherit_map">
<area href="classXalanSourceTreeComment.html" shape="rect" coords="6,266,182,242">
<area href="classXercesCommentBridge.html" shape="rect" coords="206,266,361,242">
<area href="classXercesCommentWrapper.html" shape="rect" coords="385,266,553,242">
<area href="classXalanCharacterData.html" shape="rect" coords="216,117,351,93">
<area href="classXalanNode.html" shape="rect" coords="244,43,323,19">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for XalanComment:<p><center><img src="classXalanComment__coll__graph.gif" border="0" usemap="#XalanComment_coll_map" alt="Collaboration graph"></center>
<map name="XalanComment_coll_map">
<area href="classXalanCharacterData.html" shape="rect" coords="7,117,142,93">
<area href="classXalanNode.html" shape="rect" coords="35,42,114,18">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classXalanComment-members.html">List of all members.</a><h2>Public Methods</h2>
<ul>
<li><a class="el" href="classXalanComment.html#a0">XalanComment</a> ()
<li>virtual <a class="el" href="classXalanComment.html#a1">~XalanComment</a> ()
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a2">getNodeName</a> () const=0
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a3">getNodeValue</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the value of this node, depending on its type.</em> <a href="#a3">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html#s14">NodeType</a> <a class="el" href="classXalanComment.html#a4">getNodeType</a> () const=0
<dl class="el"><dd><font size=-1><em>An enum value representing the type of the underlying object.</em> <a href="#a4">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a5">getParentNode</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the parent of this node.</em> <a href="#a5">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanNodeList.html">XalanNodeList</a>* <a class="el" href="classXalanComment.html#a6">getChildNodes</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets a <code>NodeList</code> that contains all children of this node.</em> <a href="#a6">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a7">getFirstChild</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the first child of this node.</em> <a href="#a7">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a8">getLastChild</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the last child of this node.</em> <a href="#a8">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a9">getPreviousSibling</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the node immediately preceding this node.</em> <a href="#a9">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a10">getNextSibling</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the node immediately following this node.</em> <a href="#a10">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanNamedNodeMap.html">XalanNamedNodeMap</a>* <a class="el" href="classXalanComment.html#a11">getAttributes</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets a <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.</em> <a href="#a11">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanDocument.html">XalanDocument</a>* <a class="el" href="classXalanComment.html#a12">getOwnerDocument</a> () const=0
<dl class="el"><dd><font size=-1><em>Gets the <code>Document</code> object associated with this node.</em> <a href="#a12">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Cloning function.</div></td></tr>
<ul>
<li>virtual XalanComment* <a class="el" href="classXalanComment.html#a13">cloneNode</a> (bool deep) const=0
<dl class="el"><dd><font size=-1><em>Returns a duplicate of this node.</em> <a href="#a13">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Functions to modify the DOM Node.</div></td></tr>
<ul>
<li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a14">insertBefore</a> (<a class="el" href="classXalanNode.html">XalanNode</a> *newChild, <a class="el" href="classXalanNode.html">XalanNode</a> *refChild)=0
<dl class="el"><dd><font size=-1><em>Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>.</em> <a href="#a14">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a15">replaceChild</a> (<a class="el" href="classXalanNode.html">XalanNode</a> *newChild, <a class="el" href="classXalanNode.html">XalanNode</a> *oldChild)=0
<dl class="el"><dd><font size=-1><em>Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node.</em> <a href="#a15">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a16">removeChild</a> (<a class="el" href="classXalanNode.html">XalanNode</a> *oldChild)=0
<dl class="el"><dd><font size=-1><em>Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.</em> <a href="#a16">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html">XalanNode</a>* <a class="el" href="classXalanComment.html#a17">appendChild</a> (<a class="el" href="classXalanNode.html">XalanNode</a> *newChild)=0
<dl class="el"><dd><font size=-1><em>Adds the node <code>newChild</code> to the end of the list of children of this node.</em> <a href="#a17">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Query functions.</div></td></tr>
<ul>
<li>virtual bool <a class="el" href="classXalanComment.html#a18">hasChildNodes</a> () const=0
<dl class="el"><dd><font size=-1><em>This is a convenience method to allow easy determination of whether a node has any children.</em> <a href="#a18">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Set functions.</div></td></tr>
<ul>
<li>virtual void <a class="el" href="classXalanComment.html#a19">setNodeValue</a> (const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;nodeValue)=0
<dl class="el"><dd><font size=-1><em>Sets the value of the node.</em> <a href="#a19">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Functions introduced in DOM Level 2.</div></td></tr>
<ul>
<li>virtual void <a class="el" href="classXalanComment.html#a20">normalize</a> ()=0
<dl class="el"><dd><font size=-1><em>Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are no adjacent <code>Text</code> nodes.</em> <a href="#a20">More...</a><em><br><br></em></font></dl><li>virtual bool <a class="el" href="classXalanComment.html#a21">isSupported</a> (const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;feature, const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;version) const=0
<dl class="el"><dd><font size=-1><em>Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.</em> <a href="#a21">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a22">getNamespaceURI</a> () const=0
<dl class="el"><dd><font size=-1><em>Get the <em>namespace URI</em> of this node, or <code>null</code> if it is unspecified.</em> <a href="#a22">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a23">getPrefix</a> () const=0
<dl class="el"><dd><font size=-1><em>Get the <em>namespace prefix</em> of this node, or <code>null</code> if it is unspecified.</em> <a href="#a23">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a24">getLocalName</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns the local part of the <em>qualified name</em> of this node.</em> <a href="#a24">More...</a><em><br><br></em></font></dl><li>virtual void <a class="el" href="classXalanComment.html#a25">setPrefix</a> (const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;prefix)=0
<dl class="el"><dd><font size=-1><em>Set the <em>namespace prefix</em> of this node.</em> <a href="#a25">More...</a><em><br><br></em></font></dl><li>virtual bool <a class="el" href="classXalanComment.html#a26">isIndexed</a> () const=0
<dl class="el"><dd><font size=-1><em>Determine if the document is node-order indexed.</em> <a href="#a26">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanNode.html#s0">IndexType</a> <a class="el" href="classXalanComment.html#a27">getIndex</a> () const=0
<dl class="el"><dd><font size=-1><em>Get the node's index.</em> <a href="#a27">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Getter functions.</div></td></tr>
<ul>
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a28">getData</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns the character data of the node that implements this interface.</em> <a href="#a28">More...</a><em><br><br></em></font></dl><li>virtual unsigned int <a class="el" href="classXalanComment.html#a29">getLength</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns the number of characters that are available through <code>data</code> and the <code>substringData</code> method below.</em> <a href="#a29">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanComment.html#a30">substringData</a> (unsigned int offset, unsigned int count, <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;theResult) const=0
<dl class="el"><dd><font size=-1><em>Extracts a range of data from the node.</em> <a href="#a30">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Functions that set or change data.</div></td></tr>
<ul>
<li>virtual void <a class="el" href="classXalanComment.html#a31">appendData</a> (const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;arg)=0
<dl class="el"><dd><font size=-1><em>Append the string to the end of the character data of the node.</em> <a href="#a31">More...</a><em><br><br></em></font></dl><li>virtual void <a class="el" href="classXalanComment.html#a32">insertData</a> (unsigned int offset, const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;arg)=0
<dl class="el"><dd><font size=-1><em>Insert a string at the specified character offset.</em> <a href="#a32">More...</a><em><br><br></em></font></dl><li>virtual void <a class="el" href="classXalanComment.html#a33">deleteData</a> (unsigned int offset, unsigned int count)=0
<dl class="el"><dd><font size=-1><em>Remove a range of characters from the node.</em> <a href="#a33">More...</a><em><br><br></em></font></dl><li>virtual void <a class="el" href="classXalanComment.html#a34">replaceData</a> (unsigned int offset, unsigned int count, const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;arg)=0
<dl class="el"><dd><font size=-1><em>Replace the characters starting at the specified character offset with the specified string.</em> <a href="#a34">More...</a><em><br><br></em></font></dl></ul>
<h2>Protected Methods</h2>
<ul>
<li><a class="el" href="classXalanComment.html#b0">XalanComment</a> (const XalanComment &amp;theSource)
<li>XalanComment&amp; <a class="el" href="classXalanComment.html#b1">operator=</a> (const XalanComment &amp;theSource)
<li>bool <a class="el" href="classXalanComment.html#b2">operator==</a> (const XalanComment &amp;theRHS) const
</ul>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="XalanComment::XalanComment"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
XalanComment::XalanComment (
          </b></td>
          <td valign="bottom"><b>
)
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a1" doxytag="XalanComment::~XalanComment"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
XalanComment::~XalanComment (
          </b></td>
          <td valign="bottom"><b>
)<code> [virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b0" doxytag="XalanComment::XalanComment"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
XalanComment::XalanComment (
          </b></td>
          <td valign="bottom"><b>
const XalanComment &amp; <em>theSource</em>&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="a17" doxytag="XalanComment::appendChild"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::appendChild (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>newChild</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds the node <code>newChild</code> to the end of the list of children of this node.
<p>
If the <code>newChild</code> is already in the tree, it is first removed. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>newChild</em>
&nbsp;</td><td>
The node to add.If it is a <code>DocumentFragment</code> object, the entire contents of the document fragment are moved into the child list of this node </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The node added. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a17">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a17">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a17">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a17">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="XalanComment::appendData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::appendData (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>arg</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Append the string to the end of the character data of the node.
<p>
Upon success, <code>data</code> provides access to the concatenation of  <code>data</code> and the <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code> specified. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>arg</em>
&nbsp;</td><td>
The <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code> to append. </td></tr>
</table>
</dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a31">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a31">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a31">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a31">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="XalanComment::cloneNode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
XalanComment * XalanComment::cloneNode (
          </b></td>
          <td valign="bottom"><b>
bool <em>deep</em>&nbsp;) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a duplicate of this node.
<p>
This function serves as a generic copy constructor for nodes.
<p>
The duplicate node has no parent ( <code>parentNode</code> returns <code>null</code>.). <br>
Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child <code>Text</code> node. Cloning any other type of node simply returns a copy of this node. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>deep</em>
&nbsp;</td><td>
If <code>true</code>, recursively clone the subtree under the specified node; if <code>false</code>, clone only the node itself (and its attributes, if it is an <code>Element</code>). </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The duplicate node. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a13">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a13">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a13">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a13">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a33" doxytag="XalanComment::deleteData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::deleteData (
          </b></td>
          <td valign="bottom"><b>
unsigned int <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned int <em>count</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remove a range of characters from the node.
<p>
Upon success,  <code>data</code> and <code>length</code> reflect the change. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
The offset from which to remove characters. </td></tr>
<tr><td valign=top><em>count</em>
&nbsp;</td><td>
The number of characters to delete. If the sum of  <code>offset</code> and <code>count</code> exceeds <code>length</code>  then all characters from <code>offset</code> to the end of the data  are deleted. </td></tr>
</table>
</dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 INDEX_SIZE_ERR: Raised if the specified offset is negative or greater  than the number of characters in <code>data</code>, or if the  specified <code>count</code> is negative. <br>
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a33">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a33">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a33">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a33">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="XalanComment::getAttributes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanNamedNodeMap.html">XalanNamedNodeMap</a> * XalanComment::getAttributes (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets a <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
<p>

<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a11">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a11">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a11">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a11">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a6" doxytag="XalanComment::getChildNodes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanNodeList.html">XalanNodeList</a> * XalanComment::getChildNodes (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets a <code>NodeList</code> that contains all children of this node.
<p>
If there are no children, this is a <code>NodeList</code> containing no nodes. The content of the returned <code>NodeList</code> is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the <code>NodeList</code> accessors; it is not a static snapshot of the content of the node. This is true for every <code>NodeList</code>, including the ones returned by the <code>getElementsByTagName</code> method. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a6">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a6">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a6">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a6">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a28" doxytag="XalanComment::getData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getData (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the character data of the node that implements this interface.
<p>
The DOM implementation may not put arbitrary limits on the amount of data that  may be stored in a <code>CharacterData</code> node. However,  implementation limits may mean that the entirety of a node's data may  not fit into a single <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code>. In such cases, the user  may call <code>substringData</code> to retrieve the data in  appropriately sized pieces. <dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. </td></tr>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 DOMSTRING_SIZE_ERR: Raised when it would return more characters than  fit in a <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code> variable on the implementation  platform. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a28">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a28">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a28">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a28">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="XalanComment::getFirstChild"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::getFirstChild (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the first child of this node.
<p>
If there is no such node, this returns <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a7">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a7">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a7">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a7">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a27" doxytag="XalanComment::getIndex"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html#s0">IndexType</a> XalanComment::getIndex (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the node's index.
<p>
Valid only if the owner document reports that the document is node-order indexed.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
The index value, or 0 if the node is not indexed. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a27">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a27">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a27">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a27">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="XalanComment::getLastChild"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::getLastChild (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the last child of this node.
<p>
If there is no such node, this returns <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a8">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a8">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a8">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a8">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a29" doxytag="XalanComment::getLength"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
unsigned int XalanComment::getLength (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the number of characters that are available through <code>data</code> and the <code>substringData</code> method below.
<p>
This may have the value  zero, i.e., <code>CharacterData</code> nodes may be empty. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a29">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a29">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a29">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a29">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a24" doxytag="XalanComment::getLocalName"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getLocalName (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the local part of the <em>qualified name</em> of this node.
<p>

<p>
 For nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, it is null. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a24">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a24">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a24">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a24">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="XalanComment::getNamespaceURI"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getNamespaceURI (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the <em>namespace URI</em> of this node, or <code>null</code> if it is unspecified.
<p>

<p>
 This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. 
<p>
 For nodes of any type other than <code>ELEMENT_NODE</code> and  <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method,  such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a22">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a22">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a22">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a22">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a10" doxytag="XalanComment::getNextSibling"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::getNextSibling (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the node immediately following this node.
<p>
If there is no such node, this returns <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a10">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a10">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a10">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a10">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="XalanComment::getNodeName"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getNodeName (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a2">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a2">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a2">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a2">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a4" doxytag="XalanComment::getNodeType"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html#s14">NodeType</a> XalanComment::getNodeType (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
An enum value representing the type of the underlying object.
<p>

<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a4">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a4">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a4">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a4">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="XalanComment::getNodeValue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getNodeValue (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the value of this node, depending on its type.
<p>

<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a3">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a3">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a3">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a3">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="XalanComment::getOwnerDocument"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanDocument.html">XalanDocument</a> * XalanComment::getOwnerDocument (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the <code>Document</code> object associated with this node.
<p>
This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a12">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a12">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a12">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a12">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="XalanComment::getParentNode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::getParentNode (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the parent of this node.
<p>
All nodes, except <code>Document</code>, <code>DocumentFragment</code>, and <code>Attr</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a <code>null</code> Node is returned. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a5">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a5">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a5">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a5">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="XalanComment::getPrefix"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::getPrefix (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the <em>namespace prefix</em> of this node, or <code>null</code> if it is unspecified.
<p>

<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a23">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a23">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a23">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a23">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="XalanComment::getPreviousSibling"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::getPreviousSibling (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the node immediately preceding this node.
<p>
If there is no such node, this returns <code>null</code>. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a9">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a9">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a9">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a9">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a18" doxytag="XalanComment::hasChildNodes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool XalanComment::hasChildNodes (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This is a convenience method to allow easy determination of whether a node has any children.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
<code>true</code> if the node has any children, <code>false</code> if the node has no children. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a18">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a18">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a18">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a18">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="XalanComment::insertBefore"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::insertBefore (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>newChild</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>refChild</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>.
<p>
If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>
If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. Note that a <code>Node</code> that has never been assigned to refer to an actual node is == null. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>newChild</em>
&nbsp;</td><td>
The node to insert. </td></tr>
<tr><td valign=top><em>refChild</em>
&nbsp;</td><td>
The reference node, i.e., the node before which the new node must be inserted. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The node being inserted. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a14">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a14">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a14">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a14">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a32" doxytag="XalanComment::insertData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::insertData (
          </b></td>
          <td valign="bottom"><b>
unsigned int <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>arg</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Insert a string at the specified character offset.
<p>
<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
The character offset at which to insert. </td></tr>
<tr><td valign=top><em>arg</em>
&nbsp;</td><td>
The <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code> to insert. </td></tr>
</table>
</dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 INDEX_SIZE_ERR: Raised if the specified offset is negative or greater  than the number of characters in <code>data</code>. <br>
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a32">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a32">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a32">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a32">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a26" doxytag="XalanComment::isIndexed"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool XalanComment::isIndexed (
          </b></td>
          <td valign="bottom"><b>
) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Determine if the document is node-order indexed.
<p>
<dl compact><dt>
<b>Returns: </b><dd>
true if the document is indexed, otherwise false. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a26">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a26">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a26">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a26">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="XalanComment::isSupported"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool XalanComment::isSupported (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>feature</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>version</em>&nbsp;) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
<p>
<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>feature</em>
&nbsp;</td><td>
The string of the feature to test. This is the same name as what can be passed to the method <code>hasFeature</code> on <code>DOMImplementation</code>. </td></tr>
<tr><td valign=top><em>version</em>
&nbsp;</td><td>
This is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return <code>true</code>. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
Returns <code>true</code> if the specified feature is supported on this node, <code>false</code> otherwise. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a21">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a21">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a21">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a21">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a20" doxytag="XalanComment::normalize"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::normalize (
          </b></td>
          <td valign="bottom"><b>
)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are no adjacent <code>Text</code> nodes.
<p>
This can be used to ensure that the DOM view of a document is the  same as if it were saved and re-loaded, and is useful when operations  (such as XPointer lookups) that depend on a particular document tree  structure are to be used. 
<p>
<b>Note:</b> In cases where the document contains <code>CDATASections</code>,  the normalize operation alone may not be sufficient, since XPointers do  not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a20">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a20">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a20">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a20">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="b1" doxytag="XalanComment::operator="></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
XalanComment &amp; XalanComment::operator= (
          </b></td>
          <td valign="bottom"><b>
const XalanComment &amp; <em>theSource</em>&nbsp;)<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b2" doxytag="XalanComment::operator=="></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
bool XalanComment::operator== (
          </b></td>
          <td valign="bottom"><b>
const XalanComment &amp; <em>theRHS</em>&nbsp;) const<code> [protected]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a16" doxytag="XalanComment::removeChild"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::removeChild (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>oldChild</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
<p>
<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>oldChild</em>
&nbsp;</td><td>
The node being removed. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The node removed. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a16">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a16">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a16">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a16">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a15" doxytag="XalanComment::replaceChild"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanNode.html">XalanNode</a> * XalanComment::replaceChild (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>newChild</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="classXalanNode.html">XalanNode</a> * <em>oldChild</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node.
<p>
If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order.
<p>
If the <code>newChild</code> is already in the tree, it is first removed. <dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>newChild</em>
&nbsp;</td><td>
The new node to put in the child list. </td></tr>
<tr><td valign=top><em>oldChild</em>
&nbsp;</td><td>
The node being replaced in the list. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The node replaced. </dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a15">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a15">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a15">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a15">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a34" doxytag="XalanComment::replaceData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::replaceData (
          </b></td>
          <td valign="bottom"><b>
unsigned int <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned int <em>count</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>arg</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Replace the characters starting at the specified character offset with the specified string.
<p>
<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
The offset from which to start replacing. </td></tr>
<tr><td valign=top><em>count</em>
&nbsp;</td><td>
The number of characters to replace. If the sum of  <code>offset</code> and <code>count</code> exceeds <code>length</code> , then all characters to the end of the data are replaced (i.e., the  effect is the same as a <code>remove</code> method call with the same  range, followed by an <code>append</code> method invocation). </td></tr>
<tr><td valign=top><em>arg</em>
&nbsp;</td><td>
The <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code> with which the range must be  replaced. </td></tr>
</table>
</dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 INDEX_SIZE_ERR: Raised if the specified offset is negative or greater  than the number of characters in <code>data</code>, or if the  specified <code>count</code> is negative. <br>
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a34">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a34">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a34">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a34">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a19" doxytag="XalanComment::setNodeValue"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::setNodeValue (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>nodeValue</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the value of the node.
<p>
Any node which can have a nodeValue (<dl compact><dt>
<b>See also: </b><dd>
<a class="el" href="classXalanComment.html#a3">getNodeValue</a>) will also accept requests to set it to a string. The exact response to this varies from node to node -- Attribute, for example, stores its values in its children and has to replace them with a new Text holding the replacement value.
<p>
</dl>For most types of Node, value is null and attempting to set it will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will also be thrown if the node is read-only. 
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a19">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a19">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a19">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a19">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a25" doxytag="XalanComment::setPrefix"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void XalanComment::setPrefix (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>prefix</em>&nbsp;)<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the <em>namespace prefix</em> of this node.
<p>

<p>
 Note that setting this attribute, when permitted, changes  the <code>nodeName</code> attribute, which holds the <em>qualified  name</em>, as well as the <code>tagName</code> and <code>name</code>  attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. 
<p>
 Note also that changing the prefix of an  attribute, that is known to have a default value, does not make a new  attribute with the default value and the original prefix appear, since the  <code>namespaceURI</code> and <code>localName</code> do not change.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>prefix</em>
&nbsp;</td><td>
The prefix of this node. </td></tr>
</table>
</dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character. <br>
 NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>
 NAMESPACE_ERR: Raised if the specified <code>prefix</code> is  malformed, if the specified prefix is "xml" and the  <code>namespaceURI</code> of this node is different from  "<a href="http://www.w3.org/XML/1998/namespace">http://www.w3.org/XML/1998/namespace</a>", if specified prefix is  "xmlns" and the <code>namespaceURI</code> is neither  <code>null</code> nor an empty string, or if the  <code>localName</code> is <code>null</code>. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a25">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a25">XalanSourceTreeComment</a>, <a class="el" href="classXercesCommentWrapper.html#a25">XercesCommentWrapper</a>, and <a class="el" href="classXercesCommentBridge.html#a25">XercesCommentBridge</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="XalanComment::substringData"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
<a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; XalanComment::substringData (
          </b></td>
          <td valign="bottom"><b>
unsigned int <em>offset</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
unsigned int <em>count</em>, 
          </b></td>
        </tr>
        <tr>
          <td></td>
          <td><b>
<a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>theResult</em>&nbsp;) const<code> [pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Extracts a range of data from the node.
<p>
<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>offset</em>
&nbsp;</td><td>
Start offset of substring to extract. </td></tr>
<tr><td valign=top><em>count</em>
&nbsp;</td><td>
The number of characters to extract. </td></tr>
</table>
</dl><dl compact><dt>
<b>Returns: </b><dd>
The specified substring. If the sum of <code>offset</code> and  <code>count</code> exceeds the <code>length</code>, then all  characters to the end of the data are returned. </dl><dl compact><dt>
<b>Exceptions: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>DOMException</em>
&nbsp;</td><td>
 INDEX_SIZE_ERR: Raised if the specified offset is negative or greater  than the number of characters in <code>data</code>, or if the  specified <code>count</code> is negative. <br>
DOMSTRING_SIZE_ERR: Raised if the specified range of text does not  fit into a <code><a class="el" href="classXalanDOMString.html">XalanDOMString</a></code>. </td></tr>
</table>
</dl>
<p>
Reimplemented from <a class="el" href="classXalanCharacterData.html#a30">XalanCharacterData</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeComment.html#a30">XalanSourceTreeComment</a>, and <a class="el" href="classXercesCommentWrapper.html#a30">XercesCommentWrapper</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="XalanComment_8hpp-source.html">XalanComment.hpp</a></ul>
<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>
