<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_08) on Sat Apr 22 18:56:47 PDT 2006 -->
<TITLE>
NamedNodeMapImpl (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.message.NamedNodeMapImpl class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="NamedNodeMapImpl (Axis API)";
}
</SCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NamedNodeMapImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="NamedNodeMapImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis.message</FONT>
<BR>
Class NamedNodeMapImpl</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.message.NamedNodeMapImpl</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>org.w3c.dom.NamedNodeMap</DD>
</DL>
<HR>
<DL>
<DT>public class <B>NamedNodeMapImpl</B><DT>extends java.lang.Object<DT>implements org.w3c.dom.NamedNodeMap</DL>

<P>
A W3C simple DOM NameNodeMap implementation
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Heejune Ahn (cityboy@tmax.co.kr)</DD>
</DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#nodes">nodes</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nodes.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#NamedNodeMapImpl()">NamedNodeMapImpl</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#getLength()">getLength</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The number of nodes in this map.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#getNamedItem(java.lang.String)">getNamedItem</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves a node specified by name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#getNamedItemNS(java.lang.String, java.lang.String)">getNamedItemNS</A></B>(java.lang.String&nbsp;namespaceURI,
               java.lang.String&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves a node specified by local name and namespace URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#item(int)">item</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <code>index</code>th item in the map.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#removeNamedItem(java.lang.String)">removeNamedItem</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a node specified by name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#removeNamedItemNS(java.lang.String, java.lang.String)">removeNamedItemNS</A></B>(java.lang.String&nbsp;namespaceURI,
                  java.lang.String&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a node specified by local name and namespace URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#setNamedItem(org.w3c.dom.Node)">setNamedItem</A></B>(org.w3c.dom.Node&nbsp;arg)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a node using its <code>nodeName</code> attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/message/NamedNodeMapImpl.html#setNamedItemNS(org.w3c.dom.Node)">setNamedItemNS</A></B>(org.w3c.dom.Node&nbsp;arg)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a node using its <code>namespaceURI</code> and
 <code>localName</code>.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="nodes"><!-- --></A><H3>
nodes</H3>
<PRE>
protected java.util.Vector <B>nodes</B></PRE>
<DL>
<DD>Nodes.
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="NamedNodeMapImpl()"><!-- --></A><H3>
NamedNodeMapImpl</H3>
<PRE>
public <B>NamedNodeMapImpl</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="getNamedItem(java.lang.String)"><!-- --></A><H3>
getNamedItem</H3>
<PRE>
public org.w3c.dom.Node <B>getNamedItem</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Retrieves a node specified by name.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getNamedItem</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The <code>nodeName</code> of a node to retrieve.
<DT><B>Returns:</B><DD>A <code>Node</code> (of any type) with the specified
   <code>nodeName</code>, or <code>null</code> if it does not identify
   any node in this map.</DL>
</DD>
</DL>
<HR>

<A NAME="setNamedItem(org.w3c.dom.Node)"><!-- --></A><H3>
setNamedItem</H3>
<PRE>
public org.w3c.dom.Node <B>setNamedItem</B>(org.w3c.dom.Node&nbsp;arg)
                              throws org.w3c.dom.DOMException</PRE>
<DL>
<DD>Adds a node using its <code>nodeName</code> attribute. If a node with
 that name is already present in this map, it is replaced by the new
 one.
 <br>As the <code>nodeName</code> attribute is used to derive the name
 which the node must be stored under, multiple nodes of certain types
 (those that have a "special" string value) cannot be stored as the
 names would clash. This is seen as preferable to allowing nodes to be
 aliased.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>setNamedItem</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>arg</CODE> - A node to store in this map. The node will later be
   accessible using the value of its <code>nodeName</code> attribute.
<DT><B>Returns:</B><DD>If the new <code>Node</code> replaces an existing node the
   replaced <code>Node</code> is returned, otherwise <code>null</code>
   is returned.
<DT><B>Throws:</B>
<DD><CODE>org.w3c.dom.DOMException</CODE> - WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
   different document than the one that created this map.
   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
   <code>Attr</code> that is already an attribute of another
   <code>Element</code> object. The DOM user must explicitly clone
   <code>Attr</code> nodes to re-use them in other elements.
   <br>HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
   doesn't belong in this NamedNodeMap. Examples would include trying
   to insert something other than an Attr node into an Element's map
   of attributes, or a non-Entity node into the DocumentType's map of
   Entities.</DL>
</DD>
</DL>
<HR>

<A NAME="removeNamedItem(java.lang.String)"><!-- --></A><H3>
removeNamedItem</H3>
<PRE>
public org.w3c.dom.Node <B>removeNamedItem</B>(java.lang.String&nbsp;name)
                                 throws org.w3c.dom.DOMException</PRE>
<DL>
<DD>Removes a node specified by name. When this map contains the attributes
 attached to an element, if the removed attribute is known to have a
 default value, an attribute immediately appears containing the
 default value as well as the corresponding namespace URI, local name,
 and prefix when applicable.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>removeNamedItem</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The <code>nodeName</code> of the node to remove.
<DT><B>Returns:</B><DD>The node removed from this map if a node with such a name
   exists.
<DT><B>Throws:</B>
<DD><CODE>org.w3c.dom.DOMException</CODE> - NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
   this map.
   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</DL>
</DD>
</DL>
<HR>

<A NAME="item(int)"><!-- --></A><H3>
item</H3>
<PRE>
public org.w3c.dom.Node <B>item</B>(int&nbsp;index)</PRE>
<DL>
<DD>Returns the <code>index</code>th item in the map. If <code>index</code>
 is greater than or equal to the number of nodes in this map, this
 returns <code>null</code>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>item</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - Index into this map.
<DT><B>Returns:</B><DD>The node at the <code>index</code>th position in the map, or
   <code>null</code> if that is not a valid index.</DL>
</DD>
</DL>
<HR>

<A NAME="getLength()"><!-- --></A><H3>
getLength</H3>
<PRE>
public int <B>getLength</B>()</PRE>
<DL>
<DD>The number of nodes in this map. The range of valid child node indices
 is <code>0</code> to <code>length-1</code> inclusive.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getLength</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getNamedItemNS(java.lang.String, java.lang.String)"><!-- --></A><H3>
getNamedItemNS</H3>
<PRE>
public org.w3c.dom.Node <B>getNamedItemNS</B>(java.lang.String&nbsp;namespaceURI,
                                       java.lang.String&nbsp;localName)</PRE>
<DL>
<DD>Retrieves a node specified by local name and namespace URI.
 <br>Documents which do not support the "XML" feature will permit only
 the DOM Level 1 calls for creating/setting elements and attributes.
 Hence, if you specify a non-null namespace URI, these DOMs will never
 find a matching node.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getNamedItemNS</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - The namespace URI of the node to retrieve.<DD><CODE>localName</CODE> - The local name of the node to retrieve.
<DT><B>Returns:</B><DD>A <code>Node</code> (of any type) with the specified local
   name and namespace URI, or <code>null</code> if they do not
   identify any node in this map.<DT><B>Since:</B></DT>
  <DD>DOM Level 2</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="setNamedItemNS(org.w3c.dom.Node)"><!-- --></A><H3>
setNamedItemNS</H3>
<PRE>
public org.w3c.dom.Node <B>setNamedItemNS</B>(org.w3c.dom.Node&nbsp;arg)
                                throws org.w3c.dom.DOMException</PRE>
<DL>
<DD>Adds a node using its <code>namespaceURI</code> and
 <code>localName</code>. If a node with that namespace URI and that
 local name is already present in this map, it is replaced by the new
 one.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>setNamedItemNS</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>arg</CODE> - A node to store in this map. The node will later be
   accessible using the value of its <code>namespaceURI</code> and
   <code>localName</code> attributes.
<DT><B>Returns:</B><DD>If the new <code>Node</code> replaces an existing node the
   replaced <code>Node</code> is returned, otherwise <code>null</code>
   is returned.
<DT><B>Throws:</B>
<DD><CODE>org.w3c.dom.DOMException</CODE> - WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
   different document than the one that created this map.
   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
   <code>Attr</code> that is already an attribute of another
   <code>Element</code> object. The DOM user must explicitly clone
   <code>Attr</code> nodes to re-use them in other elements.
   <br>HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
   doesn't belong in this NamedNodeMap. Examples would include trying
   to insert something other than an Attr node into an Element's map
   of attributes, or a non-Entity node into the DocumentType's map of
   Entities.
   <br>NOT_SUPPORTED_ERR: Always thrown if the current document does not
   support the <code>"XML"</code> feature, since namespaces were
   defined by XML.<DT><B>Since:</B></DT>
  <DD>DOM Level 2</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeNamedItemNS(java.lang.String, java.lang.String)"><!-- --></A><H3>
removeNamedItemNS</H3>
<PRE>
public org.w3c.dom.Node <B>removeNamedItemNS</B>(java.lang.String&nbsp;namespaceURI,
                                          java.lang.String&nbsp;localName)
                                   throws org.w3c.dom.DOMException</PRE>
<DL>
<DD>Removes a node specified by local name and namespace URI. A removed
 attribute may be known to have a default value when this map contains
 the attributes attached to an element, as returned by the attributes
 attribute of the <code>Node</code> interface. If so, an attribute
 immediately appears containing the default value as well as the
 corresponding namespace URI, local name, and prefix when applicable.
 <br>Documents which do not support the "XML" feature will permit only
 the DOM Level 1 calls for creating/setting elements and attributes.
 Hence, if you specify a non-null namespace URI, these DOMs will never
 find a matching node.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>removeNamedItemNS</CODE> in interface <CODE>org.w3c.dom.NamedNodeMap</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - The namespace URI of the node to remove.<DD><CODE>localName</CODE> - The local name of the node to remove.
<DT><B>Returns:</B><DD>The node removed from this map if a node with such a local
   name and namespace URI exists.
<DT><B>Throws:</B>
<DD><CODE>org.w3c.dom.DOMException</CODE> - NOT_FOUND_ERR: Raised if there is no node with the specified
   <code>namespaceURI</code> and <code>localName</code> in this map.
   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.<DT><B>Since:</B></DT>
  <DD>DOM Level 2</DD>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/NamedNodeMapImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="NamedNodeMapImpl.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © 2005 Apache Web Services Project. All Rights Reserved.
</BODY>
</HTML>
