<!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:49 PDT 2006 -->
<TITLE>
XMLUtils (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.utils.XMLUtils class">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="XMLUtils (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/XMLUtils.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/utils/XMLChar.html" title="class in org.apache.axis.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils"><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="XMLUtils.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;<A HREF="#nested_class_summary">NESTED</A>&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.utils</FONT>
<BR>
Class XMLUtils</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.utils.XMLUtils</B>
</PRE>
<HR>
<DL>
<DT>public class <B>XMLUtils</B><DT>extends java.lang.Object</DL>

<P>
<HR>

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

<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== 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 static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#enableParserReuse">enableParserReuse</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#httpAuthCharEncoding">httpAuthCharEncoding</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;org.apache.commons.logging.Log</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#log">log</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/utils/XMLUtils.html#XMLUtils()">XMLUtils</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>static&nbsp;org.w3c.dom.Element[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#asElementArray(java.util.List)">asElementArray</A></B>(java.util.List&nbsp;list)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a List with org.w3c.dom.Element objects to an Array
 with org.w3c.dom.Element objects.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#base64encode(byte[])">base64encode</A></B>(byte[]&nbsp;bytes)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#DocumentToStream(org.w3c.dom.Document, java.io.OutputStream)">DocumentToStream</A></B>(org.w3c.dom.Document&nbsp;doc,
                 java.io.OutputStream&nbsp;out)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#DocumentToString(org.w3c.dom.Document)">DocumentToString</A></B>(org.w3c.dom.Document&nbsp;doc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn a whole DOM document into XML</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#DocumentToWriter(org.w3c.dom.Document, java.io.Writer)">DocumentToWriter</A></B>(org.w3c.dom.Document&nbsp;doc,
                 java.io.Writer&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#ElementToStream(org.w3c.dom.Element, java.io.OutputStream)">ElementToStream</A></B>(org.w3c.dom.Element&nbsp;element,
                java.io.OutputStream&nbsp;out)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#ElementToString(org.w3c.dom.Element)">ElementToString</A></B>(org.w3c.dom.Element&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn an element into an XML fragment</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#ElementToWriter(org.w3c.dom.Element, java.io.Writer)">ElementToWriter</A></B>(org.w3c.dom.Element&nbsp;element,
                java.io.Writer&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Node</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#findNode(org.w3c.dom.Node, javax.xml.namespace.QName)">findNode</A></B>(org.w3c.dom.Node&nbsp;node,
         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a Node with a given QName</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getChildCharacterData(org.w3c.dom.Element)">getChildCharacterData</A></B>(org.w3c.dom.Element&nbsp;parentEl)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Concat all the text and cdata node children of this elem and return
 the resulting text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;javax.xml.parsers.DocumentBuilder</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getDocumentBuilder()">getDocumentBuilder</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a DocumentBuilder</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.xml.sax.InputSource</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getEmptyInputSource()">getEmptyInputSource</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getEncoding()">getEncoding</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the current encoding in effect</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.MessageContext)">getEncoding</A></B>(<A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the current encoding in effect</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext)">getEncoding</A></B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;message,
            <A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext, org.apache.axis.components.encoding.XMLEncoder)">getEncoding</A></B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;message,
            <A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext,
            <A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>&nbsp;defaultEncoder)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getFullQNameFromString(java.lang.String, org.w3c.dom.Node)">getFullQNameFromString</A></B>(java.lang.String&nbsp;str,
                       org.w3c.dom.Node&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a QName when passed a string like "foo:bar" by mapping
 the "foo" prefix to a namespace in the context of the given Node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getInnerXMLString(org.w3c.dom.Element)">getInnerXMLString</A></B>(org.w3c.dom.Element&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the inner XML inside an element as a string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.xml.sax.InputSource</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getInputSourceFromURI(java.lang.String)">getInputSourceFromURI</A></B>(java.lang.String&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility to get the bytes uri.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getNamespace(java.lang.String, org.w3c.dom.Node)">getNamespace</A></B>(java.lang.String&nbsp;prefix,
             org.w3c.dom.Node&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getNamespace(java.lang.String, org.w3c.dom.Node, org.w3c.dom.Node)">getNamespace</A></B>(java.lang.String&nbsp;prefix,
             org.w3c.dom.Node&nbsp;e,
             org.w3c.dom.Node&nbsp;stopNode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Searches for the namespace URI of the given prefix in the given DOM range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getPrefix(java.lang.String, org.w3c.dom.Node)">getPrefix</A></B>(java.lang.String&nbsp;uri,
          org.w3c.dom.Node&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getQNameFromString(java.lang.String, org.w3c.dom.Node)">getQNameFromString</A></B>(java.lang.String&nbsp;str,
                   org.w3c.dom.Node&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a QName when passed a string like "foo:bar" by mapping
 the "foo" prefix to a namespace in the context of the given Node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;javax.xml.parsers.SAXParser</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getSAXParser()">getSAXParser</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a SAX parser instance from the JAXP factory.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getStringForQName(javax.xml.namespace.QName, org.w3c.dom.Element)">getStringForQName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                  org.w3c.dom.Element&nbsp;e)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a string for a particular QName, mapping a new prefix
 if necessary.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getXMLEncoder(org.apache.axis.MessageContext)">getXMLEncoder</A></B>(<A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the current XMLEncoder</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#getXMLEncoder(java.lang.String)">getXMLEncoder</A></B>(java.lang.String&nbsp;encoding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the XMLEncoder for specific encoding</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#initSAXFactory(java.lang.String, boolean, boolean)">initSAXFactory</A></B>(java.lang.String&nbsp;factoryClassName,
               boolean&nbsp;namespaceAware,
               boolean&nbsp;validating)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize the SAX parser factory.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#newDocument()">newDocument</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an empty new Document</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#newDocument(org.xml.sax.InputSource)">newDocument</A></B>(org.xml.sax.InputSource&nbsp;inp)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a new Document read from the input source</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#newDocument(java.io.InputStream)">newDocument</A></B>(java.io.InputStream&nbsp;inp)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a new Document read from the input stream</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#newDocument(java.lang.String)">newDocument</A></B>(java.lang.String&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a new Document read from the indicated uri</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Document</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#newDocument(java.lang.String, java.lang.String, java.lang.String)">newDocument</A></B>(java.lang.String&nbsp;uri,
            java.lang.String&nbsp;username,
            java.lang.String&nbsp;password)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new document from the given URI, use the username and password
 if the URI requires authentication.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#normalize(org.w3c.dom.Node)">normalize</A></B>(org.w3c.dom.Node&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Trim all new lines from text nodes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#PrettyDocumentToStream(org.w3c.dom.Document, java.io.OutputStream)">PrettyDocumentToStream</A></B>(org.w3c.dom.Document&nbsp;doc,
                       java.io.OutputStream&nbsp;out)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#PrettyDocumentToString(org.w3c.dom.Document)">PrettyDocumentToString</A></B>(org.w3c.dom.Document&nbsp;doc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#PrettyDocumentToWriter(org.w3c.dom.Document, java.io.Writer)">PrettyDocumentToWriter</A></B>(org.w3c.dom.Document&nbsp;doc,
                       java.io.Writer&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#PrettyElementToStream(org.w3c.dom.Element, java.io.OutputStream)">PrettyElementToStream</A></B>(org.w3c.dom.Element&nbsp;element,
                      java.io.OutputStream&nbsp;out)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#PrettyElementToWriter(org.w3c.dom.Element, java.io.Writer)">PrettyElementToWriter</A></B>(org.w3c.dom.Element&nbsp;element,
                      java.io.Writer&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#privateElementToWriter(org.w3c.dom.Element, java.io.Writer, boolean, boolean)">privateElementToWriter</A></B>(org.w3c.dom.Element&nbsp;element,
                       java.io.Writer&nbsp;writer,
                       boolean&nbsp;omitXMLDecl,
                       boolean&nbsp;pretty)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#releaseDocumentBuilder(javax.xml.parsers.DocumentBuilder)">releaseDocumentBuilder</A></B>(javax.xml.parsers.DocumentBuilder&nbsp;db)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Releases a DocumentBuilder</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#releaseSAXParser(javax.xml.parsers.SAXParser)">releaseSAXParser</A></B>(javax.xml.parsers.SAXParser&nbsp;parser)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a SAX parser for reuse.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.xml.sax.InputSource</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#sourceToInputSource(javax.xml.transform.Source)">sourceToInputSource</A></B>(javax.xml.transform.Source&nbsp;source)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility to get the bytes uri</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;org.w3c.dom.Element</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#StringToElement(java.lang.String, java.lang.String, java.lang.String)">StringToElement</A></B>(java.lang.String&nbsp;namespace,
                java.lang.String&nbsp;name,
                java.lang.String&nbsp;string)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a simple string to an element with a text node</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#trim(java.lang.String)">trim</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/XMLUtils.html#xmlEncodeString(java.lang.String)">xmlEncodeString</A></B>(java.lang.String&nbsp;orig)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encode a string appropriately for XML.</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="log"><!-- --></A><H3>
log</H3>
<PRE>
protected static org.apache.commons.logging.Log <B>log</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="httpAuthCharEncoding"><!-- --></A><H3>
httpAuthCharEncoding</H3>
<PRE>
public static final java.lang.String <B>httpAuthCharEncoding</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.utils.XMLUtils.httpAuthCharEncoding">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="enableParserReuse"><!-- --></A><H3>
enableParserReuse</H3>
<PRE>
protected static boolean <B>enableParserReuse</B></PRE>
<DL>
<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="XMLUtils()"><!-- --></A><H3>
XMLUtils</H3>
<PRE>
public <B>XMLUtils</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="xmlEncodeString(java.lang.String)"><!-- --></A><H3>
xmlEncodeString</H3>
<PRE>
public static java.lang.String <B>xmlEncodeString</B>(java.lang.String&nbsp;orig)</PRE>
<DL>
<DD>Encode a string appropriately for XML.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>orig</CODE> - the String to encode
<DT><B>Returns:</B><DD>a String in which XML special chars are repalced by entities</DL>
</DD>
</DL>
<HR>

<A NAME="getXMLEncoder(org.apache.axis.MessageContext)"><!-- --></A><H3>
getXMLEncoder</H3>
<PRE>
public static <A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A> <B>getXMLEncoder</B>(<A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</PRE>
<DL>
<DD>Get the current XMLEncoder
<P>
<DD><DL>

<DT><B>Returns:</B><DD>XMLEncoder</DL>
</DD>
</DL>
<HR>

<A NAME="getXMLEncoder(java.lang.String)"><!-- --></A><H3>
getXMLEncoder</H3>
<PRE>
public static <A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A> <B>getXMLEncoder</B>(java.lang.String&nbsp;encoding)</PRE>
<DL>
<DD>Get the XMLEncoder for specific encoding
<P>
<DD><DL>

<DT><B>Returns:</B><DD>XMLEncoder</DL>
</DD>
</DL>
<HR>

<A NAME="getEncoding(org.apache.axis.MessageContext)"><!-- --></A><H3>
getEncoding</H3>
<PRE>
public static java.lang.String <B>getEncoding</B>(<A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</PRE>
<DL>
<DD>Get the current encoding in effect
<P>
<DD><DL>

<DT><B>Returns:</B><DD>string</DL>
</DD>
</DL>
<HR>

<A NAME="getEncoding()"><!-- --></A><H3>
getEncoding</H3>
<PRE>
public static java.lang.String <B>getEncoding</B>()</PRE>
<DL>
<DD>Get the current encoding in effect
<P>
<DD><DL>

<DT><B>Returns:</B><DD>string</DL>
</DD>
</DL>
<HR>

<A NAME="initSAXFactory(java.lang.String, boolean, boolean)"><!-- --></A><H3>
initSAXFactory</H3>
<PRE>
public static void <B>initSAXFactory</B>(java.lang.String&nbsp;factoryClassName,
                                  boolean&nbsp;namespaceAware,
                                  boolean&nbsp;validating)</PRE>
<DL>
<DD>Initialize the SAX parser factory.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>factoryClassName</CODE> - The (optional) class name of the desired
                         SAXParserFactory implementation. Will be
                         assigned to the system property
                         <b>javax.xml.parsers.SAXParserFactory</b>
                         unless this property is already set.
                         If <code>null</code>, leaves current setting
                         alone.<DD><CODE>namespaceAware</CODE> - true if we want a namespace-aware parser<DD><CODE>validating</CODE> - true if we want a validating parser</DL>
</DD>
</DL>
<HR>

<A NAME="getDocumentBuilder()"><!-- --></A><H3>
getDocumentBuilder</H3>
<PRE>
public static javax.xml.parsers.DocumentBuilder <B>getDocumentBuilder</B>()
                                                            throws javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Gets a DocumentBuilder
<P>
<DD><DL>

<DT><B>Returns:</B><DD>DocumentBuilder
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="releaseDocumentBuilder(javax.xml.parsers.DocumentBuilder)"><!-- --></A><H3>
releaseDocumentBuilder</H3>
<PRE>
public static void <B>releaseDocumentBuilder</B>(javax.xml.parsers.DocumentBuilder&nbsp;db)</PRE>
<DL>
<DD>Releases a DocumentBuilder
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>db</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getSAXParser()"><!-- --></A><H3>
getSAXParser</H3>
<PRE>
public static javax.xml.parsers.SAXParser <B>getSAXParser</B>()</PRE>
<DL>
<DD>Get a SAX parser instance from the JAXP factory.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a SAXParser instance.</DL>
</DD>
</DL>
<HR>

<A NAME="releaseSAXParser(javax.xml.parsers.SAXParser)"><!-- --></A><H3>
releaseSAXParser</H3>
<PRE>
public static void <B>releaseSAXParser</B>(javax.xml.parsers.SAXParser&nbsp;parser)</PRE>
<DL>
<DD>Return a SAX parser for reuse.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parser</CODE> - A SAX parser that is available for reuse</DL>
</DD>
</DL>
<HR>

<A NAME="newDocument()"><!-- --></A><H3>
newDocument</H3>
<PRE>
public static org.w3c.dom.Document <B>newDocument</B>()
                                        throws javax.xml.parsers.ParserConfigurationException</PRE>
<DL>
<DD>Get an empty new Document
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Document
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - if construction problems occur</DL>
</DD>
</DL>
<HR>

<A NAME="newDocument(org.xml.sax.InputSource)"><!-- --></A><H3>
newDocument</H3>
<PRE>
public static org.w3c.dom.Document <B>newDocument</B>(org.xml.sax.InputSource&nbsp;inp)
                                        throws javax.xml.parsers.ParserConfigurationException,
                                               org.xml.sax.SAXException,
                                               java.io.IOException</PRE>
<DL>
<DD>Get a new Document read from the input source
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Document
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - if construction problems occur
<DD><CODE>org.xml.sax.SAXException</CODE> - if the document has xml sax problems
<DD><CODE>java.io.IOException</CODE> - if i/o exceptions occur</DL>
</DD>
</DL>
<HR>

<A NAME="newDocument(java.io.InputStream)"><!-- --></A><H3>
newDocument</H3>
<PRE>
public static org.w3c.dom.Document <B>newDocument</B>(java.io.InputStream&nbsp;inp)
                                        throws javax.xml.parsers.ParserConfigurationException,
                                               org.xml.sax.SAXException,
                                               java.io.IOException</PRE>
<DL>
<DD>Get a new Document read from the input stream
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Document
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - if construction problems occur
<DD><CODE>org.xml.sax.SAXException</CODE> - if the document has xml sax problems
<DD><CODE>java.io.IOException</CODE> - if i/o exceptions occur</DL>
</DD>
</DL>
<HR>

<A NAME="newDocument(java.lang.String)"><!-- --></A><H3>
newDocument</H3>
<PRE>
public static org.w3c.dom.Document <B>newDocument</B>(java.lang.String&nbsp;uri)
                                        throws javax.xml.parsers.ParserConfigurationException,
                                               org.xml.sax.SAXException,
                                               java.io.IOException</PRE>
<DL>
<DD>Get a new Document read from the indicated uri
<P>
<DD><DL>

<DT><B>Returns:</B><DD>Document
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - if construction problems occur
<DD><CODE>org.xml.sax.SAXException</CODE> - if the document has xml sax problems
<DD><CODE>java.io.IOException</CODE> - if i/o exceptions occur</DL>
</DD>
</DL>
<HR>

<A NAME="newDocument(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
newDocument</H3>
<PRE>
public static org.w3c.dom.Document <B>newDocument</B>(java.lang.String&nbsp;uri,
                                               java.lang.String&nbsp;username,
                                               java.lang.String&nbsp;password)
                                        throws javax.xml.parsers.ParserConfigurationException,
                                               org.xml.sax.SAXException,
                                               java.io.IOException</PRE>
<DL>
<DD>Create a new document from the given URI, use the username and password
 if the URI requires authentication.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the resource to get<DD><CODE>username</CODE> - basic auth username<DD><CODE>password</CODE> - basic auth password
<DT><B>Throws:</B>
<DD><CODE>javax.xml.parsers.ParserConfigurationException</CODE> - if construction problems occur
<DD><CODE>org.xml.sax.SAXException</CODE> - if the document has xml sax problems
<DD><CODE>java.io.IOException</CODE> - if i/o exceptions occur</DL>
</DD>
</DL>
<HR>

<A NAME="ElementToString(org.w3c.dom.Element)"><!-- --></A><H3>
ElementToString</H3>
<PRE>
public static java.lang.String <B>ElementToString</B>(org.w3c.dom.Element&nbsp;element)</PRE>
<DL>
<DD>turn an element into an XML fragment
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>element</CODE> - 
<DT><B>Returns:</B><DD>stringified element</DL>
</DD>
</DL>
<HR>

<A NAME="DocumentToString(org.w3c.dom.Document)"><!-- --></A><H3>
DocumentToString</H3>
<PRE>
public static java.lang.String <B>DocumentToString</B>(org.w3c.dom.Document&nbsp;doc)</PRE>
<DL>
<DD>turn a whole DOM document into XML
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>doc</CODE> - DOM document
<DT><B>Returns:</B><DD>string representation of the document, including XML declaration</DL>
</DD>
</DL>
<HR>

<A NAME="PrettyDocumentToString(org.w3c.dom.Document)"><!-- --></A><H3>
PrettyDocumentToString</H3>
<PRE>
public static java.lang.String <B>PrettyDocumentToString</B>(org.w3c.dom.Document&nbsp;doc)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="privateElementToWriter(org.w3c.dom.Element, java.io.Writer, boolean, boolean)"><!-- --></A><H3>
privateElementToWriter</H3>
<PRE>
public static void <B>privateElementToWriter</B>(org.w3c.dom.Element&nbsp;element,
                                          java.io.Writer&nbsp;writer,
                                          boolean&nbsp;omitXMLDecl,
                                          boolean&nbsp;pretty)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="ElementToStream(org.w3c.dom.Element, java.io.OutputStream)"><!-- --></A><H3>
ElementToStream</H3>
<PRE>
public static void <B>ElementToStream</B>(org.w3c.dom.Element&nbsp;element,
                                   java.io.OutputStream&nbsp;out)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="PrettyElementToStream(org.w3c.dom.Element, java.io.OutputStream)"><!-- --></A><H3>
PrettyElementToStream</H3>
<PRE>
public static void <B>PrettyElementToStream</B>(org.w3c.dom.Element&nbsp;element,
                                         java.io.OutputStream&nbsp;out)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="ElementToWriter(org.w3c.dom.Element, java.io.Writer)"><!-- --></A><H3>
ElementToWriter</H3>
<PRE>
public static void <B>ElementToWriter</B>(org.w3c.dom.Element&nbsp;element,
                                   java.io.Writer&nbsp;writer)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="PrettyElementToWriter(org.w3c.dom.Element, java.io.Writer)"><!-- --></A><H3>
PrettyElementToWriter</H3>
<PRE>
public static void <B>PrettyElementToWriter</B>(org.w3c.dom.Element&nbsp;element,
                                         java.io.Writer&nbsp;writer)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="DocumentToStream(org.w3c.dom.Document, java.io.OutputStream)"><!-- --></A><H3>
DocumentToStream</H3>
<PRE>
public static void <B>DocumentToStream</B>(org.w3c.dom.Document&nbsp;doc,
                                    java.io.OutputStream&nbsp;out)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="PrettyDocumentToStream(org.w3c.dom.Document, java.io.OutputStream)"><!-- --></A><H3>
PrettyDocumentToStream</H3>
<PRE>
public static void <B>PrettyDocumentToStream</B>(org.w3c.dom.Document&nbsp;doc,
                                          java.io.OutputStream&nbsp;out)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="DocumentToWriter(org.w3c.dom.Document, java.io.Writer)"><!-- --></A><H3>
DocumentToWriter</H3>
<PRE>
public static void <B>DocumentToWriter</B>(org.w3c.dom.Document&nbsp;doc,
                                    java.io.Writer&nbsp;writer)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="PrettyDocumentToWriter(org.w3c.dom.Document, java.io.Writer)"><!-- --></A><H3>
PrettyDocumentToWriter</H3>
<PRE>
public static void <B>PrettyDocumentToWriter</B>(org.w3c.dom.Document&nbsp;doc,
                                          java.io.Writer&nbsp;writer)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="StringToElement(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
StringToElement</H3>
<PRE>
public static org.w3c.dom.Element <B>StringToElement</B>(java.lang.String&nbsp;namespace,
                                                  java.lang.String&nbsp;name,
                                                  java.lang.String&nbsp;string)</PRE>
<DL>
<DD>Convert a simple string to an element with a text node
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - - element namespace<DD><CODE>name</CODE> - - element name<DD><CODE>string</CODE> - - value of the text node
<DT><B>Returns:</B><DD>element - an XML Element, null if no element was created</DL>
</DD>
</DL>
<HR>

<A NAME="getInnerXMLString(org.w3c.dom.Element)"><!-- --></A><H3>
getInnerXMLString</H3>
<PRE>
public static java.lang.String <B>getInnerXMLString</B>(org.w3c.dom.Element&nbsp;element)</PRE>
<DL>
<DD>get the inner XML inside an element as a string. This is done by
 converting the XML to its string representation, then extracting the
 subset between beginning and end tags.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>element</CODE> - 
<DT><B>Returns:</B><DD>textual body of the element, or null for no inner body</DL>
</DD>
</DL>
<HR>

<A NAME="getPrefix(java.lang.String, org.w3c.dom.Node)"><!-- --></A><H3>
getPrefix</H3>
<PRE>
public static java.lang.String <B>getPrefix</B>(java.lang.String&nbsp;uri,
                                         org.w3c.dom.Node&nbsp;e)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getNamespace(java.lang.String, org.w3c.dom.Node, org.w3c.dom.Node)"><!-- --></A><H3>
getNamespace</H3>
<PRE>
public static java.lang.String <B>getNamespace</B>(java.lang.String&nbsp;prefix,
                                            org.w3c.dom.Node&nbsp;e,
                                            org.w3c.dom.Node&nbsp;stopNode)</PRE>
<DL>
<DD>Searches for the namespace URI of the given prefix in the given DOM range.

 The namespace is not searched in parent of the "stopNode". This is
 usefull to get all the needed namespaces when you need to ouput only a
 subtree of a DOM document.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>prefix</CODE> - the prefix to find<DD><CODE>e</CODE> - the starting node<DD><CODE>stopNode</CODE> - null to search in all the document or a parent node where the search must stop.
<DT><B>Returns:</B><DD>null if no namespace is found, or the namespace URI.</DL>
</DD>
</DL>
<HR>

<A NAME="getNamespace(java.lang.String, org.w3c.dom.Node)"><!-- --></A><H3>
getNamespace</H3>
<PRE>
public static java.lang.String <B>getNamespace</B>(java.lang.String&nbsp;prefix,
                                            org.w3c.dom.Node&nbsp;e)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getQNameFromString(java.lang.String, org.w3c.dom.Node)"><!-- --></A><H3>
getQNameFromString</H3>
<PRE>
public static <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getQNameFromString</B>(java.lang.String&nbsp;str,
                                       org.w3c.dom.Node&nbsp;e)</PRE>
<DL>
<DD>Return a QName when passed a string like "foo:bar" by mapping
 the "foo" prefix to a namespace in the context of the given Node.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a QName generated from the given string representation</DL>
</DD>
</DL>
<HR>

<A NAME="getFullQNameFromString(java.lang.String, org.w3c.dom.Node)"><!-- --></A><H3>
getFullQNameFromString</H3>
<PRE>
public static <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getFullQNameFromString</B>(java.lang.String&nbsp;str,
                                           org.w3c.dom.Node&nbsp;e)</PRE>
<DL>
<DD>Return a QName when passed a string like "foo:bar" by mapping
 the "foo" prefix to a namespace in the context of the given Node.
 If default namespace is found it is returned as part of the QName.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a QName generated from the given string representation</DL>
</DD>
</DL>
<HR>

<A NAME="getStringForQName(javax.xml.namespace.QName, org.w3c.dom.Element)"><!-- --></A><H3>
getStringForQName</H3>
<PRE>
public static java.lang.String <B>getStringForQName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                                                 org.w3c.dom.Element&nbsp;e)</PRE>
<DL>
<DD>Return a string for a particular QName, mapping a new prefix
 if necessary.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getChildCharacterData(org.w3c.dom.Element)"><!-- --></A><H3>
getChildCharacterData</H3>
<PRE>
public static java.lang.String <B>getChildCharacterData</B>(org.w3c.dom.Element&nbsp;parentEl)</PRE>
<DL>
<DD>Concat all the text and cdata node children of this elem and return
 the resulting text.
 (by Matt Duftler)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parentEl</CODE> - the element whose cdata/text node values are to
                 be combined.
<DT><B>Returns:</B><DD>the concatanated string.</DL>
</DD>
</DL>
<HR>

<A NAME="getInputSourceFromURI(java.lang.String)"><!-- --></A><H3>
getInputSourceFromURI</H3>
<PRE>
public static org.xml.sax.InputSource <B>getInputSourceFromURI</B>(java.lang.String&nbsp;uri)</PRE>
<DL>
<DD>Utility to get the bytes uri.
 Does NOT handle authenticated URLs,
 use getInputSourceFromURI(uri, username, password)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>uri</CODE> - the resource to get<DT><B>See Also:</B><DD><CODE>#getInputSourceFromURI(String uri, String username, String password)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="sourceToInputSource(javax.xml.transform.Source)"><!-- --></A><H3>
sourceToInputSource</H3>
<PRE>
public static org.xml.sax.InputSource <B>sourceToInputSource</B>(javax.xml.transform.Source&nbsp;source)</PRE>
<DL>
<DD>Utility to get the bytes uri
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>source</CODE> - the resource to get</DL>
</DD>
</DL>
<HR>

<A NAME="base64encode(byte[])"><!-- --></A><H3>
base64encode</H3>
<PRE>
public static final java.lang.String <B>base64encode</B>(byte[]&nbsp;bytes)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getEmptyInputSource()"><!-- --></A><H3>
getEmptyInputSource</H3>
<PRE>
public static org.xml.sax.InputSource <B>getEmptyInputSource</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="findNode(org.w3c.dom.Node, javax.xml.namespace.QName)"><!-- --></A><H3>
findNode</H3>
<PRE>
public static org.w3c.dom.Node <B>findNode</B>(org.w3c.dom.Node&nbsp;node,
                                        <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Find a Node with a given QName
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - parent node<DD><CODE>name</CODE> - QName of the child we need to find
<DT><B>Returns:</B><DD>child node</DL>
</DD>
</DL>
<HR>

<A NAME="normalize(org.w3c.dom.Node)"><!-- --></A><H3>
normalize</H3>
<PRE>
public static void <B>normalize</B>(org.w3c.dom.Node&nbsp;node)</PRE>
<DL>
<DD>Trim all new lines from text nodes.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="trim(java.lang.String)"><!-- --></A><H3>
trim</H3>
<PRE>
public static java.lang.String <B>trim</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="asElementArray(java.util.List)"><!-- --></A><H3>
asElementArray</H3>
<PRE>
public static org.w3c.dom.Element[] <B>asElementArray</B>(java.util.List&nbsp;list)</PRE>
<DL>
<DD>Converts a List with org.w3c.dom.Element objects to an Array
 with org.w3c.dom.Element objects.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>list</CODE> - List containing org.w3c.dom.Element objects
<DT><B>Returns:</B><DD>Element[] Array with org.w3c.dom.Element objects</DL>
</DD>
</DL>
<HR>

<A NAME="getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext)"><!-- --></A><H3>
getEncoding</H3>
<PRE>
public static java.lang.String <B>getEncoding</B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;message,
                                           <A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext, org.apache.axis.components.encoding.XMLEncoder)"><!-- --></A><H3>
getEncoding</H3>
<PRE>
public static java.lang.String <B>getEncoding</B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;message,
                                           <A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>&nbsp;msgContext,
                                           <A HREF="../../../../org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>&nbsp;defaultEncoder)</PRE>
<DL>
<DD><DL>
</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/XMLUtils.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/utils/XMLChar.html" title="class in org.apache.axis.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils"><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="XMLUtils.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;<A HREF="#nested_class_summary">NESTED</A>&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>
