<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>XalanAttr  Class Reference</h1><code>#include &lt;<a class="el" href="XalanAttr_8hpp-source.html">XalanAttr.hpp</a>&gt;</code>
<p>
Inheritance diagram for XalanAttr:<p><center><img src="classXalanAttr__inherit__graph.gif" border="0" usemap="#XalanAttr_inherit_map" alt="Inheritance graph"></center>
<map name="XalanAttr_inherit_map">
<area href="classXalanSourceTreeAttr.html" shape="rect" coords="16,192,157,168">
<area href="classXercesAttrBridge.html" shape="rect" coords="181,192,301,168">
<area href="classXercesAttrWrapper.html" shape="rect" coords="325,192,458,168">
<area href="classXalanNode.html" shape="rect" coords="201,43,281,19">
<area href="classXalanSourceTreeAttrNS.html" shape="rect" coords="7,266,167,242">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for XalanAttr:<p><center><img src="classXalanAttr__coll__graph.gif" border="0" usemap="#XalanAttr_coll_map" alt="Collaboration graph"></center>
<map name="XalanAttr_coll_map">
<area href="classXalanNode.html" shape="rect" coords="7,42,86,18">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classXalanAttr-members.html">List of all members.</a><h2>Public Methods</h2>
<ul>
<li><a class="el" href="classXalanAttr.html#a0">XalanAttr</a> ()
<li>virtual <a class="el" href="classXalanAttr.html#a1">~XalanAttr</a> ()
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanAttr.html#a2">getNodeName</a> () const=0
<li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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 XalanAttr* <a class="el" href="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.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="classXalanAttr.html#a28">getName</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns the name of this attribute.</em> <a href="#a28">More...</a><em><br><br></em></font></dl><li>virtual bool <a class="el" href="classXalanAttr.html#a29">getSpecified</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function.</em> <a href="#a29">More...</a><em><br><br></em></font></dl><li>virtual const <a class="el" href="classXalanDOMString.html">XalanDOMString</a>&amp; <a class="el" href="classXalanAttr.html#a30">getValue</a> () const=0
<dl class="el"><dd><font size=-1><em>Returns the value of the attribute.</em> <a href="#a30">More...</a><em><br><br></em></font></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Setter functions</div></td></tr>
<ul>
<li>virtual void <a class="el" href="classXalanAttr.html#a31">setValue</a> (const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp;value)=0
<dl class="el"><dd><font size=-1><em>Sets the value of the attribute.</em> <a href="#a31">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 <a class="el" href="classXalanElement.html">XalanElement</a>* <a class="el" href="classXalanAttr.html#a32">getOwnerElement</a> () const=0
<dl class="el"><dd><font size=-1><em>The <code>Element</code> node this attribute is attached to or <code>null</code> if this attribute is not in use.</em> <a href="#a32">More...</a><em><br><br></em></font></dl></ul>
<h2>Protected Methods</h2>
<ul>
<li><a class="el" href="classXalanAttr.html#b0">XalanAttr</a> (const XalanAttr &amp;theSource)
<li>XalanAttr&amp; <a class="el" href="classXalanAttr.html#b1">operator=</a> (const XalanAttr &amp;theSource)
<li>bool <a class="el" href="classXalanAttr.html#b2">operator==</a> (const XalanAttr &amp;theRHS) const
</ul>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="XalanAttr::XalanAttr"></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> 
XalanAttr::XalanAttr (
          </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="XalanAttr::~XalanAttr"></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> 
XalanAttr::~XalanAttr (
          </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="XalanAttr::XalanAttr"></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> 
XalanAttr::XalanAttr (
          </b></td>
          <td valign="bottom"><b>
const XalanAttr &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="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a17">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a17">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a17">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a17">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="XalanAttr::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> 
XalanAttr * XalanAttr::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="classXalanNode.html#a13">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a13">XalanSourceTreeAttr</a>, <a class="el" href="classXalanSourceTreeAttrNS.html#a2">XalanSourceTreeAttrNS</a>, <a class="el" href="classXercesAttrWrapper.html#a13">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a13">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a11">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a11">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a11">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a11">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a6" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a6">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a6">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a6">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a6">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a7">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a7">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a7">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a7">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a27" doxytag="XalanAttr::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> XalanAttr::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="classXalanNode.html#a27">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a27">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a27">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a27">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a8">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a8">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a8">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a8">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a24" doxytag="XalanAttr::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; XalanAttr::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="classXalanNode.html#a24">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a24">XalanSourceTreeAttr</a>, <a class="el" href="classXalanSourceTreeAttrNS.html#a5">XalanSourceTreeAttrNS</a>, <a class="el" href="classXercesAttrWrapper.html#a24">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a24">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a28" doxytag="XalanAttr::getName"></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; XalanAttr::getName (
          </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 name of this attribute.
<p>

<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a28">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a28">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a28">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="XalanAttr::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; XalanAttr::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="classXalanNode.html#a22">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a22">XalanSourceTreeAttr</a>, <a class="el" href="classXalanSourceTreeAttrNS.html#a3">XalanSourceTreeAttrNS</a>, <a class="el" href="classXercesAttrWrapper.html#a22">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a22">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a10" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a10">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a10">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a10">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a10">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="XalanAttr::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; XalanAttr::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="classXalanNode.html#a2">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a2">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a2">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a2">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a4" doxytag="XalanAttr::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> XalanAttr::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="classXalanNode.html#a4">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a4">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a4">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a4">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="XalanAttr::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; XalanAttr::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="classXalanNode.html#a3">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a3">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a3">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a3">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a12">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a12">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a12">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a12">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a32" doxytag="XalanAttr::getOwnerElement"></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="classXalanElement.html">XalanElement</a> * XalanAttr::getOwnerElement (
          </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>
The <code>Element</code> node this attribute is attached to or <code>null</code> if this attribute is not in use.
<p>

<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a32">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a32">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a32">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a5">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a5">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a5">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a5">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="XalanAttr::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; XalanAttr::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="classXalanNode.html#a23">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a23">XalanSourceTreeAttr</a>, <a class="el" href="classXalanSourceTreeAttrNS.html#a4">XalanSourceTreeAttrNS</a>, <a class="el" href="classXercesAttrWrapper.html#a23">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a23">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a9">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a9">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a9">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a9">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a29" doxytag="XalanAttr::getSpecified"></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 XalanAttr::getSpecified (
          </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 true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function.
<p>
Returns false if the attribute value  came from the default value declared in the document's DTD. 
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a29">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a29">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a29">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="XalanAttr::getValue"></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; XalanAttr::getValue (
          </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 value of the attribute.
<p>
The value of the attribute is returned as a string.  Character and general entity references are replaced with their values. 
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a30">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a30">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a30">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a18" doxytag="XalanAttr::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 XalanAttr::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="classXalanNode.html#a18">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a18">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a18">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a18">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a14">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a14">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a14">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a14">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a26" doxytag="XalanAttr::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 XalanAttr::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="classXalanNode.html#a26">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a26">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a26">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a26">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="XalanAttr::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 XalanAttr::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="classXalanNode.html#a21">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a21">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a21">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a21">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a20" doxytag="XalanAttr::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 XalanAttr::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="classXalanNode.html#a20">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a20">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a20">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a20">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="b1" doxytag="XalanAttr::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> 
XalanAttr &amp; XalanAttr::operator= (
          </b></td>
          <td valign="bottom"><b>
const XalanAttr &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="XalanAttr::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 XalanAttr::operator== (
          </b></td>
          <td valign="bottom"><b>
const XalanAttr &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="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a16">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a16">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a16">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a16">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a15" doxytag="XalanAttr::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> * XalanAttr::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="classXalanNode.html#a15">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a15">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a15">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a15">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a19" doxytag="XalanAttr::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 XalanAttr::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="classXalanAttr.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="classXalanNode.html#a19">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a19">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a19">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a19">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a25" doxytag="XalanAttr::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 XalanAttr::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="classXalanNode.html#a25">XalanNode</a>.
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a25">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a25">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a25">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="XalanAttr::setValue"></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 XalanAttr::setValue (
          </b></td>
          <td valign="bottom"><b>
const <a class="el" href="classXalanDOMString.html">XalanDOMString</a> &amp; <em>value</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 attribute.
<p>
A text node with the unparsed contents of the string will be created.<dl compact><dt>
<b>Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>value</em>
&nbsp;</td><td>
The value of the DOM attribute to be set </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="classXalanSourceTreeAttr.html#a31">XalanSourceTreeAttr</a>, <a class="el" href="classXercesAttrWrapper.html#a31">XercesAttrWrapper</a>, and <a class="el" href="classXercesAttrBridge.html#a31">XercesAttrBridge</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="XalanAttr_8hpp-source.html">XalanAttr.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>
