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


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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Index (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">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&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;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.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>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="org/apache/axis/MessageContext.html#ACCEPTMISSINGPARAMS"><B>ACCEPTMISSINGPARAMS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>A boolean param, to control whether we accept missing parameters
 as nulls or refuse to acknowledge them.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#ACKNOWLEDGE_MODE"><B>ACKNOWLEDGE_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>registerListener</code>
 method.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#ADAPTER_POSTFIX"><B>ADAPTER_POSTFIX</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#ALLOW_FORM_OPTIMIZATION"><B>ALLOW_FORM_OPTIMIZATION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>property used to set SOAPEnvelope as default form
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#ALLOW_INVALID_URL_OPT"><B>ALLOW_INVALID_URL_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field ALLOW_INVALID_URL_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#ALL_OPT"><B>ALL_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field ALL_OPT
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#AMP"><B>AMP</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#ANON_TOKEN"><B>ANON_TOKEN</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Field ANON_TOKEN
<DT><A HREF="org/apache/axis/Constants.html#ANYCONTENT"><B>ANYCONTENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>The name of the field which accepts xsd:any content in Beans.
<DT><A HREF="org/apache/axis/constants/Scope.html#APPLICATION"><B>APPLICATION</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#APPLICATION_STR"><B>APPLICATION_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#ARGUMENTS_REQUIRED_2"><B>ARGUMENTS_REQUIRED_2</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Flag to say this option requires 2 arguments
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#ARGUMENT_DISALLOWED"><B>ARGUMENT_DISALLOWED</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Flag to say this option does not take arguments
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#ARGUMENT_OPTIONAL"><B>ARGUMENT_OPTIONAL</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Flag to say that the argument is optional
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#ARGUMENT_REQUIRED"><B>ARGUMENT_REQUIRED</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Flag to say that one argument is required
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ARRAY_DESERIALIZER_FACTORY"><B>ARRAY_DESERIALIZER_FACTORY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ARRAY_SERIALIZER_FACTORY"><B>ARRAY_SERIALIZER_FACTORY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#ATTACHMENTS_DIR"><B>ATTACHMENTS_DIR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The directory where in coming attachments are created.
<DT><A HREF="org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT"><B>ATTACHMENT_ENCAPSULATION_FORMAT</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Property for setting attachment format.
<DT><A HREF="org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_DIME"><B>ATTACHMENT_ENCAPSULATION_FORMAT_DIME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Property value for setting attachment format as DIME.
<DT><A HREF="org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MIME"><B>ATTACHMENT_ENCAPSULATION_FORMAT_MIME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Property value for setting attachment format as MIME.
<DT><A HREF="org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MTOM"><B>ATTACHMENT_ENCAPSULATION_FORMAT_MTOM</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Property value for setting attachment format as DIME.
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ACTOR"><B>ATTR_ACTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ARRAY_SIZE"><B>ATTR_ARRAY_SIZE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ARRAY_TYPE"><B>ATTR_ARRAY_TYPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_ATTACHMENT_FORMAT"><B>ATTR_ATTACHMENT_FORMAT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#ATTR_AXIS_ENGINE"><B>ATTR_AXIS_ENGINE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>name of the axis engine to use in the servlet context
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_CLASS"><B>ATTR_CLASS</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_CLASSNAME"><B>ATTR_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_DESERIALIZER"><B>ATTR_DESERIALIZER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ENCODING_STYLE"><B>ATTR_ENCODING_STYLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_ENCSTYLE"><B>ATTR_ENCSTYLE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_HANDLERINFOCHAIN"><B>ATTR_HANDLERINFOCHAIN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_HREF"><B>ATTR_HREF</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ID"><B>ATTR_ID</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_INHEADER"><B>ATTR_INHEADER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_INNER_NAME"><B>ATTR_INNER_NAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_INNER_TYPE"><B>ATTR_INNER_TYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_ITEMQNAME"><B>ATTR_ITEMQNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_ITEMTYPE"><B>ATTR_ITEMTYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ITEM_TYPE"><B>ATTR_ITEM_TYPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_LANG_SPEC_TYPE"><B>ATTR_LANG_SPEC_TYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_LOCKED"><B>ATTR_LOCKED</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_MEP"><B>ATTR_MEP</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_MODE"><B>ATTR_MODE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_MUST_UNDERSTAND"><B>ATTR_MUST_UNDERSTAND</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_NAME"><B>ATTR_NAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_OFFSET"><B>ATTR_OFFSET</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_OUTHEADER"><B>ATTR_OUTHEADER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_PIVOT"><B>ATTR_PIVOT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_POSITION"><B>ATTR_POSITION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_PROVIDER"><B>ATTR_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_QNAME"><B>ATTR_QNAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_QNAME"><B>ATTR_QNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_REF"><B>ATTR_REF</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_RELAY"><B>ATTR_RELAY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_RETHEADER"><B>ATTR_RETHEADER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_RETITEMQNAME"><B>ATTR_RETITEMQNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_RETITEMTYPE"><B>ATTR_RETITEMTYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_RETQNAME"><B>ATTR_RETQNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_RETTYPE"><B>ATTR_RETTYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ROLE"><B>ATTR_ROLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_ROOT"><B>ATTR_ROOT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_SERIALIZER"><B>ATTR_SERIALIZER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_SOAP12ACTION"><B>ATTR_SOAP12ACTION</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_SOAPACTION"><B>ATTR_SOAPACTION</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_SOAPACTORNAME"><B>ATTR_SOAPACTORNAME</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_STREAMING"><B>ATTR_STREAMING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_STYLE"><B>ATTR_STYLE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ATTR_TYPE"><B>ATTR_TYPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_TYPE"><B>ATTR_TYPE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_USE"><B>ATTR_USE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ATTR_VALUE"><B>ATTR_VALUE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#AUTHUSER"><B>AUTHUSER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Place to store an AuthenticatedUser.
<DT><A HREF="org/apache/axis/Constants.html#AXIS_SAX"><B>AXIS_SAX</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#AXIS_SESSION_MARKER"><B>AXIS_SESSION_MARKER</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/XMLType.html#AXIS_VOID"><B>AXIS_VOID</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/XMLType.html" title="class in org.apache.axis.encoding">XMLType</A>
<DD>A "marker" XML type QName we use to indicate a void type.
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler"><B>AbstractCompiler</B></A> - class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>.<DD>This class implements the functionality common to all Java compilers.<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#AbstractCompiler()"><B>AbstractCompiler()</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http"><B>AbstractQueryStringHandler</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>.<DD>An optional base class for query string handlers; provides various helper methods
 and extracts things from the the message context<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#AbstractQueryStringHandler()"><B>AbstractQueryStringHandler()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding"><B>AbstractXMLEncoder</B></A> - class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>.<DD>Abstract class for XML String encoders.<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#AbstractXMLEncoder()"><B>AbstractXMLEncoder()</B></A> - 
Constructor for class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils"><B>Admin</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>.<DD>Handy static utility functions for turning XML into
 Axis deployment operations.<DT><A HREF="org/apache/axis/utils/Admin.html#Admin()"><B>Admin()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client"><B>AdminClient</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>.<DD>An admin client object that can be used both from the command line
 and programmatically.<DT><A HREF="org/apache/axis/client/AdminClient.html#AdminClient()"><B>AdminClient()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>Construct an admin client w/o a logger.
<DT><A HREF="org/apache/axis/client/AdminClient.html#AdminClient(boolean)"><B>AdminClient(boolean)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>this is a somwhat contrived variant constructor, one that throws an exception
 if things go wrong.
<DT><A HREF="org/apache/axis/utils/Admin.html#AdminService(org.w3c.dom.Element[])"><B>AdminService(Element[])</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>Process a given XML document - needs cleanup.
<DT><A HREF="org/apache/axis/transport/http/AdminServlet.html" title="class in org.apache.axis.transport.http"><B>AdminServlet</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AdminServlet.html" title="class in org.apache.axis.transport.http">AdminServlet</A>.<DD>Proof-of-concept "management" servlet for Axis.<DT><A HREF="org/apache/axis/transport/http/AdminServlet.html#AdminServlet()"><B>AdminServlet()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AdminServlet.html" title="class in org.apache.axis.transport.http">AdminServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AnyContentType.html" title="interface in org.apache.axis.encoding"><B>AnyContentType</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AnyContentType.html" title="interface in org.apache.axis.encoding">AnyContentType</A>.<DD>Interface to indicate that a bean has xsd:any content<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>ArrayDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>.<DD>An ArrayDeserializer handles deserializing SOAP
 arrays.<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#ArrayDeserializer()"><B>ArrayDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html" title="class in org.apache.axis.encoding.ser"><B>ArrayDeserializer.ArrayListExtension</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer.ArrayListExtension</A>.<DD>During processing, the Array Deserializer stores the array in 
 an ArrayListExtension class.<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>ArrayDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializerFactory</A>.<DD>DeserializerFactory for arrays<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html#ArrayDeserializerFactory()"><B>ArrayDeserializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html#ArrayDeserializerFactory(javax.xml.namespace.QName)"><B>ArrayDeserializerFactory(QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializerFactory</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser"><B>ArraySerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>.<DD>An ArraySerializer handles serializing of arrays.<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#ArraySerializer(java.lang.Class, javax.xml.namespace.QName)"><B>ArraySerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#ArraySerializer(java.lang.Class, javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>ArraySerializer(Class, QName, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>Constructor
 Special constructor that takes the component type of the array.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#ArraySerializer(java.lang.Class, javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>ArraySerializer(Class, QName, QName, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>Constructor
 Special constructor that takes the component type and QName of the array.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>ArraySerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>.<DD>SerializerFactory for arrays<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#ArraySerializerFactory()"><B>ArraySerializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#ArraySerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>ArraySerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#ArraySerializerFactory(javax.xml.namespace.QName)"><B>ArraySerializerFactory(QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#ArraySerializerFactory(javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>ArraySerializerFactory(QName, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils"><B>ArrayUtil</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#ArrayUtil()"><B>ArrayUtil()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ArrayUtil.NonConvertable.html" title="class in org.apache.axis.utils"><B>ArrayUtil.NonConvertable</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.NonConvertable.html" title="class in org.apache.axis.utils">ArrayUtil.NonConvertable</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/ArrayUtil.NonConvertable.html#ArrayUtil.NonConvertable()"><B>ArrayUtil.NonConvertable()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.NonConvertable.html" title="class in org.apache.axis.utils">ArrayUtil.NonConvertable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async"><B>AsyncCall</B></A> - class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>.<DD>Support for Asynchronous call<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#AsyncCall(org.apache.axis.client.Call)"><B>AsyncCall(Call)</B></A> - 
Constructor for class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Constructor AsyncCall
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#AsyncCall(org.apache.axis.client.Call, org.apache.axis.client.async.IAsyncCallback)"><B>AsyncCall(Call, IAsyncCallback)</B></A> - 
Constructor for class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Constructor AsyncCall
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async"><B>AsyncResult</B></A> - class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>.<DD>Access the results of the Async call<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#AsyncResult(org.apache.axis.client.async.AsyncCall, javax.xml.namespace.QName, java.lang.Object[])"><B>AsyncResult(AsyncCall, QName, Object[])</B></A> - 
Constructor for class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Constructor AsyncResult
<DT><A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap"><B>AttachmentPart</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>.<DD>A single attachment to a <CODE>SOAPMessage</CODE> object.<DT><A HREF="javax/xml/soap/AttachmentPart.html#AttachmentPart()"><B>AttachmentPart()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Create a new AttachmentPart.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments"><B>AttachmentPart</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>.<DD>An attachment part.<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#AttachmentPart()"><B>AttachmentPart()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Bulds a new <code>AttachmentPart</code>.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#AttachmentPart(javax.activation.DataHandler)"><B>AttachmentPart(DataHandler)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Bulds a new <code>AttachmentPart</code> with a <code>DataHandler</code>.
<DT><A HREF="org/apache/axis/attachments/AttachmentUtils.html" title="class in org.apache.axis.attachments"><B>AttachmentUtils</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentUtils.html" title="class in org.apache.axis.attachments">AttachmentUtils</A>.<DD>This class allow access to the Jaf data handler in AttachmentPart.<DT><A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments"><B>Attachments</B></A> - interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>.<DD>Access the Attachments of a Message.<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments"><B>AttachmentsImpl</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>.<DD>Implements the Attachment interface, via an actual Hashmap of actual
 AttachmentParts.<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#AttachmentsImpl(java.lang.Object, java.lang.String, java.lang.String)"><B>AttachmentsImpl(Object, String, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Construct one of these on a parent Message.
<DT><A HREF="org/apache/axis/description/AttributeDesc.html" title="class in org.apache.axis.description"><B>AttributeDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/AttributeDesc.html" title="class in org.apache.axis.description">AttributeDesc</A>.<DD>An AttributeDesc is a FieldDesc for an Java field mapping to an
 XML attribute<DT><A HREF="org/apache/axis/description/AttributeDesc.html#AttributeDesc()"><B>AttributeDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/AttributeDesc.html" title="class in org.apache.axis.description">AttributeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding"><B>AttributeSerializationContextImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding">AttributeSerializationContextImpl</A>.<DD>Used to suppress element tag serialization when serializing simple
 types into attributes.<DT><A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html#AttributeSerializationContextImpl(java.io.Writer, org.apache.axis.encoding.SerializationContext)"><B>AttributeSerializationContextImpl(Writer, SerializationContext)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding">AttributeSerializationContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/security/AuthenticatedUser.html" title="interface in org.apache.axis.security"><B>AuthenticatedUser</B></A> - interface org.apache.axis.security.<A HREF="org/apache/axis/security/AuthenticatedUser.html" title="interface in org.apache.axis.security">AuthenticatedUser</A>.<DD>A small (mostly marker) interface for wrapping provider-specific
 user classes.<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http"><B>AutoRegisterServlet</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>.<DD>Servlet that autoregisters<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#AutoRegisterServlet()"><B>AutoRegisterServlet()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client"><B>AxisClient</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>.<DD>Provides the equivalent of an "Axis engine" on the client side.<DT><A HREF="org/apache/axis/client/AxisClient.html#AxisClient(org.apache.axis.EngineConfiguration)"><B>AxisClient(EngineConfiguration)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AxisClient.html#AxisClient()"><B>AxisClient()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client"><B>AxisClientProxy</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client">AxisClientProxy</A>.<DD>Very simple dynamic proxy InvocationHandler class.<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor"><B>AxisContentHandler</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>.<DD>This ContentHandler delegates all serialization to an axis SerializationContext<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#AxisContentHandler(org.apache.axis.encoding.SerializationContext)"><B>AxisContentHandler(SerializationContext)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>Creates a contentHandler delegate
<DT><A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis"><B>AxisEngine</B></A> - class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>.<DD>An <code>AxisEngine</code> is the base class for AxisClient and
 AxisServer.<DT><A HREF="org/apache/axis/AxisEngine.html#AxisEngine(org.apache.axis.EngineConfiguration)"><B>AxisEngine(EngineConfiguration)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Construct an AxisEngine using the specified engine configuration.
<DT><A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis"><B>AxisFault</B></A> - exception org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>.<DD>An exception which maps cleanly to a SOAP fault.<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(java.lang.String, java.lang.String, java.lang.String, org.w3c.dom.Element[])"><B>AxisFault(String, String, String, Element[])</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Make a fault in the <code>Constants.NS_URI_AXIS</code> namespace.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(javax.xml.namespace.QName, java.lang.String, java.lang.String, org.w3c.dom.Element[])"><B>AxisFault(QName, String, String, Element[])</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Make a fault in any namespace.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(javax.xml.namespace.QName, javax.xml.namespace.QName[], java.lang.String, java.lang.String, java.lang.String, org.w3c.dom.Element[])"><B>AxisFault(QName, QName[], String, String, String, Element[])</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Make a fault in any namespace.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(java.lang.Exception)"><B>AxisFault(Exception)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Wrap an AxisFault around an existing Exception.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(java.lang.String)"><B>AxisFault(String)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>create a simple axis fault from the message.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault()"><B>AxisFault()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>No-arg constructor for building one from an XML stream.
<DT><A HREF="org/apache/axis/AxisFault.html#AxisFault(java.lang.String, java.lang.Throwable)"><B>AxisFault(String, Throwable)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>create a fault from any throwable;
 When faulting a throwable (as opposed to an exception),
 stack trace information does not go into the fault.
<DT><A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http"><B>AxisHTTPSessionListener</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http">AxisHTTPSessionListener</A>.<DD>A simple listener for Servlet 2.3 session lifecycle events.<DT><A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html#AxisHTTPSessionListener()"><B>AxisHTTPSessionListener()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http">AxisHTTPSessionListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http"><B>AxisHttpSession</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>.<DD>An HTTP/Servlet implementation of Axis sessions.<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#AxisHttpSession(javax.servlet.http.HttpServletRequest)"><B>AxisHttpSession(HttpServletRequest)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#AxisHttpSession(javax.servlet.http.HttpSession)"><B>AxisHttpSession(HttpSession)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis"><B>AxisProperties</B></A> - class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>.<DD>Configuration properties for AXIS.<DT><A HREF="org/apache/axis/AxisProperties.html#AxisProperties()"><B>AxisProperties()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server"><B>AxisServer</B></A> - class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/server/AxisServer.html#AxisServer()"><B>AxisServer()</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServer.html#AxisServer(org.apache.axis.EngineConfiguration)"><B>AxisServer(EngineConfiguration)</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServerFactory.html" title="interface in org.apache.axis.server"><B>AxisServerFactory</B></A> - interface org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServerFactory.html" title="interface in org.apache.axis.server">AxisServerFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/AxisServiceConfig.html" title="interface in org.apache.axis"><B>AxisServiceConfig</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfig.html" title="interface in org.apache.axis">AxisServiceConfig</A>.<DD>If a Java class which acts as the target for an Axis service
 implements this interface, it may convey metadata about its
 configuration to the Axis engine.<DT><A HREF="org/apache/axis/AxisServiceConfigImpl.html" title="class in org.apache.axis"><B>AxisServiceConfigImpl</B></A> - class org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfigImpl.html" title="class in org.apache.axis">AxisServiceConfigImpl</A>.<DD>A simple implementation of AxisServiceConfig.<DT><A HREF="org/apache/axis/AxisServiceConfigImpl.html#AxisServiceConfigImpl()"><B>AxisServiceConfigImpl()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfigImpl.html" title="class in org.apache.axis">AxisServiceConfigImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http"><B>AxisServlet</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#AxisServlet()"><B>AxisServlet()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>create a new servlet instance
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http"><B>AxisServletBase</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>.<DD>Base class for servlets used in axis, has common methods
 to get and save the engine to a common location, currently the
 webapp's context, though some alternate persistence mechanism is always
 possible.<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#AxisServletBase()"><B>AxisServletBase()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#abort()"><B>abort()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method abort
<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html#abort()"><B>abort()</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>
<DD>Method abort
<DT><A HREF="org/apache/axis/types/URI.html#absolutize(org.apache.axis.types.URI)"><B>absolutize(URI)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Absolutize URI with given base URI.
<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#actionPerformed(java.awt.event.ActionEvent)"><B>actionPerformed(ActionEvent)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>Listener to handle button actions
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#actor"><B>actor</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#add(java.lang.Object)"><B>add(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>adds an object to the Map.
<DT><A HREF="org/apache/axis/utils/NSStack.html#add(java.lang.String, java.lang.String)"><B>add(String, String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Add a mapping for a namespaceURI to the specified prefix to the top
 frame in the stack.
<DT><A HREF="org/apache/axis/utils/URLHashSet.html#add(java.net.URL)"><B>add(URL)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>
<DD>Adds the specified URL to this set if it is not already present.
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#add(java.lang.String, javax.xml.namespace.QName[], javax.xml.rpc.ParameterMode[], java.lang.String, java.lang.String, java.lang.String)"><B>add(String, QName[], ParameterMode[], String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Add operation name and vector containing return and parameter names.
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#add(java.lang.String, java.lang.String[], javax.xml.rpc.ParameterMode[], java.lang.String, java.lang.String, java.lang.String)"><B>add(String, String[], ParameterMode[], String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Convenience method which allows passing an array of Strings which
 will be converted into QNames with no namespace.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#add(java.lang.String, javax.wsdl.Definition, org.w3c.dom.Document)"><B>add(String, Definition, Document)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Add the given Definition and Document information to the symbol table (including imported
 symbols), populating it with SymTabEntries for each of the top-level symbols.
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#add(java.lang.String, java.lang.String, java.lang.String)"><B>add(String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Add an entry
<DT><A HREF="org/apache/axis/AxisEngine.html#addActorURI(java.lang.String)"><B>addActorURI(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Add an actor by uri that will hold for the entire engine.
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#addApplicationProperty(java.lang.String)"><B>addApplicationProperty(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>Adds the name of a property from the url properties that should
 be added to the JMS message.
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#addApplicationProperty(java.lang.String, java.lang.String)"><B>addApplicationProperty(String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>Adds the name and value od the application property to the 
 JMS URL.
<DT><A HREF="org/apache/axis/utils/CLOption.html#addArgument(java.lang.String)"><B>addArgument(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Mutator of Argument property.
<DT><A HREF="org/apache/axis/client/Stub.html#addAttachment(java.lang.Object)"><B>addAttachment(Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Add an attachment
<DT><A HREF="javax/xml/soap/SOAPMessage.html#addAttachmentPart(javax.xml.soap.AttachmentPart)"><B>addAttachmentPart(AttachmentPart)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Adds the given <CODE>AttachmentPart</CODE> object to this
 <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/Message.html#addAttachmentPart(javax.xml.soap.AttachmentPart)"><B>addAttachmentPart(AttachmentPart)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Adds the given <CODE>AttachmentPart</CODE> object to this
 <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#addAttachmentPart(org.apache.axis.Part)"><B>addAttachmentPart(Part)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Adds an existing attachment to this list.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#addAttachmentPart(org.apache.axis.Part)"><B>addAttachmentPart(Part)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Adds an existing attachment to this list.
<DT><A HREF="org/apache/axis/client/Call.html#addAttachmentPart(java.lang.Object)"><B>addAttachmentPart(Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>This method adds an attachment.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addAttribute(javax.xml.soap.Name, java.lang.String)"><B>addAttribute(Name, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Adds an attribute with the specified name and value to this
 <code>SOAPElement</code> object.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addAttribute(java.lang.String, java.lang.String, javax.xml.namespace.QName)"><B>addAttribute(String, String, QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add an attribute to the qname vector.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addAttribute(java.lang.String, java.lang.String, java.lang.String)"><B>addAttribute(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a normal CDATA/text attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>addAttribute(String, String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add an attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addAttribute(javax.xml.soap.Name, java.lang.String)"><B>addAttribute(Name, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a new attribute
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addBindingGenerators()"><B>addBindingGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addBindingGenerators
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#addBody()"><B>addBody()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Creates a <CODE>SOAPBody</CODE> object and sets it as the
   <CODE>SOAPBody</CODE> object for this <CODE>
   SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#addBody()"><B>addBody()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Add a soap body if one does not exist
<DT><A HREF="javax/xml/soap/SOAPBody.html#addBodyElement(javax.xml.soap.Name)"><B>addBodyElement(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Creates a new <code>SOAPBodyElement</code> object with the
 specified name and adds it to this <code>SOAPBody</code> object.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addBodyElement(javax.xml.soap.Name)"><B>addBodyElement(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#addBodyElement(org.apache.axis.message.SOAPBodyElement)"><B>addBodyElement(SOAPBodyElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Add a SOAP Body Element
<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html#addBodyPart(org.apache.axis.attachments.DimeBodyPart)"><B>addBodyPart(DimeBodyPart)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#addChain(javax.xml.namespace.QName)"><B>addChain(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChild(org.apache.axis.message.MessageElement)"><B>addChild(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Note that this method will log a error and no-op if there is
 a value (set using setObjectValue) in the MessageElement.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChild(org.apache.axis.message.MessageElement)"><B>addChild(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChild(org.apache.axis.message.MessageElement)"><B>addChild(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#addChildDeserializer(org.apache.axis.encoding.Deserializer)"><B>addChildDeserializer(Deserializer)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPElement.html#addChildElement(javax.xml.soap.Name)"><B>addChildElement(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Creates a new <code>SOAPElement</code> object initialized with the
 given <code>Name</code> object and adds the new element to this
 <code>SOAPElement</code> object.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addChildElement(java.lang.String)"><B>addChildElement(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Creates a new <code>SOAPElement</code> object initialized with the
 given <code>String</code> object and adds the new element to this
 <code>SOAPElement</code> object.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addChildElement(java.lang.String, java.lang.String)"><B>addChildElement(String, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Creates a new <code>SOAPElement</code> object initialized with the
 specified local name and prefix and adds the new element to this
 <code>SOAPElement</code> object.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addChildElement(java.lang.String, java.lang.String, java.lang.String)"><B>addChildElement(String, String, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Creates a new <code>SOAPElement</code> object initialized with the
 specified local name, prefix, and URI and adds the new element to this
 <code>SOAPElement</code> object.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addChildElement(javax.xml.soap.SOAPElement)"><B>addChildElement(SOAPElement)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Add a <code>SOAPElement</code> as a child of this
 <code>SOAPElement</code> instance.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChildElement(javax.xml.soap.Name)"><B>addChildElement(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add the child element
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChildElement(java.lang.String)"><B>addChildElement(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a child element in the message element's own namespace
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChildElement(java.lang.String, java.lang.String)"><B>addChildElement(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a child element
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChildElement(java.lang.String, java.lang.String, java.lang.String)"><B>addChildElement(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a child element
<DT><A HREF="org/apache/axis/message/MessageElement.html#addChildElement(javax.xml.soap.SOAPElement)"><B>addChildElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>The added child must be an instance of MessageElement rather than
 an abitrary SOAPElement otherwise a (wrapped) ClassCastException
 will be thrown.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChildElement(javax.xml.soap.SOAPElement)"><B>addChildElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChildElement(javax.xml.soap.Name)"><B>addChildElement(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChildElement(java.lang.String)"><B>addChildElement(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChildElement(java.lang.String, java.lang.String)"><B>addChildElement(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addChildElement(java.lang.String, java.lang.String, java.lang.String)"><B>addChildElement(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChildElement(javax.xml.soap.SOAPElement)"><B>addChildElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChildElement(javax.xml.soap.Name)"><B>addChildElement(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChildElement(java.lang.String)"><B>addChildElement(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChildElement(java.lang.String, java.lang.String)"><B>addChildElement(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addChildElement(java.lang.String, java.lang.String, java.lang.String)"><B>addChildElement(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#addConnectorToPool(org.apache.axis.transport.jms.JMSConnector)"><B>addConnectorToPool(JMSConnector)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Adds a JMSConnector to the appropriate vendor pool
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addDefinitionGenerators()"><B>addDefinitionGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addDefinitionGenerators
<DT><A HREF="javax/xml/soap/SOAPFault.html#addDetail()"><B>addDetail()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Creates a <CODE>Detail</CODE> object and sets it as the
   <CODE>Detail</CODE> object for this <CODE>SOAPFault</CODE>
   object.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#addDetail()"><B>addDetail()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Creates a <CODE>Detail</CODE> object and sets it as the
   <CODE>Detail</CODE> object for this <CODE>SOAPFaultException</CODE>
   object.
<DT><A HREF="javax/xml/soap/Detail.html#addDetailEntry(javax.xml.soap.Name)"><B>addDetailEntry(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Detail.html" title="interface in javax.xml.soap">Detail</A>
<DD>Creates a new <code>DetailEntry</code> object with the given
 name and adds it to this <code>Detail</code> object.
<DT><A HREF="org/apache/axis/message/Detail.html#addDetailEntry(javax.xml.soap.Name)"><B>addDetailEntry(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Detail.html" title="class in org.apache.axis.message">Detail</A>
<DD>Creates a new <code>DetailEntry</code> object with the given
 name and adds it to this <code>Detail</code> object.
<DT><A HREF="javax/xml/soap/SOAPBody.html#addDocument(org.w3c.dom.Document)"><B>addDocument(Document)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Adds the root node of the DOM <code>Document</code> to this
 <code>SOAPBody</code> object.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addDocument(org.w3c.dom.Document)"><B>addDocument(Document)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPBody.html#addFault()"><B>addFault()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Creates a new <code>SOAPFault</code> object and adds it to
 this <code>SOAPBody</code> object.
<DT><A HREF="javax/xml/soap/SOAPBody.html#addFault(javax.xml.soap.Name, java.lang.String, java.util.Locale)"><B>addFault(Name, String, Locale)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Creates a new <code>SOAPFault</code> object and adds it to this
 <code>SOAPBody</code> object.
<DT><A HREF="javax/xml/soap/SOAPBody.html#addFault(javax.xml.soap.Name, java.lang.String)"><B>addFault(Name, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Creates a new <code>SOAPFault</code> object and adds it to this
 <code>SOAPBody</code> object.
<DT><A HREF="org/apache/axis/client/Call.html#addFault(javax.xml.namespace.QName, java.lang.Class, javax.xml.namespace.QName, boolean)"><B>addFault(QName, Class, QName, boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Add a fault for this operation.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#addFault(org.apache.axis.description.FaultDesc)"><B>addFault(FaultDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addFault(javax.xml.soap.Name, java.lang.String, java.util.Locale)"><B>addFault(Name, String, Locale)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addFault(javax.xml.soap.Name, java.lang.String)"><B>addFault(Name, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#addFault()"><B>addFault()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#addFaultDetail(org.w3c.dom.Element)"><B>addFaultDetail(Element)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Append an element to the fault detail list.
<DT><A HREF="org/apache/axis/AxisFault.html#addFaultDetail(javax.xml.namespace.QName, java.lang.String)"><B>addFaultDetail(QName, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Create an element of the given qname and add it to the details.
<DT><A HREF="org/apache/axis/AxisFault.html#addFaultDetailString(java.lang.String)"><B>addFaultDetailString(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>add a string tag to the fault details.
<DT><A HREF="org/apache/axis/AxisFault.html#addFaultSubCode(javax.xml.namespace.QName)"><B>addFaultSubCode(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Add a fault sub-code.
<DT><A HREF="org/apache/axis/AxisFault.html#addFaultSubCodeAsString(java.lang.String)"><B>addFaultSubCodeAsString(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Add a fault sub-code with the local name <code>code</code> and namespace
 <code>Constants.NS_URI_AXIS</code>.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#addFieldDesc(org.apache.axis.description.FieldDesc)"><B>addFieldDesc(FieldDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Add a new FieldDesc, keeping the convenience fields in sync.
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#addFile(java.lang.String)"><B>addFile(String)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Add the name of the file containing the source program to the file list
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#addFile(java.lang.String)"><B>addFile(String)</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Set the name of the file containing the source program
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html#addGenerator(java.lang.Class)"><B>addGenerator(Class)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>
<DD>Method addGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addGenerator(java.lang.Class, java.lang.Class)"><B>addGenerator(Class, Class)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addGenerator
<DT><A HREF="org/apache/axis/Chain.html#addHandler(org.apache.axis.Handler)"><B>addHandler(Handler)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Chain.html" title="interface in org.apache.axis">Chain</A>
<DD>Adds a handler to the end of the chain.
<DT><A HREF="org/apache/axis/SimpleChain.html#addHandler(org.apache.axis.Handler)"><B>addHandler(Handler)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#addHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>addHandler(WSDDHandler)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Add a Handler to the chain (at the end)
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#addHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>addHandler(WSDDHandler)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#addHandler(javax.xml.namespace.QName)"><B>addHandler(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/MimeHeaders.html#addHeader(java.lang.String, java.lang.String)"><B>addHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Adds a <CODE>MimeHeader</CODE> object with the specified
   name and value to this <CODE>MimeHeaders</CODE> object's
   list of headers.
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#addHeader()"><B>addHeader()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Creates a <CODE>SOAPHeader</CODE> object and sets it as the
   <CODE>SOAPHeader</CODE> object for this <CODE>
   SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/AxisFault.html#addHeader(org.apache.axis.message.SOAPHeaderElement)"><B>addHeader(SOAPHeaderElement)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Add a SOAP header which should be serialized along with the
 fault.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#addHeader(java.lang.String, java.lang.String)"><B>addHeader(String, String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>Add a header.
<DT><A HREF="org/apache/axis/client/Call.html#addHeader(org.apache.axis.message.SOAPHeaderElement)"><B>addHeader(SOAPHeaderElement)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Add a header which should be inserted into each outgoing message
 we generate.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#addHeader(org.apache.axis.message.SOAPHeaderElement)"><B>addHeader(SOAPHeaderElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Add a HeaderElement
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#addHeader()"><B>addHeader()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Add a soap header if one does not exist
<DT><A HREF="javax/xml/soap/SOAPHeader.html#addHeaderElement(javax.xml.soap.Name)"><B>addHeaderElement(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Creates a new <CODE>SOAPHeaderElement</CODE> object
 initialized with the specified name and adds it to this
 <CODE>SOAPHeader</CODE> object.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#addHeaderElement(javax.xml.soap.Name)"><B>addHeaderElement(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#addHostname(java.lang.String)"><B>addHostname(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>add the hostname string.
<DT><A HREF="org/apache/axis/AxisFault.html#addHostnameIfNeeded()"><B>addHostnameIfNeeded()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>add the hostname of the current system.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addMapping(org.apache.axis.utils.Mapping)"><B>addMapping(Mapping)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a new namespace/prefix mapping
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addMessageGenerators()"><B>addMessageGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>These addXXXGenerators are called by the constructor.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#addMimeHeader(java.lang.String, java.lang.String)"><B>addMimeHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Adds a MIME header with the specified name and value to
   this <CODE>AttachmentPart</CODE> object.
<DT><A HREF="javax/xml/soap/SOAPPart.html#addMimeHeader(java.lang.String, java.lang.String)"><B>addMimeHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Creates a <CODE>MimeHeader</CODE> object with the specified
   name and value and adds it to this <CODE>SOAPPart</CODE>
   object.
<DT><A HREF="org/apache/axis/Part.html#addMimeHeader(java.lang.String, java.lang.String)"><B>addMimeHeader(String, String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Add the specified MIME header, as per JAXM.
<DT><A HREF="org/apache/axis/SOAPPart.html#addMimeHeader(java.lang.String, java.lang.String)"><B>addMimeHeader(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Add the specified MIME header, as per JAXM.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#addMimeHeader(java.lang.String, java.lang.String)"><B>addMimeHeader(String, String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Add the specified MIME header, as per JAXM.
<DT><A HREF="javax/xml/soap/SOAPElement.html#addNamespaceDeclaration(java.lang.String, java.lang.String)"><B>addNamespaceDeclaration(String, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Adds a namespace declaration with the specified prefix and URI to this
 <code>SOAPElement</code> object.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addNamespaceDeclaration(java.lang.String, java.lang.String)"><B>addNamespaceDeclaration(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>create a <A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils"><CODE>Mapping</CODE></A> mapping and add to our namespace list.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#addNewHandler(java.lang.String, java.util.Map)"><B>addNewHandler(String, Map)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#addNewHandler(java.lang.String, java.util.Map)"><B>addNewHandler(String, Map)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#addObject(java.lang.Object)"><B>addObject(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>Adds the object to the pool, if not already added
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#addObjectById(java.lang.String, java.lang.Object)"><B>addObjectById(String, Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Add the object associated with this id (where id is the value of an id= attribute,
 i.e.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#addOperation(org.apache.axis.deployment.wsdd.WSDDOperation)"><B>addOperation(WSDDOperation)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Add a WSDDOperation to the Service.
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#addOperation(java.lang.String, javax.xml.namespace.QName)"><B>addOperation(String, QName)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#addOperationDesc(org.apache.axis.description.OperationDesc)"><B>addOperationDesc(OperationDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#addOperationDesc(org.apache.axis.description.OperationDesc)"><B>addOperationDesc(OperationDesc)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#addOptions(org.apache.axis.utils.CLOptionDescriptor[])"><B>addOptions(CLOptionDescriptor[])</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>addOptions
 Add option descriptions to the tool.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#addOptions(org.apache.axis.utils.CLOptionDescriptor[])"><B>addOptions(CLOptionDescriptor[])</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>addOptions
 Add option descriptions to the tool.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#addPackageName(java.lang.String, java.lang.String)"><B>addPackageName(String, String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Add package to name
<DT><A HREF="org/apache/axis/message/RPCElement.html#addParam(org.apache.axis.message.RPCParam)"><B>addParam(RPCParam)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)"><B>addParameter(String, QName, ParameterMode)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Adds a parameter type and mode for a specific  operation.
<DT><A HREF="javax/xml/rpc/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)"><B>addParameter(String, QName, Class, ParameterMode)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Adds a parameter type and mode for a specific  operation.
<DT><A HREF="org/apache/axis/client/Call.html#addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)"><B>addParameter(QName, QName, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.
<DT><A HREF="org/apache/axis/client/Call.html#addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)"><B>addParameter(QName, QName, Class, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.
<DT><A HREF="org/apache/axis/client/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)"><B>addParameter(String, QName, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.
<DT><A HREF="org/apache/axis/client/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)"><B>addParameter(String, QName, Class, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds a parameter type and mode for a specific operation.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#addParameter(org.apache.axis.description.ParameterDesc)"><B>addParameter(ParameterDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, byte, boolean, boolean)"><B>addParameter(QName, QName, Class, byte, boolean, boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)"><B>addParameterAsHeader(QName, QName, ParameterMode, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds a parameter type as a soap:header.
<DT><A HREF="org/apache/axis/client/Call.html#addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)"><B>addParameterAsHeader(QName, QName, Class, ParameterMode, ParameterMode)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Adds a parameter type as a soap:header.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#addPart(java.lang.String, java.lang.String, org.apache.axis.attachments.AttachmentPart)"><B>addPart(String, String, AttachmentPart)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#addPart(java.lang.String, java.lang.String, org.apache.axis.attachments.AttachmentPart)"><B>addPart(String, String, AttachmentPart)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Add an <code>AttachmentPart</code> together with its content and location
 IDs.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addPortTypeGenerators()"><B>addPortTypeGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addPortTypeGenerators
<DT><A HREF="org/apache/axis/message/IDResolver.html#addReferencedObject(java.lang.String, java.lang.Object)"><B>addReferencedObject(String, Object)</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/IDResolver.html" title="interface in org.apache.axis.message">IDResolver</A>
<DD>Store the object associated with id
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#addRequiredProperties(java.lang.String[])"><B>addRequiredProperties(String[])</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#addRequiredProperty(java.lang.String)"><B>addRequiredProperty(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#addRole(java.lang.String)"><B>addRole(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Add a role to the configuration's global list
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#addService(org.apache.axis.deployment.wsdd.WSDDService)"><B>addService(WSDDService)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#addService(javax.xml.namespace.QName)"><B>addService(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addServiceGenerators()"><B>addServiceGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addServiceGenerators
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#addSession(org.apache.axis.session.Session)"><B>addSession(Session)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Add this passed in Session to this Service's list of sessions
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html#addStuff(org.apache.axis.wsdl.gen.Generator, org.apache.axis.wsdl.symbolTable.SymTabEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>addStuff(Generator, SymTabEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>
<DD>Method addStuff
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html#addStuff(org.apache.axis.wsdl.gen.Generator, javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>addStuff(Generator, Definition, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>
<DD>Method addStuff
<DT><A HREF="javax/xml/soap/SOAPElement.html#addTextNode(java.lang.String)"><B>addTextNode(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Creates a new <code>Text</code> object initialized with the given
 <code>String</code> and adds it to this <code>SOAPElement</code> object.
<DT><A HREF="org/apache/axis/message/MessageElement.html#addTextNode(java.lang.String)"><B>addTextNode(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>add a text node to the document.
<DT><A HREF="org/apache/axis/message/RPCParam.html#addTextNode(java.lang.String)"><B>addTextNode(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#addTrailer(org.apache.axis.message.MessageElement)"><B>addTrailer(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Add an element to the trailer
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#addTransport(org.apache.axis.deployment.wsdd.WSDDTransport)"><B>addTransport(WSDDTransport)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#addTransport(javax.xml.namespace.QName)"><B>addTransport(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#addTransportPackage(java.lang.String)"><B>addTransportPackage(String)</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Add a package to the system protocol handler search path.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#addTypeGenerators()"><B>addTypeGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method addTypeGenerators
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#addTypeMapping(org.apache.axis.deployment.wsdd.WSDDTypeMapping)"><B>addTypeMapping(WSDDTypeMapping)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Add a WSDDTypeMapping to the Service.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#addUnderscore(java.lang.String)"><B>addUnderscore(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Prepend an underscore to the name
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#addVendorConnectionFactoryProperties(org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>addVendorConnectionFactoryProperties(JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#addVendorConnectionFactoryProperties(org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>addVendorConnectionFactoryProperties(JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>Populates the connection factory config table with properties from
 the JMS URL query string
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#addVendorConnectionFactoryProperties(org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>addVendorConnectionFactoryProperties(JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>Extract Sonic-specific properties from the JMS URL
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#addWorker(java.lang.Runnable)"><B>addWorker(Runnable)</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Adds a new worker to the pool
<DT><A HREF="org/apache/axis/SOAPPart.html#adoptNode(org.w3c.dom.Node)"><B>adoptNode(Node)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#appendChild(org.w3c.dom.Node)"><B>appendChild(Node)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#appendChild(org.w3c.dom.Node)"><B>appendChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Adds the node <code>newChild</code> to the end of the list of children
 of this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#appendChild(org.w3c.dom.Node)"><B>appendChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#appendChild(org.w3c.dom.Node)"><B>appendChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#appendData(java.lang.String)"><B>appendData(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#appendPath(java.lang.String)"><B>appendPath(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Append to the end of the path of this URI.
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#applyAndSaveSettings()"><B>applyAndSaveSettings()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>actually update the engine and save the settings
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#applyBackslashes(java.lang.String)"><B>applyBackslashes(String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>Slave method for getQNameWithBackslashedLocal()
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#arrayType"><B>arrayType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#asElementArray(java.util.List)"><B>asElementArray(List)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Converts a List with org.w3c.dom.Element objects to an Array
 with org.w3c.dom.Element objects.
<DT><A HREF="org/apache/axis/client/Call.html#attachmentParts"><B>attachmentParts</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>these are our attachments
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#attributeQName2String(javax.xml.namespace.QName)"><B>attributeQName2String(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convert attribute QName to a string of the form <prefix>:<localpart>
 There are slightly different rules for attributes:
  - There is no default namespace
  - any attribute in a namespace must have a prefix
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#attributes"><B>attributes</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>attributes
<DT><A HREF="org/apache/axis/message/NodeImpl.html#attributes"><B>attributes</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#attributes"><B>attributes</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field attributes
<DT><A HREF="org/apache/axis/security/SecurityProvider.html#authenticate(org.apache.axis.MessageContext)"><B>authenticate(MessageContext)</B></A> - 
Method in interface org.apache.axis.security.<A HREF="org/apache/axis/security/SecurityProvider.html" title="interface in org.apache.axis.security">SecurityProvider</A>
<DD>Authenticate a user from a username/password pair.
<DT><A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html#authenticate(org.apache.axis.MessageContext)"><B>authenticate(MessageContext)</B></A> - 
Method in class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet">ServletSecurityProvider</A>
<DD>Authenticate a user from a username/password pair.
<DT><A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html#authenticate(org.apache.axis.MessageContext)"><B>authenticate(MessageContext)</B></A> - 
Method in class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple">SimpleSecurityProvider</A>
<DD>Authenticate a user from a username/password pair.
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#autoRegister()"><B>autoRegister()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>register classes, log exceptions
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#available()"><B>available()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#available()"><B>available()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#available()"><B>available()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#available()"><B>available()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#available()"><B>available()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>return the number of bytes available to be read without blocking
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#availableFromTransport(java.lang.String)"><B>availableFromTransport(String)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#awaitShutdown()"><B>awaitShutdown()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Await shutdown of the worker
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#awaitShutdown(long)"><B>awaitShutdown(long)</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Await shutdown of the worker
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#axisServer"><B>axisServer</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>per-instance cache of the axis server
</DL>
<HR>
<A NAME="_B_"><!-- --></A><H2>
<B>B</B></H2>
<DL>
<DT><A HREF="org/apache/axis/i18n/RB.html#BASE_NAME"><B>BASE_NAME</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#BEAN_DESERIALIZER_FACTORY"><B>BEAN_DESERIALIZER_FACTORY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#BEAN_SERIALIZER_FACTORY"><B>BEAN_SERIALIZER_FACTORY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#BINDING_NAME_OPT"><B>BINDING_NAME_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field BINDING_NAME_OPT
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#BOUNDARY_NOT_FOUND"><B>BOUNDARY_NOT_FOUND</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Field BOUNDARY_NOT_FOUND.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#BROKER_URL"><B>BROKER_URL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/components/script/BSF.html" title="class in org.apache.axis.components.script"><B>BSF</B></A> - class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/BSF.html" title="class in org.apache.axis.components.script">BSF</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/script/BSF.html#BSF()"><B>BSF()</B></A> - 
Constructor for class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/BSF.html" title="class in org.apache.axis.components.script">BSF</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers"><B>BSFProvider</B></A> - class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/providers/BSFProvider.html#BSFProvider()"><B>BSFProvider()</B></A> - 
Constructor for class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#BUILDFILE_OPT"><B>BUILDFILE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field BUILDFILE_OPT
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable"><B>BackslashUtil</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#BackslashUtil()"><B>BackslashUtil()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding"><B>Base64</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/Base64.html#Base64()"><B>Base64()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html" title="class in org.apache.axis.encoding.ser"><B>Base64Deserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html" title="class in org.apache.axis.encoding.ser">Base64Deserializer</A>.<DD>Deserializer for Base64<DT><A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html#Base64Deserializer(java.lang.Class, javax.xml.namespace.QName)"><B>Base64Deserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html" title="class in org.apache.axis.encoding.ser">Base64Deserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64DeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>Base64DeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64DeserializerFactory.html" title="class in org.apache.axis.encoding.ser">Base64DeserializerFactory</A>.<DD>DeserializerFactory for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/Base64DeserializerFactory.html#Base64DeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>Base64DeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64DeserializerFactory.html" title="class in org.apache.axis.encoding.ser">Base64DeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser"><B>Base64Serializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>.<DD>Serializer for Base64<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#Base64Serializer(java.lang.Class, javax.xml.namespace.QName)"><B>Base64Serializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64SerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>Base64SerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64SerializerFactory.html" title="class in org.apache.axis.encoding.ser">Base64SerializerFactory</A>.<DD>SerializerFactory for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/Base64SerializerFactory.html#Base64SerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>Base64SerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64SerializerFactory.html" title="class in org.apache.axis.encoding.ser">Base64SerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>BaseDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>.<DD>Base class for Axis Deserialization Factory classes for code reuse<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#BaseDeserializerFactory(java.lang.Class)"><B>BaseDeserializerFactory(Class)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#BaseDeserializerFactory(java.lang.Class, javax.xml.namespace.QName, java.lang.Class)"><B>BaseDeserializerFactory(Class, QName, Class)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseFactory.html" title="class in org.apache.axis.encoding.ser"><B>BaseFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseFactory.html" title="class in org.apache.axis.encoding.ser">BaseFactory</A>.<DD>Base Factory for BaseDeserializerFactory and BaseSerializerFactory.<DT><A HREF="org/apache/axis/encoding/ser/BaseFactory.html#BaseFactory()"><B>BaseFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseFactory.html" title="class in org.apache.axis.encoding.ser">BaseFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>BaseSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>.<DD>Base class for Axis Serialization Factory classes for code reuse<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#BaseSerializerFactory(java.lang.Class)"><B>BaseSerializerFactory(Class)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#BaseSerializerFactory(java.lang.Class, javax.xml.namespace.QName, java.lang.Class)"><B>BaseSerializerFactory(Class, QName, Class)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BaseType.html" title="class in org.apache.axis.wsdl.symbolTable"><B>BaseType</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BaseType.html" title="class in org.apache.axis.wsdl.symbolTable">BaseType</A>.<DD>This Type is for a QName represents a Base Type (i.e.<DT><A HREF="org/apache/axis/wsdl/symbolTable/BaseType.html#BaseType(javax.xml.namespace.QName)"><B>BaseType(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BaseType.html" title="class in org.apache.axis.wsdl.symbolTable">BaseType</A>
<DD>Constructor BaseType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html" title="class in org.apache.axis.wsdl.symbolTable"><B>BaseTypeMapping</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html" title="class in org.apache.axis.wsdl.symbolTable">BaseTypeMapping</A>.<DD>Get the base language name for a qname<DT><A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html#BaseTypeMapping()"><B>BaseTypeMapping()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html" title="class in org.apache.axis.wsdl.symbolTable">BaseTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/BasicClientConfig.html" title="class in org.apache.axis.configuration"><B>BasicClientConfig</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/BasicClientConfig.html" title="class in org.apache.axis.configuration">BasicClientConfig</A>.<DD>A SimpleProvider set up with hardcoded basic configuration for a client
 (i.e.<DT><A HREF="org/apache/axis/configuration/BasicClientConfig.html#BasicClientConfig()"><B>BasicClientConfig()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/BasicClientConfig.html" title="class in org.apache.axis.configuration">BasicClientConfig</A>
<DD>Constructor - deploy client-side basic transports.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers"><B>BasicHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>.<DD><code>BasicHandler</code> is a utility class which implements simple
 property setting/getting behavior, and stubs out a lot of the Handler
 methods.<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#BasicHandler()"><B>BasicHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers"><B>BasicProvider</B></A> - class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>.<DD>This class has one way of keeping track of the
 operations declared for a particular service
 provider.<DT><A HREF="org/apache/axis/providers/BasicProvider.html#BasicProvider()"><B>BasicProvider()</B></A> - 
Constructor for class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/BasicServerConfig.html" title="class in org.apache.axis.configuration"><B>BasicServerConfig</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/BasicServerConfig.html" title="class in org.apache.axis.configuration">BasicServerConfig</A>.<DD>A SimpleProvider set up with hardcoded basic configuration for a server
 (i.e.<DT><A HREF="org/apache/axis/configuration/BasicServerConfig.html#BasicServerConfig()"><B>BasicServerConfig()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/BasicServerConfig.html" title="class in org.apache.axis.configuration">BasicServerConfig</A>
<DD>Constructor - deploy a hardcoded basic server-side configuration.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>BeanDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>.<DD>General purpose deserializer for an arbitrary java bean.<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#BeanDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>BeanDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#BeanDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>BeanDeserializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#BeanDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc, java.util.Map)"><B>BeanDeserializer(Class, QName, TypeDesc, Map)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>BeanDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>.<DD>DeserializerFactory for Bean<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html#BeanDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>BeanDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils"><B>BeanPropertyDescriptor</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>.<DD>This class represents a field/property in a value type (a class with either
 bean-style getters/setters or public fields).<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#BeanPropertyDescriptor(java.beans.PropertyDescriptor)"><B>BeanPropertyDescriptor(PropertyDescriptor)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Constructor (takes a PropertyDescriptor)
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#BeanPropertyDescriptor()"><B>BeanPropertyDescriptor()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Protected constructor for use by our children
<DT><A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser"><B>BeanPropertyTarget</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser">BeanPropertyTarget</A>.<DD>Class which knows how to update a bean property<DT><A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html#BeanPropertyTarget(java.lang.Object, org.apache.axis.utils.BeanPropertyDescriptor)"><B>BeanPropertyTarget(Object, BeanPropertyDescriptor)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser">BeanPropertyTarget</A>
<DD>This constructor is used for a normal property.
<DT><A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html#BeanPropertyTarget(java.lang.Object, org.apache.axis.utils.BeanPropertyDescriptor, int)"><B>BeanPropertyTarget(Object, BeanPropertyDescriptor, int)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser">BeanPropertyTarget</A>
<DD>This constructor is used for an indexed property.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser"><B>BeanSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>.<DD>General purpose serializer/deserializerFactory for an arbitrary java bean.<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#BeanSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>BeanSerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#BeanSerializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>BeanSerializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#BeanSerializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc, org.apache.axis.utils.BeanPropertyDescriptor[])"><B>BeanSerializer(Class, QName, TypeDesc, BeanPropertyDescriptor[])</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>BeanSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>.<DD>SerializerFactory for Bean<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html#BeanSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>BeanSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils"><B>BeanUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/BeanUtils.html#BeanUtils()"><B>BeanUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms"><B>BeanVendorAdapter</B></A> - class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms">BeanVendorAdapter</A>.<DD>Uses ClassUtils.forName and reflection to configure ConnectionFactory.<DT><A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html#BeanVendorAdapter()"><B>BeanVendorAdapter()</B></A> - 
Constructor for class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms">BeanVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/BigDecimalHolder.html" title="class in javax.xml.rpc.holders"><B>BigDecimalHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigDecimalHolder.html" title="class in javax.xml.rpc.holders">BigDecimalHolder</A>.<DD>Holder for <code>BigDecimal</code>s.<DT><A HREF="javax/xml/rpc/holders/BigDecimalHolder.html#BigDecimalHolder()"><B>BigDecimalHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigDecimalHolder.html" title="class in javax.xml.rpc.holders">BigDecimalHolder</A>
<DD>Make a new <code>BigDecimalHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/BigDecimalHolder.html#BigDecimalHolder(java.math.BigDecimal)"><B>BigDecimalHolder(BigDecimal)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigDecimalHolder.html" title="class in javax.xml.rpc.holders">BigDecimalHolder</A>
<DD>Make a new <code>BigDecimalHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/BigIntegerHolder.html" title="class in javax.xml.rpc.holders"><B>BigIntegerHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigIntegerHolder.html" title="class in javax.xml.rpc.holders">BigIntegerHolder</A>.<DD>Holder for <code>BigInteger</code>s.<DT><A HREF="javax/xml/rpc/holders/BigIntegerHolder.html#BigIntegerHolder()"><B>BigIntegerHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigIntegerHolder.html" title="class in javax.xml.rpc.holders">BigIntegerHolder</A>
<DD>Make a new <code>BigIntegerHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/BigIntegerHolder.html#BigIntegerHolder(java.math.BigInteger)"><B>BigIntegerHolder(BigInteger)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigIntegerHolder.html" title="class in javax.xml.rpc.holders">BigIntegerHolder</A>
<DD>Make a new <code>BigIntegerHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>BindingEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>.<DD>This class represents a WSDL binding.<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#BindingEntry(javax.wsdl.Binding, int, org.apache.axis.constants.Style, boolean, java.util.HashMap, java.util.Map, java.util.Map)"><B>BindingEntry(Binding, int, Style, boolean, HashMap, Map, Map)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Construct a BindingEntry from a WSDL4J Binding object and the additional binding info:
 binding type, binding style, whether there is any literal binding, and the attributes which
 contain the input/output/fault body type information.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#BindingEntry(javax.wsdl.Binding)"><B>BindingEntry(Binding)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>This is a minimal constructor.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable"><B>BindingEntry.OperationAttr</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>.<DD>Contains attributes for Operations
 - Body type: encoded or literal<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#BindingEntry.OperationAttr(org.apache.axis.constants.Use, org.apache.axis.constants.Use, java.util.HashMap)"><B>BindingEntry.OperationAttr(Use, Use, HashMap)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Constructor OperationAttr
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#BindingEntry.OperationAttr()"><B>BindingEntry.OperationAttr()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Constructor OperationAttr
<DT><A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message"><B>BodyBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>.<DD>&nbsp;<DT><A HREF="javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders"><B>BooleanHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>.<DD>Holder for <code>boolean</code>s.<DT><A HREF="javax/xml/rpc/holders/BooleanHolder.html#BooleanHolder()"><B>BooleanHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>
<DD>Make a new <code>BooleanHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/BooleanHolder.html#BooleanHolder(boolean)"><B>BooleanHolder(boolean)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>
<DD>Make a new <code>BooleanHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/components/net/BooleanHolder.html" title="class in org.apache.axis.components.net"><B>BooleanHolder</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/BooleanHolder.html" title="class in org.apache.axis.components.net">BooleanHolder</A>.<DD>hold a boolean value.<DT><A HREF="org/apache/axis/components/net/BooleanHolder.html#BooleanHolder(boolean)"><B>BooleanHolder(boolean)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/BooleanHolder.html" title="class in org.apache.axis.components.net">BooleanHolder</A>
<DD>Constructor BooleanHolder
<DT><A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>BooleanWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html" title="class in javax.xml.rpc.holders">BooleanWrapperHolder</A>.<DD>Holder for <code>Boolean</code>s.<DT><A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html#BooleanWrapperHolder()"><B>BooleanWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html" title="class in javax.xml.rpc.holders">BooleanWrapperHolder</A>
<DD>Make a new <code>BooleanWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html#BooleanWrapperHolder(java.lang.Boolean)"><B>BooleanWrapperHolder(Boolean)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html" title="class in javax.xml.rpc.holders">BooleanWrapperHolder</A>
<DD>Make a new <code>BooleanWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments"><B>BoundaryDelimitedStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>.<DD>This class takes the input stream and turns it multiple streams.<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#BoundaryDelimitedStream(org.apache.axis.attachments.BoundaryDelimitedStream, int)"><B>BoundaryDelimitedStream(BoundaryDelimitedStream, int)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Constructor to create the next stream from the previous one.
<DT><A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils"><B>ByteArray</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>.<DD>Class ByteArray<DT><A HREF="org/apache/axis/utils/ByteArray.html#ByteArray()"><B>ByteArray()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Constructor ByteArray
<DT><A HREF="org/apache/axis/utils/ByteArray.html#ByteArray(int)"><B>ByteArray(int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Constructor ByteArray
<DT><A HREF="org/apache/axis/utils/ByteArray.html#ByteArray(int, int)"><B>ByteArray(int, int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Constructor ByteArray
<DT><A HREF="javax/xml/rpc/holders/ByteArrayHolder.html" title="class in javax.xml.rpc.holders"><B>ByteArrayHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteArrayHolder.html" title="class in javax.xml.rpc.holders">ByteArrayHolder</A>.<DD>Holder for <code>byte[]</code>s.<DT><A HREF="javax/xml/rpc/holders/ByteArrayHolder.html#ByteArrayHolder()"><B>ByteArrayHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteArrayHolder.html" title="class in javax.xml.rpc.holders">ByteArrayHolder</A>
<DD>Make a new <code>ByteArrayHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ByteArrayHolder.html#ByteArrayHolder(byte[])"><B>ByteArrayHolder(byte[])</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteArrayHolder.html" title="class in javax.xml.rpc.holders">ByteArrayHolder</A>
<DD>Make a new <code>ByteArrayHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils"><B>ByteArrayOutputStream</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>.<DD>This class implements an output stream in which the data is
 written into a byte array.<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#ByteArrayOutputStream()"><B>ByteArrayOutputStream()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>Creates a new byte array output stream.
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#ByteArrayOutputStream(int)"><B>ByteArrayOutputStream(int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>Creates a new byte array output stream, with a buffer capacity of
 the specified size, in bytes.
<DT><A HREF="javax/xml/rpc/holders/ByteHolder.html" title="class in javax.xml.rpc.holders"><B>ByteHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteHolder.html" title="class in javax.xml.rpc.holders">ByteHolder</A>.<DD>Holder for <code>byte</code>s.<DT><A HREF="javax/xml/rpc/holders/ByteHolder.html#ByteHolder()"><B>ByteHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteHolder.html" title="class in javax.xml.rpc.holders">ByteHolder</A>
<DD>Make a new <code>ByteHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ByteHolder.html#ByteHolder(byte)"><B>ByteHolder(byte)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteHolder.html" title="class in javax.xml.rpc.holders">ByteHolder</A>
<DD>Make a new <code>ByteHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>ByteWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html" title="class in javax.xml.rpc.holders">ByteWrapperHolder</A>.<DD>Holder for <code>Byte</code>s.<DT><A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html#ByteWrapperHolder()"><B>ByteWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html" title="class in javax.xml.rpc.holders">ByteWrapperHolder</A>
<DD>Make a new <code>ByteWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html#ByteWrapperHolder(java.lang.Byte)"><B>ByteWrapperHolder(Byte)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html" title="class in javax.xml.rpc.holders">ByteWrapperHolder</A>
<DD>Make a new <code>ByteWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#bEntry"><B>bEntry</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Field bEntry
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#bEntry"><B>bEntry</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Field bEntry
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#bPackageOpt"><B>bPackageOpt</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field bPackageOpt
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#base64encode(byte[])"><B>base64encode(byte[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#basePropertyFileName"><B>basePropertyFileName</B></A> - 
Variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#baseTypeMapping"><B>baseTypeMapping</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field baseTypeMapping
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#binding"><B>binding</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field binding
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#binding"><B>binding</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Field binding
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#bindingWriters"><B>bindingWriters</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Return Wsdl2java's JavaBindingWriter object.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#boundary"><B>boundary</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#boundary"><B>boundary</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#boundary"><B>boundary</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field boundary
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#boundaryDelimitedStream"><B>boundaryDelimitedStream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field boundaryDelimitedStream
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#boundaryPosition(byte[], int, int)"><B>boundaryPosition(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Read from the boundary delimited stream.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#bs_handle"><B>bs_handle</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#bs_stream"><B>bs_stream</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html#builder"><B>builder</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#byteValue()"><B>byteValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#byteValue()"><B>byteValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="org/apache/axis/MessageContext.html#CALL"><B>CALL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>If on the client - this is the Call object.
<DT><A HREF="org/apache/axis/message/CDATAImpl.html" title="class in org.apache.axis.message"><B>CDATAImpl</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/CDATAImpl.html" title="class in org.apache.axis.message">CDATAImpl</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/CDATAImpl.html#CDATAImpl(java.lang.String)"><B>CDATAImpl(String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/CDATAImpl.html" title="class in org.apache.axis.message">CDATAImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html#CHARACTER_SET_ENCODING"><B>CHARACTER_SET_ENCODING</B></A> - 
Static variable in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Specifies the character type encoding for the SOAP Message.
<DT><A HREF="org/apache/axis/client/Call.html#CHARACTER_SET_ENCODING"><B>CHARACTER_SET_ENCODING</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>This is the character set encoding to use for the message
<DT><A HREF="org/apache/axis/client/Call.html#CHECK_MUST_UNDERSTAND"><B>CHECK_MUST_UNDERSTAND</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>If this property is true, code will enforce must understand check on both
 the request and the response paths.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#CIDprefix"><B>CIDprefix</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>The prefix used to assoc.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#CLASSIC_CLASS"><B>CLASSIC_CLASS</B></A> - 
Static variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#CLASSPATH_OPT"><B>CLASSPATH_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#CLASSPATH_OPT"><B>CLASSPATH_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils"><B>CLArgsParser</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>.<DD>Parser for command line arguments.<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#CLArgsParser(java.lang.String[], org.apache.axis.utils.CLOptionDescriptor[], org.apache.axis.utils.ParserControl)"><B>CLArgsParser(String[], CLOptionDescriptor[], ParserControl)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Create a parser that can deal with options and parses certain args.
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#CLArgsParser(java.lang.String[], org.apache.axis.utils.CLOptionDescriptor[])"><B>CLArgsParser(String[], CLOptionDescriptor[])</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Create a parser that deals with options and parses certain args.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#CLIENT_CONFIG_FILE"><B>CLIENT_CONFIG_FILE</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#CLIENT_ID"><B>CLIENT_ID</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD><code>JMSConnectorFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils"><B>CLOption</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>.<DD>Basic class describing an instance of option.<DT><A HREF="org/apache/axis/utils/CLOption.html#CLOption(int)"><B>CLOption(int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Constructor taking an id (that must be a proper character code)
<DT><A HREF="org/apache/axis/utils/CLOption.html#CLOption(java.lang.String)"><B>CLOption(String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Constructor taking argument for option.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils"><B>CLOptionDescriptor</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>.<DD>Basic class describing an type of option.<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#CLOptionDescriptor(java.lang.String, int, int, java.lang.String)"><B>CLOptionDescriptor(String, int, int, String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#CLOptionDescriptor(java.lang.String, int, int, java.lang.String, int[])"><B>CLOptionDescriptor(String, int, int, String, int[])</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/utils/CLUtil.html" title="class in org.apache.axis.utils"><B>CLUtil</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLUtil.html" title="class in org.apache.axis.utils">CLUtil</A>.<DD>CLUtil offers basic utility operations for use both internal and external to package.<DT><A HREF="org/apache/axis/client/async/Status.html#COMPLETED"><B>COMPLETED</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field COMPLETED
<DT><A HREF="org/apache/axis/client/async/Status.html#COMPLETED_STR"><B>COMPLETED_STR</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field COMPLETED_STR
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#COMPLEX_TYPE_FAULT"><B>COMPLEX_TYPE_FAULT</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Field COMPLEX_TYPE_FAULT
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#COMPRESSION_GZIP"><B>COMPRESSION_GZIP</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#CONNECTION_DEFAULT_CONNECTION_TIMEOUT_KEY"><B>CONNECTION_DEFAULT_CONNECTION_TIMEOUT_KEY</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>the key for the Axis Property that sets the default connection timeout
        for the httpclient, can be overriden by the MessageContext
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#CONNECTION_DEFAULT_SO_TIMEOUT_KEY"><B>CONNECTION_DEFAULT_SO_TIMEOUT_KEY</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>the key for the Axis Property that sets the read timeout
        for the httpclient
<DT><A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html#CONNECTION_FACTORY_CLASS"><B>CONNECTION_FACTORY_CLASS</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms">BeanVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#CONNECTION_FACTORY_JNDI_NAME"><B>CONNECTION_FACTORY_JNDI_NAME</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#CONNECTION_POOL_TIMEOUT_KEY"><B>CONNECTION_POOL_TIMEOUT_KEY</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>the key for the Axis Property that sets the connection pool timeout
        for the httpclient pool
<DT><A HREF="org/apache/axis/client/Call.html#CONNECTION_TIMEOUT_PROPERTY"><B>CONNECTION_TIMEOUT_PROPERTY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Timeout property: should be accompanies by an integer
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#CONNECTION_URLS"><B>CONNECTION_URLS</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#CONNECTOR"><B>CONNECTOR</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#CONNECT_ACTION"><B>CONNECT_ACTION</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#CONNECT_ID"><B>CONNECT_ID</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#CONNECT_RETRY_INTERVAL"><B>CONNECT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#CONNECT_TIMEOUT"><B>CONNECT_TIMEOUT</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Field CONNECT_TIMEOUT
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#CONTENT_TYPE"><B>CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#CONTENT_TYPE"><B>CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#CONTENT_TYPE"><B>CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#CONTENT_TYPE"><B>CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#CONTENT_TYPE"><B>CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#CONTENT_TYPE_MTOM"><B>CONTENT_TYPE_MTOM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Content Type for MTOM/XOP
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#CONTEXT_FACTORY"><B>CONTEXT_FACTORY</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java"><B>CORBAProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>.<DD>A basic CORBA Provider<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#CORBAProvider()"><B>CORBAProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#CR"><B>CR</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#CR"><B>CR</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>CalendarDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html" title="class in org.apache.axis.encoding.ser">CalendarDeserializer</A>.<DD>The CalendarSerializer deserializes a dateTime.<DT><A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html#CalendarDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>CalendarDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html" title="class in org.apache.axis.encoding.ser">CalendarDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and
 javaType
<DT><A HREF="org/apache/axis/encoding/ser/CalendarDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>CalendarDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">CalendarDeserializerFactory</A>.<DD>A CalendarDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/CalendarDeserializerFactory.html#CalendarDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CalendarDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">CalendarDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/CalendarHolder.html" title="class in javax.xml.rpc.holders"><B>CalendarHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/CalendarHolder.html" title="class in javax.xml.rpc.holders">CalendarHolder</A>.<DD>Holder for <code>Calendar</code>s.<DT><A HREF="javax/xml/rpc/holders/CalendarHolder.html#CalendarHolder()"><B>CalendarHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/CalendarHolder.html" title="class in javax.xml.rpc.holders">CalendarHolder</A>
<DD>Make a new <code>CalendarHolder</code> with a <code>null</code> value.r
<DT><A HREF="javax/xml/rpc/holders/CalendarHolder.html#CalendarHolder(java.util.Calendar)"><B>CalendarHolder(Calendar)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/CalendarHolder.html" title="class in javax.xml.rpc.holders">CalendarHolder</A>
<DD>Make a new <code>CalendarHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser"><B>CalendarSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>.<DD>Serializer for dateTime (Calendar).<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html#CalendarSerializer()"><B>CalendarSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>CalendarSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializerFactory.html" title="class in org.apache.axis.encoding.ser">CalendarSerializerFactory</A>.<DD>SerializerFactory for Calendar(dateTime) primitives<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializerFactory.html#CalendarSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CalendarSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializerFactory.html" title="class in org.apache.axis.encoding.ser">CalendarSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc"><B>Call</B></A> - interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>.<DD>The <code>javax.xml.rpc.Call</code> interface provides support
 for the dynamic invocation of a service endpoint.<DT><A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client"><B>Call</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>.<DD>Axis' JAXRPC Dynamic Invocation Interface implementation of the Call
 interface.<DT><A HREF="org/apache/axis/client/Call.html#Call(org.apache.axis.client.Service)"><B>Call(Service)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Default constructor - not much else to say.
<DT><A HREF="org/apache/axis/client/Call.html#Call(java.lang.String)"><B>Call(String)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Build a call from a URL string.
<DT><A HREF="org/apache/axis/client/Call.html#Call(java.net.URL)"><B>Call(URL)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Build a call from a URL.
<DT><A HREF="org/apache/axis/encoding/Callback.html" title="interface in org.apache.axis.encoding"><B>Callback</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Callback.html" title="interface in org.apache.axis.encoding">Callback</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding"><B>CallbackTarget</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding">CallbackTarget</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/CallbackTarget.html#CallbackTarget(org.apache.axis.encoding.Callback, java.lang.Object)"><B>CallbackTarget(Callback, Object)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding">CallbackTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorDeserializer</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializer</A>.<DD>Castor deserializer<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html#CastorDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>CastorDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializerFactory</A>.<DD>A CastorDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html#CastorDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CastorDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorEnumTypeDeserializer</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializer</A>.<DD>Castor deserializer<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html#CastorEnumTypeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>CastorEnumTypeDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorEnumTypeDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializerFactory</A>.<DD>A CastorEnumTypeDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html#CastorEnumTypeDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CastorEnumTypeDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorEnumTypeSerializer</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>.<DD>Castor serializer<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html#CastorEnumTypeSerializer()"><B>CastorEnumTypeSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorEnumTypeSerializerFactory</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializerFactory</A>.<DD>SerializerFactory for Castor Enum Type objects<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html#CastorEnumTypeSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CastorEnumTypeSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorSerializer</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>.<DD>Castor serializer<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html#CastorSerializer()"><B>CastorSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor"><B>CastorSerializerFactory</B></A> - class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializerFactory</A>.<DD>SerializerFactory for Castor objects<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html#CastorSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>CastorSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Chain.html" title="interface in org.apache.axis"><B>Chain</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/Chain.html" title="interface in org.apache.axis">Chain</A>.<DD>A <code>Handler</code> that executes a 'chain' of child handlers in order.<DT><A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html" title="class in org.apache.axis.utils.bytecode"><B>ChainedParamReader</B></A> - class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html" title="class in org.apache.axis.utils.bytecode">ChainedParamReader</A>.<DD>Description: In ParamReader class, user can not get inherited method parameter
 from the class they passed in.<DT><A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html#ChainedParamReader(java.lang.Class)"><B>ChainedParamReader(Class)</B></A> - 
Constructor for class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html" title="class in org.apache.axis.utils.bytecode">ChainedParamReader</A>
<DD>Process a given class's parameter names
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http"><B>ChunkedInputStream</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#ChunkedInputStream(java.io.InputStream)"><B>ChunkedInputStream(InputStream)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http"><B>ChunkedOutputStream</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#ChunkedOutputStream(java.io.OutputStream)"><B>ChunkedOutputStream(OutputStream)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache"><B>ClassCache</B></A> - class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>.<DD>A cache class for JavaClass objects, which enables us to quickly reference
 methods.<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html#ClassCache()"><B>ClassCache()</B></A> - 
Constructor for class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode"><B>ClassReader</B></A> - class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>.<DD>This is the class file reader for obtaining the parameter names
 for declared methods in a class.<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#ClassReader(byte[], java.util.Map)"><B>ClassReader(byte[], Map)</B></A> - 
Constructor for class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils"><B>ClassUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>.<DD>Utility methods for Class Loading.<DT><A HREF="org/apache/axis/utils/ClassUtils.html#ClassUtils()"><B>ClassUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils"><B>ClasspathUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils">ClasspathUtils</A>.<DD>Utility class for constructing the classpath<DT><A HREF="org/apache/axis/utils/ClasspathUtils.html#ClasspathUtils()"><B>ClasspathUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils">ClasspathUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionElement.html" title="class in org.apache.axis.wsdl.symbolTable"><B>CollectionElement</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionElement.html" title="class in org.apache.axis.wsdl.symbolTable">CollectionElement</A>.<DD>This Element is for a QName that is a 'collection'.<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionElement.html#CollectionElement(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>CollectionElement(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionElement.html" title="class in org.apache.axis.wsdl.symbolTable">CollectionElement</A>
<DD>Constructor CollectionElement
<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionTE.html" title="interface in org.apache.axis.wsdl.symbolTable"><B>CollectionTE</B></A> - interface org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionTE.html" title="interface in org.apache.axis.wsdl.symbolTable">CollectionTE</A>.<DD>Interface CollectionTE<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html" title="class in org.apache.axis.wsdl.symbolTable"><B>CollectionType</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html" title="class in org.apache.axis.wsdl.symbolTable">CollectionType</A>.<DD>This Type is for a QName that is a 'collection'.<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html#CollectionType(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String, boolean)"><B>CollectionType(QName, TypeEntry, Node, String, boolean)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html" title="class in org.apache.axis.wsdl.symbolTable">CollectionType</A>
<DD>Constructor CollectionType
<DT><A HREF="org/apache/axis/providers/ComProvider.html" title="class in org.apache.axis.providers"><B>ComProvider</B></A> - class org.apache.axis.providers.<A HREF="org/apache/axis/providers/ComProvider.html" title="class in org.apache.axis.providers">ComProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/providers/ComProvider.html#ComProvider()"><B>ComProvider()</B></A> - 
Constructor for class org.apache.axis.providers.<A HREF="org/apache/axis/providers/ComProvider.html" title="class in org.apache.axis.providers">ComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/CommentImpl.html" title="class in org.apache.axis.message"><B>CommentImpl</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/CommentImpl.html" title="class in org.apache.axis.message">CommentImpl</A>.<DD>Most of methods are inherited from TEXT, defined for its Interface Marker
 only<DT><A HREF="org/apache/axis/message/CommentImpl.html#CommentImpl(java.lang.String)"><B>CommentImpl(String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/CommentImpl.html" title="class in org.apache.axis.message">CommentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net"><B>CommonsHTTPClientProperties</B></A> - interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>.<DD>Interface implemented by classes seeking to configure the properties
 of the multi threaded connection pool used in the CommonsHTTPSender
 transport implementation.<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html" title="class in org.apache.axis.components.net"><B>CommonsHTTPClientPropertiesFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html" title="class in org.apache.axis.components.net">CommonsHTTPClientPropertiesFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html#CommonsHTTPClientPropertiesFactory()"><B>CommonsHTTPClientPropertiesFactory()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html" title="class in org.apache.axis.components.net">CommonsHTTPClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http"><B>CommonsHTTPSender</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>.<DD>This class uses Jakarta Commons's HttpClient to call a SOAP server.<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#CommonsHTTPSender()"><B>CommonsHTTPSender()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler"><B>Compiler</B></A> - interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>.<DD>This interface defines a compiler's functionality for all
 (Java-based) compiled languages<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler"><B>CompilerError</B></A> - class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>.<DD>This class encapsulates an error message produced by a programming language
 processor (whether interpreted or compiled)<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#CompilerError(java.lang.String, boolean, int, int, int, int, java.lang.String)"><B>CompilerError(String, boolean, int, int, int, int, String)</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>The error message constructor.
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#CompilerError(java.lang.String)"><B>CompilerError(String)</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>The error message constructor.
<DT><A HREF="org/apache/axis/components/compiler/CompilerFactory.html" title="class in org.apache.axis.components.compiler"><B>CompilerFactory</B></A> - class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerFactory.html" title="class in org.apache.axis.components.compiler">CompilerFactory</A>.<DD>This class implements a factory to instantiate a Compiler.<DT><A HREF="org/apache/axis/components/compiler/CompilerFactory.html#CompilerFactory()"><B>CompilerFactory()</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerFactory.html" title="class in org.apache.axis.components.compiler">CompilerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis"><B>ConfigurationException</B></A> - exception org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>.<DD>ConfigurationException is thrown when an error occurs trying to
 use an EngineConfiguration.<DT><A HREF="org/apache/axis/ConfigurationException.html#ConfigurationException(java.lang.String)"><B>ConfigurationException(String)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Construct a ConfigurationException from a String.
<DT><A HREF="org/apache/axis/ConfigurationException.html#ConfigurationException(java.lang.Exception)"><B>ConfigurationException(Exception)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Construct a ConfigurationException from an Exception.
<DT><A HREF="org/apache/axis/ConfigurationException.html#ConfigurationException(java.lang.Exception, boolean)"><B>ConfigurationException(Exception, boolean)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Construct a ConfigurationException from an Exception.
<DT><A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis"><B>Constants</B></A> - class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/Constants.html#Constants()"><B>Constants()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ConstructorTarget.html" title="class in org.apache.axis.encoding"><B>ConstructorTarget</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/ConstructorTarget.html" title="class in org.apache.axis.encoding">ConstructorTarget</A>.<DD>Used when the class need a specific Constructor (not default one)<DT><A HREF="org/apache/axis/encoding/ConstructorTarget.html#ConstructorTarget(java.lang.reflect.Constructor, org.apache.axis.encoding.Deserializer)"><B>ConstructorTarget(Constructor, Deserializer)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/ConstructorTarget.html" title="class in org.apache.axis.encoding">ConstructorTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html" title="class in org.apache.axis.wsdl.symbolTable"><B>ContainedAttribute</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedAttribute</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html#ContainedAttribute(org.apache.axis.wsdl.symbolTable.TypeEntry, javax.xml.namespace.QName)"><B>ContainedAttribute(TypeEntry, QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedAttribute</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>ContainedEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedEntry</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html#ContainedEntry(org.apache.axis.wsdl.symbolTable.TypeEntry, javax.xml.namespace.QName)"><B>ContainedEntry(TypeEntry, QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#cache"><B>cache</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#cacheStringDSer"><B>cacheStringDSer</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#cacheStringDSer"><B>cacheStringDSer</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#cacheStringDSer"><B>cacheStringDSer</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#cacheXMLType"><B>cacheXMLType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#cacheXMLType"><B>cacheXMLType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#cacheXMLType"><B>cacheXMLType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#cachedEndpoint"><B>cachedEndpoint</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#cachedPassword"><B>cachedPassword</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#cachedPortName"><B>cachedPortName</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#cachedProperties"><B>cachedProperties</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#cachedSOAPEnvelope"><B>cachedSOAPEnvelope</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#cachedSOAPEnvelope"><B>cachedSOAPEnvelope</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field cachedSOAPEnvelope
<DT><A HREF="org/apache/axis/client/Stub.html#cachedTimeout"><B>cachedTimeout</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#cachedUsername"><B>cachedUsername</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#cachediskstream"><B>cachediskstream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This is the cached disk stream.
<DT><A HREF="javax/xml/soap/SOAPConnection.html#call(javax.xml.soap.SOAPMessage, java.lang.Object)"><B>call(SOAPMessage, Object)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnection.html" title="class in javax.xml.soap">SOAPConnection</A>
<DD>Sends the given message to the specified endpoint and
 blocks until it has returned the response.
<DT><A HREF="org/apache/axis/client/AdminClient.html#call"><B>call</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>the object that represents our call
<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html#call(javax.xml.soap.SOAPMessage, java.lang.Object)"><B>call(SOAPMessage, Object)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>
<DD>Sends the given message to the specified endpoint and
 blocks until it has returned the response.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#call(byte[], long)"><B>call(byte[], long)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Send a message and wait for a response.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#call(byte[], long, java.util.HashMap)"><B>call(byte[], long, HashMap)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Send a message and wait for a response.
<DT><A HREF="org/apache/axis/FaultableHandler.html#canHandleBlock(javax.xml.namespace.QName)"><B>canHandleBlock(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Handler.html#canHandleBlock(javax.xml.namespace.QName)"><B>canHandleBlock(QName)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Indicate if this handler can process <code>qname</code>.
<DT><A HREF="org/apache/axis/SimpleChain.html#canHandleBlock(javax.xml.namespace.QName)"><B>canHandleBlock(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#canHandleBlock(javax.xml.namespace.QName)"><B>canHandleBlock(QName)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#canSearchParents"><B>canSearchParents</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field canSearchParents
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#capitalizeFirstChar(java.lang.String)"><B>capitalizeFirstChar(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Capitalize the first character of the name.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>Append any characters received to the value.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>Append any characters received to the value.
<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>delegates to the serialization context
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#characters(char[], int, int)"><B>characters(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#checkError()"><B>checkError()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#checkMethodName(org.apache.axis.MessageContext, java.lang.String, java.lang.String)"><B>checkMethodName(MessageContext, String, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>Throw an AxisFault if the requested method is not allowed.
<DT><A HREF="org/apache/axis/message/MessageElement.html#childDeepCloned(org.apache.axis.message.NodeImpl, org.apache.axis.message.NodeImpl)"><B>childDeepCloned(NodeImpl, NodeImpl)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#childDeepCloned(org.apache.axis.message.NodeImpl, org.apache.axis.message.NodeImpl)"><B>childDeepCloned(NodeImpl, NodeImpl)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#children"><B>children</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#chunkSize"><B>chunkSize</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#classCache"><B>classCache</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Java class cache.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#className"><B>className</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field className
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html#className"><B>className</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>
<DD>Field className
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#className"><B>className</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Field className
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#classpath"><B>classpath</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The classpath to be used for compilation
<DT><A HREF="org/apache/axis/AxisEngine.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Cleanup routine removes application scoped objects.
<DT><A HREF="org/apache/axis/FaultableHandler.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Handler.html#cleanup()"><B>cleanup()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Cleanup is called when the chain containing this Handler object
 is done processing the chain.
<DT><A HREF="org/apache/axis/SimpleChain.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#cleanup()"><B>cleanup()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#clear()"><B>clear()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Removes all registered TypeMappings and encodingStyleURIs
 from this TypeMappingRegistry.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.clear()</CODE>.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Removes all TypeMappings and namespaceURIs from this TypeMappingRegistry.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#clear()"><B>clear()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#clearAttachments()"><B>clearAttachments()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>This method clears the request attachments.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#clearBody()"><B>clearBody()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>clear the elements in the soap body
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#clearCache()"><B>clearCache()</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Clears the internal cache
<DT><A HREF="org/apache/axis/i18n/RB.html#clearCache()"><B>clearCache()</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Clears the internal cache
<DT><A HREF="javax/xml/soap/AttachmentPart.html#clearContent()"><B>clearContent()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Clears out the content of this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#clearContent()"><B>clearContent()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Clears out the content of this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/AxisFault.html#clearFaultDetails()"><B>clearFaultDetails()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Clear the fault details list.
<DT><A HREF="org/apache/axis/AxisFault.html#clearFaultSubCodes()"><B>clearFaultSubCodes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Clear all fault sub-codes.
<DT><A HREF="org/apache/axis/AxisFault.html#clearHeaders()"><B>clearHeaders()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Clear all fault headers.
<DT><A HREF="org/apache/axis/client/Call.html#clearHeaders()"><B>clearHeaders()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Clear the list of headers which we insert into each message

 Note: Not part of JAX-RPC specification.
<DT><A HREF="org/apache/axis/client/Stub.html#clearHeaders()"><B>clearHeaders()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>This method clears both requestHeaders and responseHeaders hashtables.
<DT><A HREF="org/apache/axis/client/Call.html#clearOperation()"><B>clearOperation()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#clearSessions()"><B>clearSessions()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Remove all of this Service's serviceObjects from it known sessions
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#clientConfigFile"><B>clientConfigFile</B></A> - 
Variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#clientProperties"><B>clientProperties</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Creates a shallow copy of this object, preserving the internal structure
 by copying only references.
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#clone()"><B>clone()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Instantiate a clone of this Namespaces object.
<DT><A HREF="org/apache/axis/utils/NSStack.html#cloneFrame()"><B>cloneFrame()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Return a copy of the current frame.
<DT><A HREF="org/apache/axis/SOAPPart.html#cloneNode(boolean)"><B>cloneNode(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#cloneNode(boolean)"><B>cloneNode(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Returns a duplicate of this node, i.e., serves as a generic copy
 constructor for nodes.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#cloneNode(boolean)"><B>cloneNode(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns a duplicate of this node, i.e., serves as a generic copy
 constructor for nodes.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#cloneNode(boolean)"><B>cloneNode(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#cloneNode(boolean)"><B>cloneNode(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#cloning()"><B>cloning()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>protected clone method (not public)

  copied status
  -------------------
  protected String    name ;             Y
  protected String    prefix ;           Y
  protected String    namespaceURI ;     Y
  protected transient Attributes attributes  Y
  protected String    id;               Y?
  protected String    href;             Y?
  protected boolean   _isRoot = true;   Y?
  protected SOAPEnvelope message = null; N?
  protected transient DeserializationContext context;  Y?
  protected transient QName typeQName = null;          Y?
  protected Vector qNameAttrs = null;                  Y?
  protected transient SAX2EventRecorder recorder = null; N?
  protected int startEventIndex = 0;                   N?
  protected int startContentsIndex = 0;                N?
  protected int endEventIndex = -1;                    N?
  protected CharacterData textRep = null;             Y?
  protected MessageElement parent = null;             N
  public ArrayList namespaces = null;                 Y
  protected String encodingStyle = null;              N?
   private Object objectValue = null;                 N?
<DT><A HREF="javax/xml/soap/SOAPConnection.html#close()"><B>close()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnection.html" title="class in javax.xml.soap">SOAPConnection</A>
<DD>Closes this <CODE>SOAPConnection</CODE> object.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Closes the stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Closes the stream.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This method is a low level write.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>
<DD>Closes this <CODE>SOAPConnection</CODE> object.
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>disassociate from the underlying input stream
<DT><A HREF="org/apache/axis/transport/http/SocketInputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketInputStream.html" title="class in org.apache.axis.transport.http">SocketInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method close
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>Closing a <tt>ByteArrayOutputStream</tt> has no effect.
<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#close()"><B>close()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#closeAllConnectors()"><B>closeAllConnectors()</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>Closes all JMS connectors
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#closeMatchingJMSConnectors(java.lang.String, java.lang.String, java.lang.String)"><B>closeMatchingJMSConnectors(String, String, String)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>Closes JMS connectors that match the specified endpoint address
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#closePrintWriter(java.io.PrintWriter)"><B>closePrintWriter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Only close the PrintWriter if the PrintWriter belongs to
 this class.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#closePrintWriter(java.io.PrintWriter)"><B>closePrintWriter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Close the print writer.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#closed"><B>closed</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>If true the source input stream is now closed.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#closed"><B>closed</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#closed"><B>closed</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field closed
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#closed"><B>closed</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SocketInputStream.html#closed"><B>closed</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketInputStream.html" title="class in org.apache.axis.transport.http">SocketInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#code"><B>code</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#collectionIndex"><B>collectionIndex</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#comment(char[], int, int)"><B>comment(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#comment(char[], int, int)"><B>comment(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#comment(char[], int, int)"><B>comment(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#compareTo(java.lang.Object)"><B>compareTo(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#compile()"><B>compile()</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Compile a source file yielding a loadable program file.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#compile()"><B>compile()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>Compile a source file yielding a loadable class file.
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#compile()"><B>compile()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>Execute the compiler
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#componentType"><B>componentType</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#componentsReady()"><B>componentsReady()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Some deserializers (ArrayDeserializer) require
 all of the component values to be known before the
 value is complete.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#componentsReady()"><B>componentsReady()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Some deserializers (ArrayDeserializer) require
 all of the component values to be known before the
 value is complete.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#componentsReadyFlag"><B>componentsReadyFlag</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#config"><B>config</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Our go-to guy for configuration...
<DT><A HREF="org/apache/axis/EngineConfiguration.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Configure this AxisEngine using whatever data source we have.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Configure an AxisEngine.
<DT><A HREF="org/apache/axis/configuration/XMLStringProvider.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/XMLStringProvider.html" title="class in org.apache.axis.configuration">XMLStringProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#configureEngine(org.apache.axis.AxisEngine)"><B>configureEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#configureFromContext(org.apache.axis.MessageContext)"><B>configureFromContext(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>configure our elements from the context.
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#configureGlobalConfig(org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration)"><B>configureGlobalConfig(WSDDGlobalConfiguration)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#configureGlobalConfig(org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration)"><B>configureGlobalConfig(WSDDGlobalConfiguration)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#configureResponseFromAxisFault(javax.servlet.http.HttpServletResponse, org.apache.axis.AxisFault)"><B>configureResponseFromAxisFault(HttpServletResponse, AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>Configure the servlet response status code and maybe other headers
 from the fault info.
<DT><A HREF="org/apache/axis/transport/jms/JMSURLConnection.html#connect()"><B>connect()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLConnection.html" title="class in org.apache.axis.transport.jms">JMSURLConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#connectionManager"><B>connectionManager</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#constructSignatures(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>constructSignatures(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method constructSignatures
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#constructorTarget"><B>constructorTarget</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Constructor Target object to use (if constructorToUse != null)
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#constructorToUse"><B>constructorToUse</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Constructor if no default constructor
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#containedAttributes"><B>containedAttributes</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>contained attributes in the schema's type definition
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#containedElements"><B>containedElements</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>contained elements in the schema's type definition
<DT><A HREF="org/apache/axis/Chain.html#contains(org.apache.axis.Handler)"><B>contains(Handler)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Chain.html" title="interface in org.apache.axis">Chain</A>
<DD>Discover if a handler is in this chain.
<DT><A HREF="org/apache/axis/SimpleChain.html#contains(org.apache.axis.Handler)"><B>contains(Handler)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/URLHashSet.html#contains(java.net.URL)"><B>contains(URL)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>
<DD>Returns true if this set contains the specified element.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.containsKey(Object)</CODE>.
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#containsKey(java.lang.Object)"><B>containsKey(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html#containsProperty(java.lang.String)"><B>containsProperty(String)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>
<DD>Returns true if the <code>MessageContext</code> contains a property
 with the specified name.
<DT><A HREF="org/apache/axis/MessageContext.html#containsProperty(java.lang.String)"><B>containsProperty(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns true if the MessageContext contains a property with the specified name.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#containsValue(java.lang.Object)"><B>containsValue(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.containsValue(Object)</CODE>.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#contentId"><B>contentId</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#contentId"><B>contentId</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field contentId
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#contentLocation"><B>contentLocation</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>This is the content location as specified in SOAP with Attachments.
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#contentLocation"><B>contentLocation</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field contentLocation
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#contentType"><B>contentType</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>The content type.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#context"><B>context</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#context"><B>context</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#context"><B>context</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#convert(java.lang.Object, java.lang.Class)"><B>convert(Object, Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Utility function to convert an Object to some desired Class.
<DT><A HREF="org/apache/axis/types/HexBinary.html#convert2Int(byte[])"><B>convert2Int(byte[])</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>Convert 4 hex digits to an int, and return the number of converted
 bytes.
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#convertArrayToObject(java.lang.Object, java.lang.Class)"><B>convertArrayToObject(Object, Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>Convert an array object of which type is T[] to ArrayOfT class.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#convertAttrSAXtoDOM(org.xml.sax.Attributes)"><B>convertAttrSAXtoDOM(Attributes)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The internal representation of Attributes cannot help being changed
 It is because Attribute is not immutible Type, so if we keep out value and
 just return it in another form, the application may chnae it, which we cannot
 detect without some kind back track method (call back notifying the chnage.)
 I am not sure which approach is better.
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#convertExceptionToAxisFault(java.lang.Exception, org.apache.axis.Message)"><B>convertExceptionToAxisFault(Exception, Message)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>turn any Exception into an AxisFault, log it, set the response
 status code according to what the specifications say and
 return a response message for posting.
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#convertObjectToArray(java.lang.Object, java.lang.Class)"><B>convertObjectToArray(Object, Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>Convert ArrayOfT to T[].
<DT><A HREF="org/apache/axis/ConfigurationException.html#copyStackByDefault"><B>copyStackByDefault</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Flag wether to copy the orginal exception by default.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html#count()"><B>count()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#count"><B>count</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html#countAttachments()"><B>countAttachments()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Gets a count of the number of attachments in this
 message.
<DT><A HREF="org/apache/axis/Message.html#countAttachments()"><B>countAttachments()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Gets a count of the number of attachments in this
 message.
<DT><A HREF="javax/xml/soap/SOAPElementFactory.html#create(javax.xml.soap.Name)"><B>create(Name)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap">SOAPElementFactory</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name) instead</I>
<DT><A HREF="javax/xml/soap/SOAPElementFactory.html#create(java.lang.String)"><B>create(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap">SOAPElementFactory</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use javax.xml.soap.SOAPFactory.createElement(String localName) instead</I>
<DT><A HREF="javax/xml/soap/SOAPElementFactory.html#create(java.lang.String, java.lang.String, java.lang.String)"><B>create(String, String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap">SOAPElementFactory</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use javax.xml.soap.SOAPFactory.createElement(String localName, String prefix, String uri) instead</I>
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html#create()"><B>create()</B></A> - 
Static method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html" title="class in org.apache.axis.components.net">CommonsHTTPClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#create(java.lang.String, int, java.lang.StringBuffer, org.apache.axis.components.net.BooleanHolder)"><B>create(String, int, StringBuffer, BooleanHolder)</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Creates a socket.
<DT><A HREF="org/apache/axis/components/net/JSSESocketFactory.html#create(java.lang.String, int, java.lang.StringBuffer, org.apache.axis.components.net.BooleanHolder)"><B>create(String, int, StringBuffer, BooleanHolder)</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net">JSSESocketFactory</A>
<DD>creates a secure socket
<DT><A HREF="org/apache/axis/components/net/SocketFactory.html#create(java.lang.String, int, java.lang.StringBuffer, org.apache.axis.components.net.BooleanHolder)"><B>create(String, int, StringBuffer, BooleanHolder)</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactory.html" title="interface in org.apache.axis.components.net">SocketFactory</A>
<DD>Create a socket
<DT><A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html#create(java.lang.String)"><B>create(String)</B></A> - 
Static method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html" title="class in org.apache.axis.components.net">TransportClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html#create(java.lang.Class, javax.xml.namespace.QName)"><B>create(Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html#create(java.lang.Class, javax.xml.namespace.QName)"><B>create(Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html#create(java.lang.Class, javax.xml.namespace.QName)"><B>create(Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html#create(java.lang.Class, javax.xml.namespace.QName)"><B>create(Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializerFactory.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSSender.html#createApplicationProperties(org.apache.axis.MessageContext)"><B>createApplicationProperties(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSSender.html" title="class in org.apache.axis.transport.jms">JMSSender</A>
<DD>Return a map of properties that makeup the application-specific
        for the JMS Messages.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createArrayElement(java.lang.String)"><B>createArrayElement(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Method createArrayElement
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#createAsyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createAsyncConnection(ConnectionFactory, Connection, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#createAsyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createAsyncConnection(ConnectionFactory, Connection, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#createAsyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createAsyncConnection(ConnectionFactory, Connection, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html#createAttachmentPart()"><B>createAttachmentPart()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Creates a new empty <CODE>AttachmentPart</CODE> object.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#createAttachmentPart(javax.activation.DataHandler)"><B>createAttachmentPart(DataHandler)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Creates an <CODE>AttachmentPart</CODE> object and
 populates it using the given <CODE>DataHandler</CODE>
 object.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#createAttachmentPart(java.lang.Object, java.lang.String)"><B>createAttachmentPart(Object, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Creates an <CODE>AttachmentPart</CODE> object and
 populates it with the specified data of the specified content
 type.
<DT><A HREF="org/apache/axis/Message.html#createAttachmentPart()"><B>createAttachmentPart()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Creates a new empty <CODE>AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#createAttachmentPart(java.lang.Object)"><B>createAttachmentPart(Object)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Create a new attachment Part in this Message.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#createAttachmentPart()"><B>createAttachmentPart()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Create a new attachment Part in this Message.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#createAttachmentPart(java.lang.Object)"><B>createAttachmentPart(Object)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#createAttachmentPart()"><B>createAttachmentPart()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Create a new attachment Part in this Message.
<DT><A HREF="org/apache/axis/SOAPPart.html#createAttribute(java.lang.String)"><B>createAttribute(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createAttribute(java.lang.String)"><B>createAttribute(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createAttributeElement(java.lang.String, java.lang.Class, javax.xml.namespace.QName, boolean, org.w3c.dom.Document)"><B>createAttributeElement(String, Class, QName, boolean, Document)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Create Attribute Element with a given name and type
<DT><A HREF="org/apache/axis/SOAPPart.html#createAttributeNS(java.lang.String, java.lang.String)"><B>createAttributeNS(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createAttributeNS(java.lang.String, java.lang.String)"><B>createAttributeNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Attribute is not particularly dealt with in SAAJ.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#createBackingStoreInputStream()"><B>createBackingStoreInputStream()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method createBackingStoreInputStream
<DT><A HREF="org/apache/axis/SOAPPart.html#createCDATASection(java.lang.String)"><B>createCDATASection(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createCDATASection(java.lang.String)"><B>createCDATASection(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Creates a <code>CDATASection</code> node whose value is the specified
 string.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#createCFMap(org.apache.axis.utils.Options)"><B>createCFMap(Options)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Service.html#createCall(javax.xml.namespace.QName)"><B>createCall(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Creates a <code>Call</code> instance.
<DT><A HREF="javax/xml/rpc/Service.html#createCall(javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>createCall(QName, QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Creates a <code>Call</code> instance.
<DT><A HREF="javax/xml/rpc/Service.html#createCall(javax.xml.namespace.QName, java.lang.String)"><B>createCall(QName, String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Creates a <code>Call</code> instance.
<DT><A HREF="javax/xml/rpc/Service.html#createCall()"><B>createCall()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Creates a <code>Call</code> object not associated with
 specific operation or target service endpoint.
<DT><A HREF="org/apache/axis/client/Service.html#createCall(javax.xml.namespace.QName)"><B>createCall(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Creates a new Call object - will prefill as much info from the WSDL
 as it can.
<DT><A HREF="org/apache/axis/client/Service.html#createCall(javax.xml.namespace.QName, java.lang.String)"><B>createCall(QName, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Creates a new Call object - will prefill as much info from the WSDL
 as it can.
<DT><A HREF="org/apache/axis/client/Service.html#createCall(javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>createCall(QName, QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Creates a new Call object - will prefill as much info from the WSDL
 as it can.
<DT><A HREF="org/apache/axis/client/Service.html#createCall()"><B>createCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Creates a new Call object with no prefilled data.
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#createClassLoader(java.lang.String, java.lang.ClassLoader)"><B>createClassLoader(String, ClassLoader)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Creates a new ClassLoader from a classpath specification and a parent
 class loader.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html#createClientConnector(java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter)"><B>createClientConnector(HashMap, HashMap, String, String, JMSVendorAdapter)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>
<DD>Static method to create a client connector.
<DT><A HREF="org/apache/axis/SOAPPart.html#createComment(java.lang.String)"><B>createComment(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createComment(java.lang.String)"><B>createComment(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Creates a <code>Comment</code> node given the specified string.
<DT><A HREF="javax/xml/soap/SOAPConnectionFactory.html#createConnection()"><B>createConnection()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnectionFactory.html" title="class in javax.xml.soap">SOAPConnectionFactory</A>
<DD>Create a new <CODE>SOAPConnection</CODE>.
<DT><A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html#createConnection()"><B>createConnection()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html" title="class in org.apache.axis.soap">SOAPConnectionFactoryImpl</A>
<DD>Create a new <CODE>SOAPConnection</CODE>.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#createConnectionWithRetry(javax.jms.ConnectionFactory, java.lang.String, java.lang.String)"><B>createConnectionWithRetry(ConnectionFactory, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#createConnectorMap(org.apache.axis.utils.Options)"><B>createConnectorMap(Options)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html#createConsumer(javax.jms.Destination)"><B>createConsumer(Destination)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection.SendSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#createDefinition()"><B>createDefinition()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Build a Definition from the input wsdl file or create
 a new Definition
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createDetail()"><B>createDetail()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Creates a new <code>Detail</code> object which serves as a container
 for <code>DetailEntry</code> objects.
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createDetail()"><B>createDetail()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#createDimeMessage()"><B>createDimeMessage()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Creates the DIME message
<DT><A HREF="org/apache/axis/SOAPPart.html#createDocumentFragment()"><B>createDocumentFragment()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createDocumentFragment()"><B>createDocumentFragment()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Creates an empty <code>DocumentFragment</code> object.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#createDocumentationElement(java.lang.String)"><B>createDocumentationElement(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a documentation element
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createElement(javax.xml.soap.Name)"><B>createElement(Name)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Create a <code>SOAPElement</code> object initialized with the
 given <code>Name</code> object.
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createElement(java.lang.String)"><B>createElement(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Create a <code>SOAPElement</code> object initialized with the
 given local name.
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createElement(java.lang.String, java.lang.String, java.lang.String)"><B>createElement(String, String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Create a new <code>SOAPElement</code> object with the given
 local name, prefix and uri.
<DT><A HREF="org/apache/axis/SOAPPart.html#createElement(java.lang.String)"><B>createElement(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createElement(java.lang.String)"><B>createElement(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>based on the tagName, we will make different kind SOAP Elements Instance
 Is really we can determine the Type by the Tagname???
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createElement(javax.xml.soap.Name)"><B>createElement(Name)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>Create a <CODE>SOAPElement</CODE> object initialized with
 the given <CODE>Name</CODE> object.
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createElement(java.lang.String)"><B>createElement(String)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>Create a <CODE>SOAPElement</CODE> object initialized with
 the given local name.
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createElement(java.lang.String, java.lang.String, java.lang.String)"><B>createElement(String, String, String)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>Create a new <CODE>SOAPElement</CODE> object with the
 given local name, prefix and uri.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createElement(java.lang.String, java.lang.String, boolean, boolean, org.w3c.dom.Document)"><B>createElement(String, String, boolean, boolean, Document)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Create Element with a given name and type
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createElement(java.lang.String)"><B>createElement(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Create a DOM Element in this context
<DT><A HREF="org/apache/axis/SOAPPart.html#createElementNS(java.lang.String, java.lang.String)"><B>createElementNS(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createElementNS(java.lang.String, java.lang.String)"><B>createElementNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Return SOAPElements (what if they want SOAPEnvelope or Header/Body?)
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createElementWithAnonymousType(java.lang.String, java.lang.Class, boolean, org.w3c.dom.Document)"><B>createElementWithAnonymousType(String, Class, boolean, Document)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write an &lt;element&gt; with an anonymous internal ComplexType
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#createEmitter()"><B>createEmitter()</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Instantiate an Emitter
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#createEndpoint(java.lang.String)"><B>createEndpoint(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#createEndpoint(javax.jms.Destination)"><B>createEndpoint(Destination)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#createEndpoint(java.lang.String)"><B>createEndpoint(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#createEndpoint(javax.jms.Destination)"><B>createEndpoint(Destination)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>Create an endpoint for a queue destination.
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#createEndpoint(java.lang.String)"><B>createEndpoint(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#createEndpoint(javax.jms.Destination)"><B>createEndpoint(Destination)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>Create an endpoint for a queue destination.
<DT><A HREF="org/apache/axis/SOAPPart.html#createEntityReference(java.lang.String)"><B>createEntityReference(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createEntityReference(java.lang.String)"><B>createEntityReference(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#createFactory(java.lang.Class, java.lang.Class, javax.xml.namespace.QName)"><B>createFactory(Class, Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Utility method that intospects on a factory class to decide how to 
 create the factory.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#createFactory(java.lang.Class, java.lang.Class, javax.xml.namespace.QName)"><B>createFactory(Class, Class, QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Utility method that intospects on a factory class to decide how to 
 create the factory.
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#createHandlerChain()"><B>createHandlerChain()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html#createListenerSession(javax.jms.Connection, org.apache.axis.transport.jms.Subscription)"><B>createListenerSession(Connection, Subscription)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#createLiteralArrayElement(java.lang.String, javax.xml.namespace.QName)"><B>createLiteralArrayElement(String, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Create an array which is a wrapper type for "item" elements
 of a component type.
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#createMP(java.lang.String, java.util.Collection, int)"><B>createMP(String, Collection, int)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>This routine will create a multipart object from the parts and the SOAP content.
<DT><A HREF="javax/xml/soap/MessageFactory.html#createMessage()"><B>createMessage()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap">MessageFactory</A>
<DD>Creates a new <CODE>SOAPMessage</CODE> object with the
   default <CODE>SOAPPart</CODE>, <CODE>SOAPEnvelope</CODE>,
   <CODE>SOAPBody</CODE>, and <CODE>SOAPHeader</CODE> objects.
<DT><A HREF="javax/xml/soap/MessageFactory.html#createMessage(javax.xml.soap.MimeHeaders, java.io.InputStream)"><B>createMessage(MimeHeaders, InputStream)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap">MessageFactory</A>
<DD>Internalizes the contents of the given <CODE>
 InputStream</CODE> object into a new <CODE>SOAPMessage</CODE>
 object and returns the <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/soap/MessageFactoryImpl.html#createMessage()"><B>createMessage()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/MessageFactoryImpl.html" title="class in org.apache.axis.soap">MessageFactoryImpl</A>
<DD>Creates a new <CODE>SOAPMessage</CODE> object with the
   default <CODE>SOAPPart</CODE>, <CODE>SOAPEnvelope</CODE>,
   <CODE>SOAPBody</CODE>, and <CODE>SOAPHeader</CODE> objects.
<DT><A HREF="org/apache/axis/soap/MessageFactoryImpl.html#createMessage(javax.xml.soap.MimeHeaders, java.io.InputStream)"><B>createMessage(MimeHeaders, InputStream)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/MessageFactoryImpl.html" title="class in org.apache.axis.soap">MessageFactoryImpl</A>
<DD>Internalizes the contents of the given <CODE>
 InputStream</CODE> object into a new <CODE>SOAPMessage</CODE>
 object and returns the <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#createMessageName(javax.wsdl.Definition, java.lang.String)"><B>createMessageName(Definition, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method createMessageName
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#createName(java.lang.String, java.lang.String, java.lang.String)"><B>createName(String, String, String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Creates a new <CODE>Name</CODE> object initialized with the
   given local name, namespace prefix, and namespace URI.
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#createName(java.lang.String)"><B>createName(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Creates a new <CODE>Name</CODE> object initialized with the
   given local name.
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createName(java.lang.String, java.lang.String, java.lang.String)"><B>createName(String, String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Creates a new <code>Name</code> object initialized with the
 given local name, namespace prefix, and namespace URI.
<DT><A HREF="javax/xml/soap/SOAPFactory.html#createName(java.lang.String)"><B>createName(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Creates a new <code>Name</code> object initialized with the
 given local name.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#createName(java.lang.String)"><B>createName(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>create a Name given the local part
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#createName(java.lang.String, java.lang.String, java.lang.String)"><B>createName(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Create a name given local part, prefix and uri
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createName(java.lang.String, java.lang.String, java.lang.String)"><B>createName(String, String, String)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#createName(java.lang.String)"><B>createName(String)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#createParser()"><B>createParser()</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Instantiate an extension of the Parser
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#createParser()"><B>createParser()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>createParser
 Used by extended classes to construct an instance of the Parser
<DT><A HREF="org/apache/axis/SOAPPart.html#createProcessingInstruction(java.lang.String, java.lang.String)"><B>createProcessingInstruction(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createProcessingInstruction(java.lang.String, java.lang.String)"><B>createProcessingInstruction(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Creates a <code>ProcessingInstruction</code> node given the specified
 name and data strings.
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#createResponseBody(org.apache.axis.message.RPCElement, org.apache.axis.MessageContext, org.apache.axis.description.OperationDesc, org.apache.axis.description.ServiceDesc, java.lang.Object, org.apache.axis.message.SOAPEnvelope, java.util.ArrayList)"><B>createResponseBody(RPCElement, MessageContext, OperationDesc, ServiceDesc, Object, SOAPEnvelope, ArrayList)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html#createSendSession(javax.jms.Connection)"><B>createSendSession(Connection)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html#createServerConnector(java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter)"><B>createServerConnector(HashMap, HashMap, String, String, JMSVendorAdapter)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>
<DD>Static method to create a server connector.
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#createService(java.net.URL, javax.xml.namespace.QName)"><B>createService(URL, QName)</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>Create a <code>Service</code> instance.
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#createService(javax.xml.namespace.QName)"><B>createService(QName)</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>Create a <code>Service</code> instance.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#createService(java.net.URL, javax.xml.namespace.QName)"><B>createService(URL, QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Create a Service instance.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#createService(javax.xml.namespace.QName)"><B>createService(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Create a Service instance.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#createSession(java.lang.String)"><B>createSession(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>demand create a session if there is not already one for the string
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#createSubscription(javax.jms.MessageListener, java.util.HashMap)"><B>createSubscription(MessageListener, HashMap)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#createSyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createSyncConnection(ConnectionFactory, Connection, int, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#createSyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createSyncConnection(ConnectionFactory, Connection, int, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#createSyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>createSyncConnection(ConnectionFactory, Connection, int, String, String, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html#createTemporaryDestination()"><B>createTemporaryDestination()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection.SendSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#createTextNode(java.lang.String)"><B>createTextNode(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#createTextNode(java.lang.String)"><B>createTextNode(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Creates a <code>Text</code> node given the specified string.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#createTypeFromRef(org.w3c.dom.Node)"><B>createTypeFromRef(Node)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Node may contain a reference (via type=, ref=, or element= attributes) to
 another type.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#createTypeMapping()"><B>createTypeMapping()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Creates a new empty <code>TypeMapping</code> object.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#createTypeMapping()"><B>createTypeMapping()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Creates a new empty TypeMapping object for the specified
 encoding style or XML schema namespace.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#createTypes(javax.wsdl.Definition)"><B>createTypes(Definition)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Build a Types object and load the input wsdl types
<DT><A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html#createWithDelegate()"><B>createWithDelegate()</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAPEncodingTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#curIndex"><B>curIndex</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#curIndex"><B>curIndex</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#currentMemoryBuf"><B>currentMemoryBuf</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Hold the last memory buffer.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#currentMemoryBufSz"><B>currentMemoryBufSz</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>The number of bytes written to the above buffer.
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#DEBUG_OPT"><B>DEBUG_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field DEBUG_OPT
<DT><A HREF="org/apache/axis/types/HexBinary.html#DEC"><B>DEC</B></A> - 
Static variable in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/Status.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field DEFAULT
<DT><A HREF="org/apache/axis/constants/Scope.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#DEFAULT"><B>DEFAULT</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_ACKNOWLEDGE_MODE"><B>DEFAULT_ACKNOWLEDGE_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>value for ACKNOWLEDGE_MODE if left unset.
<DT><A HREF="org/apache/axis/AxisEngine.html#DEFAULT_ATTACHMENT_IMPL"><B>DEFAULT_ATTACHMENT_IMPL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#DEFAULT_ATTACHMNET_IMPL"><B>DEFAULT_ATTACHMNET_IMPL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Default Attachments Implementation class.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#DEFAULT_CACHE_INCREMENT"><B>DEFAULT_CACHE_INCREMENT</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_CONNECT_RETRY_INTERVAL"><B>DEFAULT_CONNECT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_DELIVERY_MODE"><B>DEFAULT_DELIVERY_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#DEFAULT_ENABLE_BACKING_STORE"><B>DEFAULT_ENABLE_BACKING_STORE</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#DEFAULT_ENCODING"><B>DEFAULT_ENCODING</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_INTERACT_RETRY_INTERVAL"><B>DEFAULT_INTERACT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#DEFAULT_JWS_FILE_EXTENSION"><B>DEFAULT_JWS_FILE_EXTENSION</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#DEFAULT_MAX_THREADS"><B>DEFAULT_MAX_THREADS</B></A> - 
Static variable in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#DEFAULT_MESSAGE_TIMEOUT"><B>DEFAULT_MESSAGE_TIMEOUT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>The default timeout for messages.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_MIN_TIMEOUT_TIME"><B>DEFAULT_MIN_TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_NO_LOCAL"><B>DEFAULT_NO_LOCAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#DEFAULT_NSTOPKG_FILE"><B>DEFAULT_NSTOPKG_FILE</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field DEFAULT_NSTOPKG_FILE
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_NUM_RETRIES"><B>DEFAULT_NUM_RETRIES</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_NUM_SESSIONS"><B>DEFAULT_NUM_SESSIONS</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#DEFAULT_PASSWORD"><B>DEFAULT_PASSWORD</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_PRIORITY"><B>DEFAULT_PRIORITY</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#DEFAULT_RESIDENT_SIZE"><B>DEFAULT_RESIDENT_SIZE</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#DEFAULT_SOAP_VERSION"><B>DEFAULT_SOAP_VERSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_TIMEOUT_TIME"><B>DEFAULT_TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_TIME_TO_LIVE"><B>DEFAULT_TIME_TO_LIVE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#DEFAULT_TRANSPORT_NAME"><B>DEFAULT_TRANSPORT_NAME</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DEFAULT_UNSUBSCRIBE"><B>DEFAULT_UNSUBSCRIBE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#DEFAULT_USERNAME"><B>DEFAULT_USERNAME</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domains.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DELIVERY_MODE"><B>DELIVERY_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DELIVERY_MODE_DISCARDABLE"><B>DELIVERY_MODE_DISCARDABLE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DELIVERY_MODE_NONPERSISTENT"><B>DELIVERY_MODE_NONPERSISTENT</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DELIVERY_MODE_PERSISTENT"><B>DELIVERY_MODE_PERSISTENT</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#DEPLOY_OPT"><B>DEPLOY_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field DEPLOY_OPT
<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html#DESERIALIZE_CURRENT_ELEMENT"><B>DESERIALIZE_CURRENT_ELEMENT</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html#DESERIALIZE_CURRENT_ELEMENT"><B>DESERIALIZE_CURRENT_ELEMENT</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser">ElementDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DESTINATION"><B>DESTINATION</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#DOCUMENT"><B>DOCUMENT</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#DOCUMENT_STR"><B>DOCUMENT_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils"><B>DOM2Writer</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>.<DD>This class is a utility to serialize a DOM node as XML.<DT><A HREF="org/apache/axis/utils/DOM2Writer.html#DOM2Writer()"><B>DOM2Writer()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DOMAIN"><B>DOMAIN</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DOMAIN_DEFAULT"><B>DOMAIN_DEFAULT</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DOMAIN_QUEUE"><B>DOMAIN_QUEUE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#DOMAIN_TOPIC"><B>DOMAIN_TOPIC</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#DUPLICATES_ALLOWED"><B>DUPLICATES_ALLOWED</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Flag to say this option may be repeated on the command line
<DT><A HREF="org/apache/axis/holders/DataHandlerHolder.html" title="class in org.apache.axis.holders"><B>DataHandlerHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DataHandlerHolder.html" title="class in org.apache.axis.holders">DataHandlerHolder</A>.<DD>Class DataHandlerHolder<DT><A HREF="org/apache/axis/holders/DataHandlerHolder.html#DataHandlerHolder()"><B>DataHandlerHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DataHandlerHolder.html" title="class in org.apache.axis.holders">DataHandlerHolder</A>
<DD>Constructor MimeMultipartHolder
<DT><A HREF="org/apache/axis/holders/DataHandlerHolder.html#DataHandlerHolder(javax.activation.DataHandler)"><B>DataHandlerHolder(DataHandler)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DataHandlerHolder.html" title="class in org.apache.axis.holders">DataHandlerHolder</A>
<DD>Constructor MimeMultipartHolder
<DT><A HREF="org/apache/axis/encoding/ser/DateDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>DateDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateDeserializer.html" title="class in org.apache.axis.encoding.ser">DateDeserializer</A>.<DD>The DateSerializer deserializes a Date.<DT><A HREF="org/apache/axis/encoding/ser/DateDeserializer.html#DateDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>DateDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateDeserializer.html" title="class in org.apache.axis.encoding.ser">DateDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and 
 javaType
<DT><A HREF="org/apache/axis/encoding/ser/DateDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>DateDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">DateDeserializerFactory</A>.<DD>A DateDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/DateDeserializerFactory.html#DateDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>DateDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">DateDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/DateHolder.html" title="class in org.apache.axis.holders"><B>DateHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DateHolder.html" title="class in org.apache.axis.holders">DateHolder</A>.<DD>Class DateHolder<DT><A HREF="org/apache/axis/holders/DateHolder.html#DateHolder()"><B>DateHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DateHolder.html" title="class in org.apache.axis.holders">DateHolder</A>
<DD>Constructor DateHolder
<DT><A HREF="org/apache/axis/holders/DateHolder.html#DateHolder(java.util.Date)"><B>DateHolder(Date)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DateHolder.html" title="class in org.apache.axis.holders">DateHolder</A>
<DD>Constructor DateHolder
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser"><B>DateSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>.<DD>Serializer for Dates.<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html#DateSerializer()"><B>DateSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>DateSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializerFactory.html" title="class in org.apache.axis.encoding.ser">DateSerializerFactory</A>.<DD>SerializerFactory for Date primitives<DT><A HREF="org/apache/axis/encoding/ser/DateSerializerFactory.html#DateSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>DateSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializerFactory.html" title="class in org.apache.axis.encoding.ser">DateSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types"><B>Day</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>.<DD>Implementation of the XML Schema type gDay<DT><A HREF="org/apache/axis/types/Day.html#Day(int)"><B>Day(int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>Constructs a Day with the given values
 No timezone is specified
<DT><A HREF="org/apache/axis/types/Day.html#Day(int, java.lang.String)"><B>Day(int, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>Constructs a Day with the given values, including a timezone string
 The timezone is validated but not used.
<DT><A HREF="org/apache/axis/types/Day.html#Day(java.lang.String)"><B>Day(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>Construct a Day from a String in the format ---DD[timezone]
<DT><A HREF="org/apache/axis/holders/DayHolder.html" title="class in org.apache.axis.holders"><B>DayHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DayHolder.html" title="class in org.apache.axis.holders">DayHolder</A>.<DD>Class DayHolder<DT><A HREF="org/apache/axis/holders/DayHolder.html#DayHolder()"><B>DayHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DayHolder.html" title="class in org.apache.axis.holders">DayHolder</A>
<DD>Constructor DayHolder
<DT><A HREF="org/apache/axis/holders/DayHolder.html#DayHolder(org.apache.axis.types.Day)"><B>DayHolder(Day)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DayHolder.html" title="class in org.apache.axis.holders">DayHolder</A>
<DD>Constructor DayHolder
<DT><A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers"><B>DebugHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/DebugHandler.html#DebugHandler()"><B>DebugHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DefaultAuthenticator.html" title="class in org.apache.axis.utils"><B>DefaultAuthenticator</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultAuthenticator.html" title="class in org.apache.axis.utils">DefaultAuthenticator</A>.<DD>This class is used by WSDL2javaAntTask and WSDL2.<DT><A HREF="org/apache/axis/utils/DefaultAuthenticator.html#DefaultAuthenticator(java.lang.String, java.lang.String)"><B>DefaultAuthenticator(String, String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultAuthenticator.html" title="class in org.apache.axis.utils">DefaultAuthenticator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/DefaultAxisServerFactory.html" title="class in org.apache.axis.server"><B>DefaultAxisServerFactory</B></A> - class org.apache.axis.server.<A HREF="org/apache/axis/server/DefaultAxisServerFactory.html" title="class in org.apache.axis.server">DefaultAxisServerFactory</A>.<DD>Helper class for obtaining AxisServers.<DT><A HREF="org/apache/axis/server/DefaultAxisServerFactory.html#DefaultAxisServerFactory()"><B>DefaultAxisServerFactory()</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/DefaultAxisServerFactory.html" title="class in org.apache.axis.server">DefaultAxisServerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net"><B>DefaultCommonsHTTPClientProperties</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>.<DD>Default property set for the of the multi threaded connection pool
 used in the CommonsHTTPSender transport implementation.<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#DefaultCommonsHTTPClientProperties()"><B>DefaultCommonsHTTPClientProperties()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration"><B>DefaultEngineConfigurationFactory</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>.<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html#DefaultEngineConfigurationFactory(org.apache.axis.EngineConfigurationFactory)"><B>DefaultEngineConfigurationFactory(EngineConfigurationFactory)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html#DefaultEngineConfigurationFactory()"><B>DefaultEngineConfigurationFactory()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;Create the default engine configuration and detect whether the user
 has overridden this with their own.
<DT><A HREF="org/apache/axis/utils/DefaultEntityResolver.html" title="class in org.apache.axis.utils"><B>DefaultEntityResolver</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultEntityResolver.html" title="class in org.apache.axis.utils">DefaultEntityResolver</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/DefaultEntityResolver.html#DefaultEntityResolver()"><B>DefaultEntityResolver()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultEntityResolver.html" title="class in org.apache.axis.utils">DefaultEntityResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net"><B>DefaultHTTPSTransportClientProperties</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#DefaultHTTPSTransportClientProperties()"><B>DefaultHTTPSTransportClientProperties()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net"><B>DefaultHTTPTransportClientProperties</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#DefaultHTTPTransportClientProperties()"><B>DefaultHTTPTransportClientProperties()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html" title="class in org.apache.axis.encoding"><B>DefaultJAXRPC11TypeMappingImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultJAXRPC11TypeMappingImpl</A>.<DD>This is the implementation of the axis Default JAX-RPC SOAP Encoding TypeMapping
 See DefaultTypeMapping for more information.<DT><A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html#DefaultJAXRPC11TypeMappingImpl()"><B>DefaultJAXRPC11TypeMappingImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultJAXRPC11TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.html" title="class in org.apache.axis.encoding"><B>DefaultSOAP12TypeMappingImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAP12TypeMappingImpl</A>.<DD><B>Deprecated.</B>&nbsp;<I>Please use DefaultSOAPEncodingTypeMappingImpl.java</I><DT><A HREF="org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.html#DefaultSOAP12TypeMappingImpl()"><B>DefaultSOAP12TypeMappingImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAP12TypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAP12TypeMappingImpl</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html" title="class in org.apache.axis.encoding"><B>DefaultSOAPEncodingTypeMappingImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAPEncodingTypeMappingImpl</A>.<DD>This is the implementation of the axis Default JAX-RPC SOAP Encoding TypeMapping
 See DefaultTypeMapping for more information.<DT><A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html#DefaultSOAPEncodingTypeMappingImpl()"><B>DefaultSOAPEncodingTypeMappingImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAPEncodingTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net"><B>DefaultSocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>.<DD>Default socket factory.<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#DefaultSocketFactory(java.util.Hashtable)"><B>DefaultSocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Constructor is used only by subclasses.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding"><B>DefaultTypeMappingImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>.<DD>This is the implementation of the axis Default TypeMapping (which extends
 the JAX-RPC TypeMapping interface) for SOAP 1.1.<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#DefaultTypeMappingImpl()"><B>DefaultTypeMappingImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#DefaultTypeMappingImpl(boolean)"><B>DefaultTypeMappingImpl(boolean)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html" title="class in org.apache.axis.components.encoding"><B>DefaultXMLEncoder</B></A> - class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html" title="class in org.apache.axis.components.encoding">DefaultXMLEncoder</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html#DefaultXMLEncoder(java.lang.String)"><B>DefaultXMLEncoder(String)</B></A> - 
Constructor for class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html" title="class in org.apache.axis.components.encoding">DefaultXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable"><B>DefinedElement</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedElement</A>.<DD>This Type is for a QName that is an element, these types are only emitted if
 referenced by a ref= or an element=.<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html#DefinedElement(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>DefinedElement(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedElement</A>
<DD>Create an element type defined by a ref/type attribute
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html#DefinedElement(javax.xml.namespace.QName, org.w3c.dom.Node)"><B>DefinedElement(QName, Node)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedElement</A>
<DD>Create an element type defined directly.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable"><B>DefinedType</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>.<DD>This Type is for a QName that is a complex or simple type, these types are
 always emitted.<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html#DefinedType(javax.xml.namespace.QName, org.w3c.dom.Node)"><B>DefinedType(QName, Node)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>
<DD>Constructor DefinedType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html#DefinedType(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>DefinedType(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>
<DD>Constructor DefinedType
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx"><B>DeploymentAdministrator</B></A> - class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#DeploymentAdministrator()"><B>DeploymentAdministrator()</B></A> - 
Constructor for class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx"><B>DeploymentAdministratorMBean</B></A> - interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx"><B>DeploymentQuery</B></A> - class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#DeploymentQuery()"><B>DeploymentQuery()</B></A> - 
Constructor for class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx"><B>DeploymentQueryMBean</B></A> - interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>.<DD>&nbsp;<DT><A HREF="javax/xml/rpc/encoding/DeserializationContext.html" title="interface in javax.xml.rpc.encoding"><B>DeserializationContext</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/DeserializationContext.html" title="interface in javax.xml.rpc.encoding">DeserializationContext</A>.<DD>The javax.xml.rpc.encoding.DeserializationContext interface is implemented by the JAX-RPC runtime system in an XML
 processing mechanism specific manner.<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding"><B>DeserializationContext</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>.<DD>This interface describes the AXIS DeserializationContext, note that
 an AXIS compliant DeserializationContext must extend the org.xml.sax.helpers.DefaultHandler.<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#DeserializationContext(org.apache.axis.MessageContext, org.apache.axis.message.SOAPHandler)"><B>DeserializationContext(MessageContext, SOAPHandler)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Construct Deserializer using MessageContext and EnvelopeBuilder handler
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#DeserializationContext(org.xml.sax.InputSource, org.apache.axis.MessageContext, java.lang.String)"><B>DeserializationContext(InputSource, MessageContext, String)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Construct Deserializer
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#DeserializationContext(org.xml.sax.InputSource, org.apache.axis.MessageContext, java.lang.String, org.apache.axis.message.SOAPEnvelope)"><B>DeserializationContext(InputSource, MessageContext, String, SOAPEnvelope)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Construct Deserializer
<DT><A HREF="javax/xml/rpc/encoding/Deserializer.html" title="interface in javax.xml.rpc.encoding"><B>Deserializer</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/Deserializer.html" title="interface in javax.xml.rpc.encoding">Deserializer</A>.<DD>The javax.xml.rpc.encoding.Deserializer interface defines a
 base interface for deserializers.<DT><A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding"><B>Deserializer</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>.<DD>This interface describes the AXIS Deserializer.<DT><A HREF="javax/xml/rpc/encoding/DeserializerFactory.html" title="interface in javax.xml.rpc.encoding"><B>DeserializerFactory</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/DeserializerFactory.html" title="interface in javax.xml.rpc.encoding">DeserializerFactory</A>.<DD>The javax.xml.rpc.encoding.DeserializerFactory is a factory of
 deserializers.<DT><A HREF="org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding"><B>DeserializerFactory</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding">DeserializerFactory</A>.<DD>This interface describes the AXIS DeserializerFactory.<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding"><B>DeserializerImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>.<DD>The Deserializer base class.<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#DeserializerImpl()"><B>DeserializerImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding"><B>DeserializerTarget</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding">DeserializerTarget</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/DeserializerTarget.html#DeserializerTarget(org.apache.axis.encoding.Deserializer, java.lang.Object)"><B>DeserializerTarget(Deserializer, Object)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding">DeserializerTarget</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/Detail.html" title="interface in javax.xml.soap"><B>Detail</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/Detail.html" title="interface in javax.xml.soap">Detail</A>.<DD>A container for <code>DetailEntry</code> objects.<DT><A HREF="org/apache/axis/message/Detail.html" title="class in org.apache.axis.message"><B>Detail</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/Detail.html" title="class in org.apache.axis.message">Detail</A>.<DD>Detail Container implementation<DT><A HREF="org/apache/axis/message/Detail.html#Detail()"><B>Detail()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/Detail.html" title="class in org.apache.axis.message">Detail</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/DetailEntry.html" title="interface in javax.xml.soap"><B>DetailEntry</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/DetailEntry.html" title="interface in javax.xml.soap">DetailEntry</A>.<DD>The content for a <code>Detail</code> object, giving details for
 a <code>SOAPFault</code> object.<DT><A HREF="org/apache/axis/message/DetailEntry.html" title="class in org.apache.axis.message"><B>DetailEntry</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/DetailEntry.html" title="class in org.apache.axis.message">DetailEntry</A>.<DD>Detail Entry implementation<DT><A HREF="org/apache/axis/message/DetailEntry.html#DetailEntry(javax.xml.soap.Name)"><B>DetailEntry(Name)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/DetailEntry.html" title="class in org.apache.axis.message">DetailEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html" title="class in org.apache.axis.attachments"><B>DimeAttachmentStreams</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html" title="class in org.apache.axis.attachments">DimeAttachmentStreams</A>.<DD>This is the concrete implementation of the IncomingAttachmentStreams class
 and is used to parse data that is in the DIME format.<DT><A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html#DimeAttachmentStreams(org.apache.axis.attachments.DimeDelimitedInputStream)"><B>DimeAttachmentStreams(DimeDelimitedInputStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html" title="class in org.apache.axis.attachments">DimeAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments"><B>DimeBodyPart</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>.<DD>Holds one attachment DIME part.<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#DimeBodyPart()"><B>DimeBodyPart()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#DimeBodyPart(byte[], org.apache.axis.attachments.DimeTypeNameFormat, java.lang.String, java.lang.String)"><B>DimeBodyPart(byte[], DimeTypeNameFormat, String, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>Create a DIME Attachment Part.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#DimeBodyPart(javax.activation.DataHandler, org.apache.axis.attachments.DimeTypeNameFormat, java.lang.String, java.lang.String)"><B>DimeBodyPart(DataHandler, DimeTypeNameFormat, String, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>Create a DIME Attachment Part.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#DimeBodyPart(javax.activation.DataHandler, java.lang.String)"><B>DimeBodyPart(DataHandler, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>Create a DIME Attachment Part.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments"><B>DimeDelimitedInputStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>.<DD>This class takes the input stream and turns it multiple streams.<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments"><B>DimeMultiPart</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>.<DD>This class hold all parts of a DIME multipart message.<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html#DimeMultiPart()"><B>DimeMultiPart()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments"><B>DimeTypeNameFormat</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>.<DD>This class is a single part for DIME mulitpart message.<DT><A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration"><B>DirProvider</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/configuration/DirProvider.html#DirProvider(java.lang.String)"><B>DirProvider(String)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#DirProvider(java.lang.String, java.lang.String)"><B>DirProvider(String, String)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>DocumentDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializer</A>.<DD>Deserializer for DOM Document<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html#DocumentDeserializer()"><B>DocumentDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>DocumentDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializerFactory</A>.<DD>DeserializerFactory for DOM Document.<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializerFactory.html#DocumentDeserializerFactory()"><B>DocumentDeserializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser"><B>DocumentSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser">DocumentSerializer</A>.<DD>Serializer for DOM Document<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html#DocumentSerializer()"><B>DocumentSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser">DocumentSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>DocumentSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializerFactory.html" title="class in org.apache.axis.encoding.ser">DocumentSerializerFactory</A>.<DD>SerializerFactory for DOM Document<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializerFactory.html#DocumentSerializerFactory()"><B>DocumentSerializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializerFactory.html" title="class in org.apache.axis.encoding.ser">DocumentSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#DocumentToStream(org.w3c.dom.Document, java.io.OutputStream)"><B>DocumentToStream(Document, OutputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#DocumentToString(org.w3c.dom.Document)"><B>DocumentToString(Document)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>turn a whole DOM document into XML
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#DocumentToWriter(org.w3c.dom.Document, java.io.Writer)"><B>DocumentToWriter(Document, Writer)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/DoubleHolder.html" title="class in javax.xml.rpc.holders"><B>DoubleHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleHolder.html" title="class in javax.xml.rpc.holders">DoubleHolder</A>.<DD>Holder for <code>double</code>s.<DT><A HREF="javax/xml/rpc/holders/DoubleHolder.html#DoubleHolder()"><B>DoubleHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleHolder.html" title="class in javax.xml.rpc.holders">DoubleHolder</A>
<DD>Make a new <code>DoubleHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/DoubleHolder.html#DoubleHolder(double)"><B>DoubleHolder(double)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleHolder.html" title="class in javax.xml.rpc.holders">DoubleHolder</A>
<DD>Make a new <code>DoubleHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>DoubleWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html" title="class in javax.xml.rpc.holders">DoubleWrapperHolder</A>.<DD>Holder for <code>Double</code>s.<DT><A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html#DoubleWrapperHolder()"><B>DoubleWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html" title="class in javax.xml.rpc.holders">DoubleWrapperHolder</A>
<DD>Make a new <code>DoubleWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html#DoubleWrapperHolder(java.lang.Double)"><B>DoubleWrapperHolder(Double)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html" title="class in javax.xml.rpc.holders">DoubleWrapperHolder</A>
<DD>Make a new <code>DoubleWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html" title="class in org.apache.axis.wsdl.toJava"><B>DuplicateFileException</B></A> - exception org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html" title="class in org.apache.axis.wsdl.toJava">DuplicateFileException</A>.<DD>Class DuplicateFileException<DT><A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html#DuplicateFileException(java.lang.String, java.lang.String)"><B>DuplicateFileException(String, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html" title="class in org.apache.axis.wsdl.toJava">DuplicateFileException</A>
<DD>Constructor DuplicateFileException
<DT><A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types"><B>Duration</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>.<DD>Implementation of the XML Schema type duration.<DT><A HREF="org/apache/axis/types/Duration.html#Duration()"><B>Duration()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Default no-arg constructor
<DT><A HREF="org/apache/axis/types/Duration.html#Duration(boolean, int, int, int, int, int, double)"><B>Duration(boolean, int, int, int, int, int, double)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#Duration(java.lang.String)"><B>Duration(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Constructs Duration from a String in an xsd:duration format -
 PnYnMnDTnHnMnS.
<DT><A HREF="org/apache/axis/types/Duration.html#Duration(boolean, java.util.Calendar)"><B>Duration(boolean, Calendar)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Constructs Duration from a Calendar.
<DT><A HREF="org/apache/axis/holders/DurationHolder.html" title="class in org.apache.axis.holders"><B>DurationHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DurationHolder.html" title="class in org.apache.axis.holders">DurationHolder</A>.<DD>Class DurationHolder<DT><A HREF="org/apache/axis/holders/DurationHolder.html#DurationHolder()"><B>DurationHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DurationHolder.html" title="class in org.apache.axis.holders">DurationHolder</A>
<DD>Constructor DurationHolder
<DT><A HREF="org/apache/axis/holders/DurationHolder.html#DurationHolder(org.apache.axis.types.Duration)"><B>DurationHolder(Duration)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DurationHolder.html" title="class in org.apache.axis.holders">DurationHolder</A>
<DD>Constructor DurationHolder
<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments"><B>DynamicContentDataHandler</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>.<DD>To be used with writing out DIME Attachments.<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html#DynamicContentDataHandler(javax.activation.DataSource)"><B>DynamicContentDataHandler(DataSource)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html#DynamicContentDataHandler(java.lang.Object, java.lang.String)"><B>DynamicContentDataHandler(Object, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html#DynamicContentDataHandler(java.net.URL)"><B>DynamicContentDataHandler(URL)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#data"><B>data</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#debug"><B>debug</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field debug
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#debug(boolean)"><B>debug(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setDebug(value)</I>
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#debugEnabled"><B>debugEnabled</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field debugEnabled
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#decLockCounter()"><B>decLockCounter()</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>thread safe lock counter decrement
<DT><A HREF="org/apache/axis/encoding/Base64.html#decode(char[], int, int)"><B>decode(char[], int, int)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Base64.html#decode(java.lang.String)"><B>decode(String)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Base64.html#decode(char[], int, int, java.io.OutputStream)"><B>decode(char[], int, int, OutputStream)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Base64.html#decode(java.lang.String, java.io.OutputStream)"><B>decode(String, OutputStream)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#decode(java.lang.String)"><B>decode(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>Convert a String of hexadecimal digits into the corresponding
 byte array by encoding each two hexadecimal digits as a byte.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html#decrement()"><B>decrement()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#defaultType"><B>defaultType</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#definition"><B>definition</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#definition"><B>definition</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Field definition
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#definition"><B>definition</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Field definition
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#definition"><B>definition</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Field definition
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistry.html#delegate(org.apache.axis.encoding.TypeMappingRegistry)"><B>delegate(TypeMappingRegistry)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding">TypeMappingRegistry</A>
<DD>delegate

 Changes the contained type mappings to delegate to 
 their corresponding types in the secondary TMR.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#delegate(org.apache.axis.encoding.TypeMappingRegistry)"><B>delegate(TypeMappingRegistry)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>delegate

 Changes the contained type mappings to delegate to 
 their corresponding types in the secondary TMR.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#delegate"><B>delegate</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#delete()"><B>delete()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#deleteData(int, int)"><B>deleteData(int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html#deleteTemporaryDestination(javax.jms.Destination)"><B>deleteTemporaryDestination(Destination)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection.SendSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#deleted"><B>deleted</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Flag to show if the resources behind this have been deleted.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#deploy(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deploy(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>do a deploy and/or undeploy, depending on what is in the document.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#deployHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>deployHandler(WSDDHandler)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Put a WSDDHandler into this deployment, replacing any other
 WSDDHandler which might already be present with the same QName.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#deployHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>deployHandler(WSDDHandler)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#deployHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>deployHandler(WSDDHandler)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#deployHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>deployHandler(WSDDHandler)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#deployService(javax.xml.namespace.QName, org.apache.axis.handlers.soap.SOAPService)"><B>deployService(QName, SOAPService)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#deployService(java.lang.String, org.apache.axis.handlers.soap.SOAPService)"><B>deployService(String, SOAPService)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#deployService(org.apache.axis.deployment.wsdd.WSDDService)"><B>deployService(WSDDService)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Put a WSDDService into this deployment, replacing any other
 WSDDService which might already be present with the same QName.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#deployService(org.apache.axis.deployment.wsdd.WSDDService)"><B>deployService(WSDDService)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#deployService(org.apache.axis.management.jmx.WSDDServiceWrapper)"><B>deployService(WSDDServiceWrapper)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#deployService(org.apache.axis.management.jmx.WSDDServiceWrapper)"><B>deployService(WSDDServiceWrapper)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#deploySkeleton(boolean)"><B>deploySkeleton(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setSkeletonWanted(value)</I>
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html#deployToRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>deployToRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#deployTransport(javax.xml.namespace.QName, org.apache.axis.Handler)"><B>deployTransport(QName, Handler)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#deployTransport(java.lang.String, org.apache.axis.Handler)"><B>deployTransport(String, Handler)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#deployTransport(org.apache.axis.deployment.wsdd.WSDDTransport)"><B>deployTransport(WSDDTransport)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Put a WSDDTransport into this deployment, replacing any other
 WSDDTransport which might already be present with the same QName.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#deployTransport(org.apache.axis.deployment.wsdd.WSDDTransport)"><B>deployTransport(WSDDTransport)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#deployTransport(org.apache.axis.management.jmx.WSDDTransportWrapper)"><B>deployTransport(WSDDTransportWrapper)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#deployTransport(org.apache.axis.management.jmx.WSDDTransportWrapper)"><B>deployTransport(WSDDTransportWrapper)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#deployTypeMapping(org.apache.axis.deployment.wsdd.WSDDTypeMapping)"><B>deployTypeMapping(WSDDTypeMapping)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#deployTypeMapping(org.apache.axis.deployment.wsdd.WSDDTypeMapping)"><B>deployTypeMapping(WSDDTypeMapping)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.html#deployTypeMapping(org.apache.axis.deployment.wsdd.WSDDTypeMapping)"><B>deployTypeMapping(WSDDTypeMapping)</B></A> - 
Method in interface org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.html" title="interface in org.apache.axis.deployment.wsdd">WSDDTypeMappingContainer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#deployTypeMapping(org.apache.axis.deployment.wsdd.WSDDTypeMapping)"><B>deployTypeMapping(WSDDTypeMapping)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html#deregisterClass(java.lang.String)"><B>deregisterClass(String)</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>
<DD>Remove an entry from the cache.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#derivedTypes"><B>derivedTypes</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLUtil.html#describeOptions(org.apache.axis.utils.CLOptionDescriptor[])"><B>describeOptions(CLOptionDescriptor[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLUtil.html" title="class in org.apache.axis.utils">CLUtil</A>
<DD>Format options into StringBuffer and return.
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#deserClass"><B>deserClass</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#deserClassConstructor"><B>deserClassConstructor</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html#deserialize()"><B>deserialize()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#deserializer"><B>deserializer</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#deserializing(boolean)"><B>deserializing(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#destDir"><B>destDir</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The name of the directory to contain the resulting object program file
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#destroy()"><B>destroy()</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>The <code>destroy</code> method indicates the end of lifecycle
 for a Handler instance.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#destroy()"><B>destroy()</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>The <code>destroy</code> method indicates the end of lifecycle
 for a Handler instance.
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#destroy()"><B>destroy()</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>Indicates the end of lifecycle for a HandlerChain.
<DT><A HREF="javax/xml/rpc/server/ServiceLifecycle.html#destroy()"><B>destroy()</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServiceLifecycle.html" title="interface in javax.xml.rpc.server">ServiceLifecycle</A>
<DD>JAX-RPC runtime system ends the lifecycle of a service endpoint instance by
 invoking the destroy method.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#destroy()"><B>destroy()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html#destroy()"><B>destroy()</B></A> - 
Method in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>
<DD>Servlet termination
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#destroy()"><B>destroy()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>Destroy method is called when the servlet is going away.
<DT><A HREF="org/apache/axis/message/MessageElement.html#detachAllChildren()"><B>detachAllChildren()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove all children.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#detachAttachmentFile()"><B>detachAttachmentFile()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Detach the attachment file from this class, so it is not cleaned up.
<DT><A HREF="javax/xml/soap/Node.html#detachNode()"><B>detachNode()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>Removes this <code>Node</code> object from the tree.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#detachNode()"><B>detachNode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Removes this <code>Node</code> object from the tree.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#detail"><B>detail</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#determineIfHoldersNeeded(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>determineIfHoldersNeeded(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Find all inout/out parameters and add a flag to the Type of that parameter saying a holder
 is needed.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#determineInterfaceNames(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>determineInterfaceNames(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method determineInterfaceNames
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#dimeDelimitedStream"><B>dimeDelimitedStream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#dims"><B>dims</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field dims
<DT><A HREF="org/apache/axis/message/SOAPBody.html#disableFormatting()"><B>disableFormatting()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#disableTransport(java.lang.String)"><B>disableTransport(String)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Disable access to this service from a particular transport
<DT><A HREF="org/apache/axis/utils/ByteArray.html#discardBackingStore()"><B>discardBackingStore()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method discardBackingStore
<DT><A HREF="org/apache/axis/utils/ByteArray.html#discardBuffer()"><B>discardBuffer()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method discardBuffer
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#diskCacheFile"><B>diskCacheFile</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field diskCacheFile
<DT><A HREF="org/apache/axis/Message.html#dispose()"><B>dispose()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Dispose of attachments.
<DT><A HREF="org/apache/axis/MessageContext.html#dispose()"><B>dispose()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>if a message (or subclass) has any disposal needs, this method
 is where it goes.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#dispose()"><B>dispose()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>when an attachment part is disposed, any associated files
 are deleted, and the datahandler itself nulled.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#dispose()"><B>dispose()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>dispose of the attachments and their files; do not use the object
 after making this call.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#dispose()"><B>dispose()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>dispose of the attachments and their files; do not use the object
 after making this call.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#doAutoTypes"><B>doAutoTypes</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#doClient(org.apache.axis.MessageContext)"><B>doClient(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>Client side of processing.
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)"><B>doGet(HttpServletRequest, HttpServletResponse)</B></A> - 
Method in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>
<DD>HTTP GET request
<DT><A HREF="org/apache/axis/transport/http/AdminServlet.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)"><B>doGet(HttpServletRequest, HttpServletResponse)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AdminServlet.html" title="class in org.apache.axis.transport.http">AdminServlet</A>
<DD>handle a GET request.
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)"><B>doGet(HttpServletRequest, HttpServletResponse)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Process GET requests.
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)"><B>doPost(HttpServletRequest, HttpServletResponse)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Process a POST to the servlet by handing it off to the Axis Engine.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#doRegisterFromVersion(java.lang.String)"><B>doRegisterFromVersion(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Set up the default type mapping (and the SOAP encoding type mappings)
 as per the passed "version" option.
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#doServer(org.apache.axis.MessageContext)"><B>doServer(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>Server side of processing.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#document"><B>document</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#doesExist(java.lang.String)"><B>doesExist(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Check if the className exists.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#dotnet_soapenc_bugfix"><B>dotnet_soapenc_bugfix</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Work around a .NET bug with soap encoded types.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#doubleValue()"><B>doubleValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#doubleValue()"><B>doubleValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#dtnf"><B>dtnf</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#dump()"><B>dump()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Dump the fault info to the log at debug level.
<DT><A HREF="org/apache/axis/utils/NSStack.html#dump(java.lang.String)"><B>dump(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Produce a trace dump of the entire stack, starting from the top and
 including frame markers.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#dump(java.io.PrintStream)"><B>dump(PrintStream)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Dump the contents of the symbol table.
<DT><A HREF="org/apache/axis/AxisFault.html#dumpToString()"><B>dumpToString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>turn the fault and details into a string, with XML escaping.
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java"><B>EJBProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>.<DD>A basic EJB Provider<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#EJBProvider()"><B>EJBProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_BODY"><B>ELEM_BODY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_ENVELOPE"><B>ELEM_ENVELOPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT"><B>ELEM_FAULT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_ACTOR"><B>ELEM_FAULT_ACTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_CODE"><B>ELEM_FAULT_CODE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_CODE_SOAP12"><B>ELEM_FAULT_CODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_DETAIL"><B>ELEM_FAULT_DETAIL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_DETAIL_SOAP12"><B>ELEM_FAULT_DETAIL_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_NODE_SOAP12"><B>ELEM_FAULT_NODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_REASON_SOAP12"><B>ELEM_FAULT_REASON_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_ROLE_SOAP12"><B>ELEM_FAULT_ROLE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_STRING"><B>ELEM_FAULT_STRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_SUBCODE_SOAP12"><B>ELEM_FAULT_SUBCODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_FAULT_VALUE_SOAP12"><B>ELEM_FAULT_VALUE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_HEADER"><B>ELEM_HEADER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_NOTUNDERSTOOD"><B>ELEM_NOTUNDERSTOOD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_SUPPORTEDENVELOPE"><B>ELEM_SUPPORTEDENVELOPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_TEXT_SOAP12"><B>ELEM_TEXT_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_UPGRADE"><B>ELEM_UPGRADE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_ARRAYMAPPING"><B>ELEM_WSDD_ARRAYMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_BEANMAPPING"><B>ELEM_WSDD_BEANMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_CHAIN"><B>ELEM_WSDD_CHAIN</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_DEPLOY"><B>ELEM_WSDD_DEPLOY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_DOC"><B>ELEM_WSDD_DOC</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_ELEMENTMAPPING"><B>ELEM_WSDD_ELEMENTMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_ENDPOINTURL"><B>ELEM_WSDD_ENDPOINTURL</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_FAULT"><B>ELEM_WSDD_FAULT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_FAULTFLOW"><B>ELEM_WSDD_FAULTFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_GLOBAL"><B>ELEM_WSDD_GLOBAL</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_HANDLER"><B>ELEM_WSDD_HANDLER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_JAXRPC_CHAIN"><B>ELEM_WSDD_JAXRPC_CHAIN</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_JAXRPC_HANDLERINFO"><B>ELEM_WSDD_JAXRPC_HANDLERINFO</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_JAXRPC_HEADER"><B>ELEM_WSDD_JAXRPC_HEADER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_JAXRPC_ROLE"><B>ELEM_WSDD_JAXRPC_ROLE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_NAMESPACE"><B>ELEM_WSDD_NAMESPACE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_OPERATION"><B>ELEM_WSDD_OPERATION</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_PARAM"><B>ELEM_WSDD_PARAM</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_REQFLOW"><B>ELEM_WSDD_REQFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_RESPFLOW"><B>ELEM_WSDD_RESPFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_ROLE"><B>ELEM_WSDD_ROLE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_SERVICE"><B>ELEM_WSDD_SERVICE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_TRANSPORT"><B>ELEM_WSDD_TRANSPORT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_TYPEMAPPING"><B>ELEM_WSDD_TYPEMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_UNDEPLOY"><B>ELEM_WSDD_UNDEPLOY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#ELEM_WSDD_WSDLFILE"><B>ELEM_WSDD_WSDLFILE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#ELEM_XOP_INCLUDE"><B>ELEM_XOP_INCLUDE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/StringUtils.html#EMPTY_STRING_ARRAY"><B>EMPTY_STRING_ARRAY</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>An empty immutable <code>String</code> array.
<DT><A HREF="org/apache/axis/constants/Use.html#ENCODED"><B>ENCODED</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#ENCODED_STR"><B>ENCODED_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#ENCODINGSTYLE_URI_PROPERTY"><B>ENCODINGSTYLE_URI_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property for encoding Style:  Encoding style specified
 as a namespace URI.
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#ENCODING_UTF_16"><B>ENCODING_UTF_16</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#ENCODING_UTF_8"><B>ENCODING_UTF_8</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Stub.html#ENDPOINT_ADDRESS_PROPERTY"><B>ENDPOINT_ADDRESS_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Standard property: Target service endpoint address.
<DT><A HREF="org/apache/axis/MessageContext.html#ENGINE_HANDLER"><B>ENGINE_HANDLER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Contains an instance of Handler, which is the
  ServiceContext and the entrypoint of this service.
<DT><A HREF="org/apache/axis/Constants.html#ENTERPRISE_LOG_CATEGORY"><B>ENTERPRISE_LOG_CATEGORY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#ENV_ATTACHMENT_DIR"><B>ENV_ATTACHMENT_DIR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#ENV_SERVLET_CONTEXT"><B>ENV_SERVLET_CONTEXT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#ENV_SERVLET_REALPATH"><B>ENV_SERVLET_REALPATH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#ERROR_BAD_CHARACTER_IN_HEX_STRING"><B>ERROR_BAD_CHARACTER_IN_HEX_STRING</B></A> - 
Static variable in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#ERROR_ODD_NUMBER_OF_DIGITS"><B>ERROR_ODD_NUMBER_OF_DIGITS</B></A> - 
Static variable in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/Status.html#EXCEPTION"><B>EXCEPTION</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field EXCEPTION
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#EXCEPTION_CLASS_NAME"><B>EXCEPTION_CLASS_NAME</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Field EXCEPTION_CLASS_NAME
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#EXCEPTION_DATA_TYPE"><B>EXCEPTION_DATA_TYPE</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Field EXCEPTION_DATA_TYPE
<DT><A HREF="org/apache/axis/Constants.html#EXCEPTION_LOG_CATEGORY"><B>EXCEPTION_LOG_CATEGORY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Servlet exceptions.
<DT><A HREF="org/apache/axis/client/async/Status.html#EXCEPTION_STR"><B>EXCEPTION_STR</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field EXCEPTION_STR
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#EXTRA_CLASSES_OPT"><B>EXTRA_CLASSES_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field EXTRA_CLASSES_OPT
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers"><B>EchoHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#EchoHandler()"><B>EchoHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Element.html" title="class in org.apache.axis.wsdl.symbolTable"><B>Element</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Element.html" title="class in org.apache.axis.wsdl.symbolTable">Element</A>.<DD>This class represents a TypeEntry that is a type (complexType, simpleType, etc.<DT><A HREF="org/apache/axis/wsdl/symbolTable/Element.html#Element(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>Element(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Element.html" title="class in org.apache.axis.wsdl.symbolTable">Element</A>
<DD>Create an Element object for an xml construct that references a type that has
 not been defined yet.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Element.html#Element(javax.xml.namespace.QName, org.w3c.dom.Node)"><B>Element(QName, Node)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Element.html" title="class in org.apache.axis.wsdl.symbolTable">Element</A>
<DD>Create a Element object for an xml construct that is not a base java type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable"><B>ElementDecl</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>.<DD>Simple utility struct for holding element declarations.<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#ElementDecl(org.apache.axis.wsdl.symbolTable.TypeEntry, javax.xml.namespace.QName)"><B>ElementDecl(TypeEntry, QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Constructor ElementDecl
<DT><A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description"><B>ElementDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>.<DD>An AttributeDesc is a FieldDesc for an Java field mapping to an
 XML element<DT><A HREF="org/apache/axis/description/ElementDesc.html#ElementDesc()"><B>ElementDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>ElementDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser">ElementDeserializer</A>.<DD>Deserializer for DOM elements<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html#ElementDeserializer()"><B>ElementDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser">ElementDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>ElementDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ElementDeserializerFactory</A>.<DD>DeserializerFactory for Element.<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializerFactory.html#ElementDeserializerFactory()"><B>ElementDeserializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ElementDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser"><B>ElementSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser">ElementSerializer</A>.<DD>Serializer for DOM elements<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializer.html#ElementSerializer()"><B>ElementSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser">ElementSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>ElementSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializerFactory.html" title="class in org.apache.axis.encoding.ser">ElementSerializerFactory</A>.<DD>SerializerFactory for Element<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializerFactory.html#ElementSerializerFactory()"><B>ElementSerializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializerFactory.html" title="class in org.apache.axis.encoding.ser">ElementSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#ElementToStream(org.w3c.dom.Element, java.io.OutputStream)"><B>ElementToStream(Element, OutputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#ElementToString(org.w3c.dom.Element)"><B>ElementToString(Element)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>turn an element into an XML fragment
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#ElementToWriter(org.w3c.dom.Element, java.io.Writer)"><B>ElementToWriter(Element, Writer)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava"><B>Emitter</B></A> - class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>.<DD>This class emits WSDL from Java classes.<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#Emitter()"><B>Emitter()</B></A> - 
Constructor for class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Construct Emitter.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava"><B>Emitter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>.<DD>This class produces java files for stubs, skeletons, and types from a
 WSDL document.<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#Emitter()"><B>Emitter()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Default constructor.
<DT><A HREF="javax/xml/messaging/Endpoint.html" title="class in javax.xml.messaging"><B>Endpoint</B></A> - class javax.xml.messaging.<A HREF="javax/xml/messaging/Endpoint.html" title="class in javax.xml.messaging">Endpoint</A>.<DD>An opaque representation of an application endpoint.<DT><A HREF="javax/xml/messaging/Endpoint.html#Endpoint(java.lang.String)"><B>Endpoint(String)</B></A> - 
Constructor for class javax.xml.messaging.<A HREF="javax/xml/messaging/Endpoint.html" title="class in javax.xml.messaging">Endpoint</A>
<DD>Constructs an <code>Endpoint</code> object using the given string identifier.
<DT><A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis"><B>EngineConfiguration</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>.<DD>EngineConfiguration is an interface that the Message Flow subsystem
 provides so that engine configuration can be provided in a pluggable
 way.<DT><A HREF="org/apache/axis/EngineConfigurationFactory.html" title="interface in org.apache.axis"><B>EngineConfigurationFactory</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/EngineConfigurationFactory.html" title="interface in org.apache.axis">EngineConfigurationFactory</A>.<DD>EngineConfigurationFactory is an interface used to construct
 concrete EngineConfiguration instances.<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration"><B>EngineConfigurationFactoryDefault</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>.<DD>This is a default implementation of EngineConfigurationFactory.<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#EngineConfigurationFactoryDefault()"><B>EngineConfigurationFactoryDefault()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>Create the default engine configuration and detect whether the user
 has overridden this with their own.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html" title="class in org.apache.axis.configuration"><B>EngineConfigurationFactoryFinder</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryFinder</A>.<DD>This is a default implementation of EngineConfigurationFactory.<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration"><B>EngineConfigurationFactoryServlet</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryServlet</A>.<DD>This is a default implementation of ServletEngineConfigurationFactory.<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html#EngineConfigurationFactoryServlet(javax.servlet.ServletConfig)"><B>EngineConfigurationFactoryServlet(ServletConfig)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryServlet</A>
<DD>Create the default engine configuration and detect whether the user
 has overridden this with their own.
<DT><A HREF="org/apache/axis/types/Entities.html" title="class in org.apache.axis.types"><B>Entities</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Entities.html" title="class in org.apache.axis.types">Entities</A>.<DD>Custom class for supporting XSD data type Entities<DT><A HREF="org/apache/axis/types/Entities.html#Entities()"><B>Entities()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Entities.html" title="class in org.apache.axis.types">Entities</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Entities.html#Entities(java.lang.String)"><B>Entities(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Entities.html" title="class in org.apache.axis.types">Entities</A>
<DD>ctor for Entities
<DT><A HREF="org/apache/axis/types/Entity.html" title="class in org.apache.axis.types"><B>Entity</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Entity.html" title="class in org.apache.axis.types">Entity</A>.<DD>Custom class for supporting XSD data type Entity<DT><A HREF="org/apache/axis/types/Entity.html#Entity()"><B>Entity()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Entity.html" title="class in org.apache.axis.types">Entity</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Entity.html#Entity(java.lang.String)"><B>Entity(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Entity.html" title="class in org.apache.axis.types">Entity</A>
<DD>ctor for Entity
<DT><A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants"><B>Enum</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>.<DD>General support for 'enumerated' data types.<DT><A HREF="org/apache/axis/constants/Enum.html#Enum(org.apache.axis.constants.Enum.Type, int, java.lang.String)"><B>Enum(Enum.Type, int, String)</B></A> - 
Constructor for class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants"><B>Enum.Type</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/constants/Enum.Type.html#Enum.Type(java.lang.String, org.apache.axis.constants.Enum[])"><B>Enum.Type(String, Enum[])</B></A> - 
Constructor for class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>EnumDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html" title="class in org.apache.axis.encoding.ser">EnumDeserializer</A>.<DD>Deserializer for a JAX-RPC enum.<DT><A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html#EnumDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>EnumDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html" title="class in org.apache.axis.encoding.ser">EnumDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>EnumDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">EnumDeserializerFactory</A>.<DD>DeserializerFactory for Enumeration.<DT><A HREF="org/apache/axis/encoding/ser/EnumDeserializerFactory.html#EnumDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>EnumDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">EnumDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser"><B>EnumSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>.<DD>Serializer for a JAX-RPC enum.<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html#EnumSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>EnumSerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>EnumSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializerFactory.html" title="class in org.apache.axis.encoding.ser">EnumSerializerFactory</A>.<DD>SerializerFactory for Enum<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializerFactory.html#EnumSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>EnumSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializerFactory.html" title="class in org.apache.axis.encoding.ser">EnumSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message"><B>EnvelopeBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>.<DD>The EnvelopeBuilder is responsible for parsing the top-level
 SOAP envelope stuff (Envelope, Body, Header), and spawning off
 HeaderBuilder and BodyBuilders.<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#EnvelopeBuilder(java.lang.String, org.apache.axis.soap.SOAPConstants)"><B>EnvelopeBuilder(String, SOAPConstants)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#EnvelopeBuilder(org.apache.axis.message.SOAPEnvelope, java.lang.String)"><B>EnvelopeBuilder(SOAPEnvelope, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeHandler.html" title="class in org.apache.axis.message"><B>EnvelopeHandler</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeHandler.html" title="class in org.apache.axis.message">EnvelopeHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/EnvelopeHandler.html#EnvelopeHandler(org.apache.axis.message.SOAPHandler)"><B>EnvelopeHandler(SOAPHandler)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeHandler.html" title="class in org.apache.axis.message">EnvelopeHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/ErrorHandler.html" title="class in org.apache.axis.handlers"><B>ErrorHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/ErrorHandler.html" title="class in org.apache.axis.handlers">ErrorHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/ErrorHandler.html#ErrorHandler()"><B>ErrorHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/ErrorHandler.html" title="class in org.apache.axis.handlers">ErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#element"><B>element</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#elementMetaData"><B>elementMetaData</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field elementMetaData
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#elements"><B>elements</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field elements
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#emit(java.lang.String, java.lang.String)"><B>emit(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Generates WSDL documents for a given <code>Class</code>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#emit(java.lang.String)"><B>emit(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Generates a complete WSDL document for a given <code>Class</code>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#emit(int)"><B>emit(int)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Generates a WSDL document for a given <code>Class</code>.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#emit(java.lang.String, int)"><B>emit(String, int)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Generates a WSDL document for a given <code>Class</code>.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#emit(java.lang.String)"><B>emit(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Call run(uri) instead.</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#emit(java.lang.String, org.w3c.dom.Document)"><B>emit(String, Document)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Call run(context, doc) instead.</I>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#emitToString(int)"><B>emitToString(int)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Generates a String containing the WSDL for a given <code>Class</code>.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#emitter"><B>emitter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Field emitter
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#empty_class_array"><B>empty_class_array</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#empty_object_array"><B>empty_object_array</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#enableBackingStore"><B>enableBackingStore</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableDefaultConstructor"><B>enableDefaultConstructor</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableDefaultConstructor
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableEquals"><B>enableEquals</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableEquals
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableFullConstructor"><B>enableFullConstructor</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableFullConstructor
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableGetters"><B>enableGetters</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableGetters
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableHashCode"><B>enableHashCode</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableHashCode
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableMemberFields"><B>enableMemberFields</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableMemberFields
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#enableParserReuse"><B>enableParserReuse</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableSetters"><B>enableSetters</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableSetters
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableSimpleConstructors"><B>enableSimpleConstructors</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableSimpleConstructors
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enableToString"><B>enableToString</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enableToString
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#enableTransport(java.lang.String)"><B>enableTransport(String)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Make this service available on a particular transport
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#encode(java.lang.String)"><B>encode(String)</B></A> - 
Method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>Encode a string
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoder.html#encode(java.lang.String)"><B>encode(String)</B></A> - 
Method in interface org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>
<DD>encode a given string
<DT><A HREF="org/apache/axis/encoding/Base64.html#encode(byte[])"><B>encode(byte[])</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>Returns base64 representation of specified byte array.
<DT><A HREF="org/apache/axis/encoding/Base64.html#encode(byte[], int, int)"><B>encode(byte[], int, int)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>Returns base64 representation of specified byte array.
<DT><A HREF="org/apache/axis/encoding/Base64.html#encode(byte[], int, int, java.io.OutputStream)"><B>encode(byte[], int, int, OutputStream)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>Outputs base64 representation of the specified byte array to a byte stream.
<DT><A HREF="org/apache/axis/encoding/Base64.html#encode(byte[], int, int, java.io.Writer)"><B>encode(byte[], int, int, Writer)</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Base64.html" title="class in org.apache.axis.encoding">Base64</A>
<DD>Outputs base64 representation of the specified byte array to a character stream.
<DT><A HREF="org/apache/axis/types/HexBinary.html#encode(byte[])"><B>encode(byte[])</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>Convert a byte array into a printable format containing a
 String of hexadecimal digit characters (two per byte).
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#encoding"><B>encoding</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The encoding of the source program or <code>null</code> to use the
 platform's default encoding
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#encodingStyle"><B>encodingStyle</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#encodingStyle"><B>encodingStyle</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Our encoding style, if any
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endCDATA()"><B>endCDATA()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endCDATA()"><B>endCDATA()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endCDATA()"><B>endCDATA()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endDTD()"><B>endDTD()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endDTD()"><B>endDTD()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endDTD()"><B>endDTD()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endDocument()"><B>endDocument()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>endDocument is invoked at the end of the document.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endDocument()"><B>endDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endDocument()"><B>endDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html#endElement()"><B>endElement()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding">AttributeSerializationContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>endElement is called at the end tag of an element
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>endElement is called when the end element tag is reached.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>endElement is called when the end element tag is reached.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#endElement()"><B>endElement()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Writes the end element tag for the open element.
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#endElement()"><B>endElement()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>delegates to the serialization context
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHandler.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endElement(java.lang.String, java.lang.String, java.lang.String)"><B>endElement(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>Final call back where we can populate the exception with data.
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#endElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>endElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endEntity(java.lang.String)"><B>endEntity(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endEntity(java.lang.String)"><B>endEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endEntity(java.lang.String)"><B>endEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#endEventIndex"><B>endEventIndex</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#endPrefixMapping(java.lang.String)"><B>endPrefixMapping(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#endPrefixMapping(java.lang.String)"><B>endPrefixMapping(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#endPrefixMapping(java.lang.String)"><B>endPrefixMapping(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#ensureOperationMessageValid(javax.wsdl.Message)"><B>ensureOperationMessageValid(Message)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>ensures that a message in a <code>&lt;input&gt;</code>, <code>&lt;output&gt;</code>,
 or <code>&lt;fault&gt;</fault> element in an <code>&lt;operation&gt;</code>
 element is valid.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#ensureOperationValid(javax.wsdl.Operation)"><B>ensureOperationValid(Operation)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>ensures that an an element <code>&lt;operation&gt;</code> within
 an element <code>&lt;portType&gt;<code> is valid.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#ensureOperationsOfPortTypeValid(javax.wsdl.PortType)"><B>ensureOperationsOfPortTypeValid(PortType)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>ensures that an an element <code>&lt;portType&gt;</code>
 is valid.
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#ensureSession()"><B>ensureSession()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/FaultableHandler.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>The <code>Log</code> used for enterprise-centric logging.
<DT><A HREF="org/apache/axis/client/Call.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#entLog"><B>entLog</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#entrySet()"><B>entrySet()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.entrySet()</CODE>.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#enumerationTypes"><B>enumerationTypes</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field enumerationTypes
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#eos"><B>eos</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#eos"><B>eos</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field eos
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#eos()"><B>eos()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/namespace/QName.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Tests this QName for equality with another object.
<DT><A HREF="org/apache/axis/Constants.html#equals(javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>equals(QName, QName)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>equals
 The first QName is the current version of the name.
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.equals(Object)</CODE>.
<DT><A HREF="org/apache/axis/constants/Enum.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.html#equals(org.apache.axis.constants.Enum)"><B>equals(Enum)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>equality test.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/Subscription.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Subscription.html" title="class in org.apache.axis.transport.jms">Subscription</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>The equals method compares the time represented by duration object, not
 its string representation.
<DT><A HREF="org/apache/axis/types/HexBinary.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRefs.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>IDREFs can be equal without having identical ordering because
 they represent a set of references.
<DT><A HREF="org/apache/axis/types/Month.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NMTokens.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>NMTokens can be equal without having identical ordering because
 they represent a set of references.
<DT><A HREF="org/apache/axis/types/NormalizedString.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Notation.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Time.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Determines if the passed-in Object is equivalent to this URI.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/IDKey.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IDKey.html" title="class in org.apache.axis.utils">IDKey</A>
<DD>checks if instances are equal
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#equals(java.lang.Object)"><B>equals(Object)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html#error(org.xml.sax.SAXParseException)"><B>error(SAXParseException)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#errors"><B>errors</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The input stream to output compilation errors
<DT><A HREF="org/apache/axis/utils/StringUtils.html#escapeNumericChar(java.lang.String)"><B>escapeNumericChar(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>write the escaped version of a given string
<DT><A HREF="org/apache/axis/utils/StringUtils.html#escapeNumericChar(java.io.Writer, java.lang.String)"><B>escapeNumericChar(Writer, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>write the escaped version of a given string
<DT><A HREF="javax/xml/soap/SOAPHeader.html#examineAllHeaderElements()"><B>examineAllHeaderElements()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Returns an <code>Iterator</code> over all the
 <code>SOAPHeaderElement</code> objects in this <code>SOAPHeader</code>
 object.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#examineAllHeaderElements()"><B>examineAllHeaderElements()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPHeader.html#examineHeaderElements(java.lang.String)"><B>examineHeaderElements(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Returns a list of all the <CODE>SOAPHeaderElement</CODE>
 objects in this <CODE>SOAPHeader</CODE> object that have the
 the specified actor.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#examineHeaderElements(java.lang.String)"><B>examineHeaderElements(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPHeader.html#examineMustUnderstandHeaderElements(java.lang.String)"><B>examineMustUnderstandHeaderElements(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Returns an <code>Iterator</code> over all the
 <code>SOAPHeaderElement</code> objects in this <code>SOAPHeader</code>
 object that have the specified actor and that have a MustUnderstand
 attribute whose value is equivalent to <code>true</code>.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#examineMustUnderstandHeaderElements(java.lang.String)"><B>examineMustUnderstandHeaderElements(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#exceptionLog"><B>exceptionLog</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>log for exceptions
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#execute()"><B>execute()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>The main workhorse method.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#existsPortWithName(javax.xml.namespace.QName)"><B>existsPortWithName(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>checks whether there exists a WSDL port with a given name in the current
 symbol table
<DT><A HREF="org/apache/axis/utils/ClasspathUtils.html#expandDirs(java.lang.String)"><B>expandDirs(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils">ClasspathUtils</A>
<DD>Expand a directory path or list of directory paths (File.pathSeparator
 delimited) into a list of file paths of all the jar files in those
 directories.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#extendType"><B>extendType</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field extendType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html#extensionBase"><B>extensionBase</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>
<DD>Field extensionBase
<DT><A HREF="javax/xml/soap/SOAPHeader.html#extractAllHeaderElements()"><B>extractAllHeaderElements()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Returns an <code>Iterator</code> over all the
 <code>SOAPHeaderElement</code> objects in this <code>SOAPHeader </code>
 object and detaches them from this <code>SOAPHeader</code> object.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#extractAllHeaderElements()"><B>extractAllHeaderElements()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#extractAttachments(org.apache.axis.client.Call)"><B>extractAttachments(Call)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Extract attachments
<DT><A HREF="javax/xml/soap/SOAPHeader.html#extractHeaderElements(java.lang.String)"><B>extractHeaderElements(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>
<DD>Returns a list of all the <CODE>SOAPHeaderElement</CODE>
   objects in this <CODE>SOAPHeader</CODE> object that have
   the the specified actor and detaches them from this <CODE>
   SOAPHeader</CODE> object.
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#extractHeaderElements(java.lang.String)"><B>extractHeaderElements(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_F_"><!-- --></A><H2>
<B>F</B></H2>
<DL>
<DT><A HREF="org/apache/axis/constants/Scope.html#FACTORY"><B>FACTORY</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#FACTORY_CLASS_OPT"><B>FACTORY_CLASS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field FACTORY_CLASS_OPT
<DT><A HREF="org/apache/axis/constants/Scope.html#FACTORY_STR"><B>FACTORY_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_CLIENT"><B>FAULT_CLIENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_MUSTUNDERSTAND"><B>FAULT_MUSTUNDERSTAND</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#FAULT_ON_NO_RESPONSE"><B>FAULT_ON_NO_RESPONSE</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>If this property is true, the code will throw a fault if there is no
 response message from the server.
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SERVER_GENERAL"><B>FAULT_SERVER_GENERAL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SERVER_USER"><B>FAULT_SERVER_USER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SOAP12_DATAENCODINGUNKNOWN"><B>FAULT_SOAP12_DATAENCODINGUNKNOWN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SOAP12_MUSTUNDERSTAND"><B>FAULT_SOAP12_MUSTUNDERSTAND</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SOAP12_RECEIVER"><B>FAULT_SOAP12_RECEIVER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SOAP12_SENDER"><B>FAULT_SOAP12_SENDER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SOAP12_VERSIONMISMATCH"><B>FAULT_SOAP12_VERSIONMISMATCH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SUBCODE_BADARGS"><B>FAULT_SUBCODE_BADARGS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_SUBCODE_PROC_NOT_PRESENT"><B>FAULT_SUBCODE_PROC_NOT_PRESENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#FAULT_VERSIONMISMATCH"><B>FAULT_VERSIONMISMATCH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_BODYINSTREAM"><B>FORM_BODYINSTREAM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_BYTES"><B>FORM_BYTES</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_FAULT"><B>FORM_FAULT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_INPUTSTREAM"><B>FORM_INPUTSTREAM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_OPTIMIZED"><B>FORM_OPTIMIZED</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_SOAPENVELOPE"><B>FORM_SOAPENVELOPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#FORM_STRING"><B>FORM_STRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#FROM_ADDRESS"><B>FROM_ADDRESS</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava"><B>FactoryProperty</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>.<DD>This is a general purpose class that allows one to pass name/value
    properties to the JavaGeneratorFactory.<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#FactoryProperty()"><B>FactoryProperty()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/uuid/FastUUIDGen.html" title="class in org.apache.axis.components.uuid"><B>FastUUIDGen</B></A> - class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/FastUUIDGen.html" title="class in org.apache.axis.components.uuid">FastUUIDGen</A>.<DD>Creates time-based UUID's.<DT><A HREF="org/apache/axis/components/uuid/FastUUIDGen.html#FastUUIDGen()"><B>FastUUIDGen()</B></A> - 
Constructor for class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/FastUUIDGen.html" title="class in org.apache.axis.components.uuid">FastUUIDGen</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description"><B>FaultDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>.<DD>Holds information about a fault for an operation<DT><A HREF="org/apache/axis/description/FaultDesc.html#FaultDesc()"><B>FaultDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/description/FaultDesc.html#FaultDesc(javax.xml.namespace.QName, java.lang.String, javax.xml.namespace.QName, boolean)"><B>FaultDesc(QName, String, QName, boolean)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>Full constructor
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable"><B>FaultInfo</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>.<DD>Fault information object.<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#FaultInfo(javax.wsdl.Fault, org.apache.axis.constants.Use, java.lang.String, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>FaultInfo(Fault, Use, String, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>This constructor creates FaultInfo for a binding fault.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#FaultInfo(javax.wsdl.extensions.soap.SOAPHeaderFault, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>FaultInfo(SOAPHeaderFault, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>This constructor creates FaultInfo for a soap:headerFault.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#FaultInfo(javax.xml.namespace.QName, java.lang.String, java.lang.String, java.lang.String, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>FaultInfo(QName, String, String, String, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Constructor FaultInfo
<DT><A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis"><B>FaultableHandler</B></A> - class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>.<DD>A <code>FaultableHandler</code> is essentially a wrapper for any other
 Handler which provides flexible fault handling semantics.<DT><A HREF="org/apache/axis/FaultableHandler.html#FaultableHandler(org.apache.axis.Handler)"><B>FaultableHandler(Handler)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>Create a new FaultHandler.
<DT><A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description"><B>FieldDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>.<DD>FieldDescs are metadata objects which control the mapping of a given
 Java field to/from XML.<DT><A HREF="org/apache/axis/description/FieldDesc.html#FieldDesc(boolean)"><B>FieldDesc(boolean)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Can't construct the base class directly, must construct either an
 ElementDesc or an AttributeDesc.
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils"><B>FieldPropertyDescriptor</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#FieldPropertyDescriptor(java.lang.String, java.lang.reflect.Field)"><B>FieldPropertyDescriptor(String, Field)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Construct a BPD with a field
 Both must be set
<DT><A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding"><B>FieldTarget</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding">FieldTarget</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/FieldTarget.html#FieldTarget(java.lang.Object, java.lang.reflect.Field)"><B>FieldTarget(Object, Field)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding">FieldTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/FieldTarget.html#FieldTarget(java.lang.Object, java.lang.String)"><B>FieldTarget(Object, String)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding">FieldTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration"><B>FileProvider</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>.<DD>A simple ConfigurationProvider that uses the Admin class to read +
 write XML files.<DT><A HREF="org/apache/axis/configuration/FileProvider.html#FileProvider(java.lang.String)"><B>FileProvider(String)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Constructor which accesses a file in the current directory of the
 engine or at an absolute path.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#FileProvider(java.lang.String, java.lang.String)"><B>FileProvider(String, String)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Constructor which accesses a file relative to a specific base
 path.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#FileProvider(java.io.InputStream)"><B>FileProvider(InputStream)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Constructor which takes an input stream directly.
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http"><B>FilterPrintWriter</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>.<DD>simple wrapper around PrintWriter class.<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#FilterPrintWriter(javax.servlet.http.HttpServletResponse)"><B>FilterPrintWriter(HttpServletResponse)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html" title="class in org.apache.axis.transport.http"><B>FilterPrintWriter.NullOutputStream</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html" title="class in org.apache.axis.transport.http">FilterPrintWriter.NullOutputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html#FilterPrintWriter.NullOutputStream()"><B>FilterPrintWriter.NullOutputStream()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html" title="class in org.apache.axis.transport.http">FilterPrintWriter.NullOutputStream</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/FloatHolder.html" title="class in javax.xml.rpc.holders"><B>FloatHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatHolder.html" title="class in javax.xml.rpc.holders">FloatHolder</A>.<DD>Holder for <code>float</code>s.<DT><A HREF="javax/xml/rpc/holders/FloatHolder.html#FloatHolder()"><B>FloatHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatHolder.html" title="class in javax.xml.rpc.holders">FloatHolder</A>
<DD>Make a new <code>FloatHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/FloatHolder.html#FloatHolder(float)"><B>FloatHolder(float)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatHolder.html" title="class in javax.xml.rpc.holders">FloatHolder</A>
<DD>Make a new <code>FloatHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>FloatWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html" title="class in javax.xml.rpc.holders">FloatWrapperHolder</A>.<DD>Holder for <code>Float</code>s.<DT><A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html#FloatWrapperHolder()"><B>FloatWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html" title="class in javax.xml.rpc.holders">FloatWrapperHolder</A>
<DD>Make a new <code>FloatWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html#FloatWrapperHolder(java.lang.Float)"><B>FloatWrapperHolder(Float)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html" title="class in javax.xml.rpc.holders">FloatWrapperHolder</A>
<DD>Make a new <code>FloatWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html#factory"><B>factory</B></A> - 
Variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html#fatalError(org.xml.sax.SAXParseException)"><B>fatalError(SAXParseException)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFault.html#fault"><B>fault</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultActor"><B>faultActor</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultActor"><B>faultActor</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultClass"><B>faultClass</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultCode"><B>faultCode</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultCode"><B>faultCode</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#faultCode"><B>faultCode</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultData"><B>faultData</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultDetails"><B>faultDetails</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultDetails"><B>faultDetails</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultHeaders"><B>faultHeaders</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>SOAP headers which should be serialized with the Fault.
<DT><A HREF="org/apache/axis/AxisFault.html#faultNode"><B>faultNode</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultNode"><B>faultNode</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultString"><B>faultString</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultString"><B>faultString</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#faultSubCode"><B>faultSubCode</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>SOAP1.2 addition: subcodes of faults; a Vector of QNames
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#faultSubCode"><B>faultSubCode</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#faults"><B>faults</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field faults
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#fileExists(java.lang.String, java.lang.String, org.apache.axis.wsdl.toJava.Namespaces)"><B>fileExists(String, String, Namespaces)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Does the given file already exist in the given namespace?
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#fileList"><B>fileList</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The source program filenames
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html#fileName"><B>fileName</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>
<DD>Field fileName
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#fillArguments(java.util.List)"><B>fillArguments(List)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Fill the arguments taken by the Java compiler
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#filter"><B>filter</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>Field filter
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#finalClose()"><B>finalClose()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Close the underlying stream and remove all references to it.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#finalClose()"><B>finalClose()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#finalGetDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.TypeMappingDelegate)"><B>finalGetDeserializer(Class, QName, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#finalGetSerializer(java.lang.Class)"><B>finalGetSerializer(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>during finalization, the dispose() method is called.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>On death, we clean up our file.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>stop the server if not already told to.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#finalize()"><B>finalize()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method finalize
<DT><A HREF="org/apache/axis/utils/cache/JavaClass.html#find(java.lang.Class)"><B>find(Class)</B></A> - 
Static method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache">JavaClass</A>
<DD>Find (or create if necessary) a JavaClass associated with a given
 class
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#findAttributeReaders(java.lang.Class)"><B>findAttributeReaders(Class)</B></A> - 
Static method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#findClass(java.lang.String)"><B>findClass(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Lookup an entry by class name
<DT><A HREF="org/apache/axis/message/MessageElement.html#findElement(java.util.Vector, java.lang.String, java.lang.String)"><B>findElement(Vector, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findGlobalConfig()"><B>findGlobalConfig()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>get the global configuration
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findGlobalConfig()"><B>findGlobalConfig()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>get the global configuration
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findHandler(java.lang.String)"><B>findHandler(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>find a specific handler
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findHandler(java.lang.String)"><B>findHandler(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>find the handler
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findHandlers()"><B>findHandlers()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>get all handlers
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findHandlers()"><B>findHandlers()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>return all handlers
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#findName(java.lang.String)"><B>findName(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Lookup an entry by file name
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#findNode(org.w3c.dom.Node, javax.xml.namespace.QName)"><B>findNode(Node, QName)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Find a Node with a given QName
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findService(java.lang.String)"><B>findService(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>fina a specific service
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findService(java.lang.String)"><B>findService(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>find the service
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findServices()"><B>findServices()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>get all services
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findServices()"><B>findServices()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>return all services
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findTransport(java.lang.String)"><B>findTransport(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>find a specific transport
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findTransport(java.lang.String)"><B>findTransport(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>find the transport
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#findTransports()"><B>findTransports()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>return all transports
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#findTransports()"><B>findTransports()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>return all transports
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#findType(java.lang.String)"><B>findType(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Lookup an entry by type.
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#findtSchemaDocument(SchemaType)"><B>findtSchemaDocument(SchemaType)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#firstCall()"><B>firstCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Is this the first time the type mappings are being registered?
<DT><A HREF="org/apache/axis/message/MessageElement.html#fixupDeserializer"><B>fixupDeserializer</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>!!! TODO : Make sure this handles multiple targets
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#floatValue()"><B>floatValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#floatValue()"><B>floatValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method flush
<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#flush()"><B>flush()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#flushToDisk()"><B>flushToDisk()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Routine to flush data to disk if is in memory.
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#forName(java.lang.String)"><B>forName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Use this method instead of Class.forName
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#forName(java.lang.String, boolean, java.lang.ClassLoader)"><B>forName(String, boolean, ClassLoader)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Use this method instead of Class.forName (String className, boolean init, ClassLoader loader)
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#GREATER"><B>GREATER</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava"><B>GeneratedFileInfo</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>.<DD>File info available after emit to describe what
 exactly was created by the Emitter.<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#GeneratedFileInfo()"><B>GeneratedFileInfo()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Construct an empty file info list.
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava"><B>GeneratedFileInfo.Entry</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>.<DD>Structure to hold entries.<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html#GeneratedFileInfo.Entry(java.lang.String, java.lang.String, java.lang.String)"><B>GeneratedFileInfo.Entry(String, String, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>
<DD>Constructor Entry
<DT><A HREF="org/apache/axis/wsdl/gen/Generator.html" title="interface in org.apache.axis.wsdl.gen"><B>Generator</B></A> - interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Generator.html" title="interface in org.apache.axis.wsdl.gen">Generator</A>.<DD>This is the interface for all writers.<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen"><B>GeneratorFactory</B></A> - interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>.<DD>Generator and Generatoractory are part of the generator framework.<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler"><B>GenericHandler</B></A> - class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>.<DD>The <code>javax.xml.rpc.handler.GenericHandler</code> class
 implements the <code>Handler</code> interface.<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#GenericHandler()"><B>GenericHandler()</B></A> - 
Constructor for class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>Default constructor.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#genQNameAttributeString(javax.xml.namespace.QName, java.lang.String)"><B>genQNameAttributeString(QName, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Generate an XML prefixed attribute value with a corresponding xmlns
 declaration for the prefix.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#genQNameAttributeStringWithLastLocalPart(javax.xml.namespace.QName, java.lang.String)"><B>genQNameAttributeStringWithLastLocalPart(QName, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Generator.html#generate()"><B>generate()</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Generator.html" title="interface in org.apache.axis.wsdl.gen">Generator</A>
<DD>Generate something.
<DT><A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html" title="class in org.apache.axis.wsdl.gen">NoopGenerator</A>
<DD>Do a whole lot of nothing.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Generate a java source file and/or helper source file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Write all the binding bindings:  stub, skeleton, and impl.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Write other items from the definition as needed.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Generate deploy.wsdd.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>
<DD>Generate a java source file for enum class.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>
<DD>Method generate
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>
<DD>Generate a java source file for the holder class.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Override generate method to prevent duplicate interfaces because
 of two bindings referencing the same portType
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Write all the service bindnigs:  service and testcase.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>Write all the service bindnigs:  service and testcase.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Generate undeploy.wsdd.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#generate()"><B>generate()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Generate a file.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#generateAll(boolean)"><B>generateAll(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setAllWanted(all)</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#generateImports(boolean)"><B>generateImports(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setImports(generateImports)</I>
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#generateServerSide(org.apache.axis.wsdl.fromJava.Emitter, java.lang.String)"><B>generateServerSide(Emitter, String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Generate the server side artifacts from the generated WSDL
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#generateServerSide(boolean)"><B>generateServerSide(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setServerSide(value)</I>
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#generateSession()"><B>generateSession()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>Generate and return a new session identifier.
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#generateSessionId()"><B>generateSessionId()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>Generate and return a new session identifier.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#generateTestCase(boolean)"><B>generateTestCase(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setTestCaseWanted()</I>
<DT><A HREF="org/apache/axis/Handler.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Obtain WSDL information.
<DT><A HREF="org/apache/axis/SimpleChain.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>Iterate over the chain letting each handler have a crack at
 contributing to a WSDL description.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/URLMapper.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http">URLMapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Generate WSDL.
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>Generate the WSDL for this service.
<DT><A HREF="org/apache/axis/server/AxisServer.html#generateWSDL(org.apache.axis.MessageContext)"><B>generateWSDL(MessageContext)</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#generatorPass(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>generatorPass(Definition, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Allow the Generator extension to make a pass through the
 symbol table doing any pre-generation logic, like creating
 the Java names for each object and constructing signature
 strings.
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#generatorPass(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>generatorPass(Definition, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method generatorPass
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#generatorPass(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>generatorPass(Definition, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Do the Wsdl2java generator pass:
 - resolve name clashes
 - construct signatures
<DT><A HREF="org/apache/axis/collections/LRUMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Get the value for a key from the Map.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.get(Object)</CODE>.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#get(int)"><B>get(int)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Gets the key at the specified index.
<DT><A HREF="org/apache/axis/session/Session.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Get a property from the session
<DT><A HREF="org/apache/axis/session/SimpleSession.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Get a property from the session
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#get(java.lang.String)"><B>get(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Get a property from the session
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Get the property value
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#get(java.lang.Object, int)"><B>get(Object, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Get an indexed property
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Get the property value
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#get(java.lang.Object, int)"><B>get(Object, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Get an indexed property
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#get(java.lang.Object)"><B>get(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Get an entry from this hashtable, and if we don't find anything,
 defer to our parent, if any.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#get(javax.xml.namespace.QName, java.lang.Class)"><B>get(QName, Class)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the entry with the given QName of the given class.
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html#getAcceptedIssuers()"><B>getAcceptedIssuers()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method getAcceptedIssuers
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html#getAcceptedIssuers()"><B>getAcceptedIssuers()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method getAcceptedIssuers
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getActivationDataHandler()"><B>getActivationDataHandler()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Get the data handler.
<DT><A HREF="org/apache/axis/attachments/AttachmentUtils.html#getActivationDataHandler(org.apache.axis.Part)"><B>getActivationDataHandler(Part)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentUtils.html" title="class in org.apache.axis.attachments">AttachmentUtils</A>
<DD>Obtain the DataHandler from the part.
<DT><A HREF="javax/xml/soap/SOAPHeaderElement.html#getActor()"><B>getActor()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap">SOAPHeaderElement</A>
<DD>Returns the uri of the actor associated with this <CODE>
 SOAPHeaderElement</CODE> object.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#getActor()"><B>getActor()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getActorURIs()"><B>getActorURIs()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get a list of actor URIs that hold for the entire engine.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getActors()"><B>getActors()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Get the merged actor list for this service, including engine-wide
 actor URIs.
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#getActualType()"><B>getActualType()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#getActualType()"><B>getActualType()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/WSDLUtils.html#getAddressFromPort(javax.wsdl.Port)"><B>getAddressFromPort(Port)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/WSDLUtils.html" title="class in org.apache.axis.utils">WSDLUtils</A>
<DD>Return the endpoint address from a <soap:address location="..."> tag
<DT><A HREF="javax/xml/soap/SOAPElement.html#getAllAttributes()"><B>getAllAttributes()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns an iterator over all of the attribute names in
 this <CODE>SOAPElement</CODE> object.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAllAttributes()"><B>getAllAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Get an interator to all the attributes of the node.
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getAllClasses()"><B>getAllClasses()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Returns an array of all the classes contained within this mapping
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getAllClasses()"><B>getAllClasses()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Returns an array of all the classes contained within this mapping
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getAllClasses(org.apache.axis.encoding.TypeMappingDelegate)"><B>getAllClasses(TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Returns an array of all the classes contained within this mapping
<DT><A HREF="javax/xml/soap/MimeHeaders.html#getAllHeaders()"><B>getAllHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Returns all the headers in this <CODE>MimeHeaders</CODE>
 object.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getAllInParams()"><B>getAllInParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Return a list of ALL "in" params (including INOUTs)
 
 Note: if we were sure the order went IN->INOUT->OUT, we could optimize
 this.
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#getAllKeys()"><B>getAllKeys()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Returns the keys in this hashtable, and its parent chain
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getAllMimeHeaders()"><B>getAllMimeHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Retrieves all the headers for this <CODE>
 AttachmentPart</CODE> object as an iterator over the <CODE>
 MimeHeader</CODE> objects.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getAllMimeHeaders()"><B>getAllMimeHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Retrieves all the headers for this <CODE>SOAPPart</CODE>
 object as an iterator over the <CODE>MimeHeader</CODE>
 objects.
<DT><A HREF="org/apache/axis/SOAPPart.html#getAllMimeHeaders()"><B>getAllMimeHeaders()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Retrieves all the headers for this <CODE>SOAPPart</CODE>
 object as an iterator over the <CODE>MimeHeader</CODE>
 objects.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getAllMimeHeaders()"><B>getAllMimeHeaders()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getAllOutParams()"><B>getAllOutParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Return a list of ALL "out" params (including INOUTs)
 
 Note: if we were sure the order went IN->INOUT->OUT, we could optimize
 this.
<DT><A HREF="org/apache/axis/MessageContext.html#getAllPropertyNames()"><B>getAllPropertyNames()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns an Iterator view of the names of the properties 
  in this MessageContext and any parents of the LockableHashtable
<DT><A HREF="org/apache/axis/AxisServiceConfig.html#getAllowedMethods()"><B>getAllowedMethods()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfig.html" title="interface in org.apache.axis">AxisServiceConfig</A>
<DD>Get the allowed method names.
<DT><A HREF="org/apache/axis/AxisServiceConfigImpl.html#getAllowedMethods()"><B>getAllowedMethods()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfigImpl.html" title="class in org.apache.axis">AxisServiceConfigImpl</A>
<DD>Get the allowed method names.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getAllowedMethods()"><B>getAllowedMethods()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getAllowedMethods()"><B>getAllowedMethods()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getAllowedMethods()"><B>getAllowedMethods()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns a vector of methods to export
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getAnnotationDocumentation(org.w3c.dom.Node)"><B>getAnnotationDocumentation(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the complete text of the child xsd:annotation/xsd:documentation
 element from the provided node.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getAnyContentDescriptor()"><B>getAnyContentDescriptor()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getAnyContentPD(java.lang.Class)"><B>getAnyContentPD(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getAnyDesc()"><B>getAnyDesc()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getAnyElement()"><B>getAnyElement()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getAnyElement
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#getAnyPropertyDesc()"><B>getAnyPropertyDesc()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Get a BeanPropertyDescriptor which indicates where we should
 put extensibility elements (i.e.
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getApplicationProperties()"><B>getApplicationProperties()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>Returns a collection of properties that are defined within the
 JMS URL to be added directly to the JMS messages.
<DT><A HREF="org/apache/axis/AxisEngine.html#getApplicationSession()"><B>getApplicationSession()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>Session</code> object associated with the application
 session.
<DT><A HREF="org/apache/axis/utils/CLOption.html#getArgument()"><B>getArgument()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Retrieve argument to option if it takes arguments.
<DT><A HREF="org/apache/axis/utils/CLOption.html#getArgument(int)"><B>getArgument(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Retrieve indexed argument to option if it takes arguments.
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#getArgumentById(int)"><B>getArgumentById(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Retrieve the <A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils"><CODE>CLOption</CODE></A> with specified id, or
 <code>null</code> if no command line option is found.
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#getArgumentByName(java.lang.String)"><B>getArgumentByName(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Retrieve the <A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils"><CODE>CLOption</CODE></A> with specified name, or
 <code>null</code> if no command line option is found.
<DT><A HREF="org/apache/axis/utils/CLOption.html#getArgumentCount()"><B>getArgumentCount()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Get number of arguments.
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#getArguments()"><B>getArguments()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Retrieve a list of options that were parsed from command list.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getArrayComponentQName(org.w3c.dom.Node, javax.xml.rpc.holders.IntHolder, javax.xml.rpc.holders.BooleanHolder, javax.xml.rpc.holders.QNameHolder, javax.xml.rpc.holders.BooleanHolder, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getArrayComponentQName(Node, IntHolder, BooleanHolder, QNameHolder, BooleanHolder, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node represents an array encoding of one of the following
 forms, then return the qname repesenting the element type of the array.
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#getArrayDimension(java.lang.Class)"><B>getArrayDimension(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>Gets the dimension of arrayType
<DT><A HREF="org/apache/axis/description/ElementDesc.html#getArrayType()"><B>getArrayType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getArrayType()"><B>getArrayType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the QName of the SOAP array type
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getArrayType()"><B>getArrayType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the QName of the SOAP array type
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getArrayType()"><B>getArrayType()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the QName of the SOAP array type
<DT><A HREF="org/apache/axis/SOAPPart.html#getAsBytes()"><B>getAsBytes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the contents of this Part (not the headers!), as a byte
 array.
<DT><A HREF="org/apache/axis/types/Duration.html#getAsCalendar()"><B>getAsCalendar()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Returns duration as a calendar.
<DT><A HREF="org/apache/axis/types/Duration.html#getAsCalendar(java.util.Calendar)"><B>getAsCalendar(Calendar)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Returns duration as a calendar.
<DT><A HREF="org/apache/axis/types/Time.html#getAsCalendar()"><B>getAsCalendar()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>return the time as a calendar: ignore the year, month and date fields
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAsDOM()"><B>getAsDOM()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>create a DOM from the message element, by
 serializing and deserializing the element
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#getAsDir(java.lang.String)"><B>getAsDir(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Get the package name in directory format (dots replaced by slashes).
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAsDocument()"><B>getAsDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the message element as a document.
<DT><A HREF="org/apache/axis/SOAPPart.html#getAsSOAPEnvelope()"><B>getAsSOAPEnvelope()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the contents of this Part (not the MIME headers!), as a
 SOAPEnvelope.
<DT><A HREF="org/apache/axis/SOAPPart.html#getAsString()"><B>getAsString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the contents of this Part (not the headers!), as a String.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAsString()"><B>getAsString()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the message element as a string.
<DT><A HREF="org/apache/axis/message/MessageWithAttachments.html#getAttachment(java.lang.String)"><B>getAttachment(String)</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message">MessageWithAttachments</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageWithAttachments.html#getAttachment(int)"><B>getAttachment(int)</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message">MessageWithAttachments</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getAttachmentByReference(java.lang.String)"><B>getAttachmentByReference(String)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>This method should look at a refernce and determine if it is a CID: or url
 to look for attachment.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getAttachmentByReference(java.lang.String)"><B>getAttachmentByReference(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>This method should look at a refernce and determine if it is a CID: or
 url to look for attachment.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#getAttachmentByReference(java.lang.String[])"><B>getAttachmentByReference(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartInputStream.html#getAttachmentByReference(java.lang.String[])"><B>getAttachmentByReference(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments">MultiPartInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#getAttachmentByReference(java.lang.String[])"><B>getAttachmentByReference(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getAttachmentCount()"><B>getAttachmentCount()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>This is the number of attachments.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getAttachmentCount()"><B>getAttachmentCount()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>This is the number of attachments.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getAttachmentFile()"><B>getAttachmentFile()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Get the filename of this attachment.
<DT><A HREF="org/apache/axis/Message.html#getAttachmentImplClassName()"><B>getAttachmentImplClassName()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Returns the name of the class prividing Attachment Implementation.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that are part of this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getAttachments(javax.xml.soap.MimeHeaders)"><B>getAttachments(MimeHeaders)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that have header entries that match the specified headers.
<DT><A HREF="org/apache/axis/Message.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that are part of this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/Message.html#getAttachments(javax.xml.soap.MimeHeaders)"><B>getAttachments(MimeHeaders)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that have header entries that match the specified headers.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>This method will return all attachments as a collection.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getAttachments(javax.xml.soap.MimeHeaders)"><B>getAttachments(MimeHeaders)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that have header entries that match the specified headers.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>This method will return all attachments as a collection.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getAttachments(javax.xml.soap.MimeHeaders)"><B>getAttachments(MimeHeaders)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Retrieves all the <CODE>AttachmentPart</CODE> objects
 that have header entries that match the specified headers.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartInputStream.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments">MultiPartInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the array of attachments
 The attachment array is cleared after this, so it is a destructive operation.
<DT><A HREF="org/apache/axis/message/MessageWithAttachments.html#getAttachments()"><B>getAttachments()</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message">MessageWithAttachments</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#getAttachmentsImpl()"><B>getAttachmentsImpl()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get the Attachments of this Message.
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getAttrHref()"><B>getAttrHref()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the ref attribute name
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getAttrHref()"><B>getAttrHref()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the ref attribute name
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getAttrHref()"><B>getAttrHref()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the href attribute name
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getAttrItemType()"><B>getAttrItemType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the item type name of an array
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getAttrItemType()"><B>getAttrItemType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the item type name of an array
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getAttrItemType()"><B>getAttrItemType()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the item type name of an array
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttribute(java.lang.String)"><B>getAttribute(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an attribute by name
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getAttribute(org.w3c.dom.Node, java.lang.String)"><B>getAttribute(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Given a node, return the value of the given attribute.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getAttributeAnonQName(org.w3c.dom.Node)"><B>getAttributeAnonQName(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the WSDL2Java QName for the anonymous type of the attribute
 or null.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributeNS(java.lang.String, java.lang.String)"><B>getAttributeNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the attribute with namespace/local name match.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getAttributeNameForField(java.lang.String)"><B>getAttributeNameForField(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get the QName associated with this field, but only if it's
 marked as an attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributeNode(java.lang.String)"><B>getAttributeNode(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD><B>Deprecated.</B>&nbsp;<I>this is not implemented</I>
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributeNodeNS(java.lang.String, java.lang.String)"><B>getAttributeNodeNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD><B>Deprecated.</B>&nbsp;<I>not implemented!</I>
<DT><A HREF="javax/xml/soap/SOAPElement.html#getAttributeValue(javax.xml.soap.Name)"><B>getAttributeValue(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns the value of the attribute with the specified
 name.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributeValue(java.lang.String)"><B>getAttributeValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the value of an attribute
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributeValue(javax.xml.soap.Name)"><B>getAttributeValue(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Get the value of an attribute whose namespace and local name are described.
<DT><A HREF="org/apache/axis/SOAPPart.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>A <code>NamedNodeMap</code> containing the attributes of this node (if
 it is an <code>Element</code>) or <code>null</code> otherwise.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getAttributesEx()"><B>getAttributesEx()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the attributes
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getAttributesWithLocalName(org.w3c.dom.Node, java.lang.String)"><B>getAttributesWithLocalName(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Given a node, return the attributes that have the specified local name.
<DT><A HREF="org/apache/axis/client/Service.html#getAxisClient()"><B>getAxisClient()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getAxisEngine()"><B>getAxisEngine()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the axis engine.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getAxisServer()"><B>getAxisServer()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>demand create an axis server; return an existing one if one exists.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#getAxisServer()"><B>getAxisServer()</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#getAxisServer()"><B>getAxisServer()</B></A> - 
Static method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#getBackingStoreFileName()"><B>getBackingStoreFileName()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method getBackingStoreFileName
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html#getBaseName(javax.xml.namespace.QName)"><B>getBaseName(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BaseTypeMapping.html" title="class in org.apache.axis.wsdl.symbolTable">BaseTypeMapping</A>
<DD>If the qname is registered in the target language,
 return the name of the registered type.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getBaseType(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getBaseType(TypeEntry, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the base type of a given type with its symbol table.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getBaseType()"><B>getBaseType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Returns the Base Type Name.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getBaseTypeMapping()"><B>getBaseTypeMapping()</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Method getBaseTypeMapping
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getBaseTypeMapping()"><B>getBaseTypeMapping()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getBaseTypeMapping
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getBaseTypeMapping()"><B>getBaseTypeMapping()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getBaseTypeMapping
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getBeanAttributes(java.lang.Class, org.apache.axis.description.TypeDesc)"><B>getBeanAttributes(Class, TypeDesc)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>Return a list of properties in the bean which should be attributes
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#getBeanHelperWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, boolean)"><B>getBeanHelperWriter(Emitter, TypeEntry, Vector, TypeEntry, Vector, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>getHelperWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#getBeanWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getBeanWriter(Emitter, TypeEntry, TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>getBeanWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#getBinaryTypeEncoderName(java.lang.String)"><B>getBinaryTypeEncoderName(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Returns the class name that should be used to serialize and
 deserialize this binary element
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getBinding()"><B>getBinding()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get this entry's WSDL4J Binding object.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getBindingEntry(javax.xml.namespace.QName)"><B>getBindingEntry(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the BindingEntry with the given QName.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getBindingName()"><B>getBindingName()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the binding name
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getBindingStyle()"><B>getBindingStyle()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get this entry's binding style.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getBindingType()"><B>getBindingType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get this entry's binding type.
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#getBody()"><B>getBody()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Returns the <CODE>SOAPBody</CODE> object associated with
   this <CODE>SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getBody()"><B>getBody()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the soap body
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#getBody(org.apache.axis.message.SOAPEnvelope, org.apache.axis.MessageContext)"><B>getBody(SOAPEnvelope, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getBodyByName(java.lang.String, java.lang.String)"><B>getBodyByName(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get a body element given its name
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getBodyElements()"><B>getBodyElements()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get all the BodyElement's in the soap body
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getBodyQName()"><B>getBodyQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getBodyQName()"><B>getBodyQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getBodyQName()"><B>getBodyQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the QName for the Body element
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getBundle(java.lang.String, java.lang.String, java.lang.String)"><B>getBundle(String, String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Construct a new ProjectResourceBundle
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getBundle(java.lang.String, java.lang.Class, java.lang.String, java.util.Locale)"><B>getBundle(String, Class, String, Locale)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Construct a new ProjectResourceBundle
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getBundle(java.lang.String, java.lang.String, java.lang.String, java.util.Locale, java.lang.ClassLoader)"><B>getBundle(String, String, String, Locale, ClassLoader)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Construct a new ProjectResourceBundle
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getBundle(java.lang.String, java.lang.Class, java.lang.String, java.util.Locale, java.util.ResourceBundle)"><B>getBundle(String, Class, String, Locale, ResourceBundle)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Construct a new ProjectResourceBundle
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getBundle(java.lang.String, java.lang.String, java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle)"><B>getBundle(String, String, String, Locale, ClassLoader, ResourceBundle)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>Construct a new ProjectResourceBundle
<DT><A HREF="org/apache/axis/attachments/OctetStream.html#getBytes()"><B>getBytes()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments">OctetStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#getBytes()"><B>getBytes()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#getBytes(java.lang.Class)"><B>getBytes(Class)</B></A> - 
Static method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>load the bytecode for a given class, by using the class's defining
 classloader and assuming that for a class named P.C, the bytecodes are
 in a resource named /P/C.class.
<DT><A HREF="org/apache/axis/client/Service.html#getCacheWSDL()"><B>getCacheWSDL()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Tells whether or not we're caching WSDL
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getCachedContext()"><B>getCachedContext()</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#getCall()"><B>getCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>External access to our <code>Call</code< object.
<DT><A HREF="org/apache/axis/client/AxisClientProxy.html#getCall()"><B>getCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client">AxisClientProxy</A>
<DD>Returns the current call.
<DT><A HREF="org/apache/axis/client/Service.html#getCall()"><B>getCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD><B>Deprecated.</B>&nbsp;<I>please use Stub._getCall</I>
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#getCall()"><B>getCall()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Method getCall
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#getCallback()"><B>getCallback()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Method getCallback
<DT><A HREF="javax/xml/rpc/Service.html#getCalls(javax.xml.namespace.QName)"><B>getCalls(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Gets an array of preconfigured <code>Call</code> objects for
 invoking operations on the specified port.
<DT><A HREF="org/apache/axis/client/Service.html#getCalls(javax.xml.namespace.QName)"><B>getCalls(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Gets an array of preconfigured Call objects for invoking operations
 on the specified port.
<DT><A HREF="javax/xml/soap/SOAPException.html#getCause()"><B>getCause()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Returns the <CODE>Throwable</CODE> object embedded in
 this <CODE>SOAPException</CODE> if there is one.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getChildCharacterData(org.w3c.dom.Element)"><B>getChildCharacterData(Element)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Concat all the text and cdata node children of this elem and return
 the resulting text.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#getChildElement(org.w3c.dom.Element, java.lang.String)"><B>getChildElement(Element, String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getChildElement(javax.xml.namespace.QName)"><B>getChildElement(QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Convenience method to get the first matching child for a given QName.
<DT><A HREF="javax/xml/soap/SOAPElement.html#getChildElements()"><B>getChildElements()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns an iterator over all the immediate content of
 this element.
<DT><A HREF="javax/xml/soap/SOAPElement.html#getChildElements(javax.xml.soap.Name)"><B>getChildElements(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns an iterator over all the child elements with the
 specified name.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#getChildElements(org.w3c.dom.Element, java.lang.String)"><B>getChildElements(Element, String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getChildElements()"><B>getChildElements()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an iterator over the children
 This iterator <i>may</i> get confused if changes are made to the
 children while the iteration is in progress.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getChildElements(javax.xml.namespace.QName)"><B>getChildElements(QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an iterator over child elements
<DT><A HREF="org/apache/axis/message/MessageElement.html#getChildElements(javax.xml.soap.Name)"><B>getChildElements(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an iterator over child elements
<DT><A HREF="org/apache/axis/SOAPPart.html#getChildNodes()"><B>getChildNodes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getChildNodes()"><B>getChildNodes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>A <code>NodeList</code> that contains all children of this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getChildNodes()"><B>getChildNodes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getChildren()"><B>getChildren()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get a list of children
<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html#getChunkSize()"><B>getChunkSize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>
<DD>Get the DIME record chunk size
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#getChunked()"><B>getChunked()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getClassCache()"><B>getClassCache()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>ClassCache</code> associated with this engine.
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getClassForQName(javax.xml.namespace.QName)"><B>getClassForQName(QName)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Gets the Class mapped to QName.
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getClassForQName(javax.xml.namespace.QName, java.lang.Class)"><B>getClassForQName(QName, Class)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getClassForQName(javax.xml.namespace.QName)"><B>getClassForQName(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Gets the Class mapped to QName.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getClassForQName(javax.xml.namespace.QName, java.lang.Class)"><B>getClassForQName(QName, Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Gets the Class mapped to QName, preferring the passed Class if possible
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getClassForQName(javax.xml.namespace.QName, java.lang.Class, org.apache.axis.encoding.TypeMappingDelegate)"><B>getClassForQName(QName, Class, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getClassLoader()"><B>getClassLoader()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the classloader, implicitly binding to the thread context
 classloader if an override has not been supplied.
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#getClassLoader(java.lang.String)"><B>getClassLoader(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Obtain the ClassLoader (if any) associated with the given
 className.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#getClassModifiers()"><B>getClassModifiers()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Returns the appropriate extends text
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getClassModifiers()"><B>getClassModifiers()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Return "public ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html#getClassModifiers()"><B>getClassModifiers()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>
<DD>Return "public final ".
<DT><A HREF="org/apache/axis/description/FaultDesc.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getClassName()"><B>getClassName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Returns the class name.
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#getClassNames()"><B>getClassNames()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Get the list of generated classes
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getClassText()"><B>getClassText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Return "class ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#getClassText()"><B>getClassText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Returns "interface ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html#getClassText()"><B>getClassText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceIfaceWriter</A>
<DD>Returns "interface ".
<DT><A HREF="org/apache/axis/AxisEngine.html#getClientEngine()"><B>getClientEngine()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Client engine access.
<DT><A HREF="org/apache/axis/client/AxisClient.html#getClientEngine()"><B>getClientEngine()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServer.html#getClientEngine()"><B>getClientEngine()</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>Get this server's client engine.
<DT><A HREF="org/apache/axis/EngineConfigurationFactory.html#getClientEngineConfig()"><B>getClientEngineConfig()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfigurationFactory.html" title="interface in org.apache.axis">EngineConfigurationFactory</A>
<DD>Get a default client engine configuration.
<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html#getClientEngineConfig()"><B>getClientEngineConfig()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;Get a default client engine configuration.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#getClientEngineConfig()"><B>getClientEngineConfig()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>Get a default client engine configuration.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getClientID()"><B>getClientID()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getCls()"><B>getCls()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the <code>Class</code> to export
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getCollectionComponentQName(org.w3c.dom.Node, javax.xml.rpc.holders.QNameHolder, javax.xml.rpc.holders.BooleanHolder, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getCollectionComponentQName(Node, QNameHolder, BooleanHolder, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node represents an element that references a collection
 then return the qname repesenting the component of the collection.
<DT><A HREF="org/apache/axis/components/compiler/CompilerFactory.html#getCompiler()"><B>getCompiler()</B></A> - 
Static method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerFactory.html" title="class in org.apache.axis.components.compiler">CompilerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getCompleteAttributes()"><B>getCompleteAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Obtain an Attributes collection consisting of all attributes
 for this MessageElement, including namespace declarations.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getComplexElementExtensionBase(org.w3c.dom.Node, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getComplexElementExtensionBase(Node, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node represents a supported JAX-RPC complexType/element
 which extends another complexType.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getComplexElementRestrictionBase(org.w3c.dom.Node, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getComplexElementRestrictionBase(Node, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Look for the base type of node iff node is a complex type that has been
 derived by restriction; otherwise return null.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html#getComplexTypeExtensionBase(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getComplexTypeExtensionBase(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>
<DD>Get a TypeEntry for the base type of this type, if one exists.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#getComponentQName()"><B>getComponentQName()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#getComponentType()"><B>getComponentType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getComponentType()"><B>getComponentType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Return the QName of the component if this is an array type
<DT><A HREF="org/apache/axis/AxisEngine.html#getConfig()"><B>getConfig()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>EngineConfiguration</code> used throughout this
 <code>AxisEngine</code> instance.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getConnectionFactory()"><B>getConnectionFactory()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html#getConnectionPoolTimeout()"><B>getConnectionPoolTimeout()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>
<DD>Used to set the amount of time, in milliseconds, spent waiting
 for an available connection from the pool.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getConnectionPoolTimeout()"><B>getConnectionPoolTimeout()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Return the integer value associated with the property
 axis.http.client.connection.pool.timeout or a default of 0.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#getConnector(java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter)"><B>getConnector(HashMap, HashMap, String, String, JMSVendorAdapter)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Retrieves a JMSConnector that satisfies the provided connector criteria
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#getConnector()"><B>getConnector()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getConstructorForParam(org.apache.axis.wsdl.symbolTable.Parameter, org.apache.axis.wsdl.symbolTable.SymbolTable, javax.xml.rpc.holders.BooleanHolder)"><B>getConstructorForParam(Parameter, SymbolTable, BooleanHolder)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return a constructor for the provided Parameter
 This string will be suitable for assignment:
 <p/>
 Foo var = <i>string returned</i>
 <p/>
 Handles basic java types (int, float, etc), wrapper types (Integer, etc)
 and certain java.math (BigDecimal, BigInteger) types.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getContainedAttributeTypes(org.w3c.dom.Node, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getContainedAttributeTypes(Node, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Return the attribute names and types if any in the node
 The even indices are the attribute types (TypeEntry) and
 the odd indices are the corresponding names (Strings).
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getContainedAttributes()"><B>getContainedAttributes()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getContainedElementDeclarations(org.w3c.dom.Node, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getContainedElementDeclarations(Node, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node represents a supported JAX-RPC complexType or
 simpleType, a Vector is returned which contains ElementDecls for the
 child element names.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getContainedElements()"><B>getContainedElements()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/ConfigurationException.html#getContainedException()"><B>getContainedException()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Get any contained exception.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getContainedSimpleTypes(org.w3c.dom.Node)"><B>getContainedSimpleTypes(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Method getContainedSimpleTypes
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getContent()"><B>getContent()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets the content of this <code>AttachmentPart</code> object as a Java
 object.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getContent()"><B>getContent()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Returns the content of the SOAPEnvelope as a JAXP <CODE>
 Source</CODE> object.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Returns the content of the SOAPEnvelope as a JAXP <CODE>
 Source</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getContent()"><B>getContent()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Gets the content of this <CODE>AttachmentPart</CODE> object
   as a Java object.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getContentDescription()"><B>getContentDescription()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Retrieves a description of this <CODE>SOAPMessage</CODE>
 object's content.
<DT><A HREF="org/apache/axis/Message.html#getContentDescription()"><B>getContentDescription()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Retrieves a description of this <CODE>SOAPMessage</CODE>
 object's content.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getContentId()"><B>getContentId()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets the value of the MIME header whose name is
 "Content-Id".
<DT><A HREF="javax/xml/soap/SOAPPart.html#getContentId()"><B>getContentId()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Retrieves the value of the MIME header whose name is
 "Content-Id".
<DT><A HREF="org/apache/axis/Part.html#getContentId()"><B>getContentId()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Get the content ID.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Content ID.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Get the id for this stream part.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>Return the content id of the stream.
<DT><A HREF="org/apache/axis/attachments/MultiPartInputStream.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments">MultiPartInputStream</A>
<DD>Return the content id of the stream.
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#getContentId()"><B>getContentId()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Part.html#getContentIdRef()"><B>getContentIdRef()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Content ID.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContentIdRef()"><B>getContentIdRef()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Content ID.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getContentIdRef()"><B>getContentIdRef()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Content ID.
<DT><A HREF="org/apache/axis/Message.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get the content length, including both soap and any attachments.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the content length for this SOAPPart.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Get the content length of the stream.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getContentLength()"><B>getContentLength()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Get the content length of the stream.
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#getContentLength(javax.mail.Multipart)"><B>getContentLength(Multipart)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>Determine as efficiently as possible the content length for attachments in a mail Multipart.
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#getContentLength(javax.mail.internet.MimeBodyPart)"><B>getContentLength(MimeBodyPart)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>Determine the length for the individual part.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets the value of the MIME header
 "Content-Location".
<DT><A HREF="javax/xml/soap/SOAPPart.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Retrieves the value of the MIME header whose name is
 "Content-Location".
<DT><A HREF="org/apache/axis/Part.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Get the content location.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Content location.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>Return the content location.
<DT><A HREF="org/apache/axis/attachments/MultiPartInputStream.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments">MultiPartInputStream</A>
<DD>Return the content location.
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#getContentLocation()"><B>getContentLocation()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getContentType()"><B>getContentType()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets the value of the MIME header "Content-Type".
<DT><A HREF="org/apache/axis/Message.html#getContentType(org.apache.axis.soap.SOAPConstants)"><B>getContentType(SOAPConstants)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get the content type of the attachments.
<DT><A HREF="org/apache/axis/Part.html#getContentType()"><B>getContentType()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Get the content type.
<DT><A HREF="org/apache/axis/SOAPPart.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Content type is always "text/xml" for SOAPParts.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>getContentType
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getContentType()"><B>getContentType()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Write the content to the stream.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Gets the content type for the whole stream.
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This method returns the MIME type of the data in the form of a string.
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#getContentType(javax.mail.internet.MimeMultipart)"><B>getContentType(MimeMultipart)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>This routine will get the content type from a mulit-part mime message.
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the MIME content type
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getContentType()"><B>getContentType()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the MIME content type
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getContentType()"><B>getContentType()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the MIME content type
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory</A>
<DD>Method getContext
<DT><A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html" title="class in org.apache.axis.components.net">IBMJSSESocketFactory</A>
<DD>gets a SSL Context
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory</A>
<DD>Method getContext
<DT><A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html" title="class in org.apache.axis.components.net">SunJSSESocketFactory</A>
<DD>gets a SSL Context
<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#getContext()"><B>getContext()</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>Getter for property context.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getContext(java.util.Properties)"><B>getContext(Properties)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html#getConvertedValue(java.lang.Class)"><B>getConvertedValue(Class)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer.ArrayListExtension</A>
<DD>Get previously converted value
<DT><A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html#getConvertedValue(java.lang.Class)"><B>getConvertedValue(Class)</B></A> - 
Method in interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html" title="interface in org.apache.axis.utils">JavaUtils.ConvertCache</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#getCreate(java.lang.String)"><B>getCreate(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Get the namespaace for the given package  If there is no entry in the HashMap for
 this namespace, create one.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#getCreate(java.lang.String, java.lang.String)"><B>getCreate(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Get the namespaace for the given package  If there is no entry in the HashMap for
 this namespace, create one.
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#getCreate(java.lang.String)"><B>getCreate(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Get the package name for the given namespace.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#getCreatePrefix(java.lang.String)"><B>getCreatePrefix(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Get the prefix for the given namespace.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getCurElement()"><B>getCurElement()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get current MessageElement
<DT><A HREF="org/apache/axis/MessageContext.html#getCurrentContext()"><B>getCurrentContext()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the active message context.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getCurrentDefinition()"><B>getCurrentDefinition()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Return the current definition.
<DT><A HREF="org/apache/axis/SOAPPart.html#getCurrentForm()"><B>getCurrentForm()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getCurrentMessage()"><B>getCurrentMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Return the current (i.e.
<DT><A HREF="org/apache/axis/SOAPPart.html#getCurrentMessage()"><B>getCurrentMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the current message, in whatever form it happens to be right now.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getCurrentMessage()"><B>getCurrentMessage()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Return the current message
<DT><A HREF="org/apache/axis/AxisEngine.html#getCurrentMessageContext()"><B>getCurrentMessageContext()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the active message context.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getCurrentNSMappings()"><B>getCurrentNSMappings()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the Namespace Mappings.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getCurrentRecordPos()"><B>getCurrentRecordPos()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the current position in the record.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getCurrentXMLType()"><B>getCurrentXMLType()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get the currently prefered xmlType
<DT><A HREF="org/apache/axis/utils/ByteArray.html#getDEFAULT_CACHE_INCREMENT()"><B>getDEFAULT_CACHE_INCREMENT()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#getDEFAULT_RESIDENT_SIZE()"><B>getDEFAULT_RESIDENT_SIZE()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#getDOMDocument()"><B>getDOMDocument()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>get the deployment as a DOM.
<DT><A HREF="org/apache/axis/message/Text.html#getData()"><B>getData()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getDataHandler()"><B>getDataHandler()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets the <CODE>DataHandler</CODE> object for this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getDataHandler()"><B>getDataHandler()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Gets the <CODE>DataHandler</CODE> object for this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#getDataSize()"><B>getDataSize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#getDataSize(javax.activation.DataHandler)"><B>getDataSize(DataHandler)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html#getDay()"><B>getDay()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#getDay()"><B>getDay()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#getDays()"><B>getDays()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getDebug()"><B>getDebug()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use isDebug()</I>
<DT><A HREF="org/apache/axis/client/async/Status.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method getDefault
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getDefault()"><B>getDefault()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#getDefault()"><B>getDefault()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#getDefaultClassLoader()"><B>getDefaultClassLoader()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClasspathUtils.html#getDefaultClasspath(org.apache.axis.MessageContext)"><B>getDefaultClasspath(MessageContext)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils">ClasspathUtils</A>
<DD>Get the default classpath from various thingies in the message context
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html#getDefaultConnectionTimeout()"><B>getDefaultConnectionTimeout()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>
<DD>Used to set the default amount of time, in milliseconds, spent waiting
 for a connection.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getDefaultConnectionTimeout()"><B>getDefaultConnectionTimeout()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Return the integer value associated with the property
 axis.http.client.connection.default.connection.timeout or a default of 0.
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#getDefaultEncoder()"><B>getDefaultEncoder()</B></A> - 
Static method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>Returns the default encoder
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#getDefaultJWSClassDir()"><B>getDefaultJWSClassDir()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Provided to allow overload of default JWSClassDir
 by derived class.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getDefaultNamespace()"><B>getDefaultNamespace()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getDefaultNamespace()"><B>getDefaultNamespace()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html#getDefaultSoTimeout()"><B>getDefaultSoTimeout()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>
<DD>Used to set the default amount of time, in milliseconds, spent waiting
 for a reponse.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getDefaultSoTimeout()"><B>getDefaultSoTimeout()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Return the integer value associated with the property
 axis.http.client.connection.default.so.timeout or a default of 0.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#getDefaultType()"><B>getDefaultType()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#getDefaultType()"><B>getDefaultType()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#getDefaultTypeMapping()"><B>getDefaultTypeMapping()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Gets the registered default <code>TypeMapping</code> instance.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#getDefaultTypeMapping()"><B>getDefaultTypeMapping()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Return the default TypeMapping
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getDefaultTypeMapping()"><B>getDefaultTypeMapping()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use getTypeMappingRegistry instead</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getDefaultTypeMapping()"><B>getDefaultTypeMapping()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Returns the default <code>TypeMapping</code> used by the service
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getDefinition()"><B>getDefinition()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the Definition.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getDeploySkeleton()"><B>getDeploySkeleton()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use isSkeletonWanted()</I>
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Get an enumeration of the services deployed to this engine.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Get an enumeration of the services deployed to this engine
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Get an enumeration of the services deployed to this engine
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>Get an enumeration of the services deployed to this engine
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Get an enumeration of the services deployed to this engine
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getDeployedServices()"><B>getDeployedServices()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Get an enumeration of the services deployed to this engine
<DT><A HREF="org/apache/axis/WSDDEngineConfiguration.html#getDeployment()"><B>getDeployment()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/WSDDEngineConfiguration.html" title="interface in org.apache.axis">WSDDEngineConfiguration</A>
<DD>Get the WSDDDeployment for this engine configuration.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getDeployment()"><B>getDeployment()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getDeployment()"><B>getDeployment()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getDeployment()"><B>getDeployment()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#getDeployment()"><B>getDeployment()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>Get the deployment.
<DT><A HREF="org/apache/axis/Handler.html#getDeploymentData(org.w3c.dom.Document)"><B>getDeploymentData(Document)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>This will return the root element of an XML doc that describes the
 deployment information about this handler.
<DT><A HREF="org/apache/axis/SimpleChain.html#getDeploymentData(org.w3c.dom.Document)"><B>getDeploymentData(Document)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#getDeploymentData(org.w3c.dom.Document)"><B>getDeploymentData(Document)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getDerivedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getDerivedTypes(TypeEntry, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>This method returns a set of all types that are derived
 from this type via an extension of a complexType
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getDescription()"><B>getDescription()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Retrieve textual description.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getDescription()"><B>getDescription()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the service description
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getDeserClassConstructor()"><B>getDeserClassConstructor()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Returns the deserClassConstructor.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getDeserializationContext()"><B>getDeserializationContext()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Retrieve the DeserializationContext associated with this MessageElement
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#getDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>getDeserializer(Class, QName)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Gets the DeserializerFactory registered for the specified pair
 of Java type and XML data type.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getDeserializer()"><B>getDeserializer()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>getDeserializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get a Deserializer which can turn a given xml type into a given
 Java type
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getDeserializer(javax.xml.namespace.QName)"><B>getDeserializer(QName)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Gets the DeserializerFactory registered for the specified XML data type.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>getDeserializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.TypeMappingDelegate)"><B>getDeserializer(Class, QName, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getDeserializer(javax.xml.namespace.QName)"><B>getDeserializer(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.TypeMappingDelegate)"><B>getDeserializer(Class, QName, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Gets the DeserializerFactory registered for the specified pair
 of Java type and XML data type.
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getDeserializer"><B>getDeserializer</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#getDeserializer(javax.xml.namespace.QName, java.lang.Class, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>getDeserializer(QName, Class, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Get the Deserializer for the attribute or child element.
<DT><A HREF="org/apache/axis/types/Schema.html#getDeserializer(java.lang.String, java.lang.Class, javax.xml.namespace.QName)"><B>getDeserializer(String, Class, QName)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>Get Custom Deserializer
<DT><A HREF="javax/xml/rpc/encoding/DeserializerFactory.html#getDeserializerAs(java.lang.String)"><B>getDeserializerAs(String)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/DeserializerFactory.html" title="interface in javax.xml.rpc.encoding">DeserializerFactory</A>
<DD>Returns a Deserializer for the specified XML processing mechanism type.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html#getDeserializerAs(java.lang.String)"><B>getDeserializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializerFactory</A>
<DD>getDeserializerAs() is overloaded here in order to set the default
 item type on the ArrayDeserializers we create.
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getDeserializerAs(java.lang.String)"><B>getDeserializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html#getDeserializerAs(java.lang.String)"><B>getDeserializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializerFactory</A>
<DD>Get the Deserializer and the set the Constructor so the
 deserializer does not have to do introspection.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html#getDeserializerAs(java.lang.String)"><B>getDeserializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializerFactory</A>
<DD>Get the Deserializer and the set the Constructor so the
 deserializer does not have to do introspection.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getDeserializerForClass(java.lang.Class)"><B>getDeserializerForClass(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Convenience method to get the Deserializer for a specific
 java class from its meta data.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getDeserializerForType(javax.xml.namespace.QName)"><B>getDeserializerForType(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Convenience method to get the Deserializer for a specific
 xmlType.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getDeserializerName()"><B>getDeserializerName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html#getDestClass()"><B>getDestClass()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer.ArrayListExtension</A>
<DD>Get the destination array class described by the xml
<DT><A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html#getDestClass()"><B>getDestClass()</B></A> - 
Method in interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html" title="interface in org.apache.axis.utils">JavaUtils.ConvertCache</A>
<DD>Get the destination array class described by the xml
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getDestination()"><B>getDestination()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getDestinationClass()"><B>getDestinationClass()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Allows the destination class to be retrieved so that downstream
 deserializers like ArrayDeserializer can pick it up when
 deserializing its components using getDeserializerForClass
<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html#getDetail()"><B>getDetail()</B></A> - 
Method in class javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>
<DD>Gets the detail element.
<DT><A HREF="javax/xml/soap/SOAPFault.html#getDetail()"><B>getDetail()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Returns the detail element for this <CODE>SOAPFault</CODE>
   object.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getDetail()"><B>getDetail()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Returns the detail element for this <CODE>SOAPFaultException</CODE>
   object.
<DT><A HREF="javax/xml/soap/Detail.html#getDetailEntries()"><B>getDetailEntries()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Detail.html" title="interface in javax.xml.soap">Detail</A>
<DD>Gets a list of the detail entries in this <code>Detail</code> object.
<DT><A HREF="org/apache/axis/message/Detail.html#getDetailEntries()"><B>getDetailEntries()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Detail.html" title="class in org.apache.axis.message">Detail</A>
<DD>Gets a list of the detail entries in this <code>Detail</code> object.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#getDimeTypeNameFormat()"><B>getDimeTypeNameFormat()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html#getDimensions()"><B>getDimensions()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable">MimeInfo</A>
<DD>Method getDimensions
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getDimensions()"><B>getDimensions()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Return the dimensions of this type, which can be 0 or more "[]".
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getDisallowedMethods()"><B>getDisallowedMethods()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getDisallowedMethods()"><B>getDisallowedMethods()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getDisallowedMethods()"><B>getDisallowedMethods()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Return list of methods that should not be exported
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#getDiskCacheFile()"><B>getDiskCacheFile()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>get the filename of the content if it is cached to disk.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getDoMultiRefs()"><B>getDoMultiRefs()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Are we doing multirefs?
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getDoThreads()"><B>getDoThreads()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#getDoThreads()"><B>getDoThreads()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getDoctype()"><B>getDoctype()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getDoctype()"><B>getDoctype()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getDocumentBuilder()"><B>getDocumentBuilder()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Gets a DocumentBuilder
<DT><A HREF="org/apache/axis/SOAPPart.html#getDocumentElement()"><B>getDocumentElement()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getDocumentElement()"><B>getDocumentElement()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>should not be called, the method will be handled in SOAPPart
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getDocumentLocator()"><B>getDocumentLocator()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getDocumentation()"><B>getDocumentation()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>get the documentation for the service
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getDocumentation()"><B>getDocumentation()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>get the documentation for the operation
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getDocumentation()"><B>getDocumentation()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>get the documentation for the parameter
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getDocumentation()"><B>getDocumentation()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>get the documentation for the service
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getDocumentation()"><B>getDocumentation()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getDocumentation
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getDomain()"><B>getDomain()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#getDynamicVar(java.lang.Object)"><B>getDynamicVar(Object)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>There may be information that does not exist in WSDL4J/DOM
 structures and does not exist in
 our additional structures, but that Writer implementation
 will need.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getEJBHome(javax.naming.InitialContext, java.lang.String)"><B>getEJBHome(InitialContext, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getElement(javax.xml.namespace.QName)"><B>getElement(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the Element TypeEntry with the given QName.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getElementAnonQName(org.w3c.dom.Node)"><B>getElementAnonQName(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the WSDL2Java QName for the anonymous type of the element
 or null.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getElementByID(java.lang.String)"><B>getElementByID(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the MessageElement for the indicated id (where id is the #value of an href)
 If the MessageElement has not been processed, the MessageElement will
 be returned.
<DT><A HREF="org/apache/axis/SOAPPart.html#getElementById(java.lang.String)"><B>getElementById(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getElementById(java.lang.String)"><B>getElementById(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Returns the <code>Element</code> whose <code>ID</code> is given by
 <code>elementId</code>.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#getElementDecl(java.lang.String)"><B>getElementDecl(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Returns the TypeEntry of the given element
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getElementFormDefaults()"><B>getElementFormDefaults()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getElementIndex()"><B>getElementIndex()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Return an unmodifiable map of qnames -> Elements in the symbol
 table.
<DT><A HREF="javax/xml/soap/SOAPElement.html#getElementName()"><B>getElementName()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns the name of this <CODE>SOAPElement</CODE>
 object.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDBeanMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>the documentation
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>Return the element name of a particular subclass.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>Return the element name of a particular subclass.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDFaultFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>Return the element name of a particular subclass.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDRequestFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDResponseFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getElementName()"><B>getElementName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the full name of the element
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getElementNameForField(java.lang.String)"><B>getElementNameForField(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get the QName associated with this field, but only if it's
 marked as an element.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getElementQName()"><B>getElementQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#getElements()"><B>getElements()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getElementsByTagName(java.lang.String)"><B>getElementsByTagName(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getElementsByTagName(java.lang.String)"><B>getElementsByTagName(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getElementsByTagName(java.lang.String)"><B>getElementsByTagName(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>search the SOAPPart in order of SOAPHeader and SOAPBody for the
 requested Element name
<DT><A HREF="org/apache/axis/SOAPPart.html#getElementsByTagNameNS(java.lang.String, java.lang.String)"><B>getElementsByTagNameNS(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getElementsByTagNameNS(java.lang.String, java.lang.String)"><B>getElementsByTagNameNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getElementsByTagNameNS(java.lang.String, java.lang.String)"><B>getElementsByTagNameNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>search the SOAPPart in order of SOAPHeader and SOAPBody for the
 requested Element name
<DT><A HREF="org/apache/axis/message/MessageElement.html#getElementsNS(org.w3c.dom.Element, java.lang.String, java.lang.String)"><B>getElementsNS(Element, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>helper method for recusively getting the element that has namespace URI and localname
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getEmptyInputSource()"><B>getEmptyInputSource()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#getEncoder(java.lang.String)"><B>getEncoder(String)</B></A> - 
Static method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>Returns the requested encoder
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getEncoder()"><B>getEncoder()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>gets the encoding supported by this encoder
<DT><A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/DefaultXMLEncoder.html" title="class in org.apache.axis.components.encoding">DefaultXMLEncoder</A>
<DD>gets the encoding supported by this encoder
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoder.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in interface org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>
<DD>gets the encoding supported by this encoder
<DT><A HREF="org/apache/axis/constants/Use.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>get the encoding for the serialization
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.MessageContext)"><B>getEncoding(MessageContext)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get the current encoding in effect
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getEncoding()"><B>getEncoding()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get the current encoding in effect
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext)"><B>getEncoding(Message, MessageContext)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getEncoding(org.apache.axis.Message, org.apache.axis.MessageContext, org.apache.axis.components.encoding.XMLEncoder)"><B>getEncoding(Message, MessageContext, XMLEncoder)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPElement.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns the encoding style for this <CODE>
 SOAPElement</CODE> object.
<DT><A HREF="org/apache/axis/MessageContext.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns the encoding style as a URI that should be used for the SOAP
 message.
<DT><A HREF="org/apache/axis/client/Call.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the encoding style as a URI that should be used for the SOAP
 message.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Returns this context's encoding style.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Returns this context's encoding style.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getEncodingStyle()"><B>getEncodingStyle()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Get the encoding style.
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getEncodingURI()"><B>getEncodingURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getEncodingURI()"><B>getEncodingURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getEncodingURI()"><B>getEncodingURI()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the encoding namespace for this version of SOAP
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getEndColumn()"><B>getEndColumn()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the ending column number of the program text originating this
 error
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getEndLine()"><B>getEndLine()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the ending line number of the program text originating this error
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getEndpointURL()"><B>getEndpointURL()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getEndpointURL()"><B>getEndpointURL()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#getEndpointURL(org.apache.axis.MessageContext)"><B>getEndpointURL(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>Returns the endpoint URL that should be used in the returned WSDL.
<DT><A HREF="org/apache/axis/client/Service.html#getEngine()"><B>getEngine()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns the current AxisEngine used by this Service and all of the
 Call objects created from this Service object.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getEngine()"><B>getEngine()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getEngine()"><B>getEngine()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getEngine()"><B>getEngine()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>Get the singleton engine for this management object
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getEngine()"><B>getEngine()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>get the engine for this servlet from cache or context
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getEngine(javax.servlet.http.HttpServlet)"><B>getEngine(HttpServlet)</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>This is a uniform method of initializing AxisServer in a servlet
 context.
<DT><A HREF="org/apache/axis/client/Service.html#getEngineConfiguration()"><B>getEngineConfiguration()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a EngineConfig if one is not available.
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getEngineEnvironment(javax.servlet.http.HttpServlet)"><B>getEngineEnvironment(HttpServlet)</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>extract information from the servlet configuration files
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getEnum(int)"><B>getEnum(int)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>Returns name of enumerated value
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getEnum(java.lang.String)"><B>getEnum(String)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>Returns enumerated value of name
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getEnum(java.lang.String, org.apache.axis.constants.Enum)"><B>getEnum(String, Enum)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>Returns enumerated value of name
 
 For large sets of enumerated values, a HashMap could
 be used to retrieve.
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getEnumNames()"><B>getEnumNames()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>Returns array of names for enumerated values
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#getEnumTypeWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector)"><B>getEnumTypeWriter(Emitter, TypeEntry, Vector)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>getEnumWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html#getEnumValueIds(java.util.Vector)"><B>getEnumValueIds(Vector)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>
<DD>Get the enumeration names for the values.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getEnumerationBaseAndValues(org.w3c.dom.Node, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getEnumerationBaseAndValues(Node, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>If the specified node represents a supported JAX-RPC enumeration,
 a Vector is returned which contains the base type and the enumeration values.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getEnvelope()"><B>getEnvelope()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Gets the <CODE>SOAPEnvelope</CODE> object associated with
 this <CODE>SOAPPart</CODE> object.
<DT><A HREF="org/apache/axis/SOAPPart.html#getEnvelope()"><B>getEnvelope()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Gets the <CODE>SOAPEnvelope</CODE> object associated with
 this <CODE>SOAPPart</CODE> object.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getEnvelope()"><B>getEnvelope()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get Envelope
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#getEnvelope()"><B>getEnvelope()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getEnvelope()"><B>getEnvelope()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get our current envelope
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getEnvelopeURI()"><B>getEnvelopeURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getEnvelopeURI()"><B>getEnvelopeURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getEnvelopeURI()"><B>getEnvelopeURI()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the envelope namespace for this version of SOAP
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#getErrorString()"><B>getErrorString()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>Retrieve an error message that occured during parsing if one existed.
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#getErrors()"><B>getErrors()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Return the list of errors generated by this compilation
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#getErrors()"><B>getErrors()</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Return the list of errors generated by this compilation
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#getException()"><B>getException()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method getException
<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html#getException()"><B>getException()</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>
<DD>Method getException
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getExceptionJavaNameHook(javax.xml.namespace.QName)"><B>getExceptionJavaNameHook(QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanFaultWriter</A>
<DD>Returns the appropriate extends text
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Returns the appropriate extends text
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Returns the appropriate extends clause.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaFaultWriter</A>
<DD>Return "extends org.apache.axis.AxisFault ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Returns "extends java.rmi.Remote ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceIfaceWriter</A>
<DD>Returns "extends javax.xml.rpc.Service ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Returns "extends org.apache.axis.client.Service ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Returns "extends org.apache.axis.client.Stub ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html#getExtendsText()"><B>getExtendsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>
<DD>Returns "extends junit.framework.TestCase ".
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getExtraClasses()"><B>getExtraClasses()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Return the list of extra classes that the emitter will produce WSDL for.
<DT><A HREF="org/apache/axis/components/net/SocketFactoryFactory.html#getFactory(java.lang.String, java.util.Hashtable)"><B>getFactory(String, Hashtable)</B></A> - 
Static method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactoryFactory.html" title="class in org.apache.axis.components.net">SocketFactoryFactory</A>
<DD>Returns a copy of the environment's default socket factory.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getFactory()"><B>getFactory()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method getFactory
<DT><A HREF="javax/xml/soap/SOAPBody.html#getFault()"><B>getFault()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Returns the <code>SOAPFault</code> object in this <code>SOAPBody</code>
 object.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#getFault()"><B>getFault()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFault()"><B>getFault()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html#getFaultActor()"><B>getFaultActor()</B></A> - 
Method in class javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>
<DD>Gets the <code>faultactor</code> element.
<DT><A HREF="javax/xml/soap/SOAPFault.html#getFaultActor()"><B>getFaultActor()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Gets the fault actor for this <CODE>SOAPFault</CODE>
 object.
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultActor()"><B>getFaultActor()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>get the fault actor
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFaultActor()"><B>getFaultActor()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Gets the fault actor for this <CODE>SOAPFaultException</CODE>
 object.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getFaultBodyType(javax.wsdl.Operation, java.lang.String)"><B>getFaultBodyType(Operation, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the fault body type for the given fault of the given operation.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#getFaultBodyTypeMap()"><B>getFaultBodyTypeMap()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method getFaultBodyTypeMap
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getFaultByClass(java.lang.Class)"><B>getFaultByClass(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Returns the FaultDesc for the fault class given.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getFaultByClass(java.lang.Class, boolean)"><B>getFaultByClass(Class, boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Returns the FaultDesc for the fault class given.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getFaultByQName(javax.xml.namespace.QName)"><B>getFaultByQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Returns the FaultDesc for a QName (which is typically found
 in the details element of a SOAP fault).
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getFaultByXmlType(javax.xml.namespace.QName)"><B>getFaultByXmlType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Returns the FaultDesc for an XMLType.
<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html#getFaultCode()"><B>getFaultCode()</B></A> - 
Method in class javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>
<DD>Gets the <code>faultcode</code> element.
<DT><A HREF="javax/xml/soap/SOAPFault.html#getFaultCode()"><B>getFaultCode()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Gets the fault code for this <CODE>SOAPFault</CODE>
 object.
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultCode()"><B>getFaultCode()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Get the fault code <code>QName</code>.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFaultCode()"><B>getFaultCode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Gets the fault code for this <CODE>SOAPFaultException</CODE>
 object.
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#getFaultCode()"><B>getFaultCode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPFault.html#getFaultCodeAsName()"><B>getFaultCodeAsName()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Gets the mandatory SOAP 1.1 fault code for this <code>SOAPFault</code>
 object as a SAAJ <code>Name</code> object.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFaultCodeAsName()"><B>getFaultCodeAsName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getFaultDataType(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getFaultDataType(Message, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Given a fault message, return the XML type of the exception data.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#getFaultDesc()"><B>getFaultDesc()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultDetails()"><B>getFaultDetails()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Get all the fault details.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getFaultFlow(javax.xml.namespace.QName)"><B>getFaultFlow(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getFaultFlow(javax.xml.namespace.QName)"><B>getFaultFlow(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#getFaultFlow(javax.xml.namespace.QName)"><B>getFaultFlow(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getFaultFlows()"><B>getFaultFlows()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getFaultFlows()"><B>getFaultFlows()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#getFaultFlows()"><B>getFaultFlows()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultNode()"><B>getFaultNode()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Get the fault node.
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getFaultQName()"><B>getFaultQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getFaultQName()"><B>getFaultQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getFaultQName()"><B>getFaultQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the QName for the Fault element
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultReason()"><B>getFaultReason()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>This is SOAP 1.2 equivalent of <A HREF="org/apache/axis/AxisFault.html#getFaultString()"><CODE>AxisFault.getFaultString()</CODE></A>.
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultRole()"><B>getFaultRole()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>This is SOAP 1.2 equivalent of <A HREF="org/apache/axis/AxisFault.html#getFaultActor()"><CODE>AxisFault.getFaultActor()</CODE></A>.
<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html#getFaultString()"><B>getFaultString()</B></A> - 
Method in class javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>
<DD>Gets the <code>faultstring</code> element.
<DT><A HREF="javax/xml/soap/SOAPFault.html#getFaultString()"><B>getFaultString()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Gets the fault string for this <CODE>SOAPFault</CODE>
 object.
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultString()"><B>getFaultString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Get the fault string; this will never be null but may be the
 empty string.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFaultString()"><B>getFaultString()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Gets the fault string for this <CODE>SOAPFaultException</CODE>
 object.
<DT><A HREF="javax/xml/soap/SOAPFault.html#getFaultStringLocale()"><B>getFaultStringLocale()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Returns the optional detail element for this <code>SOAPFault</code>
 object.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#getFaultStringLocale()"><B>getFaultStringLocale()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#getFaultSubCodes()"><B>getFaultSubCodes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>get the fault subcode list; only used in SOAP 1.2
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getFaults()"><B>getFaults()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getFaults()"><B>getFaults()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Return the map of BindingOperations to ArraList of FaultBodyType
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#getField()"><B>getField()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getFieldByName(java.lang.String)"><B>getFieldByName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get a FieldDesc by field name.
<DT><A HREF="org/apache/axis/description/FieldDesc.html#getFieldName()"><B>getFieldName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Obtain the field name.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getFieldNameForAttribute(javax.xml.namespace.QName)"><B>getFieldNameForAttribute(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get the field name associated with this QName, but only if it's
 marked as an attribute.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getFieldNameForElement(javax.xml.namespace.QName, boolean)"><B>getFieldNameForElement(QName, boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get the field name associated with this QName, but only if it's
 marked as an element.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getFields()"><B>getFields()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Obtain the current array of FieldDescs
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getFields(boolean)"><B>getFields(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getFile()"><B>getFile()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the filename associated with this compiler error.
<DT><A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/DuplicateFileException.html" title="class in org.apache.axis.wsdl.toJava">DuplicateFileException</A>
<DD>Method getFileName
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Return the file name as a string of the form:
 "<directory-ized fully-qualified classname>.java"
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Return the fully-qualified name of the deploy.wsdd file
 to be generated.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Return the fully-qualified name of the undeploy.wsdd file
 to be generated.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#getFileName()"><B>getFileName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>This method must be implemented by a subclass.
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#getFileNames()"><B>getFileNames()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Get the list of generated filenames
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getFirst()"><B>getFirst()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the entry for the "oldest" mapping.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getFirstBody()"><B>getFirstBody()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the first BodyElement in the SOAP Body
<DT><A HREF="org/apache/axis/SOAPPart.html#getFirstChild()"><B>getFirstChild()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getFirstChild()"><B>getFirstChild()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The first child of this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getFirstChild()"><B>getFirstChild()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Do we have to count the Attributes as node ????
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getFirstKey()"><B>getFirstKey()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the key for the "oldest" mapping.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getFirstMimeHeader(java.lang.String)"><B>getFirstMimeHeader(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Get the specified MIME header.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getFirstValue()"><B>getFirstValue()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the value for the "oldest" mapping.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getFixupDeserializer()"><B>getFixupDeserializer()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getFlags()"><B>getFlags()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Retrieve flags about option.
<DT><A HREF="org/apache/axis/types/URI.html#getFragment()"><B>getFragment()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the fragment for this URI.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getFullExceptionName(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getFullExceptionName(Message, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Given a fault message, return the fully qualified Java class name
 of the exception to be generated from this fault
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getFullQNameFromString(java.lang.String, org.w3c.dom.Node)"><B>getFullQNameFromString(String, Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<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.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#getGeneralPurpose(java.lang.String)"><B>getGeneralPurpose(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>Obtains a serializer by invoking <constructor>(javaType, xmlType)
 on the serClass.
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getGeneralPurpose(java.lang.String)"><B>getGeneralPurpose(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Obtains a deserializer by invoking <constructor>(javaType, xmlType) 
 on the deserClass.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getGeneralPurpose(java.lang.String)"><B>getGeneralPurpose(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Obtains a serializer by invoking <constructor>(javaType, xmlType) 
 on the serClass.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html#getGeneralPurpose(java.lang.String)"><B>getGeneralPurpose(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>
<DD>Optimize construction of a BeanDeserializer by caching the
 type descriptor and property map.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html#getGeneralPurpose(java.lang.String)"><B>getGeneralPurpose(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>
<DD>Optimize construction of a BeanSerializer by caching the
 type and property descriptors.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getGenerateServerSide()"><B>getGenerateServerSide()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use isServerSide()</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getGeneratedClassNames()"><B>getGeneratedClassNames()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>This method returns a list of all generated class names.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getGeneratedFileInfo()"><B>getGeneratedFileInfo()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Returns an object which contains of information on all generated files
 including the class name, filename and a type string.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getGeneratedFileNames()"><B>getGeneratedFileNames()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>This method returns a list of all generated file names.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Message, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate bindings for the given Message.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(javax.wsdl.PortType, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(PortType, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate bindings for the given PortType.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(javax.wsdl.Binding, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Binding, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate bindings for the given Binding.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(javax.wsdl.Service, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Service, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate bindings for the given Service.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(TypeEntry, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate bindings for the given Type.
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#getGenerator(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Definition, SymbolTable)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get a Generator implementation that will generate anything that doesn't
 fit into the scope of any of the other Generators.
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Message, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(javax.wsdl.PortType, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(PortType, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(javax.wsdl.Binding, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Binding, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(javax.wsdl.Service, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Service, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(TypeEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#getGenerator(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Definition, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Message, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(javax.wsdl.PortType, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(PortType, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(javax.wsdl.Binding, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Binding, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(javax.wsdl.Service, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Service, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(TypeEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getGenerator(javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getGenerator(Definition, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method getGenerator
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getGetDeserializer()"><B>getGetDeserializer()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Returns the getDeserializer.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getGetSerializer()"><B>getGetSerializer()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Returns the getSerializer.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getGlobalConfig()"><B>getGlobalConfig()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getGlobalConfiguration()"><B>getGlobalConfiguration()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Get our global configuration
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Returns the global configuration options.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Returns the global configuration options.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Returns the global configuration options.
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Returns the global configuration options.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getGlobalOptions()"><B>getGlobalOptions()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the global request <code>Handler</code>.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Returns a global request handler.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Returns a global request handler.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Returns a global request handler.
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Returns a global request handler.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getGlobalRequest()"><B>getGlobalRequest()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the global respones <code>Handler</code>.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Returns a global response handler.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Returns a global response handler.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Returns a global response handler.
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Returns a global response handler.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getGlobalResponse()"><B>getGlobalResponse()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getHandler(java.lang.String)"><B>getHandler(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>Handler</code> for a particular local name.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Retrieve an instance of the named handler.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>retrieve an instance of the named handler
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>retrieve an instance of the named handler
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Return an instance of the named handler.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getHandler(javax.xml.namespace.QName)"><B>getHandler(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerRegistry.html#getHandlerChain(javax.xml.namespace.QName)"><B>getHandlerChain(QName)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerRegistry.html" title="interface in javax.xml.rpc.handler">HandlerRegistry</A>
<DD>Gets the handler chain for the specified service endpoint.
<DT><A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html#getHandlerChain(javax.xml.namespace.QName)"><B>getHandlerChain(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html" title="class in org.apache.axis.client">Service.HandlerRegistryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#getHandlerChainFactory()"><B>getHandlerChainFactory()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#getHandlerClass()"><B>getHandlerClass()</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Gets the Handler class.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#getHandlerClassName()"><B>getHandlerClassName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#getHandlerConfig()"><B>getHandlerConfig()</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Gets the Handler configuration.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getHandlerInfoChain()"><B>getHandlerInfoChain()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#getHandlerInfoList()"><B>getHandlerInfoList()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#getHandlerInfos()"><B>getHandlerInfos()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#getHandlerMap()"><B>getHandlerMap()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Service.html#getHandlerRegistry()"><B>getHandlerRegistry()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Returns the configured <code>HandlerRegistry</code> instance
 for this <code>Service</code> instance.
<DT><A HREF="org/apache/axis/client/Service.html#getHandlerRegistry()"><B>getHandlerRegistry()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns the configured HandlerRegistry instance for this Service
 instance.
<DT><A HREF="org/apache/axis/Chain.html#getHandlers()"><B>getHandlers()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Chain.html" title="interface in org.apache.axis">Chain</A>
<DD>Get the list of handlers in the chain.
<DT><A HREF="org/apache/axis/SimpleChain.html#getHandlers()"><B>getHandlers()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#getHandlers()"><B>getHandlers()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Obtain our handler list
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getHandlers()"><B>getHandlers()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getHandlers()"><B>getHandlers()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getHashMap()"><B>getHashMap()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the raw symbol table HashMap.
<DT><A HREF="javax/xml/soap/MimeHeaders.html#getHeader(java.lang.String)"><B>getHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Returns all of the values for the specified header as an
 array of <CODE>String</CODE> objects.
<DT><A HREF="javax/xml/soap/SOAPEnvelope.html#getHeader()"><B>getHeader()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>
<DD>Returns the <CODE>SOAPHeader</CODE> object for this <CODE>
   SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#getHeader(java.lang.String)"><B>getHeader(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>Get a header value.
<DT><A HREF="org/apache/axis/client/Stub.html#getHeader(java.lang.String, java.lang.String)"><B>getHeader(String, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the header element
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeader()"><B>getHeader()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the soap header
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeaderByName(java.lang.String, java.lang.String)"><B>getHeaderByName(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get a header by name (always respecting the currently in-scope
 actors list)
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeaderByName(java.lang.String, java.lang.String, boolean)"><B>getHeaderByName(String, String, boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get a header by name, filtering for headers targeted at this
 engine depending on the accessAllHeaders parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getHeaderParts()"><B>getHeaderParts()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the header parameter map.
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getHeaderQName()"><B>getHeaderQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getHeaderQName()"><B>getHeaderQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getHeaderQName()"><B>getHeaderQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the QName for the Header element
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>Gets the header blocks processed by this Handler instance.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>Gets the header blocks processed by this Handler instance.
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Gets the header blocks processed by this Handler.
<DT><A HREF="org/apache/axis/AxisFault.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Get the SOAP headers associated with this fault.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the array of header elements
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get Headers
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeadersByActor(java.util.ArrayList)"><B>getHeadersByActor(ArrayList)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get all the headers targeted at a list of actors.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeadersByName(java.lang.String, java.lang.String)"><B>getHeadersByName(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get an enumeration of header elements given the namespace and localpart
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getHeadersByName(java.lang.String, java.lang.String, boolean)"><B>getHeadersByName(String, String, boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Return an Enumeration of headers which match the given namespace
 and localPart.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getHelperGeneration()"><B>getHelperGeneration()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use isHelperWanted()</I>
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getHolderValue(java.lang.Object)"><B>getHolderValue(Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Gets the Holder value.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getHolderValueType(java.lang.Class)"><B>getHolderValueType(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Determines if the Class is a Holder class.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#getHolderWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getHolderWriter(Emitter, TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>getHolderWriter
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getHomeDir()"><B>getHomeDir()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>what is the root dir of the applet?
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#getHost()"><B>getHost()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#getHost()"><B>getHost()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the host for this URI.
<DT><A HREF="org/apache/axis/utils/Options.html#getHost()"><B>getHost()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#getHostConfiguration(org.apache.commons.httpclient.HttpClient, org.apache.axis.MessageContext, java.net.URL)"><B>getHostConfiguration(HttpClient, MessageContext, URL)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#getHours()"><B>getHours()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getHref()"><B>getHref()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get a saved href
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#getHttpServletResponseStatus(org.apache.axis.AxisFault)"><B>getHttpServletResponseStatus(AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Extract information from AxisFault and map it to a HTTP Status code.
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html#getHttpSession()"><B>getHttpSession()</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>
<DD>The <code>getHttpSession</code> method returns the current
 HTTP session (as a <code>javax.servlet.http.HTTPSession</code>).
<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#getHttpSession()"><B>getHttpSession()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getID()"><B>getID()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get a saved ID
<DT><A HREF="org/apache/axis/types/Schema.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLOption.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Retrieve id of option.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getId()"><B>getId()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Retrieve the id for option.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getImageFromStream(java.io.InputStream)"><B>getImageFromStream(InputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/image/ImageIOFactory.html#getImageIO()"><B>getImageIO()</B></A> - 
Static method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIOFactory.html" title="class in org.apache.axis.components.image">ImageIOFactory</A>
<DD>Get the ImageIO implementation.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getImplClass()"><B>getImplClass()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getImplCls()"><B>getImplCls()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the implementation <code>Class</code> if set
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getImplNamespace()"><B>getImplNamespace()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the implementation namespace
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getImplWSDL()"><B>getImplWSDL()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Get implementation WSDL <code>Definition</code> for the
 current configuration parameters
<DT><A HREF="org/apache/axis/SOAPPart.html#getImplementation()"><B>getImplementation()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getImplementation()"><B>getImplementation()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getImplementationClassName()"><B>getImplementationClassName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get an implementation classname to use instead of the default.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Returns the appropriate implements text
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Returns the appropriate implements clause.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>
<DD>Return "implements java.io.Serializable ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>
<DD>Return "implements javax.xml.rpc.holders.Holder ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Returns the appropriate implements text
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Returns "implements <serviceInterface>".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaSkelWriter</A>
<DD>Returns "implements <SEI>, org.apache.axis.wsdl.Skeleton ".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#getImplementsText()"><B>getImplementsText()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Returns "implements <SEI> ".
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getImportUrl()"><B>getImportUrl()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the interface import location URL
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getIncomingAttachmentStreams()"><B>getIncomingAttachmentStreams()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Once this method is called, attachments can only be accessed via the InputStreams.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getIncomingAttachmentStreams()"><B>getIncomingAttachmentStreams()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Once this method is called, attachments can only be accessed via the InputStreams.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getIncompatble()"><B>getIncompatble()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use the correctly spelled <A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getIncompatible()"><CODE>CLOptionDescriptor.getIncompatible()</CODE></A> instead.</I>
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getIncompatible()"><B>getIncompatible()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getIndex(java.lang.String, java.lang.String)"><B>getIndex(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's index by Namespace name.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getIndex(java.lang.String)"><B>getIndex(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's index by qualified (prefixed) name.
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#getInitialByteArray(java.lang.String, int)"><B>getInitialByteArray(String, int)</B></A> - 
Method in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getInitializedServiceDesc(org.apache.axis.MessageContext)"><B>getInitializedServiceDesc(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Returns a service description with the implementation class filled in.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html#getInnerType()"><B>getInnerType()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getInnerXMLString(org.w3c.dom.Element)"><B>getInnerXMLString(Element)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>get the inner XML inside an element as a string.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#getInputBodyType()"><B>getInputBodyType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method getInputBodyType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getInputBodyType(javax.wsdl.Operation)"><B>getInputBodyType(Operation)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the input body type for the given operation.
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#getInputNamespace(java.lang.String)"><B>getInputNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Used to return the namespace of the input clause of the given
 operation.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getInputParamByQName(javax.xml.namespace.QName)"><B>getInputParamByQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getInputSchema()"><B>getInputSchema()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getInputSourceFromURI(java.lang.String)"><B>getInputSourceFromURI(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Utility to get the bytes uri.
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This method returns an InputStream representing the the data and throws the appropriate exception if it can not do so.
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getInputWSDL()"><B>getInputWSDL()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Get the name of the input WSDL
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getInstance(org.apache.axis.EngineConfiguration)"><B>getInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#getInstance(javax.xml.namespace.QName, org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>getInstance(QName, WSDDService, EngineConfiguration)</B></A> - 
Static method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/MethodCache.html#getInstance()"><B>getInstance()</B></A> - 
Static method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/MethodCache.html" title="class in org.apache.axis.utils.cache">MethodCache</A>
<DD>Gets the only instance of this class
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getIntegerProperty(java.lang.String, java.lang.String)"><B>getIntegerProperty(String, String)</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Convert the value for <tt>property</tt> into an int or, if none is found,
 use the <tt>dephault</tt> value instead.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getIntfNamespace()"><B>getIntfNamespace()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the interface namespace
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getIntfWSDL()"><B>getIntfWSDL()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Get a interface WSDL <code>Definition</code> for the
 current configuration parameters
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getIsReturn()"><B>getIsReturn()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Indicates ParameterDesc represents return of OperationDesc
<DT><A HREF="org/apache/axis/description/ElementDesc.html#getItemQName()"><B>getItemQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getItemQName()"><B>getItemQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getItemQName()"><B>getItemQName()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getItemQName()"><B>getItemQName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getItemQName(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getItemQName(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getItemType()"><B>getItemType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getItemType()"><B>getItemType()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getItemType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getItemType(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AxisClient.html#getJAXRPChandlerChain(org.apache.axis.MessageContext)"><B>getJAXRPChandlerChain(MessageContext)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getJMSConnectionFactoryProperties(org.apache.axis.transport.jms.JMSURLHelper)"><B>getJMSConnectionFactoryProperties(JMSURLHelper)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>Creates a connection factory property table using values supplied in
 the endpoint address
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getJMSConnectorProperties(org.apache.axis.transport.jms.JMSURLHelper)"><B>getJMSConnectorProperties(JMSURLHelper)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>Creates a JMS connector property table using values supplied in
 the endpoint address.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getJMSURL()"><B>getJMSURL()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html#getJMSVendorAdapter()"><B>getJMSVendorAdapter()</B></A> - 
Static method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html" title="class in org.apache.axis.components.jms">JMSVendorAdapterFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html#getJMSVendorAdapter(java.lang.String)"><B>getJMSVendorAdapter(String)</B></A> - 
Static method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html" title="class in org.apache.axis.components.jms">JMSVendorAdapterFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#getJWSClassDir()"><B>getJWSClassDir()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getJavaClass()"><B>getJavaClass()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/JavaClass.html#getJavaClass()"><B>getJavaClass()</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache">JavaClass</A>
<DD>Return the java.lang.Class associated with this entry
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#getJavaImplWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getJavaImplWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>getJavaImplWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#getJavaInterfaceWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.PortTypeEntry, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getJavaInterfaceWriter(Emitter, PortTypeEntry, BindingEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>getJavaInterfaceWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getJavaLocalName(java.lang.String)"><B>getJavaLocalName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Query Java Local Name
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getJavaName(javax.xml.namespace.QName)"><B>getJavaName(QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Convert the specified QName into a full Java Name.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getJavaNameHook(javax.xml.namespace.QName)"><B>getJavaNameHook(QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getJavaPackageName(java.lang.String)"><B>getJavaPackageName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Query Java Package Name
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#getJavaSkelWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getJavaSkelWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>getJavaSkelWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#getJavaStubWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getJavaStubWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>getJavaStubWriter
<DT><A HREF="org/apache/axis/description/FieldDesc.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Get the java type (note that this is javaType in the signature.)
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getJavaType()"><B>getJavaType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>get javaType
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getJavaVariableName(javax.xml.namespace.QName, javax.xml.namespace.QName, boolean)"><B>getJavaVariableName(QName, QName, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getJavaVariableNameHook(javax.xml.namespace.QName, javax.xml.namespace.QName, boolean)"><B>getJavaVariableNameHook(QName, QName, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/HappyClient.html#getJavaVersionNumber()"><B>getJavaVersionNumber()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client">HappyClient</A>
<DD>calculate the java version number by probing for classes;
 this tactic works across many jvm implementations; taken from Ant.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#getJavadocDescriptionPart(java.lang.String, boolean)"><B>getJavadocDescriptionPart(String, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Takes out new lines and wraps at Javadoc tags
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getKeys()"><B>getKeys()</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/session/Session.html#getKeys()"><B>getKeys()</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Get an enumeration of the keys in this session
<DT><A HREF="org/apache/axis/session/SimpleSession.html#getKeys()"><B>getKeys()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Get an enumeration of the keys in this session
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#getKeys()"><B>getKeys()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Get an enumeration of the keys in this session
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getLanguageSpecificType()"><B>getLanguageSpecificType()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getLast()"><B>getLast()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the entry for the "newest" mapping.
<DT><A HREF="org/apache/axis/session/SimpleSession.html#getLastAccessTime()"><B>getLastAccessTime()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getLastChild()"><B>getLastChild()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getLastChild()"><B>getLastChild()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The last child of this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getLastChild()"><B>getLastChild()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getLastKey()"><B>getLastKey()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the key for the "newest" mapping.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getLastLocalPart(java.lang.String)"><B>getLastLocalPart(String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getLastValue()"><B>getLastValue()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Return the value for the "newest" mapping.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>The number of nodes in the list.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>The number of nodes in this map.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return the number of attributes in the list.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#getLength()"><B>getLength()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/JAXRPCException.html#getLinkedCause()"><B>getLinkedCause()</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>
<DD>Gets the linked cause.
<DT><A HREF="javax/xml/rpc/ServiceException.html#getLinkedCause()"><B>getLinkedCause()</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>
<DD>Gets the linked cause.
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#getList()"><B>getList()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Return the entire list of generated files
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getListItemType(org.w3c.dom.Node)"><B>getListItemType(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the value of itemType attribute of <xsd:list> in <xsd:simpleType>
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getListNode(org.w3c.dom.Node)"><B>getListNode(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getLoadCounter()"><B>getLoadCounter()</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>get a count of the # of services running.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getLoadableClassName(java.lang.String)"><B>getLoadableClassName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Converts text of the form
 Foo[] to the proper class name for loading [LFoo
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#getLocalHost()"><B>getLocalHost()</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>One method for all host name lookups.
<DT><A HREF="org/apache/axis/utils/NetworkUtils.html#getLocalHostname()"><B>getLocalHostname()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils">NetworkUtils</A>
<DD>Get the string defining the hostname of the system, as taken from
 the default network adapter of the system.
<DT><A HREF="javax/xml/soap/Name.html#getLocalName()"><B>getLocalName()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap">Name</A>
<DD>Gets the local name part of the XML name that this <code>Name</code>
 object represents.
<DT><A HREF="org/apache/axis/SOAPPart.html#getLocalName()"><B>getLocalName()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getLocalName()"><B>getLocalName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns the local part of the qualified name of this node.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getLocalName(int)"><B>getLocalName(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return an attribute's local name.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#getLocalName()"><B>getLocalName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getLocalName()"><B>getLocalName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getLocalNameFromFullName(java.lang.String)"><B>getLocalNameFromFullName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Utility method to get the local class name from a fully qualified java class name
<DT><A HREF="javax/xml/namespace/QName.html#getLocalPart()"><B>getLocalPart()</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Gets the local part for this QName.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getLocationUrl()"><B>getLocationUrl()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the service endpoint URL
<DT><A HREF="org/apache/axis/session/Session.html#getLockObject()"><B>getLockObject()</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Get an Object suitable for synchronizing the session.
<DT><A HREF="org/apache/axis/session/SimpleSession.html#getLockObject()"><B>getLockObject()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Get an Object suitable for synchronizing the session.
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#getLockObject()"><B>getLockObject()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Get an Object suitable for synchronizing the session.
<DT><A HREF="org/apache/axis/components/logger/LogFactory.html#getLog(java.lang.String)"><B>getLog(String)</B></A> - 
Static method in class org.apache.axis.components.logger.<A HREF="org/apache/axis/components/logger/LogFactory.html" title="class in org.apache.axis.components.logger">LogFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/InternalException.html#getLogging()"><B>getLogging()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>
<DD>Discover whether the logging flag is set.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getMIMEInfo(java.lang.String, java.lang.String)"><B>getMIMEInfo(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the mime mapping for the given parameter name.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#getMIMEInfo()"><B>getMIMEInfo()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Get the MIME type of the parameter.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getMIMETypeQName(java.lang.String)"><B>getMIMETypeQName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Given a MIME type, return the AXIS-specific type QName.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getMIMETypes()"><B>getMIMETypes()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the MIME types map.
<DT><A HREF="org/apache/axis/MessageContext.html#getMaintainSession()"><B>getMaintainSession()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Discover if we are maintaining session state.
<DT><A HREF="org/apache/axis/client/Call.html#getMaintainSession()"><B>getMaintainSession()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the value of maintainSession flag.
<DT><A HREF="org/apache/axis/client/Service.html#getMaintainSession()"><B>getMaintainSession()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>If true, this service wants to track sessions.
<DT><A HREF="javax/xml/soap/MimeHeaders.html#getMatchingHeaders(java.lang.String[])"><B>getMatchingHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Returns all the <CODE>MimeHeader</CODE> objects whose
 name matches a name in the given array of names.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getMatchingMimeHeaders(java.lang.String[])"><B>getMatchingMimeHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Retrieves all <CODE>MimeHeader</CODE> objects that match
 a name in the given array.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getMatchingMimeHeaders(java.lang.String[])"><B>getMatchingMimeHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Retrieves all <CODE>MimeHeader</CODE> objects that match
 a name in the given array.
<DT><A HREF="org/apache/axis/Part.html#getMatchingMimeHeaders(java.lang.String[])"><B>getMatchingMimeHeaders(String[])</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Get an <code>Iterator</code> over all headers that match any item in
 <code>match</code>.
<DT><A HREF="org/apache/axis/SOAPPart.html#getMatchingMimeHeaders(java.lang.String[])"><B>getMatchingMimeHeaders(String[])</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get all headers that match.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getMatchingMimeHeaders(java.lang.String[])"><B>getMatchingMimeHeaders(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ElementDesc.html#getMaxOccurs()"><B>getMaxOccurs()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getMaxOccursIsExactlyOne()"><B>getMaxOccursIsExactlyOne()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getMaxOccursIsExactlyOne
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getMaxOccursIsUnbounded()"><B>getMaxOccursIsUnbounded()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getMaxOccursIsUnbounded
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getMaxSessions()"><B>getMaxSessions()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>get max session count
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html#getMaximumConnectionsPerHost()"><B>getMaximumConnectionsPerHost()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>
<DD>Used to set the maximum number of connections that will be pooled
 for a given host.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getMaximumConnectionsPerHost()"><B>getMaximumConnectionsPerHost()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Return the integer value associated with the property
 axis.http.client.maximum.connections.per.host or a default of 2.
<DT><A HREF="org/apache/axis/collections/LRUMap.html#getMaximumSize()"><B>getMaximumSize()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Getter for property maximumSize.
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html#getMaximumTotalConnections()"><B>getMaximumTotalConnections()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientProperties.html" title="interface in org.apache.axis.components.net">CommonsHTTPClientProperties</A>
<DD>Used to set the maximum number of connections that the pool can open
 for all hosts.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#getMaximumTotalConnections()"><B>getMaximumTotalConnections()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>Return the integer value associated with the property 
 axis.http.client.maximum.total.connections or a default of 20.
<DT><A HREF="javax/xml/rpc/encoding/Deserializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/Deserializer.html" title="interface in javax.xml.rpc.encoding">Deserializer</A>
<DD>Gets the type of the XML processing mechanism and
 representation used by this Deserializer.
<DT><A HREF="javax/xml/rpc/encoding/Serializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/Serializer.html" title="interface in javax.xml.rpc.encoding">Serializer</A>
<DD>Gets the type of the XML processing mechanism and representation used by this Serializer.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>JAX-RPC compliant method which returns mechanism type.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser">DocumentSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser">ElementSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#getMechanismType()"><B>getMechanismType()</B></A> - 
Method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getMemberTypeQNames(org.w3c.dom.Node)"><B>getMemberTypeQNames(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Method getMemberTypeQNames
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getMep()"><B>getMep()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html#getMessage()"><B>getMessage()</B></A> - 
Method in interface javax.xml.rpc.handler.soap.<A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html" title="interface in javax.xml.rpc.handler.soap">SOAPMessageContext</A>
<DD>Gets the SOAPMessage from this message context.
<DT><A HREF="javax/xml/soap/SOAPException.html#getMessage()"><B>getMessage()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Returns the detail message for this <CODE>
   SOAPException</CODE> object.
<DT><A HREF="org/apache/axis/MessageContext.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Gets the SOAPMessage from this message context.
<DT><A HREF="org/apache/axis/SOAPPart.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get the <code>Message</code> for this <code>Part</code>.
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the message produced by the language processor
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String)"><B>getMessage(String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String)"><B>getMessage(String, String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String, String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getMessage(java.lang.String, java.lang.String[])"><B>getMessage(String, String[])</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String)"><B>getMessage(String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String)"><B>getMessage(String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessage(java.lang.String, java.lang.String[])"><B>getMessage(String, String[])</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getMessage(java.lang.Object, java.lang.String, java.util.Locale, java.lang.String, java.lang.Object[])"><B>getMessage(Object, String, Locale, String, Object[])</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String)"><B>getMessage(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String)"><B>getMessage(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>getMessage(String, String, String, String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessage(java.lang.String, java.lang.String[])"><B>getMessage(String, String[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/tcpmon.html#getMessage(java.lang.String, java.lang.String)"><B>getMessage(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils">tcpmon</A>
<DD>Get the message with the given key.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Method getMessage
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html" title="class in org.apache.axis.wsdl.symbolTable">MessageEntry</A>
<DD>Get this entry's Message object.
<DT><A HREF="org/apache/axis/i18n/Messages.html#getMessageBundle()"><B>getMessageBundle()</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Messages.html#getMessageBundle()"><B>getMessageBundle()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>
<DD>The method <code>getMessageContext</code> returns the
 <code>MessageContext</code> targeted for this endpoint instance.
<DT><A HREF="org/apache/axis/Message.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get the context associated with this message.
<DT><A HREF="org/apache/axis/client/Call.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Obtain a reference to our MessageContext.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get MessageContext
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get the MessageContext we're operating with
<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#getMessageContext()"><B>getMessageContext()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getMessageEntries()"><B>getMessageEntries()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getMessageEntry(javax.xml.namespace.QName)"><B>getMessageEntry(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the MessageEntry with the given QName.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#getMessageInfo(javax.xml.soap.SOAPMessage)"><B>getMessageInfo(SOAPMessage)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getMessageOperationStyle()"><B>getMessageOperationStyle()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#getMessageType()"><B>getMessageType()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get the message type.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getMessageType()"><B>getMessageType()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the Message Type (REQUEST/RESPONSE)
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getMethod()"><B>getMethod()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseFactory.html#getMethod(java.lang.Class, java.lang.String)"><B>getMethod(Class, String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseFactory.html" title="class in org.apache.axis.encoding.ser">BaseFactory</A>
<DD>Returns the the specified method - if any.
<DT><A HREF="org/apache/axis/utils/cache/JavaClass.html#getMethod(java.lang.String)"><B>getMethod(String)</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache">JavaClass</A>
<DD>Lookup a method based on name.
<DT><A HREF="org/apache/axis/utils/cache/JavaMethod.html#getMethod()"><B>getMethod()</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaMethod.html" title="class in org.apache.axis.utils.cache">JavaMethod</A>
<DD>Lookup a method based on name.
<DT><A HREF="org/apache/axis/utils/cache/MethodCache.html#getMethod(java.lang.Class, java.lang.String, java.lang.Class[])"><B>getMethod(Class, String, Class[])</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/MethodCache.html" title="class in org.apache.axis.utils.cache">MethodCache</A>
<DD>Returns the specified method - if any.
<DT><A HREF="org/apache/axis/message/RPCElement.html#getMethodName()"><B>getMethodName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getMimeHeader(java.lang.String)"><B>getMimeHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Gets all the values of the header identified by the given
 <CODE>String</CODE>.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getMimeHeader(java.lang.String)"><B>getMimeHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Gets all the values of the <CODE>MimeHeader</CODE> object
 in this <CODE>SOAPPart</CODE> object that is identified by
 the given <CODE>String</CODE>.
<DT><A HREF="org/apache/axis/Part.html#getMimeHeader(java.lang.String)"><B>getMimeHeader(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Gets all the values of the <CODE>MimeHeader</CODE> object
 in this <CODE>SOAPPart</CODE> object that is identified by
 the given <CODE>String</CODE>.
<DT><A HREF="org/apache/axis/SOAPPart.html#getMimeHeader(java.lang.String)"><B>getMimeHeader(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Gets all the values of the <CODE>MimeHeader</CODE> object
 in this <CODE>SOAPPart</CODE> object that is identified by
 the given <CODE>String</CODE>.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getMimeHeader(java.lang.String)"><B>getMimeHeader(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Gets all the values of the header identified by the given
 <CODE>String</CODE>.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getMimeHeaders()"><B>getMimeHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Returns all the transport-specific MIME headers for this
 <CODE>SOAPMessage</CODE> object in a transport-independent
 fashion.
<DT><A HREF="org/apache/axis/Message.html#getMimeHeaders()"><B>getMimeHeaders()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Returns all the transport-specific MIME headers for this
 <CODE>SOAPMessage</CODE> object in a transport-independent
 fashion.
<DT><A HREF="org/apache/axis/description/ElementDesc.html#getMinOccurs()"><B>getMinOccurs()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getMinOccursIs0()"><B>getMinOccursIs0()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getMinOccursIs0
<DT><A HREF="org/apache/axis/types/Duration.html#getMinutes()"><B>getMinutes()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>(use getStyle and getUse)</I>
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#getMode()"><B>getMode()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Get the mode (IN, INOUT, OUT) of the parameter.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getModeAsString(byte)"><B>getModeAsString(byte)</B></A> - 
Static method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#getModeString(byte)"><B>getModeString(byte)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Method getModeString
<DT><A HREF="org/apache/axis/types/Month.html#getMonth()"><B>getMonth()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#getMonth()"><B>getMonth()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#getMonth()"><B>getMonth()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#getMonths()"><B>getMonths()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPHeaderElement.html#getMustUnderstand()"><B>getMustUnderstand()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap">SOAPHeaderElement</A>
<DD>Returns whether the mustUnderstand attribute for this
 <CODE>SOAPHeaderElement</CODE> object is turned on.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#getMustUnderstand()"><B>getMustUnderstand()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getMustunderstandFaultQName()"><B>getMustunderstandFaultQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the Qname of Mustunderstand fault code
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getMustunderstandFaultQName()"><B>getMustunderstandFaultQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the Qname of Mustunderstand fault code
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getMustunderstandFaultQName()"><B>getMustunderstandFaultQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the Qname of Mustunderstand fault code
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getMyConfig()"><B>getMyConfig()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/MimeHeader.html#getName()"><B>getName()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeader.html" title="class in javax.xml.soap">MimeHeader</A>
<DD>Returns the name of this <CODE>MimeHeader</CODE>
 object.
<DT><A HREF="org/apache/axis/Handler.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Return the name (i.e.
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This will flush any memory source to disk and
 provide the name of the file if desired.
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDBsfProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDHandlerProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaCORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaEJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaMsgProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>the name of the service
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Return the operation's name
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>the name of the service
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Return the name (i.e.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the local name of this element
<DT><A HREF="org/apache/axis/security/AuthenticatedUser.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.axis.security.<A HREF="org/apache/axis/security/AuthenticatedUser.html" title="interface in org.apache.axis.security">AuthenticatedUser</A>
<DD>Return a string representation of the user's name.
<DT><A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html" title="class in org.apache.axis.security.servlet">ServletAuthenticatedUser</A>
<DD>Return a string representation of the user's name.
<DT><A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html" title="class in org.apache.axis.security.simple">SimpleAuthenticatedUser</A>
<DD>Return a string representation of the user's name.
<DT><A HREF="org/apache/axis/types/Notation.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Get our property name.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Retrieve name of option which is also text for long option.
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Return the name of the fault.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Get the name of this parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Get the name of this entry.
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#getName()"><B>getName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#getNameDiscoverer()"><B>getNameDiscoverer()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#getNamedItem(java.lang.String)"><B>getNamedItem(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Retrieves a node specified by name.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#getNamedItemNS(java.lang.String, java.lang.String)"><B>getNamedItemNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Retrieves a node specified by local name and namespace URI.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getNamespace(java.lang.String, org.w3c.dom.Node, org.w3c.dom.Node)"><B>getNamespace(String, Node, Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Searches for the namespace URI of the given prefix in the given DOM range.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getNamespace(java.lang.String, org.w3c.dom.Node)"><B>getNamespace(String, Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#getNamespace()"><B>getNamespace()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getNamespaceExcludes()"><B>getNamespaceExcludes()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Returns the list of excludes to specifically exclude
 from the generated source.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getNamespaceIncludes()"><B>getNamespaceIncludes()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Returns the list of namespaces specifically excluded
 from the generated code.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getNamespaceMap()"><B>getNamespaceMap()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>get the packagename to namespace map
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getNamespaceMap()"><B>getNamespaceMap()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the map of namespace -> Java package names
<DT><A HREF="javax/xml/soap/SOAPElement.html#getNamespacePrefixes()"><B>getNamespacePrefixes()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns an iterator of namespace prefixes.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getNamespacePrefixes()"><B>getNamespacePrefixes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an iterator of the prefixes.
<DT><A HREF="javax/xml/namespace/QName.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Gets the namespace URI for this QName.
<DT><A HREF="javax/xml/soap/SOAPElement.html#getNamespaceURI(java.lang.String)"><B>getNamespaceURI(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns the URI of the namespace that has the given
 prefix.
<DT><A HREF="org/apache/axis/SOAPPart.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getNamespaceURI(java.lang.String)"><B>getNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the Namespace for a particular prefix
<DT><A HREF="org/apache/axis/message/MessageElement.html#getNamespaceURI(java.lang.String)"><B>getNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>map from a prefix to a namespace.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The namespace URI of this node, or <code>null</code> if it is
 unspecified.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Mapping.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#getNamespaceURI(java.lang.String)"><B>getNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Given a prefix, return the associated namespace (if any).
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getNamespaces()"><B>getNamespaces()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Obtain the list of namespaces registered for this service
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#getNamespaces()"><B>getNamespaces()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Get the list of namespaces currently registered
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getNamespaces()"><B>getNamespaces()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Return the namespaces object for the current context
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getNamespaces()"><B>getNamespaces()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Method getNamespaces
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getNestedTypes(org.apache.axis.wsdl.symbolTable.SymbolTable, boolean)"><B>getNestedTypes(SymbolTable, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>This method returns a set of all the nested types.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getNestedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable, boolean)"><B>getNestedTypes(TypeEntry, SymbolTable, boolean)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>This method returns a set of all the nested types.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getNewQName(javax.xml.namespace.QName)"><B>getNewQName(QName)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Common code for generating a QName in emitted code.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getNewQNameWithLastLocalPart(javax.xml.namespace.QName)"><B>getNewQNameWithLastLocalPart(QName)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getNext()"><B>getNext()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>getDelegate gets the new Delegate TypeMapping
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#getNext()"><B>getNext()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getNextRoleURI()"><B>getNextRoleURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the "next" role/actor URI
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getNextRoleURI()"><B>getNextRoleURI()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the "next" role/actor URI
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getNextRoleURI()"><B>getNextRoleURI()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the "next" role/actor URI
<DT><A HREF="org/apache/axis/SOAPPart.html#getNextSibling()"><B>getNextSibling()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getNextSibling()"><B>getNextSibling()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The node immediately following this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getNextSibling()"><B>getNextSibling()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#getNextStream()"><B>getNextStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Gets the next stream.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#getNextStream(int)"><B>getNextStream(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Gets the next stream.
<DT><A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html#getNextStream()"><B>getNextStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeAttachmentStreams.html" title="class in org.apache.axis.attachments">DimeAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html#getNextStream()"><B>getNextStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html#getNextStream()"><B>getNextStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments">MultipartAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#getNilQName()"><B>getNilQName()</B></A> - 
Method in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>Get the appropriate QName for the "null"/"nil" attribute for this
 Schema version.
<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html#getNilQName()"><B>getNilQName()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>
<DD>Get the appropriate QName for the "null"/"nil" attribute for this
 Schema version.
<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html#getNilQName()"><B>getNilQName()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>
<DD>Get the appropriate QName for the "null"/"nil" attribute for this
 Schema version.
<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html#getNilQName()"><B>getNilQName()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>
<DD>Get the appropriate QName for the "null"/"nil" attribute for this
 Schema version.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getNillable()"><B>getNillable()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getNillable
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getNode()"><B>getNode()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Query the node for this type.
<DT><A HREF="org/apache/axis/SOAPPart.html#getNodeName()"><B>getNodeName()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Node Implementation
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getNodeName()"><B>getNodeName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The name of this node, depending on its type; see the table above.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getNodeName()"><B>getNodeName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Node Implementation
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getNodeNameQName(org.w3c.dom.Node)"><B>getNodeNameQName(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>XML nodes may have a name attribute.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getNodeQName(org.w3c.dom.Node)"><B>getNodeQName(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>An xml element may have a name.
<DT><A HREF="org/apache/axis/SOAPPart.html#getNodeType()"><B>getNodeType()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getNodeType()"><B>getNodeType()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>A code representing the type of the underlying object, as defined above.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getNodeType()"><B>getNodeType()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>override it in sub-classes
<DT><A HREF="org/apache/axis/SOAPPart.html#getNodeValue()"><B>getNodeValue()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getNodeValue()"><B>getNodeValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The value of this node, depending on its type; see the table above.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getNodeValue()"><B>getNodeValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#getNodeValue()"><B>getNodeValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>Implementation of DOM TEXT Interface
 *************************************************************
<DT><A HREF="javax/xml/soap/MimeHeaders.html#getNonMatchingHeaders(java.lang.String[])"><B>getNonMatchingHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Returns all of the <CODE>MimeHeader</CODE> objects whose
 name does not match a name in the given array of names.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getNonMatchingMimeHeaders(java.lang.String[])"><B>getNonMatchingMimeHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Retrieves all <CODE>MimeHeader</CODE> objects whose name
 does not match a name in the given array.
<DT><A HREF="javax/xml/soap/SOAPPart.html#getNonMatchingMimeHeaders(java.lang.String[])"><B>getNonMatchingMimeHeaders(String[])</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Retrieves all <CODE>MimeHeader</CODE> objects whose name
 does not match a name in the given array.
<DT><A HREF="org/apache/axis/Part.html#getNonMatchingMimeHeaders(java.lang.String[])"><B>getNonMatchingMimeHeaders(String[])</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Get all headers that do not match.
<DT><A HREF="org/apache/axis/SOAPPart.html#getNonMatchingMimeHeaders(java.lang.String[])"><B>getNonMatchingMimeHeaders(String[])</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Get all headers that do not match.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getNonMatchingMimeHeaders(java.lang.String[])"><B>getNonMatchingMimeHeaders(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#getNonProxyHosts()"><B>getNonProxyHosts()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#getNonProxyHosts()"><B>getNonProxyHosts()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html#getNonProxyHosts()"><B>getNonProxyHosts()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>
<DD>Returns a valid String, may be empty ("").
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getNumInParams()"><B>getNumInParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getNumOutParams()"><B>getNumOutParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getNumParams()"><B>getNumParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getNumRetries()"><B>getNumRetries()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#getObjectAttributes(java.lang.Object, org.xml.sax.Attributes, org.apache.axis.encoding.SerializationContext)"><B>getObjectAttributes(Object, Attributes, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>Check for meta-data in the bean that will tell us if any of the
 properties are actually attributes, add those to the element
 attribute list
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getObjectByRef(java.lang.String)"><B>getObjectByRef(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Gets the MessageElement or actual Object value associated with the href value.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)"><B>getObjectInstance(Object, Name, Context, Hashtable)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getObjectValue()"><B>getObjectValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Returns value of the node as an object of registered type.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getObjectValue(java.lang.Class)"><B>getObjectValue(Class)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Returns value of the node as an object of registered type.
<DT><A HREF="org/apache/axis/message/RPCParam.html#getObjectValue()"><B>getObjectValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getOperation()"><B>getOperation()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The current operation.
<DT><A HREF="org/apache/axis/client/Call.html#getOperation()"><B>getOperation()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#getOperation(java.lang.String)"><B>getOperation(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getOperationByElementQName(javax.xml.namespace.QName)"><B>getOperationByElementQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Map an XML QName to an operation.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getOperationByElementQName(javax.xml.namespace.QName)"><B>getOperationByElementQName(QName)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>Map an XML QName to an operation.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getOperationByName(java.lang.String)"><B>getOperationByName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Return an operation matching the given method name.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getOperationByName(java.lang.String)"><B>getOperationByName(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>Return an operation matching the given method name.
<DT><A HREF="org/apache/axis/MessageContext.html#getOperationByQName(javax.xml.namespace.QName)"><B>getOperationByQName(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>get the first possible operation that could match a
 body containing an element of the given QName.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html#getOperationDesc()"><B>getOperationDesc()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#getOperationDesc(org.apache.axis.MessageContext, org.apache.axis.message.RPCElement)"><B>getOperationDesc(MessageContext, RPCElement)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getOperationJavaNameHook(org.apache.axis.wsdl.symbolTable.BindingEntry, java.lang.String)"><B>getOperationJavaNameHook(BindingEntry, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#getOperationName()"><B>getOperationName()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the name of the operation to be invoked using this Call instance.
<DT><A HREF="org/apache/axis/client/Call.html#getOperationName()"><B>getOperationName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the operation name associated with this Call object.
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#getOperationName(javax.xml.namespace.QName)"><B>getOperationName(QName)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#getOperationNames()"><B>getOperationNames()</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getOperationParameters(javax.wsdl.Operation, java.lang.String, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>getOperationParameters(Operation, String, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>For the given operation, this method returns the parameter info conveniently collated.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getOperationQName(javax.wsdl.BindingOperation, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>getOperationQName(BindingOperation, BindingEntry, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return the operation QName.
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#getOperationQNames()"><B>getOperationQNames()</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getOperationSOAPAction(javax.wsdl.BindingOperation)"><B>getOperationSOAPAction(BindingOperation)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return the SOAPAction (if any) of this binding operation
<DT><A HREF="org/apache/axis/MessageContext.html#getOperationStyle()"><B>getOperationStyle()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the operation style.
<DT><A HREF="org/apache/axis/client/Call.html#getOperationStyle()"><B>getOperationStyle()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the operation style.
<DT><A HREF="org/apache/axis/MessageContext.html#getOperationUse()"><B>getOperationUse()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the operation use.
<DT><A HREF="org/apache/axis/client/Call.html#getOperationUse()"><B>getOperationUse()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the operation use.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#getOperations()"><B>getOperations()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getOperations()"><B>getOperations()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>get all the operations as a list of OperationDescs.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getOperations()"><B>getOperations()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>get all the operations as a list of OperationDescs.
<DT><A HREF="org/apache/axis/message/RPCElement.html#getOperations()"><B>getOperations()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getOperations()"><B>getOperations()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get a <CODE>Set</CODE> of comprised <CODE>Operation</CODE> objects.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getOperationsByName(java.lang.String)"><B>getOperationsByName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>get all overloaded operations by name
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getOperationsByName(java.lang.String)"><B>getOperationsByName(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>get all overloaded operations by name
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getOperationsByQName(javax.xml.namespace.QName)"><B>getOperationsByQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Return all operations which match this QName (i.e.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getOperationsByQName(javax.xml.namespace.QName)"><B>getOperationsByQName(QName)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>Return all operations which match this QName (i.e.
<DT><A HREF="org/apache/axis/Handler.html#getOption(java.lang.String)"><B>getOption(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Returns the option corresponding to the 'name' given.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#getOption(java.lang.String)"><B>getOption(String)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Returns the option corresponding to the 'name' given
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getOption(javax.servlet.ServletContext, java.lang.String, java.lang.String)"><B>getOption(ServletContext, String, String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>Retrieve option, in order of precedence:
 (Managed) System property (see discovery.ManagedProperty),
 servlet init param, context init param.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html#getOptional()"><B>getOptional()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedAttribute</A>
<DD>Method getOptional
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#getOptional()"><B>getOptional()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method getOptional
<DT><A HREF="org/apache/axis/Handler.html#getOptions()"><B>getOptions()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Return the entire list of options.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#getOptions()"><B>getOptions()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Return the entire list of options
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistry.html#getOrMakeTypeMapping(java.lang.String)"><B>getOrMakeTypeMapping(String)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding">TypeMappingRegistry</A>
<DD>Obtain a type mapping for the given encoding style.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#getOrMakeTypeMapping(java.lang.String)"><B>getOrMakeTypeMapping(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Obtain a type mapping for the given encodingStyle.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getOrder()"><B>getOrder()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html#getOriginalServiceName()"><B>getOriginalServiceName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ServiceEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getOutParams()"><B>getOutParams()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Returns an ordered list of out params (NOT inouts)
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#getOutputBodyType()"><B>getOutputBodyType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method getOutputBodyType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getOutputBodyType(javax.wsdl.Operation)"><B>getOutputBodyType(Operation)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the output body type for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getOutputDir()"><B>getOutputDir()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the output directory to use for emitted source files
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#getOutputNamespace(java.lang.String)"><B>getOutputNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Used to return the namespace of the output clause of the given
 operation.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getOutputParamByQName(javax.xml.namespace.QName)"><B>getOutputParamByQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#getOutputParams()"><B>getOutputParams()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Returns a <code>Map</code> of {name, value} for the output parameters of
 the last invoked operation.
<DT><A HREF="org/apache/axis/client/Call.html#getOutputParams()"><B>getOutputParams()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the output parameters (if any) from the last invocation.
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This method returns an OutputStream where the data can be written and
 throws the appropriate exception if it can not do so.
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#getOutputStream()"><B>getOutputStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#getOutputValues()"><B>getOutputValues()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Returns a <code>List</code> values for the output parameters
 of the last invoked operation.
<DT><A HREF="org/apache/axis/client/Call.html#getOutputValues()"><B>getOutputValues()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns a List values for the output parameters of the last
 invoked operation.
<DT><A HREF="org/apache/axis/SOAPPart.html#getOwnerDocument()"><B>getOwnerDocument()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getOwnerDocument()"><B>getOwnerDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getOwnerDocument()"><B>getOwnerDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The <code>Document</code> object associated with this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getOwnerDocument()"><B>getOwnerDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>we have to have a link to them...
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#getPOP3()"><B>getPOP3()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Obtain the serverSocket that that MailServer is listening on.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#getPackage(java.lang.String)"><B>getPackage(String)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Reverse the process.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getPackage(java.lang.String)"><B>getPackage(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the Package name for the specified namespace
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getPackage(javax.xml.namespace.QName)"><B>getPackage(QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the Package name for the specified QName
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#getPackage()"><B>getPackage()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Returns the package name.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get global package name to use instead of mapping namespaces
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getPackageNameFromFullName(java.lang.String)"><B>getPackageNameFromFullName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Utility method to get the package name from a fully qualified java class name
<DT><A HREF="org/apache/axis/message/RPCElement.html#getParam(java.lang.String)"><B>getParam(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>This gets the FIRST param whose name matches.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getParamByQName(javax.xml.namespace.QName)"><B>getParamByQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParam.html#getParamDesc()"><B>getParamDesc()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getParameter(java.lang.String)"><B>getParameter(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Get the value of one of our parameters
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#getParameter()"><B>getParameter()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getParameter(int)"><B>getParameter(int)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#getParameterMode(java.lang.String, int)"><B>getParameterMode(String, int)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Used to return the mode of the n-th parameter of the specified
 operation.
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#getParameterName(java.lang.String, int)"><B>getParameterName(String, int)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Used to return the name of the n-th parameter of the specified
 operation.
<DT><A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html#getParameterNames(java.lang.reflect.Constructor)"><B>getParameterNames(Constructor)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html" title="class in org.apache.axis.utils.bytecode">ChainedParamReader</A>
<DD>return the names of the declared parameters for the given constructor.
<DT><A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html#getParameterNames(java.lang.reflect.Method)"><B>getParameterNames(Method)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ChainedParamReader.html" title="class in org.apache.axis.utils.bytecode">ChainedParamReader</A>
<DD>return the names of the declared parameters for the given method.
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#getParameterNames(java.lang.reflect.Constructor)"><B>getParameterNames(Constructor)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>return the names of the declared parameters for the given constructor.
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#getParameterNames(java.lang.reflect.Method)"><B>getParameterNames(Method)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>return the names of the declared parameters for the given method.
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#getParameterNames(java.lang.reflect.Member, java.lang.Class[])"><B>getParameterNames(Member, Class[])</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html#getParameterNamesFromDebugInfo(java.lang.reflect.Method)"><B>getParameterNamesFromDebugInfo(Method)</B></A> - 
Static method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html" title="class in org.apache.axis.utils.bytecode">ParamNameExtractor</A>
<DD>Retrieve a list of function parameter names from a method
 Returns null if unable to read parameter names (i.e.
<DT><A HREF="javax/xml/rpc/Call.html#getParameterTypeByName(java.lang.String)"><B>getParameterTypeByName(String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the XML type of a parameter by name.
<DT><A HREF="org/apache/axis/client/Call.html#getParameterTypeByName(java.lang.String)"><B>getParameterTypeByName(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Return the QName of the type of the parameters with the given name.
<DT><A HREF="org/apache/axis/client/Call.html#getParameterTypeByQName(javax.xml.namespace.QName)"><B>getParameterTypeByQName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Return the QName of the type of the parameters with the given name.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getParameterTypeJavaNameHook(org.apache.axis.wsdl.symbolTable.BindingEntry, java.lang.String, int)"><B>getParameterTypeJavaNameHook(BindingEntry, String, int)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getParameterTypeName(org.apache.axis.wsdl.symbolTable.Parameter)"><B>getParameterTypeName(Parameter)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Get the parameter type name.
<DT><A HREF="org/apache/axis/description/FaultDesc.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getParameters(javax.wsdl.Operation)"><B>getParameters(Operation)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the Parameters object for the given operation.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#getParameters()"><B>getParameters()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get all of the parameters for all operations.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getParametersFromParts(java.util.Vector, java.util.Collection, boolean, java.lang.String, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>getParametersFromParts(Vector, Collection, boolean, String, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>This method returns a vector containing Parameters which represent
 each Part (shouldn't we call these "Parts" or something?)

 This routine does the wrapped doc/lit processing.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getParametersTable()"><B>getParametersTable()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Returns the config parameters as a hashtable (lockable)
<DT><A HREF="org/apache/axis/message/RPCElement.html#getParams()"><B>getParams()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getParent()"><B>getParent()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getParent()"><B>getParent()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>get the parent node
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#getParent()"><B>getParent()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Gets the parent Hashtable for this object (if any)
<DT><A HREF="javax/xml/soap/Node.html#getParentElement()"><B>getParentElement()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>Returns the parent element of this <code>Node</code> object.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getParentElement()"><B>getParentElement()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns the parent element of this <code>Node</code> object.
<DT><A HREF="org/apache/axis/SOAPPart.html#getParentNode()"><B>getParentNode()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getParentNode()"><B>getParentNode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The parent of this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getParentNode()"><B>getParentNode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#getParser()"><B>getParser()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>getParser
 get the Parser object
<DT><A HREF="org/apache/axis/MessageContext.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the password.
<DT><A HREF="org/apache/axis/client/Call.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the password.
<DT><A HREF="org/apache/axis/client/Stub.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the password
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Options.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getPassword()"><B>getPassword()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method getPassword
<DT><A HREF="org/apache/axis/utils/DefaultAuthenticator.html#getPasswordAuthentication()"><B>getPasswordAuthentication()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultAuthenticator.html" title="class in org.apache.axis.utils">DefaultAuthenticator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getPastPivot()"><B>getPastPivot()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Determine when we've passed the pivot.
<DT><A HREF="org/apache/axis/types/URI.html#getPath(boolean, boolean)"><B>getPath(boolean, boolean)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the path for this URI (optionally with the query string and
 fragment).
<DT><A HREF="org/apache/axis/types/URI.html#getPath()"><B>getPath()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the path for this URI.
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getPd(java.lang.Class)"><B>getPd(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>Create a BeanPropertyDescriptor array for the indicated class.
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getPd(java.lang.Class, org.apache.axis.description.TypeDesc)"><B>getPd(Class, TypeDesc)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>Create a BeanPropertyDescriptor array for the indicated class.
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#getPivotHandler()"><B>getPivotHandler()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/TargetedChain.html#getPivotHandler()"><B>getPivotHandler()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/TargetedChain.html" title="interface in org.apache.axis">TargetedChain</A>
<DD>Returns the Pivot Handler.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#getPivotQName()"><B>getPivotQName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#getPkg2NamespacesMap()"><B>getPkg2NamespacesMap()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getPool()"><B>getPool()</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>get the thread pool
<DT><A HREF="javax/xml/rpc/Service.html#getPort(javax.xml.namespace.QName, java.lang.Class)"><B>getPort(QName, Class)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>The getPort method returns either an instance of a generated
 stub implementation class or a dynamic proxy.
<DT><A HREF="javax/xml/rpc/Service.html#getPort(java.lang.Class)"><B>getPort(Class)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>The getPort method returns either an instance of a generated
 stub implementation class or a dynamic proxy.
<DT><A HREF="org/apache/axis/client/Service.html#getPort(javax.xml.namespace.QName, java.lang.Class)"><B>getPort(QName, Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Return either an instance of a generated stub, if it can be
 found, or a dynamic proxy for the given proxy interface.
<DT><A HREF="org/apache/axis/client/Service.html#getPort(java.lang.Class)"><B>getPort(Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Return a dynamic proxy for the given proxy interface.
<DT><A HREF="org/apache/axis/client/Service.html#getPort(java.lang.String, java.lang.Class)"><B>getPort(String, Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Return an object which acts as a dynamic proxy for the passed
 interface class.
<DT><A HREF="org/apache/axis/types/URI.html#getPort()"><B>getPort()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the port for this URI.
<DT><A HREF="org/apache/axis/utils/Options.html#getPort()"><B>getPort()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html#getPort()"><B>getPort()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortEntry</A>
<DD>replies the WSDL port element represented by this symbol table entry
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getPortJavaNameHook(java.lang.String)"><B>getPortJavaNameHook(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#getPortName()"><B>getPortName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the fully qualified name of the port for this Call object
 (if there is one).
<DT><A HREF="org/apache/axis/client/Stub.html#getPortName()"><B>getPortName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the port name.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html#getPortType()"><B>getPortType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortTypeEntry</A>
<DD>Get this entry's PortType object.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getPortTypeEntry(javax.xml.namespace.QName)"><B>getPortTypeEntry(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the PortTypeEntry with the given QName.
<DT><A HREF="javax/xml/rpc/Call.html#getPortTypeName()"><B>getPortTypeName()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the qualified name of the port type.
<DT><A HREF="org/apache/axis/client/Call.html#getPortTypeName()"><B>getPortTypeName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the fully qualified name of the port type for this Call object
 (if there is one).
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getPortTypeName()"><B>getPortTypeName()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the portType name
<DT><A HREF="javax/xml/rpc/Service.html#getPorts()"><B>getPorts()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Returns an <code>Iterator</code> for the list of
 <code>QName</code>s of service endpoints grouped by this
 service.
<DT><A HREF="org/apache/axis/client/Service.html#getPorts()"><B>getPorts()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns an <code>Iterator</code> for the list of
 <code>QName</code>s of service endpoints grouped by this
 service
<DT><A HREF="org/apache/axis/MessageContext.html#getPossibleOperationsByQName(javax.xml.namespace.QName)"><B>getPossibleOperationsByQName(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns a list of operation descriptors that could may
 possibly match a body containing an element of the given QName.
<DT><A HREF="javax/xml/namespace/QName.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Gets the prefix for this QName.
<DT><A HREF="javax/xml/soap/Name.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap">Name</A>
<DD>Returns the prefix associated with the namespace for the XML
 name that this <code>Name</code> object represents.
<DT><A HREF="org/apache/axis/SOAPPart.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getPrefix(java.lang.String)"><B>getPrefix(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the prefix for a given namespace URI
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The namespace prefix of this node, or <code>null</code> if it is
 unspecified.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Mapping.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#getPrefix(java.lang.String, boolean)"><B>getPrefix(String, boolean)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Return an active prefix for the given namespaceURI.
<DT><A HREF="org/apache/axis/utils/NSStack.html#getPrefix(java.lang.String)"><B>getPrefix(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Return an active prefix for the given namespaceURI, including
 the default prefix ("").
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getPrefix(java.lang.String, org.w3c.dom.Node)"><B>getPrefix(String, Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getPrefixForURI(java.lang.String)"><B>getPrefixForURI(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get a prefix for a namespace URI.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getPrefixForURI(java.lang.String, java.lang.String)"><B>getPrefixForURI(String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get a prefix for the given namespace URI.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getPrefixForURI(java.lang.String, java.lang.String, boolean)"><B>getPrefixForURI(String, String, boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get a prefix for the given namespace URI.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getPretty()"><B>getPretty()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get whether the serialization should be pretty printed.
<DT><A HREF="org/apache/axis/SOAPPart.html#getPreviousSibling()"><B>getPreviousSibling()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getPreviousSibling()"><B>getPreviousSibling()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The node immediately preceding this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#getPreviousSibling()"><B>getPreviousSibling()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getPrimitiveClass(java.lang.Class)"><B>getPrimitiveClass(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getPrimitiveClassFromName(java.lang.String)"><B>getPrimitiveClassFromName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#getPrintWriter(java.lang.String)"><B>getPrintWriter(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>The default behaviour (of super.getPrintWriter) is, given the
 file name, create a PrintWriter for it.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#getPrintWriter(java.lang.String)"><B>getPrintWriter(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Method getPrintWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#getPrintWriter(java.lang.String)"><B>getPrintWriter(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Method getPrintWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#getPrintWriter(java.lang.String)"><B>getPrintWriter(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>You should not need to override this method.
<DT><A HREF="org/apache/axis/AxisProperties.html#getProperties()"><B>getProperties()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>This is an expensive operation.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html#getProperties(java.lang.Class, org.apache.axis.description.TypeDesc)"><B>getProperties(Class, TypeDesc)</B></A> - 
Static method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>
<DD>Get a list of the bean properties
<DT><A HREF="org/apache/axis/i18n/RB.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get the underlying properties
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getProperties()"><B>getProperties()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Gets the list of extension properties for custom
 JavaGeneratorFactories.
<DT><A HREF="javax/xml/rpc/Call.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the value of a named property.
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>
<DD>Gets the value of a specific property from the
 <code>MessageContext</code>.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Retrieves value of the specified property.
<DT><A HREF="org/apache/axis/AxisProperties.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Get value for property bound to the current thread context class loader.
<DT><A HREF="org/apache/axis/AxisProperties.html#getProperty(java.lang.String, java.lang.String)"><B>getProperty(String, String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Get value for property bound to the current thread context class loader.
<DT><A HREF="org/apache/axis/Message.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns the value associated with the named property - or null if not
 defined/set.
<DT><A HREF="org/apache/axis/client/Call.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the value associated with the named property.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getProperty(java.lang.String)"><B>getProperty(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getPropertyDescriptorMap()"><B>getPropertyDescriptorMap()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get/Cache the property descriptor map
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getPropertyDescriptors()"><B>getPropertyDescriptors()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Get/Cache the property descriptors
<DT><A HREF="javax/xml/rpc/Call.html#getPropertyNames()"><B>getPropertyNames()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the names of configurable properties supported by
 this <code>Call</code> object.
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html#getPropertyNames()"><B>getPropertyNames()</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>
<DD>Returns an Iterator view of the names of the properties
 in this <code>MessageContext</code>.
<DT><A HREF="org/apache/axis/MessageContext.html#getPropertyNames()"><B>getPropertyNames()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Returns an <code>Iterator</code> view of the names of the properties in
 this <code>MessageContext</code>.
<DT><A HREF="org/apache/axis/client/Call.html#getPropertyNames()"><B>getPropertyNames()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getPropertyValue(java.lang.String)"><B>getPropertyValue(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#getProvider()"><B>getProvider()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getProviderQName()"><B>getProviderQName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#getProxyHost()"><B>getProxyHost()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#getProxyHost()"><B>getProxyHost()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html#getProxyHost()"><B>getProxyHost()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>
<DD>Returns a valid String, may be empty ("").
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#getProxyPassword()"><B>getProxyPassword()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#getProxyPassword()"><B>getProxyPassword()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html#getProxyPassword()"><B>getProxyPassword()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>
<DD>Returns a valid String, may be empty ("").
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#getProxyPort()"><B>getProxyPort()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#getProxyPort()"><B>getProxyPort()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html#getProxyPort()"><B>getProxyPort()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>
<DD>Returns a valid String, may be empty ("").
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html#getProxyUser()"><B>getProxyUser()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPSTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPSTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#getProxyUser()"><B>getProxyUser()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html#getProxyUser()"><B>getProxyUser()</B></A> - 
Method in interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>
<DD>Returns a valid String, may be empty ("").
<DT><A HREF="org/apache/axis/types/Notation.html#getPublic()"><B>getPublic()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the fully qualified name of this element
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getQName(int)"><B>getQName(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return an attribute's qualified (prefixed) name.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Return the QName of a fault.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Get the fully qualified name of this parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#getQName()"><B>getQName()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Get the QName of this entry.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getQName2ClassMap()"><B>getQName2ClassMap()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Return the type qname to java type mapping
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getQName2ClassMap()"><B>getQName2ClassMap()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the type qname to java class map
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getQNameForClass(java.lang.Class)"><B>getQNameForClass(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get the QName associated with the specified class.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getQNameFromPrefixedName(org.w3c.dom.Node, java.lang.String)"><B>getQNameFromPrefixedName(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Convert a prefixed name into a qname
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getQNameFromString(java.lang.String)"><B>getQNameFromString(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Construct a QName from a string of the form <prefix>:<localName>
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getQNameFromString(java.lang.String, org.w3c.dom.Node)"><B>getQNameFromString(String, Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<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.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getQNameString(javax.xml.namespace.QName)"><B>getQNameString(QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Return a string suitable for representing a given QName in the context
 of this WSDL document.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#getQNameWithBackslashedLocal(javax.xml.namespace.QName)"><B>getQNameWithBackslashedLocal(QName)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#getQNameWithBackslashlessLocal(javax.xml.namespace.QName)"><B>getQNameWithBackslashlessLocal(QName)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#getQNameWithDifferentLocal(javax.xml.namespace.QName, java.lang.String)"><B>getQNameWithDifferentLocal(QName, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>Creates a copy of the supplied QName w/ the supplied local name
<DT><A HREF="javax/xml/soap/Name.html#getQualifiedName()"><B>getQualifiedName()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap">Name</A>
<DD>Gets the namespace-qualified name of the XML name that this
 <code>Name</code> object represents.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#getQualifiedName()"><B>getQualifiedName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#getQueryString()"><B>getQueryString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the query string for this URI.
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getQueue(javax.jms.QueueSession, java.lang.String)"><B>getQueue(QueueSession, String)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#getQueue(javax.jms.QueueSession, java.lang.String)"><B>getQueue(QueueSession, String)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html#getQueueConnectionFactory(java.util.HashMap)"><B>getQueueConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms">BeanVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getQueueConnectionFactory(java.util.HashMap)"><B>getQueueConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#getQueueConnectionFactory(java.util.HashMap)"><B>getQueueConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#getQueueConnectionFactory(java.util.HashMap)"><B>getQueueConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getRealElement()"><B>getRealElement()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the 'real' element -will follow hrefs.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getRecorder()"><B>getRecorder()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get Event Recorder
<DT><A HREF="org/apache/axis/message/MessageElement.html#getRecorder()"><B>getRecorder()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the event recorder
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getRef()"><B>getRef()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getRefType()"><B>getRefType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>If this type references another type, return that type, otherwise return null.
<DT><A HREF="org/apache/axis/client/Service.html#getReference()"><B>getReference()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns a reference to this object.
<DT><A HREF="org/apache/axis/message/IDResolver.html#getReferencedObject(java.lang.String)"><B>getReferencedObject(String)</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/IDResolver.html" title="interface in org.apache.axis.message">IDResolver</A>
<DD>Get the object refereced by the href
<DT><A HREF="org/apache/axis/types/URI.html#getRegBasedAuthority()"><B>getRegBasedAuthority()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the registry based authority for this URI.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#getRegisteredEncodingStyleURIs()"><B>getRegisteredEncodingStyleURIs()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Returns a list of registered encodingStyle URIs in this
 <code>TypeMappingRegistry</code> instance.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#getRegisteredEncodingStyleURIs()"><B>getRegisteredEncodingStyleURIs()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Gets a list of namespace URIs registered with this TypeMappingRegistry.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#getRelay()"><B>getRelay()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Options.html#getRemainingArgs()"><B>getRemainingArgs()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>This returns an array of unused args - these are the non-option
 args from the command line.
<DT><A HREF="org/apache/axis/utils/Options.html#getRemainingFlags()"><B>getRemainingFlags()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>This just returns a string with the unprocessed flags - mainly
 for error reporting - so you can report the unknown flags.
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#getRep()"><B>getRep()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Get the internal HttpSession.
<DT><A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html#getRequest()"><B>getRequest()</B></A> - 
Method in class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html" title="class in org.apache.axis.security.servlet">ServletAuthenticatedUser</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getRequestFlow()"><B>getRequestFlow()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Get our request flow
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#getRequestFlow()"><B>getRequestFlow()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#getRequestHandler()"><B>getRequestHandler()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/TargetedChain.html#getRequestHandler()"><B>getRequestHandler()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/TargetedChain.html" title="interface in org.apache.axis">TargetedChain</A>
<DD>Returns the Request handler.
<DT><A HREF="org/apache/axis/MessageContext.html#getRequestMessage()"><B>getRequestMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the request message.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getRequestQName(org.apache.axis.description.OperationDesc)"><B>getRequestQName(OperationDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method getRequestQName
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getRequiredProperties()"><B>getRequiredProperties()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#getResourceAsStream(java.lang.Class, java.lang.String, boolean)"><B>getResourceAsStream(Class, String, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Get an input stream from a named resource.
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#getResourceAsStream(java.lang.Class, java.lang.String)"><B>getResourceAsStream(Class, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Get an input stream from a named resource.
<DT><A HREF="org/apache/axis/utils/JWSClassLoader.html#getResourceAsStream(java.lang.String)"><B>getResourceAsStream(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JWSClassLoader.html" title="class in org.apache.axis.utils">JWSClassLoader</A>
<DD>Overloaded getResourceAsStream() so we can be sure to return the
 correct class file regardless of where it might live on our hard
 drive.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#getResourceBundle()"><B>getResourceBundle()</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/Messages.html#getResourceBundle()"><B>getResourceBundle()</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Messages.html#getResourceBundle()"><B>getResourceBundle()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#getResourceClassIterator(java.lang.Class)"><B>getResourceClassIterator(Class)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#getResourceName()"><B>getResourceName()</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#getResourcesToRegister()"><B>getResourcesToRegister()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>subclass this to return an array of resource names.
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#getResponse()"><B>getResponse()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method getResponse
<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html#getResponse()"><B>getResponse()</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>
<DD>Method getResponse
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getResponseFlow()"><B>getResponseFlow()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Get our response flow
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#getResponseFlow()"><B>getResponseFlow()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#getResponseHandler()"><B>getResponseHandler()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/TargetedChain.html#getResponseHandler()"><B>getResponseHandler()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/TargetedChain.html" title="interface in org.apache.axis">TargetedChain</A>
<DD>Returns the Response Handler.
<DT><A HREF="org/apache/axis/client/Stub.html#getResponseHeader(java.lang.String, java.lang.String)"><B>getResponseHeader(String, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get a response header element
<DT><A HREF="org/apache/axis/client/Stub.html#getResponseHeaders()"><B>getResponseHeaders()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the array of response header elements
<DT><A HREF="org/apache/axis/client/Stub.html#getResponseHeaders(org.apache.axis.client.Call)"><B>getResponseHeaders(Call)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD><B>Deprecated.</B>&nbsp;<I>This method has been changed to a no-op but remains
               in the code to keep compatibility with pre-1.1
               generated stubs.</I>
<DT><A HREF="org/apache/axis/MessageContext.html#getResponseMessage()"><B>getResponseMessage()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the response message.
<DT><A HREF="org/apache/axis/client/Call.html#getResponseMessage()"><B>getResponseMessage()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Directly get the response message in our MessageContext.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getResponseQName(org.apache.axis.description.OperationDesc)"><B>getResponseQName(OperationDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method getResponseQName
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getResponseString(org.apache.axis.wsdl.symbolTable.Parameter, java.lang.String)"><B>getResponseString(Parameter, String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return the Object variable 'var' cast to the appropriate type
 doing the right thing for the primitive types.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getRestrictionOrExtensionNode(org.w3c.dom.Node)"><B>getRestrictionOrExtensionNode(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns the contained restriction or extension node underneath
 the specified node.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getReturnClass()"><B>getReturnClass()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getReturnParamDesc()"><B>getReturnParamDesc()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getReturnQName()"><B>getReturnQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#getReturnType()"><B>getReturnType()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the return type for a specific operation.
<DT><A HREF="org/apache/axis/client/Call.html#getReturnType()"><B>getReturnType()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the QName of the type of the return value of this Call - or null
 if not set.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getReturnType()"><B>getReturnType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getReturnTypeJavaNameHook(org.apache.axis.wsdl.symbolTable.BindingEntry, java.lang.String)"><B>getReturnTypeJavaNameHook(BindingEntry, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#getRole()"><B>getRole()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getRoleAttributeQName()"><B>getRoleAttributeQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the QName for the role attribute (actor/role)
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getRoleAttributeQName()"><B>getRoleAttributeQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the QName for the role attribute (actor/role)
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getRoleAttributeQName()"><B>getRoleAttributeQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the QName for the role attribute (actor/role)
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#getRoles()"><B>getRoles()</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>Gets SOAP actor roles registered for this HandlerChain at
 this SOAP node.
<DT><A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html#getRoles()"><B>getRoles()</B></A> - 
Method in interface javax.xml.rpc.handler.soap.<A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html" title="interface in javax.xml.rpc.handler.soap">SOAPMessageContext</A>
<DD>Gets the SOAP actor roles associated with an execution
 of the HandlerChain and its contained Handler instances.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getRoles()"><B>getRoles()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Get a list of roles that this engine plays globally.
<DT><A HREF="org/apache/axis/MessageContext.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Gets the SOAP actor roles associated with an execution of the
 <code>HandlerChain</code> and its contained <code>Handler</code>
 instances.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Get a list of roles that this engine plays globally.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Get a list of roles that this engine plays globally.
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>Get a list of roles that this engine plays globally.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Get a list of roles that this engine plays globally.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getRoles()"><B>getRoles()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getRootPart()"><B>getRootPart()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>From the complex stream return the SOAP part.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getRootPart()"><B>getRootPart()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>From the complex stream return the root part.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getSAXParser()"><B>getSAXParser()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get a SAX parser instance from the JAXP factory.
<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#getSOAPAction(java.lang.String)"><B>getSOAPAction(String)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Used to return the SOAPAction of the given operation.
<DT><A HREF="org/apache/axis/MessageContext.html#getSOAPActionURI()"><B>getSOAPActionURI()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the soapAction URI.
<DT><A HREF="org/apache/axis/client/Call.html#getSOAPActionURI()"><B>getSOAPActionURI()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the soapAction URI.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getSOAPBody()"><B>getSOAPBody()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Gets the SOAP Body contained in this <code>SOAPMessage</code> object.
<DT><A HREF="org/apache/axis/Message.html#getSOAPBody()"><B>getSOAPBody()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getSOAPConstants()"><B>getSOAPConstants()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the <code>SOAPConstants</code> used by this message context.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getSOAPConstants()"><B>getSOAPConstants()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>returns the soap constants.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getSOAPConstants()"><B>getSOAPConstants()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the soap constants for this envelope
<DT><A HREF="org/apache/axis/SOAPPart.html#getSOAPDocument()"><B>getSOAPDocument()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#getSOAPEnvelope()"><B>getSOAPEnvelope()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get this message's SOAPPart as a SOAPEnvelope.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getSOAPHeader()"><B>getSOAPHeader()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Gets the SOAP Header contained in this <code>SOAPMessage</code> object.
<DT><A HREF="org/apache/axis/Message.html#getSOAPHeader()"><B>getSOAPHeader()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html#getSOAPPart()"><B>getSOAPPart()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Gets the SOAP part of this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/Message.html#getSOAPPart()"><B>getSOAPPart()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get this message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#getSOAPPartAsBytes()"><B>getSOAPPartAsBytes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get a byte array representation of this message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#getSOAPPartAsString()"><B>getSOAPPartAsString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Get a string representation of this message's SOAPPart.
<DT><A HREF="org/apache/axis/MessageContext.html#getSchemaVersion()"><B>getSchemaVersion()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the XML schema version information.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getSchemaVersion()"><B>getSchemaVersion()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Get the schema version for this envelope
<DT><A HREF="org/apache/axis/types/URI.html#getScheme()"><B>getScheme()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the scheme for this URI.
<DT><A HREF="org/apache/axis/types/URI.html#getSchemeSpecificPart()"><B>getSchemeSpecificPart()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the scheme-specific part for this URI (everything following the
 scheme and the first colon).
<DT><A HREF="org/apache/axis/constants/Scope.Type.html#getScope(int)"><B>getScope(int)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.Type.html" title="class in org.apache.axis.constants">Scope.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.Type.html#getScope(java.lang.String)"><B>getScope(String)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.Type.html" title="class in org.apache.axis.constants">Scope.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.Type.html#getScope(java.lang.String, org.apache.axis.constants.Scope)"><B>getScope(String, Scope)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.Type.html" title="class in org.apache.axis.constants">Scope.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#getScope(int)"><B>getScope(int)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#getScope(java.lang.String)"><B>getScope(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#getScope(java.lang.String, org.apache.axis.constants.Scope)"><B>getScope(String, Scope)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getScope()"><B>getScope()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the scope for the deploy.xml file.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getScopedAttribute(org.w3c.dom.Node, java.lang.String)"><B>getScopedAttribute(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>Given a node, return the value of the given attribute.
<DT><A HREF="org/apache/axis/constants/Scope.html#getScopes()"><B>getScopes()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/script/ScriptFactory.html#getScript()"><B>getScript()</B></A> - 
Static method in class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/ScriptFactory.html" title="class in org.apache.axis.components.script">ScriptFactory</A>
<DD>Get the Script implementation.
<DT><A HREF="org/apache/axis/types/Duration.html#getSeconds()"><B>getSeconds()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#getSendType()"><B>getSendType()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Determine if an object is to be treated as an attchment.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getSendType()"><B>getSendType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getSendType(java.lang.String)"><B>getSendType(String)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Determine how an object typically sent as attachments are to
 be represented.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getSendType()"><B>getSendType()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#getSendTypeString(int)"><B>getSendTypeString(int)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>For a given sendType value, return a string representation.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSerClassConstructor()"><B>getSerClassConstructor()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Returns the serClassConstructor.
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#getSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>getSerializer(Class, QName)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Gets the SerializerFactory registered for the specified
 pair of Java type and XML data type.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getSerializer()"><B>getSerializer()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getSerializer(java.lang.Class)"><B>getSerializer(Class)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Gets the SerializerFactory registered for the specified pair
 of Java type and XML data type.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>getSerializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getSerializer(java.lang.Class)"><B>getSerializer(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>getSerializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Gets the SerializerFactory registered for the specified pair
 of Java type and XML data type.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSerializer"><B>getSerializer</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#getSerializer(java.lang.String, java.lang.Class, javax.xml.namespace.QName)"><B>getSerializer(String, Class, QName)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>Get Custom Serializer
<DT><A HREF="javax/xml/rpc/encoding/SerializerFactory.html#getSerializerAs(java.lang.String)"><B>getSerializerAs(String)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/SerializerFactory.html" title="interface in javax.xml.rpc.encoding">SerializerFactory</A>
<DD>Returns a Serializer for the specified XML processing mechanism type.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSerializerAs(java.lang.String)"><B>getSerializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html#getSerializerAs(java.lang.String)"><B>getSerializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html#getSerializerAs(java.lang.String)"><B>getSerializerAs(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSerializerAsInternal(java.lang.String)"><B>getSerializerAsInternal(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getSerializerForJavaType(java.lang.Class)"><B>getSerializerForJavaType(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convenience method to get the Serializer for a specific
 java type
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#getSerializerName()"><B>getSerializerName()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServer.html#getServer(java.util.Map)"><B>getServer(Map)</B></A> - 
Static method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServerFactory.html#getServer(java.util.Map)"><B>getServer(Map)</B></A> - 
Method in interface org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServerFactory.html" title="interface in org.apache.axis.server">AxisServerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/DefaultAxisServerFactory.html#getServer(java.util.Map)"><B>getServer(Map)</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/DefaultAxisServerFactory.html" title="class in org.apache.axis.server">DefaultAxisServerFactory</A>
<DD>Get an AxisServer.
<DT><A HREF="org/apache/axis/server/JNDIAxisServerFactory.html#getServer(java.util.Map)"><B>getServer(Map)</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/JNDIAxisServerFactory.html" title="class in org.apache.axis.server">JNDIAxisServerFactory</A>
<DD>Obtain an AxisServer reference, using JNDI if possible, otherwise
 creating one using the standard Axis configuration pattern.
<DT><A HREF="org/apache/axis/EngineConfigurationFactory.html#getServerEngineConfig()"><B>getServerEngineConfig()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfigurationFactory.html" title="interface in org.apache.axis">EngineConfigurationFactory</A>
<DD>Get a default server engine configuration.
<DT><A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html#getServerEngineConfig()"><B>getServerEngineConfig()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DefaultEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">DefaultEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;Get a default server engine configuration.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#getServerEngineConfig()"><B>getServerEngineConfig()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>Get a default server engine configuration.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html#getServerEngineConfig()"><B>getServerEngineConfig()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryServlet</A>
<DD>Get a default server engine configuration.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#getServerSocket()"><B>getServerSocket()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Obtain the serverSocket that that SimpleAxisServer is listening on.
<DT><A HREF="org/apache/axis/AxisEngine.html#getService(java.lang.String)"><B>getService(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>SOAPService</code> for a particular local name.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Retrieve an instance of the named service.
<DT><A HREF="org/apache/axis/MessageContext.html#getService()"><B>getService()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the <code>SOAPService</code> used to handle services in this
 context.
<DT><A HREF="org/apache/axis/client/Call.html#getService()"><B>getService()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the Service object associated with this Call object.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#getService(java.util.Map)"><B>getService(Map)</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Obtain an AxisClient reference, using JNDI if possible, otherwise
 creating one using the standard Axis configuration pattern.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>retrieve an instance of the named service
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>retrieve an instance of the named service
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Retrieve an instance of the named service.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getService(javax.xml.namespace.QName)"><B>getService(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html#getService()"><B>getService()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ServiceEntry</A>
<DD>Get this entry's Service object.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getServiceActors()"><B>getServiceActors()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Get the service-specific actor list
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Get a service which has been mapped to a particular namespace.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Get a service which has been mapped to a particular namespace
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Get a service which has been mapped to a particular namespace
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Get a service which has been mapped to a particular namespace
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getServiceByNamespaceURI(java.lang.String)"><B>getServiceByNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getServiceClass(java.lang.String, org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>getServiceClass(String, SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>Get the class description for the EJB Remote or Local Interface, 
 which is what we are interested in exposing to the world (i.e.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#getServiceClass(java.lang.String, org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>getServiceClass(String, SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Returns the Class info about the service class.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#getServiceClassName(org.apache.axis.Handler)"><B>getServiceClassName(Handler)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Return the class name of the service
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#getServiceClassNameOptionName()"><B>getServiceClassNameOptionName()</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>Return the option in the configuration that contains the service class
 name.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getServiceClassNameOptionName()"><B>getServiceClassNameOptionName()</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>Return the option in the configuration that contains the service class
 name.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#getServiceClassNameOptionName()"><B>getServiceClassNameOptionName()</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Return the option in the configuration that contains the service class
 name
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#getServiceClassNameOptionName()"><B>getServiceClassNameOptionName()</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>Return the option in the configuration that contains the service class
 name.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getServiceDesc()"><B>getServiceDesc()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getServiceDesc()"><B>getServiceDesc()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method getServiceDesc
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getServiceDesc()"><B>getServiceDesc()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>return the service description
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getServiceDesc()"><B>getServiceDesc()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Retruns the SericeDesc object
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getServiceDescription()"><B>getServiceDescription()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getServiceDescriptionURL()"><B>getServiceDescriptionURL()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Get any service description URL which might be associated with this
 service.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getServiceElementName()"><B>getServiceElementName()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the service element name
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getServiceEndpointInterfaceJavaNameHook(org.apache.axis.wsdl.symbolTable.PortTypeEntry, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>getServiceEndpointInterfaceJavaNameHook(PortTypeEntry, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getServiceEntry(javax.xml.namespace.QName)"><B>getServiceEntry(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the ServiceEntry with the given QName.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#getServiceInterfaceJavaNameHook(org.apache.axis.wsdl.symbolTable.ServiceEntry)"><B>getServiceInterfaceJavaNameHook(ServiceEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Service.html#getServiceName()"><B>getServiceName()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Gets the name of this Service.
<DT><A HREF="org/apache/axis/client/Service.html#getServiceName()"><B>getServiceName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns the qualified name of the service (if one is set).
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#getServiceObject(org.apache.axis.MessageContext, org.apache.axis.Handler, java.lang.String, javax.xml.rpc.holders.IntHolder)"><B>getServiceObject(MessageContext, Handler, String, IntHolder)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Get the service object whose method actually provides the service.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getServicePortName()"><B>getServicePortName()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the String representation of the service port name
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getServices()"><B>getServices()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Return an array of the services in this deployment
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getServices()"><B>getServices()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html#getServletContext()"><B>getServletContext()</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>
<DD>The method <code>getServletContext</code> returns the
 <code>ServletContex</code>t associated with the web
 application that contain this endpoint.
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getServletContext()"><B>getServletContext()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>what is the servlet context
<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#getServletContext()"><B>getServletContext()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getSession()"><B>getSession()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the current session.
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#getSignature(java.lang.reflect.Member, java.lang.Class[])"><B>getSignature(Member, Class[])</B></A> - 
Static method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getSimpleTypeBase(org.w3c.dom.Node)"><B>getSimpleTypeBase(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node represents a 'normal' non-enumeration simpleType,
 the QName of the simpleType base is returned.
<DT><A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html#getSingleton()"><B>getSingleton()</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultJAXRPC11TypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultJAXRPC11TypeMappingImpl</A>
<DD>Obtain the singleton default typemapping.
<DT><A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html#getSingleton()"><B>getSingleton()</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultSOAPEncodingTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultSOAPEncodingTypeMappingImpl</A>
<DD>Construct TypeMapping
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#getSingletonDelegate()"><B>getSingletonDelegate()</B></A> - 
Static method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>Obtain the singleton default typemapping.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#getSize()"><B>getSize()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Returns the number of bytes in this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#getSize()"><B>getSize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Returns the number of bytes in this <CODE>
 AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getSoapAction()"><B>getSoapAction()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getSoapAction()"><B>getSoapAction()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the soapAction option value
<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html#getSocket(org.apache.axis.transport.http.SocketHolder, org.apache.axis.MessageContext, java.lang.String, java.lang.String, int, int, java.lang.StringBuffer, org.apache.axis.components.net.BooleanHolder)"><B>getSocket(SocketHolder, MessageContext, String, String, int, int, StringBuffer, BooleanHolder)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>
<DD>Creates a socket connection to the SOAP server
<DT><A HREF="org/apache/axis/transport/http/SocketHolder.html#getSocket()"><B>getSocket()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketHolder.html" title="class in org.apache.axis.transport.http">SocketHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getSpecialized(java.lang.String)"><B>getSpecialized(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Obtains a deserializer by invoking getDeserializer method in the 
 javaType class or its Helper class.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSpecialized(java.lang.String)"><B>getSpecialized(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Obtains a serializer by invoking getSerializer method in the 
 javaType class or its Helper class.
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getSpecificPD(java.beans.PropertyDescriptor[], java.lang.String)"><B>getSpecificPD(PropertyDescriptor[], String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#getSpecificPD(org.apache.axis.utils.BeanPropertyDescriptor[], java.lang.String)"><B>getSpecificPD(BeanPropertyDescriptor[], String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getStandalone()"><B>getStandalone()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getStartColumn()"><B>getStartColumn()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the starting column number of the program text originating this
 error
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#getStartLine()"><B>getStartLine()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Return the starting line number of the program text originating this error
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getStartOfMappingsPos()"><B>getStartOfMappingsPos()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the start of the mapping position
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#getStatus()"><B>getStatus()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html#getStatus()"><B>getStatus()</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.Type.html#getStatus(int)"><B>getStatus(int)</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.Type.html" title="class in org.apache.axis.client.async">Status.Type</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.Type.html#getStatus(java.lang.String)"><B>getStatus(String)</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.Type.html" title="class in org.apache.axis.client.async">Status.Type</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.Type.html#getStatus(java.lang.String, org.apache.axis.client.async.Status)"><B>getStatus(String, Status)</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.Type.html" title="class in org.apache.axis.client.async">Status.Type</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.html#getStatus(int)"><B>getStatus(int)</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.html#getStatus(java.lang.String)"><B>getStatus(String)</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/client/async/Status.html#getStatus(java.lang.String, org.apache.axis.client.async.Status)"><B>getStatus(String, Status)</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method getStatus
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getStopClasses()"><B>getStopClasses()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getStopClasses()"><B>getStopClasses()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Return the list of classes which stop inhertance searches
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getStopClasses()"><B>getStopClasses()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Return the list of classes that we should not emit WSDL for.
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#getStrOption(java.lang.String, org.apache.axis.Handler)"><B>getStrOption(String, Handler)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>Get a String option by looking first in the service options,
 and then at the Handler's options.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#getStrOption(java.lang.String, org.apache.axis.Handler)"><B>getStrOption(String, Handler)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>Get a String option by looking first in the service options,
 and then at the Handler's options.
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#getStrOption(java.lang.String, org.apache.axis.Handler)"><B>getStrOption(String, Handler)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>Get a String option by looking first in the service options,
 and then at the Handler's options.
<DT><A HREF="org/apache/axis/MessageContext.html#getStrProp(java.lang.String)"><B>getStrProp(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get a <code>String</code> property by name.
<DT><A HREF="org/apache/axis/client/Call.html#getStreaming()"><B>getStreaming()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#getStrictErrorChecking()"><B>getStrictErrorChecking()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.String)"><B>getString(String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Gets a string message from the resource bundle for the given key
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.String, java.lang.Object)"><B>getString(String, Object)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.String, java.lang.Object, java.lang.Object)"><B>getString(String, Object, Object)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(String, Object, Object, Object)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.String, java.lang.Object[])"><B>getString(String, Object[])</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Gets a string message from the resource bundle for the given key.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String)"><B>getString(Object, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object)"><B>getString(Object, String, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object)"><B>getString(Object, String, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, String, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, String, Object, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, String, Object, Object, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.lang.String, java.lang.Object[])"><B>getString(Object, String, Object[])</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String)"><B>getString(Object, Locale, String)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object)"><B>getString(Object, Locale, String, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object)"><B>getString(Object, Locale, String, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, Locale, String, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, Locale, String, Object, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)"><B>getString(Object, Locale, String, Object, Object, Object, Object, Object)</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/i18n/RB.html#getString(java.lang.Object, java.util.Locale, java.lang.String, java.lang.Object[])"><B>getString(Object, Locale, String, Object[])</B></A> - 
Static method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Get a message from resource.properties from the package of the given object.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getStringForQName(javax.xml.namespace.QName, org.w3c.dom.Element)"><B>getStringForQName(QName, Element)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Return a string for a particular QName, mapping a new prefix
 if necessary.
<DT><A HREF="org/apache/axis/constants/Style.Type.html#getStyle(int)"><B>getStyle(int)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.Type.html" title="class in org.apache.axis.constants">Style.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.Type.html#getStyle(java.lang.String)"><B>getStyle(String)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.Type.html" title="class in org.apache.axis.constants">Style.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.Type.html#getStyle(java.lang.String, org.apache.axis.constants.Style)"><B>getStyle(String, Style)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.Type.html" title="class in org.apache.axis.constants">Style.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#getStyle(int)"><B>getStyle(int)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#getStyle(java.lang.String)"><B>getStyle(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#getStyle(java.lang.String, org.apache.axis.constants.Style)"><B>getStyle(String, Style)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getStyle()"><B>getStyle()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Get the service style - document or RPC
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getStyle()"><B>getStyle()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>What kind of service is this?
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getStyle()"><B>getStyle()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Return the style of the operation, defaulting to the parent
 ServiceDesc's style if we don't have one explicitly set.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getStyle()"><B>getStyle()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>What kind of service is this?
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getStyle()"><B>getStyle()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getStyle()"><B>getStyle()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>getStyle
<DT><A HREF="org/apache/axis/constants/Style.html#getStyles()"><B>getStyles()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#getSupportedEncodings()"><B>getSupportedEncodings()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Returns the encodingStyle URIs (as String[]) supported by
 this TypeMapping instance.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getSupportedEncodings()"><B>getSupportedEncodings()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>JAX-RPC Compliant Method Definitions
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getSupportedEncodings()"><B>getSupportedEncodings()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Gets the list of encoding styles supported by this TypeMapping object.
<DT><A HREF="javax/xml/rpc/encoding/DeserializerFactory.html#getSupportedMechanismTypes()"><B>getSupportedMechanismTypes()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/DeserializerFactory.html" title="interface in javax.xml.rpc.encoding">DeserializerFactory</A>
<DD>Returns an <code>Iterator</code> over the list of all XML processing
 mechanism types supported by this <code>DeserializerFactory</code>.
<DT><A HREF="javax/xml/rpc/encoding/SerializerFactory.html#getSupportedMechanismTypes()"><B>getSupportedMechanismTypes()</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/SerializerFactory.html" title="interface in javax.xml.rpc.encoding">SerializerFactory</A>
<DD>Returns an Iterator over all XML processing mechanism types supported by
 this <code>SerializerFactory</code>.
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#getSupportedMechanismTypes()"><B>getSupportedMechanismTypes()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>Returns a list of all XML processing mechanism types supported by this DeserializerFactory.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getSupportedMechanismTypes()"><B>getSupportedMechanismTypes()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>Returns a list of all XML processing mechanism types supported
 by this SerializerFactory.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getSymbolTable()"><B>getSymbolTable()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Get the symbol table.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getSymbols(javax.xml.namespace.QName)"><B>getSymbols(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the list of entries with the given QName.
<DT><A HREF="org/apache/axis/types/Notation.html#getSystem()"><B>getSystem()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getTagName()"><B>getTagName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#getTargetEndpointAddress()"><B>getTargetEndpointAddress()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Gets the address of a target service endpoint.
<DT><A HREF="org/apache/axis/client/Call.html#getTargetEndpointAddress()"><B>getTargetEndpointAddress()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Returns the URL of the target Web Service.
<DT><A HREF="org/apache/axis/types/Schema.html#getTargetNamespace()"><B>getTargetNamespace()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#getTargetService()"><B>getTargetService()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the name of the targed service for this message.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getTargetService()"><B>getTargetService()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the target service name
<DT><A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html#getText()"><B>getText()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message">SOAPFaultReasonBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getTextByPath(org.w3c.dom.Node, java.lang.String)"><B>getTextByPath(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns all textual nodes of a subnode defined by a parent node
 and a path of element names to that subnode.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getTextClassName(java.lang.String)"><B>getTextClassName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Converts text of the form
 [LFoo to the Foo[]
<DT><A HREF="org/apache/axis/MessageContext.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get timeout from our MessageContext.
<DT><A HREF="org/apache/axis/client/Call.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the timeout value in milliseconds.
<DT><A HREF="org/apache/axis/session/Session.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Return the sessions' time-to-live.
<DT><A HREF="org/apache/axis/session/SimpleSession.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>
<DD>get the timeout value
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Return the sessions' time-to-live.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getTimeout()"><B>getTimeout()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Return the current timeout setting
<DT><A HREF="org/apache/axis/types/Day.html#getTimezone()"><B>getTimezone()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Month.html#getTimezone()"><B>getTimezone()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#getTimezone()"><B>getTimezone()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#getTimezone()"><B>getTimezone()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#getTimezone()"><B>getTimezone()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getTopic(javax.jms.TopicSession, java.lang.String)"><B>getTopic(TopicSession, String)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#getTopic(javax.jms.TopicSession, java.lang.String)"><B>getTopic(TopicSession, String)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html#getTopicConnectionFactory(java.util.HashMap)"><B>getTopicConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/BeanVendorAdapter.html" title="class in org.apache.axis.components.jms">BeanVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getTopicConnectionFactory(java.util.HashMap)"><B>getTopicConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#getTopicConnectionFactory(java.util.HashMap)"><B>getTopicConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#getTopicConnectionFactory(java.util.HashMap)"><B>getTopicConnectionFactory(HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#getTrailers()"><B>getTrailers()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Return trailers
<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html#getTransmissionSize()"><B>getTransmissionSize()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#getTransport(java.lang.String)"><B>getTransport(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>Handler</code> that implements the transport for a local
 name.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Retrieve an instance of the named transport.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>retrieve an instance of the named transport
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>retrieve an instance of the named transport
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Retrieve an instance of the named transport.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getTransport(javax.xml.namespace.QName)"><B>getTransport(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#getTransportForProtocol(java.lang.String)"><B>getTransportForProtocol(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the Transport registered for the given protocol.
<DT><A HREF="org/apache/axis/MessageContext.html#getTransportName()"><B>getTransportName()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The name of the transport for this context.
<DT><A HREF="org/apache/axis/client/Transport.html#getTransportName()"><B>getTransportName()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Returns the name of the transport chain to use
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getTransports()"><B>getTransports()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#getTransports()"><B>getTransports()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Get the type, as read from the header.
<DT><A HREF="org/apache/axis/constants/Enum.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the element's type.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getType(int)"><B>getType(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return an attribute's type by index.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getType(java.lang.String, java.lang.String)"><B>getType(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's type by Namespace-qualified name.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getType(java.lang.String)"><B>getType(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's type by qualified (prefixed) name.
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Get the type of a property
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Get the type of a property
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable">MimeInfo</A>
<DD>Method getType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Get the TypeEntry of the parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getType(javax.xml.namespace.QName)"><B>getType(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the Type TypeEntry with the given QName.
<DT><A HREF="org/apache/axis/types/Notation.html#getTypeDesc()"><B>getTypeDesc()</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#getTypeDesc()"><B>getTypeDesc()</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>Return type metadata object
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getTypeDescForClass(java.lang.Class)"><B>getTypeDescForClass(Class)</B></A> - 
Static method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Static function for centralizing access to type metadata for a
 given class.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getTypeEntry(javax.xml.namespace.QName, boolean)"><B>getTypeEntry(QName, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the type entry for the given qname.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getTypeEntryCount()"><B>getTypeEntryCount()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Return the count of TypeEntries in the symbol table.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getTypeFromAttributes(java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>getTypeFromAttributes(String, String, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Create a QName for the type of the element defined by localName and
 namespace with the specified attributes.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getTypeFromXSITypeAttr(java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>getTypeFromXSITypeAttr(String, String, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Create a QName for the type of the element defined by localName and
 namespace from the XSI type.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getTypeIndex()"><B>getTypeIndex()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Return an unmodifiable map of qnames -> Elements in the symbol
 table.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Returns the registered <code>TypeMapping</code> for the specified
 encodingStyle URI.
<DT><A HREF="org/apache/axis/MessageContext.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Return the type mapping currently in scope for our encoding style.
<DT><A HREF="org/apache/axis/client/Call.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the TypeMapping for this DeserializationContext
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get the TypeMapping we're using.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#getTypeMapping(java.lang.String)"><B>getTypeMapping(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Gets the TypeMapping for the namespace.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getTypeMapping()"><B>getTypeMapping()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Returns the <code>TypeMapping</code> used by the service
<DT><A HREF="javax/xml/rpc/Service.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Gets the <code>TypeMappingRegistry</code> for this
 <code>Service</code> object.
<DT><A HREF="org/apache/axis/AxisEngine.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Get the <code>TypeMappingRegistry</code> for this axis engine.
<DT><A HREF="org/apache/axis/EngineConfiguration.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Retrieve the TypeMappingRegistry for this engine.
<DT><A HREF="org/apache/axis/MessageContext.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the currently in-scope type mapping registry.
<DT><A HREF="org/apache/axis/client/Service.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns the current TypeMappingRegistry or null.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Get our TypeMappingRegistry.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Get the TypeMappingRegistry we're using.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get the TypeMappingRegistry we're using.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getTypeMappingRegistry()"><B>getTypeMappingRegistry()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getTypeMappingVersion()"><B>getTypeMappingVersion()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the typemapping version
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getTypeMappings()"><B>getTypeMappings()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getTypeMappings()"><B>getTypeMappings()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#getTypeMappings()"><B>getTypeMappings()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#getTypeNode(SchemaDocument.Schema[], javax.xml.namespace.QName)"><B>getTypeNode(SchemaDocument.Schema[], QName)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#getTypeQName()"><B>getTypeQName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getTypeQName(java.lang.Class)"><B>getTypeQName(Class)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Gets the QName for the type mapped to Class.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getTypeQName(java.lang.Class)"><B>getTypeQName(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Gets the QName for the type mapped to Class.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getTypeQName(java.lang.Class, org.apache.axis.encoding.TypeMappingDelegate)"><B>getTypeQName(Class, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#getTypeQName(java.lang.Class)"><B>getTypeQName(Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Return the QName of the specified javaType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#getTypeQName(org.w3c.dom.Node, javax.xml.rpc.holders.BooleanHolder, boolean)"><B>getTypeQName(Node, BooleanHolder, boolean)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>An XML element or attribute node has several ways of
 identifying the type of the element or attribute:
 - use the type attribute to reference a complexType/simpleType
 - use the ref attribute to reference another element, group or attributeGroup
 - use of an anonymous type (i.e.
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getTypeQNameExact(java.lang.Class)"><B>getTypeQNameExact(Class)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Get the QName for this Java class, but only return a specific
 mapping if there is one.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getTypeQNameExact(java.lang.Class)"><B>getTypeQNameExact(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Get the QName for this Java class, but only return a specific
 mapping if there is one.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getTypeQNameExact(java.lang.Class, org.apache.axis.encoding.TypeMappingDelegate)"><B>getTypeQNameExact(Class, TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Get the QName for this Java class, but only return a specific
 mapping if there is one.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getTypeQNameRecursive(java.lang.Class)"><B>getTypeQNameRecursive(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Gets the QName for the type mapped to Class.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getTypes()"><B>getTypes()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD><B>Deprecated.</B>&nbsp;<I>use specialized get{Element,Type}Index() methods instead</I>
<DT><A HREF="javax/xml/soap/Name.html#getURI()"><B>getURI()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap">Name</A>
<DD>Returns the URI of the namespace for the XML
 name that this <code>Name</code> object represents.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getURI(int)"><B>getURI(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return an attribute's Namespace URI.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#getURI()"><B>getURI()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/messaging/URLEndpoint.html#getURL()"><B>getURL()</B></A> - 
Method in class javax.xml.messaging.<A HREF="javax/xml/messaging/URLEndpoint.html" title="class in javax.xml.messaging">URLEndpoint</A>
<DD>Gets the URL associated with this <code>URLEndpoint</code> object.
<DT><A HREF="org/apache/axis/utils/Options.html#getURL()"><B>getURL()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getURLString()"><B>getURLString()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>Returns a URL formatted String.
<DT><A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html#getUUIDGen()"><B>getUUIDGen()</B></A> - 
Static method in class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html" title="class in org.apache.axis.components.uuid">UUIDGenFactory</A>
<DD>Returns an instance of UUIDGen
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getUndefinedTypeRef()"><B>getUndefinedTypeRef()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>getUndefinedTypeRef returns the Undefined TypeEntry that this entry depends on or NULL.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#getUnderlTypeNillable()"><B>getUnderlTypeNillable()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Return whether the underlying type is nillable if this is an array type.
<DT><A HREF="org/apache/axis/Handler.html#getUnderstoodHeaders()"><B>getUnderstoodHeaders()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Return a list of QNames which this Handler understands.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#getUnderstoodHeaders()"><B>getUnderstoodHeaders()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Return a list of QNames which this Handler understands.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#getUnionNode(org.w3c.dom.Node)"><B>getUnionNode(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getUniqueValue(java.util.Collection, java.lang.String)"><B>getUniqueValue(Collection, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Makes the value passed in <code>initValue</code> unique among the
 <CODE>String</CODE> values contained in <code>values</code> by suffixing
 it with a decimal digit suffix.
<DT><A HREF="org/apache/axis/utils/CLArgsParser.html#getUnparsedArgs()"><B>getUnparsedArgs()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLArgsParser.html" title="class in org.apache.axis.utils">CLArgsParser</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Transport.html#getUrl()"><B>getUrl()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Get the transport-specific URL
<DT><A HREF="org/apache/axis/constants/Use.Type.html#getUse(int)"><B>getUse(int)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.Type.html" title="class in org.apache.axis.constants">Use.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.Type.html#getUse(java.lang.String)"><B>getUse(String)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.Type.html" title="class in org.apache.axis.constants">Use.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.Type.html#getUse(java.lang.String, org.apache.axis.constants.Use)"><B>getUse(String, Use)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.Type.html" title="class in org.apache.axis.constants">Use.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#getUse(int)"><B>getUse(int)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#getUse(java.lang.String)"><B>getUse(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#getUse(java.lang.String, org.apache.axis.constants.Use)"><B>getUse(String, Use)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Get the service use - literal or encoded
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>What kind of use is this?
<DT><A HREF="org/apache/axis/description/OperationDesc.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Return the use of the operation, defaulting to the parent
 ServiceDesc's use if we don't have one explicitly set.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getUse()"><B>getUse()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>What kind of use is this?
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>getUse
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#getUse()"><B>getUse()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Method getUse
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getUseInheritedMethods()"><B>getUseInheritedMethods()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Indicates if the emitter will search classes for inherited methods
<DT><A HREF="org/apache/axis/utils/Options.html#getUser()"><B>getUser()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html#getUserPrincipal()"><B>getUserPrincipal()</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>
<DD>Returns a <code>java.security.Principal</code> instance that
 contains the name of the authenticated user for the current
 method invocation on the endpoint instance.
<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#getUserPrincipal()"><B>getUserPrincipal()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#getUserinfo()"><B>getUserinfo()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the userinfo for this URI.
<DT><A HREF="org/apache/axis/MessageContext.html#getUsername()"><B>getUsername()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Get the user name.
<DT><A HREF="org/apache/axis/client/Call.html#getUsername()"><B>getUsername()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Get the user name.
<DT><A HREF="org/apache/axis/client/Stub.html#getUsername()"><B>getUsername()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Get the user name
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getUsername()"><B>getUsername()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getUsername()"><B>getUsername()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method getUsername
<DT><A HREF="org/apache/axis/client/async/Status.html#getUses()"><B>getUses()</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method getUses
<DT><A HREF="org/apache/axis/constants/Use.html#getUses()"><B>getUses()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/MimeHeader.html#getValue()"><B>getValue()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeader.html" title="class in javax.xml.soap">MimeHeader</A>
<DD>Returns the value of this <CODE>MimeHeader</CODE>
 object.
<DT><A HREF="javax/xml/soap/Node.html#getValue()"><B>getValue()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>Returns the the value of the immediate child of this <code>Node</code>
 object if a child exists and its value is text.
<DT><A HREF="org/apache/axis/Constants.html#getValue(org.xml.sax.Attributes, java.lang.String[], java.lang.String)"><B>getValue(Attributes, String[], String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>This utility routine returns the value of an attribute which might
 be in one of several namespaces.
<DT><A HREF="org/apache/axis/Constants.html#getValue(org.xml.sax.Attributes, javax.xml.namespace.QName[])"><B>getValue(Attributes, QName[])</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Search an attribute collection for a list of QNames, returning
 the value of the first one found, or null if none were found.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#getValue(int)"><B>getValue(int)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Gets the value at the specified index.
<DT><A HREF="org/apache/axis/constants/Enum.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>get the documentation
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#getValue()"><B>getValue()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Get the deserialized value.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>If the deserializer has component values (like ArrayDeserializer)
 this method gets the specific component via the hint.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Get the deserialized value.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>If the deserializer has component values (like ArrayDeserializer)
 this method gets the specific component via the hint.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Get the value of the doc as a string.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns the the value of the immediate child of this <code>Node</code>
 object if a child exists and its value is text.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getValue(int)"><B>getValue(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Return an attribute's value by index.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getValue(java.lang.String, java.lang.String)"><B>getValue(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's value by Namespace-qualified name.
<DT><A HREF="org/apache/axis/message/NullAttributes.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>Look up an attribute's value by qualified (prefixed) name.
<DT><A HREF="org/apache/axis/message/RPCParam.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#getValue()"><B>getValue()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#getValueAsString(java.lang.Object, javax.xml.namespace.QName, java.lang.Class)"><B>getValueAsString(Object, QName, Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SimpleValueSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SimpleValueSerializer.html" title="interface in org.apache.axis.encoding">SimpleValueSerializer</A>
<DD>Return an XML compatible representation of the value.
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html#getValueAsString(java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>getValueAsString(Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getValueAsType(javax.xml.namespace.QName)"><B>getValueAsType(QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#getValueAsType(javax.xml.namespace.QName, java.lang.Class)"><B>getValueAsType(QName, Class)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>This is deserialization logic mixed in to our element class.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getValueDOM()"><B>getValueDOM()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParam.html#getValueSetMethod()"><B>getValueSetMethod()</B></A> - 
Static method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#getValueTargets()"><B>getValueTargets()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Get the Value Targets of the Deserializer.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#getValueTargets()"><B>getValueTargets()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Get the Value Targets of the Deserializer.
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#getVendor()"><B>getVendor()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#getVendorAdapter()"><B>getVendorAdapter()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#getVendorId()"><B>getVendorId()</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#getVendorPool(java.lang.String)"><B>getVendorPool(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Returns the pool of JMSConnectors for a particular vendor
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#getVerMismatchFaultCodeQName()"><B>getVerMismatchFaultCodeQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>Obtain the Qname of VersionMismatch fault code
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#getVerMismatchFaultCodeQName()"><B>getVerMismatchFaultCodeQName()</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>Obtain the Qname of VersionMismatch fault code
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#getVerMismatchFaultCodeQName()"><B>getVerMismatchFaultCodeQName()</B></A> - 
Method in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>Obtain the Qname of VersionMismatch fault code
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getVerbose()"><B>getVerbose()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use isVerbose()</I>
<DT><A HREF="org/apache/axis/SOAPPart.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Version.html#getVersion()"><B>getVersion()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Version.html" title="class in org.apache.axis">Version</A>
<DD>Get the version of this AXIS.
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>get the axis version
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>get the axis version
<DT><A HREF="org/apache/axis/types/Schema.html#getVersion()"><B>getVersion()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getVersionMessage()"><B>getVersionMessage()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Return the version message
<DT><A HREF="org/apache/axis/Version.html#getVersionText()"><B>getVersionText()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Version.html" title="class in org.apache.axis">Version</A>
<DD>Returns the Axis Version number and build date.
<DT><A HREF="javax/xml/soap/SOAPElement.html#getVisibleNamespacePrefixes()"><B>getVisibleNamespacePrefixes()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Returns an <code>Iterator</code> over the namespace prefix
 <code>String</code>s visible to this element.
<DT><A HREF="org/apache/axis/message/MessageElement.html#getVisibleNamespacePrefixes()"><B>getVisibleNamespacePrefixes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get an iterator over visible prefixes.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getWSDDHandler(javax.xml.namespace.QName)"><B>getWSDDHandler(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getWSDDService(javax.xml.namespace.QName)"><B>getWSDDService(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Return the WSDD description for a given named service
<DT><A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html#getWSDDService()"><B>getWSDDService()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html" title="class in org.apache.axis.management.jmx">WSDDServiceWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#getWSDDTransport(javax.xml.namespace.QName)"><B>getWSDDTransport(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html#getWSDDTransport()"><B>getWSDDTransport()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html" title="class in org.apache.axis.management.jmx">WSDDTransportWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#getWSDL()"><B>getWSDL()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Get a Full WSDL <code>Definition</code> for the current
 configuration parameters
<DT><A HREF="javax/xml/rpc/Service.html#getWSDLDocumentLocation()"><B>getWSDLDocumentLocation()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>
<DD>Gets location of the WSDL document for this Service.
<DT><A HREF="org/apache/axis/client/Service.html#getWSDLDocumentLocation()"><B>getWSDLDocumentLocation()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Returns the location of the WSDL document used to prefill the data
 (if one was used at all).
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#getWSDLFile()"><B>getWSDLFile()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>the wsdl file of the service.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#getWSDLFile()"><B>getWSDLFile()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>the wsdl file of the service.
<DT><A HREF="org/apache/axis/client/Service.html#getWSDLParser()"><B>getWSDLParser()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Service.html#getWSDLService()"><B>getWSDLService()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#getWSDLURI()"><B>getWSDLURI()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Get the current WSDL URI.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#getWSDLURI()"><B>getWSDLURI()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Get the WSDL URI.
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getWebInfPath()"><B>getWebInfPath()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>accessor to webinf
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#getWebappBase(javax.servlet.http.HttpServletRequest)"><B>getWebappBase(HttpServletRequest)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>extract the base of our webapp from an inbound request
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#getWorkerCount()"><B>getWorkerCount()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Returns the total number of currently active workers
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getWrapper(java.lang.String)"><B>getWrapper(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#getWrapperClass(java.lang.Class)"><B>getWrapperClass(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getWrapperType(java.lang.String)"><B>getWrapperType(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return a "wrapper" type for the given type name.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getWrapperType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getWrapperType(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Returns a "wrapper" type for the given TypeEntry.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#getWriterFactory()"><B>getWriterFactory()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Call getFactory instead.  This doesn't return
             a WriterFactory, it returns a GeneratorFactory.</I>
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getXMLEncoder(org.apache.axis.MessageContext)"><B>getXMLEncoder(MessageContext)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get the current XMLEncoder
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#getXMLEncoder(java.lang.String)"><B>getXMLEncoder(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get the XMLEncoder for specific encoding
<DT><A HREF="org/apache/axis/encoding/TypeMapping.html#getXMLType(java.lang.Class, javax.xml.namespace.QName, boolean)"><B>getXMLType(Class, QName, boolean)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>
<DD>Get the exact XML type QName which will be used when serializing a
 given Class to a given type QName.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#getXMLType(java.lang.Class, javax.xml.namespace.QName, boolean)"><B>getXMLType(Class, QName, boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>Get the exact XML type QName which will be used when serializing a
 given Class to a given type QName.
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#getXMLType(java.lang.Class, javax.xml.namespace.QName, boolean)"><B>getXMLType(Class, QName, boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Get the exact XML type QName which will be used when serializing a
 given Class to a given type QName.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#getXMLType()"><B>getXMLType()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>get xmlType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html#getXMLType()"><B>getXMLType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/FaultInfo.html" title="class in org.apache.axis.wsdl.symbolTable">FaultInfo</A>
<DD>Method getXMLType
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getXSIType(org.apache.axis.wsdl.symbolTable.Parameter)"><B>getXSIType(Parameter)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Get the QName that could be used in the xsi:type
 when serializing an object for this parameter/return
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#getXSIType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>getXSIType(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Get the QName that could be used in the xsi:type
 when serializing an object of the given type.
<DT><A HREF="org/apache/axis/message/RPCParam.html#getXSITypeGeneration()"><B>getXSITypeGeneration()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#getXmlName()"><B>getXmlName()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Obtain the XML QName for this field
<DT><A HREF="org/apache/axis/description/FaultDesc.html#getXmlType()"><B>getXmlType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#getXmlType()"><B>getXmlType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Returns the XML type (e.g.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#getXmlType()"><B>getXmlType()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#getXsdURI()"><B>getXsdURI()</B></A> - 
Method in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>The XSD URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html#getXsdURI()"><B>getXsdURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>
<DD>The XSD URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html#getXsdURI()"><B>getXsdURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>
<DD>The XSD URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html#getXsdURI()"><B>getXsdURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>
<DD>The XSD URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#getXsiURI()"><B>getXsiURI()</B></A> - 
Method in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>The XSI URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html#getXsiURI()"><B>getXsiURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>
<DD>The XSI URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html#getXsiURI()"><B>getXsiURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>
<DD>The XSI URI
<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html#getXsiURI()"><B>getXsiURI()</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>
<DD>The XSI URI
<DT><A HREF="org/apache/axis/types/Year.html#getYear()"><B>getYear()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#getYear()"><B>getYear()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#getYears()"><B>getYears()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AnyContentType.html#get_any()"><B>get_any()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AnyContentType.html" title="interface in org.apache.axis.encoding">AnyContentType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/MixedContentType.html#get_any()"><B>get_any()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MixedContentType.html" title="interface in org.apache.axis.encoding">MixedContentType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#get_any()"><B>get_any()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#growArrayToSize(java.lang.Object, java.lang.Class, int)"><B>growArrayToSize(Object, Class, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Grow the array
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT"><B>HEADER_ACCEPT</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT_APPLICATION_DIME"><B>HEADER_ACCEPT_APPLICATION_DIME</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT_APPL_SOAP"><B>HEADER_ACCEPT_APPL_SOAP</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT_ENCODING"><B>HEADER_ACCEPT_ENCODING</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT_MULTIPART_RELATED"><B>HEADER_ACCEPT_MULTIPART_RELATED</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_ACCEPT_TEXT_ALL"><B>HEADER_ACCEPT_TEXT_ALL</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_AUTHORIZATION"><B>HEADER_AUTHORIZATION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CACHE_CONTROL"><B>HEADER_CACHE_CONTROL</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CACHE_CONTROL_NOCACHE"><B>HEADER_CACHE_CONTROL_NOCACHE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONNECTION"><B>HEADER_CONNECTION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONNECTION_CLOSE"><B>HEADER_CONNECTION_CLOSE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONNECTION_KEEPALIVE"><B>HEADER_CONNECTION_KEEPALIVE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_DESCRIPTION"><B>HEADER_CONTENT_DESCRIPTION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_ENCODING"><B>HEADER_CONTENT_ENCODING</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_ID"><B>HEADER_CONTENT_ID</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_LENGTH"><B>HEADER_CONTENT_LENGTH</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_LOCATION"><B>HEADER_CONTENT_LOCATION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_TRANSFER_ENCODING"><B>HEADER_CONTENT_TRANSFER_ENCODING</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_TYPE"><B>HEADER_CONTENT_TYPE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_CONTENT_TYPE_JMS"><B>HEADER_CONTENT_TYPE_JMS</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_COOKIE"><B>HEADER_COOKIE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>Cookie headers
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_COOKIE2"><B>HEADER_COOKIE2</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_DEFAULT_CHAR_ENCODING"><B>HEADER_DEFAULT_CHAR_ENCODING</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>HTTP header field values
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_EXPECT"><B>HEADER_EXPECT</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_EXPECT_100_Continue"><B>HEADER_EXPECT_100_Continue</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_HOST"><B>HEADER_HOST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_LOCATION"><B>HEADER_LOCATION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_POST"><B>HEADER_POST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PRAGMA"><B>HEADER_PRAGMA</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PROTOCOL_10"><B>HEADER_PROTOCOL_10</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>The MessageContext transport ID of HTTP.
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PROTOCOL_11"><B>HEADER_PROTOCOL_11</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PROTOCOL_V10"><B>HEADER_PROTOCOL_V10</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PROTOCOL_V11"><B>HEADER_PROTOCOL_V11</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_PROXY_AUTHORIZATION"><B>HEADER_PROXY_AUTHORIZATION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_SET_COOKIE"><B>HEADER_SET_COOKIE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_SET_COOKIE2"><B>HEADER_SET_COOKIE2</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_SOAP_ACTION"><B>HEADER_SOAP_ACTION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_TRANSFER_ENCODING"><B>HEADER_TRANSFER_ENCODING</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_TRANSFER_ENCODING_CHUNKED"><B>HEADER_TRANSFER_ENCODING_CHUNKED</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HEADER_USER_AGENT"><B>HEADER_USER_AGENT</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#HELPER_CLASS_OPT"><B>HELPER_CLASS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field HELPER_CLASS_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#HELP_OPT"><B>HELP_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field HELP_OPT
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#HELP_OPT"><B>HELP_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field HELP_OPT
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#HOLDER_IS_NEEDED"><B>HOLDER_IS_NEEDED</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>Field HOLDER_IS_NEEDED
<DT><A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html" title="class in org.apache.axis.handlers.http"><B>HTTPActionHandler</B></A> - class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html" title="class in org.apache.axis.handlers.http">HTTPActionHandler</A>.<DD>An <code>HTTPActionHandler</code> simply sets the context's TargetService
 property from the HTTPAction property.<DT><A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html#HTTPActionHandler()"><B>HTTPActionHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html" title="class in org.apache.axis.handlers.http">HTTPActionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html" title="class in org.apache.axis.handlers.http"><B>HTTPAuthHandler</B></A> - class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html" title="class in org.apache.axis.handlers.http">HTTPAuthHandler</A>.<DD>An <code>HTTPAuthHandler</code> simply sets the context's username
 and password properties from the HTTP auth headers.<DT><A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html#HTTPAuthHandler()"><B>HTTPAuthHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html" title="class in org.apache.axis.handlers.http">HTTPAuthHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http"><B>HTTPConstants</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>.<DD>HTTP protocol and message context constants.<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#HTTPConstants()"><B>HTTPConstants()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http"><B>HTTPSender</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>.<DD>This is meant to be used on a SOAP Client to call a SOAP server.<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html#HTTPSender()"><B>HTTPSender()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http"><B>HTTPTransport</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>.<DD>Extends Transport by implementing the setupMessageContext function to
 set HTTP-specific message context fields and transport chains.<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#HTTPTransport()"><B>HTTPTransport()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#HTTPTransport(java.lang.String, java.lang.String)"><B>HTTPTransport(String, String)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>helper constructor
<DT><A HREF="org/apache/axis/MessageContext.html#HTTP_TRANSPORT_VERSION"><B>HTTP_TRANSPORT_VERSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The value of the property is used by service WSDL generation (aka ?WSDL).
<DT><A HREF="org/apache/axis/Constants.html#HTTP_TXR_BUFFER_SIZE"><B>HTTP_TXR_BUFFER_SIZE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>The size of the buffer size for.
<DT><A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler"><B>Handler</B></A> - interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>.<DD>The <code>javax.xml.rpc.handler.Handler</code> interface is
 required to be implemented by a SOAP message handler.<DT><A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis"><B>Handler</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>.<DD>An AXIS handler.<DT><A HREF="org/apache/axis/transport/java/Handler.html" title="class in org.apache.axis.transport.java"><B>Handler</B></A> - class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/Handler.html" title="class in org.apache.axis.transport.java">Handler</A>.<DD>A stub URLStreamHandler, so the system will recognize our
 custom URLs as valid.<DT><A HREF="org/apache/axis/transport/java/Handler.html#Handler()"><B>Handler()</B></A> - 
Constructor for class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/Handler.html" title="class in org.apache.axis.transport.java">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/Handler.html" title="class in org.apache.axis.transport.jms"><B>Handler</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Handler.html" title="class in org.apache.axis.transport.jms">Handler</A>.<DD>URLStreamHandler for the "jms" protocol<DT><A HREF="org/apache/axis/transport/jms/Handler.html#Handler()"><B>Handler()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Handler.html" title="class in org.apache.axis.transport.jms">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/Handler.html" title="class in org.apache.axis.transport.local"><B>Handler</B></A> - class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/Handler.html" title="class in org.apache.axis.transport.local">Handler</A>.<DD>A stub URLStreamHandler, so the system will recognize our
 custom URLs as valid.<DT><A HREF="org/apache/axis/transport/local/Handler.html#Handler()"><B>Handler()</B></A> - 
Constructor for class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/Handler.html" title="class in org.apache.axis.transport.local">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/Handler.html" title="class in org.apache.axis.transport.mail"><B>Handler</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/Handler.html" title="class in org.apache.axis.transport.mail">Handler</A>.<DD>A stub URLStreamHandler, so the system will recognize our
 custom URLs as valid.<DT><A HREF="org/apache/axis/transport/mail/Handler.html#Handler()"><B>Handler()</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/Handler.html" title="class in org.apache.axis.transport.mail">Handler</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler"><B>HandlerChain</B></A> - interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>.<DD>The <code>javax.xml.rpc.handler.HandlerChain</code> represents
 a list of handlers.<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers"><B>HandlerChainImpl</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>.<DD>Implementation of HandlerChain<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#HandlerChainImpl()"><B>HandlerChainImpl()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#HandlerChainImpl(java.util.List)"><B>HandlerChainImpl(List)</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler"><B>HandlerInfo</B></A> - class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>.<DD>The <code>javax.xml.rpc.handler.HandlerInfo</code> represents
 information about a handler in the HandlerChain.<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#HandlerInfo()"><B>HandlerInfo()</B></A> - 
Constructor for class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Default constructor.
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#HandlerInfo(java.lang.Class, java.util.Map, javax.xml.namespace.QName[])"><B>HandlerInfo(Class, Map, QName[])</B></A> - 
Constructor for class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Constructor for HandlerInfo.
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers"><B>HandlerInfoChainFactory</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#HandlerInfoChainFactory()"><B>HandlerInfoChainFactory()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#HandlerInfoChainFactory(java.util.List)"><B>HandlerInfoChainFactory(List)</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/HandlerIterationStrategy.html" title="interface in org.apache.axis"><B>HandlerIterationStrategy</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/HandlerIterationStrategy.html" title="interface in org.apache.axis">HandlerIterationStrategy</A>.<DD>Base interface for doing an action to Handlers with a MessageContext.<DT><A HREF="javax/xml/rpc/handler/HandlerRegistry.html" title="interface in javax.xml.rpc.handler"><B>HandlerRegistry</B></A> - interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerRegistry.html" title="interface in javax.xml.rpc.handler">HandlerRegistry</A>.<DD>The <code>javax.xml.rpc.handler.HandlerRegistry</code>
 provides support for the programmatic configuration of
 handlers in a <code>HandlerRegistry</code>.<DT><A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client"><B>HappyClient</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client">HappyClient</A>.<DD>Client side equivalent of happyaxis<DT><A HREF="org/apache/axis/client/HappyClient.html#HappyClient(java.io.PrintStream)"><B>HappyClient(PrintStream)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client">HappyClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message"><B>HeaderBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message">HeaderBuilder</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types"><B>HexBinary</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>.<DD>Custom class for supporting primitive XSD data type hexBinary.<DT><A HREF="org/apache/axis/types/HexBinary.html#HexBinary()"><B>HexBinary()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#HexBinary(java.lang.String)"><B>HexBinary(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#HexBinary(byte[])"><B>HexBinary(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/HexBinaryHolder.html" title="class in org.apache.axis.holders"><B>HexBinaryHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/HexBinaryHolder.html" title="class in org.apache.axis.holders">HexBinaryHolder</A>.<DD>Class HexBinaryHolder<DT><A HREF="org/apache/axis/holders/HexBinaryHolder.html#HexBinaryHolder()"><B>HexBinaryHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/HexBinaryHolder.html" title="class in org.apache.axis.holders">HexBinaryHolder</A>
<DD>Constructor HexBinaryHolder
<DT><A HREF="org/apache/axis/holders/HexBinaryHolder.html#HexBinaryHolder(org.apache.axis.types.HexBinary)"><B>HexBinaryHolder(HexBinary)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/HexBinaryHolder.html" title="class in org.apache.axis.holders">HexBinaryHolder</A>
<DD>Constructor HexBinaryHolder
<DT><A HREF="org/apache/axis/encoding/ser/HexDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>HexDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexDeserializer.html" title="class in org.apache.axis.encoding.ser">HexDeserializer</A>.<DD>Deserializer for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/HexDeserializer.html#HexDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>HexDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexDeserializer.html" title="class in org.apache.axis.encoding.ser">HexDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>HexDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">HexDeserializerFactory</A>.<DD>DeserializerFactory for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/HexDeserializerFactory.html#HexDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>HexDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">HexDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser"><B>HexSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>.<DD>Serializer for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#HexSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>HexSerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>HexSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializerFactory.html" title="class in org.apache.axis.encoding.ser">HexSerializerFactory</A>.<DD>SerializerFactory for hexBinary.<DT><A HREF="org/apache/axis/encoding/ser/HexSerializerFactory.html#HexSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>HexSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializerFactory.html" title="class in org.apache.axis.encoding.ser">HexSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/Holder.html" title="interface in javax.xml.rpc.holders"><B>Holder</B></A> - interface javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/Holder.html" title="interface in javax.xml.rpc.holders">Holder</A>.<DD>The <code>java.xml.rpc.holders.Holder</code> interface represents the base interface for both standard and
 generated Holder classes.<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#handleCookie(java.lang.String, java.lang.String, org.apache.axis.MessageContext)"><B>handleCookie(String, String, MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>little helper function for cookies.
<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html#handleCookie(java.lang.String, java.lang.String, java.lang.String, org.apache.axis.MessageContext)"><B>handleCookie(String, String, String, MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>
<DD>little helper function for cookies.
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>The <code>handleFault</code> method processes the SOAP faults
 based on the SOAP message processing model.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>The <code>handleFault</code> method processes the SOAP faults
 based on the SOAP message processing model.
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>The <code>handleFault</code> method initiates the SOAP
 fault processing for this handler chain.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#handleFault(javax.xml.rpc.handler.MessageContext)"><B>handleFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#handleGetObject(java.lang.String)"><B>handleGetObject(String)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#handleMixedContent()"><B>handleMixedContent()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>The <code>handleRequest</code> method processes the request
 SOAP message.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>The <code>handleRequest</code> method processes the request message.
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>The <code>handleRequest</code> method initiates the request
 processing for this handler chain.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#handleRequest(javax.xml.rpc.handler.MessageContext)"><B>handleRequest(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>The <code>handleResponse</code> method processes the response
 message.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>The <code>handleResponse</code> method processes the response SOAP message.
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>The <code>handleResponse</code> method initiates the response
 processing for this handler chain.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#handleResponse(javax.xml.rpc.handler.MessageContext)"><B>handleResponse(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#handlerInfos"><B>handlerInfos</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#handlerInfos"><B>handlerInfos</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleChain.html#handlers"><B>handlers</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageWithAttachments.html#hasAttachments()"><B>hasAttachments()</B></A> - 
Method in interface org.apache.axis.message.<A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message">MessageWithAttachments</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#hasAttribute(java.lang.String)"><B>hasAttribute(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>test for an attribute existing
<DT><A HREF="org/apache/axis/message/MessageElement.html#hasAttributeNS(java.lang.String, java.lang.String)"><B>hasAttributeNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Test for an attribute
<DT><A HREF="org/apache/axis/SOAPPart.html#hasAttributes()"><B>hasAttributes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#hasAttributes()"><B>hasAttributes()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Do we have any FieldDescs marked as attributes?
<DT><A HREF="org/apache/axis/message/NodeImpl.html#hasAttributes()"><B>hasAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns whether this node (if it is an element) has any attributes.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#hasAttributes()"><B>hasAttributes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#hasChildNodes()"><B>hasChildNodes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#hasChildNodes()"><B>hasChildNodes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Returns whether this node has any children.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#hasChildNodes()"><B>hasChildNodes()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#hasElementsByID()"><B>hasElementsByID()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Return true if any ids are being tracked by this DeserializationContext
<DT><A HREF="javax/xml/soap/SOAPBody.html#hasFault()"><B>hasFault()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>
<DD>Indicates whether a <code>SOAPFault</code> object exists in
 this <code>SOAPBody</code> object.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#hasFault()"><B>hasFault()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#hasLiteral()"><B>hasLiteral()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Do any of the message stanzas contain a soap:body which uses literal?
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#hasMIME(org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>hasMIME(BindingEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Are there any MIME parameters in the given binding?
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#hasMIME(org.apache.axis.wsdl.symbolTable.BindingEntry, javax.wsdl.BindingOperation)"><B>hasMIME(BindingEntry, BindingOperation)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Are there any MIME parameters in the given binding's operation?
<DT><A HREF="org/apache/axis/AxisEngine.html#hasSafePassword()"><B>hasSafePassword()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Discover if this <code>AxisEngine</code> has a safe password.
<DT><A HREF="javax/xml/namespace/QName.html#hashCode()"><B>hashCode()</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Returns a hash code value for this QName object.
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.hashCode()</CODE>.
<DT><A HREF="org/apache/axis/constants/Enum.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/Subscription.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Subscription.html" title="class in org.apache.axis.transport.jms">Subscription</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>Return the value of day XORed with the hashCode of timezone
 iff one is defined.
<DT><A HREF="org/apache/axis/types/Duration.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/HexBinary.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRefs.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>Returns the sum of the hashcodes of the underlying idrefs, an
 operation which is not sensitive to ordering.
<DT><A HREF="org/apache/axis/types/Month.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>Return the value of month XORed with the hashCode of timezone
 iff one is defined.
<DT><A HREF="org/apache/axis/types/MonthDay.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>Return the value of (month + day) XORed with the hashCode of
 timezone iff one is defined.
<DT><A HREF="org/apache/axis/types/NMTokens.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>Returns the sum of the hashcodes of the underlying tokens, an
 operation which is not sensitive to ordering.
<DT><A HREF="org/apache/axis/types/NormalizedString.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Notation.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>Returns the sum of the hashcodes of {name,publicURI,systemURI}
 for whichever properties in that set is non null.
<DT><A HREF="org/apache/axis/types/Schema.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Time.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>Returns the hashcode of the underlying calendar.
<DT><A HREF="org/apache/axis/types/URI.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Returns a hash-code value for this URI.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>Return the value of year XORed with the hashCode of timezone
 iff one is defined.
<DT><A HREF="org/apache/axis/types/YearMonth.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>Return the value of (month + year) XORed with the hashCode of
 timezone iff one is defined.
<DT><A HREF="org/apache/axis/utils/IDKey.html#hashCode()"><B>hashCode()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IDKey.html" title="class in org.apache.axis.utils">IDKey</A>
<DD>returns hashcode
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#haveSeenSchemaNS"><B>haveSeenSchemaNS</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#helper"><B>helper</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field helper
<DT><A HREF="org/apache/axis/utils/XMLChar.html#highSurrogate(int)"><B>highSurrogate(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns the high surrogate of a supplemental character
<DT><A HREF="org/apache/axis/encoding/CallbackTarget.html#hint"><B>hint</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding">CallbackTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerTarget.html#hint"><B>hint</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding">DeserializerTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#holder(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.toJava.Emitter)"><B>holder(TypeEntry, Emitter)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#holder(org.apache.axis.wsdl.symbolTable.Parameter, org.apache.axis.wsdl.toJava.Emitter)"><B>holder(Parameter, Emitter)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Given a type, return the Java mapping of that type's holder.
<DT><A HREF="org/apache/axis/message/MessageElement.html#href"><B>href</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#httpAuthCharEncoding"><B>httpAuthCharEncoding</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="org/apache/axis/client/async/IAsyncCallback.html" title="interface in org.apache.axis.client.async"><B>IAsyncCallback</B></A> - interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncCallback.html" title="interface in org.apache.axis.client.async">IAsyncCallback</A>.<DD>Callback for Async notification<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async"><B>IAsyncResult</B></A> - interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>.<DD>Access the results of the Async call<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net"><B>IBMFakeTrustSocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory</A>.<DD>Hook for Axis sender, allowing unsigned server certs<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html#IBMFakeTrustSocketFactory(java.util.Hashtable)"><B>IBMFakeTrustSocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory</A>
<DD>Constructor FakeTrustSocketFactory
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net"><B>IBMFakeTrustSocketFactory.FakeX509TrustManager</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>.<DD>Class FakeX509TrustManager<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html#IBMFakeTrustSocketFactory.FakeX509TrustManager()"><B>IBMFakeTrustSocketFactory.FakeX509TrustManager()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html" title="class in org.apache.axis.components.net"><B>IBMJSSESocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html" title="class in org.apache.axis.components.net">IBMJSSESocketFactory</A>.<DD>SSL socket factory.<DT><A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html#IBMJSSESocketFactory(java.util.Hashtable)"><B>IBMJSSESocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html" title="class in org.apache.axis.components.net">IBMJSSESocketFactory</A>
<DD>Constructor IBMJSSESocketFactory
<DT><A HREF="org/apache/axis/utils/IDKey.html" title="class in org.apache.axis.utils"><B>IDKey</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IDKey.html" title="class in org.apache.axis.utils">IDKey</A>.<DD>Wrap an identity key (System.identityHashCode())<DT><A HREF="org/apache/axis/utils/IDKey.html#IDKey(java.lang.Object)"><B>IDKey(Object)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IDKey.html" title="class in org.apache.axis.utils">IDKey</A>
<DD>Constructor for IDKey
<DT><A HREF="org/apache/axis/types/IDRef.html" title="class in org.apache.axis.types"><B>IDRef</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRef.html" title="class in org.apache.axis.types">IDRef</A>.<DD>Custom class for supporting XSD data type IDRef<DT><A HREF="org/apache/axis/types/IDRef.html#IDRef()"><B>IDRef()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRef.html" title="class in org.apache.axis.types">IDRef</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRef.html#IDRef(java.lang.String)"><B>IDRef(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRef.html" title="class in org.apache.axis.types">IDRef</A>
<DD>ctor for IDRef
<DT><A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types"><B>IDRefs</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>.<DD>Custom class for supporting XSD data type IDRefs<DT><A HREF="org/apache/axis/types/IDRefs.html#IDRefs()"><B>IDRefs()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRefs.html#IDRefs(java.lang.String)"><B>IDRefs(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>ctor for IDRefs
<DT><A HREF="org/apache/axis/message/IDResolver.html" title="interface in org.apache.axis.message"><B>IDResolver</B></A> - interface org.apache.axis.message.<A HREF="org/apache/axis/message/IDResolver.html" title="interface in org.apache.axis.message">IDResolver</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#IMPL_CLASS_OPT"><B>IMPL_CLASS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field IMPL_CLASS_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#IMPL_CLASS_OPT"><B>IMPL_CLASS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field IMPL_CLASS_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#IMPORT_SCHEMA_OPT"><B>IMPORT_SCHEMA_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field IMPORT_SCHEMA_OPT
<DT><A HREF="javax/xml/rpc/ParameterMode.html#IN"><B>IN</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>
<DD>The mode is 'IN'.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#IN"><B>IN</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#IN"><B>IN</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Field IN
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#INHERITED_CLASS_OPT"><B>INHERITED_CLASS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field INHERITED_CLASS_OPT
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_DISABLE_SERVICES_LIST"><B>INIT_PROPERTY_DISABLE_SERVICES_LIST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_ENABLE_LIST"><B>INIT_PROPERTY_ENABLE_LIST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_JWS_CLASS_DIR"><B>INIT_PROPERTY_JWS_CLASS_DIR</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_SERVICES_PATH"><B>INIT_PROPERTY_SERVICES_PATH</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_TRANSPORT_NAME"><B>INIT_PROPERTY_TRANSPORT_NAME</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#INIT_PROPERTY_USE_SECURITY"><B>INIT_PROPERTY_USE_SECURITY</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/ParameterMode.html#INOUT"><B>INOUT</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>
<DD>The mode is 'INOUT'.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#INOUT"><B>INOUT</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#INOUT"><B>INOUT</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Field INOUT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#INPUT_OPT"><B>INPUT_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field INPUT_OPT
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#INTERACT_RETRY_INTERVAL"><B>INTERACT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#INTERFACE_NAME"><B>INTERFACE_NAME</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field INTERFACE_NAME
<DT><A HREF="org/apache/axis/client/async/Status.html#INTERRUPTED"><B>INTERRUPTED</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field INTERRUPTED
<DT><A HREF="org/apache/axis/client/async/Status.html#INTERRUPTED_STR"><B>INTERRUPTED_STR</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field INTERRUPTED_STR
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#IN_HEADER"><B>IN_HEADER</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field IN_HEADER
<DT><A HREF="org/apache/axis/utils/IOUtils.html" title="class in org.apache.axis.utils"><B>IOUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IOUtils.html" title="class in org.apache.axis.utils">IOUtils</A>.<DD>Utility class containing IO helper methods<DT><A HREF="org/apache/axis/MessageContext.html#IS_MSG"><B>IS_MSG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Are we doing Msg vs RPC? - For Java Binding.
<DT><A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types"><B>Id</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types">Id</A>.<DD>Custom class for supporting XSD data type ID
 The base type of Id is NCName.<DT><A HREF="org/apache/axis/types/Id.html#Id()"><B>Id()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types">Id</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Id.html#Id(java.lang.String)"><B>Id(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types">Id</A>
<DD>ctor for Id
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils"><B>IdentityHashMap</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>.<DD>IdentityHashMap similar to JDK1.4's java.util.IdentityHashMap<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#IdentityHashMap(int, float)"><B>IdentityHashMap(int, float)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>Constructor for IdentityHashMap.
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#IdentityHashMap(int)"><B>IdentityHashMap(int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>Constructor for IdentityHashMap.
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#IdentityHashMap()"><B>IdentityHashMap()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>Constructor for IdentityHashMap.
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#IdentityHashMap(java.util.Map)"><B>IdentityHashMap(Map)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>Constructor for IdentityHashMap.
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>ImageDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerDeserializer</A>.<DD>ImageDataHandler Deserializer
 Modified by Russell Butek <butek@us.ibm.com><DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html#ImageDataHandlerDeserializer()"><B>ImageDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>ImageDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerSerializer</A>.<DD>ImageDataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html#ImageDataHandlerSerializer()"><B>ImageDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments"><B>ImageDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#ImageDataSource(java.lang.String, java.awt.Image)"><B>ImageDataSource(String, Image)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#ImageDataSource(java.lang.String, java.lang.String, java.awt.Image)"><B>ImageDataSource(String, String, Image)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/ImageHolder.html" title="class in org.apache.axis.holders"><B>ImageHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/ImageHolder.html" title="class in org.apache.axis.holders">ImageHolder</A>.<DD>Class ImageHolder<DT><A HREF="org/apache/axis/holders/ImageHolder.html#ImageHolder()"><B>ImageHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/ImageHolder.html" title="class in org.apache.axis.holders">ImageHolder</A>
<DD>Constructor ImageHolder
<DT><A HREF="org/apache/axis/holders/ImageHolder.html#ImageHolder(java.awt.Image)"><B>ImageHolder(Image)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/ImageHolder.html" title="class in org.apache.axis.holders">ImageHolder</A>
<DD>Constructor ImageHolder
<DT><A HREF="org/apache/axis/components/image/ImageIO.html" title="interface in org.apache.axis.components.image"><B>ImageIO</B></A> - interface org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIO.html" title="interface in org.apache.axis.components.image">ImageIO</A>.<DD>This interface defines a ImageIO modules functionality<DT><A HREF="org/apache/axis/components/image/ImageIOFactory.html" title="class in org.apache.axis.components.image"><B>ImageIOFactory</B></A> - class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIOFactory.html" title="class in org.apache.axis.components.image">ImageIOFactory</A>.<DD>This class implements a factory to instantiate an ImageIO component.<DT><A HREF="org/apache/axis/components/image/ImageIOFactory.html#ImageIOFactory()"><B>ImageIOFactory()</B></A> - 
Constructor for class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIOFactory.html" title="class in org.apache.axis.components.image">ImageIOFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments"><B>IncomingAttachmentStreams</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams</A>.<DD>Similiar in concept to an iterator over the delimited streams inside
 of the HTTP stream.<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html#IncomingAttachmentStreams()"><B>IncomingAttachmentStreams()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments"><B>IncomingAttachmentStreams.IncomingAttachmentInputStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#IncomingAttachmentStreams.IncomingAttachmentInputStream(java.io.InputStream)"><B>IncomingAttachmentStreams.IncomingAttachmentInputStream(InputStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message"><B>InputStreamBody</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message">InputStreamBody</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/InputStreamBody.html#InputStreamBody(java.io.InputStream)"><B>InputStreamBody(InputStream)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message">InputStreamBody</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/IntHolder.html" title="class in javax.xml.rpc.holders"><B>IntHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntHolder.html" title="class in javax.xml.rpc.holders">IntHolder</A>.<DD>Holder for <code>int</code>s.<DT><A HREF="javax/xml/rpc/holders/IntHolder.html#IntHolder()"><B>IntHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntHolder.html" title="class in javax.xml.rpc.holders">IntHolder</A>
<DD>Make a new <code>IntHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/IntHolder.html#IntHolder(int)"><B>IntHolder(int)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntHolder.html" title="class in javax.xml.rpc.holders">IntHolder</A>
<DD>Make a new <code>IntHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>IntegerWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html" title="class in javax.xml.rpc.holders">IntegerWrapperHolder</A>.<DD>Holder for <code>Integer</code>s.<DT><A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html#IntegerWrapperHolder()"><B>IntegerWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html" title="class in javax.xml.rpc.holders">IntegerWrapperHolder</A>
<DD>Make a new <code>IntegerWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html#IntegerWrapperHolder(java.lang.Integer)"><B>IntegerWrapperHolder(Integer)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html" title="class in javax.xml.rpc.holders">IntegerWrapperHolder</A>
<DD>Make a new <code>IntegerWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis"><B>InternalException</B></A> - exception org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>.<DD>Encapsulates exceptions for "should never occur" situations.<DT><A HREF="org/apache/axis/InternalException.html#InternalException(java.lang.String)"><B>InternalException(String)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>
<DD>Construct an Internal Exception from a String.
<DT><A HREF="org/apache/axis/InternalException.html#InternalException(java.lang.Exception)"><B>InternalException(Exception)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>
<DD>Construct an Internal Exception from an Exception.
<DT><A HREF="org/apache/axis/strategies/InvocationStrategy.html" title="class in org.apache.axis.strategies"><B>InvocationStrategy</B></A> - class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/InvocationStrategy.html" title="class in org.apache.axis.strategies">InvocationStrategy</A>.<DD>A Strategy which calls invoke() on the specified Handler, passing
 it the specified MessageContext.<DT><A HREF="org/apache/axis/strategies/InvocationStrategy.html#InvocationStrategy()"><B>InvocationStrategy()</B></A> - 
Constructor for class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/InvocationStrategy.html" title="class in org.apache.axis.strategies">InvocationStrategy</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/InvokeException.html" title="class in org.apache.axis.transport.jms"><B>InvokeException</B></A> - exception org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/InvokeException.html" title="class in org.apache.axis.transport.jms">InvokeException</A>.<DD>The <code>InvokeException</code> is thrown when a method encounters a
 general exception in the course of processing.<DT><A HREF="org/apache/axis/transport/jms/InvokeException.html#InvokeException(java.lang.String)"><B>InvokeException(String)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/InvokeException.html" title="class in org.apache.axis.transport.jms">InvokeException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/InvokeTimeoutException.html" title="class in org.apache.axis.transport.jms"><B>InvokeTimeoutException</B></A> - exception org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/InvokeTimeoutException.html" title="class in org.apache.axis.transport.jms">InvokeTimeoutException</A>.<DD>The <code>InvokeTimeoutException</code> is thrown when a method cannot
 complete processing within the time allotted.<DT><A HREF="org/apache/axis/transport/jms/InvokeTimeoutException.html#InvokeTimeoutException(java.lang.String)"><B>InvokeTimeoutException(String)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/InvokeTimeoutException.html" title="class in org.apache.axis.transport.jms">InvokeTimeoutException</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/messaging/Endpoint.html#id"><B>id</B></A> - 
Variable in class javax.xml.messaging.<A HREF="javax/xml/messaging/Endpoint.html" title="class in javax.xml.messaging">Endpoint</A>
<DD>A string that identifies the party that this <code>Endpoint</code> object represents; a URI is the default.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#id"><B>id</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#id"><B>id</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#id"><B>id</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#ignorableWhitespace(char[], int, int)"><B>ignorableWhitespace(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#ignorableWhitespace(char[], int, int)"><B>ignorableWhitespace(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#ignorableWhitespace(char[], int, int)"><B>ignorableWhitespace(char[], int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#ignoreNonSOAPBindings(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>ignoreNonSOAPBindings(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>If a binding's type is not TYPE_SOAP, then we don't use that binding
 or that binding's portType.
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#impl"><B>impl</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#implWriter"><B>implWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field implWriter
<DT><A HREF="org/apache/axis/SOAPPart.html#importNode(org.w3c.dom.Node, boolean)"><B>importNode(Node, boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#importNode(org.w3c.dom.Node, boolean)"><B>importNode(Node, boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#imports"><B>imports</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field imports
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#incLockCounter()"><B>incLockCounter()</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>thread safe lock counter increment
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#include(javax.xml.namespace.QName)"><B>include(QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Determines whether the QName supplied should be generated by comparing
 the namespace for the QName against the included and excluded names.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#increaseCapacity(int)"><B>increaseCapacity(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method increaseCapacity
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html#increment()"><B>increment()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Gets the index of the specified key.
<DT><A HREF="javax/xml/rpc/handler/GenericHandler.html#init(javax.xml.rpc.handler.HandlerInfo)"><B>init(HandlerInfo)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/GenericHandler.html" title="class in javax.xml.rpc.handler">GenericHandler</A>
<DD>The <code>init</code> method to enable the Handler instance to
 initialize itself.
<DT><A HREF="javax/xml/rpc/handler/Handler.html#init(javax.xml.rpc.handler.HandlerInfo)"><B>init(HandlerInfo)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/Handler.html" title="interface in javax.xml.rpc.handler">Handler</A>
<DD>The <code>init</code> method enables the Handler instance to
 initialize itself.
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#init(java.util.Map)"><B>init(Map)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>Initializes the configuration for a HandlerChain.
<DT><A HREF="javax/xml/rpc/server/ServiceLifecycle.html#init(java.lang.Object)"><B>init(Object)</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServiceLifecycle.html" title="interface in javax.xml.rpc.server">ServiceLifecycle</A>
<DD>Used for initialization of a service endpoint.
<DT><A HREF="org/apache/axis/AxisEngine.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Initialize the engine.
<DT><A HREF="org/apache/axis/FaultableHandler.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Handler.html#init()"><B>init()</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Init is called when the chain containing this Handler object
 is instantiated.
<DT><A HREF="org/apache/axis/SimpleChain.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#init(org.apache.axis.Handler, org.apache.axis.Handler, org.apache.axis.Handler, org.apache.axis.Handler, org.apache.axis.Handler)"><B>init(Handler, Handler, Handler, Handler, Handler)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>Initialiser which takes real or null request, pivot, and response
 handlers and which allows for special request and response
 handlers to be inserted just before and after any pivot handler.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Stubbed-out methods.
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#init(java.util.Map)"><B>init(Map)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#init(java.util.Map)"><B>init(Map)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogHandler.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>
<DD>Servlet initialiation
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>init by registering
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Initialization method.
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>our initialize routine; subclasses should call this if they override it
<DT><A HREF="org/apache/axis/transport/local/LocalSender.html#init()"><B>init()</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local">LocalSender</A>
<DD>Allocate an embedded Axis server to process requests and initialize it.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#init(int)"><B>init(int)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Invoked prior to building a definition to ensure parms
 and data are set up.
<DT><A HREF="javax/xml/soap/SOAPException.html#initCause(java.lang.Throwable)"><B>initCause(Throwable)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Initializes the <CODE>cause</CODE> field of this <CODE>
   SOAPException</CODE> object with the given <CODE>
   Throwable</CODE> object.
<DT><A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html#initFactory()"><B>initFactory()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMJSSESocketFactory.html" title="class in org.apache.axis.components.net">IBMJSSESocketFactory</A>
<DD>Read the keystore, init the SSL socket factory
<DT><A HREF="org/apache/axis/components/net/JSSESocketFactory.html#initFactory()"><B>initFactory()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net">JSSESocketFactory</A>
<DD>Initialize the SSLSocketFactory
<DT><A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html#initFactory()"><B>initFactory()</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html" title="class in org.apache.axis.components.net">SunJSSESocketFactory</A>
<DD>Read the keystore, init the SSL socket factory
<DT><A HREF="org/apache/axis/AxisFault.html#initFaultSubCodes()"><B>initFaultSubCodes()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Do whatever is needed to create the fault subcodes
 data structure, if it is needed.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#initHashtable()"><B>initHashtable()</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#initMappings()"><B>initMappings()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#initQueryStringHandlers()"><B>initQueryStringHandlers()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>Initialize a Handler for the transport defined in the Axis server config.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#initSAXFactory(java.lang.String, boolean, boolean)"><B>initSAXFactory(String, boolean, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Initialize the SAX parser factory.
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>initServiceDesc(SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>initServiceDesc(SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>This method returns a ServiceDesc that contains the correct 
 implimentation class.
<DT><A HREF="org/apache/axis/providers/ComProvider.html#initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>initServiceDesc(SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/ComProvider.html" title="class in org.apache.axis.providers">ComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext)"><B>initServiceDesc(SOAPService, MessageContext)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Fill in a service description with the correct impl class
 and typemapping set.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#initTMR()"><B>initTMR()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Initialize a TypeMappingRegistry with the
 WSDDTypeMappings.
<DT><A HREF="org/apache/axis/client/Call.html#initialize()"><B>initialize()</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set up the default transport URL mappings.
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#initialize()"><B>initialize()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#initializeChildren()"><B>initializeChildren()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Initialize the children array
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#inouts"><B>inouts</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field inouts
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#inputSource"><B>inputSource</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/InputStreamBody.html#inputStream"><B>inputStream</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message">InputStreamBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#inputs"><B>inputs</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field inputs
<DT><A HREF="org/apache/axis/SOAPPart.html#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)"><B>insertBefore(Node, Node)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)"><B>insertBefore(Node, Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Inserts the node <code>newChild</code> before the existing child node
 <code>refChild</code>.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)"><B>insertBefore(Node, Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#insertData(int, java.lang.String)"><B>insertData(int, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#insertTypesFragment(org.w3c.dom.Document)"><B>insertTypesFragment(Document)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Inserts the type fragment into the given wsdl document and ensures
 that definitions from each embedded schema are allowed to reference
 schema components from the other sibling schemas.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#intValue()"><B>intValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#intValue()"><B>intValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#interfaceWriter"><B>interfaceWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field interfaceWriter
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#internalConnect(javax.jms.ConnectionFactory, java.lang.String, java.lang.String)"><B>internalConnect(ConnectionFactory, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#internalConnect(javax.jms.ConnectionFactory, java.lang.String, java.lang.String)"><B>internalConnect(ConnectionFactory, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#internalConnect(javax.jms.ConnectionFactory, java.lang.String, java.lang.String)"><B>internalConnect(ConnectionFactory, String, String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#internalRegister(java.lang.Class, javax.xml.namespace.QName, javax.xml.rpc.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>internalRegister(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Internal version of register(), which allows null factories.
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#interruptAll()"><B>interruptAll()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Forcefully interrupt all workers
<DT><A HREF="org/apache/axis/session/Session.html#invalidate()"><B>invalidate()</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>invalidate the session
<DT><A HREF="org/apache/axis/session/SimpleSession.html#invalidate()"><B>invalidate()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>invalidate the session
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#invalidate()"><B>invalidate()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>invalidate the session
<DT><A HREF="javax/xml/rpc/Call.html#invoke(java.lang.Object[])"><B>invoke(Object[])</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Invokes a specific operation using a synchronous request-response
 interaction mode.
<DT><A HREF="javax/xml/rpc/Call.html#invoke(javax.xml.namespace.QName, java.lang.Object[])"><B>invoke(QName, Object[])</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Invokes a specific operation using a synchronous request-response
 interaction mode.
<DT><A HREF="org/apache/axis/FaultableHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>Invokes the specified handler.
<DT><A HREF="org/apache/axis/Handler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Invoke is called to do the actual work of the Handler object.
<DT><A HREF="org/apache/axis/SimpleChain.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>Iterate over the chain invoking each handler.
<DT><A HREF="org/apache/axis/client/AxisClient.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>Main routine of the AXIS engine.
<DT><A HREF="org/apache/axis/client/AxisClientProxy.html#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])"><B>invoke(Object, Method, Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client">AxisClientProxy</A>
<DD>Handle a method invocation.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(javax.xml.namespace.QName, java.lang.Object[])"><B>invoke(QName, Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invokes a specific operation using a synchronous request-response interaction mode.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(java.lang.Object[])"><B>invoke(Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invokes the operation associated with this Call object using the
 passed in parameters as the arguments to the method.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(org.apache.axis.Message)"><B>invoke(Message)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invoke the service with a custom Message.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(org.apache.axis.message.SOAPEnvelope)"><B>invoke(SOAPEnvelope)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invoke the service with a custom SOAPEnvelope.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(java.lang.String, java.lang.String, java.lang.Object[])"><B>invoke(String, String, Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invoke an RPC service with a method name and arguments.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(java.lang.String, java.lang.Object[])"><B>invoke(String, Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Convenience method to invoke a method with a default (empty)
 namespace.
<DT><A HREF="org/apache/axis/client/Call.html#invoke(org.apache.axis.message.RPCElement)"><B>invoke(RPCElement)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invoke an RPC service with a pre-constructed RPCElement.
<DT><A HREF="org/apache/axis/client/Call.html#invoke()"><B>invoke()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invoke this Call with its established MessageContext
 (perhaps because you called this.setRequestMessage())

 Note: Not part of JAX-RPC specification.
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#invoke(java.lang.Object[])"><B>invoke(Object[])</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Method invoke
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#invoke(javax.xml.namespace.QName, java.lang.Object[])"><B>invoke(QName, Object[])</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Method invoke
<DT><A HREF="org/apache/axis/handlers/DebugHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/ErrorHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/ErrorHandler.html" title="class in org.apache.axis.handlers">ErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>Just set up the service, the inner service will do the rest...
<DT><A HREF="org/apache/axis/handlers/LogHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogMessage.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogMessage.html" title="class in org.apache.axis.handlers">LogMessage</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/MD5AttachHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/MD5AttachHandler.html" title="class in org.apache.axis.handlers">MD5AttachHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html" title="class in org.apache.axis.handlers">SOAPMonitorHandler</A>
<DD>Process and SOAP message
<DT><A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthenticationHandler</A>
<DD>Authenticate the user and password from the msgContext
<DT><A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthorizationHandler</A>
<DD>Authorize the user and targetService from the msgContext
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>Process a MessageContext.
<DT><A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html" title="class in org.apache.axis.handlers.http">HTTPActionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html" title="class in org.apache.axis.handlers.http">HTTPAuthHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/URLMapper.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http">URLMapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html" title="class in org.apache.axis.handlers.soap">MustUnderstandChecker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/ComProvider.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/ComProvider.html" title="class in org.apache.axis.providers">ComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Invoke the message by obtaining various common fields, looking up
 the service object (via getServiceObject), and actually processing
 the message (via processMessage).
<DT><A HREF="org/apache/axis/server/AxisServer.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>Main routine of the AXIS server.
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>invoke creates a socket connection, sends the request SOAP message and then
 reads the response SOAP message back from the SOAP server
<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>
<DD>invoke creates a socket connection, sends the request SOAP message and then
 reads the response SOAP message back from the SOAP server
<DT><A HREF="org/apache/axis/transport/http/QSHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in interface org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSHandler.html" title="interface in org.apache.axis.transport.http">QSHandler</A>
<DD>Performs the action associated with this particular query string
 handler.
<DT><A HREF="org/apache/axis/transport/http/QSListHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSListHandler.html" title="class in org.apache.axis.transport.http">QSListHandler</A>
<DD>Performs the action associated with this particular query string
 handler.
<DT><A HREF="org/apache/axis/transport/http/QSMethodHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSMethodHandler.html" title="class in org.apache.axis.transport.http">QSMethodHandler</A>
<DD>Performs the action associated with this particular query string
 handler.
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>Performs the action associated with this particular query string handler.
<DT><A HREF="org/apache/axis/transport/java/JavaSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaSender.html" title="class in org.apache.axis.transport.java">JavaSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSSender.html" title="class in org.apache.axis.transport.jms">JMSSender</A>
<DD>invoke() creates an endpoint, sends the request SOAP message, and then
   either reads the response SOAP message or simply returns.
<DT><A HREF="org/apache/axis/transport/local/LocalResponder.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalResponder.html" title="class in org.apache.axis.transport.local">LocalResponder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local">LocalSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailSender.html#invoke(org.apache.axis.MessageContext)"><B>invoke(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailSender.html" title="class in org.apache.axis.transport.mail">MailSender</A>
<DD>invoke creates a socket connection, sends the request SOAP message and then
 reads the response SOAP message back from the SOAP server
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[])"><B>invokeMethod(MessageContext, Method, Object, Object[])</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>Override the default implementation such that we can include
 special handling for <CODE>ServerException</CODE>.
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[])"><B>invokeMethod(MessageContext, Method, Object, Object[])</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>This method encapsulates the method invocation.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#invokeMethodFromGet(java.lang.String, java.lang.String)"><B>invokeMethodFromGet(String, String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#invokeOneWay(java.lang.Object[])"><B>invokeOneWay(Object[])</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Invokes a remote method using the one-way interaction mode.
<DT><A HREF="org/apache/axis/client/Call.html#invokeOneWay(java.lang.Object[])"><B>invokeOneWay(Object[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Invokes the operation associated with this Call object using the passed
 in parameters as the arguments to the method.
<DT><A HREF="org/apache/axis/SimpleChain.html#invoked"><B>invoked</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#isAbsoluteURI()"><B>isAbsoluteURI()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Returns whether this URI represents an absolute URI.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#isAcceptableAsAttribute(java.lang.Class)"><B>isAcceptableAsAttribute(Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Is the given class acceptable as an attribute
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isAllWanted()"><B>isAllWanted()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Method isAllWanted
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isAllowInvalidURL()"><B>isAllowInvalidURL()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#isAny"><B>isAny</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field isAny
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#isArray()"><B>isArray()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Query if property is an array (excluded byte[]).
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#isArray(java.lang.Class)"><B>isArray(Class)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentUtils.html#isAttachment(java.lang.Object)"><B>isAttachment(Object)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentUtils.html" title="class in org.apache.axis.attachments">AttachmentUtils</A>
<DD>Determine if an object is to be treated as an attchment.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#isAttachment(java.lang.Object)"><B>isAttachment(Object)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Determine if an object is to be treated as an attchment.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#isAttachment(java.lang.Object)"><B>isAttachment(Object)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Determine if an object is to be treated as an attchment.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isAttachmentSupported()"><B>isAttachmentSupported()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Determine whether attachments are supported by checking if the following
 classes are available:  javax.activation.DataHandler,
 javax.mail.internet.MimeMultipart.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#isBaseType"><B>isBaseType</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field isBaseType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#isBaseType()"><B>isBaseType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Method isBaseType
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isBasic(java.lang.Class)"><B>isBasic(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#isBeanCompatible(java.lang.Class, boolean)"><B>isBeanCompatible(Class, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>isBeanCompatible
<DT><A HREF="org/apache/axis/SOAPPart.html#isBodyStream()"><B>isBodyStream()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/Registrar.html#isBound()"><B>isBound()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management">Registrar</A>
<DD>Check for being bound to a modeler -this will force
 a binding if none existed.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isBuildFileWanted()"><B>isBuildFileWanted()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>get the build file genaeration state
<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html#isClassRegistered(java.lang.String)"><B>isClassRegistered(String)</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>
<DD>Query a given class' cache status.
<DT><A HREF="org/apache/axis/MessageContext.html#isClient()"><B>isClient()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Let us know whether this is the client or the server.
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html#isClientTrusted(java.security.cert.X509Certificate[])"><B>isClientTrusted(X509Certificate[])</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method isClientTrusted
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html#isClientTrusted(java.security.cert.X509Certificate[])"><B>isClientTrusted(X509Certificate[])</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method isClientTrusted
<DT><A HREF="javax/xml/soap/Text.html#isComment()"><B>isComment()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Text.html" title="interface in javax.xml.soap">Text</A>
<DD>Retrieves whether this <CODE>Text</CODE> object
 represents a comment.
<DT><A HREF="org/apache/axis/message/CDATAImpl.html#isComment()"><B>isComment()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/CDATAImpl.html" title="class in org.apache.axis.message">CDATAImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/CommentImpl.html#isComment()"><B>isComment()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/CommentImpl.html" title="class in org.apache.axis.message">CommentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#isComment()"><B>isComment()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>Retrieves whether this <CODE>Text</CODE> object
 represents a comment.
<DT><A HREF="org/apache/axis/description/FaultDesc.html#isComplex()"><B>isComplex()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#isConformantSchemeName(java.lang.String)"><B>isConformantSchemeName(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Determine whether a scheme conforms to the rules for a scheme name.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#isConnectionDropped(javax.jms.JMSException)"><B>isConnectionDropped(JMSException)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isContent(int)"><B>isContent(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character can be considered content.
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#isConvertable(java.lang.Class, java.lang.Class)"><B>isConvertable(Class, Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>Check if the clazz(perhaps ArrayOfT class) can be converted to T[].
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isConvertable(java.lang.Object, java.lang.Class)"><B>isConvertable(Object, Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isConvertable(java.lang.Object, java.lang.Class, boolean)"><B>isConvertable(Object, Class, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#isDEFAULT_ENABLE_BACKING_STORE()"><B>isDEFAULT_ENABLE_BACKING_STORE()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#isDebug()"><B>isDebug()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method isDebug
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#isDeploy"><B>isDeploy</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field isDeplpy
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isDeploy()"><B>isDeploy()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Returns the deploy mode flag
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#isDevelopment()"><B>isDevelopment()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>probe for the system being 'production'
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#isDevelopment()"><B>isDevelopment()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>probe for the system being 'production'
<DT><A HREF="org/apache/axis/message/NodeImpl.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>get the dirty bit
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#isDoneParsing()"><B>isDoneParsing()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Return if done parsing document.
<DT><A HREF="org/apache/axis/description/FieldDesc.html#isElement()"><B>isElement()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Check if this is an element or an attribute.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#isEmpty()"><B>isEmpty()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.isEmpty()</CODE>.
<DT><A HREF="org/apache/axis/utils/StringUtils.html#isEmpty(java.lang.String)"><B>isEmpty(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Checks if a String is empty ("") or null.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#isEnableBackingStore()"><B>isEnableBackingStore()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#isEncoded()"><B>isEncoded()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Indicates if the opration is encoded.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#isEncoded()"><B>isEncoded()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Returns whether this context should be encoded or not.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#isEnded"><B>isEnded</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isEnumClass(java.lang.Class)"><B>isEnumClass(Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Determine if the class is a JAX-RPC enum class.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#isEnumClass(java.lang.Class)"><B>isEnumClass(Class)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Returns true if indicated type matches the JAX-RPC enumeration class.
<DT><A HREF="org/apache/axis/components/compiler/CompilerError.html#isError()"><B>isError()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerError.html" title="class in org.apache.axis.components.compiler">CompilerError</A>
<DD>Assert whether this is a severe error or a warning
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalse(java.lang.String)"><B>isFalse(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the String 'value':
   return 'true' if its 'false', '0', or 'no' - else 'false'
 
 Follow in 'C' tradition of boolean values:
 false is specific (0), everything else is true;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalse(java.lang.Object, boolean)"><B>isFalse(Object, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the Object 'value':
   if its null, return default.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalse(java.lang.Object)"><B>isFalse(Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalseExplicitly(java.lang.String)"><B>isFalseExplicitly(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the String 'value':
   return 'true' if its null, 'false', '0', or 'no' - else 'false'
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalseExplicitly(java.lang.Object, boolean)"><B>isFalseExplicitly(Object, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the Object 'value':
   if its null, return default.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isFalseExplicitly(java.lang.Object)"><B>isFalseExplicitly(Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#isFaultComplex(javax.wsdl.Message, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>isFaultComplex(Message, SymbolTable)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Given a fault message, return TRUE if the fault is a complex type fault
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#isFileGenerated(java.lang.String)"><B>isFileGenerated(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>You should not need to override this method.
<DT><A HREF="org/apache/axis/utils/ParserControl.html#isFinished(int)"><B>isFinished(int)</B></A> - 
Method in interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/ParserControl.html" title="interface in org.apache.axis.utils">ParserControl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Options.html#isFlagSet(char)"><B>isFlagSet(char)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>Returns an int specifying the number of times that the flag was
 specified on the command line.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html#isGenerated()"><B>isGenerated()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#isGenericURI()"><B>isGenericURI()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the indicator as to whether this URI uses the "generic URI"
 syntax.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isHelperWanted()"><B>isHelperWanted()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Indicate if we should be generating Helper classes
<DT><A HREF="org/apache/axis/MessageContext.html#isHighFidelity()"><B>isHighFidelity()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Read the high fidelity property.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isHighSurrogate(int)"><B>isHighSurrogate(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns whether the given character is a high surrogate
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#isHostInNonProxyList(java.lang.String, java.lang.String)"><B>isHostInNonProxyList(String, String)</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Check if the specified host is in the list of non proxy hosts.
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#isHostInNonProxyList(java.lang.String, java.lang.String)"><B>isHostInNonProxyList(String, String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>Check if the specified host is in the list of non proxy hosts.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#isHref"><B>isHref</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#isImports()"><B>isImports()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method isImports
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#isInHeader()"><B>isInHeader()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#isInHeader()"><B>isInHeader()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Is this parameter in the input message header?
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#isInHeaderPart(java.lang.String, java.lang.String)"><B>isInHeaderPart(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Is this part an input header part?.
<DT><A HREF="org/apache/axis/description/FieldDesc.html#isIndexed()"><B>isIndexed()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#isIndexed()"><B>isIndexed()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Query if property is indexed
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#isIndexed()"><B>isIndexed()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Query if property is indexed.
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#isIndexedOrArray()"><B>isIndexedOrArray()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Query if property is indexed or if it' an array.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#isInitialized()"><B>isInitialized()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#isInitialized()"><B>isInitialized()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isInvalid(int)"><B>isInvalid(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is invalid.
<DT><A HREF="org/apache/axis/utils/ClasspathUtils.html#isJar(java.io.InputStream)"><B>isJar(InputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClasspathUtils.html" title="class in org.apache.axis.utils">ClasspathUtils</A>
<DD>Check if this inputstream is a jar/zip
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isJavaId(java.lang.String)"><B>isJavaId(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>isJavaId
 Returns true if the name is a valid java identifier.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isJavaKeyword(java.lang.String)"><B>isJavaKeyword(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>checks if the input string is a valid java keyword.
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#isKeyLocked(java.lang.Object)"><B>isKeyLocked(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Returns true if a given key is in our locked list
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#isKnownNamespace(java.lang.String)"><B>isKnownNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Check if this is a known namespace (soap-enc or schema xsd or schema xsi or xml)
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isListWithItemType(org.w3c.dom.Node)"><B>isListWithItemType(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Returns whether the specified node represents a <xsd:simpleType>
 with a nested <xsd:list itemType="...">.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isLowSurrogate(int)"><B>isLowSurrogate(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns whether the given character is a low surrogate
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isMarkup(int)"><B>isMarkup(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character can be considered markup.
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#isMatchingConnectionFactory(javax.jms.ConnectionFactory, org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>isMatchingConnectionFactory(ConnectionFactory, JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#isMatchingConnectionFactory(javax.jms.ConnectionFactory, org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>isMatchingConnectionFactory(ConnectionFactory, JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>Check that the attributes of the candidate connection factory match the
 requested connection factory properties.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#isMatchingConnectionFactory(javax.jms.ConnectionFactory, org.apache.axis.transport.jms.JMSURLHelper, java.util.HashMap)"><B>isMatchingConnectionFactory(ConnectionFactory, JMSURLHelper, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>Check that the attributes of the candidate connection factory match the
 requested connection factory properties.
<DT><A HREF="org/apache/axis/description/ElementDesc.html#isMaxOccursUnbounded()"><B>isMaxOccursUnbounded()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ElementDesc.html#isMinOccursZero()"><B>isMinOccursZero()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#isMinOccursZero()"><B>isMinOccursZero()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Check if this field can be omitted.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isMixed(org.w3c.dom.Node)"><B>isMixed(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>This method checks mixed=true attribute is set either on
 complexType or complexContent element.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#isMixed"><B>isMixed</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field isMixed
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isNCName(int)"><B>isNCName(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a valid NCName
 character as defined by production [5] in Namespaces in XML
 recommendation.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isNCNameStart(int)"><B>isNCNameStart(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a valid NCName start
 character as defined by production [4] in Namespaces in XML
 recommendation.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isName(int)"><B>isName(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a valid name
 character as defined by production [4] in the XML 1.0
 specification.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isNameStart(int)"><B>isNameStart(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a valid name start
 character as defined by production [5] in the XML 1.0
 specification.
<DT><A HREF="org/apache/axis/types/Duration.html#isNegative()"><B>isNegative()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#isNil(org.xml.sax.Attributes)"><B>isNil(Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Convenenience method that returns true if the value is nil
 (due to the xsi:nil) attribute.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#isNil"><B>isNil</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ElementDesc.html#isNillable()"><B>isNillable()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>Returns value of nillable property.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#isNillable()"><B>isNillable()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Indicates whether this parameter is nillable or not.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#isNillable()"><B>isNillable()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Indicates whether this parameter is nillable or not.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#isNowrap()"><B>isNowrap()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method isNowrap
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#isNullable(java.lang.Class)"><B>isNullable(Class)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Determines if the field is nullable.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#isOmittable()"><B>isOmittable()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Indicates if this parameter is omittable or not (i.e., if it
 has a minimum occurrence of 0).
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#isOmittable()"><B>isOmittable()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#isOnlyLiteralReferenced()"><B>isOnlyLiteralReferenced()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Is this type references ONLY as a literal type?  If a binding's
 message's soapBody says:  use="literal", then a type is referenced
 literally.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#isOperationDIME(java.lang.String)"><B>isOperationDIME(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Check if this operation should use DIME
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#isOutHeader()"><B>isOutHeader()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#isOutHeader()"><B>isOutHeader()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Is this parameter in the output message header?
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#isOutHeaderPart(java.lang.String, java.lang.String)"><B>isOutHeaderPart(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Is this part an output header part?.
<DT><A HREF="javax/xml/rpc/Call.html#isParameterAndReturnSpecRequired(javax.xml.namespace.QName)"><B>isParameterAndReturnSpecRequired(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Indicates whether <code>addParameter</code> and
 <code>setReturnType</code> methods
 are to be invoked to specify the parameter and return type
 specification for a specific operation.
<DT><A HREF="org/apache/axis/client/Call.html#isParameterAndReturnSpecRequired(javax.xml.namespace.QName)"><B>isParameterAndReturnSpecRequired(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Is the caller required to provide the parameter and return type
 specification?
 If true, then
  addParameter and setReturnType MUST be called to provide the meta data.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#isPrimitive(java.lang.Object)"><B>isPrimitive(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Indicates whether the object should be interpretted as a primitive
 for the purposes of multi-ref processing.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#isPrimitiveType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>isPrimitiveType(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Method isPrimitiveType
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#isProcessed()"><B>isProcessed()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#isProcessingRef()"><B>isProcessingRef()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#isPropertySupported(java.lang.String)"><B>isPropertySupported(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#isPropertyTrue(java.lang.String)"><B>isPropertyTrue(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Tests to see if the named property is set in the 'bag', returning
 <code>false</code> if it is not present at all.
<DT><A HREF="org/apache/axis/MessageContext.html#isPropertyTrue(java.lang.String, boolean)"><B>isPropertyTrue(String, boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Test if a property is set to something we consider to be true in the
 'bag'.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isPubid(int)"><B>isPubid(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a valid Pubid
 character as defined by production [13] in the XML 1.0
 specification.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#isQuiet()"><B>isQuiet()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method isQuiet
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#isQuiet()"><B>isQuiet()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Method isQuiet
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#isReadable()"><B>isReadable()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Query if property is readable
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#isReadable()"><B>isReadable()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Query if property is readable
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html#isReadyToGetNextStream()"><B>isReadyToGetNextStream()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#isRecorded()"><B>isRecorded()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#isRecoverable(java.lang.Throwable, int)"><B>isRecoverable(Throwable, int)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#isRecoverable(java.lang.Throwable, int)"><B>isRecoverable(Throwable, int)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#isRecursive(org.apache.axis.utils.IdentityHashMap, java.util.Vector)"><B>isRecursive(IdentityHashMap, Vector)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#isReferenced()"><B>isReferenced()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Is this entry referenced by any other entry in the symbol table?
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#isRegistered(java.lang.Class, javax.xml.namespace.QName)"><B>isRegistered(Class, QName)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Checks whether or not type mapping between specified XML
 type and Java type is registered.
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#isRegistered(java.lang.Class, javax.xml.namespace.QName)"><B>isRegistered(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#isRegistered(java.lang.Class, javax.xml.namespace.QName)"><B>isRegistered(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>isRegistered returns true if the [javaType, xmlType]
 pair is registered.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#isReturnHeader()"><B>isReturnHeader()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Is the return value in the header of the response message?
<DT><A HREF="org/apache/axis/message/MessageElement.html#isRoot()"><B>isRoot()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get the is-root flag
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#isRunning()"><B>isRunning()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Is this service suspended?
<DT><A HREF="org/apache/axis/server/AxisServer.html#isRunning()"><B>isRunning()</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#isSOAP_ENC(java.lang.String)"><B>isSOAP_ENC(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if SOAP_ENC Namespace.
<DT><A HREF="org/apache/axis/Constants.html#isSOAP_ENV(java.lang.String)"><B>isSOAP_ENV(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if the string is the SOAP_ENV Namespace.
<DT><A HREF="org/apache/axis/Constants.html#isSchemaXSD(java.lang.String)"><B>isSchemaXSD(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if SchemaXSD Namespace.
<DT><A HREF="org/apache/axis/Constants.html#isSchemaXSI(java.lang.String)"><B>isSchemaXSI(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if SchemaXSI Namespace.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isServerSide()"><B>isServerSide()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Indicate if we should be emitting server side code and deploy/undeploy
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html#isServerTrusted(java.security.cert.X509Certificate[])"><B>isServerTrusted(X509Certificate[])</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method isServerTrusted
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html#isServerTrusted(java.security.cert.X509Certificate[])"><B>isServerTrusted(X509Certificate[])</B></A> - 
Method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Method isServerTrusted
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#isSessionUsed()"><B>isSessionUsed()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#isShutdown()"><B>isShutdown()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Returns true if all workers have been shutdown
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#isShuttingDown()"><B>isShuttingDown()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Returns true if all workers are in the process of shutting down
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isSimpleSchemaType(javax.xml.namespace.QName)"><B>isSimpleSchemaType(QName)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>Determine if a QName is a simple XML Schema type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#isSimpleType"><B>isSimpleType</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field isSimpleType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#isSimpleType()"><B>isSimpleType()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Method isSimpleType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isSimpleTypeOrSimpleContent(org.w3c.dom.Node)"><B>isSimpleTypeOrSimpleContent(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>If the specified node is a simple type or contains simpleContent, return true
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isSimpleTypeWithUnion(org.w3c.dom.Node)"><B>isSimpleTypeWithUnion(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isSkeletonWanted()"><B>isSkeletonWanted()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Indicate if we should be deploying skeleton or implementation
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isSpace(int)"><B>isSpace(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a space character
 as defined by production [3] in the XML 1.0 specification.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isSupplemental(int)"><B>isSupplemental(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a supplemental character.
<DT><A HREF="org/apache/axis/SOAPPart.html#isSupported(java.lang.String, java.lang.String)"><B>isSupported(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#isSupported(java.lang.String, java.lang.String)"><B>isSupported(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Tests whether the DOM implementation implements a specific feature and
 that feature is supported by this node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#isSupported(java.lang.String, java.lang.String)"><B>isSupported(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isTestCaseWanted()"><B>isTestCaseWanted()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Method isTestCaseWanted
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrue(java.lang.String)"><B>isTrue(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the String 'value':
   return 'false' if its 'false', '0', or 'no' - else 'true'
 
 Follow in 'C' tradition of boolean values:
 false is specific (0), everything else is true;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrue(java.lang.Object, boolean)"><B>isTrue(Object, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the Object 'value':
   if its null, return default.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrue(java.lang.Object)"><B>isTrue(Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrueExplicitly(java.lang.String)"><B>isTrueExplicitly(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the String 'value':
   return 'true' if its 'true', '1', or 'yes' - else 'false'
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrueExplicitly(java.lang.Object, boolean)"><B>isTrueExplicitly(Object, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Tests the Object 'value':
   if its null, return default.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#isTrueExplicitly(java.lang.Object)"><B>isTrueExplicitly(Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#isTypeCollisionProtection()"><B>isTypeCollisionProtection()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Get the type collision protection setting
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html#isUserInRole(java.lang.String)"><B>isUserInRole(String)</B></A> - 
Method in interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#isUserInRole(java.lang.String)"><B>isUserInRole(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/Status.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method isValid
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Id.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types">Id</A>
<DD>validate the value against the xsd definition

 Same validation as NCName for the time being
<DT><A HREF="org/apache/axis/types/Language.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Language.html" title="class in org.apache.axis.types">Language</A>
<DD>validate the value against the xsd definition
 TODO
<DT><A HREF="org/apache/axis/types/NCName.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types">NCName</A>
<DD>validate the value against the xsd definition

 NCName ::=  (Letter | '_') (NCNameChar)*
 NCNameChar ::=  Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender
<DT><A HREF="org/apache/axis/types/NMToken.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NMToken.html" title="class in org.apache.axis.types">NMToken</A>
<DD>validate the value against the xsd definition
 Nmtoken    ::=    (NameChar)+
 NameChar    ::=     Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
<DT><A HREF="org/apache/axis/types/Name.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types">Name</A>
<DD>validate the value against the xsd definition
   Name    ::=    (Letter | '_' | ':') ( NameChar)*
 NameChar    ::=     Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
<DT><A HREF="org/apache/axis/types/NormalizedString.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>validate the value against the xsd definition for the object

 The value space of normalizedString is the set of strings that
 do not contain the carriage return (#xD), line feed (#xA) nor
 tab (#x9) characters.
<DT><A HREF="org/apache/axis/types/Token.html#isValid(java.lang.String)"><B>isValid(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types">Token</A>
<DD>validate the value against the xsd definition

 The value space of token is the set of strings that do not
 contain the line feed (#xA) nor tab (#x9) characters, that
 have no leading or trailing spaces (#x20) and that have no
 internal sequences of two or more spaces.
<DT><A HREF="org/apache/axis/types/UnsignedByte.html#isValid(long)"><B>isValid(long)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>
<DD>validate the value against the xsd value space definition
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#isValid(long)"><B>isValid(long)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>validate the value against the xsd definition
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#isValid(java.math.BigInteger)"><B>isValid(BigInteger)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedShort.html#isValid(long)"><B>isValid(long)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>
<DD>validate the value against the xsd definition
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValid(int)"><B>isValid(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is valid.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValidIANAEncoding(java.lang.String)"><B>isValidIANAEncoding(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the encoding name is a valid IANA encoding.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValidJavaEncoding(java.lang.String)"><B>isValidJavaEncoding(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the encoding name is a valid Java encoding.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValidNCName(java.lang.String)"><B>isValidNCName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Check to see if a string is a valid NCName according to [4]
 from the XML Namespaces 1.0 Recommendation
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValidName(java.lang.String)"><B>isValidName(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Check to see if a string is a valid Name according to [5]
 in the XML 1.0 Recommendation
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isValidNmtoken(java.lang.String)"><B>isValidNmtoken(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Check to see if a string is a valid Nmtoken according to [7]
 in the XML 1.0 Recommendation
<DT><A HREF="org/apache/axis/utils/Options.html#isValueSet(char)"><B>isValueSet(char)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>Returns a string (or null) specifying the value for the passed
 option.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#isVerbose()"><B>isVerbose()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method isVerbose
<DT><A HREF="org/apache/axis/Constants.html#isWSDL(java.lang.String)"><B>isWSDL(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if this is a WSDL Namespace.
<DT><A HREF="org/apache/axis/Constants.html#isWSDLSOAP(java.lang.String)"><B>isWSDLSOAP(String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Returns true if s is a WSDL SOAP Namespace.
<DT><A HREF="org/apache/axis/types/URI.html#isWellFormedAddress(java.lang.String)"><B>isWellFormedAddress(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Determine whether a string is syntactically capable of representing
 a valid IPv4 address, IPv6 reference or the domain name of a network host.
<DT><A HREF="org/apache/axis/types/URI.html#isWellFormedIPv4Address(java.lang.String)"><B>isWellFormedIPv4Address(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Determines whether a string is an IPv4 address as defined by 
 RFC 2373, and under the further constraint that it must be a 32-bit
 address.
<DT><A HREF="org/apache/axis/types/URI.html#isWellFormedIPv6Reference(java.lang.String)"><B>isWellFormedIPv6Reference(String)</B></A> - 
Static method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Determines whether a string is an IPv6 reference as defined
 by RFC 2732, where IPv6address is defined in RFC 2373.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#isWrapped()"><B>isWrapped()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Determine whether or not this is a "wrapped" invocation, i.e.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#isWrapped()"><B>isWrapped()</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>Determine whether or not this is a "wrapped" invocation, i.e.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html#isWrapped()"><B>isWrapped()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/CollectionType.html" title="class in org.apache.axis.wsdl.symbolTable">CollectionType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#isWrapped()"><B>isWrapped()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Are we wrapping literal soap body elements.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#isWrappedType(org.w3c.dom.Node)"><B>isWrappedType(Node)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>This method checks out if the given node satisfies the 3rd condition
 of the "wrapper" style:
 such an element (a wrapper) must be of a complex type defined using the
 xsd:sequence compositor and containing only elements declarations.
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#isWriteable()"><B>isWriteable()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Query if property is writeable
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#isWriteable()"><B>isWriteable()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Query if property is writeable
<DT><A HREF="org/apache/axis/utils/XMLChar.html#isXML11Space(int)"><B>isXML11Space(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true if the specified character is a space character
 as amdended in the XML 1.1 specification.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#isXsNode(org.w3c.dom.Node, java.lang.String)"><B>isXsNode(Node, String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Determines if the DOM Node represents an xs:<node>
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#is_log"><B>is_log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field is_log
<DT><A HREF="org/apache/axis/message/MessageElement.html#item(int)"><B>item(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>get a child node
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#item(int)"><B>item(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Returns the <code>index</code>th item in the map.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#itemQName"><B>itemQName</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>If this TypeEntry represents an array with elements inside a "wrapper"
 this field can optionally change the inner QName (default is <item>).
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#iterator()"><B>iterator()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Gets an iterator over the keys.
</DL>
<HR>
<A NAME="_J_"><!-- --></A><H2>
<B>J</B></H2>
<DL>
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>JAFDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializer</A>.<DD>JAFDataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html#JAFDataHandlerDeserializer()"><B>JAFDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>JAFDataHandlerDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializerFactory</A>.<DD>A JAFDataHandlerDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html#JAFDataHandlerDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>JAFDataHandlerDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html#JAFDataHandlerDeserializerFactory()"><B>JAFDataHandlerDeserializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>JAFDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>.<DD>JAFDataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html#JAFDataHandlerSerializer()"><B>JAFDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>JAFDataHandlerSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializerFactory</A>.<DD>A JAFDataHandlerSerializer Factory<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html#JAFDataHandlerSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>JAFDataHandlerSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html#JAFDataHandlerSerializerFactory()"><B>JAFDataHandlerSerializerFactory()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc"><B>JAXRPCException</B></A> - exception javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>.<DD>The <code>javax.xml.rpc.JAXRPCException</code> is thrown from
 the core JAX-RPC APIs to indicate an exception related to the
 JAX-RPC runtime mechanisms.<DT><A HREF="javax/xml/rpc/JAXRPCException.html#JAXRPCException()"><B>JAXRPCException()</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>
<DD>Constructs a new exception with <code>null</code> as its
 detail message.
<DT><A HREF="javax/xml/rpc/JAXRPCException.html#JAXRPCException(java.lang.String)"><B>JAXRPCException(String)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>
<DD>Constructs a new exception with the specified detail
 message.
<DT><A HREF="javax/xml/rpc/JAXRPCException.html#JAXRPCException(java.lang.String, java.lang.Throwable)"><B>JAXRPCException(String, Throwable)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>
<DD>Constructs a new exception with the specified detail
 message and cause.
<DT><A HREF="javax/xml/rpc/JAXRPCException.html#JAXRPCException(java.lang.Throwable)"><B>JAXRPCException(Throwable)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A>
<DD>Constructs a new JAXRPCException with the specified cause
 and a detail message of <tt>(cause==null ? null :
 cause.toString())</tt> (which typically contains the
 class and detail message of <tt>cause</tt>).
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers"><B>JAXRPCHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>.<DD>Handles JAXRPC style handlers.<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#JAXRPCHandler()"><B>JAXRPCHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#JAXRPC_METHOD_INFO"><B>JAXRPC_METHOD_INFO</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#JAXRPC_PORTTYPE_NAME"><B>JAXRPC_PORTTYPE_NAME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD><B>Deprecated.</B>&nbsp;<I>use WSDL_PORT_NAME instead.</I>
<DT><A HREF="org/apache/axis/client/Call.html#JAXRPC_SERVICE"><B>JAXRPC_SERVICE</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD><B>Deprecated.</B>&nbsp;<I>use WSDL_SERVICE instead.</I>
<DT><A HREF="org/apache/axis/components/image/JDK13IO.html" title="class in org.apache.axis.components.image"><B>JDK13IO</B></A> - class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JDK13IO.html" title="class in org.apache.axis.components.image">JDK13IO</A>.<DD>JDK1.3 based Image I/O<DT><A HREF="org/apache/axis/components/image/JDK13IO.html#JDK13IO()"><B>JDK13IO()</B></A> - 
Constructor for class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JDK13IO.html" title="class in org.apache.axis.components.image">JDK13IO</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms"><B>JMSConnector</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>.<DD>JMSConnector is an abstract class that encapsulates the work of connecting
   to JMS destinations.<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#JMSConnector(javax.jms.ConnectionFactory, int, int, long, long, long, boolean, java.lang.String, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter, org.apache.axis.transport.jms.JMSURLHelper)"><B>JMSConnector(ConnectionFactory, int, int, long, long, long, boolean, String, String, String, JMSVendorAdapter, JMSURLHelper)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms"><B>JMSConnector.AsyncConnection</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html#JMSConnector.AsyncConnection(javax.jms.ConnectionFactory, javax.jms.Connection, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>JMSConnector.AsyncConnection(ConnectionFactory, Connection, String, String, String, String)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html" title="class in org.apache.axis.transport.jms"><B>JMSConnector.AsyncConnection.ListenerSession</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection.ListenerSession</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms"><B>JMSConnector.SyncConnection</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms"><B>JMSConnector.SyncConnection.SendSession</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection.SendSession</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms"><B>JMSConnectorFactory</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>.<DD>JMSConnectorFactory is a factory class for creating JMSConnectors.<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html#JMSConnectorFactory()"><B>JMSConnectorFactory()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms"><B>JMSConnectorManager</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>.<DD>JMSConnectorManager manages a pool of connectors and works with the
 vendor adapters to support the reuse of JMS connections.<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms"><B>JMSConnectorManager.ShareableObjectPool</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>.<DD>A simple non-blocking pool impl for objects that can be shared.<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#JMSConnectorManager.ShareableObjectPool()"><B>JMSConnectorManager.ShareableObjectPool()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms"><B>JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</A>.<DD>Wrapper to track the use count of an object<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html#JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject(java.lang.Object)"><B>JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject(Object)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms"><B>JMSConstants</B></A> - interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>.<DD>JMSConstants contains constants that apply to all JMS providers.<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms"><B>JMSEndpoint</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>.<DD>JMSEndpoint encapsulates interactions w/ a JMS destination.<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#JMSEndpoint(org.apache.axis.transport.jms.JMSConnector)"><B>JMSEndpoint(JMSConnector)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSSender.html" title="class in org.apache.axis.transport.jms"><B>JMSSender</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSSender.html" title="class in org.apache.axis.transport.jms">JMSSender</A>.<DD>This is meant to be used on a SOAP Client to call a SOAP server.<DT><A HREF="org/apache/axis/transport/jms/JMSSender.html#JMSSender()"><B>JMSSender()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSSender.html" title="class in org.apache.axis.transport.jms">JMSSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms"><B>JMSTransport</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>.<DD>JMSTransport is the JMS-specific implemenation of org.apache.axis.client.Transport.<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#JMSTransport()"><B>JMSTransport()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#JMSTransport(java.util.HashMap, java.util.HashMap)"><B>JMSTransport(HashMap, HashMap)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLConnection.html" title="class in org.apache.axis.transport.jms"><B>JMSURLConnection</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLConnection.html" title="class in org.apache.axis.transport.jms">JMSURLConnection</A>.<DD>URLConnection for the "jms" protocol<DT><A HREF="org/apache/axis/transport/jms/JMSURLConnection.html#JMSURLConnection(java.net.URL)"><B>JMSURLConnection(URL)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLConnection.html" title="class in org.apache.axis.transport.jms">JMSURLConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms"><B>JMSURLHelper</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>.<DD>JMSURLHelper provides access to properties in the URL.<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#JMSURLHelper(java.net.URL)"><B>JMSURLHelper(URL)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#JMSURLHelper(java.net.URL, java.lang.String[])"><B>JMSURLHelper(URL, String[])</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms"><B>JMSVendorAdapter</B></A> - class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>.<DD>SPI Interface that all JMSVendorAdaptors must implement.<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#JMSVendorAdapter()"><B>JMSVendorAdapter()</B></A> - 
Constructor for class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html" title="class in org.apache.axis.components.jms"><B>JMSVendorAdapterFactory</B></A> - class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html" title="class in org.apache.axis.components.jms">JMSVendorAdapterFactory</A>.<DD>Discovery class used to locate vendor adapters.<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html#JMSVendorAdapterFactory()"><B>JMSVendorAdapterFactory()</B></A> - 
Constructor for class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapterFactory.html" title="class in org.apache.axis.components.jms">JMSVendorAdapterFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_APPLICATION_MSG_PROPS"><B>JMS_APPLICATION_MSG_PROPS</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>A property that carries a Map of application-specific properties to be
 added to the JMS messages when issued.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_CORRELATION_ID"><B>JMS_CORRELATION_ID</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_CORRELATION_ID_AS_BYTES"><B>JMS_CORRELATION_ID_AS_BYTES</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_PROPERTY_PREFIX"><B>JMS_PROPERTY_PREFIX</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_TYPE"><B>JMS_TYPE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JMS_URL"><B>JMS_URL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/JNDIAxisServerFactory.html" title="class in org.apache.axis.server"><B>JNDIAxisServerFactory</B></A> - class org.apache.axis.server.<A HREF="org/apache/axis/server/JNDIAxisServerFactory.html" title="class in org.apache.axis.server">JNDIAxisServerFactory</A>.<DD>Helper class for obtaining AxisServers, which hides the complexity
 of JNDI accesses, etc.<DT><A HREF="org/apache/axis/server/JNDIAxisServerFactory.html#JNDIAxisServerFactory()"><B>JNDIAxisServerFactory()</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/JNDIAxisServerFactory.html" title="class in org.apache.axis.server">JNDIAxisServerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms"><B>JNDIVendorAdapter</B></A> - class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>.<DD>Uses JNDI to locate ConnectionFactory and Destinations<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#JNDIVendorAdapter()"><B>JNDIVendorAdapter()</B></A> - 
Constructor for class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#JNDI_VENDOR_ID"><B>JNDI_VENDOR_ID</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net"><B>JSSESocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net">JSSESocketFactory</A>.<DD>SSL socket factory.<DT><A HREF="org/apache/axis/components/net/JSSESocketFactory.html#JSSESocketFactory(java.util.Hashtable)"><B>JSSESocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net">JSSESocketFactory</A>
<DD>Constructor JSSESocketFactory
<DT><A HREF="org/apache/axis/utils/JWSClassLoader.html" title="class in org.apache.axis.utils"><B>JWSClassLoader</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JWSClassLoader.html" title="class in org.apache.axis.utils">JWSClassLoader</A>.<DD>Class loader for JWS files.<DT><A HREF="org/apache/axis/utils/JWSClassLoader.html#JWSClassLoader(java.lang.String, java.lang.ClassLoader, java.lang.String)"><B>JWSClassLoader(String, ClassLoader, String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JWSClassLoader.html" title="class in org.apache.axis.utils">JWSClassLoader</A>
<DD>Construct a JWSClassLoader with a class name, a parent ClassLoader,
 and a filename of a .class file containing the bytecode for the class.
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers"><B>JWSHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>.<DD>A <code>JWSHandler</code> sets the target service and JWS filename
 in the context depending on the JWS configuration and the target URL.<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#JWSHandler()"><B>JWSHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#JWS_DEFAULT_FILE_EXTENSION"><B>JWS_DEFAULT_FILE_EXTENSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>What the extension of JWS files is.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl"><B>Java2WSDL</B></A> - class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>.<DD>Command line interface to the java2wsdl utility<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#Java2WSDL()"><B>Java2WSDL()</B></A> - 
Constructor for class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Instantiate a Java2WSDL emitter.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaBeanFaultWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanFaultWriter</A>.<DD>This is Wsdl2java's Complex Fault Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html#JavaBeanFaultWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.toJava.JavaWriter)"><B>JavaBeanFaultWriter(Emitter, TypeEntry, Vector, TypeEntry, Vector, JavaWriter)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanFaultWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaBeanHelperWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>.<DD>This is Wsdl2java's Helper Type Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#JavaBeanHelperWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, java.util.Set)"><B>JavaBeanHelperWriter(Emitter, TypeEntry, Vector, TypeEntry, Vector, Set)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaBeanWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>.<DD>This is Wsdl2java's Complex Type Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#JavaBeanWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector, org.apache.axis.wsdl.toJava.JavaWriter)"><B>JavaBeanWriter(Emitter, TypeEntry, Vector, TypeEntry, Vector, JavaWriter)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaBindingWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>.<DD>This is Wsdl2java's Binding Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#JavaBindingWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Binding, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaBindingWriter(Emitter, Binding, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaBuildFileWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>.<DD>This is Wsdl2java's build file Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#JavaBuildFileWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaBuildFileWriter(Emitter, Definition, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache"><B>JavaClass</B></A> - class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache">JavaClass</A>.<DD>A simple cache of previously loaded classes, and their methods.<DT><A HREF="org/apache/axis/utils/cache/JavaClass.html#JavaClass(java.lang.Class)"><B>JavaClass(Class)</B></A> - 
Constructor for class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaClass.html" title="class in org.apache.axis.utils.cache">JavaClass</A>
<DD>Create a cache entry for this java.lang.Class
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaClassWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>.<DD>Emitter knows about WSDL writers, one each for PortType, Binding, Service,
 Definition, Type.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#JavaClassWriter(org.apache.axis.wsdl.toJava.Emitter, java.lang.String, java.lang.String)"><B>JavaClassWriter(Emitter, String, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaDefinitionWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>.<DD>This is Wsdl2java's Definition Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#JavaDefinitionWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaDefinitionWriter(Emitter, Definition, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaDeployWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>.<DD>This is Wsdl2java's deploy Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#JavaDeployWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaDeployWriter(Emitter, Definition, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaEnumTypeWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>.<DD>This is Wsdl2java's Complex Type Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html#JavaEnumTypeWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.Vector)"><B>JavaEnumTypeWriter(Emitter, TypeEntry, Vector)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaFaultWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaFaultWriter</A>.<DD>This is Wsdl2java's Fault Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html#JavaFaultWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.SymbolTable, org.apache.axis.wsdl.symbolTable.FaultInfo)"><B>JavaFaultWriter(Emitter, SymbolTable, FaultInfo)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaFaultWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaGeneratorFactory</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>.<DD>This is Wsdl2java's implementation of the GeneratorFactory<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#JavaGeneratorFactory()"><B>JavaGeneratorFactory()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Default constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#JavaGeneratorFactory(org.apache.axis.wsdl.toJava.Emitter)"><B>JavaGeneratorFactory(Emitter)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Constructor JavaGeneratorFactory
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaGeneratorFactory.Writers</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>.<DD>Class Writers<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html#JavaGeneratorFactory.Writers()"><B>JavaGeneratorFactory.Writers()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.Writers.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory.Writers</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaHolderWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>.<DD>This is Wsdl2java's Holder Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html#JavaHolderWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>JavaHolderWriter(Emitter, TypeEntry)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaImplWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>.<DD>This is Wsdl2java's implementation template writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#JavaImplWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaImplWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaInterfaceWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>.<DD>This is Wsdl2java's PortType Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#JavaInterfaceWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.PortTypeEntry, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaInterfaceWriter(Emitter, PortTypeEntry, BindingEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/utils/cache/JavaMethod.html" title="class in org.apache.axis.utils.cache"><B>JavaMethod</B></A> - class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaMethod.html" title="class in org.apache.axis.utils.cache">JavaMethod</A>.<DD>A simple cache of previously loaded methods<DT><A HREF="org/apache/axis/utils/cache/JavaMethod.html#JavaMethod(java.lang.Class, java.lang.String)"><B>JavaMethod(Class, String)</B></A> - 
Constructor for class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/JavaMethod.html" title="class in org.apache.axis.utils.cache">JavaMethod</A>
<DD>Create a cache entry for this java.lang.Class
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java"><B>JavaProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>.<DD>Base class for Java dispatching.<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#JavaProvider()"><B>JavaProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/java/JavaSender.html" title="class in org.apache.axis.transport.java"><B>JavaSender</B></A> - class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaSender.html" title="class in org.apache.axis.transport.java">JavaSender</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/java/JavaSender.html#JavaSender()"><B>JavaSender()</B></A> - 
Constructor for class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaSender.html" title="class in org.apache.axis.transport.java">JavaSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description"><B>JavaServiceDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>.<DD>A ServiceDesc is an abstract description of a service.<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#JavaServiceDesc()"><B>JavaServiceDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaServiceIfaceWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceIfaceWriter</A>.<DD>This is Wsdl2java's service writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html#JavaServiceIfaceWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.ServiceEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaServiceIfaceWriter(Emitter, ServiceEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceIfaceWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaServiceImplWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>.<DD>This is Wsdl2java's service implementation writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#JavaServiceImplWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.ServiceEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaServiceImplWriter(Emitter, ServiceEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaServiceWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>.<DD>This is Wsdl2java's Service Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#JavaServiceWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Service, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaServiceWriter(Emitter, Service, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaSkelWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaSkelWriter</A>.<DD>This is Wsdl2java's skeleton writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html#JavaSkelWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaSkelWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaSkelWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaStubWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>.<DD>This is Wsdl2java's stub writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#JavaStubWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.BindingEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaStubWriter(Emitter, BindingEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaTestCaseWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>.<DD>This is Wsdl2java's TestCase writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html#JavaTestCaseWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.ServiceEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaTestCaseWriter(Emitter, ServiceEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/transport/java/JavaTransport.html" title="class in org.apache.axis.transport.java"><B>JavaTransport</B></A> - class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaTransport.html" title="class in org.apache.axis.transport.java">JavaTransport</A>.<DD>A Transport which will cause an invocation via "java"<DT><A HREF="org/apache/axis/transport/java/JavaTransport.html#JavaTransport()"><B>JavaTransport()</B></A> - 
Constructor for class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaTransport.html" title="class in org.apache.axis.transport.java">JavaTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaTypeWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>.<DD>This is Wsdl2java's Type Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html#JavaTypeWriter(org.apache.axis.wsdl.toJava.Emitter, org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaTypeWriter(Emitter, TypeEntry, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTypeWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaUndeployWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>.<DD>This is Wsdl2java's deploy Writer.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#JavaUndeployWriter(org.apache.axis.wsdl.toJava.Emitter, javax.wsdl.Definition, org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>JavaUndeployWriter(Emitter, Definition, SymbolTable)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils"><B>JavaUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>.<DD>Utility class to deal with Java language related issues, such
 as type conversions.<DT><A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html" title="interface in org.apache.axis.utils"><B>JavaUtils.ConvertCache</B></A> - interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html" title="interface in org.apache.axis.utils">JavaUtils.ConvertCache</A>.<DD>It the argument to the convert(...) method implements
 the ConvertCache interface, the convert(...) method
 will use the set/get methods to store and retrieve
 converted values.<DT><A HREF="org/apache/axis/utils/JavaUtils.HolderException.html" title="class in org.apache.axis.utils"><B>JavaUtils.HolderException</B></A> - exception org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.HolderException.html" title="class in org.apache.axis.utils">JavaUtils.HolderException</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/JavaUtils.HolderException.html#JavaUtils.HolderException(java.lang.String)"><B>JavaUtils.HolderException(String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.HolderException.html" title="class in org.apache.axis.utils">JavaUtils.HolderException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava"><B>JavaWriter</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>.<DD>Emitter knows about WSDL writers, one each for PortType, Binding, Service,
 Definition, Type.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#JavaWriter(org.apache.axis.wsdl.toJava.Emitter, java.lang.String)"><B>JavaWriter(Emitter, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Constructor.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler"><B>Javac</B></A> - class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>.<DD>This class wraps the Sun's Javac Compiler.<DT><A HREF="org/apache/axis/components/compiler/Javac.html#Javac()"><B>Javac()</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http"><B>JettyAxisServer</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#JettyAxisServer()"><B>JettyAxisServer()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler"><B>Jikes</B></A> - class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>.<DD>This class wraps IBM's <i>Jikes</i> Java compiler
 NOTE: inspired by the Apache Jasper implementation.<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#Jikes()"><B>Jikes()</B></A> - 
Constructor for class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/image/JimiIO.html" title="class in org.apache.axis.components.image"><B>JimiIO</B></A> - class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JimiIO.html" title="class in org.apache.axis.components.image">JimiIO</A>.<DD>JIMI based Image I/O<DT><A HREF="org/apache/axis/components/image/JimiIO.html#JimiIO()"><B>JimiIO()</B></A> - 
Constructor for class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JimiIO.html" title="class in org.apache.axis.components.image">JimiIO</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html#javaType"><B>javaType</B></A> - 
Variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializer</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/messaging/package-summary.html"><B>javax.xml.messaging</B></A> - package javax.xml.messaging<DD>&nbsp;<DT><A HREF="javax/xml/namespace/package-summary.html"><B>javax.xml.namespace</B></A> - package javax.xml.namespace<DD>&nbsp;<DT><A HREF="javax/xml/rpc/package-summary.html"><B>javax.xml.rpc</B></A> - package javax.xml.rpc<DD>&nbsp;<DT><A HREF="javax/xml/rpc/encoding/package-summary.html"><B>javax.xml.rpc.encoding</B></A> - package javax.xml.rpc.encoding<DD>&nbsp;<DT><A HREF="javax/xml/rpc/handler/package-summary.html"><B>javax.xml.rpc.handler</B></A> - package javax.xml.rpc.handler<DD>&nbsp;<DT><A HREF="javax/xml/rpc/handler/soap/package-summary.html"><B>javax.xml.rpc.handler.soap</B></A> - package javax.xml.rpc.handler.soap<DD>&nbsp;<DT><A HREF="javax/xml/rpc/holders/package-summary.html"><B>javax.xml.rpc.holders</B></A> - package javax.xml.rpc.holders<DD>&nbsp;<DT><A HREF="javax/xml/rpc/server/package-summary.html"><B>javax.xml.rpc.server</B></A> - package javax.xml.rpc.server<DD>&nbsp;<DT><A HREF="javax/xml/rpc/soap/package-summary.html"><B>javax.xml.rpc.soap</B></A> - package javax.xml.rpc.soap<DD>&nbsp;<DT><A HREF="javax/xml/soap/package-summary.html"><B>javax.xml.soap</B></A> - package javax.xml.soap<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#javifyNames(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>javifyNames(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Fill in the names of each SymTabEntry with the javaified name.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#javifyTypeEntryName(org.apache.axis.wsdl.symbolTable.SymbolTable, org.apache.axis.wsdl.symbolTable.TypeEntry, java.util.HashMap, int)"><B>javifyTypeEntryName(SymbolTable, TypeEntry, HashMap, int)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Refactored to call recursively for JAX-RPC 1.1 spec 4.2.5.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#jndiContextClass"><B>jndiContextClass</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#jndiPassword"><B>jndiPassword</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#jndiURL"><B>jndiURL</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#jndiUsername"><B>jndiUsername</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_K_"><!-- --></A><H2>
<B>K</B></H2>
<DL>
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#KEYHINT"><B>KEYHINT</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#keySet()"><B>keySet()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.keySet()</CODE>.
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#LESS"><B>LESS</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#LF"><B>LF</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#LINE_LENGTH"><B>LINE_LENGTH</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>This controls how many characters per line for javadoc comments
<DT><A HREF="org/apache/axis/constants/Use.html#LITERAL"><B>LITERAL</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#LITERAL_STR"><B>LITERAL_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#LOAD_BALANCING"><B>LOAD_BALANCING</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/utils/NetworkUtils.html#LOCALHOST"><B>LOCALHOST</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils">NetworkUtils</A>
<DD>what we return when we cannot determine our hostname.
<DT><A HREF="org/apache/axis/utils/NetworkUtils.html#LOCALHOST_IPV6"><B>LOCALHOST_IPV6</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils">NetworkUtils</A>
<DD>loopback address in IPV6
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#LOCAL_SERVER"><B>LOCAL_SERVER</B></A> - 
Static variable in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#LOCATION_IMPORT_OPT"><B>LOCATION_IMPORT_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field LOCATION_IMPORT_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#LOCATION_OPT"><B>LOCATION_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field LOCATION_OPT
<DT><A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections"><B>LRUMap</B></A> - class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>.<DD>
 An implementation of a Map which has a maximum size and uses a Least Recently Used
 algorithm to remove items from the Map when the maximum size is reached and new items are added.<DT><A HREF="org/apache/axis/collections/LRUMap.html#LRUMap()"><B>LRUMap()</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Default constructor, primarily for the purpose of
 de-externalization.
<DT><A HREF="org/apache/axis/collections/LRUMap.html#LRUMap(int)"><B>LRUMap(int)</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Create a new LRUMap with a maximum capacity of <i>i</i>.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#LS"><B>LS</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>The prefered line separator
<DT><A HREF="org/apache/axis/types/Language.html" title="class in org.apache.axis.types"><B>Language</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Language.html" title="class in org.apache.axis.types">Language</A>.<DD>Custom class for supporting XSD data type language
 language represents natural language identifiers as defined by [RFC 1766].<DT><A HREF="org/apache/axis/types/Language.html#Language()"><B>Language()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Language.html" title="class in org.apache.axis.types">Language</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Language.html#Language(java.lang.String)"><B>Language(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Language.html" title="class in org.apache.axis.types">Language</A>
<DD>ctor for Language
<DT><A HREF="org/apache/axis/transport/local/LocalResponder.html" title="class in org.apache.axis.transport.local"><B>LocalResponder</B></A> - class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalResponder.html" title="class in org.apache.axis.transport.local">LocalResponder</A>.<DD>Tiny Handler which just makes sure to Stringize the outgoing
 Message to appropriately use serializers on the server side.<DT><A HREF="org/apache/axis/transport/local/LocalResponder.html#LocalResponder()"><B>LocalResponder()</B></A> - 
Constructor for class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalResponder.html" title="class in org.apache.axis.transport.local">LocalResponder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local"><B>LocalSender</B></A> - class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local">LocalSender</A>.<DD>This is meant to be used on a SOAP Client to call a SOAP server.<DT><A HREF="org/apache/axis/transport/local/LocalSender.html#LocalSender()"><B>LocalSender()</B></A> - 
Constructor for class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local">LocalSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local"><B>LocalTransport</B></A> - class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>.<DD>A Transport which will cause an invocation via a "local" AxisServer.<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#LocalTransport()"><B>LocalTransport()</B></A> - 
Constructor for class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>No-arg constructor, which will use an AxisServer constructed
 by the LocalSender (see LocalSender.java).
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#LocalTransport(org.apache.axis.server.AxisServer)"><B>LocalTransport(AxisServer)</B></A> - 
Constructor for class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>Use this constructor if you have a particular server kicking
 around (perhaps which you've already deployed useful stuff into)
 which you'd like to use.
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils"><B>LockableHashtable</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>.<DD>This subclass of the java Hashtable allows individual
 entries to be "locked" so that their values cannot be
 overwritten or removed.<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#LockableHashtable()"><B>LockableHashtable()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#LockableHashtable(int, float)"><B>LockableHashtable(int, float)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#LockableHashtable(java.util.Map)"><B>LockableHashtable(Map)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#LockableHashtable(int)"><B>LockableHashtable(int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/logger/LogFactory.html" title="class in org.apache.axis.components.logger"><B>LogFactory</B></A> - class org.apache.axis.components.logger.<A HREF="org/apache/axis/components/logger/LogFactory.html" title="class in org.apache.axis.components.logger">LogFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/logger/LogFactory.html#LogFactory()"><B>LogFactory()</B></A> - 
Constructor for class org.apache.axis.components.logger.<A HREF="org/apache/axis/components/logger/LogFactory.html" title="class in org.apache.axis.components.logger">LogFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers"><B>LogHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>.<DD>A simple Handler which logs the request and response messages to either
 the console or a specified file (default "axis.log").<DT><A HREF="org/apache/axis/handlers/LogHandler.html#LogHandler()"><B>LogHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogMessage.html" title="class in org.apache.axis.handlers"><B>LogMessage</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogMessage.html" title="class in org.apache.axis.handlers">LogMessage</A>.<DD>This handler simply prints a custom message to the debug log.<DT><A HREF="org/apache/axis/handlers/LogMessage.html#LogMessage()"><B>LogMessage()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogMessage.html" title="class in org.apache.axis.handlers">LogMessage</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/LongHolder.html" title="class in javax.xml.rpc.holders"><B>LongHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongHolder.html" title="class in javax.xml.rpc.holders">LongHolder</A>.<DD>Holder for <code>long</code>s.<DT><A HREF="javax/xml/rpc/holders/LongHolder.html#LongHolder()"><B>LongHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongHolder.html" title="class in javax.xml.rpc.holders">LongHolder</A>
<DD>Make a new <code>LongHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/LongHolder.html#LongHolder(long)"><B>LongHolder(long)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongHolder.html" title="class in javax.xml.rpc.holders">LongHolder</A>
<DD>Make a new <code>LongHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/LongWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>LongWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongWrapperHolder.html" title="class in javax.xml.rpc.holders">LongWrapperHolder</A>.<DD>Holder for <code>Long</code>s.<DT><A HREF="javax/xml/rpc/holders/LongWrapperHolder.html#LongWrapperHolder()"><B>LongWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongWrapperHolder.html" title="class in javax.xml.rpc.holders">LongWrapperHolder</A>
<DD>Make a new <code>LongWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/LongWrapperHolder.html#LongWrapperHolder(java.lang.Long)"><B>LongWrapperHolder(Long)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongWrapperHolder.html" title="class in javax.xml.rpc.holders">LongWrapperHolder</A>
<DD>Make a new <code>LongWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#lValue"><B>lValue</B></A> - 
Variable in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#lValue"><B>lValue</B></A> - 
Variable in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#lastIndexOf(java.lang.Object)"><B>lastIndexOf(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Gets the last index of the specified key.
<DT><A HREF="org/apache/axis/client/AdminClient.html#list(org.apache.axis.utils.Options)"><B>list(Options)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>process the options then run a list call
<DT><A HREF="org/apache/axis/client/AdminClient.html#list()"><B>list()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>send a list command
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#list"><B>list</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field list
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#list"><B>list</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Field list
<DT><A HREF="org/apache/axis/utils/Admin.html#listConfig(org.apache.axis.AxisEngine)"><B>listConfig(AxisEngine)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>Get an XML document representing this engine's configuration.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#listServices()"><B>listServices()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>List all registered services
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQuery.html#listServices()"><B>listServices()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQuery.html" title="class in org.apache.axis.management.jmx">DeploymentQuery</A>
<DD>List all registered services
<DT><A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html#listServices()"><B>listServices()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentQueryMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentQueryMBean</A>
<DD>List all registered services
<DT><A HREF="org/apache/axis/components/image/ImageIO.html#loadImage(java.io.InputStream)"><B>loadImage(InputStream)</B></A> - 
Method in interface org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIO.html" title="interface in org.apache.axis.components.image">ImageIO</A>
<DD>Load an Image.
<DT><A HREF="org/apache/axis/components/image/JDK13IO.html#loadImage(java.io.InputStream)"><B>loadImage(InputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JDK13IO.html" title="class in org.apache.axis.components.image">JDK13IO</A>
<DD>Load an Image.
<DT><A HREF="org/apache/axis/components/image/JimiIO.html#loadImage(java.io.InputStream)"><B>loadImage(InputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JimiIO.html" title="class in org.apache.axis.components.image">JimiIO</A>
<DD>Load an Image.
<DT><A HREF="org/apache/axis/components/image/MerlinIO.html#loadImage(java.io.InputStream)"><B>loadImage(InputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/MerlinIO.html" title="class in org.apache.axis.components.image">MerlinIO</A>
<DD>Load an Image.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#loadInputSchema(java.lang.String)"><B>loadInputSchema(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Loads the types from the input schema file.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#loadInputTypes(java.lang.String)"><B>loadInputTypes(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Load the types from the input wsdl file.
<DT><A HREF="org/apache/axis/i18n/RB.html#loadProperties(java.lang.String, java.lang.ClassLoader, java.util.Locale, java.util.Locale)"><B>loadProperties(String, ClassLoader, Locale, Locale)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#loadProperties(java.lang.String, java.lang.ClassLoader, java.util.Locale, java.util.Properties)"><B>loadProperties(String, ClassLoader, Locale, Properties)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#loadProperties(java.lang.String, java.lang.ClassLoader)"><B>loadProperties(String, ClassLoader)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#loadService(java.lang.Class)"><B>loadService(Class)</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#loadService(java.net.URL, java.lang.Class, java.util.Properties)"><B>loadService(URL, Class, Properties)</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#loadService(java.net.URL, javax.xml.namespace.QName, java.util.Properties)"><B>loadService(URL, QName, Properties)</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#loadService(java.lang.Class)"><B>loadService(Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Create an instance of the generated service implementation class 
 for a given service interface, if available.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#loadService(java.net.URL, java.lang.Class, java.util.Properties)"><B>loadService(URL, Class, Properties)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Create an instance of the generated service implementation class 
 for a given service interface, if available.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#loadService(java.net.URL, javax.xml.namespace.QName, java.util.Properties)"><B>loadService(URL, QName, Properties)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>Create an instance of the generated service implementation class 
 for a given service, if available.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#loadServiceDescByIntrospection()"><B>loadServiceDescByIntrospection()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Fill in a service description by introspecting the implementation
 class.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#loadServiceDescByIntrospection(java.lang.Class)"><B>loadServiceDescByIntrospection(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Fill in a service description by introspecting the implementation
 class.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#loadServiceDescByIntrospection(java.lang.Class, org.apache.axis.encoding.TypeMapping)"><B>loadServiceDescByIntrospection(Class, TypeMapping)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>Fill in a service description by introspecting the implementation
 class.
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#locale"><B>locale</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>The <code>Log</code> for all message logging.
<DT><A HREF="org/apache/axis/AxisFault.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>The <code>Log</code> used by this class for all logging.
<DT><A HREF="org/apache/axis/AxisProperties.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>The <code>Log</code> for all interesting events in this class.
<DT><A HREF="org/apache/axis/ConfigurationException.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>The <code>Log</code> used by this class for logging all messages.
<DT><A HREF="org/apache/axis/FaultableHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>The <code>Log</code> used to log all events that would be of general
 interest.
<DT><A HREF="org/apache/axis/InternalException.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>
<DD>The <code>Log</code> used by this class to log messages.
<DT><A HREF="org/apache/axis/Message.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>The <code>Log</code> that this class uses for logging all messages.
<DT><A HREF="org/apache/axis/MessageContext.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The <code>Log</code> used for logging all messages.
<DT><A HREF="org/apache/axis/SOAPPart.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Field log
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>The <code>Log</code> that this class should log all events to.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ImageDataSource.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ImageDataSource.html" title="class in org.apache.axis.attachments">ImageDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field log
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>Field log
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field log
<DT><A HREF="org/apache/axis/client/AdminClient.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AxisClient.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/AxisClient.html" title="class in org.apache.axis.client">AxisClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/CompilerFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/CompilerFactory.html" title="class in org.apache.axis.components.compiler">CompilerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/image/ImageIOFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIOFactory.html" title="class in org.apache.axis.components.image">ImageIOFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.html" title="class in org.apache.axis.components.net">CommonsHTTPClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/IBMFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">IBMFakeTrustSocketFactory</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/SocketFactoryFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactoryFactory.html" title="class in org.apache.axis.components.net">SocketFactoryFactory</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory</A>
<DD>Field log
<DT><A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html" title="class in org.apache.axis.components.net">TransportClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/script/ScriptFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/ScriptFactory.html" title="class in org.apache.axis.components.script">ScriptFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html" title="class in org.apache.axis.components.uuid">UUIDGenFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryFinder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/FieldTarget.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding">FieldTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/MethodTarget.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding">MethodTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser">BeanPropertyTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser">ElementDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/DebugHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/ErrorHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/ErrorHandler.html" title="class in org.apache.axis.handlers">ErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogMessage.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogMessage.html" title="class in org.apache.axis.handlers">LogMessage</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/MD5AttachHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/MD5AttachHandler.html" title="class in org.apache.axis.handlers">MD5AttachHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthenticationHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthorizationHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPActionHandler.html" title="class in org.apache.axis.handlers.http">HTTPActionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/HTTPAuthHandler.html" title="class in org.apache.axis.handlers.http">HTTPAuthHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/URLMapper.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http">URLMapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/Registrar.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.management.<A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management">Registrar</A>
<DD>our log
<DT><A HREF="org/apache/axis/message/BodyBuilder.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/HeaderBuilder.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message">HeaderBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/InputStreamBody.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message">InputStreamBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParam.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet">ServletSecurityProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple">SimpleSecurityProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/AxisServer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/DefaultAxisServerFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.server.<A HREF="org/apache/axis/server/DefaultAxisServerFactory.html" title="class in org.apache.axis.server">DefaultAxisServerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/Transport.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.server.<A HREF="org/apache/axis/server/Transport.html" title="class in org.apache.axis.server">Transport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#log"><B>log</B></A> - 
Variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>the other log
<DT><A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http">AxisHTTPSessionListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>Field log
<DT><A HREF="org/apache/axis/transport/http/HTTPSender.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPSender.html" title="class in org.apache.axis.transport.http">HTTPSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/java/JavaSender.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaSender.html" title="class in org.apache.axis.transport.java">JavaSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html" title="class in org.apache.axis.transport.jms">SimpleJMSWorker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalResponder.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalResponder.html" title="class in org.apache.axis.transport.local">LocalResponder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalSender.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalSender.html" title="class in org.apache.axis.transport.local">LocalSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailSender.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailSender.html" title="class in org.apache.axis.transport.mail">MailSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailWorker.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailWorker.html" title="class in org.apache.axis.transport.mail">MailWorker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Admin.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DefaultEntityResolver.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultEntityResolver.html" title="class in org.apache.axis.utils">DefaultEntityResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NetworkUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils">NetworkUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Options.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>Field log
<DT><A HREF="org/apache/axis/utils/WSDLUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/WSDLUtils.html" title="class in org.apache.axis.utils">WSDLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html" title="class in org.apache.axis.utils.bytecode">ParamNameExtractor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field log
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Field log
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Field log
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Field log
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#log"><B>log</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Field log
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#logException(java.lang.Throwable)"><B>logException(Throwable)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>log any exception to our output log, at our chosen level
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#logSuccess(java.lang.String)"><B>logSuccess(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>handler for logging success, defaults to handing off to logging
 at debug level
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#longValue()"><B>longValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#longValue()"><B>longValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html#lookup(java.lang.String, java.lang.ClassLoader)"><B>lookup(String, ClassLoader)</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>
<DD>Find the cached JavaClass entry for this class, creating one
 if necessary.
<DT><A HREF="org/apache/axis/AxisFault.html#lookupFaultDetail(javax.xml.namespace.QName)"><B>lookupFaultDetail(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Find a fault detail element by its qname.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#lowSurrogate(int)"><B>lowSurrogate(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns the low surrogate of a supplemental character
</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#MAINTAIN_SESSION"><B>MAINTAIN_SESSION</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_CONTENT"><B>MASK_CONTENT</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Content character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_NAME"><B>MASK_NAME</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Name character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_NAME_START"><B>MASK_NAME_START</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Name start character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_NCNAME"><B>MASK_NCNAME</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>NCName character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_NCNAME_START"><B>MASK_NCNAME_START</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>NCName start character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_PUBID"><B>MASK_PUBID</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Pubid character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_SPACE"><B>MASK_SPACE</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Space character mask.
<DT><A HREF="org/apache/axis/utils/XMLChar.html#MASK_VALID"><B>MASK_VALID</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Valid character mask.
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#MAXIMUM_CONNECTIONS_PER_HOST_PROPERTY_KEY"><B>MAXIMUM_CONNECTIONS_PER_HOST_PROPERTY_KEY</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>the key for the Axis Property that controls the maximum connections
        per host allowed by the httpclient pool
<DT><A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html#MAXIMUM_TOTAL_CONNECTIONS_PROPERTY_KEY"><B>MAXIMUM_TOTAL_CONNECTIONS_PROPERTY_KEY</B></A> - 
Static variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.html" title="class in org.apache.axis.components.net">DefaultCommonsHTTPClientProperties</A>
<DD>the key for the Axis Property that controls the maximum total connections
        allowed in the httpclient pool
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#MAX_MEMORY_DISK_CACHED"><B>MAX_MEMORY_DISK_CACHED</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field MAX_MEMORY_DISK_CACHED
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#MAX_SESSIONS_DEFAULT"><B>MAX_SESSIONS_DEFAULT</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_ACCEPT_GZIP"><B>MC_ACCEPT_GZIP</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>If you want the HTTP sender to indicate that it can accept a gziped 
 response, set this message context property to true.
<DT><A HREF="org/apache/axis/Constants.html#MC_CONFIGPATH"><B>MC_CONFIGPATH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_GZIP_REQUEST"><B>MC_GZIP_REQUEST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>by default the HTTP request body is not compressed.
<DT><A HREF="org/apache/axis/Constants.html#MC_HOME_DIR"><B>MC_HOME_DIR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SERVLET"><B>MC_HTTP_SERVLET</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>HttpServlet
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SERVLETLOCATION"><B>MC_HTTP_SERVLETLOCATION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SERVLETPATHINFO"><B>MC_HTTP_SERVLETPATHINFO</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SERVLETREQUEST"><B>MC_HTTP_SERVLETREQUEST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>HttpServletRequest
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SERVLETRESPONSE"><B>MC_HTTP_SERVLETRESPONSE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>HttpServletResponse
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_SOAPACTION"><B>MC_HTTP_SOAPACTION</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD><B>Deprecated.</B>&nbsp;<I>Should use javax.xml.rpc.Call.SOAPACTION_URI_PROPERTY instead.</I>
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_STATUS_CODE"><B>MC_HTTP_STATUS_CODE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>Integer
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#MC_HTTP_STATUS_MESSAGE"><B>MC_HTTP_STATUS_MESSAGE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>String
<DT><A HREF="org/apache/axis/Constants.html#MC_JWS_CLASSDIR"><B>MC_JWS_CLASSDIR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_NO_OPERATION_OK"><B>MC_NO_OPERATION_OK</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_REALPATH"><B>MC_REALPATH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_RELATIVE_PATH"><B>MC_RELATIVE_PATH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_REMOTE_ADDR"><B>MC_REMOTE_ADDR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_SERVLET_ENDPOINT_CONTEXT"><B>MC_SERVLET_ENDPOINT_CONTEXT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MC_SINGLE_SOAP_VERSION"><B>MC_SINGLE_SOAP_VERSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/MD5AttachHandler.html" title="class in org.apache.axis.handlers"><B>MD5AttachHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/MD5AttachHandler.html" title="class in org.apache.axis.handlers">MD5AttachHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/MD5AttachHandler.html#MD5AttachHandler()"><B>MD5AttachHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/MD5AttachHandler.html" title="class in org.apache.axis.handlers">MD5AttachHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#MESSAGE"><B>MESSAGE</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#MESSAGE_SELECTOR"><B>MESSAGE_SELECTOR</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>registerListener</code>
 method.
<DT><A HREF="org/apache/axis/constants/Style.html#MESSAGE_STR"><B>MESSAGE_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#METHODS_ALLOWED_OPT"><B>METHODS_ALLOWED_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field METHODS_ALLOWED_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#METHODS_NOTALLOWED_OPT"><B>METHODS_NOTALLOWED_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field METHODS_NOTALLOWED_OPT
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#MIME"><B>MIME</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#MIME_APPLICATION_DIME"><B>MIME_APPLICATION_DIME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>DIME parts defined for messages.
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_APPLICATION_OCTETSTREAM"><B>MIME_CT_APPLICATION_OCTETSTREAM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>MIME Content Types
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_APPLICATION_XML"><B>MIME_CT_APPLICATION_XML</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_IMAGE_GIF"><B>MIME_CT_IMAGE_GIF</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_IMAGE_JPEG"><B>MIME_CT_IMAGE_JPEG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_MULTIPART_PREFIX"><B>MIME_CT_MULTIPART_PREFIX</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_TEXT_PLAIN"><B>MIME_CT_TEXT_PLAIN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_CT_TEXT_XML"><B>MIME_CT_TEXT_XML</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_DATA_HANDLER"><B>MIME_DATA_HANDLER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_IMAGE"><B>MIME_IMAGE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_MULTIPART"><B>MIME_MULTIPART</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#MIME_MULTIPART_RELATED"><B>MIME_MULTIPART_RELATED</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>MIME parts defined for messages.
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#MIME_MULTIPART_RELATED"><B>MIME_MULTIPART_RELATED</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field MIME_MULTIPART_RELATED
<DT><A HREF="org/apache/axis/Constants.html#MIME_OCTETSTREAM"><B>MIME_OCTETSTREAM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_PLAINTEXT"><B>MIME_PLAINTEXT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#MIME_SOURCE"><B>MIME_SOURCE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#MIME_UNKNOWN"><B>MIME_UNKNOWN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Look at the input stream to find the headers to decide the mime type.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#MIN_MEMORY_DISK_CACHED"><B>MIN_MEMORY_DISK_CACHED</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field MIN_MEMORY_DISK_CACHED
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#MIN_TIMEOUT_TIME"><B>MIN_TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#MODERN_CLASS"><B>MODERN_CLASS</B></A> - 
Static variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_ALL"><B>MODE_ALL</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field MODE_ALL
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_DOCUMENT"><B>MODE_DOCUMENT</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>DEPRECATED - Indicates style=document use=literal
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_DOC_WRAPPED"><B>MODE_DOC_WRAPPED</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>DEPRECATED - Indicates style=wrapped use=literal
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_IMPLEMENTATION"><B>MODE_IMPLEMENTATION</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field MODE_IMPLEMENTATION
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_INTERFACE"><B>MODE_INTERFACE</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field MODE_INTERFACE
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#MODE_RPC"><B>MODE_RPC</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>DEPRECATED - Indicates style=rpc use=encoded
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#MONITOR_INTERVAL"><B>MONITOR_INTERVAL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#MSG_METHOD_BODYARRAY"><B>MSG_METHOD_BODYARRAY</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#MSG_METHOD_DOCUMENT"><B>MSG_METHOD_DOCUMENT</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#MSG_METHOD_ELEMENTARRAY"><B>MSG_METHOD_ELEMENTARRAY</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#MSG_METHOD_NONCONFORMING"><B>MSG_METHOD_NONCONFORMING</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#MSG_METHOD_SOAPENVELOPE"><B>MSG_METHOD_SOAPENVELOPE</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail"><B>MailConstants</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#MailConstants()"><B>MailConstants()</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailSender.html" title="class in org.apache.axis.transport.mail"><B>MailSender</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailSender.html" title="class in org.apache.axis.transport.mail">MailSender</A>.<DD>This is meant to be used on a SOAP Client to call a SOAP server via SMTP/POP3<DT><A HREF="org/apache/axis/transport/mail/MailSender.html#MailSender()"><B>MailSender()</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailSender.html" title="class in org.apache.axis.transport.mail">MailSender</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail"><B>MailServer</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>.<DD>This is a simple implementation of an SMTP/POP3 server for processing
 SOAP requests via Apache's xml-axis.<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#MailServer(java.lang.String, int, java.lang.String, java.lang.String)"><B>MailServer(String, int, String, String)</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailTransport.html" title="class in org.apache.axis.transport.mail"><B>MailTransport</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailTransport.html" title="class in org.apache.axis.transport.mail">MailTransport</A>.<DD>A Transport which will cause an invocation via "mail"<DT><A HREF="org/apache/axis/transport/mail/MailTransport.html#MailTransport()"><B>MailTransport()</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailTransport.html" title="class in org.apache.axis.transport.mail">MailTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailWorker.html" title="class in org.apache.axis.transport.mail"><B>MailWorker</B></A> - class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailWorker.html" title="class in org.apache.axis.transport.mail">MailWorker</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/mail/MailWorker.html#MailWorker(org.apache.axis.transport.mail.MailServer, javax.mail.internet.MimeMessage)"><B>MailWorker(MailServer, MimeMessage)</B></A> - 
Constructor for class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailWorker.html" title="class in org.apache.axis.transport.mail">MailWorker</A>
<DD>Constructor for MailWorker
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments"><B>ManagedMemoryDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>.<DD>This class allows small attachments to be cached in memory, while large ones are
 cached out.<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#ManagedMemoryDataSource()"><B>ManagedMemoryDataSource()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Constructor ManagedMemoryDataSource.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#ManagedMemoryDataSource(java.io.InputStream, int, java.lang.String)"><B>ManagedMemoryDataSource(InputStream, int, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Create a new boundary stream.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#ManagedMemoryDataSource(java.io.InputStream, int, java.lang.String, boolean)"><B>ManagedMemoryDataSource(InputStream, int, String, boolean)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Create a new boundary stream.
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>MapDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#MapDeserializer()"><B>MapDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>MapDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">MapDeserializerFactory</A>.<DD>A MapDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializerFactory.html#MapDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>MapDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">MapDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser"><B>MapSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>.<DD>A <code>MapSerializer</code> is be used to serialize and
 deserialize Maps using the <code>SOAP-ENC</code>
 encoding style.<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html#MapSerializer()"><B>MapSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>MapSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializerFactory.html" title="class in org.apache.axis.encoding.ser">MapSerializerFactory</A>.<DD>A MapSerializer Factory<DT><A HREF="org/apache/axis/encoding/ser/MapSerializerFactory.html#MapSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>MapSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializerFactory.html" title="class in org.apache.axis.encoding.ser">MapSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms"><B>MapUtils</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>.<DD>MapUtils provides convenience methods for accessing a java.util.Map<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#MapUtils()"><B>MapUtils()</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils"><B>Mapping</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>.<DD>this class represents a mapping from namespace to prefix<DT><A HREF="org/apache/axis/utils/Mapping.html#Mapping(java.lang.String, java.lang.String)"><B>Mapping(String, String)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/image/MerlinIO.html" title="class in org.apache.axis.components.image"><B>MerlinIO</B></A> - class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/MerlinIO.html" title="class in org.apache.axis.components.image">MerlinIO</A>.<DD>JDK1.4 based Image I/O

 NOTE: NEEDS WORK!!!! NEEDS TO BE TESTED.<DT><A HREF="org/apache/axis/components/image/MerlinIO.html#MerlinIO()"><B>MerlinIO()</B></A> - 
Constructor for class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/MerlinIO.html" title="class in org.apache.axis.components.image">MerlinIO</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html" title="class in org.apache.axis"><B>Message</B></A> - class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>.<DD>A complete SOAP (and/or XML-RPC, eventually) message.<DT><A HREF="org/apache/axis/Message.html#Message(java.lang.Object, boolean)"><B>Message(Object, boolean)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Construct a Message, using the provided initialContents as the
 contents of the Message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#Message(java.lang.Object, boolean, javax.xml.soap.MimeHeaders)"><B>Message(Object, boolean, MimeHeaders)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Construct a Message, using the provided initialContents as the
 contents of the Message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#Message(java.lang.Object, org.apache.axis.message.MimeHeaders)"><B>Message(Object, MimeHeaders)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Construct a Message, using the provided initialContents as the
 contents of the Message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#Message(java.lang.Object, boolean, java.lang.String, java.lang.String)"><B>Message(Object, boolean, String, String)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Construct a Message, using the provided initialContents as the
 contents of the Message's SOAPPart.
<DT><A HREF="org/apache/axis/Message.html#Message(java.lang.Object)"><B>Message(Object)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Construct a Message.
<DT><A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n"><B>MessageBundle</B></A> - class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>.<DD>Accept parameters for ProjectResourceBundle,
 but defer object instantiation (and therefore
 resource bundle loading) until required.<DT><A HREF="org/apache/axis/i18n/MessageBundle.html#MessageBundle(java.lang.String, java.lang.String, java.lang.String, java.util.Locale, java.lang.ClassLoader, java.util.ResourceBundle)"><B>MessageBundle(String, String, String, Locale, ClassLoader, ResourceBundle)</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessageBundle.html" title="class in org.apache.axis.i18n">MessageBundle</A>
<DD>Construct a new ExtendMessages
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler"><B>MessageContext</B></A> - interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>.<DD>The interface <code>MessageContext</code> abstracts the message
 context that is processed by a handler in the <code>handle</code>
 method.<DT><A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis"><B>MessageContext</B></A> - class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>.<DD>A MessageContext is the Axis implementation of the javax
 SOAPMessageContext class, and is core to message processing
 in handlers and other parts of the system.<DT><A HREF="org/apache/axis/MessageContext.html#MessageContext(org.apache.axis.AxisEngine)"><B>MessageContext(AxisEngine)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Create a message context.
<DT><A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message"><B>MessageElement</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>.<DD>MessageElement is the base type of nodes of the SOAP message parse tree.<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement()"><B>MessageElement()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>No-arg constructor for building messages?
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(java.lang.String, java.lang.String)"><B>MessageElement(String, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>constructor
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(java.lang.String, java.lang.String, java.lang.String)"><B>MessageElement(String, String, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>constructor.
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(javax.xml.soap.Name)"><B>MessageElement(Name)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>construct using a <A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap"><CODE>Name</CODE></A> implementation,
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(java.lang.String, java.lang.String, java.lang.Object)"><B>MessageElement(String, String, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>constructor binding the internal object value field to the
 value parameter
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(javax.xml.namespace.QName)"><B>MessageElement(QName)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>constructor declaring the qualified name of the node
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(javax.xml.namespace.QName, java.lang.Object)"><B>MessageElement(QName, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>constructor declaring the qualified name of the node
 and its value
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(org.w3c.dom.Element)"><B>MessageElement(Element)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>create a node through a deep copy of the passed in element.
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(org.w3c.dom.CharacterData)"><B>MessageElement(CharacterData)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>construct a text element.
<DT><A HREF="org/apache/axis/message/MessageElement.html#MessageElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>MessageElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Advanced constructor used for deserialization.
<DT><A HREF="org/apache/axis/message/MessageElement.QNameAttr.html" title="class in org.apache.axis.message"><B>MessageElement.QNameAttr</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.QNameAttr.html" title="class in org.apache.axis.message">MessageElement.QNameAttr</A>.<DD>class that represents a qname in a the qNameAttrs vector.<DT><A HREF="org/apache/axis/message/MessageElement.QNameAttr.html#MessageElement.QNameAttr()"><B>MessageElement.QNameAttr()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.QNameAttr.html" title="class in org.apache.axis.message">MessageElement.QNameAttr</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>MessageEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html" title="class in org.apache.axis.wsdl.symbolTable">MessageEntry</A>.<DD>This class represents a WSDL message.<DT><A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html#MessageEntry(javax.wsdl.Message)"><B>MessageEntry(Message)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MessageEntry.html" title="class in org.apache.axis.wsdl.symbolTable">MessageEntry</A>
<DD>Construct a MessageEntry from a WSDL4J Message object.
<DT><A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap"><B>MessageFactory</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap">MessageFactory</A>.<DD>A factory for creating <CODE>SOAPMessage</CODE> objects.<DT><A HREF="javax/xml/soap/MessageFactory.html#MessageFactory()"><B>MessageFactory()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap">MessageFactory</A>
<DD>Create a new MessageFactory.
<DT><A HREF="org/apache/axis/soap/MessageFactoryImpl.html" title="class in org.apache.axis.soap"><B>MessageFactoryImpl</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/MessageFactoryImpl.html" title="class in org.apache.axis.soap">MessageFactoryImpl</A>.<DD>Message Factory implementation<DT><A HREF="org/apache/axis/soap/MessageFactoryImpl.html#MessageFactoryImpl()"><B>MessageFactoryImpl()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/MessageFactoryImpl.html" title="class in org.apache.axis.soap">MessageFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message"><B>MessageWithAttachments</B></A> - interface org.apache.axis.message.<A HREF="org/apache/axis/message/MessageWithAttachments.html" title="interface in org.apache.axis.message">MessageWithAttachments</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n"><B>Messages</B></A> - class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/i18n/Messages.html#Messages()"><B>Messages()</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/Messages.html" title="class in org.apache.axis.i18n">Messages</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils"><B>Messages</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/Messages.html#Messages()"><B>Messages()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Messages.html" title="class in org.apache.axis.utils">Messages</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n"><B>MessagesConstants</B></A> - class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#MessagesConstants()"><B>MessagesConstants()</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/cache/MethodCache.html" title="class in org.apache.axis.utils.cache"><B>MethodCache</B></A> - class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/MethodCache.html" title="class in org.apache.axis.utils.cache">MethodCache</A>.<DD>A cache for methods.<DT><A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding"><B>MethodTarget</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding">MethodTarget</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/MethodTarget.html#MethodTarget(java.lang.Object, java.lang.reflect.Method)"><B>MethodTarget(Object, Method)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding">MethodTarget</A>
<DD>Construct a target whose value is set via a method
<DT><A HREF="org/apache/axis/encoding/MethodTarget.html#MethodTarget(java.lang.Object, java.lang.String)"><B>MethodTarget(Object, String)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding">MethodTarget</A>
<DD>Construct a target whose value is set via a method
<DT><A HREF="javax/xml/soap/MimeHeader.html" title="class in javax.xml.soap"><B>MimeHeader</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeader.html" title="class in javax.xml.soap">MimeHeader</A>.<DD>An object that stores a MIME header name and its value.<DT><A HREF="javax/xml/soap/MimeHeader.html#MimeHeader(java.lang.String, java.lang.String)"><B>MimeHeader(String, String)</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeader.html" title="class in javax.xml.soap">MimeHeader</A>
<DD>Constructs a <CODE>MimeHeader</CODE> object initialized
 with the given name and value.
<DT><A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap"><B>MimeHeaders</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>.<DD>A container for <CODE>MimeHeader</CODE> objects, which
   represent the MIME headers present in a MIME part of a
   message.<DT><A HREF="javax/xml/soap/MimeHeaders.html#MimeHeaders()"><B>MimeHeaders()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Constructs
   a default <CODE>MimeHeaders</CODE> object initialized with
   an empty <CODE>Vector</CODE> object.
<DT><A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message"><B>MimeHeaders</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message">MimeHeaders</A>.<DD>wraps javax.xml.soap.MimeHeaders and implements java.io.Serializable interface<DT><A HREF="org/apache/axis/message/MimeHeaders.html#MimeHeaders()"><B>MimeHeaders()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message">MimeHeaders</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MimeHeaders.html#MimeHeaders(javax.xml.soap.MimeHeaders)"><B>MimeHeaders(MimeHeaders)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message">MimeHeaders</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable"><B>MimeInfo</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable">MimeInfo</A>.<DD>Class MimeInfo<DT><A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html#MimeInfo(java.lang.String, java.lang.String)"><B>MimeInfo(String, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable">MimeInfo</A>
<DD>Constructor MimeInfo
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>MimeMultipartDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerDeserializer</A>.<DD>MimeMultipartDataHandler Deserializer<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html#MimeMultipartDataHandlerDeserializer()"><B>MimeMultipartDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>MimeMultipartDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerSerializer</A>.<DD>MimeMultipartDataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html#MimeMultipartDataHandlerSerializer()"><B>MimeMultipartDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments"><B>MimeMultipartDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html#MimeMultipartDataSource(java.lang.String, javax.mail.internet.MimeMultipart)"><B>MimeMultipartDataSource(String, MimeMultipart)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeMultipartDataSource.html" title="class in org.apache.axis.attachments">MimeMultipartDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/MimeMultipartHolder.html" title="class in org.apache.axis.holders"><B>MimeMultipartHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MimeMultipartHolder.html" title="class in org.apache.axis.holders">MimeMultipartHolder</A>.<DD>Class MimeMultipartHolder<DT><A HREF="org/apache/axis/holders/MimeMultipartHolder.html#MimeMultipartHolder()"><B>MimeMultipartHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MimeMultipartHolder.html" title="class in org.apache.axis.holders">MimeMultipartHolder</A>
<DD>Constructor MimeMultipartHolder
<DT><A HREF="org/apache/axis/holders/MimeMultipartHolder.html#MimeMultipartHolder(javax.mail.internet.MimeMultipart)"><B>MimeMultipartHolder(MimeMultipart)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MimeMultipartHolder.html" title="class in org.apache.axis.holders">MimeMultipartHolder</A>
<DD>Constructor MimeMultipartHolder
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments"><B>MimeUtils</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>.<DD>This class is defines utilities for mime.<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#MimeUtils()"><B>MimeUtils()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/MixedContentType.html" title="interface in org.apache.axis.encoding"><B>MixedContentType</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MixedContentType.html" title="interface in org.apache.axis.encoding">MixedContentType</A>.<DD>Interface to indicate that a bean has mixed content<DT><A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types"><B>Month</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>.<DD>Implementation of the XML Schema type gMonth<DT><A HREF="org/apache/axis/types/Month.html#Month(int)"><B>Month(int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>Constructs a Month with the given values
 No timezone is specified
<DT><A HREF="org/apache/axis/types/Month.html#Month(int, java.lang.String)"><B>Month(int, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>Constructs a Month with the given values, including a timezone string
 The timezone is validated but not used.
<DT><A HREF="org/apache/axis/types/Month.html#Month(java.lang.String)"><B>Month(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>Construct a Month from a String in the format --MM--[timezone]
<DT><A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types"><B>MonthDay</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>.<DD>Implementation of the XML Schema type gMonthDay<DT><A HREF="org/apache/axis/types/MonthDay.html#MonthDay(int, int)"><B>MonthDay(int, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>Constructs a MonthDay with the given values
 No timezone is specified
<DT><A HREF="org/apache/axis/types/MonthDay.html#MonthDay(int, int, java.lang.String)"><B>MonthDay(int, int, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>Constructs a MonthDay with the given values, including a timezone string
 The timezone is validated but not used.
<DT><A HREF="org/apache/axis/types/MonthDay.html#MonthDay(java.lang.String)"><B>MonthDay(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>Construct a MonthDay from a String in the format --MM-DD[timezone]
<DT><A HREF="org/apache/axis/holders/MonthDayHolder.html" title="class in org.apache.axis.holders"><B>MonthDayHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthDayHolder.html" title="class in org.apache.axis.holders">MonthDayHolder</A>.<DD>Class MonthDayHolder<DT><A HREF="org/apache/axis/holders/MonthDayHolder.html#MonthDayHolder()"><B>MonthDayHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthDayHolder.html" title="class in org.apache.axis.holders">MonthDayHolder</A>
<DD>Constructor MonthDayHolder
<DT><A HREF="org/apache/axis/holders/MonthDayHolder.html#MonthDayHolder(org.apache.axis.types.MonthDay)"><B>MonthDayHolder(MonthDay)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthDayHolder.html" title="class in org.apache.axis.holders">MonthDayHolder</A>
<DD>Constructor MonthDayHolder
<DT><A HREF="org/apache/axis/holders/MonthHolder.html" title="class in org.apache.axis.holders"><B>MonthHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthHolder.html" title="class in org.apache.axis.holders">MonthHolder</A>.<DD>Class MonthHolder<DT><A HREF="org/apache/axis/holders/MonthHolder.html#MonthHolder()"><B>MonthHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthHolder.html" title="class in org.apache.axis.holders">MonthHolder</A>
<DD>Constructor MonthHolder
<DT><A HREF="org/apache/axis/holders/MonthHolder.html#MonthHolder(org.apache.axis.types.Month)"><B>MonthHolder(Month)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthHolder.html" title="class in org.apache.axis.holders">MonthHolder</A>
<DD>Constructor MonthHolder
<DT><A HREF="org/apache/axis/providers/java/MsgProvider.html" title="class in org.apache.axis.providers.java"><B>MsgProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/MsgProvider.html" title="class in org.apache.axis.providers.java">MsgProvider</A>.<DD>Deal with message-style Java services.<DT><A HREF="org/apache/axis/providers/java/MsgProvider.html#MsgProvider()"><B>MsgProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/MsgProvider.html" title="class in org.apache.axis.providers.java">MsgProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments"><B>MultiPartDimeInputStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>.<DD>This simulates the multipart stream.<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#MultiPartDimeInputStream(java.io.InputStream)"><B>MultiPartDimeInputStream(InputStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>Create a new Multipart stream from an input stream.
<DT><A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments"><B>MultiPartInputStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartInputStream.html" title="class in org.apache.axis.attachments">MultiPartInputStream</A>.<DD>This simulates the multipart stream.<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments"><B>MultiPartRelatedInputStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>.<DD>This simulates the multipart stream.<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#MultiPartRelatedInputStream(java.lang.String, java.io.InputStream)"><B>MultiPartRelatedInputStream(String, InputStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Create a new Multipart stream.
<DT><A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments"><B>MultipartAttachmentStreams</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments">MultipartAttachmentStreams</A>.<DD>The MultipartAttachmentStreams class is used to create
 IncomingAttachmentInputStream objects when the HTTP stream shows a marked
 separation between the SOAP and each attachment parts.<DT><A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html#MultipartAttachmentStreams(org.apache.axis.attachments.BoundaryDelimitedStream)"><B>MultipartAttachmentStreams(BoundaryDelimitedStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments">MultipartAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html#MultipartAttachmentStreams(org.apache.axis.attachments.BoundaryDelimitedStream, java.util.Collection)"><B>MultipartAttachmentStreams(BoundaryDelimitedStream, Collection)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments">MultipartAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html" title="class in org.apache.axis.handlers.soap"><B>MustUnderstandChecker</B></A> - class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html" title="class in org.apache.axis.handlers.soap">MustUnderstandChecker</A>.<DD>MustUnderstandChecker is used to inject SOAP semantics just before
 the pivot handler.<DT><A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html#MustUnderstandChecker(org.apache.axis.handlers.soap.SOAPService)"><B>MustUnderstandChecker(SOAPService)</B></A> - 
Constructor for class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/MustUnderstandChecker.html" title="class in org.apache.axis.handlers.soap">MustUnderstandChecker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#mDocument"><B>mDocument</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>SOAPEnvelope is the Document Elements of this XML docuement
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_adapter"><B>m_adapter</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_allowReceive"><B>m_allowReceive</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_connectRetryInterval"><B>m_connectRetryInterval</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html#m_consumer"><B>m_consumer</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection.ListenerSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_interactRetryInterval"><B>m_interactRetryInterval</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_jmsurl"><B>m_jmsurl</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_numRetries"><B>m_numRetries</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_numSessions"><B>m_numSessions</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_poolTimeout"><B>m_poolTimeout</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_receiveConnection"><B>m_receiveConnection</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_sendConnection"><B>m_sendConnection</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html#m_subscription"><B>m_subscription</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.ListenerSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection.ListenerSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#m_timeoutTime"><B>m_timeoutTime</B></A> - 
Variable in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Version.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/Version.html" title="class in org.apache.axis">Version</A>
<DD>Entry point.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Method main
<DT><A HREF="org/apache/axis/client/AdminClient.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>Creates in instance of <code>AdminClient</code> and
 invokes <code>process(args)</code>.
<DT><A HREF="org/apache/axis/client/HappyClient.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client">HappyClient</A>
<DD>public happiness test.
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Server process.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Server process.
<DT><A HREF="org/apache/axis/utils/Admin.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>Main method for this class
<DT><A HREF="org/apache/axis/utils/tcpmon.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils">tcpmon</A>
<DD>this is our main method
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Main
 Run the Java2WSDL emitter with the specified command-line arguments
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Main
 Run the WSDL2Java emitter with the specified command-line arguments
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
Static method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Main
 Run the tool with the specified command-line arguments
<DT><A HREF="org/apache/axis/client/Stub.html#maintainSession"><B>maintainSession</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#maintainSessionSet"><B>maintainSessionSet</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#makeAttributesEditable()"><B>makeAttributesEditable()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>make the attributes editable
<DT><A HREF="org/apache/axis/AxisFault.html#makeFault(java.lang.Exception)"><B>makeFault(Exception)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Make an AxisFault based on a passed Exception.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#makeInputStream()"><B>makeInputStream()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method makeInputStream
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#makeLockable"><B>makeLockable</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#makeNamespace(java.lang.String)"><B>makeNamespace(String)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Make namespace from a fully qualified class name
 use the default protocol for the namespace
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#makeNamespace(java.lang.String, java.lang.String)"><B>makeNamespace(String, String)</B></A> - 
Static method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Make namespace from a fully qualified class name
 and the given protocol
<DT><A HREF="org/apache/axis/message/BodyBuilder.html#makeNewElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>makeNewElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#makeNewElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>makeNewElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#makeNewInstance(org.apache.axis.EngineConfiguration)"><B>makeNewInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Creates a new instance of this Chain
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#makeNewInstance(org.apache.axis.EngineConfiguration)"><B>makeNewInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Creates a new instance of this deployable.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#makeNewInstance(org.apache.axis.EngineConfiguration)"><B>makeNewInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#makeNewInstance(org.apache.axis.EngineConfiguration)"><B>makeNewInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#makeNewInstance(org.apache.axis.EngineConfiguration)"><B>makeNewInstance(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#makeNewServiceObject(org.apache.axis.MessageContext, java.lang.String)"><B>makeNewServiceObject(MessageContext, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>Return a object which implements the service.
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#makeNewServiceObject(org.apache.axis.MessageContext, java.lang.String)"><B>makeNewServiceObject(MessageContext, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>Return a object which implements the service.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#makeNewServiceObject(org.apache.axis.MessageContext, java.lang.String)"><B>makeNewServiceObject(MessageContext, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Default java service object comes from simply instantiating the
 class wrapped in jc
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#makeNewServiceObject(org.apache.axis.MessageContext, java.lang.String)"><B>makeNewServiceObject(MessageContext, String)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>Return a object which implements the service.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#makeNonJavaKeyword(java.lang.String)"><B>makeNonJavaKeyword(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Turn a java keyword string into a non-Java keyword string.
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#makePackageName(java.lang.String)"><B>makePackageName(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Method makePackageName
<DT><A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Deserializer.html" title="class in org.apache.axis.encoding.ser">Base64Deserializer</A>
<DD>Convert the string that has been accumulated into an Object.
<DT><A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarDeserializer.html" title="class in org.apache.axis.encoding.ser">CalendarDeserializer</A>
<DD>The simple deserializer provides most of the stuff.
<DT><A HREF="org/apache/axis/encoding/ser/DateDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateDeserializer.html" title="class in org.apache.axis.encoding.ser">DateDeserializer</A>
<DD>The simple deserializer provides most of the stuff.
<DT><A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumDeserializer.html" title="class in org.apache.axis.encoding.ser">EnumDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexDeserializer.html" title="class in org.apache.axis.encoding.ser">HexDeserializer</A>
<DD>Convert the string that has been accumulated into an Object.
<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html" title="class in org.apache.axis.encoding.ser">QNameDeserializer</A>
<DD>The simple deserializer provides most of the stuff.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>Convert the string that has been accumulated into an Object.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>Convert the string that has been accumulated into an Object.
<DT><A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html#makeValue(java.lang.String)"><B>makeValue(String)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html" title="class in org.apache.axis.encoding.ser">TimeDeserializer</A>
<DD>The simple deserializer provides most of the stuff.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#mark(int)"><B>mark(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>mark the stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#mark(int)"><B>mark(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Mark the stream.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#mark(int)"><B>mark(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#markSupported()"><B>markSupported()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>markSupported
 return false;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#markSupported()"><B>markSupported()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#markSupported()"><B>markSupported()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>Don't want to support mark and reset since this may get us into
 concurrency problem when different pieces of software may have a
 handle to the underlying InputStream.
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#markSupported()"><B>markSupported()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultSocketFactory.html#match(java.lang.String, java.lang.String, boolean)"><B>match(String, String, boolean)</B></A> - 
Static method in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultSocketFactory.html" title="class in org.apache.axis.components.net">DefaultSocketFactory</A>
<DD>Matches a string against a pattern.
<DT><A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html#match(java.lang.String, java.lang.String, boolean)"><B>match(String, String, boolean)</B></A> - 
Static method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/CommonsHTTPSender.html" title="class in org.apache.axis.transport.http">CommonsHTTPSender</A>
<DD>Matches a string against a pattern.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html#matchConnector(java.util.Set, java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter)"><B>matchConnector(Set, HashMap, HashMap, String, String, JMSVendorAdapter)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorFactory.html" title="class in org.apache.axis.transport.jms">JMSConnectorFactory</A>
<DD>Performs an initial check on the connector properties, and then defers
 to the vendor adapter for matching on the vendor-specific connection factory.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#matches(javax.xml.soap.MimeHeaders)"><B>matches(MimeHeaders)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>check if this Part's mimeheaders matches the one passed in.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#matches(byte[], byte[])"><B>matches(byte[], byte[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>does tolower[buf] match the target byte array, up to the target's length?
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#matches(byte[], int, byte[])"><B>matches(byte[], int, byte[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>Case-insensitive match of a target byte [] to a source byte [],
 starting from a particular offset into the source.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#maxCached"><B>maxCached</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field maxCached
<DT><A HREF="org/apache/axis/utils/ByteArray.html#max_size"><B>max_size</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#memorybuflist"><B>memorybuflist</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>The linked list to hold the in memory buffers.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#mep"><B>mep</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>The MEP for this operation (default is request-response)
<DT><A HREF="org/apache/axis/description/OperationDesc.html#mepStrings"><B>mepStrings</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#merge(java.util.Properties, java.util.Properties)"><B>merge(Properties, Properties)</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Merge two Properties objects
<DT><A HREF="org/apache/axis/message/MessageElement.html#message"><B>message</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#messageType"><B>messageType</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#mimeToJava(java.lang.String)"><B>mimeToJava(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Given the MIME type string, return the Java mapping.
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#mkdir(java.lang.String)"><B>mkdir(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Make a directory for the given package under root.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#mode"><B>mode</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field mode
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#modeFromString(java.lang.String)"><B>modeFromString(String)</B></A> - 
Static method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Get a mode constant from a string.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#moveValueTargets(org.apache.axis.encoding.Deserializer)"><B>moveValueTargets(Deserializer)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Move someone else's targets to our own (see DeserializationContext)

 The DeserializationContext only allows one Deserializer to
 wait for a unknown multi-ref'ed value.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#moveValueTargets(org.apache.axis.encoding.Deserializer)"><B>moveValueTargets(Deserializer)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Move someone else's targets to our own (see DeserializationContext)

 The DeserializationContext only allows one Deserializer to  
 wait for a unknown multi-ref'ed value.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#mpartStream"><B>mpartStream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>The actual stream to manage the multi-related input stream.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#msgContext"><B>msgContext</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#mustUnderstand"><B>mustUnderstand</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#myElement"><B>myElement</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#myPD"><B>myPD</B></A> - 
Variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#myRegister(javax.xml.namespace.QName, java.lang.Class, org.apache.axis.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>myRegister(QName, Class, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>Construct TypeMapping for all the [xmlType, javaType] for all of the
 known xmlType namespaces.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#myRegisterSimple(javax.xml.namespace.QName, java.lang.Class)"><B>myRegisterSimple(QName, Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>Register a "simple" type mapping - in other words, a
</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#NAMESPACE_FILE_OPT"><B>NAMESPACE_FILE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field NAMESPACE_FILE_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#NAMESPACE_IMPL_OPT"><B>NAMESPACE_IMPL_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field NAMESPACE_IMPL_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#NAMESPACE_OPT"><B>NAMESPACE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field NAMESPACE_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#NAMESPACE_OPT"><B>NAMESPACE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field NAMESPACE_OPT
<DT><A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types"><B>NCName</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types">NCName</A>.<DD>Custom class for supporting XSD data type NCName
 NCName represents XML "non-colonized" Names
 The base type of NCName is Name.<DT><A HREF="org/apache/axis/types/NCName.html#NCName()"><B>NCName()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types">NCName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NCName.html#NCName(java.lang.String)"><B>NCName(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types">NCName</A>
<DD>ctor for NCName
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#NETWORK_TIMEOUT_OPT"><B>NETWORK_TIMEOUT_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field NETWORK_TIMEOUT_OPT
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#NILHINT"><B>NILHINT</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#NL"><B>NL</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NMToken.html" title="class in org.apache.axis.types"><B>NMToken</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NMToken.html" title="class in org.apache.axis.types">NMToken</A>.<DD>Custom class for supporting XSD data type NMToken

 NMTOKEN represents the NMTOKEN attribute type from
 [XML 1.0(Second Edition)].<DT><A HREF="org/apache/axis/types/NMToken.html#NMToken()"><B>NMToken()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NMToken.html" title="class in org.apache.axis.types">NMToken</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NMToken.html#NMToken(java.lang.String)"><B>NMToken(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NMToken.html" title="class in org.apache.axis.types">NMToken</A>
<DD>ctor for NMToken
<DT><A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types"><B>NMTokens</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>.<DD>Custom class for supporting XSD data type NMTokens<DT><A HREF="org/apache/axis/types/NMTokens.html#NMTokens()"><B>NMTokens()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NMTokens.html#NMTokens(java.lang.String)"><B>NMTokens(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>ctor for NMTokens
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#NOIMPORTS_OPT"><B>NOIMPORTS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field NOIMPORTS_OPT
<DT><A HREF="org/apache/axis/client/async/Status.html#NONE"><B>NONE</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field NONE
<DT><A HREF="org/apache/axis/client/async/Status.html#NONE_STR"><B>NONE_STR</B></A> - 
Static variable in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Field NONE_STR
<DT><A HREF="org/apache/axis/utils/ArrayUtil.html#NON_CONVERTABLE"><B>NON_CONVERTABLE</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ArrayUtil.html" title="class in org.apache.axis.utils">ArrayUtil</A>
<DD>An object indicating that the conversion is not possible
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#NOWRAP_OPT"><B>NOWRAP_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field NOWRAP_OPT
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#NO_HEADER"><B>NO_HEADER</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Get the flag indicating what sort of header this part is.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#NO_LOCAL"><B>NO_LOCAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>registerListener</code>
 method.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSPREFIX_SCHEMA_XSD"><B>NSPREFIX_SCHEMA_XSD</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace prefix for XML schema XSD.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSPREFIX_SCHEMA_XSI"><B>NSPREFIX_SCHEMA_XSI</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace prefix for XML Schema XSI.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSPREFIX_SOAP_ENCODING"><B>NSPREFIX_SOAP_ENCODING</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace prefix for SOAP Encoding.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSPREFIX_SOAP_ENVELOPE"><B>NSPREFIX_SOAP_ENVELOPE</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace prefix for SOAP Envelope.
<DT><A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils"><B>NSStack</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>.<DD>The abstraction this class provides is a push down stack of variable
 length frames of prefix to namespace mappings.<DT><A HREF="org/apache/axis/utils/NSStack.html#NSStack(boolean)"><B>NSStack(boolean)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#NSStack()"><B>NSStack()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSURI_SCHEMA_XSD"><B>NSURI_SCHEMA_XSD</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace URI for XML Schema XSD.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSURI_SCHEMA_XSI"><B>NSURI_SCHEMA_XSI</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Namespace URI for XML Schema XSI.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSURI_SOAP_ENCODING"><B>NSURI_SOAP_ENCODING</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Nameapace URI for SOAP 1.1 Encoding.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSURI_SOAP_ENVELOPE"><B>NSURI_SOAP_ENVELOPE</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Nameapace URI for SOAP 1.1 Envelope.
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NSURI_SOAP_NEXT_ACTOR"><B>NSURI_SOAP_NEXT_ACTOR</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Nameapace URI for SOAP 1.1 next actor role.
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#NS_EXCLUDE_OPT"><B>NS_EXCLUDE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Filed namespace exclude
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#NS_INCLUDE_OPT"><B>NS_INCLUDE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field namespace include
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_SCHEMA_XSD"><B>NS_PREFIX_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_SCHEMA_XSI"><B>NS_PREFIX_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_SOAP_ENC"><B>NS_PREFIX_SOAP_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_SOAP_ENV"><B>NS_PREFIX_SOAP_ENV</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#NS_PREFIX_WSDD"><B>NS_PREFIX_WSDD</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#NS_PREFIX_WSDD_JAVA"><B>NS_PREFIX_WSDD_JAVA</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_WSDL"><B>NS_PREFIX_WSDL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_WSDL_SOAP"><B>NS_PREFIX_WSDL_SOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_XML"><B>NS_PREFIX_XML</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_XMLSOAP"><B>NS_PREFIX_XMLSOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_PREFIX_XOP"><B>NS_PREFIX_XOP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URIS_WSDL"><B>NS_URIS_WSDL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URIS_WSDL_SOAP"><B>NS_URIS_WSDL_SOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_AXIS"><B>NS_URI_AXIS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/DebugHandler.html#NS_URI_DEBUG"><B>NS_URI_DEBUG</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_JAVA"><B>NS_URI_JAVA</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_WSDL11"><B>NS_URI_WSDL11</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>WSDL Namespace.
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_XML"><B>NS_URI_XML</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_XMLNS"><B>NS_URI_XMLNS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#NS_URI_XMLSOAP"><B>NS_URI_XMLSOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#NStoPkgFilename"><B>NStoPkgFilename</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field NStoPkgFilename
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#NUM_RETRIES"><B>NUM_RETRIES</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#NUM_SESSIONS"><B>NUM_SESSIONS</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap"><B>Name</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/Name.html" title="interface in javax.xml.soap">Name</A>.<DD>A representation of an XML name.<DT><A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types"><B>Name</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types">Name</A>.<DD>Custom class for supporting XSD data type Name
 Name represents XML Names.<DT><A HREF="org/apache/axis/types/Name.html#Name()"><B>Name()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types">Name</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Name.html#Name(java.lang.String)"><B>Name(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types">Name</A>
<DD>ctor for Name
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message"><B>NamedNodeMapImpl</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>.<DD>A W3C simple DOM NameNodeMap implementation<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#NamedNodeMapImpl()"><B>NamedNodeMapImpl()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc"><B>NamespaceConstants</B></A> - class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>.<DD>Constants used in JAX-RPC for namespace prefixes and URIs.<DT><A HREF="javax/xml/rpc/NamespaceConstants.html#NamespaceConstants()"><B>NamespaceConstants()</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/NamespaceConstants.html" title="class in javax.xml.rpc">NamespaceConstants</A>
<DD>Constructor NamespaceConstants.
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava"><B>NamespaceSelector</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>.<DD>This class is used within the context of a FactorySpec to express
   namespaces that should be either included and/or excluded from source
   code generation.<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#NamespaceSelector()"><B>NamespaceSelector()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#NamespaceSelector(java.lang.String)"><B>NamespaceSelector(String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava"><B>Namespaces</B></A> - class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>.<DD>Description: A HashMap of packageNames and namespaces with some helper methods <DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#Namespaces()"><B>Namespaces()</B></A> - 
Constructor for class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>Constructor Namespaces
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava"><B>Namespaces</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>.<DD>This class is essentially a HashMap of <namespace, package name> pairs with
 a few extra wizzbangs.<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#Namespaces(java.lang.String)"><B>Namespaces(String)</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Instantiate a Namespaces object whose packages will all reside under root.
<DT><A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types"><B>NegativeInteger</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>.<DD>Custom class for supporting primitive XSD data type negativeinteger

 negativeInteger is derived from nonPositiveInteger by setting the
 value of maxInclusive to be -1.<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(byte[])"><B>NegativeInteger(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(int, byte[])"><B>NegativeInteger(int, byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(int, int, java.util.Random)"><B>NegativeInteger(int, int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(int, java.util.Random)"><B>NegativeInteger(int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(java.lang.String)"><B>NegativeInteger(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#NegativeInteger(java.lang.String, int)"><B>NegativeInteger(String, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types"><B>NegativeInteger.BigIntegerRep</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NegativeInteger.BigIntegerRep</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html#NegativeInteger.BigIntegerRep(byte[])"><B>NegativeInteger.BigIntegerRep(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NegativeInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/NegativeIntegerHolder.html" title="class in org.apache.axis.holders"><B>NegativeIntegerHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NegativeIntegerHolder.html" title="class in org.apache.axis.holders">NegativeIntegerHolder</A>.<DD>Class NegativeIntegerHolder<DT><A HREF="org/apache/axis/holders/NegativeIntegerHolder.html#NegativeIntegerHolder()"><B>NegativeIntegerHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NegativeIntegerHolder.html" title="class in org.apache.axis.holders">NegativeIntegerHolder</A>
<DD>Constructor NegativeIntegerHolder
<DT><A HREF="org/apache/axis/holders/NegativeIntegerHolder.html#NegativeIntegerHolder(org.apache.axis.types.NegativeInteger)"><B>NegativeIntegerHolder(NegativeInteger)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NegativeIntegerHolder.html" title="class in org.apache.axis.holders">NegativeIntegerHolder</A>
<DD>Constructor NegativeIntegerHolder
<DT><A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils"><B>NetworkUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NetworkUtils.html" title="class in org.apache.axis.utils">NetworkUtils</A>.<DD>Utility classes for networking
 created 13-May-2004 16:17:51<DT><A HREF="org/apache/axis/NoEndPointException.html" title="class in org.apache.axis"><B>NoEndPointException</B></A> - exception org.apache.axis.<A HREF="org/apache/axis/NoEndPointException.html" title="class in org.apache.axis">NoEndPointException</A>.<DD>An exception to indicate that there is no end point.<DT><A HREF="org/apache/axis/NoEndPointException.html#NoEndPointException()"><B>NoEndPointException()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/NoEndPointException.html" title="class in org.apache.axis">NoEndPointException</A>
<DD>Create a new exception with the default message and other details.
<DT><A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap"><B>Node</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>.<DD>A representation of a node (element) in a DOM representation of an XML document
 that provides some tree manipulation methods.<DT><A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message"><B>NodeImpl</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>.<DD>This is our implementation of the DOM node<DT><A HREF="org/apache/axis/message/NodeImpl.html#NodeImpl()"><B>NodeImpl()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>empty constructor
<DT><A HREF="org/apache/axis/message/NodeImpl.html#NodeImpl(org.w3c.dom.CharacterData)"><B>NodeImpl(CharacterData)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>constructor which adopts the name and NS of the char data, and its text
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http"><B>NonBlockingBufferedInputStream</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#NonBlockingBufferedInputStream()"><B>NonBlockingBufferedInputStream()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types"><B>NonNegativeInteger</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>.<DD>Custom class for supporting primitive XSD data type nonNegativeInteger<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(byte[])"><B>NonNegativeInteger(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(int, byte[])"><B>NonNegativeInteger(int, byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(int, int, java.util.Random)"><B>NonNegativeInteger(int, int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(int, java.util.Random)"><B>NonNegativeInteger(int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(java.lang.String)"><B>NonNegativeInteger(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#NonNegativeInteger(java.lang.String, int)"><B>NonNegativeInteger(String, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types"><B>NonNegativeInteger.BigIntegerRep</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonNegativeInteger.BigIntegerRep</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html#NonNegativeInteger.BigIntegerRep(byte[])"><B>NonNegativeInteger.BigIntegerRep(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonNegativeInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html" title="class in org.apache.axis.holders"><B>NonNegativeIntegerHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html" title="class in org.apache.axis.holders">NonNegativeIntegerHolder</A>.<DD>Class NonNegativeIntegerHolder<DT><A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html#NonNegativeIntegerHolder()"><B>NonNegativeIntegerHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html" title="class in org.apache.axis.holders">NonNegativeIntegerHolder</A>
<DD>Constructor NonNegativeIntegerHolder
<DT><A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html#NonNegativeIntegerHolder(org.apache.axis.types.NonNegativeInteger)"><B>NonNegativeIntegerHolder(NonNegativeInteger)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html" title="class in org.apache.axis.holders">NonNegativeIntegerHolder</A>
<DD>Constructor NonNegativeIntegerHolder
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types"><B>NonPositiveInteger</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>.<DD>Custom class for supporting primitive XSD data type nonPositiveInteger

 nonPositiveInteger is derived from integer by setting the value of 
 maxInclusive to be 0.<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(byte[])"><B>NonPositiveInteger(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(int, byte[])"><B>NonPositiveInteger(int, byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(int, int, java.util.Random)"><B>NonPositiveInteger(int, int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(int, java.util.Random)"><B>NonPositiveInteger(int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(java.lang.String)"><B>NonPositiveInteger(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#NonPositiveInteger(java.lang.String, int)"><B>NonPositiveInteger(String, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types"><B>NonPositiveInteger.BigIntegerRep</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonPositiveInteger.BigIntegerRep</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html#NonPositiveInteger.BigIntegerRep(byte[])"><B>NonPositiveInteger.BigIntegerRep(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonPositiveInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html" title="class in org.apache.axis.holders"><B>NonPositiveIntegerHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html" title="class in org.apache.axis.holders">NonPositiveIntegerHolder</A>.<DD>Class NonPositiveIntegerHolder<DT><A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html#NonPositiveIntegerHolder()"><B>NonPositiveIntegerHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html" title="class in org.apache.axis.holders">NonPositiveIntegerHolder</A>
<DD>Constructor NonPositiveIntegerHolder
<DT><A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html#NonPositiveIntegerHolder(org.apache.axis.types.NonPositiveInteger)"><B>NonPositiveIntegerHolder(NonPositiveInteger)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html" title="class in org.apache.axis.holders">NonPositiveIntegerHolder</A>
<DD>Constructor NonPositiveIntegerHolder
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen"><B>NoopFactory</B></A> - class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>.<DD>This factory returns a bunch of NoopGenerators<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#NoopFactory()"><B>NoopFactory()</B></A> - 
Constructor for class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html" title="class in org.apache.axis.wsdl.gen"><B>NoopGenerator</B></A> - class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html" title="class in org.apache.axis.wsdl.gen">NoopGenerator</A>.<DD>This generator doesn't do anything.<DT><A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html#NoopGenerator()"><B>NoopGenerator()</B></A> - 
Constructor for class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopGenerator.html" title="class in org.apache.axis.wsdl.gen">NoopGenerator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types"><B>NormalizedString</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>.<DD>Custom class for supporting XSD data type NormalizedString.<DT><A HREF="org/apache/axis/types/NormalizedString.html#NormalizedString()"><B>NormalizedString()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NormalizedString.html#NormalizedString(java.lang.String)"><B>NormalizedString(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>ctor for NormalizedString
<DT><A HREF="org/apache/axis/holders/NormalizedStringHolder.html" title="class in org.apache.axis.holders"><B>NormalizedStringHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NormalizedStringHolder.html" title="class in org.apache.axis.holders">NormalizedStringHolder</A>.<DD>Class NormalizedStringHolder<DT><A HREF="org/apache/axis/holders/NormalizedStringHolder.html#NormalizedStringHolder()"><B>NormalizedStringHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NormalizedStringHolder.html" title="class in org.apache.axis.holders">NormalizedStringHolder</A>
<DD>Constructor NormalizedStringHolder
<DT><A HREF="org/apache/axis/holders/NormalizedStringHolder.html#NormalizedStringHolder(org.apache.axis.types.NormalizedString)"><B>NormalizedStringHolder(NormalizedString)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NormalizedStringHolder.html" title="class in org.apache.axis.holders">NormalizedStringHolder</A>
<DD>Constructor NormalizedStringHolder
<DT><A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types"><B>Notation</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>.<DD>Custom class for supporting XSD data type NOTATION.<DT><A HREF="org/apache/axis/types/Notation.html#Notation()"><B>Notation()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Notation.html#Notation(org.apache.axis.types.NCName, org.apache.axis.types.URI, org.apache.axis.types.URI)"><B>Notation(NCName, URI, URI)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message"><B>NullAttributes</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>.<DD>Null implementation of the Attributes interface.<DT><A HREF="org/apache/axis/message/NullAttributes.html#NullAttributes()"><B>NullAttributes()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration"><B>NullProvider</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>.<DD>A do-nothing ConfigurationProvider<DT><A HREF="org/apache/axis/configuration/NullProvider.html#NullProvider()"><B>NullProvider()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.html#name"><B>name</B></A> - 
Variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#name"><B>name</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.QNameAttr.html#name"><B>name</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.QNameAttr.html" title="class in org.apache.axis.message">MessageElement.QNameAttr</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#name"><B>name</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#name"><B>name</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Field name
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#names"><B>names</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field names
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#namespaceMap"><B>namespaceMap</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field namespaceMap
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#namespaceMap"><B>namespaceMap</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field namespaceMap
<DT><A HREF="org/apache/axis/message/NodeImpl.html#namespaceURI"><B>namespaceURI</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#namespaces"><B>namespaces</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#namespaces"><B>namespaces</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field namespaces
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#namespaces"><B>namespaces</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Field namespaces
<DT><A HREF="org/apache/axis/message/RPCElement.html#needDeser"><B>needDeser</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#needsHighFidelityRecording()"><B>needsHighFidelityRecording()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#newDocument()"><B>newDocument()</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get an empty new Document
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#newDocument(org.xml.sax.InputSource)"><B>newDocument(InputSource)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get a new Document read from the input source
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#newDocument(java.io.InputStream)"><B>newDocument(InputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get a new Document read from the input stream
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#newDocument(java.lang.String)"><B>newDocument(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Get a new Document read from the indicated uri
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#newDocument(java.lang.String, java.lang.String, java.lang.String)"><B>newDocument(String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Create a new document from the given URI, use the username and password
 if the URI requires authentication.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#newElement(org.apache.axis.message.MessageElement)"><B>newElement(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#newFactory(java.lang.Object)"><B>newFactory(Object)</B></A> - 
Static method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>Creates and returns a new EngineConfigurationFactory.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html#newFactory(java.lang.Object)"><B>newFactory(Object)</B></A> - 
Static method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryFinder</A>
<DD>Create the default engine configuration and detect whether the user
 has overridden this with their own.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html#newFactory()"><B>newFactory()</B></A> - 
Static method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryFinder.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryFinder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html#newFactory(java.lang.Object)"><B>newFactory(Object)</B></A> - 
Static method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryServlet.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryServlet</A>
<DD>Creates and returns a new EngineConfigurationFactory.
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#newInstance()"><B>newInstance()</B></A> - 
Static method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>Gets an instance of the <code>ServiceFactory</code>

 
<DT><A HREF="javax/xml/soap/MessageFactory.html#newInstance()"><B>newInstance()</B></A> - 
Static method in class javax.xml.soap.<A HREF="javax/xml/soap/MessageFactory.html" title="class in javax.xml.soap">MessageFactory</A>
<DD>Creates a new <CODE>MessageFactory</CODE> object that is
 an instance of the default implementation.
<DT><A HREF="javax/xml/soap/SOAPConnectionFactory.html#newInstance()"><B>newInstance()</B></A> - 
Static method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnectionFactory.html" title="class in javax.xml.soap">SOAPConnectionFactory</A>
<DD>Creates an instance of the default <CODE>
 SOAPConnectionFactory</CODE> object.
<DT><A HREF="javax/xml/soap/SOAPElementFactory.html#newInstance()"><B>newInstance()</B></A> - 
Static method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap">SOAPElementFactory</A>
<DD><B>Deprecated.</B>&nbsp;Creates a new instance of <CODE>SOAPElementFactory</CODE>.
<DT><A HREF="javax/xml/soap/SOAPFactory.html#newInstance()"><B>newInstance()</B></A> - 
Static method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>Creates a new instance of <code>SOAPFactory</code>.
<DT><A HREF="org/apache/axis/AxisProperties.html#newInstance(java.lang.Class)"><B>newInstance(Class)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Create a new instance of a service provider class.
<DT><A HREF="org/apache/axis/AxisProperties.html#newInstance(java.lang.Class, java.lang.Class[], java.lang.Object[])"><B>newInstance(Class, Class[], Object[])</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#newInstance(java.lang.Class, java.lang.Class)"><B>newInstance(Class, Class)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDBsfProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDHandlerProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaCORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaEJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaMsgProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html#newProviderInstance(org.apache.axis.deployment.wsdd.WSDDService, org.apache.axis.EngineConfiguration)"><B>newProviderInstance(WSDDService, EngineConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#newStreamNo()"><B>newStreamNo()</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Signal that a new stream has been created.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#newStreamNo()"><B>newStreamNo()</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#next"><B>next</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#next()"><B>next()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Return the next namespace mapping in the top frame.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#nextObjectID"><B>nextObjectID</B></A> - 
Variable in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/uuid/FastUUIDGen.html#nextUUID()"><B>nextUUID()</B></A> - 
Method in class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/FastUUIDGen.html" title="class in org.apache.axis.components.uuid">FastUUIDGen</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html#nextUUID()"><B>nextUUID()</B></A> - 
Method in class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html" title="class in org.apache.axis.components.uuid">SimpleUUIDGen</A>
<DD>Creates a new UUID.
<DT><A HREF="org/apache/axis/components/uuid/UUIDGen.html#nextUUID()"><B>nextUUID()</B></A> - 
Method in interface org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGen.html" title="interface in org.apache.axis.components.uuid">UUIDGen</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#noArgs"><B>noArgs</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#noArgs"><B>noArgs</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#noClasses"><B>noClasses</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/TypeDesc.html#noObjects"><B>noObjects</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#node"><B>node</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field node
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#node2ExtensionBase"><B>node2ExtensionBase</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>cache of nodes -> base types for complexTypes.
<DT><A HREF="org/apache/axis/utils/DOM2Writer.html#nodeToString(org.w3c.dom.Node, boolean)"><B>nodeToString(Node, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>
<DD>Return a string containing this node serialized as XML.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#nodes"><B>nodes</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Nodes.
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#nonProxyHosts"><B>nonProxyHosts</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#normaliseOptions(org.apache.axis.Handler)"><B>normaliseOptions(Handler)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Normalise the engine's options.
<DT><A HREF="org/apache/axis/SOAPPart.html#normalize()"><B>normalize()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#normalize()"><B>normalize()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>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 structure (e.g., elements, comments,
 processing instructions, CDATA sections, and entity references)
 separates <code>Text</code> nodes, i.e., there are neither adjacent
 <code>Text</code> nodes nor empty <code>Text</code> nodes.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#normalize()"><B>normalize()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DOM2Writer.html#normalize(java.lang.String)"><B>normalize(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/URLHashSet.html#normalize(java.net.URL)"><B>normalize(URL)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>
<DD>if the url points to a file then make sure we cleanup ".." "." etc.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#normalize(org.w3c.dom.Node)"><B>normalize(Node)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Trim all new lines from text nodes.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#nowrap"><B>nowrap</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field nowrap
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#nsExcludes"><B>nsExcludes</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field nsIncludes - defines a list of namespaces to specifically 
 exclude from generated source code.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#nsIncludes"><B>nsIncludes</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field nsIncludes - defines a list of namespaces to specifically
 include in the generated source code.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#numSessions()"><B>numSessions()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="org/apache/axis/client/Call.html#ONE_WAY"><B>ONE_WAY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Internal property to indicate a one way call.
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#ON_EXCEPTION_ACTION"><B>ON_EXCEPTION_ACTION</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#OPERATION_STYLE_PROPERTY"><B>OPERATION_STYLE_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property for operation style.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#OPTION_ALLOWEDMETHODS"><B>OPTION_ALLOWEDMETHODS</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#OPTION_BEANNAME"><B>OPTION_BEANNAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#OPTION_CLASSNAME"><B>OPTION_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#OPTION_CLIENT_CONFIG_FILE"><B>OPTION_CLIENT_CONFIG_FILE</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_EXTRACLASSES"><B>OPTION_EXTRACLASSES</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_HELPER_CLASSNAME"><B>OPTION_HELPER_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#OPTION_HOMEINTERFACENAME"><B>OPTION_HOMEINTERFACENAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_INTERFACE_CLASSNAME"><B>OPTION_INTERFACE_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#OPTION_INTERFACE_CLASSNAME"><B>OPTION_INTERFACE_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#OPTION_JWS_FILE_EXTENSION"><B>OPTION_JWS_FILE_EXTENSION</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#OPTION_LANGUAGE"><B>OPTION_LANGUAGE</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#OPTION_LOCALHOMEINTERFACENAME"><B>OPTION_LOCALHOMEINTERFACENAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#OPTION_LOCALINTERFACENAME"><B>OPTION_LOCALINTERFACENAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_NAME_ID"><B>OPTION_NAME_ID</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_NAME_KIND"><B>OPTION_NAME_KIND</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#OPTION_NAMING_LOOKUP"><B>OPTION_NAMING_LOOKUP</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_ORB_INITIAL_HOST"><B>OPTION_ORB_INITIAL_HOST</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/CORBAProvider.html#OPTION_ORB_INITIAL_PORT"><B>OPTION_ORB_INITIAL_PORT</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/CORBAProvider.html" title="class in org.apache.axis.providers.java">CORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html#OPTION_PROGID"><B>OPTION_PROGID</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/EJBProvider.html#OPTION_REMOTEINTERFACENAME"><B>OPTION_REMOTEINTERFACENAME</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/EJBProvider.html" title="class in org.apache.axis.providers.java">EJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#OPTION_SCOPE"><B>OPTION_SCOPE</B></A> - 
Static variable in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#OPTION_SCRIPT"><B>OPTION_SCRIPT</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#OPTION_SERVER_CONFIG_FILE"><B>OPTION_SERVER_CONFIG_FILE</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BSFProvider.html#OPTION_SRC"><B>OPTION_SRC</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BSFProvider.html" title="class in org.apache.axis.providers">BSFProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html#OPTION_THREADING_MODEL"><B>OPTION_THREADING_MODEL</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_INPUTSCHEMA"><B>OPTION_WSDL_INPUTSCHEMA</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_PORTTYPE"><B>OPTION_WSDL_PORTTYPE</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_SERVICEELEMENT"><B>OPTION_WSDL_SERVICEELEMENT</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_SERVICEPORT"><B>OPTION_WSDL_SERVICEPORT</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_SOAPACTION_MODE"><B>OPTION_WSDL_SOAPACTION_MODE</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/BasicProvider.html#OPTION_WSDL_TARGETNAMESPACE"><B>OPTION_WSDL_TARGETNAMESPACE</B></A> - 
Static variable in class org.apache.axis.providers.<A HREF="org/apache/axis/providers/BasicProvider.html" title="class in org.apache.axis.providers">BasicProvider</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/ParameterMode.html#OUT"><B>OUT</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>
<DD>The mode is 'OUT'.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#OUT"><B>OUT</B></A> - 
Static variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#OUT"><B>OUT</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Field OUT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#OUTPUT_IMPL_OPT"><B>OUTPUT_IMPL_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field OUTPUT_IMPL_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#OUTPUT_OPT"><B>OUTPUT_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field OUTPUT_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#OUTPUT_OPT"><B>OUTPUT_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field OUTPUT_OPT
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#OUTPUT_WSDL_MODE_OPT"><B>OUTPUT_WSDL_MODE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field OUTPUT_WSDL_MODE_OPT
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#OUT_HEADER"><B>OUT_HEADER</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field OUT_HEADER
<DT><A HREF="javax/xml/rpc/holders/ObjectHolder.html" title="class in javax.xml.rpc.holders"><B>ObjectHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ObjectHolder.html" title="class in javax.xml.rpc.holders">ObjectHolder</A>.<DD>Holder for <code>Object</code>s.<DT><A HREF="javax/xml/rpc/holders/ObjectHolder.html#ObjectHolder()"><B>ObjectHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ObjectHolder.html" title="class in javax.xml.rpc.holders">ObjectHolder</A>
<DD>Make a new <code>ObjectHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ObjectHolder.html#ObjectHolder(java.lang.Object)"><B>ObjectHolder(Object)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ObjectHolder.html" title="class in javax.xml.rpc.holders">ObjectHolder</A>
<DD>Make a new <code>ObjectHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments"><B>OctetStream</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments">OctetStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/OctetStream.html#OctetStream()"><B>OctetStream()</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments">OctetStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStream.html#OctetStream(byte[])"><B>OctetStream(byte[])</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments">OctetStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>OctetStreamDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerDeserializer</A>.<DD>application/octet-stream DataHandler Deserializer
 Modified by Davanum Srinivas <dims@yahoo.com><DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html#OctetStreamDataHandlerDeserializer()"><B>OctetStreamDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>OctetStreamDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerSerializer</A>.<DD>application/octet-stream DataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html#OctetStreamDataHandlerSerializer()"><B>OctetStreamDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments"><B>OctetStreamDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/OctetStreamDataSource.html#OctetStreamDataSource(java.lang.String, org.apache.axis.attachments.OctetStream)"><B>OctetStreamDataSource(String, OctetStream)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStreamDataSource.html" title="class in org.apache.axis.attachments">OctetStreamDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/OctetStreamHolder.html" title="class in org.apache.axis.holders"><B>OctetStreamHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/OctetStreamHolder.html" title="class in org.apache.axis.holders">OctetStreamHolder</A>.<DD>Class OctetStreamHolder<DT><A HREF="org/apache/axis/holders/OctetStreamHolder.html#OctetStreamHolder()"><B>OctetStreamHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/OctetStreamHolder.html" title="class in org.apache.axis.holders">OctetStreamHolder</A>
<DD>Constructor OctetStreamHolder
<DT><A HREF="org/apache/axis/holders/OctetStreamHolder.html#OctetStreamHolder(org.apache.axis.attachments.OctetStream)"><B>OctetStreamHolder(OctetStream)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/OctetStreamHolder.html" title="class in org.apache.axis.holders">OctetStreamHolder</A>
<DD>Constructor OctetStreamHolder
<DT><A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description"><B>OperationDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>.<DD>An OperationDesc is an abstract description of an operation on a service.<DT><A HREF="org/apache/axis/description/OperationDesc.html#OperationDesc()"><B>OperationDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Default constructor.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#OperationDesc(java.lang.String, org.apache.axis.description.ParameterDesc[], javax.xml.namespace.QName)"><B>OperationDesc(String, ParameterDesc[], QName)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>"Complete" constructor
<DT><A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils"><B>Options</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/Options.html#Options(java.lang.String[])"><B>Options(String[])</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>Constructor - just pass in the <b>args</b> from the command line.
<DT><A HREF="org/apache/axis/client/async/IAsyncCallback.html#onCompletion(org.apache.axis.client.async.IAsyncResult)"><B>onCompletion(IAsyncResult)</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncCallback.html" title="interface in org.apache.axis.client.async">IAsyncCallback</A>
<DD>Method onCompletion
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html#onConnect()"><B>onConnect()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html#onConnect()"><B>onConnect()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/BodyBuilder.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/HeaderBuilder.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message">HeaderBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#onEndChild(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndChild(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>onEndElement is called by endElement.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>onEndElement is called by endElement.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentDeserializer.html" title="class in org.apache.axis.encoding.ser">DocumentDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementDeserializer.html" title="class in org.apache.axis.encoding.ser">ElementDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>Append any characters to the value.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>Append any characters to the value.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializer</A>
<DD>Return something even if no characters were found.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html#onEndElement(java.lang.String, java.lang.String, org.apache.axis.encoding.DeserializationContext)"><B>onEndElement(String, String, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html#onException()"><B>onException()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html#onException()"><B>onException()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/FaultableHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>Some handler later on has faulted so we need to process the fault.
<DT><A HREF="org/apache/axis/Handler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Called when a subsequent handler throws a fault.
<DT><A HREF="org/apache/axis/SimpleChain.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>Notify the handlers in this chain because some handler
 later on has faulted - in reverse order.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/DebugHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/DebugHandler.html" title="class in org.apache.axis.handlers">DebugHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JAXRPCHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JAXRPCHandler.html" title="class in org.apache.axis.handlers">JAXRPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/LogHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/LogHandler.html" title="class in org.apache.axis.handlers">LogHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html#onFault(org.apache.axis.MessageContext)"><B>onFault(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthorizationHandler</A>
<DD>Nothing to undo
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#onMessage(javax.jms.Message)"><B>onMessage(Message)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>This method is called asynchronously whenever a message arrives.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html#onShutdown()"><B>onShutdown()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.AsyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.AsyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html#onShutdown()"><B>onShutdown()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>onStartChild is called on each child element.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>onStartChild is called on each child element.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>onStartChild is called on each child element.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Deserializer interface called on each child element encountered in
 the XML stream.
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializer</A>
<DD>Deserializer interface called on each child element encountered in
 the XML stream.
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>onStartChild is called on each child element.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>There should not be nested elements, so thow and exception if this occurs.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>There should not be nested elements, so thow and exception if this occurs.
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>onStartChild is called on each child element.
<DT><A HREF="org/apache/axis/message/BodyBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeHandler.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeHandler.html" title="class in org.apache.axis.message">EnvelopeHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/HeaderBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message">HeaderBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHandler.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>Register the start of a parameter (child element of the method call
 element).
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message">SOAPFaultReasonBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#onStartChild(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartChild(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>This method is invoked after startElement when the element requires
 deserialization (i.e.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>This method is invoked after startElement when the element requires
 deserialization (i.e.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>This method is invoked after startElement when the element requires
 deserialization (i.e.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Set the bean properties that correspond to element attributes.
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>This method is invoked after startElement when the element requires
 deserialization (i.e.
<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html" title="class in org.apache.axis.encoding.ser">QNameDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>Set the bean properties that correspond to element attributes.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>Set the bean properties that correspond to element attributes.
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>This method is invoked after startElement when the element requires
 deserialization (i.e.
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html#onStartElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>onStartElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#onlyLiteralReference"><B>onlyLiteralReference</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field onlyLiteralReference
<DT><A HREF="org/apache/axis/transport/java/Handler.html#openConnection(java.net.URL)"><B>openConnection(URL)</B></A> - 
Method in class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/Handler.html" title="class in org.apache.axis.transport.java">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/Handler.html#openConnection(java.net.URL)"><B>openConnection(URL)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Handler.html" title="class in org.apache.axis.transport.jms">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/Handler.html#openConnection(java.net.URL)"><B>openConnection(URL)</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/Handler.html" title="class in org.apache.axis.transport.local">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/Handler.html#openConnection(java.net.URL)"><B>openConnection(URL)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/Handler.html" title="class in org.apache.axis.transport.mail">Handler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#options"><B>options</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#options"><B>options</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Define the understood options.
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#options"><B>options</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Define the understood options.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#options"><B>options</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field options
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#orderedParts"><B>orderedParts</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#orderedParts"><B>orderedParts</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field orderedParts
<DT><A HREF="org/apache/axis/package-summary.html"><B>org.apache.axis</B></A> - package org.apache.axis<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/package-summary.html"><B>org.apache.axis.attachments</B></A> - package org.apache.axis.attachments<DD>&nbsp;<DT><A HREF="org/apache/axis/client/package-summary.html"><B>org.apache.axis.client</B></A> - package org.apache.axis.client<DD>&nbsp;<DT><A HREF="org/apache/axis/client/async/package-summary.html"><B>org.apache.axis.client.async</B></A> - package org.apache.axis.client.async<DD>&nbsp;<DT><A HREF="org/apache/axis/collections/package-summary.html"><B>org.apache.axis.collections</B></A> - package org.apache.axis.collections<DD>&nbsp;<DT><A HREF="org/apache/axis/components/compiler/package-summary.html"><B>org.apache.axis.components.compiler</B></A> - package org.apache.axis.components.compiler<DD>&nbsp;<DT><A HREF="org/apache/axis/components/encoding/package-summary.html"><B>org.apache.axis.components.encoding</B></A> - package org.apache.axis.components.encoding<DD>&nbsp;<DT><A HREF="org/apache/axis/components/image/package-summary.html"><B>org.apache.axis.components.image</B></A> - package org.apache.axis.components.image<DD>&nbsp;<DT><A HREF="org/apache/axis/components/jms/package-summary.html"><B>org.apache.axis.components.jms</B></A> - package org.apache.axis.components.jms<DD>&nbsp;<DT><A HREF="org/apache/axis/components/logger/package-summary.html"><B>org.apache.axis.components.logger</B></A> - package org.apache.axis.components.logger<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/package-summary.html"><B>org.apache.axis.components.net</B></A> - package org.apache.axis.components.net<DD>&nbsp;<DT><A HREF="org/apache/axis/components/script/package-summary.html"><B>org.apache.axis.components.script</B></A> - package org.apache.axis.components.script<DD>&nbsp;<DT><A HREF="org/apache/axis/components/threadpool/package-summary.html"><B>org.apache.axis.components.threadpool</B></A> - package org.apache.axis.components.threadpool<DD>&nbsp;<DT><A HREF="org/apache/axis/components/uuid/package-summary.html"><B>org.apache.axis.components.uuid</B></A> - package org.apache.axis.components.uuid<DD>&nbsp;<DT><A HREF="org/apache/axis/configuration/package-summary.html"><B>org.apache.axis.configuration</B></A> - package org.apache.axis.configuration<DD>&nbsp;<DT><A HREF="org/apache/axis/constants/package-summary.html"><B>org.apache.axis.constants</B></A> - package org.apache.axis.constants<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/package-summary.html"><B>org.apache.axis.deployment.wsdd</B></A> - package org.apache.axis.deployment.wsdd<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/providers/package-summary.html"><B>org.apache.axis.deployment.wsdd.providers</B></A> - package org.apache.axis.deployment.wsdd.providers<DD>&nbsp;<DT><A HREF="org/apache/axis/description/package-summary.html"><B>org.apache.axis.description</B></A> - package org.apache.axis.description<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/package-summary.html"><B>org.apache.axis.encoding</B></A> - package org.apache.axis.encoding<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/package-summary.html"><B>org.apache.axis.encoding.ser</B></A> - package org.apache.axis.encoding.ser<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/castor/package-summary.html"><B>org.apache.axis.encoding.ser.castor</B></A> - package org.apache.axis.encoding.ser.castor<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/xbeans/package-summary.html"><B>org.apache.axis.encoding.ser.xbeans</B></A> - package org.apache.axis.encoding.ser.xbeans<DD>&nbsp;<DT><A HREF="org/apache/axis/enum/package-summary.html"><B>org.apache.axis.enum</B></A> - package org.apache.axis.enum<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/package-summary.html"><B>org.apache.axis.handlers</B></A> - package org.apache.axis.handlers<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/http/package-summary.html"><B>org.apache.axis.handlers.http</B></A> - package org.apache.axis.handlers.http<DD>&nbsp;<DT><A HREF="org/apache/axis/handlers/soap/package-summary.html"><B>org.apache.axis.handlers.soap</B></A> - package org.apache.axis.handlers.soap<DD>&nbsp;<DT><A HREF="org/apache/axis/holders/package-summary.html"><B>org.apache.axis.holders</B></A> - package org.apache.axis.holders<DD>&nbsp;<DT><A HREF="org/apache/axis/i18n/package-summary.html"><B>org.apache.axis.i18n</B></A> - package org.apache.axis.i18n<DD>&nbsp;<DT><A HREF="org/apache/axis/management/package-summary.html"><B>org.apache.axis.management</B></A> - package org.apache.axis.management<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/package-summary.html"><B>org.apache.axis.management.jmx</B></A> - package org.apache.axis.management.jmx<DD>&nbsp;<DT><A HREF="org/apache/axis/message/package-summary.html"><B>org.apache.axis.message</B></A> - package org.apache.axis.message<DD>&nbsp;<DT><A HREF="org/apache/axis/monitor/package-summary.html"><B>org.apache.axis.monitor</B></A> - package org.apache.axis.monitor<DD>&nbsp;<DT><A HREF="org/apache/axis/providers/package-summary.html"><B>org.apache.axis.providers</B></A> - package org.apache.axis.providers<DD>&nbsp;<DT><A HREF="org/apache/axis/providers/java/package-summary.html"><B>org.apache.axis.providers.java</B></A> - package org.apache.axis.providers.java<DD>&nbsp;<DT><A HREF="org/apache/axis/schema/package-summary.html"><B>org.apache.axis.schema</B></A> - package org.apache.axis.schema<DD>&nbsp;<DT><A HREF="org/apache/axis/security/package-summary.html"><B>org.apache.axis.security</B></A> - package org.apache.axis.security<DD>&nbsp;<DT><A HREF="org/apache/axis/security/servlet/package-summary.html"><B>org.apache.axis.security.servlet</B></A> - package org.apache.axis.security.servlet<DD>&nbsp;<DT><A HREF="org/apache/axis/security/simple/package-summary.html"><B>org.apache.axis.security.simple</B></A> - package org.apache.axis.security.simple<DD>&nbsp;<DT><A HREF="org/apache/axis/server/package-summary.html"><B>org.apache.axis.server</B></A> - package org.apache.axis.server<DD>&nbsp;<DT><A HREF="org/apache/axis/session/package-summary.html"><B>org.apache.axis.session</B></A> - package org.apache.axis.session<DD>&nbsp;<DT><A HREF="org/apache/axis/soap/package-summary.html"><B>org.apache.axis.soap</B></A> - package org.apache.axis.soap<DD>&nbsp;<DT><A HREF="org/apache/axis/strategies/package-summary.html"><B>org.apache.axis.strategies</B></A> - package org.apache.axis.strategies<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/package-summary.html"><B>org.apache.axis.transport.http</B></A> - package org.apache.axis.transport.http<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/java/package-summary.html"><B>org.apache.axis.transport.java</B></A> - package org.apache.axis.transport.java<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/package-summary.html"><B>org.apache.axis.transport.jms</B></A> - package org.apache.axis.transport.jms<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/local/package-summary.html"><B>org.apache.axis.transport.local</B></A> - package org.apache.axis.transport.local<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/mail/package-summary.html"><B>org.apache.axis.transport.mail</B></A> - package org.apache.axis.transport.mail<DD>&nbsp;<DT><A HREF="org/apache/axis/types/package-summary.html"><B>org.apache.axis.types</B></A> - package org.apache.axis.types<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/package-summary.html"><B>org.apache.axis.utils</B></A> - package org.apache.axis.utils<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/bytecode/package-summary.html"><B>org.apache.axis.utils.bytecode</B></A> - package org.apache.axis.utils.bytecode<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/cache/package-summary.html"><B>org.apache.axis.utils.cache</B></A> - package org.apache.axis.utils.cache<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/package-summary.html"><B>org.apache.axis.wsdl</B></A> - package org.apache.axis.wsdl<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/fromJava/package-summary.html"><B>org.apache.axis.wsdl.fromJava</B></A> - package org.apache.axis.wsdl.fromJava<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/gen/package-summary.html"><B>org.apache.axis.wsdl.gen</B></A> - package org.apache.axis.wsdl.gen<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/package-summary.html"><B>org.apache.axis.wsdl.symbolTable</B></A> - package org.apache.axis.wsdl.symbolTable<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/toJava/package-summary.html"><B>org.apache.axis.wsdl.toJava</B></A> - package org.apache.axis.wsdl.toJava<DD>&nbsp;<DT><A HREF="org/apache/axis/AxisFault.html#output(org.apache.axis.encoding.SerializationContext)"><B>output(SerializationContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Add this fault and any needed headers to the output context.
<DT><A HREF="org/apache/axis/message/MessageElement.html#output(org.apache.axis.encoding.SerializationContext)"><B>output(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>This is the public output() method, which will always simply use
 the recorded SAX stream for this element if it is available.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#output(org.apache.axis.encoding.SerializationContext)"><B>output(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>print the contents of this node
<DT><A HREF="org/apache/axis/message/InputStreamBody.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/InputStreamBody.html" title="class in org.apache.axis.message">InputStreamBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>override point -output to a serialization context.
<DT><A HREF="org/apache/axis/message/RPCElement.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHeaderParam.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHeaderParam.html" title="class in org.apache.axis.message">RPCHeaderParam</A>
<DD>outputImpl serializes the RPCParam
<DT><A HREF="org/apache/axis/message/RPCParam.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Should make SOAPSerializationException?
<DT><A HREF="org/apache/axis/message/SOAPFault.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#outputImpl(org.apache.axis.encoding.SerializationContext)"><B>outputImpl(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>Subclasses can override
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#outputMultiRefs()"><B>outputMultiRefs()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>The serialize method uses hrefs to reference all non-primitive
 values.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#outputs"><B>outputs</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field outputs
</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#PACKAGE_OPT"><B>PACKAGE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field PACKAGE_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#PACKAGE_OPT"><B>PACKAGE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field PACKAGE_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#PASSWORD_OPT"><B>PASSWORD_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field PASSWORD_OPT
<DT><A HREF="javax/xml/rpc/Call.html#PASSWORD_PROPERTY"><B>PASSWORD_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property: Password for authentication
 
<DT><A HREF="javax/xml/rpc/Stub.html#PASSWORD_PROPERTY"><B>PASSWORD_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Standard property: Password for authentication.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#PERSISTENT_DELIVERY"><B>PERSISTENT_DELIVERY</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#PING_INTERVAL"><B>PING_INTERVAL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_ENABLE_LIST"><B>PLUGIN_ENABLE_LIST</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_ENGINE"><B>PLUGIN_ENGINE</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_EXCEPTION_LOG"><B>PLUGIN_EXCEPTION_LOG</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_IS_DEVELOPMENT"><B>PLUGIN_IS_DEVELOPMENT</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_LOG"><B>PLUGIN_LOG</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_NAME"><B>PLUGIN_NAME</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>AXIS servlet plugin parameter names.
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_SERVICE_NAME"><B>PLUGIN_SERVICE_NAME</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#PLUGIN_WRITER"><B>PLUGIN_WRITER</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#POP3_HOST"><B>POP3_HOST</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#POP3_PASSWORD"><B>POP3_PASSWORD</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#POP3_USERID"><B>POP3_USERID</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#PORTTYPE_NAME_OPT"><B>PORTTYPE_NAME_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field PORTTYPE_NAME_OPT
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#PORT_NAME"><B>PORT_NAME</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field PORT_NAME
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#PREFETCH_COUNT"><B>PREFETCH_COUNT</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for the PTP domain.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#PREFETCH_THRESHOLD"><B>PREFETCH_THRESHOLD</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for the PTP domain.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#PRIORITY"><B>PRIORITY</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/i18n/RB.html#PROPERTY_EXT"><B>PROPERTY_EXT</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/EngineConfiguration.html#PROPERTY_NAME"><B>PROPERTY_NAME</B></A> - 
Static variable in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Property name used for setting an EngineConfiguration to be used
 in creating engines.
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_ATTACHMENT_CLEANUP"><B>PROP_ATTACHMENT_CLEANUP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_ATTACHMENT_DIR"><B>PROP_ATTACHMENT_DIR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_ATTACHMENT_IMPLEMENTATION"><B>PROP_ATTACHMENT_IMPLEMENTATION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_BP10_COMPLIANCE"><B>PROP_BP10_COMPLIANCE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Compliance with WS-I Basic Profile.
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_BYTE_BUFFER_BACKING"><B>PROP_BYTE_BUFFER_BACKING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_BYTE_BUFFER_CACHE_INCREMENT"><B>PROP_BYTE_BUFFER_CACHE_INCREMENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE"><B>PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_BYTE_BUFFER_WORK_BUFFER_SIZE"><B>PROP_BYTE_BUFFER_WORK_BUFFER_SIZE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DEBUG_FILE"><B>PROP_DEBUG_FILE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DEBUG_LEVEL"><B>PROP_DEBUG_LEVEL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DEFAULT_CONFIG_CLASS"><B>PROP_DEFAULT_CONFIG_CLASS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DISABLE_PRETTY_XML"><B>PROP_DISABLE_PRETTY_XML</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DOMULTIREFS"><B>PROP_DOMULTIREFS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_DOTNET_SOAPENC_FIX"><B>PROP_DOTNET_SOAPENC_FIX</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Set this property to 'true' when you want Axis to avoid soap encoded
 types to work around a .NET problem where it wont accept soap encoded
 types for a (soap encoded!) array.
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_EMIT_ALL_TYPES"><B>PROP_EMIT_ALL_TYPES</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION"><B>PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_PASSWORD"><B>PROP_PASSWORD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_SEND_XSI"><B>PROP_SEND_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_SOAP_ALLOWED_VERSION"><B>PROP_SOAP_ALLOWED_VERSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_SOAP_VERSION"><B>PROP_SOAP_VERSION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_SYNC_CONFIG"><B>PROP_SYNC_CONFIG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_TWOD_ARRAY_ENCODING"><B>PROP_TWOD_ARRAY_ENCODING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#PROP_WEBMETHOD"><B>PROP_WEBMETHOD</B></A> - 
Static variable in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>MessageContext property name for webmethod
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_XML_DECL"><B>PROP_XML_DECL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_XML_ENCODING"><B>PROP_XML_ENCODING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#PROP_XML_REUSE_SAX_PARSERS"><B>PROP_XML_REUSE_SAX_PARSERS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#PROTOCOL"><B>PROTOCOL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_BSF"><B>PROVIDER_BSF</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_COM"><B>PROVIDER_COM</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_CORBA"><B>PROVIDER_CORBA</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_EJB"><B>PROVIDER_EJB</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_HANDLER"><B>PROVIDER_HANDLER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_MSG"><B>PROVIDER_MSG</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_RMI"><B>PROVIDER_RMI</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#PROVIDER_RPC"><B>PROVIDER_RPC</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#PROVIDER_URL"><B>PROVIDER_URL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server"><B>ParamList</B></A> - class org.apache.axis.server.<A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server">ParamList</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/server/ParamList.html#ParamList()"><B>ParamList()</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server">ParamList</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/ParamList.html#ParamList(java.util.Collection)"><B>ParamList(Collection)</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server">ParamList</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/ParamList.html#ParamList(int)"><B>ParamList(int)</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server">ParamList</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/ParamList.html#ParamList(int, int)"><B>ParamList(int, int)</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/ParamList.html" title="class in org.apache.axis.server">ParamList</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html" title="class in org.apache.axis.utils.bytecode"><B>ParamNameExtractor</B></A> - class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html" title="class in org.apache.axis.utils.bytecode">ParamNameExtractor</A>.<DD>This class retieves function parameter names from bytecode built with
 debugging symbols.<DT><A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html#ParamNameExtractor()"><B>ParamNameExtractor()</B></A> - 
Constructor for class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamNameExtractor.html" title="class in org.apache.axis.utils.bytecode">ParamNameExtractor</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode"><B>ParamReader</B></A> - class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>.<DD>This is the class file reader for obtaining the parameter names
 for declared methods in a class.<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#ParamReader(java.lang.Class)"><B>ParamReader(Class)</B></A> - 
Constructor for class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>process a class file, given it's class.
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#ParamReader(byte[])"><B>ParamReader(byte[])</B></A> - 
Constructor for class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>process the given class bytes directly.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable"><B>Parameter</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>.<DD>This class simply collects<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#Parameter()"><B>Parameter()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description"><B>ParameterDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>.<DD>A Parameter descriptor, collecting the interesting info about an
 operation parameter.<DT><A HREF="org/apache/axis/description/ParameterDesc.html#ParameterDesc()"><B>ParameterDesc()</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#ParameterDesc(org.apache.axis.description.ParameterDesc)"><B>ParameterDesc(ParameterDesc)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Constructor-copy
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#ParameterDesc(javax.xml.namespace.QName, byte, javax.xml.namespace.QName)"><B>ParameterDesc(QName, byte, QName)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#ParameterDesc(javax.xml.namespace.QName, byte, javax.xml.namespace.QName, java.lang.Class, boolean, boolean)"><B>ParameterDesc(QName, byte, QName, Class, boolean, boolean)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>"Complete" constructor, suitable for usage in skeleton code
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#ParameterDesc(javax.xml.namespace.QName, byte, javax.xml.namespace.QName, java.lang.Class)"><B>ParameterDesc(QName, byte, QName, Class)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;
<DT><A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc"><B>ParameterMode</B></A> - class javax.xml.rpc.<A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>.<DD>The <code>javax.xml.rpc.ParameterMode</code> is a type-safe
 enumeration for parameter mode.<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable"><B>Parameters</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>.<DD>This class simply collects all the parameter or message data for an operation into one place.<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#Parameters()"><B>Parameters()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen"><B>Parser</B></A> - class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>.<DD>This is a class with no documentation.<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#Parser()"><B>Parser()</B></A> - 
Constructor for class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ParserControl.html" title="interface in org.apache.axis.utils"><B>ParserControl</B></A> - interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/ParserControl.html" title="interface in org.apache.axis.utils">ParserControl</A>.<DD>ParserControl is used to control particular behaviour of the parser.<DT><A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis"><B>Part</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>.<DD>A part of a MIME message.<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>PlainTextDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerDeserializer</A>.<DD>text/plain DataHandler Deserializer
 Modified by Russell Butek <butek@us.ibm.com><DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html#PlainTextDataHandlerDeserializer()"><B>PlainTextDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>PlainTextDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerSerializer</A>.<DD>text/plain DataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html#PlainTextDataHandlerSerializer()"><B>PlainTextDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments"><B>PlainTextDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/PlainTextDataSource.html#PlainTextDataSource(java.lang.String, java.lang.String)"><B>PlainTextDataSource(String, String)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/PlainTextDataSource.html" title="class in org.apache.axis.attachments">PlainTextDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>PortEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortEntry</A>.<DD>This class represents the symbol table entry for a WSDL port.<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html#PortEntry(javax.wsdl.Port)"><B>PortEntry(Port)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortEntry</A>
<DD>constructor
<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>PortTypeEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortTypeEntry</A>.<DD>This class represents a WSDL portType.<DT><A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html#PortTypeEntry(javax.wsdl.PortType)"><B>PortTypeEntry(PortType)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/PortTypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">PortTypeEntry</A>
<DD>Construct a PortTypeEntry from a WSDL4J PortType object and a HashMap of Parameters objects,
 keyed off of the operation name.
<DT><A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types"><B>PositiveInteger</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>.<DD>Custom class for supporting primitive XSD data type positiveInteger

 positiveInteger is derived from nonNegativeInteger by setting the value of minInclusive to be 1.<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(byte[])"><B>PositiveInteger(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(int, byte[])"><B>PositiveInteger(int, byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(int, int, java.util.Random)"><B>PositiveInteger(int, int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(int, java.util.Random)"><B>PositiveInteger(int, Random)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(java.lang.String)"><B>PositiveInteger(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#PositiveInteger(java.lang.String, int)"><B>PositiveInteger(String, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types"><B>PositiveInteger.BigIntegerRep</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">PositiveInteger.BigIntegerRep</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html#PositiveInteger.BigIntegerRep(byte[])"><B>PositiveInteger.BigIntegerRep(byte[])</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">PositiveInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/PositiveIntegerHolder.html" title="class in org.apache.axis.holders"><B>PositiveIntegerHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/PositiveIntegerHolder.html" title="class in org.apache.axis.holders">PositiveIntegerHolder</A>.<DD>Class PositiveIntegerHolder<DT><A HREF="org/apache/axis/holders/PositiveIntegerHolder.html#PositiveIntegerHolder()"><B>PositiveIntegerHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/PositiveIntegerHolder.html" title="class in org.apache.axis.holders">PositiveIntegerHolder</A>
<DD>Constructor PositiveIntegerHolder
<DT><A HREF="org/apache/axis/holders/PositiveIntegerHolder.html#PositiveIntegerHolder(org.apache.axis.types.PositiveInteger)"><B>PositiveIntegerHolder(PositiveInteger)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/PositiveIntegerHolder.html" title="class in org.apache.axis.holders">PositiveIntegerHolder</A>
<DD>Constructor PositiveIntegerHolder
<DT><A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message"><B>PrefixedQName</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/PrefixedQName.html#PrefixedQName(java.lang.String, java.lang.String, java.lang.String)"><B>PrefixedQName(String, String, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#PrefixedQName(javax.xml.namespace.QName)"><B>PrefixedQName(QName)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#PrettyDocumentToStream(org.w3c.dom.Document, java.io.OutputStream)"><B>PrettyDocumentToStream(Document, OutputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#PrettyDocumentToString(org.w3c.dom.Document)"><B>PrettyDocumentToString(Document)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#PrettyDocumentToWriter(org.w3c.dom.Document, java.io.Writer)"><B>PrettyDocumentToWriter(Document, Writer)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#PrettyElementToStream(org.w3c.dom.Element, java.io.OutputStream)"><B>PrettyElementToStream(Element, OutputStream)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#PrettyElementToWriter(org.w3c.dom.Element, java.io.Writer)"><B>PrettyElementToWriter(Element, Writer)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n"><B>ProjectResourceBundle</B></A> - class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>.<DD>Wrapper class for resource bundles.<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#packageName"><B>packageName</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Field packageName
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#parameters"><B>parameters</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Our parameters
<DT><A HREF="org/apache/axis/message/NodeImpl.html#parent"><B>parent</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#parentIsAny"><B>parentIsAny</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field parentIsAny
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#parentIsMixed"><B>parentIsMixed</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field parentIsMixed
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#parse()"><B>parse()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Create a parser and parse the inputSource
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#parseByte(byte)"><B>parseByte(byte)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#parseByte(java.lang.Byte)"><B>parseByte(Byte)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#parseClassicStream(java.io.BufferedReader)"><B>parseClassicStream(BufferedReader)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>Parse the compiler error stream to produce a list of
 <code>CompilerError</code>s
<DT><A HREF="org/apache/axis/types/Duration.html#parseDate(java.lang.String)"><B>parseDate(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>This method parses the date portion of a String that represents
 xsd:duration - nYnMnD.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#parseModernStream(java.io.BufferedReader)"><B>parseModernStream(BufferedReader)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>Parse the compiler error stream to produce a list of
 <code>CompilerError</code>s
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#parseOption(org.apache.axis.utils.CLOption)"><B>parseOption(CLOption)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Parse an option
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#parseOption(org.apache.axis.utils.CLOption)"><B>parseOption(CLOption)</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Parse an option
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#parseOption(org.apache.axis.utils.CLOption)"><B>parseOption(CLOption)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Parse an option
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#parseSchema(java.io.InputStream)"><B>parseSchema(InputStream)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#parseStream(java.io.BufferedReader)"><B>parseStream(BufferedReader)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Parse the compiler error stream to produce a list of
 <code>CompilerError</code>s
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#parseStream(java.io.BufferedReader)"><B>parseStream(BufferedReader)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>Parse the compiler error stream to produce a list of
 <code>CompilerError</code>s
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#parseStream(java.io.BufferedReader)"><B>parseStream(BufferedReader)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>Parse the compiler error stream to produce a list of
 <code>CompilerError</code>s
<DT><A HREF="org/apache/axis/types/Duration.html#parseTime(java.lang.String)"><B>parseTime(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>This method parses the time portion of a String that represents
 xsd:duration - nHnMnS.
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#parseWSDL(java.lang.String)"><B>parseWSDL(String)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#parseWSDL(java.io.File)"><B>parseWSDL(File)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#parseWSDL(java.net.URL)"><B>parseWSDL(URL)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#parseWSDL(java.io.InputStream)"><B>parseWSDL(InputStream)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#parser"><B>parser</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field parser
<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html#parts"><B>parts</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#parts"><B>parts</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#parts"><B>parts</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field parts
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#password"><B>password</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field password
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#peek()"><B>peek()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>Just like read except byte is not removed from the buffer.
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#pivotHandler"><B>pivotHandler</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/NSStack.html#pop()"><B>pop()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Remove the top frame from the stack.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#popElementHandler()"><B>popElementHandler()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#populate(java.lang.String)"><B>populate(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Call this method if you have a uri for the WSDL document
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#populate(java.lang.String, java.lang.String, java.lang.String)"><B>populate(String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Method populate
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#populate(java.lang.String, org.w3c.dom.Document)"><B>populate(String, Document)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Call this method if your WSDL document has already been parsed as an XML DOM document.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#populateTypes(java.net.URL, org.w3c.dom.Document)"><B>populateTypes(URL, Document)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Populate the symbol table with all of the Types from the Document.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#portType"><B>portType</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Field portType
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#postSetGenerators()"><B>postSetGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Set the writer based on the other condition after generate() is called.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#postSetGenerators()"><B>postSetGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Set the writer based on the other condition after generate() is called.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#prefix"><B>prefix</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFault.html#prefix"><B>prefix</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#preprocess()"><B>preprocess()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Builds the names String vector.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#prettyDocumentToFile(org.w3c.dom.Document, java.lang.String)"><B>prettyDocumentToFile(Document, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Write a prettified document to a file.
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#prevQName"><B>prevQName</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(boolean)"><B>print(boolean)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(char)"><B>print(char)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(int)"><B>print(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(long)"><B>print(long)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(float)"><B>print(float)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(double)"><B>print(double)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(char[])"><B>print(char[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(java.lang.String)"><B>print(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#print(java.lang.Object)"><B>print(Object)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#printStackTrace(java.io.PrintStream)"><B>printStackTrace(PrintStream)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>The override of the base class method prints out the
 fault info before the stack trace.
<DT><A HREF="org/apache/axis/AxisFault.html#printStackTrace(java.io.PrintWriter)"><B>printStackTrace(PrintWriter)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>The override of the base class method prints out the
 fault info before the stack trace.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#printUsage()"><B>printUsage()</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#printUsage()"><B>printUsage()</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>printUsage
 print usage information and quit.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#printUsage()"><B>printUsage()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>printUsage
 print usage information and quit.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#printarry(byte[], int, int)"><B>printarry(byte[], int, int)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Method printarry
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println()"><B>println()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(boolean)"><B>println(boolean)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(char)"><B>println(char)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(int)"><B>println(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(long)"><B>println(long)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(float)"><B>println(float)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(double)"><B>println(double)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(char[])"><B>println(char[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(java.lang.String)"><B>println(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#println(java.lang.Object)"><B>println(Object)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#privateElementToWriter(org.w3c.dom.Element, java.io.Writer, boolean, boolean)"><B>privateElementToWriter(Element, Writer, boolean, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(java.lang.String[])"><B>process(String[])</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>Processes a set of administration commands.
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(java.io.InputStream)"><B>process(InputStream)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(java.net.URL)"><B>process(URL)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(java.lang.String)"><B>process(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>process an XML file containing a pre-prepared admin message
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(org.apache.axis.utils.Options, java.lang.String)"><B>process(Options, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#process(org.apache.axis.utils.Options, java.io.InputStream)"><B>process(Options, InputStream)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>submit the input stream's contents to the endpoint, return the results as a string.
<DT><A HREF="org/apache/axis/utils/Admin.html#process(org.apache.axis.MessageContext, org.w3c.dom.Element)"><B>process(MessageContext, Element)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>The meat of the Admin service.
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#processAxisFault(org.apache.axis.AxisFault)"><B>processAxisFault(AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>routine called whenever an axis fault is caught; where they
 are logged and any other business.
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#processAxisFault(org.apache.axis.AxisFault)"><B>processAxisFault(AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>routine called whenever an axis fault is caught; where they
 are logged and any other business.
<DT><A HREF="org/apache/axis/providers/java/JavaProvider.html#processMessage(org.apache.axis.MessageContext, org.apache.axis.message.SOAPEnvelope, org.apache.axis.message.SOAPEnvelope, java.lang.Object)"><B>processMessage(MessageContext, SOAPEnvelope, SOAPEnvelope, Object)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/JavaProvider.html" title="class in org.apache.axis.providers.java">JavaProvider</A>
<DD>Process the current message.
<DT><A HREF="org/apache/axis/providers/java/MsgProvider.html#processMessage(org.apache.axis.MessageContext, org.apache.axis.message.SOAPEnvelope, org.apache.axis.message.SOAPEnvelope, java.lang.Object)"><B>processMessage(MessageContext, SOAPEnvelope, SOAPEnvelope, Object)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/MsgProvider.html" title="class in org.apache.axis.providers.java">MsgProvider</A>
<DD>Process the message.
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#processMessage(org.apache.axis.MessageContext, org.apache.axis.message.SOAPEnvelope, org.apache.axis.message.SOAPEnvelope, java.lang.Object)"><B>processMessage(MessageContext, SOAPEnvelope, SOAPEnvelope, Object)</B></A> - 
Method in class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>Process the current message.
<DT><A HREF="org/apache/axis/client/AdminClient.html#processOpts(org.apache.axis.utils.Options)"><B>processOpts(Options)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>go from the (parsed) command line to setting properties on our call object.
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#processPropertyDescriptors(java.beans.PropertyDescriptor[], java.lang.Class)"><B>processPropertyDescriptors(PropertyDescriptor[], Class)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>This method attempts to sort the property descriptors using
 the typeDesc and order defined in the class.
<DT><A HREF="org/apache/axis/utils/BeanUtils.html#processPropertyDescriptors(java.beans.PropertyDescriptor[], java.lang.Class, org.apache.axis.description.TypeDesc)"><B>processPropertyDescriptors(PropertyDescriptor[], Class, TypeDesc)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanUtils.html" title="class in org.apache.axis.utils">BeanUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/LRUMap.html#processRemovedLRU(java.lang.Object, java.lang.Object)"><B>processRemovedLRU(Object, Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Subclasses of LRUMap may hook into this method to
 provide specialized actions whenever an Object is
 automatically removed from the cache.
<DT><A HREF="org/apache/axis/client/Transport.html#processReturnedMessageContext(org.apache.axis.MessageContext)"><B>processReturnedMessageContext(MessageContext)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Allow the transport to grab any transport-specific stuff it might
 want from a returned MessageContext
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#processReturnedMessageContext(org.apache.axis.MessageContext)"><B>processReturnedMessageContext(MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#processTypes()"><B>processTypes()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Admin.html#processWSDD(org.apache.axis.MessageContext, org.apache.axis.AxisEngine, org.w3c.dom.Element)"><B>processWSDD(MessageContext, AxisEngine, Element)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Admin.html" title="class in org.apache.axis.utils">Admin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#processed"><B>processed</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#processingInstruction(java.lang.String, java.lang.String)"><B>processingInstruction(String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#processingInstruction(java.lang.String, java.lang.String)"><B>processingInstruction(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#projectName"><B>projectName</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#properties"><B>properties</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field properties - defines a set of general purpose properties
 that can be used by custom JavaGeneratorFactories.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#propertyDescriptor"><B>propertyDescriptor</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html#propertyDescriptor"><B>propertyDescriptor</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#propertyMap"><B>propertyMap</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html#propertyMap"><B>propertyMap</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#propertyNames()"><B>propertyNames()</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#proxyHost"><B>proxyHost</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#proxyPassword"><B>proxyPassword</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#proxyPort"><B>proxyPort</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html#proxyUser"><B>proxyUser</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/DefaultHTTPTransportClientProperties.html" title="class in org.apache.axis.components.net">DefaultHTTPTransportClientProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#publishContents(org.xml.sax.ContentHandler)"><B>publishContents(ContentHandler)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>replay the sax events to a SAX content handles
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html#publishMessage(java.lang.Long, java.lang.Integer, java.lang.String, java.lang.String)"><B>publishMessage(Long, Integer, String, String)</B></A> - 
Static method in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>
<DD>Publish a SOAP message to listeners
<DT><A HREF="org/apache/axis/message/MessageElement.html#publishToHandler(org.xml.sax.ContentHandler)"><B>publishToHandler(ContentHandler)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>replay the sax events to a handler
<DT><A HREF="org/apache/axis/utils/NSStack.html#push()"><B>push()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Create a new frame at the top of the stack.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#pushElementHandler(org.apache.axis.message.SOAPHandler)"><B>pushElementHandler(SOAPHandler)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Management of sub-handlers (deserializers)
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#pushNewElement(org.apache.axis.message.MessageElement)"><B>pushNewElement(MessageElement)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Push the MessageElement into the recorder
<DT><A HREF="org/apache/axis/collections/LRUMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Removes the key and its Object from the Map.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.put(Object, Object)</CODE>.
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#put(java.lang.Object, java.lang.Object, boolean)"><B>put(Object, Object, boolean)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>New version of the put() method that allows for explicitly marking
 items added to the hashtable as locked.
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Overrides the Hashtable.put() method to mark items as not being locked.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#put(java.lang.Object, java.lang.Object, java.lang.String)"><B>put(Object, Object, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>adds an entry to the packagename/namespace HashMap.
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#put(java.lang.Object, java.lang.Object)"><B>put(Object, Object)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Adds all the mappings in the specified map to this map, replacing any
  mappings that already exist (as per <CODE>Map.putAll(Map)</CODE>).
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>adds an entry to the packagename/namespace HashMap
 for each of the entry in the map.
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#putAll(java.util.Map)"><B>putAll(Map)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Like HashMap's putAll, this adds the given map's contents to this map.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#putAllPrefix(java.util.Map)"><B>putAllPrefix(Map)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>adds an entry to the namespace / prefix HashMap
 for each of the entry in the map.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html#putPrefix(java.lang.String, java.lang.String)"><B>putPrefix(String, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Namespaces.html" title="class in org.apache.axis.wsdl.fromJava">Namespaces</A>
<DD>put the gine namespace / prefix into the appropriate HashMap
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#pw"><B>pw</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field pw
</DL>
<HR>
<A NAME="_Q_"><!-- --></A><H2>
<B>Q</B></H2>
<DL>
<DT><A HREF="org/apache/axis/Constants.html#QNAMES_NIL"><B>QNAMES_NIL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_ARRAYMAPPING"><B>QNAME_ARRAYMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_BEANMAPPING"><B>QNAME_BEANMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_BSF_PROVIDER"><B>QNAME_BSF_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_CHAIN"><B>QNAME_CHAIN</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_COM_PROVIDER"><B>QNAME_COM_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_CORBA_PROVIDER"><B>QNAME_CORBA_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_DEPLOY"><B>QNAME_DEPLOY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_DOC"><B>QNAME_DOC</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_EJB_PROVIDER"><B>QNAME_EJB_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_ELEMENTMAPPING"><B>QNAME_ELEMENTMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_ENDPOINTURL"><B>QNAME_ENDPOINTURL</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_FAULT"><B>QNAME_FAULT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTACTOR"><B>QNAME_FAULTACTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTCODE"><B>QNAME_FAULTCODE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTCODE_SOAP12"><B>QNAME_FAULTCODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAILS"><B>QNAME_FAULTDETAILS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_EXCEPTIONNAME"><B>QNAME_FAULTDETAIL_EXCEPTIONNAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>QName of exception Name element in an axis fault detail.
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_HOSTNAME"><B>QNAME_FAULTDETAIL_HOSTNAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>QName of a hostname in an axis fault detail.
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_HTTPERRORCODE"><B>QNAME_FAULTDETAIL_HTTPERRORCODE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>QName of stack trace element in an axis fault detail.
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_NESTEDFAULT"><B>QNAME_FAULTDETAIL_NESTEDFAULT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>QName of a nested fault in an axis fault detail.
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_RUNTIMEEXCEPTION"><B>QNAME_FAULTDETAIL_RUNTIMEEXCEPTION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Flag set if this was a runtime exception, rather than something thrown by the class at the end of the
 chain.
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_SOAP12"><B>QNAME_FAULTDETAIL_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTDETAIL_STACKTRACE"><B>QNAME_FAULTDETAIL_STACKTRACE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>QName of stack trace element in an axis fault detail.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_FAULTFLOW"><B>QNAME_FAULTFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTNODE_SOAP12"><B>QNAME_FAULTNODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTREASON_SOAP12"><B>QNAME_FAULTREASON_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTROLE_SOAP12"><B>QNAME_FAULTROLE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTSTRING"><B>QNAME_FAULTSTRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTSUBCODE_SOAP12"><B>QNAME_FAULTSUBCODE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_FAULTVALUE_SOAP12"><B>QNAME_FAULTVALUE_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_GLOBAL"><B>QNAME_GLOBAL</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_HANDLER"><B>QNAME_HANDLER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_HANDLER_PROVIDER"><B>QNAME_HANDLER_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAVAMSG_PROVIDER"><B>QNAME_JAVAMSG_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAVARPC_PROVIDER"><B>QNAME_JAVARPC_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAXRPC_HANDLERINFO"><B>QNAME_JAXRPC_HANDLERINFO</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAXRPC_HANDLERINFOCHAIN"><B>QNAME_JAXRPC_HANDLERINFOCHAIN</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAXRPC_HEADER"><B>QNAME_JAXRPC_HEADER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_JAXRPC_ROLE"><B>QNAME_JAXRPC_ROLE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_LITERAL_ITEM"><B>QNAME_LITERAL_ITEM</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_NAMESPACE"><B>QNAME_NAMESPACE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html#QNAME_NIL"><B>QNAME_NIL</B></A> - 
Static variable in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html#QNAME_NIL"><B>QNAME_NIL</B></A> - 
Static variable in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html#QNAME_NIL"><B>QNAME_NIL</B></A> - 
Static variable in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_NOTUNDERSTOOD"><B>QNAME_NOTUNDERSTOOD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_NO_SERVICE_FAULT_CODE"><B>QNAME_NO_SERVICE_FAULT_CODE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>The no-service fault value.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_OPERATION"><B>QNAME_OPERATION</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_PARAM"><B>QNAME_PARAM</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_REQFLOW"><B>QNAME_REQFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_RESPFLOW"><B>QNAME_RESPFLOW</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_RMI_PROVIDER"><B>QNAME_RMI_PROVIDER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_RPC_RESULT"><B>QNAME_RPC_RESULT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_SERVICE"><B>QNAME_SERVICE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#QNAME_TEXT_SOAP12"><B>QNAME_TEXT_SOAP12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_TRANSPORT"><B>QNAME_TRANSPORT</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_TYPEMAPPING"><B>QNAME_TYPEMAPPING</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_UNDEPLOY"><B>QNAME_UNDEPLOY</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#QNAME_WSDLFILE"><B>QNAME_WSDLFILE</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace"><B>QName</B></A> - class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>.<DD><code>QName</code> class represents the value of a qualified name
 as specified in <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML
 Schema Part2: Datatypes specification</a>.<DT><A HREF="javax/xml/namespace/QName.html#QName(java.lang.String)"><B>QName(String)</B></A> - 
Constructor for class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Constructor for the QName.
<DT><A HREF="javax/xml/namespace/QName.html#QName(java.lang.String, java.lang.String)"><B>QName(String, String)</B></A> - 
Constructor for class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Constructor for the QName.
<DT><A HREF="javax/xml/namespace/QName.html#QName(java.lang.String, java.lang.String, java.lang.String)"><B>QName(String, String, String)</B></A> - 
Constructor for class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Constructor for the QName.
<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>QNameDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html" title="class in org.apache.axis.encoding.ser">QNameDeserializer</A>.<DD>The DateSerializer deserializes a Date.<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html#QNameDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>QNameDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializer.html" title="class in org.apache.axis.encoding.ser">QNameDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and 
 javaType
<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>QNameDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">QNameDeserializerFactory</A>.<DD>A QNameDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/QNameDeserializerFactory.html#QNameDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>QNameDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">QNameDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/QNameHolder.html" title="class in javax.xml.rpc.holders"><B>QNameHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/QNameHolder.html" title="class in javax.xml.rpc.holders">QNameHolder</A>.<DD>Holder for <code>QName</code>s.<DT><A HREF="javax/xml/rpc/holders/QNameHolder.html#QNameHolder()"><B>QNameHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/QNameHolder.html" title="class in javax.xml.rpc.holders">QNameHolder</A>
<DD>Make a new <code>QNameHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/QNameHolder.html#QNameHolder(javax.xml.namespace.QName)"><B>QNameHolder(QName)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/QNameHolder.html" title="class in javax.xml.rpc.holders">QNameHolder</A>
<DD>Make a new <code>QNameHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser"><B>QNameSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>.<DD>Serializer for QNames.<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#QNameSerializer()"><B>QNameSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>QNameSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializerFactory.html" title="class in org.apache.axis.encoding.ser">QNameSerializerFactory</A>.<DD>SerializerFactory for QName primitive<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializerFactory.html#QNameSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>QNameSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializerFactory.html" title="class in org.apache.axis.encoding.ser">QNameSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/QSHandler.html" title="interface in org.apache.axis.transport.http"><B>QSHandler</B></A> - interface org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSHandler.html" title="interface in org.apache.axis.transport.http">QSHandler</A>.<DD>The QSHandler interface defines an interface for classes that handle the
 actions necessary when a particular query string is encountered in an AXIS
 servlet invocation.<DT><A HREF="org/apache/axis/transport/http/QSListHandler.html" title="class in org.apache.axis.transport.http"><B>QSListHandler</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSListHandler.html" title="class in org.apache.axis.transport.http">QSListHandler</A>.<DD>The QSListHandler class is a handler which lists the AXIS Server's
 configuration when the query string "list" is encountered in an AXIS servlet
 invocation.<DT><A HREF="org/apache/axis/transport/http/QSListHandler.html#QSListHandler()"><B>QSListHandler()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSListHandler.html" title="class in org.apache.axis.transport.http">QSListHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/QSMethodHandler.html" title="class in org.apache.axis.transport.http"><B>QSMethodHandler</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSMethodHandler.html" title="class in org.apache.axis.transport.http">QSMethodHandler</A>.<DD>The QSMethodHandler class is a handler which executes a given method from an
 an AXIS service's WSDL definition when the query string "method" is
 encountered in an AXIS servlet invocation.<DT><A HREF="org/apache/axis/transport/http/QSMethodHandler.html#QSMethodHandler()"><B>QSMethodHandler()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSMethodHandler.html" title="class in org.apache.axis.transport.http">QSMethodHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http"><B>QSWSDLHandler</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>.<DD>The QSWSDLHandler class is a handler which provides an AXIS service's WSDL
 document when the query string "wsdl" (ignoring case) is encountered in an
 AXIS servlet invocation.<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#QSWSDLHandler()"><B>QSWSDLHandler()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#QUIET_OPT"><B>QUIET_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Filed quiet
<DT><A HREF="org/apache/axis/MessageContext.html#QUIT_REQUESTED"><B>QUIT_REQUESTED</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Has a quit been requested? Hackish...
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#QUOTE"><B>QUOTE</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms"><B>QueueConnector</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>.<DD>QueueConnector is a concrete JMSConnector subclass that specifically handles
   connections to queues (ptp domain).<DT><A HREF="org/apache/axis/transport/jms/QueueConnector.html#QueueConnector(javax.jms.ConnectionFactory, int, int, long, long, long, boolean, java.lang.String, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter, org.apache.axis.transport.jms.JMSURLHelper)"><B>QueueConnector(ConnectionFactory, int, int, long, long, long, boolean, String, String, String, JMSVendorAdapter, JMSURLHelper)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/QueueConnector.html" title="class in org.apache.axis.transport.jms">QueueConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html#qName2String(javax.xml.namespace.QName)"><B>qName2String(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding">AttributeSerializationContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#qName2String(javax.xml.namespace.QName, boolean)"><B>qName2String(QName, boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convert QName to a string of the form <prefix>:<localpart>
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#qName2String(javax.xml.namespace.QName)"><B>qName2String(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#qName2String(javax.xml.namespace.QName, org.apache.axis.encoding.SerializationContext)"><B>qName2String(QName, SerializationContext)</B></A> - 
Static method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#qNameAttrs"><B>qNameAttrs</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#qname"><B>qname</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Our name
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#qname"><B>qname</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#qname"><B>qname</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Field qname
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#quiet"><B>quiet</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field quiet
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#quiet"><B>quiet</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Field quiet
<DT><A HREF="org/apache/axis/client/AdminClient.html#quit(org.apache.axis.utils.Options)"><B>quit(Options)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>process the command line ops, then send a quit command
<DT><A HREF="org/apache/axis/client/AdminClient.html#quit()"><B>quit()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>make a quit command
</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n"><B>RB</B></A> - class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>.<DD>CURRENTLY NOT USED
 KEEPING FOR REFERENCE  9/19/2002
 
 <DT><A HREF="org/apache/axis/i18n/RB.html#RB(java.lang.String)"><B>RB(String)</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Construct a new RB
<DT><A HREF="org/apache/axis/i18n/RB.html#RB(java.lang.Object, java.lang.String)"><B>RB(Object, String)</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Construct a new RB
<DT><A HREF="org/apache/axis/i18n/RB.html#RB(java.lang.Object, java.lang.String, java.util.Locale)"><B>RB(Object, String, Locale)</B></A> - 
Constructor for class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>Construct a new RB
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#READ_ALL"><B>READ_ALL</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#READ_ALL"><B>READ_ALL</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field READ_ALL
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#READ_CHUNK_SZ"><B>READ_CHUNK_SZ</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field READ_CHUNK_SZ
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#RECEIVE_ACTION"><B>RECEIVE_ACTION</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#RECONNECT_INTERVAL"><B>RECONNECT_INTERVAL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#RECONNECT_TIMEOUT"><B>RECONNECT_TIMEOUT</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#REMOTE_SERVICE"><B>REMOTE_SERVICE</B></A> - 
Static variable in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#REQUEST"><B>REQUEST</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Message is a request.
<DT><A HREF="org/apache/axis/constants/Scope.html#REQUEST"><B>REQUEST</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#REQUEST_HEADERS"><B>REQUEST_HEADERS</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#REQUEST_STR"><B>REQUEST_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html#RESERVED_PROPERTY_NAMES"><B>RESERVED_PROPERTY_NAMES</B></A> - 
Static variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanFaultWriter</A>
<DD>All server specific exception classes have <CODE>Throwable</CODE> as an
 indirect superclass.
<DT><A HREF="org/apache/axis/Message.html#RESPONSE"><B>RESPONSE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Message is a a response.
<DT><A HREF="org/apache/axis/transport/http/HTTPConstants.html#RESPONSE_HEADERS"><B>RESPONSE_HEADERS</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPConstants.html" title="class in org.apache.axis.transport.http">HTTPConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java"><B>RMIProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>.<DD>A basic RMI Provider<DT><A HREF="org/apache/axis/providers/java/RMIProvider.html#RMIProvider()"><B>RMIProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RMIProvider.html" title="class in org.apache.axis.providers.java">RMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#ROOT_UNDEPLOY"><B>ROOT_UNDEPLOY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>root element of the undeploy request
<DT><A HREF="org/apache/axis/constants/Style.html#RPC"><B>RPC</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message"><B>RPCElement</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/RPCElement.html#RPCElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext, org.apache.axis.description.OperationDesc[])"><B>RPCElement(String, String, String, Attributes, DeserializationContext, OperationDesc[])</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html#RPCElement(java.lang.String, java.lang.String, java.lang.Object[])"><B>RPCElement(String, String, Object[])</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html#RPCElement(java.lang.String)"><B>RPCElement(String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message"><B>RPCHandler</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>.<DD>This is the SOAPHandler which is called for each RPC parameter as we're
 deserializing the XML for a method call or return.<DT><A HREF="org/apache/axis/message/RPCHandler.html#RPCHandler(org.apache.axis.message.RPCElement, boolean)"><B>RPCHandler(RPCElement, boolean)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHeaderParam.html" title="class in org.apache.axis.message"><B>RPCHeaderParam</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHeaderParam.html" title="class in org.apache.axis.message">RPCHeaderParam</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/RPCHeaderParam.html#RPCHeaderParam(org.apache.axis.message.RPCParam)"><B>RPCHeaderParam(RPCParam)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHeaderParam.html" title="class in org.apache.axis.message">RPCHeaderParam</A>
<DD>Create a SOAPHeaderElement that is represented by an RPCParam
<DT><A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message"><B>RPCParam</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>.<DD>An RPC parameter<DT><A HREF="org/apache/axis/message/RPCParam.html#RPCParam(java.lang.String, java.lang.Object)"><B>RPCParam(String, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>Constructor for building up messages.
<DT><A HREF="org/apache/axis/message/RPCParam.html#RPCParam(javax.xml.namespace.QName, java.lang.Object)"><B>RPCParam(QName, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParam.html#RPCParam(java.lang.String, java.lang.String, java.lang.Object)"><B>RPCParam(String, String, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParamTarget.html" title="class in org.apache.axis.message"><B>RPCParamTarget</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParamTarget.html" title="class in org.apache.axis.message">RPCParamTarget</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/RPCParamTarget.html#RPCParamTarget(org.apache.axis.message.RPCParam)"><B>RPCParamTarget(RPCParam)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParamTarget.html" title="class in org.apache.axis.message">RPCParamTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java"><B>RPCProvider</B></A> - class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>.<DD>Implement message processing by walking over RPCElements of the
 envelope body, invoking the appropriate methods on the service object.<DT><A HREF="org/apache/axis/providers/java/RPCProvider.html#RPCProvider()"><B>RPCProvider()</B></A> - 
Constructor for class org.apache.axis.providers.java.<A HREF="org/apache/axis/providers/java/RPCProvider.html" title="class in org.apache.axis.providers.java">RPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#RPC_STR"><B>RPC_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management"><B>Registrar</B></A> - class org.apache.axis.management.<A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management">Registrar</A>.<DD>class to act as a dynamic loading registrar to commons-modeler, so
 as to autoregister stuff<DT><A HREF="org/apache/axis/management/Registrar.html#Registrar()"><B>Registrar()</B></A> - 
Constructor for class org.apache.axis.management.<A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management">Registrar</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#random"><B>random</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>A random number generator to use when generating session identifiers.
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#randomClass"><B>randomClass</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>The Java class name of the random number generator class to be used
 when generating session identifiers.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Read from the boundary delimited stream.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Read from the boundary delimited stream.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Read from the boundary delimited stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Read from the DIME stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Read from the delimited stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>Read from the boundary delimited stream.
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#read()"><B>read()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>Read a byte from the input stream, blocking if necessary.
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#read(byte[])"><B>read(byte[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>Read bytes from the input stream.
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#read(byte[], int, int)"><B>read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>Read a specified number of bytes from the input stream.
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#readAll()"><B>readAll()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#readAll()"><B>readAll()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Read all data.
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#readAttributes()"><B>readAttributes()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>read an attributes array.
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#readCode()"><B>readCode()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>read a code attribute
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#readCode()"><B>readCode()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#readCpool()"><B>readCpool()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/LRUMap.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Deserializes this map from the given stream.
<DT><A HREF="org/apache/axis/message/MimeHeaders.html#readExternal(java.io.ObjectInput)"><B>readExternal(ObjectInput)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message">MimeHeaders</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/IOUtils.html#readFully(java.io.InputStream, byte[])"><B>readFully(InputStream, byte[])</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IOUtils.html" title="class in org.apache.axis.utils">IOUtils</A>
<DD>Read into a byte array; tries to ensure that the the
 full buffer is read.
<DT><A HREF="org/apache/axis/utils/IOUtils.html#readFully(java.io.InputStream, byte[], int, int)"><B>readFully(InputStream, byte[], int, int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IOUtils.html" title="class in org.apache.axis.utils">IOUtils</A>
<DD>Same as the normal <tt>in.read(b, off, len)</tt>, but tries to ensure that
 the entire len number of bytes is read.
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#readInt()"><B>readInt()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ParamReader.html#readLocalVariableTable()"><B>readLocalVariableTable()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ParamReader.html" title="class in org.apache.axis.utils.bytecode">ParamReader</A>
<DD>this is invoked when a LocalVariableTable attribute is encountered.
<DT><A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NegativeInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonNegativeInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">NonPositiveInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html#readResolve()"><B>readResolve()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.BigIntegerRep.html" title="class in org.apache.axis.types">PositiveInteger.BigIntegerRep</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#readShort()"><B>readShort()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#readTillFound(java.lang.String[])"><B>readTillFound(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>This will read streams in till the one that is needed is found.
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#readTillFound(java.lang.String[])"><B>readTillFound(String[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>This will read streams in till the one that is needed is found.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#readers"><B>readers</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Field readers
<DT><A HREF="org/apache/axis/message/MessageElement.html#recorder"><B>recorder</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/Node.html#recycleNode()"><B>recycleNode()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>Notifies the implementation that this <code>Node</code>
 object is no longer being used by the application and that the
 implementation is free to reuse this object for nodes that may
 be created later.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#recycleNode()"><B>recycleNode()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Notifies the implementation that this <code>Node</code>
 object is no longer being used by the application and that the
 implementation is free to reuse this object for nodes that may
 be created later.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#ref"><B>ref</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#refType"><B>refType</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field refType
<DT><A HREF="org/apache/axis/AxisEngine.html#refreshGlobalOptions()"><B>refreshGlobalOptions()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>(Re-)load the global options from the registry.
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#register(java.lang.Class, javax.xml.namespace.QName, javax.xml.rpc.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>register(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Registers SerializerFactory and DeserializerFactory for a
 specific type mapping between an XML type and Java type.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#register(java.lang.String, javax.xml.rpc.encoding.TypeMapping)"><B>register(String, TypeMapping)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Registers a <code>TypeMapping</code> instance with the
 <code>TypeMappingRegistry</code>.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#register(java.lang.Class, javax.xml.namespace.QName, javax.xml.rpc.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>register(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#register(java.lang.Class, javax.xml.namespace.QName, javax.xml.rpc.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>register(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>always throws an exception
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#register(java.lang.Class, javax.xml.namespace.QName, javax.xml.rpc.encoding.SerializerFactory, javax.xml.rpc.encoding.DeserializerFactory)"><B>register(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Registers SerializerFactory and DeserializerFactory for a
 specific type mapping between an XML type and Java type.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#register(java.lang.String, javax.xml.rpc.encoding.TypeMapping)"><B>register(String, TypeMapping)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>The method register adds a TypeMapping instance for a specific 
 namespace
<DT><A HREF="org/apache/axis/management/Registrar.html#register(java.lang.Object, java.lang.String, java.lang.String)"><B>register(Object, String, String)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/Registrar.html" title="class in org.apache.axis.management">Registrar</A>
<DD>register using reflection.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html#register(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>register(TypeEntry)</B></A> - 
Method in interface org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html" title="interface in org.apache.axis.wsdl.symbolTable">Undefined</A>
<DD>Register referrant TypeEntry so that
 the code can update the TypeEntry when the Undefined Element or Type is defined
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html#register(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>register(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedDelegate</A>
<DD>Register referrant TypeEntry so that
 the code can update the TypeEntry when the Undefined Element or Type is defined
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html#register(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>register(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedElement</A>
<DD>Register referrant TypeEntry so that
 the code can update the TypeEntry when the Undefined Element or Type is defined
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html#register(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>register(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedType</A>
<DD>Register referrant TypeEntry so that
 the code can update the TypeEntry when the Undefined Element or Type is defined
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#registerAndLogResource(java.lang.String)"><B>registerAndLogResource(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>register a single resource; log trouble and success.
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#registerAnythingElse()"><B>registerAnythingElse()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>override point for subclasses to add other registration stuff
<DT><A HREF="org/apache/axis/utils/cache/ClassCache.html#registerClass(java.lang.String, java.lang.Class)"><B>registerClass(String, Class)</B></A> - 
Method in class org.apache.axis.utils.cache.<A HREF="org/apache/axis/utils/cache/ClassCache.html" title="class in org.apache.axis.utils.cache">ClassCache</A>
<DD>Register a class in the cache.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#registerDefault(javax.xml.rpc.encoding.TypeMapping)"><B>registerDefault(TypeMapping)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Registers the <code>TypeMapping</code> instance that is default
 for all encoding styles supported by the
 <code>TypeMappingRegistry</code>.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#registerDefault(javax.xml.rpc.encoding.TypeMapping)"><B>registerDefault(TypeMapping)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>The method register adds a default TypeMapping instance.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#registerElementByID(java.lang.String, org.apache.axis.message.MessageElement)"><B>registerElementByID(String, MessageElement)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Register the MessageElement with this id (where id is id= form without the #)
 This routine is called when the MessageElement with an id is read.
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#registerFile(java.io.File)"><B>registerFile(File)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>register a file
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#registerFile(java.lang.String)"><B>registerFile(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Only register the filename if the bean helper is not wrapped
 within a bean.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#registerFile(java.lang.String)"><B>registerFile(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>You should not need to override this method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#registerFile(java.lang.String)"><B>registerFile(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>You should not need to override this method.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#registerFixup(java.lang.String, org.apache.axis.encoding.Deserializer)"><B>registerFixup(String, Deserializer)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>During deserialization, an element with an href=#id<int>
 may be encountered before the element defining id=id<int> is
 read.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#registerListener(javax.jms.MessageListener)"><B>registerListener(MessageListener)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Register a MessageListener.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#registerListener(javax.jms.MessageListener, java.util.HashMap)"><B>registerListener(MessageListener, HashMap)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Register a MessageListener.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#registerNamespaceForService(java.lang.String, org.apache.axis.deployment.wsdd.WSDDService)"><B>registerNamespaceForService(String, WSDDService)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Register a particular namepsace which maps to a given WSDDService.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#registerPrefixForURI(java.lang.String, java.lang.String)"><B>registerPrefixForURI(String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Register prefix for the indicated uri
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#registerProvider(javax.xml.namespace.QName, org.apache.axis.deployment.wsdd.WSDDProvider)"><B>registerProvider(QName, WSDDProvider)</B></A> - 
Static method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#registerResolverForID(java.lang.String, org.apache.axis.message.IDResolver)"><B>registerResolverForID(String, IDResolver)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Each id can have its own kind of resolver.
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#registerResource(java.lang.String)"><B>registerResource(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>register a resource
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#registerSchemaSpecificTypes(org.apache.axis.encoding.TypeMappingImpl)"><B>registerSchemaSpecificTypes(TypeMappingImpl)</B></A> - 
Method in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>Register the schema specific type mappings
<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html#registerSchemaSpecificTypes(org.apache.axis.encoding.TypeMappingImpl)"><B>registerSchemaSpecificTypes(TypeMappingImpl)</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>
<DD>Register the schema specific type mappings
<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html#registerSchemaSpecificTypes(org.apache.axis.encoding.TypeMappingImpl)"><B>registerSchemaSpecificTypes(TypeMappingImpl)</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>
<DD>Register the schema specific type mappings
<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html#registerSchemaSpecificTypes(org.apache.axis.encoding.TypeMappingImpl)"><B>registerSchemaSpecificTypes(TypeMappingImpl)</B></A> - 
Method in class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>
<DD>Register the schema specific type mappings
<DT><A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html#registerStream(java.io.InputStream)"><B>registerStream(InputStream)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AutoRegisterServlet.html" title="class in org.apache.axis.transport.http">AutoRegisterServlet</A>
<DD>register an open stream, which we close afterwards
<DT><A HREF="org/apache/axis/description/TypeDesc.html#registerTypeDescForClass(java.lang.Class, org.apache.axis.description.TypeDesc)"><B>registerTypeDescForClass(Class, TypeDesc)</B></A> - 
Static method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Static function to explicitly register a type description for
 a given class.
<DT><A HREF="org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory)"><B>registerTypeMapping(Class, QName, SerializerFactory, DeserializerFactory)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.
<DT><A HREF="org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory, boolean)"><B>registerTypeMapping(Class, QName, SerializerFactory, DeserializerFactory, boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.
<DT><A HREF="org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class)"><B>registerTypeMapping(Class, QName, Class, Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>register this type matting
<DT><A HREF="org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class, boolean)"><B>registerTypeMapping(Class, QName, Class, Class, boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>register a type.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#registerValueTarget(org.apache.axis.encoding.Target)"><B>registerValueTarget(Target)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>For deserializers of non-primitives, the value may not be
 known until later (due to multi-referencing).
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#registerValueTarget(org.apache.axis.encoding.Target)"><B>registerValueTarget(Target)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>For deserializers of non-primitives, the value may not be
 known until later (due to multi-referencing).
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#relay"><B>relay</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#release(java.lang.Object)"><B>release(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>Decrements the connector's reference count
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#release(org.apache.axis.transport.jms.JMSConnector)"><B>release(JMSConnector)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Performs a non-exclusive checkin of the JMSConnector
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#releaseDocumentBuilder(javax.xml.parsers.DocumentBuilder)"><B>releaseDocumentBuilder(DocumentBuilder)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Releases a DocumentBuilder
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#releaseSAXParser(javax.xml.parsers.SAXParser)"><B>releaseSAXParser(SAXParser)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Return a SAX parser for reuse.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.remove(Object)</CODE>.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#remove(int)"><B>remove(int)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Removes the element at the specified index.
<DT><A HREF="org/apache/axis/session/Session.html#remove(java.lang.String)"><B>remove(String)</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Remove a property from the session
<DT><A HREF="org/apache/axis/session/SimpleSession.html#remove(java.lang.String)"><B>remove(String)</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Remove a property from the session
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#remove(java.lang.String)"><B>remove(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Remove a property from the session
<DT><A HREF="org/apache/axis/utils/IdentityHashMap.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/IdentityHashMap.html" title="class in org.apache.axis.utils">IdentityHashMap</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#remove(java.lang.Object)"><B>remove(Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Checks to see if an item is locked before it is removed.
<DT><A HREF="org/apache/axis/utils/URLHashSet.html#remove(java.net.URL)"><B>remove(URL)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>
<DD>Removes the given URL from this set if it is present.
<DT><A HREF="org/apache/axis/AxisEngine.html#removeActorURI(java.lang.String)"><B>removeActorURI(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Remove an actor by uri that will hold for the entire engine.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#removeAllAttachments()"><B>removeAllAttachments()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Removes all <CODE>AttachmentPart</CODE> objects that have
   been added to this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/Message.html#removeAllAttachments()"><B>removeAllAttachments()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Removes all <CODE>AttachmentPart</CODE> objects that have
   been added to this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#removeAllAttachments()"><B>removeAllAttachments()</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Removes all <CODE>AttachmentPart</CODE> objects that have
   been added to this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#removeAllAttachments()"><B>removeAllAttachments()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Removes all <CODE>AttachmentPart</CODE> objects that have
   been added to this <CODE>SOAPMessage</CODE> object.
<DT><A HREF="javax/xml/soap/MimeHeaders.html#removeAllHeaders()"><B>removeAllHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Removes all the header entries from this <CODE>
 MimeHeaders</CODE> object.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#removeAllMimeHeaders()"><B>removeAllMimeHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Removes all the MIME header entries.
<DT><A HREF="javax/xml/soap/SOAPPart.html#removeAllMimeHeaders()"><B>removeAllMimeHeaders()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Removes all the <CODE>MimeHeader</CODE> objects for this
 <CODE>SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/SOAPPart.html#removeAllMimeHeaders()"><B>removeAllMimeHeaders()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Removes all the <CODE>MimeHeader</CODE> objects for this
 <CODE>SOAPEnvelope</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#removeAllMimeHeaders()"><B>removeAllMimeHeaders()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Removes all the MIME header entries.
<DT><A HREF="javax/xml/rpc/Call.html#removeAllParameters()"><B>removeAllParameters()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Removes all specified parameters from this <code>Call</code> instance.
<DT><A HREF="org/apache/axis/client/Call.html#removeAllParameters()"><B>removeAllParameters()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Clears the list of parameters.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#removeAttachmentPart(java.lang.String)"><B>removeAttachmentPart(String)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>This method uses getAttacmentByReference() to look for attachment.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#removeAttachmentPart(java.lang.String)"><B>removeAttachmentPart(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>This method uses getAttacmentByReference() to look for attachment.
<DT><A HREF="javax/xml/soap/SOAPElement.html#removeAttribute(javax.xml.soap.Name)"><B>removeAttribute(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Removes the attribute with the specified name.
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeAttribute(javax.xml.soap.Name)"><B>removeAttribute(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove an element
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeAttribute(java.lang.String)"><B>removeAttribute(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove a named attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeAttributeNS(java.lang.String, java.lang.String)"><B>removeAttributeNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Remove an attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeAttributeNode(org.w3c.dom.Attr)"><B>removeAttributeNode(Attr)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove a an attribue
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeBody()"><B>removeBody()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Remove the SOAP Body
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeBodyElement(org.apache.axis.message.SOAPBodyElement)"><B>removeBodyElement(SOAPBodyElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Remove a Body Element from the soap body
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#removeBooleanProperty(java.util.Map, java.lang.String, boolean)"><B>removeBooleanProperty(Map, String, boolean)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>Returns a boolean property from a Map and removes it.
<DT><A HREF="org/apache/axis/SOAPPart.html#removeChild(org.w3c.dom.Node)"><B>removeChild(Node)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#removeChild(org.w3c.dom.Node)"><B>removeChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Removes the child node indicated by <code>oldChild</code> from the list
 of children, and returns it.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#removeChild(org.w3c.dom.Node)"><B>removeChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeChild(org.w3c.dom.Node)"><B>removeChild(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#removeClassLoader(java.lang.String)"><B>removeClassLoader(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Deregister the ClassLoader for a given className.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#removeConnectorFromPool(org.apache.axis.transport.jms.JMSConnector)"><B>removeConnectorFromPool(JMSConnector)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Removes a JMSConnector from the appropriate vendor pool
<DT><A HREF="javax/xml/soap/SOAPElement.html#removeContents()"><B>removeContents()</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Detaches all children of this <code>SOAPElement</code>.
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeContents()"><B>removeContents()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove all chidlren.
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#removeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeDeserializer(Class, QName)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Removes the DeserializerFactory registered for the specified
 pair of Java type and XML data type.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#removeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeDeserializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#removeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeDeserializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#removeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeDeserializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Removes the DeserializerFactory registered for the specified
 pair of Java type and XML data type.
<DT><A HREF="org/apache/axis/AxisFault.html#removeFaultDetail(javax.xml.namespace.QName)"><B>removeFaultDetail(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Find and remove a specified fault detail element.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#removeHandler(org.apache.axis.deployment.wsdd.WSDDHandler)"><B>removeHandler(WSDDHandler)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Remove a Handler from the chain
<DT><A HREF="javax/xml/soap/MimeHeaders.html#removeHeader(java.lang.String)"><B>removeHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Remove all <CODE>MimeHeader</CODE> objects whose name
 matches the the given name.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeHeader(org.apache.axis.message.SOAPHeaderElement)"><B>removeHeader(SOAPHeaderElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Remove a Header Element from SOAP Header
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeHeaders()"><B>removeHeaders()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Remove all headers
<DT><A HREF="org/apache/axis/AxisFault.html#removeHostname()"><B>removeHostname()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>strip out the hostname on a message.
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#removeIntProperty(java.util.Map, java.lang.String, int)"><B>removeIntProperty(Map, String, int)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>Returns an int property from a Map and removes it.
<DT><A HREF="org/apache/axis/collections/LRUMap.html#removeLRU()"><B>removeLRU()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>This method is used internally by the class for 
 finding and removing the LRU Object.
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#removeLongProperty(java.util.Map, java.lang.String, long)"><B>removeLongProperty(Map, String, long)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>Returns a long property from a Map and removes it.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#removeMimeHeader(java.lang.String)"><B>removeMimeHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Removes all MIME headers that match the given name.
<DT><A HREF="javax/xml/soap/SOAPPart.html#removeMimeHeader(java.lang.String)"><B>removeMimeHeader(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Removes all MIME headers that match the given name.
<DT><A HREF="org/apache/axis/SOAPPart.html#removeMimeHeader(java.lang.String)"><B>removeMimeHeader(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Removes all MIME headers that match the given name.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#removeMimeHeader(java.lang.String)"><B>removeMimeHeader(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Removes all MIME headers that match the given name.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#removeNamedItem(java.lang.String)"><B>removeNamedItem(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Removes a node specified by name.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#removeNamedItemNS(java.lang.String, java.lang.String)"><B>removeNamedItemNS(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Removes a node specified by local name and namespace URI.
<DT><A HREF="javax/xml/soap/SOAPElement.html#removeNamespaceDeclaration(java.lang.String)"><B>removeNamespaceDeclaration(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Removes the namespace declaration corresponding to the
 given prefix.
<DT><A HREF="org/apache/axis/message/MessageElement.html#removeNamespaceDeclaration(java.lang.String)"><B>removeNamespaceDeclaration(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>remove a namespace declaration.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#removeNamespaceMapping(java.lang.String)"><B>removeNamespaceMapping(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Remove a namespace -> WSDDService mapping.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#removeNamespaceMappings(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>removeNamespaceMappings(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#removeObject(java.lang.Object, long)"><B>removeObject(Object, long)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>Removes the object from the pool.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#removeObject(java.lang.Object)"><B>removeObject(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#removeObjectProperty(java.util.Map, java.lang.String, java.lang.Object)"><B>removeObjectProperty(Map, String, Object)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>Returns an Object property from a Map and removes it.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#removeOperationDesc(org.apache.axis.description.OperationDesc)"><B>removeOperationDesc(OperationDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#removeOperationDesc(org.apache.axis.description.OperationDesc)"><B>removeOperationDesc(OperationDesc)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#removeOption(java.lang.String)"><B>removeOption(String)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>removeOption
 Remove an option description from the tool.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#removeParameter(java.lang.String)"><B>removeParameter(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Removes a named property.
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>
<DD>Removes a property (name-value pair) from the
 <code>MessageContext</code>.
<DT><A HREF="org/apache/axis/MessageContext.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Removes (if set) the named property.
<DT><A HREF="org/apache/axis/client/Stub.html#removeProperty(java.lang.String)"><B>removeProperty(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Remove a property from this instance of the Stub
 NOTE: This is NOT part of JAX-RPC and is an Axis extension.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#removeRole(java.lang.String)"><B>removeRole(String)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Remove a role from the configuration's global list
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#removeSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeSerializer(Class, QName)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Removes the SerializerFactory registered for the specified
 pair of Java type and XML data type.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#removeSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeSerializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#removeSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeSerializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#removeSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>removeSerializer(Class, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Removes the SerializerFactory registered for the specified
 pair of Java type and XML data type.
<DT><A HREF="org/apache/axis/transport/jms/MapUtils.html#removeStringProperty(java.util.Map, java.lang.String, java.lang.String)"><B>removeStringProperty(Map, String, String)</B></A> - 
Static method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/MapUtils.html" title="class in org.apache.axis.transport.jms">MapUtils</A>
<DD>Returns a String property from a Map and removes it.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#removeTrailer(org.apache.axis.message.MessageElement)"><B>removeTrailer(MessageElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Remove an element from the trailer
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#removeTypeMapping(javax.xml.rpc.encoding.TypeMapping)"><B>removeTypeMapping(TypeMapping)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Removes a <code>TypeMapping</code> from the TypeMappingRegistry.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#removeTypeMapping(javax.xml.rpc.encoding.TypeMapping)"><B>removeTypeMapping(TypeMapping)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Removes the TypeMapping for the namespace.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#removeValueTargets()"><B>removeValueTargets()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Remove the Value Targets of the Deserializer.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#removeValueTargets()"><B>removeValueTargets()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Remove the Value Targets of the Deserializer.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#replace(java.lang.String, java.lang.String, java.lang.String)"><B>replace(String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>replace:
 Like String.replace except that the old new items are strings.
<DT><A HREF="org/apache/axis/SOAPPart.html#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)"><B>replaceChild(Node, Node)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)"><B>replaceChild(Node, Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Replaces the child node <code>oldChild</code> with <code>newChild</code>
 in the list of children, and returns the <code>oldChild</code> node.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)"><B>replaceChild(Node, Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#replaceData(int, int, java.lang.String)"><B>replaceData(int, int, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#replaceElementHandler(org.apache.axis.message.SOAPHandler)"><B>replaceElementHandler(SOAPHandler)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Replace the handler at the top of the stack.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#replay(org.xml.sax.ContentHandler)"><B>replay(ContentHandler)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#replay(int, int, org.xml.sax.ContentHandler)"><B>replay(int, int, ContentHandler)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#reportAvailableServices(javax.servlet.http.HttpServletResponse, java.io.PrintWriter, javax.servlet.http.HttpServletRequest)"><B>reportAvailableServices(HttpServletResponse, PrintWriter, HttpServletRequest)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>This method lists the available services; it is called when there is
 nothing to execute on a GET
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#reportCantGetAxisService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.io.PrintWriter)"><B>reportCantGetAxisService(HttpServletRequest, HttpServletResponse, PrintWriter)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>generate the error response to indicate that there is apparently no endpoint there
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#reportCantGetJWSService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.io.PrintWriter)"><B>reportCantGetJWSService(HttpServletRequest, HttpServletResponse, PrintWriter)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>probe for a JWS page and report 'no service' if one is not found there
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#reportNoWSDL(javax.servlet.http.HttpServletResponse, java.io.PrintWriter, java.lang.String, org.apache.axis.AxisFault)"><B>reportNoWSDL(HttpServletResponse, PrintWriter, String, AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>report that we have no WSDL

 This method was moved to the querystring handler QSWSDLHandler.
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#reportNoWSDL(javax.servlet.http.HttpServletResponse, java.io.PrintWriter, java.lang.String, org.apache.axis.AxisFault)"><B>reportNoWSDL(HttpServletResponse, PrintWriter, String, AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>Report that we have no WSDL.
<DT><A HREF="org/apache/axis/transport/http/AxisServlet.html#reportServiceInfo(javax.servlet.http.HttpServletResponse, java.io.PrintWriter, org.apache.axis.handlers.soap.SOAPService, java.lang.String)"><B>reportServiceInfo(HttpServletResponse, PrintWriter, SOAPService, String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServlet.html" title="class in org.apache.axis.transport.http">AxisServlet</A>
<DD>print a snippet of service info.
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#reportWSDL(org.w3c.dom.Document, java.io.PrintWriter)"><B>reportWSDL(Document, PrintWriter)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>Report WSDL.
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#requestHandler"><B>requestHandler</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#reserve(java.lang.Object)"><B>reserve(Object)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>Marks the connector as in use by incrementing the connector's reference count
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html#reserve(org.apache.axis.transport.jms.JMSConnector)"><B>reserve(JMSConnector)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager</A>
<DD>Performs a non-exclusive checkout of the JMSConnector
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#reservedPropNames"><B>reservedPropNames</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field reservedPropNames
<DT><A HREF="org/apache/axis/MessageContext.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Return this context to a clean state.
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>reset the stream.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.IncomingAttachmentInputStream.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams.IncomingAttachmentInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>Reset deserializer for re-use
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>Reset deserializer for re-use
<DT><A HREF="org/apache/axis/message/NodeImpl.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#reset()"><B>reset()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#resolveClass(int)"><B>resolveClass(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#resolveEntity(java.lang.String, java.lang.String)"><B>resolveEntity(String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DefaultEntityResolver.html#resolveEntity(java.lang.String, java.lang.String)"><B>resolveEntity(String, String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DefaultEntityResolver.html" title="class in org.apache.axis.utils">DefaultEntityResolver</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#resolveField(int)"><B>resolveField(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#resolveMethod(int)"><B>resolveMethod(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#resolveNameAndType(int)"><B>resolveNameAndType(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#resolveNameClashes(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>resolveNameClashes(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Messages, PortTypes, Bindings, and Services can share the same name.
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#resolveUtf8(int)"><B>resolveUtf8(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#resourceName"><B>resourceName</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/RB.html#resourceProperties"><B>resourceProperties</B></A> - 
Variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/RB.html" title="class in org.apache.axis.i18n">RB</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#responseHandler"><B>responseHandler</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#restart()"><B>restart()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#restart()"><B>restart()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>restart the server
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#restart()"><B>restart()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>restart the server
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#returnParam"><B>returnParam</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field returnParam
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#rootBundle"><B>rootBundle</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/MessagesConstants.html#rootPackageName"><B>rootPackageName</B></A> - 
Static variable in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/MessagesConstants.html" title="class in org.apache.axis.i18n">MessagesConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#rootPartLength"><B>rootPartLength</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#rootPartLength"><B>rootPartLength</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field rootPartLength
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method run
<DT><A HREF="org/apache/axis/components/script/BSF.html#run(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])"><B>run(String, String, String, String, Object[])</B></A> - 
Method in class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/BSF.html" title="class in org.apache.axis.components.script">BSF</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/script/Script.html#run(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[])"><B>run(String, String, String, String, Object[])</B></A> - 
Method in interface org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/Script.html" title="interface in org.apache.axis.components.script">Script</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Accept requests from a given TCP port and send them through the
 Axis engine for processing.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>Run method
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html" title="class in org.apache.axis.transport.jms">SimpleJMSWorker</A>
<DD>This is where the incoming message is processed.
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Accept requests from a given TCP port and send them through the
 Axis engine for processing.
<DT><A HREF="org/apache/axis/transport/mail/MailWorker.html#run()"><B>run()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailWorker.html" title="class in org.apache.axis.transport.mail">MailWorker</A>
<DD>The main workhorse method.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#run(java.lang.String[])"><B>run(String[])</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>run
 checks the command-line arguments and runs the tool.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#run(java.lang.String)"><B>run(String)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Parse a WSDL at a given URL.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#run(java.lang.String, org.w3c.dom.Document)"><B>run(String, Document)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Call this method if your WSDL document has already been parsed as an XML DOM document.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#run(java.lang.String[])"><B>run(String[])</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>run
 checkes the command-line arguments and runs the tool.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#run(java.lang.String)"><B>run(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Emit appropriate Java files for a WSDL at a given URL.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#run(java.lang.String, org.w3c.dom.Document)"><B>run(String, Document)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Call this method if your WSDL document has already been
 parsed as an XML DOM document.
</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message"><B>SAX2EventRecorder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>.<DD>This class records SAX2 Events and allows
 the events to be replayed by start and stop index<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#SAX2EventRecorder()"><B>SAX2EventRecorder()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message"><B>SAXOutputter</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/SAXOutputter.html#SAXOutputter(org.apache.axis.encoding.SerializationContext)"><B>SAXOutputter(SerializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#SCHEMA_1999"><B>SCHEMA_1999</B></A> - 
Static variable in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#SCHEMA_2000"><B>SCHEMA_2000</B></A> - 
Static variable in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html#SCHEMA_2001"><B>SCHEMA_2001</B></A> - 
Static variable in interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#SCOPE_OPT"><B>SCOPE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field SCOPE_OPT
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#SCOPE_PER_ACCESS"><B>SCOPE_PER_ACCESS</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#SCOPE_PER_REQUEST"><B>SCOPE_PER_REQUEST</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#SCOPE_SINGLETON"><B>SCOPE_SINGLETON</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#SECURITY_PROVIDER"><B>SECURITY_PROVIDER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The security provider.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#SELECTOR_AT_BROKER"><B>SELECTOR_AT_BROKER</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for the PubSub domain.
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#SEND_ACTION"><B>SEND_ACTION</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#SEND_TYPE_ATTR"><B>SEND_TYPE_ATTR</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_DEFAULT"><B>SEND_TYPE_DEFAULT</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>The default attatchment type.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_DIME"><B>SEND_TYPE_DIME</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Use the DIME attatchment type.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_MAX"><B>SEND_TYPE_MAX</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_MIME"><B>SEND_TYPE_MIME</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Use the SOAP with MIME attatchment send type.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_MTOM"><B>SEND_TYPE_MTOM</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Use the MTOM attatchment type.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_NONE"><B>SEND_TYPE_NONE</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Use the DIME attatchment type.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#SEND_TYPE_NOTSET"><B>SEND_TYPE_NOTSET</B></A> - 
Static variable in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Use the default attatchment send type.
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#SEQUENTIAL"><B>SEQUENTIAL</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD><code>SonicConnectionFactory</code> parameter valid for either domain.
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#SERVER_CONFIG_FILE"><B>SERVER_CONFIG_FILE</B></A> - 
Static variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#SERVER_OPT"><B>SERVER_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field SERVER_OPT
<DT><A HREF="javax/xml/rpc/ServiceFactory.html#SERVICEFACTORY_PROPERTY"><B>SERVICEFACTORY_PROPERTY</B></A> - 
Static variable in class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>A constant representing the property used to lookup the
 name of a <code>ServiceFactory</code> implementation
 class.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#SERVICE_CLASSNAME"><B>SERVICE_CLASSNAME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#SERVICE_ELEMENT_NAME_OPT"><B>SERVICE_ELEMENT_NAME_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field SERVICE_ELEMENT_NAME_OPT
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#SERVICE_IMPLEMENTATION_NAME_PROPERTY"><B>SERVICE_IMPLEMENTATION_NAME_PROPERTY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#SERVICE_LOCAL_PART"><B>SERVICE_LOCAL_PART</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#SERVICE_NAMESPACE"><B>SERVICE_NAMESPACE</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#SERVICE_PORT_NAME_OPT"><B>SERVICE_PORT_NAME_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field SERVICE_PORT_NAME_OPT
<DT><A HREF="org/apache/axis/constants/Scope.html#SESSION"><B>SESSION</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#SESSION_ID"><B>SESSION_ID</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/SessionUtils.html#SESSION_ID_BYTES"><B>SESSION_ID_BYTES</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>The number of random bytes to include when generating a
 session identifier.
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#SESSION_LOCALPART"><B>SESSION_LOCALPART</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#SESSION_MAINTAIN_PROPERTY"><B>SESSION_MAINTAIN_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property: This boolean property is used by a service
 client to indicate whether or not it wants to participate in
 a session with a service endpoint.
<DT><A HREF="javax/xml/rpc/Stub.html#SESSION_MAINTAIN_PROPERTY"><B>SESSION_MAINTAIN_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Standard property: This boolean property is used by a service
 client to indicate whether or not it wants to participate in
 a session with a service endpoint.
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#SESSION_NS"><B>SESSION_NS</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#SESSION_STR"><B>SESSION_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#SKELETON_DEPLOY_OPT"><B>SKELETON_DEPLOY_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field SKELETON_DEPLOY_OPT
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#SMTP_HOST"><B>SMTP_HOST</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap"><B>SOAP11Constants</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>.<DD>SOAP 1.1 constants<DT><A HREF="org/apache/axis/soap/SOAP11Constants.html#SOAP11Constants()"><B>SOAP11Constants()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP11Constants.html" title="class in org.apache.axis.soap">SOAP11Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#SOAP11_CONSTANTS"><B>SOAP11_CONSTANTS</B></A> - 
Static variable in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>SOAP 1.1 constants - thread-safe and shared
<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap"><B>SOAP12Constants</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>.<DD>SOAP 1.2 constants<DT><A HREF="org/apache/axis/soap/SOAP12Constants.html#SOAP12Constants()"><B>SOAP12Constants()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAP12Constants.html" title="class in org.apache.axis.soap">SOAP12Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConstants.html#SOAP12_CONSTANTS"><B>SOAP12_CONSTANTS</B></A> - 
Static variable in interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>
<DD>SOAP 1.2 constants - thread-safe and shared
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#SOAPACTION_OPT"><B>SOAPACTION_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field SOAPACTION_OPT
<DT><A HREF="javax/xml/rpc/Call.html#SOAPACTION_URI_PROPERTY"><B>SOAPACTION_URI_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property for SOAPAction.
<DT><A HREF="javax/xml/rpc/Call.html#SOAPACTION_USE_PROPERTY"><B>SOAPACTION_USE_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property for SOAPAction.
<DT><A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap"><B>SOAPBody</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBody.html" title="interface in javax.xml.soap">SOAPBody</A>.<DD>An object that represents the contents of the SOAP body
 element in a SOAP message.<DT><A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message"><B>SOAPBody</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>.<DD>Holder for body elements.<DT><A HREF="org/apache/axis/message/SOAPBody.html#SOAPBody(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext, org.apache.axis.soap.SOAPConstants)"><B>SOAPBody(String, String, String, Attributes, DeserializationContext, SOAPConstants)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPBodyElement.html" title="interface in javax.xml.soap"><B>SOAPBodyElement</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPBodyElement.html" title="interface in javax.xml.soap">SOAPBodyElement</A>.<DD>A <code>SOAPBodyElement</code> object represents the contents in
 a <code>SOAPBody</code> object.<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message"><B>SOAPBodyElement</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>.<DD>A Body element.<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>SOAPBodyElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(javax.xml.soap.Name)"><B>SOAPBodyElement(Name)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(javax.xml.namespace.QName)"><B>SOAPBodyElement(QName)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(javax.xml.namespace.QName, java.lang.Object)"><B>SOAPBodyElement(QName, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(org.w3c.dom.Element)"><B>SOAPBodyElement(Element)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement()"><B>SOAPBodyElement()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(java.io.InputStream)"><B>SOAPBodyElement(InputStream)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#SOAPBodyElement(java.lang.String, java.lang.String)"><B>SOAPBodyElement(String, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPConnection.html" title="class in javax.xml.soap"><B>SOAPConnection</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnection.html" title="class in javax.xml.soap">SOAPConnection</A>.<DD>A point-to-point connection that a client can use for sending messages
 directly to a remote party (represented by a URL, for instance).<DT><A HREF="javax/xml/soap/SOAPConnection.html#SOAPConnection()"><B>SOAPConnection()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnection.html" title="class in javax.xml.soap">SOAPConnection</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPConnectionFactory.html" title="class in javax.xml.soap"><B>SOAPConnectionFactory</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnectionFactory.html" title="class in javax.xml.soap">SOAPConnectionFactory</A>.<DD>A factory for creating <code>SOAPConnection</code> objects.<DT><A HREF="javax/xml/soap/SOAPConnectionFactory.html#SOAPConnectionFactory()"><B>SOAPConnectionFactory()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPConnectionFactory.html" title="class in javax.xml.soap">SOAPConnectionFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html" title="class in org.apache.axis.soap"><B>SOAPConnectionFactoryImpl</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html" title="class in org.apache.axis.soap">SOAPConnectionFactoryImpl</A>.<DD>SOAP Connection Factory implementation<DT><A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html#SOAPConnectionFactoryImpl()"><B>SOAPConnectionFactoryImpl()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionFactoryImpl.html" title="class in org.apache.axis.soap">SOAPConnectionFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap"><B>SOAPConnectionImpl</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>.<DD>SOAP Connection implementation<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html#SOAPConnectionImpl()"><B>SOAPConnectionImpl()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPConstants.html" title="interface in javax.xml.soap"><B>SOAPConstants</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPConstants.html" title="interface in javax.xml.soap">SOAPConstants</A>.<DD>The definition of constants pertaining to the SOAP 1.1 protocol.<DT><A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap"><B>SOAPConstants</B></A> - interface org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>.<DD>An interface definining SOAP constants.<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message"><B>SOAPDocumentImpl</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>.<DD>SOAPDcoumentImpl implements the Document API for SOAPPART.<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#SOAPDocumentImpl(org.apache.axis.SOAPPart)"><B>SOAPDocumentImpl(SOAPPart)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>Construct the Document
<DT><A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap"><B>SOAPElement</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>.<DD>An object representing the contents in a
 <code>SOAPBody</code> object, the contents in a <code>SOAPHeader</code>
 object, the content that can follow the <code>SOAPBody</code> object in a
 <code>SOAPEnvelope</code> object, or what can follow the detail element
 in a <code>SOAPFault</code> object.<DT><A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap"><B>SOAPElementFactory</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPElementFactory.html" title="class in javax.xml.soap">SOAPElementFactory</A>.<DD><B>Deprecated.</B>&nbsp;<I>- Use javax.xml.soap.SOAPFactory for creating SOAPElements.</I><DT><A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap"><B>SOAPEnvelope</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPEnvelope.html" title="interface in javax.xml.soap">SOAPEnvelope</A>.<DD>The container for the SOAPHeader and SOAPBody portions of a
   <CODE>SOAPPart</CODE> object.<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message"><B>SOAPEnvelope</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>.<DD>Implementation of a SOAP Envelope<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope()"><B>SOAPEnvelope()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope(org.apache.axis.soap.SOAPConstants)"><B>SOAPEnvelope(SOAPConstants)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope(org.apache.axis.soap.SOAPConstants, org.apache.axis.schema.SchemaVersion)"><B>SOAPEnvelope(SOAPConstants, SchemaVersion)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope(boolean, org.apache.axis.soap.SOAPConstants)"><B>SOAPEnvelope(boolean, SOAPConstants)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope(boolean, org.apache.axis.soap.SOAPConstants, org.apache.axis.schema.SchemaVersion)"><B>SOAPEnvelope(boolean, SOAPConstants, SchemaVersion)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#SOAPEnvelope(java.io.InputStream)"><B>SOAPEnvelope(InputStream)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap"><B>SOAPException</B></A> - exception javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>.<DD>An exception that signals that a SOAP exception has
   occurred.<DT><A HREF="javax/xml/soap/SOAPException.html#SOAPException()"><B>SOAPException()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Constructs a <CODE>SOAPException</CODE> object with no
 reason or embedded <CODE>Throwable</CODE> object.
<DT><A HREF="javax/xml/soap/SOAPException.html#SOAPException(java.lang.String)"><B>SOAPException(String)</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Constructs a <CODE>SOAPException</CODE> object with the
 given <CODE>String</CODE> as the reason for the exception
 being thrown.
<DT><A HREF="javax/xml/soap/SOAPException.html#SOAPException(java.lang.String, java.lang.Throwable)"><B>SOAPException(String, Throwable)</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Constructs a <CODE>SOAPException</CODE> object with the
 given <CODE>String</CODE> as the reason for the exception
 being thrown and the given <CODE>Throwable</CODE> object as
 an embedded exception.
<DT><A HREF="javax/xml/soap/SOAPException.html#SOAPException(java.lang.Throwable)"><B>SOAPException(Throwable)</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPException.html" title="class in javax.xml.soap">SOAPException</A>
<DD>Constructs a <CODE>SOAPException</CODE> object
 initialized with the given <CODE>Throwable</CODE>
 object.
<DT><A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap"><B>SOAPFactory</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>.<DD><code>SOAPFactory</code> is a factory for creating various objects
 that exist in the SOAP XML tree.<DT><A HREF="javax/xml/soap/SOAPFactory.html#SOAPFactory()"><B>SOAPFactory()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPFactory.html" title="class in javax.xml.soap">SOAPFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap"><B>SOAPFactoryImpl</B></A> - class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>.<DD>SOAP Element Factory implementation<DT><A HREF="org/apache/axis/soap/SOAPFactoryImpl.html#SOAPFactoryImpl()"><B>SOAPFactoryImpl()</B></A> - 
Constructor for class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPFactoryImpl.html" title="class in org.apache.axis.soap">SOAPFactoryImpl</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap"><B>SOAPFault</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>.<DD>An element in the <CODE>SOAPBody</CODE> object that contains
   error and/or status information.<DT><A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message"><B>SOAPFault</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>.<DD>A Fault body element.<DT><A HREF="org/apache/axis/message/SOAPFault.html#SOAPFault(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>SOAPFault(String, String, String, Attributes, DeserializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFault.html#SOAPFault(org.apache.axis.AxisFault)"><B>SOAPFault(AxisFault)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message"><B>SOAPFaultBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>.<DD>Build a Fault body element.<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#SOAPFaultBuilder(org.apache.axis.message.SOAPFault, org.apache.axis.encoding.DeserializationContext)"><B>SOAPFaultBuilder(SOAPFault, DeserializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message"><B>SOAPFaultCodeBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>.<DD>Build a Fault body element.<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#SOAPFaultCodeBuilder()"><B>SOAPFaultCodeBuilder()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message"><B>SOAPFaultDetailsBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>.<DD>Handle deserializing fault details.<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html#SOAPFaultDetailsBuilder(org.apache.axis.message.SOAPFaultBuilder)"><B>SOAPFaultDetailsBuilder(SOAPFaultBuilder)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPFaultElement.html" title="interface in javax.xml.soap"><B>SOAPFaultElement</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFaultElement.html" title="interface in javax.xml.soap">SOAPFaultElement</A>.<DD>A representation of the contents in
 a <code>SOAPFault</code> object.<DT><A HREF="org/apache/axis/message/SOAPFaultElement.html" title="class in org.apache.axis.message"><B>SOAPFaultElement</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultElement.html" title="class in org.apache.axis.message">SOAPFaultElement</A>.<DD>SOAP Fault implementation<DT><A HREF="org/apache/axis/message/SOAPFaultElement.html#SOAPFaultElement()"><B>SOAPFaultElement()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultElement.html" title="class in org.apache.axis.message">SOAPFaultElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap"><B>SOAPFaultException</B></A> - exception javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>.<DD>The <code>SOAPFaultException</code> exception represents a
 SOAP fault.<DT><A HREF="javax/xml/rpc/soap/SOAPFaultException.html#SOAPFaultException(javax.xml.namespace.QName, java.lang.String, java.lang.String, javax.xml.soap.Detail)"><B>SOAPFaultException(QName, String, String, Detail)</B></A> - 
Constructor for class javax.xml.rpc.soap.<A HREF="javax/xml/rpc/soap/SOAPFaultException.html" title="class in javax.xml.rpc.soap">SOAPFaultException</A>
<DD>Constructor for SOAPFaultException.
<DT><A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message"><B>SOAPFaultReasonBuilder</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message">SOAPFaultReasonBuilder</A>.<DD>Parser for the fault Reason element and its associated Text elements.<DT><A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html#SOAPFaultReasonBuilder(org.apache.axis.message.SOAPFaultBuilder)"><B>SOAPFaultReasonBuilder(SOAPFaultBuilder)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message">SOAPFaultReasonBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message"><B>SOAPHandler</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/message/SOAPHandler.html#SOAPHandler()"><B>SOAPHandler()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#SOAPHandler(org.apache.axis.message.MessageElement[], int)"><B>SOAPHandler(MessageElement[], int)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>This constructor allows deferred setting of any elements
<DT><A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap"><B>SOAPHeader</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeader.html" title="interface in javax.xml.soap">SOAPHeader</A>.<DD>A representation of the SOAP header element.<DT><A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message"><B>SOAPHeader</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>.<DD>Holder for header elements.<DT><A HREF="org/apache/axis/message/SOAPHeader.html#SOAPHeader(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext, org.apache.axis.soap.SOAPConstants)"><B>SOAPHeader(String, String, String, Attributes, DeserializationContext, SOAPConstants)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap"><B>SOAPHeaderElement</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap">SOAPHeaderElement</A>.<DD>An object representing the contents in the SOAP header part
   of the SOAP envelope.<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message"><B>SOAPHeaderElement</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>.<DD>A simple header element abstraction.<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(java.lang.String, java.lang.String)"><B>SOAPHeaderElement(String, String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(javax.xml.soap.Name)"><B>SOAPHeaderElement(Name)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(javax.xml.namespace.QName)"><B>SOAPHeaderElement(QName)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(java.lang.String, java.lang.String, java.lang.Object)"><B>SOAPHeaderElement(String, String, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(javax.xml.namespace.QName, java.lang.Object)"><B>SOAPHeaderElement(QName, Object)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(org.w3c.dom.Element)"><B>SOAPHeaderElement(Element)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#SOAPHeaderElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>SOAPHeaderElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap"><B>SOAPMessage</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>.<DD>The root class for all SOAP messages.<DT><A HREF="javax/xml/soap/SOAPMessage.html#SOAPMessage()"><B>SOAPMessage()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html" title="interface in javax.xml.rpc.handler.soap"><B>SOAPMessageContext</B></A> - interface javax.xml.rpc.handler.soap.<A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html" title="interface in javax.xml.rpc.handler.soap">SOAPMessageContext</A>.<DD>The interface <code>javax.xml.rpc.soap.SOAPMessageContext</code>
 provides access to the SOAP message for either RPC request or
 response.<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils"><B>SOAPMonitor</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>.<DD>This is a SOAP Monitor Application class.<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#SOAPMonitor()"><B>SOAPMonitor()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor"><B>SOAPMonitorConstants</B></A> - class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>.<DD>SOAP Monitor Service constants<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html#SOAPMonitorConstants()"><B>SOAPMonitorConstants()</B></A> - 
Constructor for class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html" title="class in org.apache.axis.handlers"><B>SOAPMonitorHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html" title="class in org.apache.axis.handlers">SOAPMonitorHandler</A>.<DD>This handler is used to route SOAP messages to the
 SOAP monitor service.<DT><A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html#SOAPMonitorHandler()"><B>SOAPMonitorHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SOAPMonitorHandler.html" title="class in org.apache.axis.handlers">SOAPMonitorHandler</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor"><B>SOAPMonitorService</B></A> - class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>.<DD>This is a SOAP Monitor Service class.<DT><A HREF="org/apache/axis/monitor/SOAPMonitorService.html#SOAPMonitorService()"><B>SOAPMonitorService()</B></A> - 
Constructor for class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorService.html" title="class in org.apache.axis.monitor">SOAPMonitorService</A>
<DD>Constructor
<DT><A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap"><B>SOAPPart</B></A> - class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>.<DD>The container for the SOAP-specific portion of a <CODE>
 SOAPMessage</CODE> object.<DT><A HREF="javax/xml/soap/SOAPPart.html#SOAPPart()"><B>SOAPPart()</B></A> - 
Constructor for class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis"><B>SOAPPart</B></A> - class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>.<DD>The SOAPPart provides access to the root part of the Message which
 contains the envelope.<DT><A HREF="org/apache/axis/SOAPPart.html#SOAPPart(org.apache.axis.Message, java.lang.Object, boolean)"><B>SOAPPart(Message, Object, boolean)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Create a new SOAPPart.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap"><B>SOAPService</B></A> - class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>.<DD>A <code>SOAPService</code> is a Handler which encapsulates a SOAP
 invocation.<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#SOAPService()"><B>SOAPService()</B></A> - 
Constructor for class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Standard, no-arg constructor.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#SOAPService(org.apache.axis.Handler, org.apache.axis.Handler, org.apache.axis.Handler)"><B>SOAPService(Handler, Handler, Handler)</B></A> - 
Constructor for class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Constructor with real or null request, pivot, and response
  handlers.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#SOAPService(org.apache.axis.Handler)"><B>SOAPService(Handler)</B></A> - 
Constructor for class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Convenience constructor for wrapping SOAP semantics around
 "service handlers" which actually do work.
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_ARRAY"><B>SOAP_ARRAY</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for Array.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_ARRAY"><B>SOAP_ARRAY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_ARRAY12"><B>SOAP_ARRAY12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_ARRAY_ATTRS11"><B>SOAP_ARRAY_ATTRS11</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_ARRAY_ATTRS12"><B>SOAP_ARRAY_ATTRS12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_BASE64"><B>SOAP_BASE64</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for base64.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_BASE64"><B>SOAP_BASE64</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_BASE64BINARY"><B>SOAP_BASE64BINARY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_BOOLEAN"><B>SOAP_BOOLEAN</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for boolean.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_BOOLEAN"><B>SOAP_BOOLEAN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_BYTE"><B>SOAP_BYTE</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for byte.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_BYTE"><B>SOAP_BYTE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_COMMON_ATTRS11"><B>SOAP_COMMON_ATTRS11</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_COMMON_ATTRS12"><B>SOAP_COMMON_ATTRS12</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_DECIMAL"><B>SOAP_DECIMAL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_DOCUMENT"><B>SOAP_DOCUMENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_DOUBLE"><B>SOAP_DOUBLE</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for double.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_DOUBLE"><B>SOAP_DOUBLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_ELEMENT"><B>SOAP_ELEMENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_FLOAT"><B>SOAP_FLOAT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for float.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_FLOAT"><B>SOAP_FLOAT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_INT"><B>SOAP_INT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for int.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_INT"><B>SOAP_INT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_INTEGER"><B>SOAP_INTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_LONG"><B>SOAP_LONG</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for long.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_LONG"><B>SOAP_LONG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_MAP"><B>SOAP_MAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html#SOAP_MONITOR_ID"><B>SOAP_MONITOR_ID</B></A> - 
Static variable in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>
<DD>Unique SOAP monitor id tag
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html#SOAP_MONITOR_PORT"><B>SOAP_MONITOR_PORT</B></A> - 
Static variable in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>
<DD>Servlet initialization parameter names
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html#SOAP_MONITOR_REQUEST"><B>SOAP_MONITOR_REQUEST</B></A> - 
Static variable in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>
<DD>SOAP message types
<DT><A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html#SOAP_MONITOR_RESPONSE"><B>SOAP_MONITOR_RESPONSE</B></A> - 
Static variable in class org.apache.axis.monitor.<A HREF="org/apache/axis/monitor/SOAPMonitorConstants.html" title="class in org.apache.axis.monitor">SOAPMonitorConstants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_SHORT"><B>SOAP_SHORT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for short.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_SHORT"><B>SOAP_SHORT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#SOAP_STRING"><B>SOAP_STRING</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>SOAP type for string.
<DT><A HREF="org/apache/axis/Constants.html#SOAP_STRING"><B>SOAP_STRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#SOAP_VECTOR"><B>SOAP_VECTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#STOP_CLASSES_OPT"><B>STOP_CLASSES_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field STOP_CLASSES_OPT
<DT><A HREF="org/apache/axis/client/Call.html#STREAMING_PROPERTY"><B>STREAMING_PROPERTY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Streaming property: should be accompanied by an boolean
 (i.e.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#STRING_CLASS"><B>STRING_CLASS</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#STYLE_OPT"><B>STYLE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field STYLE_OPT
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#SUBSCRIBE_ACTION"><B>SUBSCRIBE_ACTION</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#SUBSCRIPTION_NAME"><B>SUBSCRIPTION_NAME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Specifies the name of a durable subscription
 Key for properties used in the <code>registerListener</code>
 method.
<DT><A HREF="org/apache/axis/EngineConfigurationFactory.html#SYSTEM_PROPERTY_NAME"><B>SYSTEM_PROPERTY_NAME</B></A> - 
Static variable in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfigurationFactory.html" title="interface in org.apache.axis">EngineConfigurationFactory</A>
<DD>Property name used for setting an EngineConfiguration to be used
 in creating engines.
<DT><A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types"><B>Schema</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>.<DD>Custom class for supporting XSD schema<DT><A HREF="org/apache/axis/types/Schema.html#Schema()"><B>Schema()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/SchemaHolder.html" title="class in org.apache.axis.holders"><B>SchemaHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SchemaHolder.html" title="class in org.apache.axis.holders">SchemaHolder</A>.<DD>Custom class for supporting XSD schema<DT><A HREF="org/apache/axis/holders/SchemaHolder.html#SchemaHolder()"><B>SchemaHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SchemaHolder.html" title="class in org.apache.axis.holders">SchemaHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/SchemaHolder.html#SchemaHolder(org.apache.axis.types.Schema)"><B>SchemaHolder(Schema)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SchemaHolder.html" title="class in org.apache.axis.holders">SchemaHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable"><B>SchemaUtils</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>.<DD>This class contains static utility methods specifically for schema type queries.<DT><A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html#SchemaUtils()"><B>SchemaUtils()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SchemaUtils.html" title="class in org.apache.axis.wsdl.symbolTable">SchemaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema"><B>SchemaVersion</B></A> - interface org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion.html" title="interface in org.apache.axis.schema">SchemaVersion</A>.<DD>The SchemaVersion interface allows us to abstract out the differences
 between the 1999, 2000, and 2001 versions of XML Schema.<DT><A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema"><B>SchemaVersion1999</B></A> - class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion1999.html" title="class in org.apache.axis.schema">SchemaVersion1999</A>.<DD>1999 Schema characteristics.<DT><A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema"><B>SchemaVersion2000</B></A> - class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2000.html" title="class in org.apache.axis.schema">SchemaVersion2000</A>.<DD>2000 Schema characteristics.<DT><A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema"><B>SchemaVersion2001</B></A> - class org.apache.axis.schema.<A HREF="org/apache/axis/schema/SchemaVersion2001.html" title="class in org.apache.axis.schema">SchemaVersion2001</A>.<DD>2001 Schema characteristics.<DT><A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants"><B>Scope</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/constants/Scope.html#Scope()"><B>Scope()</B></A> - 
Constructor for class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/enum/Scope.html" title="class in org.apache.axis.enum"><B>Scope</B></A> - class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Scope.html" title="class in org.apache.axis.enum">Scope</A>.<DD><B>Deprecated.</B>&nbsp;<I>please use org.apache.axis.constants.Scope</I><DT><A HREF="org/apache/axis/enum/Scope.html#Scope()"><B>Scope()</B></A> - 
Constructor for class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Scope.html" title="class in org.apache.axis.enum">Scope</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.Type.html" title="class in org.apache.axis.constants"><B>Scope.Type</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.Type.html" title="class in org.apache.axis.constants">Scope.Type</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/script/Script.html" title="interface in org.apache.axis.components.script"><B>Script</B></A> - interface org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/Script.html" title="interface in org.apache.axis.components.script">Script</A>.<DD>This interface defines a Script module functionality<DT><A HREF="org/apache/axis/components/script/ScriptFactory.html" title="class in org.apache.axis.components.script"><B>ScriptFactory</B></A> - class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/ScriptFactory.html" title="class in org.apache.axis.components.script">ScriptFactory</A>.<DD>This class implements a factory to instantiate an Script component.<DT><A HREF="org/apache/axis/components/script/ScriptFactory.html#ScriptFactory()"><B>ScriptFactory()</B></A> - 
Constructor for class org.apache.axis.components.script.<A HREF="org/apache/axis/components/script/ScriptFactory.html" title="class in org.apache.axis.components.script">ScriptFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/SecureSocketFactory.html" title="interface in org.apache.axis.components.net"><B>SecureSocketFactory</B></A> - interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SecureSocketFactory.html" title="interface in org.apache.axis.components.net">SecureSocketFactory</A>.<DD>Secure Socket factory.<DT><A HREF="org/apache/axis/security/SecurityProvider.html" title="interface in org.apache.axis.security"><B>SecurityProvider</B></A> - interface org.apache.axis.security.<A HREF="org/apache/axis/security/SecurityProvider.html" title="interface in org.apache.axis.security">SecurityProvider</A>.<DD>The Axis security provider interface
 
 As Axis is designed for use in embedded environments, those
 environments will often contain their own security databases and
 potentially authentication managers.<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections"><B>SequencedHashMap</B></A> - class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>.<DD>A map of objects whose mapping entries are sequenced based on the order in
  which they were added.<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#SequencedHashMap()"><B>SequencedHashMap()</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Construct a new sequenced hash map with default initial size and load
  factor.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#SequencedHashMap(int)"><B>SequencedHashMap(int)</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Construct a new sequenced hash map with the specified initial size and
  default load factor.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#SequencedHashMap(int, float)"><B>SequencedHashMap(int, float)</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Construct a new sequenced hash map with the specified initial size and
  load factor.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#SequencedHashMap(java.util.Map)"><B>SequencedHashMap(Map)</B></A> - 
Constructor for class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Construct a new sequenced hash map and add all the elements in the
  specified map.
<DT><A HREF="javax/xml/rpc/encoding/SerializationContext.html" title="interface in javax.xml.rpc.encoding"><B>SerializationContext</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/SerializationContext.html" title="interface in javax.xml.rpc.encoding">SerializationContext</A>.<DD>The javax.xml.rpc.encoding.SerializationContext interface is
 implemented by the JAX-RPC runtime system in an XML processing
 mechanism specific manner.<DT><A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding"><B>SerializationContext</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>.<DD>Manage a serialization, including keeping track of namespace mappings
 and element stacks.<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#SerializationContext(java.io.Writer)"><B>SerializationContext(Writer)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Construct SerializationContext with associated writer
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#SerializationContext(java.io.Writer, org.apache.axis.MessageContext)"><B>SerializationContext(Writer, MessageContext)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Construct SerializationContext with associated writer and MessageContext
<DT><A HREF="javax/xml/rpc/encoding/Serializer.html" title="interface in javax.xml.rpc.encoding"><B>Serializer</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/Serializer.html" title="interface in javax.xml.rpc.encoding">Serializer</A>.<DD>The javax.xml.rpc.encoding.Serializer interface defines the
 base interface for serializers.<DT><A HREF="org/apache/axis/encoding/Serializer.html" title="interface in org.apache.axis.encoding"><B>Serializer</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Serializer.html" title="interface in org.apache.axis.encoding">Serializer</A>.<DD>This interface describes the AXIS Serializer.<DT><A HREF="javax/xml/rpc/encoding/SerializerFactory.html" title="interface in javax.xml.rpc.encoding"><B>SerializerFactory</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/SerializerFactory.html" title="interface in javax.xml.rpc.encoding">SerializerFactory</A>.<DD>The javax.xml.rpc.encoding.SerializerFactory is a factory of
 the serializers.<DT><A HREF="org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding"><B>SerializerFactory</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding">SerializerFactory</A>.<DD>This interface describes the AXIS SerializerFactory.<DT><A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc"><B>Service</B></A> - interface javax.xml.rpc.<A HREF="javax/xml/rpc/Service.html" title="interface in javax.xml.rpc">Service</A>.<DD><code>Service</code> class acts as a factory of the following:
 
 Dynamic proxy for the target service endpoint.<DT><A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client"><B>Service</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>.<DD>Axis' JAXRPC Dynamic Invoation Interface implementation of the Service
 interface.<DT><A HREF="org/apache/axis/client/Service.html#Service()"><B>Service()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object - this assumes the caller will set
 the appropriate fields by hand rather than getting them from the
 WSDL.
<DT><A HREF="org/apache/axis/client/Service.html#Service(javax.xml.namespace.QName)"><B>Service(QName)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object - this assumes the caller will set
 the appropriate fields by hand rather than getting them from the
 WSDL.
<DT><A HREF="org/apache/axis/client/Service.html#Service(org.apache.axis.EngineConfiguration, org.apache.axis.client.AxisClient)"><B>Service(EngineConfiguration, AxisClient)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a Service using the supplied configuration and engine directly.
<DT><A HREF="org/apache/axis/client/Service.html#Service(org.apache.axis.EngineConfiguration)"><B>Service(EngineConfiguration)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object as above, but also passing in
 the EngineConfiguration which should be used to set up the
 AxisClient.
<DT><A HREF="org/apache/axis/client/Service.html#Service(java.net.URL, javax.xml.namespace.QName)"><B>Service(URL, QName)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object for the service in the WSDL document
 pointed to by the wsdlDoc URL and serviceName parameters.
<DT><A HREF="org/apache/axis/client/Service.html#Service(org.apache.axis.wsdl.gen.Parser, javax.xml.namespace.QName)"><B>Service(Parser, QName)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object for the service in the WSDL document
<DT><A HREF="org/apache/axis/client/Service.html#Service(java.lang.String, javax.xml.namespace.QName)"><B>Service(String, QName)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object for the service in the WSDL document
 pointed to by the wsdlLocation and serviceName parameters.
<DT><A HREF="org/apache/axis/client/Service.html#Service(java.io.InputStream, javax.xml.namespace.QName)"><B>Service(InputStream, QName)</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Constructs a new Service object for the service in the WSDL document
 in the wsdlInputStream and serviceName parameters.
<DT><A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html" title="class in org.apache.axis.client"><B>Service.HandlerRegistryImpl</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html" title="class in org.apache.axis.client">Service.HandlerRegistryImpl</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html#Service.HandlerRegistryImpl()"><B>Service.HandlerRegistryImpl()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html" title="class in org.apache.axis.client">Service.HandlerRegistryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management"><B>ServiceAdmin</B></A> - class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>.<DD>The ServiceControl Object is responsible for starting and
 stopping specific services<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#ServiceAdmin()"><B>ServiceAdmin()</B></A> - 
Constructor for class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx"><B>ServiceAdministrator</B></A> - class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>.<DD>The ServiceAdmininstrator MBean exposes the
 org.apache.axis.management.ServiceAdmin object<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#ServiceAdministrator()"><B>ServiceAdministrator()</B></A> - 
Constructor for class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>CTR
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx"><B>ServiceAdministratorMBean</B></A> - interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>.<DD>The ServiceAdministrator MBean exposes the
 org.apache.axis.management.ServiceAdmin object<DT><A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description"><B>ServiceDesc</B></A> - interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>ServiceEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ServiceEntry</A>.<DD>This class represents a WSDL service.<DT><A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html#ServiceEntry(javax.wsdl.Service)"><B>ServiceEntry(Service)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ServiceEntry</A>
<DD>Construct a ServiceEntry from a WSDL4J Service object.
<DT><A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc"><B>ServiceException</B></A> - exception javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>.<DD>The <code>javax.xml.rpc.ServiceException</code> is thrown from the
 methods in the <code>javax.xml.rpc.Service</code> interface and
 <code>ServiceFactory</code> class.<DT><A HREF="javax/xml/rpc/ServiceException.html#ServiceException()"><B>ServiceException()</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>
<DD>Constructs a new exception with <code>null</code> as its
 detail message.
<DT><A HREF="javax/xml/rpc/ServiceException.html#ServiceException(java.lang.String)"><B>ServiceException(String)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>
<DD>Constructs a new exception with the specified detail
 message.
<DT><A HREF="javax/xml/rpc/ServiceException.html#ServiceException(java.lang.String, java.lang.Throwable)"><B>ServiceException(String, Throwable)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>
<DD>Constructs a new exception with the specified detail
 message and cause.
<DT><A HREF="javax/xml/rpc/ServiceException.html#ServiceException(java.lang.Throwable)"><B>ServiceException(Throwable)</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceException.html" title="class in javax.xml.rpc">ServiceException</A>
<DD>Constructs a new exception with the specified cause
 and a detail message of <tt>(cause==null ? null :
 cause.toString())</tt> (which typically contains the
 class and detail message of <tt>cause</tt>).
<DT><A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc"><B>ServiceFactory</B></A> - class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>.<DD>The <code>javax.xml.rpc.ServiceFactory</code> is an abstract class
 that provides a factory for the creation of instances of the type
 <code>javax.xml.rpc.Service</code>.<DT><A HREF="javax/xml/rpc/ServiceFactory.html#ServiceFactory()"><B>ServiceFactory()</B></A> - 
Constructor for class javax.xml.rpc.<A HREF="javax/xml/rpc/ServiceFactory.html" title="class in javax.xml.rpc">ServiceFactory</A>
<DD>Protected constructor.
<DT><A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client"><B>ServiceFactory</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>.<DD>Helper class for obtaining Services from JNDI.<DT><A HREF="org/apache/axis/client/ServiceFactory.html#ServiceFactory()"><B>ServiceFactory()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/server/ServiceLifecycle.html" title="interface in javax.xml.rpc.server"><B>ServiceLifecycle</B></A> - interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServiceLifecycle.html" title="interface in javax.xml.rpc.server">ServiceLifecycle</A>.<DD>The <code>javax.xml.rpc.server.ServiceLifecycle</code> defines a lifecycle interface for a
 JAX-RPC service endpoint.<DT><A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html" title="class in org.apache.axis.security.servlet"><B>ServletAuthenticatedUser</B></A> - class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html" title="class in org.apache.axis.security.servlet">ServletAuthenticatedUser</A>.<DD>ServletAuthenticatedUser is a sligtly odd implementation of
 AuthenticatedUser.<DT><A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html#ServletAuthenticatedUser(javax.servlet.http.HttpServletRequest)"><B>ServletAuthenticatedUser(HttpServletRequest)</B></A> - 
Constructor for class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletAuthenticatedUser.html" title="class in org.apache.axis.security.servlet">ServletAuthenticatedUser</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server"><B>ServletEndpointContext</B></A> - interface javax.xml.rpc.server.<A HREF="javax/xml/rpc/server/ServletEndpointContext.html" title="interface in javax.xml.rpc.server">ServletEndpointContext</A>.<DD>The <code>ServletEndpointContext</code> provides an endpoint
 context maintained by the underlying servlet container based
 JAX-RPC runtime system.<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http"><B>ServletEndpointContextImpl</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html#ServletEndpointContextImpl()"><B>ServletEndpointContextImpl()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ServletEndpointContextImpl.html" title="class in org.apache.axis.transport.http">ServletEndpointContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/ServletEngineConfigurationFactory.html" title="class in org.apache.axis.configuration"><B>ServletEngineConfigurationFactory</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/ServletEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">ServletEngineConfigurationFactory</A>.<DD><B>Deprecated.</B>&nbsp;<I></I>&nbsp;<DT><A HREF="org/apache/axis/configuration/ServletEngineConfigurationFactory.html#ServletEngineConfigurationFactory(javax.servlet.ServletContext)"><B>ServletEngineConfigurationFactory(ServletContext)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/ServletEngineConfigurationFactory.html" title="class in org.apache.axis.configuration">ServletEngineConfigurationFactory</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet"><B>ServletSecurityProvider</B></A> - class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet">ServletSecurityProvider</A>.<DD>A ServletSecurityProvider, combined with the ServletAuthenticatedUser
 class, allows the standard servlet security mechanisms (isUserInRole(),
 etc.) to integrate with Axis' access control mechanism.<DT><A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html#ServletSecurityProvider()"><B>ServletSecurityProvider()</B></A> - 
Constructor for class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet">ServletSecurityProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session"><B>Session</B></A> - interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>.<DD>An abstract interface to provide session storage to Axis services.<DT><A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils"><B>SessionUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>.<DD>Code borrowed from AuthenticatorBase.java for generating a secure id's.<DT><A HREF="org/apache/axis/utils/SessionUtils.html#SessionUtils()"><B>SessionUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SessionUtils.html" title="class in org.apache.axis.utils">SessionUtils</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/holders/ShortHolder.html" title="class in javax.xml.rpc.holders"><B>ShortHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortHolder.html" title="class in javax.xml.rpc.holders">ShortHolder</A>.<DD>Holder for <code>short</code>s.<DT><A HREF="javax/xml/rpc/holders/ShortHolder.html#ShortHolder()"><B>ShortHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortHolder.html" title="class in javax.xml.rpc.holders">ShortHolder</A>
<DD>Make a new <code>ShortHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ShortHolder.html#ShortHolder(short)"><B>ShortHolder(short)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortHolder.html" title="class in javax.xml.rpc.holders">ShortHolder</A>
<DD>Make a new <code>ShortHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html" title="class in javax.xml.rpc.holders"><B>ShortWrapperHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html" title="class in javax.xml.rpc.holders">ShortWrapperHolder</A>.<DD>Holder for <code>Short</code>s.<DT><A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html#ShortWrapperHolder()"><B>ShortWrapperHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html" title="class in javax.xml.rpc.holders">ShortWrapperHolder</A>
<DD>Make a new <code>ShortWrapperHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html#ShortWrapperHolder(java.lang.Short)"><B>ShortWrapperHolder(Short)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html" title="class in javax.xml.rpc.holders">ShortWrapperHolder</A>
<DD>Make a new <code>ShortWrapperHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html" title="class in org.apache.axis.security.simple"><B>SimpleAuthenticatedUser</B></A> - class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html" title="class in org.apache.axis.security.simple">SimpleAuthenticatedUser</A>.<DD>SimpleAuthenticatedUser is a trivial implementation of the
 AuthenticatedUser interface, for use with a default Axis installation
 and the SimpleSecurityProvider.<DT><A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html#SimpleAuthenticatedUser(java.lang.String)"><B>SimpleAuthenticatedUser(String)</B></A> - 
Constructor for class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleAuthenticatedUser.html" title="class in org.apache.axis.security.simple">SimpleAuthenticatedUser</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html" title="class in org.apache.axis.handlers"><B>SimpleAuthenticationHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthenticationHandler</A>.<DD>Just a simple Authentication Handler to see if the user
 specified in the Bag in the MessageContext is allowed to continue.<DT><A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html#SimpleAuthenticationHandler()"><B>SimpleAuthenticationHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthenticationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthenticationHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers"><B>SimpleAuthorizationHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthorizationHandler</A>.<DD>Just a simple Authorization Handler to see if the user
 specified in the Bag in the MessageContext is allowed to preform this
 action.<DT><A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html#SimpleAuthorizationHandler()"><B>SimpleAuthorizationHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleAuthorizationHandler.html" title="class in org.apache.axis.handlers">SimpleAuthorizationHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http"><B>SimpleAxisServer</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>.<DD>This is a simple implementation of an HTTP server for processing
 SOAP requests via Apache's xml-axis.<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#SimpleAxisServer()"><B>SimpleAxisServer()</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>create a server with the default threads and sessions.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#SimpleAxisServer(int)"><B>SimpleAxisServer(int)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Create a server with a configurable pool side; sessions set to the default
 limit
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#SimpleAxisServer(int, int)"><B>SimpleAxisServer(int, int)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http"><B>SimpleAxisWorker</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html#SimpleAxisWorker(org.apache.axis.transport.http.SimpleAxisServer, java.net.Socket)"><B>SimpleAxisWorker(SimpleAxisServer, Socket)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisWorker.html" title="class in org.apache.axis.transport.http">SimpleAxisWorker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis"><B>SimpleChain</B></A> - class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>.<DD>A Simple Chain is a 'composite' Handler in that it aggregates a collection
 of Handlers and also acts as a Handler which delegates its operations to
 the collection.<DT><A HREF="org/apache/axis/SimpleChain.html#SimpleChain()"><B>SimpleChain()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/SimpleChain.html" title="class in org.apache.axis">SimpleChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>SimpleDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>.<DD>A deserializer for any simple type with a (String) constructor.<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#SimpleDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and 
 javaType (which could be a java primitive like int.class)
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#SimpleDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>SimpleDeserializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>SimpleDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializerFactory</A>.<DD>A deserializer for any simple type with a (String) constructor.<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html#SimpleDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializerFactory</A>
<DD>Note that the factory is constructed with the QName and xmlType.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms"><B>SimpleJMSListener</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>.<DD>SimpleJMSListener implements the javax.jms.MessageListener interface.<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#SimpleJMSListener(java.util.HashMap, java.util.HashMap, java.lang.String, java.lang.String, java.lang.String, boolean)"><B>SimpleJMSListener(HashMap, HashMap, String, String, String, boolean)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html" title="class in org.apache.axis.transport.jms"><B>SimpleJMSWorker</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html" title="class in org.apache.axis.transport.jms">SimpleJMSWorker</A>.<DD>SimpleJMSWorker is a worker thread that processes messages that are
   received by SimpleJMSListener.<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html#SimpleJMSWorker(org.apache.axis.transport.jms.SimpleJMSListener, javax.jms.BytesMessage)"><B>SimpleJMSWorker(SimpleJMSListener, BytesMessage)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSWorker.html" title="class in org.apache.axis.transport.jms">SimpleJMSWorker</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>SimpleListDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>.<DD>Deserializer for 
 <xsd:simpleType ...>
   <xsd:list itemType="...">
 </xsd:simpleType>
 based on SimpleDeserializer<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#SimpleListDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleListDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and
 javaType (which could be a java primitive like int.class)
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#SimpleListDeserializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>SimpleListDeserializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>SimpleListDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializerFactory</A>.<DD>DeserializerFactory for 
 <xsd:simpleType ...>
   <xsd:list itemType="...">
 </xsd:simpleType>
 based on SimpleDeserializerFactory<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html#SimpleListDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleListDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializerFactory</A>
<DD>Note that the factory is constructed with the QName and xmlType.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser"><B>SimpleListSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>.<DD>Serializer for 
 <xsd:simpleType ...>
   <xsd:list itemType="...">
 </xsd:simpleType>
 based on SimpleSerializer<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#SimpleListSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleListSerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#SimpleListSerializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>SimpleListSerializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>SimpleListSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializerFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializerFactory.html#SimpleListSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleListSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializerFactory</A>
<DD>Note that the factory is constructed with the QName and xmlType.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration"><B>SimpleProvider</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>.<DD>A SimpleProvider is an EngineConfiguration which contains a simple
 HashMap-based registry of Handlers, Transports, and Services.<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#SimpleProvider()"><B>SimpleProvider()</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Default constructor.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#SimpleProvider(org.apache.axis.EngineConfiguration)"><B>SimpleProvider(EngineConfiguration)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Constructor which takes an EngineConfiguration which will be used
 as the default.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#SimpleProvider(org.apache.axis.encoding.TypeMappingRegistry)"><B>SimpleProvider(TypeMappingRegistry)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Construct a SimpleProvider using the supplied TypeMappingRegistry.
<DT><A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple"><B>SimpleSecurityProvider</B></A> - class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple">SimpleSecurityProvider</A>.<DD>SimpleSecurityProvider<DT><A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html#SimpleSecurityProvider()"><B>SimpleSecurityProvider()</B></A> - 
Constructor for class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple">SimpleSecurityProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser"><B>SimpleSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>.<DD>Serializer for primitives and anything simple whose value is obtained with toString()<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#SimpleSerializer(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleSerializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#SimpleSerializer(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.description.TypeDesc)"><B>SimpleSerializer(Class, QName, TypeDesc)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>SimpleSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleSerializerFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html#SimpleSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>SimpleSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializerFactory.html" title="class in org.apache.axis.encoding.ser">SimpleSerializerFactory</A>
<DD>Note that the factory is constructed with the QName and xmlType.
<DT><A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session"><B>SimpleSession</B></A> - class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>.<DD>A trivial session implementation.<DT><A HREF="org/apache/axis/session/SimpleSession.html#SimpleSession()"><B>SimpleSession()</B></A> - 
Constructor for class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Default constructor - set lastTouched to now
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers"><B>SimpleSessionHandler</B></A> - class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>.<DD>This handler uses SOAP headers to do simple session management.<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#SimpleSessionHandler()"><B>SimpleSessionHandler()</B></A> - 
Constructor for class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis"><B>SimpleTargetedChain</B></A> - class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>.<DD>A SimpleTargetedChain has a request handler, a pivot handler, and a response
 handler (any of which may themselves be chains).<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#SimpleTargetedChain()"><B>SimpleTargetedChain()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>Default no-arg constructor.
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#SimpleTargetedChain(org.apache.axis.Handler)"><B>SimpleTargetedChain(Handler)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>Constructor for an instance with effectively only a pivot handler.
<DT><A HREF="org/apache/axis/SimpleTargetedChain.html#SimpleTargetedChain(org.apache.axis.Handler, org.apache.axis.Handler, org.apache.axis.Handler)"><B>SimpleTargetedChain(Handler, Handler, Handler)</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/SimpleTargetedChain.html" title="class in org.apache.axis">SimpleTargetedChain</A>
<DD>Constructor which takes real or null request, pivot, and response
 handlers.
<DT><A HREF="org/apache/axis/encoding/SimpleType.html" title="interface in org.apache.axis.encoding"><B>SimpleType</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SimpleType.html" title="interface in org.apache.axis.encoding">SimpleType</A>.<DD>Marker interface to indicate that a bean is "really" a simple type
 (typically with attributes).<DT><A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html" title="class in org.apache.axis.components.uuid"><B>SimpleUUIDGen</B></A> - class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html" title="class in org.apache.axis.components.uuid">SimpleUUIDGen</A>.<DD>Used to create new universally unique identifiers or UUID's (sometimes called
 GUID's).<DT><A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html#SimpleUUIDGen()"><B>SimpleUUIDGen()</B></A> - 
Constructor for class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/SimpleUUIDGen.html" title="class in org.apache.axis.components.uuid">SimpleUUIDGen</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SimpleValueSerializer.html" title="interface in org.apache.axis.encoding"><B>SimpleValueSerializer</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SimpleValueSerializer.html" title="interface in org.apache.axis.encoding">SimpleValueSerializer</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/Skeleton.html" title="interface in org.apache.axis.wsdl"><B>Skeleton</B></A> - interface org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Skeleton.html" title="interface in org.apache.axis.wsdl">Skeleton</A>.<DD>Interface for WSDL2Java generated skeletons<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl"><B>SkeletonImpl</B></A> - class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>.<DD>Provides Base function implementation for the Skeleton interface<DT><A HREF="org/apache/axis/wsdl/SkeletonImpl.html#SkeletonImpl()"><B>SkeletonImpl()</B></A> - 
Constructor for class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/SkeletonImpl.html" title="class in org.apache.axis.wsdl">SkeletonImpl</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/components/net/SocketFactory.html" title="interface in org.apache.axis.components.net"><B>SocketFactory</B></A> - interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactory.html" title="interface in org.apache.axis.components.net">SocketFactory</A>.<DD>Socket factory.<DT><A HREF="org/apache/axis/components/net/SocketFactoryFactory.html" title="class in org.apache.axis.components.net"><B>SocketFactoryFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactoryFactory.html" title="class in org.apache.axis.components.net">SocketFactoryFactory</A>.<DD>Class SocketFactoryFactory<DT><A HREF="org/apache/axis/components/net/SocketFactoryFactory.html#SocketFactoryFactory()"><B>SocketFactoryFactory()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SocketFactoryFactory.html" title="class in org.apache.axis.components.net">SocketFactoryFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SocketHolder.html" title="class in org.apache.axis.transport.http"><B>SocketHolder</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketHolder.html" title="class in org.apache.axis.transport.http">SocketHolder</A>.<DD>hold a Socket.<DT><A HREF="org/apache/axis/transport/http/SocketHolder.html#SocketHolder(java.net.Socket)"><B>SocketHolder(Socket)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketHolder.html" title="class in org.apache.axis.transport.http">SocketHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SocketInputStream.html" title="class in org.apache.axis.transport.http"><B>SocketInputStream</B></A> - class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketInputStream.html" title="class in org.apache.axis.transport.http">SocketInputStream</A>.<DD>The ONLY reason for this is so we can clean up sockets quicker/cleaner.<DT><A HREF="org/apache/axis/transport/http/SocketInputStream.html#SocketInputStream(java.io.InputStream, java.net.Socket)"><B>SocketInputStream(InputStream, Socket)</B></A> - 
Constructor for class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketInputStream.html" title="class in org.apache.axis.transport.http">SocketInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms"><B>SonicMQVendorAdapter</B></A> - class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>.<DD>Defines SonicMQ specific constants for connnection factory creation.<DT><A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html#SonicMQVendorAdapter()"><B>SonicMQVendorAdapter()</B></A> - 
Constructor for class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/SonicMQVendorAdapter.html" title="class in org.apache.axis.components.jms">SonicMQVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>SourceDataHandlerDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerDeserializer</A>.<DD>SourceDataHandler Deserializer
 Modified by Russell Butek <butek@us.ibm.com><DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html#SourceDataHandlerDeserializer()"><B>SourceDataHandlerDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser"><B>SourceDataHandlerSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerSerializer</A>.<DD>SourceDataHandler Serializer<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html#SourceDataHandlerSerializer()"><B>SourceDataHandlerSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments"><B>SourceDataSource</B></A> - class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#SourceDataSource(java.lang.String, javax.xml.transform.stream.StreamSource)"><B>SourceDataSource(String, StreamSource)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/SourceDataSource.html#SourceDataSource(java.lang.String, java.lang.String, javax.xml.transform.stream.StreamSource)"><B>SourceDataSource(String, String, StreamSource)</B></A> - 
Constructor for class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/SourceDataSource.html" title="class in org.apache.axis.attachments">SourceDataSource</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/SourceHolder.html" title="class in org.apache.axis.holders"><B>SourceHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SourceHolder.html" title="class in org.apache.axis.holders">SourceHolder</A>.<DD>Class SourceHolder<DT><A HREF="org/apache/axis/holders/SourceHolder.html#SourceHolder()"><B>SourceHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SourceHolder.html" title="class in org.apache.axis.holders">SourceHolder</A>
<DD>Constructor SourceHolder
<DT><A HREF="org/apache/axis/holders/SourceHolder.html#SourceHolder(javax.xml.transform.Source)"><B>SourceHolder(Source)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SourceHolder.html" title="class in org.apache.axis.holders">SourceHolder</A>
<DD>Constructor SourceHolder
<DT><A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async"><B>Status</B></A> - class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>.<DD>Status of the async request<DT><A HREF="org/apache/axis/client/async/Status.Type.html" title="class in org.apache.axis.client.async"><B>Status.Type</B></A> - class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.Type.html" title="class in org.apache.axis.client.async">Status.Type</A>.<DD>Class Type<DT><A HREF="javax/xml/rpc/holders/StringHolder.html" title="class in javax.xml.rpc.holders"><B>StringHolder</B></A> - class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/StringHolder.html" title="class in javax.xml.rpc.holders">StringHolder</A>.<DD>Holder for <code>String</code>s.<DT><A HREF="javax/xml/rpc/holders/StringHolder.html#StringHolder()"><B>StringHolder()</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/StringHolder.html" title="class in javax.xml.rpc.holders">StringHolder</A>
<DD>Make a new <code>StringHolder</code> with a <code>null</code> value.
<DT><A HREF="javax/xml/rpc/holders/StringHolder.html#StringHolder(java.lang.String)"><B>StringHolder(String)</B></A> - 
Constructor for class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/StringHolder.html" title="class in javax.xml.rpc.holders">StringHolder</A>
<DD>Make a new <code>StringHolder</code> with <code>value</code> as
 the value.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#StringToElement(java.lang.String, java.lang.String, java.lang.String)"><B>StringToElement(String, String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Convert a simple string to an element with a text node
<DT><A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils"><B>StringUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>.<DD>&nbsp;<DT><A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc"><B>Stub</B></A> - interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>.<DD>The interface <code>javax.xml.rpc.Stub</code> is the common base interface
 for the stub classes.<DT><A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client"><B>Stub</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>.<DD>This class is the base for all generated stubs.<DT><A HREF="org/apache/axis/client/Stub.html#Stub()"><B>Stub()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants"><B>Style</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>.<DD>Description of the different styles
 <br>
 <b>style=rpc, use=encoded</b><br>
   First element of the SOAP body is the
   operation.<DT><A HREF="org/apache/axis/constants/Style.html#Style()"><B>Style()</B></A> - 
Constructor for class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/enum/Style.html" title="class in org.apache.axis.enum"><B>Style</B></A> - class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Style.html" title="class in org.apache.axis.enum">Style</A>.<DD><B>Deprecated.</B>&nbsp;<I>please use org.apache.axis.constants.Scope</I><DT><A HREF="org/apache/axis/enum/Style.html#Style()"><B>Style()</B></A> - 
Constructor for class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Style.html" title="class in org.apache.axis.enum">Style</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.Type.html" title="class in org.apache.axis.constants"><B>Style.Type</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.Type.html" title="class in org.apache.axis.constants">Style.Type</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/transport/jms/Subscription.html" title="class in org.apache.axis.transport.jms"><B>Subscription</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Subscription.html" title="class in org.apache.axis.transport.jms">Subscription</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net"><B>SunFakeTrustSocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory</A>.<DD>Hook for Axis sender, allowing unsigned server certs<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html#SunFakeTrustSocketFactory(java.util.Hashtable)"><B>SunFakeTrustSocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory</A>
<DD>Constructor FakeTrustSocketFactory
<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net"><B>SunFakeTrustSocketFactory.FakeX509TrustManager</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>.<DD>Class FakeX509TrustManager<DT><A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html#SunFakeTrustSocketFactory.FakeX509TrustManager()"><B>SunFakeTrustSocketFactory.FakeX509TrustManager()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunFakeTrustSocketFactory.FakeX509TrustManager.html" title="class in org.apache.axis.components.net">SunFakeTrustSocketFactory.FakeX509TrustManager</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html" title="class in org.apache.axis.components.net"><B>SunJSSESocketFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html" title="class in org.apache.axis.components.net">SunJSSESocketFactory</A>.<DD>SSL socket factory.<DT><A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html#SunJSSESocketFactory(java.util.Hashtable)"><B>SunJSSESocketFactory(Hashtable)</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/SunJSSESocketFactory.html" title="class in org.apache.axis.components.net">SunJSSESocketFactory</A>
<DD>Constructor JSSESocketFactory
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>SymTabEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>.<DD>SymTabEntry is the base class for all symbol table entries.<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#SymTabEntry(javax.xml.namespace.QName)"><B>SymTabEntry(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Construct a symbol table entry with the given QName.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable"><B>SymbolTable</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>.<DD>This class represents a table of all of the top-level symbols from a set of WSDL Definitions and
 DOM Documents:  XML types; WSDL messages, portTypes, bindings, and services.<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#SymbolTable(org.apache.axis.wsdl.symbolTable.BaseTypeMapping, boolean, boolean, boolean)"><B>SymbolTable(BaseTypeMapping, boolean, boolean, boolean)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Construct a symbol table with the given Namespaces.
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#safeShutdown()"><B>safeShutdown()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Forcefully shutdown the pool
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#sanityCheck(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>sanityCheck(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method sanityCheck
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#sanityCheck(org.apache.axis.wsdl.symbolTable.SymbolTable)"><B>sanityCheck(SymbolTable)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Method sanityCheck
<DT><A HREF="javax/xml/soap/SOAPMessage.html#saveChanges()"><B>saveChanges()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Updates this <CODE>SOAPMessage</CODE> object with all the
   changes that have been made to it.
<DT><A HREF="org/apache/axis/Message.html#saveChanges()"><B>saveChanges()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Updates this <CODE>SOAPMessage</CODE> object with all the
   changes that have been made to it.
<DT><A HREF="org/apache/axis/SOAPPart.html#saveChanges()"><B>saveChanges()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#saveConfiguration()"><B>saveConfiguration()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Write out our engine configuration.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#saveConfiguration()"><B>saveConfiguration()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#saveConfiguration()"><B>saveConfiguration()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#saveConfiguration()"><B>saveConfiguration()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/image/ImageIO.html#saveImage(java.lang.String, java.awt.Image, java.io.OutputStream)"><B>saveImage(String, Image, OutputStream)</B></A> - 
Method in interface org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/ImageIO.html" title="interface in org.apache.axis.components.image">ImageIO</A>
<DD>Save an image.
<DT><A HREF="org/apache/axis/components/image/JDK13IO.html#saveImage(java.lang.String, java.awt.Image, java.io.OutputStream)"><B>saveImage(String, Image, OutputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JDK13IO.html" title="class in org.apache.axis.components.image">JDK13IO</A>
<DD>Save an image.
<DT><A HREF="org/apache/axis/components/image/JimiIO.html#saveImage(java.lang.String, java.awt.Image, java.io.OutputStream)"><B>saveImage(String, Image, OutputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/JimiIO.html" title="class in org.apache.axis.components.image">JimiIO</A>
<DD>Save an image.
<DT><A HREF="org/apache/axis/components/image/MerlinIO.html#saveImage(java.lang.String, java.awt.Image, java.io.OutputStream)"><B>saveImage(String, Image, OutputStream)</B></A> - 
Method in class org.apache.axis.components.image.<A HREF="org/apache/axis/components/image/MerlinIO.html" title="class in org.apache.axis.components.image">MerlinIO</A>
<DD>Save an image.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#saveRequired()"><B>saveRequired()</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Indicates whether this <CODE>SOAPMessage</CODE> object
 has had the method <CODE>saveChanges</CODE> called on
 it.
<DT><A HREF="org/apache/axis/Message.html#saveRequired()"><B>saveRequired()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Indicates whether this <CODE>SOAPMessage</CODE> object
 has had the method <CODE>saveChanges</CODE> called on
 it.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#scope"><B>scope</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Scope for this item (default is singleton)
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#scopeStrings"><B>scopeStrings</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html#searchedForExtensionBase"><B>searchedForExtensionBase</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/DefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">DefinedType</A>
<DD>Field searchedForExtensionBase
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#selectChildren(XmlObject, java.lang.Class)"><B>selectChildren(XmlObject, Class)</B></A> - 
Static method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html#send(javax.jms.Destination, javax.jms.Message, int, int, long)"><B>send(Destination, Message, int, int, long)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.SyncConnection.SendSession.html" title="class in org.apache.axis.transport.jms">JMSConnector.SyncConnection.SendSession</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#send(byte[])"><B>send(byte[])</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Send a message w/o waiting for a response.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#send(byte[], java.util.HashMap)"><B>send(byte[], HashMap)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Send a message w/o waiting for a response.
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#sendChunk(java.io.OutputStream, byte, byte[], byte)"><B>sendChunk(OutputStream, byte, byte[], byte)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#sendChunk(java.io.OutputStream, byte, byte[], int, int, byte)"><B>sendChunk(OutputStream, byte, byte[], int, int, byte)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#sendHeader(java.io.OutputStream, byte, long, byte)"><B>sendHeader(OutputStream, byte, long, byte)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#sendtype"><B>sendtype</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>The form of the attachments, whether MIME or DIME.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#sequence()"><B>sequence()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Returns a List view of the keys rather than a set view.
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#ser"><B>ser</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#serClass"><B>serClass</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#serClassConstructor"><B>serClassConstructor</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object)"><B>serialize(QName, Attributes, Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Serialize the indicated value as an element with the name
 indicated by elemQName.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName)"><B>serialize(QName, Attributes, Object, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD><B>Deprecated.</B>&nbsp;<I>use serialize(QName, Attributes, Object, QName, Class) instead</I>
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName, java.lang.Class)"><B>serialize(QName, Attributes, Object, QName, Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Serialize the indicated value as an element with the name
 indicated by elemQName.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName, boolean, java.lang.Boolean)"><B>serialize(QName, Attributes, Object, QName, boolean, Boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD><B>Deprecated.</B>&nbsp;<I>use serialize(QName, Attributes, Object, QName,
 Boolean, Boolean) instead.</I>
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName, java.lang.Boolean, java.lang.Boolean)"><B>serialize(QName, Attributes, Object, QName, Boolean, Boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Serialize the indicated value as an element with the name
 indicated by elemQName.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName, java.lang.Class, java.lang.Boolean, java.lang.Boolean)"><B>serialize(QName, Attributes, Object, QName, Class, Boolean, Boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Serialize the indicated value as an element with the name
 indicated by elemQName.
<DT><A HREF="org/apache/axis/encoding/Serializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Serializer.html" title="interface in org.apache.axis.encoding">Serializer</A>
<DD>Serialize an element named name, with the indicated attributes
 and value.
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, javax.xml.namespace.QName, java.lang.Boolean, java.lang.Boolean)"><B>serialize(QName, Attributes, Object, QName, Boolean, Boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>Serialize an element that is an array.
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>Serialize a base64 quantity.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>Serialize a bean.
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>
<DD>Serialize a Date.
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>
<DD>Serialize a Date.
<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser">DocumentSerializer</A>
<DD>Serialize a DOM Document
<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser">ElementSerializer</A>
<DD>Serialize a DOM Element
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>
<DD>Serialize an enumeration
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>Serialize a HexBinary quantity.
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerSerializer</A>
<DD>Serialize a Source DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>
<DD>Serialize a JAF DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>
<DD>Serialize a Map

 Walk the collection of keys, serializing each key/value pair
 inside an <item> element.
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerSerializer</A>
<DD>Serialize a Source DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerSerializer</A>
<DD>Serialize a Source DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerSerializer</A>
<DD>Serialize a Source DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>Serialize a QName.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>Serialize a list of primitives or simple values.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>Serialize a primitive or simple value.
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerSerializer</A>
<DD>Serialize a Source DataHandler quantity.
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>
<DD>Serialize a Time.
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>Serialize a Vector

 Walk the collection of keys, serializing each key/value pair
 inside an <item> element.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>
<DD>Serialize a Castor Enum Type object.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>
<DD>Serialize a Castor object.
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#serialize(javax.xml.namespace.QName, org.xml.sax.Attributes, java.lang.Object, org.apache.axis.encoding.SerializationContext)"><B>serialize(QName, Attributes, Object, SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>Serialize an element named name, with the indicated attributes
 and value.
<DT><A HREF="org/apache/axis/message/RPCParam.html#serialize(org.apache.axis.encoding.SerializationContext)"><B>serialize(SerializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/DOM2Writer.html#serializeAsXML(org.w3c.dom.Node, java.io.Writer, boolean)"><B>serializeAsXML(Node, Writer, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>
<DD>Serialize this node into the writer as XML.
<DT><A HREF="org/apache/axis/utils/DOM2Writer.html#serializeAsXML(org.w3c.dom.Node, java.io.Writer, boolean, boolean)"><B>serializeAsXML(Node, Writer, boolean, boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/DOM2Writer.html" title="class in org.apache.axis.utils">DOM2Writer</A>
<DD>Serialize this node into the writer as XML.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#serializer"><B>serializer</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html#serverConfigFile"><B>serverConfigFile</B></A> - 
Variable in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/EngineConfigurationFactoryDefault.html" title="class in org.apache.axis.configuration">EngineConfigurationFactoryDefault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#service"><B>service</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AxisServletBase.html#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)"><B>service(HttpServletRequest, HttpServletResponse)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisServletBase.html" title="class in org.apache.axis.transport.http">AxisServletBase</A>
<DD>subclass of service method that tracks entry count; calls the
 parent's implementation to have the http method cracked and delegated
 to the doGet, doPost method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#service"><B>service</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field WSDL service
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#serviceIfaceWriter"><B>serviceIfaceWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field serviceIfaceWriter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#serviceImplWriter"><B>serviceImplWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field serviceImplWriter
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#serviceObjects"><B>serviceObjects</B></A> - 
Variable in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>A list of our active service objects (these can have lifetimes and
 be reaped)
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#serviceWriters"><B>serviceWriters</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Return Wsdl2java's JavaServiceWriter object.
<DT><A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html#sessionCreated(javax.servlet.http.HttpSessionEvent)"><B>sessionCreated(HttpSessionEvent)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http">AxisHTTPSessionListener</A>
<DD>No-op for now
<DT><A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html#sessionDestroyed(javax.servlet.http.HttpSessionEvent)"><B>sessionDestroyed(HttpSessionEvent)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHTTPSessionListener.html" title="class in org.apache.axis.transport.http">AxisHTTPSessionListener</A>
<DD>Called when a session is destroyed by the servlet engine.
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#sessionHeaderName"><B>sessionHeaderName</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#sessionIndex"><B>sessionIndex</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/CallbackTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding">CallbackTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ConstructorTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/ConstructorTarget.html" title="class in org.apache.axis.encoding">ConstructorTarget</A>
<DD>Instantiate a new class with right constructor
<DT><A HREF="org/apache/axis/encoding/DeserializerTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding">DeserializerTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/FieldTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/FieldTarget.html" title="class in org.apache.axis.encoding">FieldTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/MethodTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MethodTarget.html" title="class in org.apache.axis.encoding">MethodTarget</A>
<DD>Set the target's value by invoking the targetMethod.
<DT><A HREF="org/apache/axis/encoding/Target.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Target.html" title="interface in org.apache.axis.encoding">Target</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanPropertyTarget.html" title="class in org.apache.axis.encoding.ser">BeanPropertyTarget</A>
<DD>set the bean property with specified value
<DT><A HREF="org/apache/axis/message/RPCParam.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>This set method is registered during deserialization
 to set the deserialized value.
<DT><A HREF="org/apache/axis/message/RPCParamTarget.html#set(java.lang.Object)"><B>set(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParamTarget.html" title="class in org.apache.axis.message">RPCParamTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/session/Session.html#set(java.lang.String, java.lang.Object)"><B>set(String, Object)</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Set a property in the session
<DT><A HREF="org/apache/axis/session/SimpleSession.html#set(java.lang.String, java.lang.Object)"><B>set(String, Object)</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Set a property in the session
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#set(java.lang.String, java.lang.Object)"><B>set(String, Object)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Set a property in the session
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#set(java.lang.Object, java.lang.Object)"><B>set(Object, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Set the property value
<DT><A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html#set(java.lang.Object, int, java.lang.Object)"><B>set(Object, int, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/BeanPropertyDescriptor.html" title="class in org.apache.axis.utils">BeanPropertyDescriptor</A>
<DD>Set an indexed property value
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#set(java.lang.Object, java.lang.Object)"><B>set(Object, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Set the property value
<DT><A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html#set(java.lang.Object, int, java.lang.Object)"><B>set(Object, int, Object)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/FieldPropertyDescriptor.html" title="class in org.apache.axis.utils">FieldPropertyDescriptor</A>
<DD>Set an indexed property value
<DT><A HREF="javax/xml/soap/SOAPHeaderElement.html#setActor(java.lang.String)"><B>setActor(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap">SOAPHeaderElement</A>
<DD>Sets the actor associated with this <CODE>
 SOAPHeaderElement</CODE> object to the specified actor.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setActor(java.lang.String)"><B>setActor(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#setAdminPassword(java.lang.String)"><B>setAdminPassword(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Set the administration password.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAllAttributes(org.xml.sax.Attributes)"><B>setAllAttributes(Attributes)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set all the attributes of this instance
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#setAllReferencesToTrue()"><B>setAllReferencesToTrue()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>The --all flag is set on the command line (or generateAll(true) is called
 on WSDL2Java).
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setAllWanted(boolean)"><B>setAllWanted(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>By default, code is generated only for referenced elements.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setAllowInvalidURL(boolean)"><B>setAllowInvalidURL(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisServiceConfigImpl.html#setAllowedMethods(java.lang.String)"><B>setAllowedMethods(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisServiceConfigImpl.html" title="class in org.apache.axis">AxisServiceConfigImpl</A>
<DD>Set the allowed method names.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setAllowedMethods(java.util.List)"><B>setAllowedMethods(List)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setAllowedMethods(java.util.List)"><B>setAllowedMethods(List)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setAllowedMethods(java.lang.String)"><B>setAllowedMethods(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Add a list of methods to export
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setAllowedMethods(java.util.Vector)"><B>setAllowedMethods(Vector)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Add a Vector of methods to export
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setAnyElement(boolean)"><B>setAnyElement(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setAnyElement
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setArrayType(javax.xml.namespace.QName)"><B>setArrayType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setAttachmentFile(java.lang.String)"><B>setAttachmentFile(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Set the filename of this attachment part.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#setAttachmentParts(java.util.Collection)"><B>setAttachmentParts(Collection)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Will the attachments of this message to that of the colleciton.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#setAttachmentParts(java.util.Collection)"><B>setAttachmentParts(Collection)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Add the collection of parts.
<DT><A HREF="org/apache/axis/client/Stub.html#setAttachments(org.apache.axis.client.Call)"><B>setAttachments(Call)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>copy the attachments from the stub to the call object.
<DT><A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html#setAttachmentsPriorToSoapPart(java.util.Iterator)"><B>setAttachmentsPriorToSoapPart(Iterator)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultipartAttachmentStreams.html" title="class in org.apache.axis.attachments">MultipartAttachmentStreams</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAttribute(java.lang.String, java.lang.String, java.lang.String)"><B>setAttribute(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Set an attribute, adding the attribute if it isn't already present
 in this element, and changing the value if it is.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAttribute(java.lang.String, java.lang.String)"><B>setAttribute(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set or update an attribute.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAttributeNS(java.lang.String, java.lang.String, java.lang.String)"><B>setAttributeNS(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set an attribute or alter an existing one
<DT><A HREF="org/apache/axis/description/AttributeDesc.html#setAttributeName(java.lang.String)"><B>setAttributeName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/AttributeDesc.html" title="class in org.apache.axis.description">AttributeDesc</A>
<DD>Set the XML attribute's name, without giving it a namespace.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAttributeNode(org.w3c.dom.Attr)"><B>setAttributeNode(Attr)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD><B>Deprecated.</B>&nbsp;<I>this is not implemented</I>
<DT><A HREF="org/apache/axis/message/MessageElement.html#setAttributeNodeNS(org.w3c.dom.Attr)"><B>setAttributeNodeNS(Attr)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set an attribute as a node
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setBaseType(boolean)"><B>setBaseType(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Method setBaseType
<DT><A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html#setBaseTypeMapping(org.apache.axis.wsdl.symbolTable.BaseTypeMapping)"><B>setBaseTypeMapping(BaseTypeMapping)</B></A> - 
Method in interface org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/GeneratorFactory.html" title="interface in org.apache.axis.wsdl.gen">GeneratorFactory</A>
<DD>Get TypeMapping to use for translating
 QNames to base types
<DT><A HREF="org/apache/axis/wsdl/gen/NoopFactory.html#setBaseTypeMapping(org.apache.axis.wsdl.symbolTable.BaseTypeMapping)"><B>setBaseTypeMapping(BaseTypeMapping)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/NoopFactory.html" title="class in org.apache.axis.wsdl.gen">NoopFactory</A>
<DD>Method setBaseTypeMapping
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#setBaseTypeMapping(org.apache.axis.wsdl.symbolTable.BaseTypeMapping)"><B>setBaseTypeMapping(BaseTypeMapping)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method setBaseTypeMapping
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setBindingName(java.lang.String)"><B>setBindingName(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the binding name
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setBindingStyle(org.apache.axis.constants.Style)"><B>setBindingStyle(Style)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set this entry's binding style.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setBindingType(int)"><B>setBindingType(int)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set this entry's binding type.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setBody(org.apache.axis.message.SOAPBody)"><B>setBody(SOAPBody)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Set the soap body
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setBodyType(javax.wsdl.Operation, org.apache.axis.constants.Use, boolean)"><B>setBodyType(Operation, Use, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the body type for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setBuildFileWanted(boolean)"><B>setBuildFileWanted(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>turn the build file genaration ON
<DT><A HREF="org/apache/axis/attachments/OctetStream.html#setBytes(byte[])"><B>setBytes(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/OctetStream.html" title="class in org.apache.axis.attachments">OctetStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Service.html#setCacheWSDL(boolean)"><B>setCacheWSDL(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Allows users to turn caching of WSDL documents on or off.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setCachedService(org.apache.axis.handlers.soap.SOAPService)"><B>setCachedService(SOAPService)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/async/AsyncCall.html#setCallback(org.apache.axis.client.async.IAsyncCallback)"><B>setCallback(IAsyncCallback)</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncCall.html" title="class in org.apache.axis.client.async">AsyncCall</A>
<DD>Method setCallback
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#setChildValue(java.lang.Object, java.lang.Object)"><B>setChildValue(Object, Object)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>If the deserializer has component values (like ArrayDeserializer)
 this method sets the specific component via the hint.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#setChildValue(java.lang.Object, java.lang.Object)"><B>setChildValue(Object, Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>If the deserializer has component values (like ArrayDeserializer)
 this method sets the specific component via the hint.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#setChildValue(java.lang.Object, java.lang.Object)"><B>setChildValue(Object, Object)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>set is called during deserialization to assign
 the Object value to the array position indicated by hint.
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#setChildValue(java.lang.Object, java.lang.Object)"><B>setChildValue(Object, Object)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>The registerValueTarget code above causes this set function to be invoked when
 each value is known.
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#setChildValue(java.lang.Object, java.lang.Object)"><B>setChildValue(Object, Object)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>The registerValueTarget code above causes this set function to be invoked when
 each value is known.
<DT><A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html#setChunkSize(int)"><B>setChunkSize(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DynamicContentDataHandler.html" title="class in org.apache.axis.attachments">DynamicContentDataHandler</A>
<DD>Set the DIME record chunk size
<DT><A HREF="org/apache/axis/AxisProperties.html#setClassDefault(java.lang.Class, java.lang.String)"><B>setClassDefault(Class, String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#setClassDefaults(java.lang.Class, java.lang.String[])"><B>setClassDefaults(Class, String[])</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setClassLoader(java.lang.ClassLoader)"><B>setClassLoader(ClassLoader)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set a new classloader.
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#setClassLoader(java.lang.String, java.lang.ClassLoader)"><B>setClassLoader(String, ClassLoader)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Set the ClassLoader associated with the given className.
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setClassName(java.lang.String)"><B>setClassName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#setClassOverrideProperty(java.lang.Class, java.lang.String)"><B>setClassOverrideProperty(Class, String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#setClasspath(java.lang.String)"><B>setClasspath(String)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Set the classpath to be used for this compilation
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#setClasspath(java.lang.String)"><B>setClasspath(String)</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Set the classpath to be used for this compilation
<DT><A HREF="org/apache/axis/client/Call.html#setClientHandlers(org.apache.axis.Handler, org.apache.axis.Handler)"><B>setClientHandlers(Handler, Handler)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the client-side request and response Handlers.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setCls(java.lang.Class)"><B>setCls(Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the <code>Class</code> to export
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setCls(java.lang.String)"><B>setCls(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the <code>Class</code> to export
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setClsSmart(java.lang.Class, java.lang.String)"><B>setClsSmart(Class, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the <code>Class</code> to export.
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setComplex(boolean)"><B>setComplex(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#setComponentQName(javax.xml.namespace.QName)"><B>setComponentQName(QName)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html#setComponentType(javax.xml.namespace.QName)"><B>setComponentType(QName)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html#setComponentType(javax.xml.namespace.QName)"><B>setComponentType(QName)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializerFactory.html" title="class in org.apache.axis.encoding.ser">ArraySerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setComponentType(javax.xml.namespace.QName)"><B>setComponentType(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Set the QName of the component if this is an array type
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#setConstructor(java.lang.reflect.Constructor)"><B>setConstructor(Constructor)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>The Factory calls setConstructor.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#setConstructor(java.lang.reflect.Constructor)"><B>setConstructor(Constructor)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>The Factory calls setConstructor.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setContainedAttributes(java.util.Vector)"><B>setContainedAttributes(Vector)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setContainedElements(java.util.Vector)"><B>setContainedElements(Vector)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setContent(java.lang.Object, java.lang.String)"><B>setContent(Object, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Sets the content of this attachment part to that of the
 given <CODE>Object</CODE> and sets the value of the <CODE>
 Content-Type</CODE> header to the given type.
<DT><A HREF="javax/xml/soap/SOAPPart.html#setContent(javax.xml.transform.Source)"><B>setContent(Source)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Sets the content of the <CODE>SOAPEnvelope</CODE> object
 with the data from the given <CODE>Source</CODE> object.
<DT><A HREF="org/apache/axis/SOAPPart.html#setContent(javax.xml.transform.Source)"><B>setContent(Source)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Sets the content of the <CODE>SOAPEnvelope</CODE> object
 with the data from the given <CODE>Source</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setContent(java.lang.Object, java.lang.String)"><B>setContent(Object, String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Sets the content of this attachment part to that of the
 given <CODE>Object</CODE> and sets the value of the <CODE>
 Content-Type</CODE> header to the given type.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#setContentDescription(java.lang.String)"><B>setContentDescription(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Sets the description of this <CODE>SOAPMessage</CODE>
 object's content with the given description.
<DT><A HREF="org/apache/axis/Message.html#setContentDescription(java.lang.String)"><B>setContentDescription(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Sets the description of this <CODE>SOAPMessage</CODE>
 object's content with the given description.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setContentId(java.lang.String)"><B>setContentId(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Sets the MIME header "Content-Id" with the given
 value.
<DT><A HREF="javax/xml/soap/SOAPPart.html#setContentId(java.lang.String)"><B>setContentId(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Sets the value of the MIME header named "Content-Id" to
 the given <CODE>String</CODE>.
<DT><A HREF="org/apache/axis/Part.html#setContentId(java.lang.String)"><B>setContentId(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Sets Content-Id of this part.
<DT><A HREF="org/apache/axis/SOAPPart.html#setContentId(java.lang.String)"><B>setContentId(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Sets Content-Id of this part.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setContentId(java.lang.String)"><B>setContentId(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#setContentLength(int)"><B>setContentLength(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>set the maximum number of bytes allowed to be read from this input
 stream.
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Sets the MIME header "Content-Location" with the given
 value.
<DT><A HREF="javax/xml/soap/SOAPPart.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Sets the value of the MIME header "Content-Location" to
 the given <CODE>String</CODE>.
<DT><A HREF="org/apache/axis/Part.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Part.html" title="interface in org.apache.axis">Part</A>
<DD>Set content location.
<DT><A HREF="org/apache/axis/SOAPPart.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Set content location.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setContentLocation(java.lang.String)"><B>setContentLocation(String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setContentType(java.lang.String)"><B>setContentType(String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Sets the MIME header "Content-Type" with the given
 value.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setContentsIndex(int)"><B>setContentsIndex(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the index point of our content's starting in the
 event recording
<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#setContext(org.apache.axis.encoding.SerializationContext)"><B>setContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>Setter for property context.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html#setConvertedValue(java.lang.Class, java.lang.Object)"><B>setConvertedValue(Class, Object)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.ArrayListExtension.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer.ArrayListExtension</A>
<DD>Store converted value
<DT><A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html#setConvertedValue(java.lang.Class, java.lang.Object)"><B>setConvertedValue(Class, Object)</B></A> - 
Method in interface org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.ConvertCache.html" title="interface in org.apache.axis.utils">JavaUtils.ConvertCache</A>
<DD>Set/Get converted values of the convert method.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#setCurElement(org.apache.axis.message.MessageElement)"><B>setCurElement(MessageElement)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Set current MessageElement
<DT><A HREF="org/apache/axis/MessageContext.html#setCurrentMessage(org.apache.axis.Message)"><B>setCurrentMessage(Message)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the current message.
<DT><A HREF="org/apache/axis/SOAPPart.html#setCurrentMessage(java.lang.Object, int)"><B>setCurrentMessage(Object, int)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Set the current message
<DT><A HREF="org/apache/axis/AxisEngine.html#setCurrentMessageContext(org.apache.axis.MessageContext)"><B>setCurrentMessageContext(MessageContext)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Set the active message context.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#setDEFAULT_CACHE_INCREMENT(double)"><B>setDEFAULT_CACHE_INCREMENT(double)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#setDEFAULT_ENABLE_BACKING_STORE(boolean)"><B>setDEFAULT_ENABLE_BACKING_STORE(boolean)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#setDEFAULT_RESIDENT_SIZE(int)"><B>setDEFAULT_RESIDENT_SIZE(int)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#setData(java.lang.String)"><B>setData(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setDataHandler(javax.activation.DataHandler)"><B>setDataHandler(DataHandler)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Sets the given <CODE>DataHandler</CODE> object as the
 data handler for this <CODE>AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setDataHandler(javax.activation.DataHandler)"><B>setDataHandler(DataHandler)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Sets the given <CODE>DataHandler</CODE> object as the
 data handler for this <CODE>AttachmentPart</CODE> object.
<DT><A HREF="org/apache/axis/types/Day.html#setDay(int)"><B>setDay(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>Set the day
<DT><A HREF="org/apache/axis/types/MonthDay.html#setDay(int)"><B>setDay(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>Set the day
 NOTE: if the month isn't set yet, the day isn't validated
<DT><A HREF="org/apache/axis/types/Duration.html#setDays(int)"><B>setDays(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setDebug(boolean)"><B>setDebug(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setDebug
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#setDefault(org.apache.axis.constants.Enum)"><B>setDefault(Enum)</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ClassUtils.html#setDefaultClassLoader(java.lang.ClassLoader)"><B>setDefaultClassLoader(ClassLoader)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ClassUtils.html" title="class in org.apache.axis.utils">ClassUtils</A>
<DD>Set the default ClassLoader.
<DT><A HREF="org/apache/axis/client/AdminClient.html#setDefaultConfiguration(org.apache.axis.EngineConfiguration)"><B>setDefaultConfiguration(EngineConfiguration)</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>If the user calls this with an EngineConfiguration object, all
 AdminClients on this thread will use that EngineConfiguration
 rather than the default one.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setDefaultNamespace(java.lang.String)"><B>setDefaultNamespace(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setDefaultNamespace(java.lang.String)"><B>setDefaultNamespace(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#setDefaultPackage(java.lang.String)"><B>setDefaultPackage(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Set a package name that overrides the namespace map
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#setDefaultSessionTimeout(int)"><B>setDefaultSessionTimeout(int)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>Set the default session timeout in SECONDS

 Again, for testing.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#setDefaultType(javax.xml.namespace.QName)"><B>setDefaultType(QName)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>In some circumstances an element may not have
 a type attribute, but a default type qname is known from
 information in the container.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#setDefaultType(javax.xml.namespace.QName)"><B>setDefaultType(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>In some circumstances an element may not have 
 a type attribute, but a default type qname is known from
 information in the container.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setDefaultTypeMapping(org.apache.axis.encoding.TypeMapping)"><B>setDefaultTypeMapping(TypeMapping)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setTypeMappingRegistry instead</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setDefaultTypeMapping(org.apache.axis.encoding.TypeMapping)"><B>setDefaultTypeMapping(TypeMapping)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the default <code>TypeMapping</code> used by the service
<DT><A HREF="org/apache/axis/utils/Options.html#setDefaultURL(java.lang.String)"><B>setDefaultURL(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Options.html#setDefaultURL(java.net.URL)"><B>setDefaultURL(URL)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Options.html" title="class in org.apache.axis.utils">Options</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setDeploy(boolean)"><B>setDeploy(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the deploy mode flag
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#setDeployment(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>setDeployment(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setDescription(java.lang.String)"><B>setDescription(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the service description
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setDeserializer(java.lang.Class)"><B>setDeserializer(Class)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setDeserializer(java.lang.String)"><B>setDeserializer(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Set the deserializer factory name
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#setDestination(java.lang.String)"><B>setDestination(String)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Set the name of the directory to contain the resulting object program file
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#setDestination(java.lang.String)"><B>setDestination(String)</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Set the name of the directory to contain the resulting object program file
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#setDestination(java.lang.String)"><B>setDestination(String)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#setDestinationClass(java.lang.Class)"><B>setDestinationClass(Class)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Allows the destination class to be set so that downstream
 deserializers like ArrayDeserializer can pick it up when
 deserializing its components using getDeserializerForClass
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setDirty(boolean)"><B>setDirty(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>set the dirty bit.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setDirty()"><B>setDirty()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setDirty(boolean)"><B>setDirty(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setDisallowedMethods(java.util.List)"><B>setDisallowedMethods(List)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setDisallowedMethods(java.util.List)"><B>setDisallowedMethods(List)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setDisallowedMethods(java.util.Vector)"><B>setDisallowedMethods(Vector)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Add a list of methods NOT to export
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setDisallowedMethods(java.lang.String)"><B>setDisallowedMethods(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Add a list of methods NOT to export
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#setDoAutoTypes(boolean)"><B>setDoAutoTypes(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#setDoAutoTypes(boolean)"><B>setDoAutoTypes(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setDoMultiRefs(boolean)"><B>setDoMultiRefs(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Set whether we are doing multirefs
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#setDoThreads(boolean)"><B>setDoThreads(boolean)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>turn threading on or off.
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#setDoThreads(boolean)"><B>setDoThreads(boolean)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#setDocument(org.w3c.dom.Document)"><B>setDocument(Document)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>Bind to a new document, setting the undeployment nodes if it is an undeployment,
 the deployment tree if it is anything else.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#setDocumentLocator(org.xml.sax.Locator)"><B>setDocumentLocator(Locator)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#setDocumentLocator(org.xml.sax.Locator)"><B>setDocumentLocator(Locator)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setDocumentation(java.lang.String)"><B>setDocumentation(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>set the documentation for the service
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setDocumentation(java.lang.String)"><B>setDocumentation(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>set the documentation for the operation
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setDocumentation(java.lang.String)"><B>setDocumentation(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>set the documentation for the parameter
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setDocumentation(java.lang.String)"><B>setDocumentation(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>set the documentation for the service
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setDocumentation(java.lang.String)"><B>setDocumentation(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setDocumentation
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#setDynamicVar(java.lang.Object, java.lang.Object)"><B>setDynamicVar(Object, Object)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Method setDynamicVar
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setElementQName(javax.xml.namespace.QName)"><B>setElementQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setEmitAllTypes(boolean)"><B>setEmitAllTypes(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#setEmitter(org.apache.axis.wsdl.toJava.Emitter)"><B>setEmitter(Emitter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Method setEmitter
<DT><A HREF="org/apache/axis/utils/ByteArray.html#setEnableBackingStore(boolean)"><B>setEnableBackingStore(boolean)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#setEncoding(java.lang.String)"><B>setEncoding(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#setEncoding(java.lang.String)"><B>setEncoding(String)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Set the encoding of the input source file or <code>null</code> to use the
 platform's default encoding
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#setEncoding(java.lang.String)"><B>setEncoding(String)</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Set the encoding of the input source file or <code>null</code> to use the
 platform's default encoding
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setEncoding(java.lang.String)"><B>setEncoding(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>set the encoding for the serialization
<DT><A HREF="javax/xml/soap/SOAPElement.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPElement.html" title="interface in javax.xml.soap">SOAPElement</A>
<DD>Sets the encoding style for this <CODE>SOAPElement</CODE>
 object to one specified.
<DT><A HREF="org/apache/axis/MessageContext.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Sets the encoding style to the URI passed in.
<DT><A HREF="org/apache/axis/client/Call.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the encoding style to the URL passed in.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Sets the encoding style for this <CODE>SOAPElement</CODE>
 object to one specified.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#setEncodingStyle(java.lang.String)"><B>setEncodingStyle(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setEndIndex(int)"><B>setEndIndex(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>record the end index of the SAX recording.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setEndpointURL(java.lang.String)"><B>setEndpointURL(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setEndpointURL(java.lang.String)"><B>setEndpointURL(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Service.html#setEngine(org.apache.axis.AxisEngine)"><B>setEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Sets this Service's AxisEngine.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setEngine(org.apache.axis.AxisEngine)"><B>setEngine(AxisEngine)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Tell this service which engine it's deployed to.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#setEngine(org.apache.axis.server.AxisServer, java.lang.String)"><B>setEngine(AxisServer, String)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>Set the singleton engine
<DT><A HREF="org/apache/axis/client/Service.html#setEngineConfiguration(org.apache.axis.EngineConfiguration)"><B>setEngineConfiguration(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Set this Service's engine configuration.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setEnvelope(org.apache.axis.message.SOAPEnvelope)"><B>setEnvelope(SOAPEnvelope)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>bind a a new soap envelope.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setExtraClasses(java.lang.Class[])"><B>setExtraClasses(Class[])</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Provide a list of classes which the emitter will produce WSDL
 type definitions for.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setExtraClasses(java.lang.String)"><B>setExtraClasses(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Provide a comma or space seperated list of classes which
 the emitter will produce WSDL type definitions for.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setFactory(org.apache.axis.wsdl.gen.GeneratorFactory)"><B>setFactory(GeneratorFactory)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setFactory
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setFactory(java.lang.String)"><B>setFactory(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the <code>WriterFactory Class</code> to use
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFault(org.apache.axis.AxisFault)"><B>setFault(AxisFault)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPFault.html#setFaultActor(java.lang.String)"><B>setFaultActor(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Sets this <CODE>SOAPFault</CODE> object with the given
   fault actor.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultActor(java.lang.String)"><B>setFaultActor(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Set the fault actor.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFaultActor(java.lang.String)"><B>setFaultActor(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Sets this <CODE>SOAPFaultException</CODE> object with the given
   fault actor.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#setFaultBodyTypeMap(java.util.HashMap)"><B>setFaultBodyTypeMap(HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method setFaultBodyTypeMap
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setFaultBodyTypeMap(javax.wsdl.Operation, java.util.HashMap)"><B>setFaultBodyTypeMap(Operation, HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the fault body type map for the given operation.
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#setFaultClass(java.lang.Class)"><B>setFaultClass(Class)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPFault.html#setFaultCode(java.lang.String)"><B>setFaultCode(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Sets this <CODE>SOAPFault</CODE> object with the given
   fault code.
<DT><A HREF="javax/xml/soap/SOAPFault.html#setFaultCode(javax.xml.soap.Name)"><B>setFaultCode(Name)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Sets this <code>SOAPFault</code> object with the given fault code.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultCode(javax.xml.namespace.QName)"><B>setFaultCode(QName)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Set the fault code.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultCode(java.lang.String)"><B>setFaultCode(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD><B>Deprecated.</B>&nbsp;<I>expect to see this go away after 1.1, use
             setFaultCodeAsString instead!</I>
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFaultCode(java.lang.String)"><B>setFaultCode(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Sets this <CODE>SOAPFaultException</CODE> object with the given
   fault code.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFaultCode(javax.xml.soap.Name)"><B>setFaultCode(Name)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultCodeAsString(java.lang.String)"><B>setFaultCodeAsString(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>set a fault code string that is turned into a qname
 in the SOAP 1.1 or 1.2 namespace, depending on the current context
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#setFaultDesc(org.apache.axis.description.FaultDesc)"><B>setFaultDesc(FaultDesc)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultDetail(org.w3c.dom.Element[])"><B>setFaultDetail(Element[])</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Set the fault detail element to the arrary of details.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultDetailString(java.lang.String)"><B>setFaultDetailString(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>set the fault details to a string element.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultNode(java.lang.String)"><B>setFaultNode(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Set the fault node.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultReason(java.lang.String)"><B>setFaultReason(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>This is SOAP 1.2 equivalent of <A HREF="org/apache/axis/AxisFault.html#setFaultString(java.lang.String)"><CODE>AxisFault.setFaultString(java.lang.String)</CODE></A>.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultRole(java.lang.String)"><B>setFaultRole(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>This is SOAP 1.2 equivalent of <A HREF="org/apache/axis/AxisFault.html#setFaultActor(java.lang.String)"><CODE>AxisFault.setFaultActor(java.lang.String)</CODE></A>.
<DT><A HREF="javax/xml/soap/SOAPFault.html#setFaultString(java.lang.String)"><B>setFaultString(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Sets the fault string for this <CODE>SOAPFault</CODE>
 object to the given string.
<DT><A HREF="javax/xml/soap/SOAPFault.html#setFaultString(java.lang.String, java.util.Locale)"><B>setFaultString(String, Locale)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPFault.html" title="interface in javax.xml.soap">SOAPFault</A>
<DD>Sets the fault string for this <code>SOAPFault</code> object to the given
 string and localized to the given locale.
<DT><A HREF="org/apache/axis/AxisFault.html#setFaultString(java.lang.String)"><B>setFaultString(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Set a fault string.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFaultString(java.lang.String)"><B>setFaultString(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>Sets the fault string for this <CODE>SOAPFaultException</CODE>
 object to the given string.
<DT><A HREF="org/apache/axis/message/SOAPFault.html#setFaultString(java.lang.String, java.util.Locale)"><B>setFaultString(String, Locale)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFault.html" title="class in org.apache.axis.message">SOAPFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setFaults(java.util.HashMap)"><B>setFaults(HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Method setFaults
<DT><A HREF="org/apache/axis/description/FieldDesc.html#setFieldName(java.lang.String)"><B>setFieldName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Set the field name.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#setFields(org.apache.axis.description.FieldDesc[])"><B>setFields(FieldDesc[])</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Replace the array of FieldDescs, making sure we keep our convenience
 caches in sync.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setFixupDeserializer(org.apache.axis.encoding.Deserializer)"><B>setFixupDeserializer(Deserializer)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html#setFragment(java.lang.String)"><B>setFragment(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the fragment for this URI.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html#setGenerated(boolean)"><B>setGenerated(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#setGenerators()"><B>setGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>setGenerators
 Logic to set the generators that are based on the Binding
 This logic was moved from the constructor so extended interfaces
 can more effectively use the hooks.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#setGenerators()"><B>setGenerators()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>setGenerators
 Logic to set the generators that are based on the Service.
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#setGlobalConfig(org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration)"><B>setGlobalConfig(WSDDGlobalConfiguration)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#setGlobalConfiguration(org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration)"><B>setGlobalConfiguration(WSDDGlobalConfiguration)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#setGlobalOptions(java.util.Hashtable)"><B>setGlobalOptions(Hashtable)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Set the global options Hashtable
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#setGlobalRequest(org.apache.axis.Handler)"><B>setGlobalRequest(Handler)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Set the global request Handler
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#setGlobalResponse(org.apache.axis.Handler)"><B>setGlobalResponse(Handler)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Set the global response Handler
<DT><A HREF="javax/xml/rpc/handler/HandlerRegistry.html#setHandlerChain(javax.xml.namespace.QName, java.util.List)"><B>setHandlerChain(QName, List)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerRegistry.html" title="interface in javax.xml.rpc.handler">HandlerRegistry</A>
<DD>Sets the handler chain for the specified service endpoint
 as a <code>java.util.List</code>.
<DT><A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html#setHandlerChain(javax.xml.namespace.QName, java.util.List)"><B>setHandlerChain(QName, List)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.HandlerRegistryImpl.html" title="class in org.apache.axis.client">Service.HandlerRegistryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#setHandlerChainFactory(org.apache.axis.handlers.HandlerInfoChainFactory)"><B>setHandlerChainFactory(HandlerInfoChainFactory)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#setHandlerClass(java.lang.Class)"><B>setHandlerClass(Class)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Sets the Handler class.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#setHandlerClassName(java.lang.String)"><B>setHandlerClassName(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#setHandlerConfig(java.util.Map)"><B>setHandlerConfig(Map)</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Sets the Handler configuration as <code>java.util.Map</code>
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setHandlerInfoChain(org.apache.axis.deployment.wsdd.WSDDJAXRPCHandlerInfoChain)"><B>setHandlerInfoChain(WSDDJAXRPCHandlerInfoChain)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#setHandlerInfoList(java.util.ArrayList)"><B>setHandlerInfoList(ArrayList)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#setHandlerMap(java.util.Map)"><B>setHandlerMap(Map)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setHasLiteral(boolean)"><B>setHasLiteral(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the literal flag.
<DT><A HREF="javax/xml/soap/MimeHeaders.html#setHeader(java.lang.String, java.lang.String)"><B>setHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/MimeHeaders.html" title="class in javax.xml.soap">MimeHeaders</A>
<DD>Replaces the current value of the first header entry whose
   name matches the given name with the given value, adding a
   new header if no existing header name matches.
<DT><A HREF="org/apache/axis/client/Stub.html#setHeader(java.lang.String, java.lang.String, java.lang.Object)"><B>setHeader(String, String, Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the header
<DT><A HREF="org/apache/axis/client/Stub.html#setHeader(org.apache.axis.message.SOAPHeaderElement)"><B>setHeader(SOAPHeaderElement)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the header
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setHeader(org.apache.axis.message.SOAPHeader)"><B>setHeader(SOAPHeader)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Set the SOAP Header
<DT><A HREF="org/apache/axis/message/RPCHandler.html#setHeaderElement(boolean)"><B>setHeaderElement(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>Indicate RPCHandler is processing header elements
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setHeaderPart(java.lang.String, java.lang.String, int)"><B>setHeaderPart(String, String, int)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the header part mapping for the given part name.
<DT><A HREF="javax/xml/rpc/handler/HandlerInfo.html#setHeaders(javax.xml.namespace.QName[])"><B>setHeaders(QName[])</B></A> - 
Method in class javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerInfo.html" title="class in javax.xml.rpc.handler">HandlerInfo</A>
<DD>Sets the header blocks processed by this Handler.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#setHeaders(javax.xml.namespace.QName[])"><B>setHeaders(QName[])</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setHelperGeneration(boolean)"><B>setHelperGeneration(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setHelperWanted(value)</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setHelperWanted(boolean)"><B>setHelperWanted(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Turn on/off Helper class generation
<DT><A HREF="org/apache/axis/MessageContext.html#setHighFidelity(boolean)"><B>setHighFidelity(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the high fidelity propert.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setHighFidelityRecording(boolean)"><B>setHighFidelityRecording(boolean)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#setHolderValue(java.lang.Object, java.lang.Object)"><B>setHolderValue(Object, Object)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Sets the Holder value.
<DT><A HREF="org/apache/axis/types/URI.html#setHost(java.lang.String)"><B>setHost(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the host for this URI.
<DT><A HREF="org/apache/axis/types/Duration.html#setHours(int)"><B>setHours(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#setId(org.apache.axis.types.Id)"><B>setId(Id)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setImplClass(java.lang.Class)"><B>setImplClass(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>set the implementation class
 
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setImplCls(java.lang.Class)"><B>setImplCls(Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the implementation <code>Class</code>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setImplCls(java.lang.String)"><B>setImplCls(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the implementation <code>Class</code>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setImplNamespace(java.lang.String)"><B>setImplNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the implementation namespace
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setImplementationClassName(java.lang.String)"><B>setImplementationClassName(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set an implementation classname to use instead of the default.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setImportUrl(java.lang.String)"><B>setImportUrl(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the interface location URL
 for importing
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setImports(boolean)"><B>setImports(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setImports
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setInHeader(boolean)"><B>setInHeader(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setInHeader(boolean)"><B>setInHeader(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the inHeader flag for this parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#setInputBodyType(org.apache.axis.constants.Use)"><B>setInputBodyType(Use)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method setInputBodyType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setInputBodyType(javax.wsdl.Operation, org.apache.axis.constants.Use)"><B>setInputBodyType(Operation, Use)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the input body type for the given operation.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setInputSchema(java.lang.String)"><B>setInputSchema(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the name of the input schema
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#setInputStream(java.io.InputStream)"><B>setInputStream(InputStream)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#setInputStream(java.io.InputStream)"><B>setInputStream(InputStream)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>set the input stream to be used for subsequent reads
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setInputWSDL(java.lang.String)"><B>setInputWSDL(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the name of the input WSDL
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setIntfNamespace(java.lang.String)"><B>setIntfNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the interface namespace
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#setIsReferenced(boolean)"><B>setIsReferenced(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Set the isReferenced variable, default value is true.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setIsReturn(boolean)"><B>setIsReturn(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Set to true to indicate return parameter of OperationDesc
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setItemQName(javax.xml.namespace.QName)"><B>setItemQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setItemQName(javax.xml.namespace.QName)"><B>setItemQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setItemQName(javax.xml.namespace.QName)"><B>setItemQName(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setItemQName(javax.xml.namespace.QName)"><B>setItemQName(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setItemType(javax.xml.namespace.QName)"><B>setItemType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setItemType(javax.xml.namespace.QName)"><B>setItemType(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#setJavaType(java.lang.Class)"><B>setJavaType(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setJavaType(java.lang.Class)"><B>setJavaType(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Set the java type (note that this is javaType in the signature.)
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setLanguageSpecificType(java.lang.Class)"><B>setLanguageSpecificType(Class)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Set javaType (type= attribute or languageSpecificType= attribute)
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setLanguageSpecificType(java.lang.String)"><B>setLanguageSpecificType(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Set javaType (type= attribute or languageSpecificType= attribute)
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setLocationUrl(java.lang.String)"><B>setLocationUrl(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the service endpoint URL
<DT><A HREF="org/apache/axis/InternalException.html#setLogging(boolean)"><B>setLogging(boolean)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/InternalException.html" title="class in org.apache.axis">InternalException</A>
<DD>Enable or dissable logging.
<DT><A HREF="org/apache/axis/client/AdminClient.html#setLogin(java.lang.String, java.lang.String)"><B>setLogin(String, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>set the username and password
 requires that call!=null
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setMIMEInfo(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>setMIMEInfo(String, String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the mime mapping for the given parameter name.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setMIMEInfo(org.apache.axis.wsdl.symbolTable.MimeInfo)"><B>setMIMEInfo(MimeInfo)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the MIME type of the parameter.
<DT><A HREF="org/apache/axis/MessageContext.html#setMaintainSession(boolean)"><B>setMaintainSession(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set whether we are maintaining session state.
<DT><A HREF="org/apache/axis/client/Call.html#setMaintainSession(boolean)"><B>setMaintainSession(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Determine whether we'd like to track sessions or not.
<DT><A HREF="org/apache/axis/client/Service.html#setMaintainSession(boolean)"><B>setMaintainSession(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Determine whether we'd like to track sessions or not.
<DT><A HREF="org/apache/axis/client/Stub.html#setMaintainSession(boolean)"><B>setMaintainSession(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>If set to true, session is maintained; if false, it is not.
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setMaxOccurs(int)"><B>setMaxOccurs(int)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setMaxOccursIsExactlyOne(boolean)"><B>setMaxOccursIsExactlyOne(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setMaxOccursIsExactlyOne
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setMaxOccursIsUnbounded(boolean)"><B>setMaxOccursIsUnbounded(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setMaxOccursIsUnbounded
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setMaxOccursUnbounded(boolean)"><B>setMaxOccursUnbounded(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#setMaxSessions(int)"><B>setMaxSessions(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Resize the session map
<DT><A HREF="org/apache/axis/collections/LRUMap.html#setMaximumSize(int)"><B>setMaximumSize(int)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>Setter for property maximumSize.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setMep(javax.wsdl.OperationType)"><B>setMep(OperationType)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setMep(java.lang.String)"><B>setMep(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Set the MEP using a string like "request-response"
<DT><A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html#setMessage(javax.xml.soap.SOAPMessage)"><B>setMessage(SOAPMessage)</B></A> - 
Method in interface javax.xml.rpc.handler.soap.<A HREF="javax/xml/rpc/handler/soap/SOAPMessageContext.html" title="interface in javax.xml.rpc.handler.soap">SOAPMessageContext</A>
<DD>Sets the <code>SOAPMessage</code> for this message context.
<DT><A HREF="org/apache/axis/MessageContext.html#setMessage(javax.xml.soap.SOAPMessage)"><B>setMessage(SOAPMessage)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Sets the SOAPMessage for this message context.
<DT><A HREF="org/apache/axis/SOAPPart.html#setMessage(org.apache.axis.Message)"><B>setMessage(Message)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Set the Message for this Part.
<DT><A HREF="org/apache/axis/Message.html#setMessageContext(org.apache.axis.MessageContext)"><B>setMessageContext(MessageContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Set the context associated with this message.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setMessageOperationStyle(int)"><B>setMessageOperationStyle(int)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Message.html#setMessageType(java.lang.String)"><B>setMessageType(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Set the message type.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setMessageType(java.lang.String)"><B>setMessageType(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Set the Message Type (REQUEST/RESPONSE)
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setMethod(java.lang.reflect.Method)"><B>setMethod(Method)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/AttachmentPart.html#setMimeHeader(java.lang.String, java.lang.String)"><B>setMimeHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/AttachmentPart.html" title="class in javax.xml.soap">AttachmentPart</A>
<DD>Changes the first header entry that matches the given name
   to the given value, adding a new header if no existing
   header matches.
<DT><A HREF="javax/xml/soap/SOAPPart.html#setMimeHeader(java.lang.String, java.lang.String)"><B>setMimeHeader(String, String)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPPart.html" title="class in javax.xml.soap">SOAPPart</A>
<DD>Changes the first header entry that matches the given
   header name so that its value is the given value, adding a
   new header with the given name and value if no existing
   header is a match.
<DT><A HREF="org/apache/axis/SOAPPart.html#setMimeHeader(java.lang.String, java.lang.String)"><B>setMimeHeader(String, String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Changes the first header entry that matches the given
   header name so that its value is the given value, adding a
   new header with the given name and value if no existing
   header is a match.
<DT><A HREF="org/apache/axis/attachments/AttachmentPart.html#setMimeHeader(java.lang.String, java.lang.String)"><B>setMimeHeader(String, String)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentPart.html" title="class in org.apache.axis.attachments">AttachmentPart</A>
<DD>Changes the first header entry that matches the given name
   to the given value, adding a new header if no existing
   header matches.
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setMinOccurs(int)"><B>setMinOccurs(int)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#setMinOccursIs0(boolean)"><B>setMinOccursIs0(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD><B>Deprecated.</B>&nbsp;<I>this functionality, which is only relevant to ElementDescs,
             now lives in ElementDesc and is more flexible (you can set
             minOccurs and maxOccurs as you please)</I>
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setMinOccursIs0(boolean)"><B>setMinOccursIs0(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setMinOccursIs0
<DT><A HREF="org/apache/axis/types/Duration.html#setMinutes(int)"><B>setMinutes(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setMode(byte)"><B>setMode(byte)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setMode(int)"><B>setMode(int)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>(use setStyle and setUse)</I>
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setMode(byte)"><B>setMode(byte)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the mode (IN, INOUT, OUT) of the parameter.
<DT><A HREF="org/apache/axis/types/Month.html#setMonth(int)"><B>setMonth(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#setMonth(int)"><B>setMonth(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#setMonth(int)"><B>setMonth(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#setMonths(int)"><B>setMonths(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPHeaderElement.html#setMustUnderstand(boolean)"><B>setMustUnderstand(boolean)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPHeaderElement.html" title="interface in javax.xml.soap">SOAPHeaderElement</A>
<DD>Sets the mustUnderstand attribute for this <CODE>
   SOAPHeaderElement</CODE> object to be on or off.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setMustUnderstand(boolean)"><B>setMustUnderstand(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#setMyConfig(org.apache.axis.EngineConfiguration)"><B>setMyConfig(EngineConfiguration)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setNSMappings(java.util.ArrayList)"><B>setNSMappings(ArrayList)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set a new namespace mapping list
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setNStoPkg(java.lang.String)"><B>setNStoPkg(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set the NStoPkg mappings filename.
<DT><A HREF="org/apache/axis/Handler.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Set the name (i.e.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>the name of the service
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Set the operation's name
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>the name of the service
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Set the name (i.e.
<DT><A HREF="org/apache/axis/message/MessageElement.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the local part of this element's name
<DT><A HREF="org/apache/axis/types/Notation.html#setName(org.apache.axis.types.NCName)"><B>setName(NCName)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the name of the parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Set the name of this entry.
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#setNamedItem(org.w3c.dom.Node)"><B>setNamedItem(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Adds a node using its <code>nodeName</code> attribute.
<DT><A HREF="org/apache/axis/message/NamedNodeMapImpl.html#setNamedItemNS(org.w3c.dom.Node)"><B>setNamedItemNS(Node)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NamedNodeMapImpl.html" title="class in org.apache.axis.message">NamedNodeMapImpl</A>
<DD>Adds a node using its <code>namespaceURI</code> and
 <code>localName</code>.
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#setNamespace(java.lang.String)"><B>setNamespace(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setNamespaceExcludes(java.util.List)"><B>setNamespaceExcludes(List)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the list of namespaces to specifically exclude
 from the generated source.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setNamespaceIncludes(java.util.List)"><B>setNamespaceIncludes(List)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the list of namespaces to specifically include
 in the generated code.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setNamespaceMap(java.util.Map)"><B>setNamespaceMap(Map)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the packagename to namespace map with the given map
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setNamespaceMap(java.util.HashMap)"><B>setNamespaceMap(HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set a map of namespace -> Java package names
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setNamespaceMappings(java.util.List)"><B>setNamespaceMappings(List)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setNamespaceMappings(java.util.List)"><B>setNamespaceMappings(List)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setNamespaceURI(java.lang.String)"><B>setNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the namespace URI of the element
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#setNamespaceURI(java.lang.String)"><B>setNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Mapping.html#setNamespaceURI(java.lang.String)"><B>setNamespaceURI(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html#setNeedDeser(boolean)"><B>setNeedDeser(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#setNegative(boolean)"><B>setNegative(boolean)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#setNext(org.apache.axis.encoding.TypeMappingDelegate)"><B>setNext(TypeMappingDelegate)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>setDelegate sets the new Delegate TypeMapping
<DT><A HREF="org/apache/axis/description/ElementDesc.html#setNillable(boolean)"><B>setNillable(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ElementDesc.html" title="class in org.apache.axis.description">ElementDesc</A>
<DD>Sets value of nillable property.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setNillable(boolean)"><B>setNillable(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Indicate if this parameter is nillable.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setNillable(boolean)"><B>setNillable(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setNillable
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setNillable(boolean)"><B>setNillable(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Indicate whether this parameter is nillable or not.
<DT><A HREF="org/apache/axis/SOAPPart.html#setNodeValue(java.lang.String)"><B>setNodeValue(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setNodeValue(java.lang.String)"><B>setNodeValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The value of this node, depending on its type; see the table above.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#setNodeValue(java.lang.String)"><B>setNodeValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#setNodeValue(java.lang.String)"><B>setNodeValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setNowrap(boolean)"><B>setNowrap(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setNowrap
<DT><A HREF="org/apache/axis/message/MessageElement.html#setObjectValue(java.lang.Object)"><B>setObjectValue(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Sets value of this node to an Object.
<DT><A HREF="org/apache/axis/message/RPCParam.html#setObjectValue(java.lang.Object)"><B>setObjectValue(Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setOmittable(boolean)"><B>setOmittable(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>Indicate if this parameter is omittable or not (i.e., if it
 has a minimum occurrence of 0).
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setOmittable(boolean)"><B>setOmittable(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setOnlyLiteralReference(boolean)"><B>setOnlyLiteralReference(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Set the isOnlyLiteralReference flag.
<DT><A HREF="org/apache/axis/MessageContext.html#setOperation(org.apache.axis.description.OperationDesc)"><B>setOperation(OperationDesc)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the current operation.
<DT><A HREF="org/apache/axis/client/Call.html#setOperation(java.lang.String)"><B>setOperation(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Prefill as much info from the WSDL as it can.
<DT><A HREF="org/apache/axis/client/Call.html#setOperation(javax.xml.namespace.QName, java.lang.String)"><B>setOperation(QName, String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>prefill as much info from the WSDL as it can.
<DT><A HREF="org/apache/axis/client/Call.html#setOperation(javax.xml.namespace.QName, javax.xml.namespace.QName)"><B>setOperation(QName, QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>prefill as much info from the WSDL as it can.
<DT><A HREF="org/apache/axis/client/Call.html#setOperation(org.apache.axis.description.OperationDesc)"><B>setOperation(OperationDesc)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Hand a complete OperationDesc to the Call, and note that this was
 done so that others don't try to mess with it by calling addParameter,
 setReturnType, etc.
<DT><A HREF="org/apache/axis/message/RPCHandler.html#setOperation(org.apache.axis.description.OperationDesc)"><B>setOperation(OperationDesc)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setOperationDIME(java.lang.String)"><B>setOperationDIME(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Mark the operation as a DIME operation
<DT><A HREF="javax/xml/rpc/Call.html#setOperationName(javax.xml.namespace.QName)"><B>setOperationName(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the name of the operation to be invoked using this
 <code>Call</code> instance.
<DT><A HREF="org/apache/axis/client/Call.html#setOperationName(javax.xml.namespace.QName)"><B>setOperationName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the operation name associated with this Call object.
<DT><A HREF="org/apache/axis/client/Call.html#setOperationName(java.lang.String)"><B>setOperationName(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>This is a convenience method.
<DT><A HREF="org/apache/axis/client/Call.html#setOperationStyle(java.lang.String)"><B>setOperationStyle(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the operation style: "document", "rpc"
<DT><A HREF="org/apache/axis/client/Call.html#setOperationStyle(org.apache.axis.constants.Style)"><B>setOperationStyle(Style)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the operation style
<DT><A HREF="org/apache/axis/client/Call.html#setOperationUse(java.lang.String)"><B>setOperationUse(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the operation use: "literal", "encoded"
<DT><A HREF="org/apache/axis/client/Call.html#setOperationUse(org.apache.axis.constants.Use)"><B>setOperationUse(Use)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the operation use
<DT><A HREF="org/apache/axis/Handler.html#setOption(java.lang.String, java.lang.Object)"><B>setOption(String, Object)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Add the given option (name/value) to this handler's bag of options.
<DT><A HREF="org/apache/axis/client/Call.html#setOption(java.lang.String, java.lang.Object)"><B>setOption(String, Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set engine option.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#setOption(java.lang.String, java.lang.Object)"><B>setOption(String, Object)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Set the given option (name/value) in this handler's bag of options
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#setOptionDefault(java.lang.String, java.lang.Object)"><B>setOptionDefault(String, Object)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Set a default value for the given option:
 if the option is not already set, then set it.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html#setOptional(boolean)"><B>setOptional(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedAttribute.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedAttribute</A>
<DD>Method setOptional
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html#setOptional(boolean)"><B>setOptional(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ElementDecl.html" title="class in org.apache.axis.wsdl.symbolTable">ElementDecl</A>
<DD>Method setOptional
<DT><A HREF="org/apache/axis/Handler.html#setOptions(java.util.Hashtable)"><B>setOptions(Hashtable)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>
<DD>Sets a whole list of options.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#setOptions(java.util.Hashtable)"><B>setOptions(Hashtable)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#setOptionsHashtable(java.util.Hashtable)"><B>setOptionsHashtable(Hashtable)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Convenience method for using old deployment XML with WSDD.
<DT><A HREF="org/apache/axis/handlers/BasicHandler.html#setOptionsLockable(boolean)"><B>setOptionsLockable(boolean)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/BasicHandler.html" title="class in org.apache.axis.handlers">BasicHandler</A>
<DD>Should this Handler use a LockableHashtable for options?
 Default is 'false'.
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setOrder(int)"><B>setOrder(int)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html#setOriginalServiceName(java.lang.String)"><B>setOriginalServiceName(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ServiceEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ServiceEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setOutHeader(boolean)"><B>setOutHeader(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setOutHeader(boolean)"><B>setOutHeader(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the outHeader flag for this parameter.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html#setOutputBodyType(org.apache.axis.constants.Use)"><B>setOutputBodyType(Use)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.OperationAttr.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry.OperationAttr</A>
<DD>Method setOutputBodyType
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setOutputBodyType(javax.wsdl.Operation, org.apache.axis.constants.Use)"><B>setOutputBodyType(Operation, Use)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the output body type for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setOutputDir(java.lang.String)"><B>setOutputDir(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set the output directory to use in emitted source files
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setOwnerDocument(org.w3c.dom.Document)"><B>setOwnerDocument(Document)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Set the owner document
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setOwnerDocument(org.apache.axis.SOAPPart)"><B>setOwnerDocument(SOAPPart)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#setPOP3(org.apache.commons.net.pop3.POP3Client)"><B>setPOP3(POP3Client)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Set the serverSocket this server should listen on.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setPackageName(java.lang.String)"><B>setPackageName(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set a global package name to use instead of mapping namespaces
<DT><A HREF="org/apache/axis/message/RPCParam.html#setParamDesc(org.apache.axis.description.ParameterDesc)"><B>setParamDesc(ParameterDesc)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#setParameter(java.lang.String, java.lang.String)"><B>setParameter(String, String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Set a parameter
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#setParameter(org.apache.axis.description.ParameterDesc)"><B>setParameter(ParameterDesc)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setParameters(java.util.ArrayList)"><B>setParameters(ArrayList)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setParameters(java.util.ArrayList)"><B>setParameters(ArrayList)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Set the parameters wholesale.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#setParameters(java.util.HashMap)"><B>setParameters(HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Set the parameters for all operations
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setParent(org.apache.axis.description.ServiceDesc)"><B>setParent(ServiceDesc)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setParent(org.apache.axis.message.NodeImpl)"><B>setParent(NodeImpl)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Set the parent node and invoke appendChild(this) to 
 add this node to the parent's list of children.
<DT><A HREF="org/apache/axis/utils/LockableHashtable.html#setParent(java.util.Hashtable)"><B>setParent(Hashtable)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/LockableHashtable.html" title="class in org.apache.axis.utils">LockableHashtable</A>
<DD>Set the parent Hashtable for this object
<DT><A HREF="javax/xml/soap/Node.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>Sets the parent of this <code>Node</code> object to the given
 <code>SOAPElement</code> object.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>Sets the parent of this <code>Node</code> object to the given
 <code>SOAPElement</code> object.
<DT><A HREF="org/apache/axis/message/SOAPBody.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBodyElement.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBodyElement.html" title="class in org.apache.axis.message">SOAPBodyElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeader.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeader.html" title="class in org.apache.axis.message">SOAPHeader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setParentElement(javax.xml.soap.SOAPElement)"><B>setParentElement(SOAPElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setPassword(java.lang.String)"><B>setPassword(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the password.
<DT><A HREF="org/apache/axis/client/Call.html#setPassword(java.lang.String)"><B>setPassword(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the password.
<DT><A HREF="org/apache/axis/client/Stub.html#setPassword(java.lang.String)"><B>setPassword(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the password.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setPassword(java.lang.String)"><B>setPassword(String)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setPassword
<DT><A HREF="org/apache/axis/MessageContext.html#setPastPivot(boolean)"><B>setPastPivot(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Indicate when we've passed the pivot.
<DT><A HREF="org/apache/axis/types/URI.html#setPath(java.lang.String)"><B>setPath(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the path for this URI.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#setPivotQName(javax.xml.namespace.QName)"><B>setPivotQName(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#setPort(int)"><B>setPort(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>Set the port
<DT><A HREF="org/apache/axis/types/URI.html#setPort(int)"><B>setPort(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the port for this URI.
<DT><A HREF="org/apache/axis/client/Call.html#setPortName(javax.xml.namespace.QName)"><B>setPortName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the port name of this Call object.
<DT><A HREF="org/apache/axis/client/Stub.html#setPortName(javax.xml.namespace.QName)"><B>setPortName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the port QName.
<DT><A HREF="org/apache/axis/client/Stub.html#setPortName(java.lang.String)"><B>setPortName(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the port name.
<DT><A HREF="javax/xml/rpc/Call.html#setPortTypeName(javax.xml.namespace.QName)"><B>setPortTypeName(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the qualified name of the port type.
<DT><A HREF="org/apache/axis/client/Call.html#setPortTypeName(javax.xml.namespace.QName)"><B>setPortTypeName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the port type name of this Call object.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setPortTypeName(java.lang.String)"><B>setPortTypeName(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the portType name
<DT><A HREF="org/apache/axis/SOAPPart.html#setPrefix(java.lang.String)"><B>setPrefix(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setPrefix(java.lang.String)"><B>setPrefix(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>The namespace prefix of this node, or <code>null</code> if it is
 unspecified.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#setPrefix(java.lang.String)"><B>setPrefix(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/Mapping.html#setPrefix(java.lang.String)"><B>setPrefix(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/Mapping.html" title="class in org.apache.axis.utils">Mapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setPretty(boolean)"><B>setPretty(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Indicate whether the serialization should be pretty printed.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#setPrintWriter(java.io.PrintWriter)"><B>setPrintWriter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>The bean helper class may be its own class, or it may be
 embedded within the bean class.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setProcessed(boolean)"><B>setProcessed(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#setProcessingRef(boolean)"><B>setProcessingRef(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisProperties.html#setProperties(java.util.Map)"><B>setProperties(Map)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Set property values for <code>Properties</code> bound to the
 current thread context class loader.
<DT><A HREF="org/apache/axis/AxisProperties.html#setProperties(java.util.Map, boolean)"><B>setProperties(Map, boolean)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Set property values for <code>Properties</code> bound to the
 current thread context class loader.
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#setProperties(javax.jms.Message, java.util.HashMap)"><B>setProperties(Message, HashMap)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setProperties(java.util.List)"><B>setProperties(List)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the list of extension properties for custom 
 JavaGeneratorFactories.
<DT><A HREF="javax/xml/rpc/Call.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the value for a named property.
<DT><A HREF="javax/xml/rpc/handler/MessageContext.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/MessageContext.html" title="interface in javax.xml.rpc.handler">MessageContext</A>
<DD>Sets the name and value of a property associated with the
 <code>MessageContext</code>.
<DT><A HREF="javax/xml/soap/SOAPMessage.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Associates the specified value with the specified property.
<DT><A HREF="org/apache/axis/AxisProperties.html#setProperty(java.lang.String, java.lang.String)"><B>setProperty(String, String)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Set value for property bound to the current thread context class loader.
<DT><A HREF="org/apache/axis/AxisProperties.html#setProperty(java.lang.String, java.lang.String, boolean)"><B>setProperty(String, String, boolean)</B></A> - 
Static method in class org.apache.axis.<A HREF="org/apache/axis/AxisProperties.html" title="class in org.apache.axis">AxisProperties</A>
<DD>Set value for property bound to the current thread context class loader.
<DT><A HREF="org/apache/axis/Message.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Allows you to set a named property to the passed in value.
<DT><A HREF="org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Allows you to set a named property to the passed in value.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setProperty(java.lang.String, java.lang.Object)"><B>setProperty(String, Object)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setPropertyParent(java.util.Hashtable)"><B>setPropertyParent(Hashtable)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the Hashtable that contains the default values for our
 properties.
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setPropertyParent(java.util.Hashtable)"><B>setPropertyParent(Hashtable)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setProviderQName(javax.xml.namespace.QName)"><B>setProviderQName(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Notation.html#setPublic(org.apache.axis.types.URI)"><B>setPublic(URI)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the name and namespace of this element
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setQName(javax.xml.namespace.QName)"><B>setQName(QName)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the QName of the parameter.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setQName2ClassMap(java.util.HashMap)"><B>setQName2ClassMap(HashMap)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set the type qname to java class map
<DT><A HREF="org/apache/axis/types/URI.html#setQueryString(java.lang.String)"><B>setQueryString(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the query string for this URI.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setQuiet(boolean)"><B>setQuiet(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setQuiet
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#setQuiet(boolean)"><B>setQuiet(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Method setQuiet
<DT><A HREF="org/apache/axis/message/RPCParam.html#setRPCCall(org.apache.axis.message.RPCElement)"><B>setRPCCall(RPCElement)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html#setReadyToGetNextStream(boolean)"><B>setReadyToGetNextStream(boolean)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/IncomingAttachmentStreams.html" title="class in org.apache.axis.attachments">IncomingAttachmentStreams</A>
<DD>Set the ready flag.
<DT><A HREF="org/apache/axis/handlers/SimpleSessionHandler.html#setReapPeriodicity(long)"><B>setReapPeriodicity(long)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/SimpleSessionHandler.html" title="class in org.apache.axis.handlers">SimpleSessionHandler</A>
<DD>Set the reaper periodicity in SECONDS

 Convenience method for testing.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setRecorded(boolean)"><B>setRecorded(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#setRecorder(org.apache.axis.message.SAX2EventRecorder)"><B>setRecorder(SAX2EventRecorder)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Set Event Recorder
<DT><A HREF="org/apache/axis/message/MessageElement.html#setRecorder(org.apache.axis.message.SAX2EventRecorder)"><B>setRecorder(SAX2EventRecorder)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the event recorder
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setRef(java.lang.String)"><B>setRef(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setRefType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>setRefType(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Method setRefType
<DT><A HREF="org/apache/axis/types/URI.html#setRegBasedAuthority(java.lang.String)"><B>setRegBasedAuthority(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Sets the registry based authority for this URI.
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setRelay(boolean)"><B>setRelay(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#setRemoteService(java.lang.String)"><B>setRemoteService(String)</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>Use this to indicate a particular "remote" service which should be
 invoked on the target AxisServer.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#setRequestFlow(org.apache.axis.deployment.wsdd.WSDDRequestFlow)"><B>setRequestFlow(WSDDRequestFlow)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Set our request flow
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#setRequestFlow(org.apache.axis.deployment.wsdd.WSDDRequestFlow)"><B>setRequestFlow(WSDDRequestFlow)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#setRequestHeaders(org.apache.axis.client.Call)"><B>setRequestHeaders(Call)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setRequestMessage(org.apache.axis.Message)"><B>setRequestMessage(Message)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the request message, and make sure that message is associated
 with this MessageContext.
<DT><A HREF="org/apache/axis/client/Call.html#setRequestMessage(org.apache.axis.Message)"><B>setRequestMessage(Message)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Directly set the request message in our MessageContext.
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#setResourceBase(java.lang.String)"><B>setResourceBase(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>Set the resource base
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#setResponseFlow(org.apache.axis.deployment.wsdd.WSDDResponseFlow)"><B>setResponseFlow(WSDDResponseFlow)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Set the response flow
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#setResponseFlow(org.apache.axis.deployment.wsdd.WSDDResponseFlow)"><B>setResponseFlow(WSDDResponseFlow)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setResponseMessage(org.apache.axis.Message)"><B>setResponseMessage(Message)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the response message, and make sure that message is associated
 with this MessageContext.
<DT><A HREF="org/apache/axis/client/Call.html#setReturnClass(java.lang.Class)"><B>setReturnClass(Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the desired return Java Class.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setReturnClass(java.lang.Class)"><B>setReturnClass(Class)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setReturnHeader(boolean)"><B>setReturnHeader(boolean)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>Set whether the return value is in the response message.
<DT><A HREF="org/apache/axis/client/Call.html#setReturnQName(javax.xml.namespace.QName)"><B>setReturnQName(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the QName of the return element

 NOT part of JAX-RPC
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setReturnQName(javax.xml.namespace.QName)"><B>setReturnQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#setReturnType(javax.xml.namespace.QName)"><B>setReturnType(QName)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the return type for a specific operation.
<DT><A HREF="javax/xml/rpc/Call.html#setReturnType(javax.xml.namespace.QName, java.lang.Class)"><B>setReturnType(QName, Class)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the return type for a specific operation.
<DT><A HREF="org/apache/axis/client/Call.html#setReturnType(javax.xml.namespace.QName)"><B>setReturnType(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the return type of the operation associated with this Call object.
<DT><A HREF="org/apache/axis/client/Call.html#setReturnType(javax.xml.namespace.QName, java.lang.Class)"><B>setReturnType(QName, Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the return type for a specific operation.
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setReturnType(javax.xml.namespace.QName)"><B>setReturnType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#setReturnTypeAsHeader(javax.xml.namespace.QName)"><B>setReturnTypeAsHeader(QName)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the return type as a header
<DT><A HREF="org/apache/axis/client/Call.html#setReturnTypeAsHeader(javax.xml.namespace.QName, java.lang.Class)"><B>setReturnTypeAsHeader(QName, Class)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the return type as a header
<DT><A HREF="org/apache/axis/message/SOAPHeaderElement.html#setRole(java.lang.String)"><B>setRole(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/handler/HandlerChain.html#setRoles(java.lang.String[])"><B>setRoles(String[])</B></A> - 
Method in interface javax.xml.rpc.handler.<A HREF="javax/xml/rpc/handler/HandlerChain.html" title="interface in javax.xml.rpc.handler">HandlerChain</A>
<DD>Sets SOAP Actor roles for this <code>HandlerChain</code>.
<DT><A HREF="org/apache/axis/MessageContext.html#setRoles(java.lang.String[])"><B>setRoles(String[])</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the SOAP actor roles associated with an executioni of
 <code>CodeHandlerChain</code> and its contained <code>Handler</code>
 instances.
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#setRoles(java.util.List)"><B>setRoles(List)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>Set the global role list for this configuration.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#setRoles(java.lang.String[])"><B>setRoles(String[])</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerChainImpl.html#setRoles(java.lang.String[])"><B>setRoles(String[])</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerChainImpl.html" title="class in org.apache.axis.handlers">HandlerChainImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#setRoles(java.lang.String[])"><B>setRoles(String[])</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setRoles(java.util.List)"><B>setRoles(List)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Set the service-specific role list
<DT><A HREF="org/apache/axis/attachments/Attachments.html#setRootPart(org.apache.axis.Part)"><B>setRootPart(Part)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Sets the root part of this multipart block
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#setRootPart(org.apache.axis.Part)"><B>setRootPart(Part)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPBody.html#setSAAJEncodingCompliance(boolean)"><B>setSAAJEncodingCompliance(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPBody.html" title="class in org.apache.axis.message">SOAPBody</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setSAAJEncodingCompliance(boolean)"><B>setSAAJEncodingCompliance(boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setSOAPActionURI(java.lang.String)"><B>setSOAPActionURI(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the soapAction URI.
<DT><A HREF="org/apache/axis/client/Call.html#setSOAPActionURI(java.lang.String)"><B>setSOAPActionURI(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the soapAction URI.
<DT><A HREF="org/apache/axis/MessageContext.html#setSOAPConstants(org.apache.axis.soap.SOAPConstants)"><B>setSOAPConstants(SOAPConstants)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the <code>SOAPConstants</code> used by this message context.
<DT><A HREF="org/apache/axis/SOAPPart.html#setSOAPEnvelope(org.apache.axis.message.SOAPEnvelope)"><B>setSOAPEnvelope(SOAPEnvelope)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>This set the SOAP Envelope for this part.
<DT><A HREF="org/apache/axis/client/Call.html#setSOAPService(org.apache.axis.handlers.soap.SOAPService)"><B>setSOAPService(SOAPService)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the service so that it defers missing property gets to the
 Call.
<DT><A HREF="org/apache/axis/client/Call.html#setSOAPVersion(org.apache.axis.soap.SOAPConstants)"><B>setSOAPVersion(SOAPConstants)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Allow the user to set the default SOAP version.
<DT><A HREF="org/apache/axis/MessageContext.html#setSchemaVersion(org.apache.axis.schema.SchemaVersion)"><B>setSchemaVersion(SchemaVersion)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the XML schema version this message context will use.
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setSchemaVersion(org.apache.axis.schema.SchemaVersion)"><B>setSchemaVersion(SchemaVersion)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Set the schema version for this envelope
<DT><A HREF="org/apache/axis/types/URI.html#setScheme(java.lang.String)"><B>setScheme(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the scheme for this URI.
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setScope(org.apache.axis.constants.Scope)"><B>setScope(Scope)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Set the scope for the deploy.xml file.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#setSearchClasspath(boolean)"><B>setSearchClasspath(boolean)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Determine whether or not we will look for a "*-config.wsdd" file
 on the classpath if we don't find it in the specified location.
<DT><A HREF="org/apache/axis/types/Duration.html#setSeconds(int)"><B>setSeconds(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD><B>Deprecated.</B>&nbsp;<I>use <A HREF="org/apache/axis/types/Duration.html#setSeconds(double)"><CODE>setSeconds(double)</CODE></A>
 instead</I>
<DT><A HREF="org/apache/axis/types/Duration.html#setSeconds(double)"><B>setSeconds(double)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>Sets the seconds.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setSendDecl(boolean)"><B>setSendDecl(boolean)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Set whether or not we should write XML declarations.
<DT><A HREF="org/apache/axis/attachments/Attachments.html#setSendType(int)"><B>setSendType(int)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Set the format for attachments.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#setSendType(int)"><B>setSendType(int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setSendType(int)"><B>setSendType(int)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setSerializer(java.lang.Class)"><B>setSerializer(Class)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#setSerializer(java.lang.String)"><B>setSerializer(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Set the serializer factory name
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setServerSide(boolean)"><B>setServerSide(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Turn on/off server skeleton creation
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#setServerSocket(java.net.ServerSocket)"><B>setServerSocket(ServerSocket)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Set the serverSocket this server should listen on.
<DT><A HREF="org/apache/axis/MessageContext.html#setService(org.apache.axis.handlers.soap.SOAPService)"><B>setService(SOAPService)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the <code>SOAPService</code> used to handle services in this
 context.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setServiceDesc(org.apache.axis.description.ServiceDesc)"><B>setServiceDesc(ServiceDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method setServiceDesc
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setServiceDesc(org.apache.axis.description.ServiceDesc)"><B>setServiceDesc(ServiceDesc)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Sets the ServicdDesc object
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setServiceDescription(org.apache.axis.description.ServiceDesc)"><B>setServiceDescription(ServiceDesc)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setServiceDescriptionURL(java.lang.String)"><B>setServiceDescriptionURL(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Set the service description URL for this service.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setServiceElementName(java.lang.String)"><B>setServiceElementName(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the service element name
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setServicePortName(java.lang.String)"><B>setServicePortName(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the String representation of the service port name
<DT><A HREF="org/apache/axis/MessageContext.html#setSession(org.apache.axis.session.Session)"><B>setSession(Session)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the current session.
<DT><A HREF="org/apache/axis/AxisEngine.html#setShouldSaveConfig(boolean)"><B>setShouldSaveConfig(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Set the flag that controls if the configuration should be saved.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setSimpleType(boolean)"><B>setSimpleType(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Method setSimpleType
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setSkeletonWanted(boolean)"><B>setSkeletonWanted(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Turn on/off server skeleton deploy
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setSoapAction(java.lang.String)"><B>setSoapAction(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setSoapAction(java.lang.String)"><B>setSoapAction(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the soapAction option value
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#setSoapConstants(org.apache.axis.soap.SOAPConstants)"><B>setSoapConstants(SOAPConstants)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>Set the soap constants for this envelope
<DT><A HREF="org/apache/axis/transport/http/SocketHolder.html#setSocket(java.net.Socket)"><B>setSocket(Socket)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SocketHolder.html" title="class in org.apache.axis.transport.http">SocketHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#setSource(java.lang.String)"><B>setSource(String)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Set the name of the directory containing the source program file
<DT><A HREF="org/apache/axis/components/compiler/Compiler.html#setSource(java.lang.String)"><B>setSource(String)</B></A> - 
Method in interface org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Compiler.html" title="interface in org.apache.axis.components.compiler">Compiler</A>
<DD>Set the name of the directory containing the source program file
<DT><A HREF="org/apache/axis/SOAPPart.html#setStandalone(boolean)"><B>setStandalone(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setStopClasses(java.util.ArrayList)"><B>setStopClasses(ArrayList)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setStopClasses(java.util.ArrayList)"><B>setStopClasses(ArrayList)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Adds a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setStopClasses(java.lang.String)"><B>setStopClasses(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Add a list of classes (fully qualified) that will stop the traversal
 of the inheritance tree if encounter in method or complex type generation
<DT><A HREF="org/apache/axis/client/Call.html#setStreaming(boolean)"><B>setStreaming(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/SOAPPart.html#setStrictErrorChecking(boolean)"><B>setStrictErrorChecking(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Set the service style - document or RPC
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setStyle(java.lang.String)"><B>setStyle(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>setStyle
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setStyle(org.apache.axis.constants.Style)"><B>setStyle(Style)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>setStyle
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html#setSupportedEncodings(java.lang.String[])"><B>setSupportedEncodings(String[])</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>
<DD>Sets the encodingStyle URIs supported by this TypeMapping
 instance.
<DT><A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html#setSupportedEncodings(java.lang.String[])"><B>setSupportedEncodings(String[])</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DefaultTypeMappingImpl.html" title="class in org.apache.axis.encoding">DefaultTypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html#setSupportedEncodings(java.lang.String[])"><B>setSupportedEncodings(String[])</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#setSupportedEncodings(java.lang.String[])"><B>setSupportedEncodings(String[])</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Sets the list of encoding styles supported by this TypeMapping object.
<DT><A HREF="org/apache/axis/types/Notation.html#setSystem(org.apache.axis.types.URI)"><B>setSystem(URI)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Notation.html" title="class in org.apache.axis.types">Notation</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Call.html#setTargetEndpointAddress(java.lang.String)"><B>setTargetEndpointAddress(String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Sets the address of the target service endpoint.
<DT><A HREF="org/apache/axis/client/AdminClient.html#setTargetEndpointAddress(java.net.URL)"><B>setTargetEndpointAddress(URL)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>set the URL to deploy to
 requires that call!=null
<DT><A HREF="org/apache/axis/client/Call.html#setTargetEndpointAddress(java.lang.String)"><B>setTargetEndpointAddress(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the endpoint address of the target service port.
<DT><A HREF="org/apache/axis/client/Call.html#setTargetEndpointAddress(java.net.URL)"><B>setTargetEndpointAddress(URL)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Sets the URL of the target Web Service.
<DT><A HREF="org/apache/axis/types/Schema.html#setTargetNamespace(org.apache.axis.types.URI)"><B>setTargetNamespace(URI)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/MessageContext.html#setTargetService(java.lang.String)"><B>setTargetService(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the target service for this message.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setTargetService(java.lang.String)"><B>setTargetService(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the target service name
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setTestCaseWanted(boolean)"><B>setTestCaseWanted(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Turn on/off test case creation
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#setThreadDefaultConfig(org.apache.axis.EngineConfiguration)"><B>setThreadDefaultConfig(EngineConfiguration)</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Time.html#setTime(java.util.Calendar)"><B>setTime(Calendar)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>set the time; ignore year, month, date
<DT><A HREF="org/apache/axis/types/Time.html#setTime(java.util.Date)"><B>setTime(Date)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>set the time from a date instance
<DT><A HREF="org/apache/axis/MessageContext.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set timeout in our MessageContext.
<DT><A HREF="org/apache/axis/client/Call.html#setTimeout(java.lang.Integer)"><B>setTimeout(Integer)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the timeout in milliseconds.
<DT><A HREF="org/apache/axis/session/Session.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>Set the session's time-to-live.
<DT><A HREF="org/apache/axis/session/SimpleSession.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>Set the session's time-to-live.
<DT><A HREF="org/apache/axis/soap/SOAPConnectionImpl.html#setTimeout(java.lang.Integer)"><B>setTimeout(Integer)</B></A> - 
Method in class org.apache.axis.soap.<A HREF="org/apache/axis/soap/SOAPConnectionImpl.html" title="class in org.apache.axis.soap">SOAPConnectionImpl</A>
<DD>set the timeout value
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>Set the session's time-to-live.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setTimeout(long)"><B>setTimeout(long)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Set the timeout, in milliseconds
<DT><A HREF="org/apache/axis/types/Day.html#setTimezone(java.lang.String)"><B>setTimezone(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Month.html#setTimezone(java.lang.String)"><B>setTimezone(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#setTimezone(java.lang.String)"><B>setTimezone(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#setTimezone(java.lang.String)"><B>setTimezone(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#setTimezone(java.lang.String)"><B>setTimezone(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#setTransport(java.lang.String)"><B>setTransport(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>set the transport to deploy with.
<DT><A HREF="org/apache/axis/client/Call.html#setTransport(org.apache.axis.client.Transport)"><B>setTransport(Transport)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the Transport

 Note: Not part of JAX-RPC specification.
<DT><A HREF="org/apache/axis/client/Call.html#setTransportForProtocol(java.lang.String, java.lang.Class)"><B>setTransportForProtocol(String, Class)</B></A> - 
Static method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Register a Transport that should be used for URLs of the specified
 protocol.
<DT><A HREF="org/apache/axis/MessageContext.html#setTransportName(java.lang.String)"><B>setTransportName(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the transport name for this context.
<DT><A HREF="org/apache/axis/client/Transport.html#setTransportName(java.lang.String)"><B>setTransportName(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Sets the transport chain name - to override the default.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#setType(javax.xml.namespace.QName)"><B>setType(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#setType(java.lang.String)"><B>setType(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#setType(java.lang.String)"><B>setType(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setType(javax.xml.namespace.QName)"><B>setType(QName)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>set the element's type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html#setType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>setType(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#setType(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>setType(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Set the TypeEntry of the parameter.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setTypeAttribute(org.xml.sax.Attributes, javax.xml.namespace.QName)"><B>setTypeAttribute(Attributes, QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Obtains the type attribute that should be serialized and returns the new list of Attributes
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setTypeCollisionProtection(boolean)"><B>setTypeCollisionProtection(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Enable/disable type collision protection
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setTypeMapping(org.apache.axis.encoding.TypeMapping)"><B>setTypeMapping(TypeMapping)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setTypeMapping(org.apache.axis.encoding.TypeMapping)"><B>setTypeMapping(TypeMapping)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setTypeMapping(org.apache.axis.encoding.TypeMapping)"><B>setTypeMapping(TypeMapping)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Sets the <code>TypeMapping</code> used by the service
<DT><A HREF="org/apache/axis/MessageContext.html#setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)"><B>setTypeMappingRegistry(TypeMappingRegistry)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Replace the engine's type mapping registry with a local one.
<DT><A HREF="org/apache/axis/client/Service.html#setTypeMappingRegistry(javax.xml.rpc.encoding.TypeMappingRegistry)"><B>setTypeMappingRegistry(TypeMappingRegistry)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Defines the current Type Mappig Registry.
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)"><B>setTypeMappingRegistry(TypeMappingRegistry)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)"><B>setTypeMappingRegistry(TypeMappingRegistry)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setTypeMappingRegistry(org.apache.axis.encoding.TypeMappingRegistry)"><B>setTypeMappingRegistry(TypeMappingRegistry)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the TypeMappingRegistry for this Emitter.
<DT><A HREF="org/apache/axis/client/Service.html#setTypeMappingVersion(java.lang.String)"><B>setTypeMappingVersion(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>Set the typemapping version
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setTypeMappingVersion(java.lang.String)"><B>setTypeMappingVersion(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Method setTypeMappingVersion
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setTypeMappings(java.util.Vector)"><B>setTypeMappings(Vector)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#setTypeQName(javax.xml.namespace.QName)"><B>setTypeQName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#setUnderlTypeNillable(boolean)"><B>setUnderlTypeNillable(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Set the boolean indicating whether underlying type of array is nillable.
<DT><A HREF="org/apache/axis/client/Transport.html#setUrl(java.lang.String)"><B>setUrl(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Set the transport-specific URL
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Set the service use - literal or encoded
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setUse(java.lang.String)"><B>setUse(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>setUse
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setUse(org.apache.axis.constants.Use)"><B>setUse(Use)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>setUse
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setUseInheritedMethods(boolean)"><B>setUseInheritedMethods(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Turn on or off inherited method WSDL generation.
<DT><A HREF="org/apache/axis/MessageContext.html#setUseSOAPAction(boolean)"><B>setUseSOAPAction(boolean)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Enable or dissable the use of soap action information.
<DT><A HREF="org/apache/axis/client/Call.html#setUseSOAPAction(boolean)"><B>setUseSOAPAction(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Flag to indicate if soapAction should be used.
<DT><A HREF="org/apache/axis/types/URI.html#setUserinfo(java.lang.String)"><B>setUserinfo(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Set the userinfo for this URI.
<DT><A HREF="org/apache/axis/MessageContext.html#setUsername(java.lang.String)"><B>setUsername(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Set the username.
<DT><A HREF="org/apache/axis/client/Call.html#setUsername(java.lang.String)"><B>setUsername(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Set the username.
<DT><A HREF="org/apache/axis/client/Stub.html#setUsername(java.lang.String)"><B>setUsername(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Set the username.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setUsername(java.lang.String)"><B>setUsername(String)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setUsername
<DT><A HREF="javax/xml/soap/Node.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in interface javax.xml.soap.<A HREF="javax/xml/soap/Node.html" title="interface in javax.xml.soap">Node</A>
<DD>If this is a Text node then this method will set its value, otherwise it
 sets the value of the immediate (Text) child of this node.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>set the documentation
<DT><A HREF="org/apache/axis/encoding/Callback.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Callback.html" title="interface in org.apache.axis.encoding">Callback</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>Set the deserialized value.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#setValue(java.lang.Object)"><B>setValue(Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>Set the deserialized value.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/NodeImpl.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>If this is a Text node then this method will set its value, otherwise it
 sets the value of the immediate (Text) child of this node.
<DT><A HREF="org/apache/axis/message/RPCParam.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultCodeBuilder.html" title="class in org.apache.axis.message">SOAPFaultCodeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultReasonBuilder.html" title="class in org.apache.axis.message">SOAPFaultReasonBuilder</A>
<DD>Defined by Callback.
<DT><A HREF="org/apache/axis/types/Day.html#setValue(int, java.lang.String)"><B>setValue(int, String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html#setValue(int)"><B>setValue(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRefs.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Id.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Id.html" title="class in org.apache.axis.types">Id</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/Month.html#setValue(int, java.lang.String)"><B>setValue(int, String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Month.html#setValue(int)"><B>setValue(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#setValue(int, int, java.lang.String)"><B>setValue(int, int, String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#setValue(int, int)"><B>setValue(int, int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NCName.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NCName.html" title="class in org.apache.axis.types">NCName</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/NMTokens.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Name.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Name.html" title="class in org.apache.axis.types">Name</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/NormalizedString.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/Token.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types">Token</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/UnsignedByte.html#setValue(long)"><B>setValue(long)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#setValue(long)"><B>setValue(long)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/UnsignedShort.html#setValue(long)"><B>setValue(long)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>
<DD>validates the data and sets the value for the object.
<DT><A HREF="org/apache/axis/types/Year.html#setValue(int, java.lang.String)"><B>setValue(int, String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#setValue(int)"><B>setValue(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#setValue(int, int, java.lang.String)"><B>setValue(int, int, String)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#setValue(int, int)"><B>setValue(int, int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#setValue(java.lang.String)"><B>setValue(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#setVerbose(boolean)"><B>setVerbose(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Method setVerbose
<DT><A HREF="org/apache/axis/SOAPPart.html#setVersion(java.lang.String)"><B>setVersion(String)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#setVersion(org.apache.axis.types.NormalizedString)"><B>setVersion(NormalizedString)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#setVersionMessage(java.lang.String)"><B>setVersionMessage(String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Set the version message that appears at the top of the WSDL
 If not set, we use the default version message.
<DT><A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html#setWSDDService(org.apache.axis.deployment.wsdd.WSDDService)"><B>setWSDDService(WSDDService)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html" title="class in org.apache.axis.management.jmx">WSDDServiceWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html#setWSDDTransport(org.apache.axis.deployment.wsdd.WSDDTransport)"><B>setWSDDTransport(WSDDTransport)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html" title="class in org.apache.axis.management.jmx">WSDDTransportWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/JavaServiceDesc.html#setWSDLFile(java.lang.String)"><B>setWSDLFile(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/JavaServiceDesc.html" title="class in org.apache.axis.description">JavaServiceDesc</A>
<DD>set the wsdl file of the service; this causes the named
 file to be returned on a ?wsdl, probe, not introspection
 generated wsdl.
<DT><A HREF="org/apache/axis/description/ServiceDesc.html#setWSDLFile(java.lang.String)"><B>setWSDLFile(String)</B></A> - 
Method in interface org.apache.axis.description.<A HREF="org/apache/axis/description/ServiceDesc.html" title="interface in org.apache.axis.description">ServiceDesc</A>
<DD>set the wsdl file of the service; this causes the named
 file to be returned on a ?wsdl, probe, not introspection
 generated wsdl.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#setWrapArrays(boolean)"><B>setWrapArrays(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#setWrapArrays(boolean)"><B>setWrapArrays(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html#setWrapped(boolean)"><B>setWrapped(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>
<DD>Turn on/off element wrapping for literal soap body's.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#setWriteXMLType(javax.xml.namespace.QName)"><B>setWriteXMLType(QName)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCParam.html#setXSITypeGeneration(java.lang.Boolean)"><B>setXSITypeGeneration(Boolean)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCParam.html" title="class in org.apache.axis.message">RPCParam</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#setXmlName(javax.xml.namespace.QName)"><B>setXmlName(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Set the XML QName for this field
<DT><A HREF="org/apache/axis/description/FaultDesc.html#setXmlType(javax.xml.namespace.QName)"><B>setXmlType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FieldDesc.html#setXmlType(javax.xml.namespace.QName)"><B>setXmlType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FieldDesc.html" title="class in org.apache.axis.description">FieldDesc</A>
<DD>Returns the XML type (e.g.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#setXmlType(javax.xml.namespace.QName)"><B>setXmlType(QName)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#setYear(int)"><B>setYear(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#setYear(int)"><B>setYear(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#setYears(int)"><B>setYears(int)</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AnyContentType.html#set_any(org.apache.axis.message.MessageElement[])"><B>set_any(MessageElement[])</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AnyContentType.html" title="interface in org.apache.axis.encoding">AnyContentType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/MixedContentType.html#set_any(org.apache.axis.message.MessageElement[])"><B>set_any(MessageElement[])</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/MixedContentType.html" title="interface in org.apache.axis.encoding">MixedContentType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Schema.html#set_any(org.apache.axis.message.MessageElement[])"><B>set_any(MessageElement[])</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Schema.html" title="class in org.apache.axis.types">Schema</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#setupApplicationProperties(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.transport.jms.JMSURLHelper)"><B>setupApplicationProperties(MessageContext, Call, JMSURLHelper)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Transport.html#setupMessageContext(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContext(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html#setupMessageContext(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.transport.jms.JMSURLHelper)"><B>setupMessageContext(MessageContext, Call, JMSURLHelper)</B></A> - 
Method in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JMSVendorAdapter.html" title="class in org.apache.axis.components.jms">JMSVendorAdapter</A>
<DD>Set JMS properties in the message context.
<DT><A HREF="org/apache/axis/client/Transport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>Set up any transport-specific derived properties in the message context.
<DT><A HREF="org/apache/axis/transport/java/JavaTransport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.transport.java.<A HREF="org/apache/axis/transport/java/JavaTransport.html" title="class in org.apache.axis.transport.java">JavaTransport</A>
<DD>Set up any transport-specific derived properties in the message context.
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>Set up any transport-specific derived properties in the message context.
<DT><A HREF="org/apache/axis/transport/local/LocalTransport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.transport.local.<A HREF="org/apache/axis/transport/local/LocalTransport.html" title="class in org.apache.axis.transport.local">LocalTransport</A>
<DD>Set up any transport-specific derived properties in the message context.
<DT><A HREF="org/apache/axis/transport/mail/MailTransport.html#setupMessageContextImpl(org.apache.axis.MessageContext, org.apache.axis.client.Call, org.apache.axis.AxisEngine)"><B>setupMessageContextImpl(MessageContext, Call, AxisEngine)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailTransport.html" title="class in org.apache.axis.transport.mail">MailTransport</A>
<DD>Set up any transport-specific derived properties in the message context.
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#setupService(org.apache.axis.MessageContext)"><B>setupService(MessageContext)</B></A> - 
Method in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>If our path ends in the right file extension (*.jws), handle all the
 work necessary to compile the source file if it needs it, and set
 up the "proxy" RPC service surrounding it as the MessageContext's
 active service.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#shortValue()"><B>shortValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#shortValue()"><B>shortValue()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#shouldDoAutoTypes()"><B>shouldDoAutoTypes()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#shouldEmit(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>shouldEmit(TypeEntry)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisEngine.html#shouldSaveConfig"><B>shouldSaveConfig</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Should we save the engine config each time we modify it? True if we
 should.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#shouldSendXSIType()"><B>shouldSendXSIType()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Get whether or not to write xsi:type attributes.
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#shutdown()"><B>shutdown()</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Forcefully shutdown the pool
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#shutdown()"><B>shutdown()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSTransport.html#shutdown()"><B>shutdown()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSTransport.html" title="class in org.apache.axis.transport.jms">JMSTransport</A>
<DD>Shuts down the connectors managed by this JMSTransport.
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#shutdown()"><B>shutdown()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#signature"><B>signature</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Field signature
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#simpleValueTypes"><B>simpleValueTypes</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Field simpleValueTypes
<DT><A HREF="org/apache/axis/message/NullAttributes.html#singleton"><B>singleton</B></A> - 
Static variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NullAttributes.html" title="class in org.apache.axis.message">NullAttributes</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#singletonInstance"><B>singletonInstance</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Placeholder for hanging on to singleton object
<DT><A HREF="org/apache/axis/client/async/Status.html#size()"><B>size()</B></A> - 
Static method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/Status.html" title="class in org.apache.axis.client.async">Status</A>
<DD>Method size
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#size()"><B>size()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.size()</CODE>.
<DT><A HREF="org/apache/axis/constants/Enum.Type.html#size()"><B>size()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.Type.html" title="class in org.apache.axis.constants">Enum.Type</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Scope.html#size()"><B>size()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Scope.html" title="class in org.apache.axis.constants">Scope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#size()"><B>size()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.html#size()"><B>size()</B></A> - 
Static method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html#size()"><B>size()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnectorManager.ShareableObjectPool.html" title="class in org.apache.axis.transport.jms">JMSConnectorManager.ShareableObjectPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#size()"><B>size()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method size
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#size()"><B>size()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#skelWriter"><B>skelWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field skelWriter
<DT><A HREF="org/apache/axis/transport/http/ChunkedInputStream.html#skip(long)"><B>skip(long)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedInputStream.html" title="class in org.apache.axis.transport.http">ChunkedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html#skip(int)"><B>skip(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/NonBlockingBufferedInputStream.html" title="class in org.apache.axis.transport.http">NonBlockingBufferedInputStream</A>
<DD>skip over (and discard) a specified number of bytes in this input
 stream
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#skipAttributes()"><B>skipAttributes()</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/bytecode/ClassReader.html#skipFully(int)"><B>skipFully(int)</B></A> - 
Method in class org.apache.axis.utils.bytecode.<A HREF="org/apache/axis/utils/bytecode/ClassReader.html" title="class in org.apache.axis.utils.bytecode">ClassReader</A>
<DD>skip n bytes in the input stream.
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#skippedEntity(java.lang.String)"><B>skippedEntity(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#skippedEntity(java.lang.String)"><B>skippedEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#skippedEntity(java.lang.String)"><B>skippedEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#soapPart"><B>soapPart</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Field soapPart.
<DT><A HREF="org/apache/axis/message/SOAPDocumentImpl.html#soapPart"><B>soapPart</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPDocumentImpl.html" title="class in org.apache.axis.message">SOAPDocumentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/JWSHandler.html#soapServices"><B>soapServices</B></A> - 
Static variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/JWSHandler.html" title="class in org.apache.axis.handlers">JWSHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html#soapStream"><B>soapStream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartDimeInputStream.html" title="class in org.apache.axis.attachments">MultiPartDimeInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#soapStream"><B>soapStream</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field soapStream
<DT><A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html#soapStreamBDS"><B>soapStreamBDS</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MultiPartRelatedInputStream.html" title="class in org.apache.axis.attachments">MultiPartRelatedInputStream</A>
<DD>Field soapStreamBDS
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#sourceToInputSource(javax.xml.transform.Source)"><B>sourceToInputSource(Source)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Utility to get the bytes uri
<DT><A HREF="org/apache/axis/utils/StringUtils.html#split(java.lang.String, char)"><B>split(String, char)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Splits the provided text into an array, separator specified.
<DT><A HREF="org/apache/axis/message/CommentImpl.html#splitText(int)"><B>splitText(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/CommentImpl.html" title="class in org.apache.axis.message">CommentImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#splitText(int)"><B>splitText(int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>Use the textRep, and convert it to org.apache.axis.Text
 in order to keep the Axis SOAP strcture after operation

 This work would be easier if constructor, Text(org.w3c.dom.Text)
 is defined
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#srcDir"><B>srcDir</B></A> - 
Variable in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>The name of the directory containing the source program file
<DT><A HREF="org/apache/axis/components/net/JSSESocketFactory.html#sslFactory"><B>sslFactory</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/JSSESocketFactory.html" title="class in org.apache.axis.components.net">JSSESocketFactory</A>
<DD>Field sslFactory
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#stackToString(java.lang.Throwable)"><B>stackToString(Throwable)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#standardTypes"><B>standardTypes</B></A> - 
Static variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field standardTypes
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Placeholder for "resume this service" method
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#start()"><B>start()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>start the server
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#start()"><B>start()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>Start the server
<DT><A HREF="org/apache/axis/server/AxisServer.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>Start the server.
<DT><A HREF="org/apache/axis/transport/http/JettyAxisServer.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/JettyAxisServer.html" title="class in org.apache.axis.transport.http">JettyAxisServer</A>
<DD>Start the server
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#start(boolean)"><B>start(boolean)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Start this server.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Start this server as a NON-daemon.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/SimpleJMSListener.html" title="class in org.apache.axis.transport.jms">SimpleJMSListener</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#start(boolean)"><B>start(boolean)</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Start this server.
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Start this server as a NON-daemon.
<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#start()"><B>start()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>Frame is being displayed
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startCDATA()"><B>startCDATA()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startCDATA()"><B>startCDATA()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startCDATA()"><B>startCDATA()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#startContentsIndex"><B>startContentsIndex</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startDTD(java.lang.String, java.lang.String, java.lang.String)"><B>startDTD(String, String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startDTD(java.lang.String, java.lang.String, java.lang.String)"><B>startDTD(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startDTD(java.lang.String, java.lang.String, java.lang.String)"><B>startDTD(String, String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startDocument()"><B>startDocument()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>SAX event handlers
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startDocument()"><B>startDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startDocument()"><B>startDocument()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html#startElement(javax.xml.namespace.QName, org.xml.sax.Attributes)"><B>startElement(QName, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/AttributeSerializationContextImpl.html" title="class in org.apache.axis.encoding">AttributeSerializationContextImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>startElement is called when an element is read.
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>This method is invoked when an element start tag is encountered.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>This method is invoked when an element start tag is encountered.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#startElement(javax.xml.namespace.QName, org.xml.sax.Attributes)"><B>startElement(QName, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Writes (using the Writer) the start tag for element QName along with the
 indicated attributes and namespace mappings.
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#startElement(javax.xml.namespace.QName, org.xml.sax.Attributes)"><B>startElement(QName, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>startElement
 
 The ONLY reason that this method is overridden is so that
 the object value can be set or a reasonable exception is thrown
 indicating that the object cannot be created.
<DT><A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ImageDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">ImageDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MimeMultipartDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">MimeMultipartDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/OctetStreamDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">OctetStreamDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/PlainTextDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">PlainTextDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SourceDataHandlerDeserializer.html" title="class in org.apache.axis.encoding.ser">SourceDataHandlerDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/AxisContentHandler.html" title="class in org.apache.axis.encoding.ser.castor">AxisContentHandler</A>
<DD>delegates to the serialization context
<DT><A HREF="org/apache/axis/message/BodyBuilder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/BodyBuilder.html" title="class in org.apache.axis.message">BodyBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/EnvelopeBuilder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/EnvelopeBuilder.html" title="class in org.apache.axis.message">EnvelopeBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/HeaderBuilder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/HeaderBuilder.html" title="class in org.apache.axis.message">HeaderBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCHandler.html" title="class in org.apache.axis.message">RPCHandler</A>
<DD>This method is invoked when an element start tag is encountered.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)"><B>startElement(String, String, String, Attributes)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultBuilder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultBuilder.html" title="class in org.apache.axis.message">SOAPFaultBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPFaultDetailsBuilder.html" title="class in org.apache.axis.message">SOAPFaultDetailsBuilder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SOAPHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes, org.apache.axis.encoding.DeserializationContext)"><B>startElement(String, String, String, Attributes, DeserializationContext)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPHandler.html" title="class in org.apache.axis.message">SOAPHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startEntity(java.lang.String)"><B>startEntity(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startEntity(java.lang.String)"><B>startEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startEntity(java.lang.String)"><B>startEntity(String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#startEventIndex"><B>startEventIndex</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#startOfDocument"><B>startOfDocument</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>The flag whether the XML decl should be written
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startOfMappingsPos"><B>startOfMappingsPos</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializationContext.html#startPrefixMapping(java.lang.String, java.lang.String)"><B>startPrefixMapping(String, String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializationContext.html" title="class in org.apache.axis.encoding">DeserializationContext</A>
<DD>Record the current set of prefix mappings in the nsMappings table.
<DT><A HREF="org/apache/axis/message/SAX2EventRecorder.html#startPrefixMapping(java.lang.String, java.lang.String)"><B>startPrefixMapping(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAX2EventRecorder.html" title="class in org.apache.axis.message">SAX2EventRecorder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/SAXOutputter.html#startPrefixMapping(java.lang.String, java.lang.String)"><B>startPrefixMapping(String, String)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/SAXOutputter.html" title="class in org.apache.axis.message">SAXOutputter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#startService(java.lang.String)"><B>startService(String)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>Start the Service
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#startService(java.lang.String)"><B>startService(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>Start the Service
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#startService(java.lang.String)"><B>startService(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>Start the Service
<DT><A HREF="org/apache/axis/utils/StringUtils.html#startsWithIgnoreWhitespaces(java.lang.String, java.lang.String)"><B>startsWithIgnoreWhitespaces(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Tests if this string starts with the specified prefix (Ignoring whitespaces)
<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#stateChanged(javax.swing.event.ChangeEvent)"><B>stateChanged(ChangeEvent)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>ChangeListener to handle tab actions
<DT><A HREF="org/apache/axis/handlers/soap/SOAPService.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.handlers.soap.<A HREF="org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>
<DD>Placeholder for "suspend this service" method
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#stop()"><B>stop()</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>stop the server
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#stop()"><B>stop()</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>stop the server
<DT><A HREF="org/apache/axis/server/AxisServer.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.server.<A HREF="org/apache/axis/server/AxisServer.html" title="class in org.apache.axis.server">AxisServer</A>
<DD>Stop the server.
<DT><A HREF="org/apache/axis/transport/http/SimpleAxisServer.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/SimpleAxisServer.html" title="class in org.apache.axis.transport.http">SimpleAxisServer</A>
<DD>Stop this server.
<DT><A HREF="org/apache/axis/transport/jms/JMSConnector.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConnector.html" title="class in org.apache.axis.transport.jms">JMSConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/mail/MailServer.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailServer.html" title="class in org.apache.axis.transport.mail">MailServer</A>
<DD>Stop this server.
<DT><A HREF="org/apache/axis/utils/SOAPMonitor.html#stop()"><B>stop()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils">SOAPMonitor</A>
<DD>Method stop
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#stopService(java.lang.String)"><B>stopService(String)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>Stop the Service
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html#stopService(java.lang.String)"><B>stopService(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministrator.html" title="class in org.apache.axis.management.jmx">ServiceAdministrator</A>
<DD>Stop the Service
<DT><A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html#stopService(java.lang.String)"><B>stopService(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/ServiceAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">ServiceAdministratorMBean</A>
<DD>Stop the Service
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#streamCount"><B>streamCount</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#streamInError"><B>streamInError</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html#streamNo"><B>streamNo</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/BoundaryDelimitedStream.html" title="class in org.apache.axis.attachments">BoundaryDelimitedStream</A>
<DD>Field streamNo.
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#streamNo"><B>streamNo</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/StringUtils.html#strip(java.lang.String)"><B>strip(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Strips whitespace from the start and end of a String.
<DT><A HREF="org/apache/axis/utils/StringUtils.html#strip(java.lang.String, java.lang.String)"><B>strip(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Strips any of a set of characters from the start and end of a String.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#stripBackslashes(java.lang.String)"><B>stripBackslashes(String)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>Slave method for getQNameWithBackslashlessLocal
<DT><A HREF="org/apache/axis/utils/StringUtils.html#stripEnd(java.lang.String, java.lang.String)"><B>stripEnd(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Strips any of a set of characters from the end of a String.
<DT><A HREF="org/apache/axis/utils/StringUtils.html#stripStart(java.lang.String, java.lang.String)"><B>stripStart(String, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Strips any of a set of characters from the start of a String.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#stubWriter"><B>stubWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field stubWriter
<DT><A HREF="org/apache/axis/message/Text.html#substringData(int, int)"><B>substringData(int, int)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLChar.html#supplemental(char, char)"><B>supplemental(char, char)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>Returns true the supplemental character corresponding to the given
 surrogates.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#switchToBackingStore()"><B>switchToBackingStore()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method switchToBackingStore
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBindingWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBindingWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaGeneratorFactory.html" title="class in org.apache.axis.wsdl.toJava">JavaGeneratorFactory</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#symbolTable"><B>symbolTable</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field symbolTable
<DT><A HREF="org/apache/axis/MessageContext.html#systemTempDir"><B>systemTempDir</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Temporary directory to store attachments.
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html#TAB"><B>TAB</B></A> - 
Static variable in class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/AbstractXMLEncoder.html" title="class in org.apache.axis.components.encoding">AbstractXMLEncoder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#TEST_OPT"><B>TEST_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field TEST_OPT
<DT><A HREF="org/apache/axis/utils/CLOption.html#TEXT_ARGUMENT"><B>TEXT_ARGUMENT</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Value of <A HREF="org/apache/axis/utils/CLOption.html#getId()"><CODE>CLOption.getId()</CODE></A> when the option is a text argument.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#TIMEOUT_TIME"><B>TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>createConnector</code>
 method.
<DT><A HREF="org/apache/axis/Constants.html#TIME_LOG_CATEGORY"><B>TIME_LOG_CATEGORY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>time logged stuff.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#TIME_TO_LIVE"><B>TIME_TO_LIVE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>send</code> and <code>call</code>
 methods.
<DT><A HREF="org/apache/axis/transport/mail/MailConstants.html#TO_ADDRESS"><B>TO_ADDRESS</B></A> - 
Static variable in class org.apache.axis.transport.mail.<A HREF="org/apache/axis/transport/mail/MailConstants.html" title="class in org.apache.axis.transport.mail">MailConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#TRANSPORT_NAME"><B>TRANSPORT_NAME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>This is the name of a property to set the transport of the message
<DT><A HREF="org/apache/axis/client/Call.html#TRANSPORT_PROPERTY"><B>TRANSPORT_PROPERTY</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>This is not the name of a property that can be set with
 setProperty, despite its name.
<DT><A HREF="org/apache/axis/MessageContext.html#TRANS_URL"><B>TRANS_URL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>This String is the URL that the message came to.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#TYPEMAPPING_OPT"><B>TYPEMAPPING_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field TYPEMAPPING_OPT
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#TYPEMAPPING_OPT"><B>TYPEMAPPING_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field TYPEMAPPING_OPT
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#TYPE_HTTP_GET"><B>TYPE_HTTP_GET</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field TYPE_HTTP_GET
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#TYPE_HTTP_POST"><B>TYPE_HTTP_POST</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field TYPE_HTTP_POST
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#TYPE_SOAP"><B>TYPE_SOAP</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field TYPE_SOAP
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#TYPE_UNKNOWN"><B>TYPE_UNKNOWN</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field TYPE_UNKNOWN
<DT><A HREF="org/apache/axis/encoding/Target.html" title="interface in org.apache.axis.encoding"><B>Target</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Target.html" title="interface in org.apache.axis.encoding">Target</A>.<DD>A deserializer constructs a value from the xml passed over the wire and
 sets a target.<DT><A HREF="org/apache/axis/TargetedChain.html" title="interface in org.apache.axis"><B>TargetedChain</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/TargetedChain.html" title="interface in org.apache.axis">TargetedChain</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils"><B>TeeOutputStream</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#TeeOutputStream(java.io.OutputStream, java.io.OutputStream)"><B>TeeOutputStream(OutputStream, OutputStream)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/Text.html" title="interface in javax.xml.soap"><B>Text</B></A> - interface javax.xml.soap.<A HREF="javax/xml/soap/Text.html" title="interface in javax.xml.soap">Text</A>.<DD>A representation of a node whose value is text.<DT><A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message"><B>Text</B></A> - class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>.<DD>A representation of a node whose value is text.<DT><A HREF="org/apache/axis/message/Text.html#Text(org.w3c.dom.CharacterData)"><B>Text(CharacterData)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#Text(java.lang.String)"><B>Text(String)</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#Text()"><B>Text()</B></A> - 
Constructor for class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding"><B>TextSerializationContext</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>.<DD>For internal use only.<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#TextSerializationContext(java.io.Writer)"><B>TextSerializationContext(Writer)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#TextSerializationContext(java.io.Writer, org.apache.axis.MessageContext)"><B>TextSerializationContext(Writer, MessageContext)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool"><B>ThreadPool</B></A> - class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#ThreadPool()"><B>ThreadPool()</B></A> - 
Constructor for class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#ThreadPool(int)"><B>ThreadPool(int)</B></A> - 
Constructor for class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types"><B>Time</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>.<DD>Class that represents the xsd:time XML Schema type<DT><A HREF="org/apache/axis/types/Time.html#Time(java.util.Calendar)"><B>Time(Calendar)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>Initialize with a Calender, year month and date are ignored
<DT><A HREF="org/apache/axis/types/Time.html#Time(java.lang.String)"><B>Time(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>Converts a string formatted as HH:mm:ss[.SSS][+/-offset]
<DT><A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>TimeDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html" title="class in org.apache.axis.encoding.ser">TimeDeserializer</A>.<DD>The TimeSerializer deserializes a time.<DT><A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html#TimeDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>TimeDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeDeserializer.html" title="class in org.apache.axis.encoding.ser">TimeDeserializer</A>
<DD>The Deserializer is constructed with the xmlType and 
 javaType
<DT><A HREF="org/apache/axis/encoding/ser/TimeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>TimeDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">TimeDeserializerFactory</A>.<DD>A Deserializer Factory for time<DT><A HREF="org/apache/axis/encoding/ser/TimeDeserializerFactory.html#TimeDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>TimeDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">TimeDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/TimeHolder.html" title="class in org.apache.axis.holders"><B>TimeHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TimeHolder.html" title="class in org.apache.axis.holders">TimeHolder</A>.<DD>Class TimeHolder<DT><A HREF="org/apache/axis/holders/TimeHolder.html#TimeHolder()"><B>TimeHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TimeHolder.html" title="class in org.apache.axis.holders">TimeHolder</A>
<DD>Constructor TimeHolder
<DT><A HREF="org/apache/axis/holders/TimeHolder.html#TimeHolder(org.apache.axis.types.Time)"><B>TimeHolder(Time)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TimeHolder.html" title="class in org.apache.axis.holders">TimeHolder</A>
<DD>Constructor TimeHolder
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser"><B>TimeSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>.<DD>Serializer for Time.<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html#TimeSerializer()"><B>TimeSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>TimeSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializerFactory.html" title="class in org.apache.axis.encoding.ser">TimeSerializerFactory</A>.<DD>SerializerFactory for Time<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializerFactory.html#TimeSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>TimeSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializerFactory.html" title="class in org.apache.axis.encoding.ser">TimeSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types"><B>Token</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types">Token</A>.<DD>Custom class for supporting primitive XSD data type Token.<DT><A HREF="org/apache/axis/types/Token.html#Token()"><B>Token()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types">Token</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Token.html#Token(java.lang.String)"><B>Token(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Token.html" title="class in org.apache.axis.types">Token</A>
<DD>ctor for Token
<DT><A HREF="org/apache/axis/holders/TokenHolder.html" title="class in org.apache.axis.holders"><B>TokenHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TokenHolder.html" title="class in org.apache.axis.holders">TokenHolder</A>.<DD>Class TokenHolder<DT><A HREF="org/apache/axis/holders/TokenHolder.html#TokenHolder()"><B>TokenHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TokenHolder.html" title="class in org.apache.axis.holders">TokenHolder</A>
<DD>Constructor TokenHolder
<DT><A HREF="org/apache/axis/holders/TokenHolder.html#TokenHolder(org.apache.axis.types.Token)"><B>TokenHolder(Token)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TokenHolder.html" title="class in org.apache.axis.holders">TokenHolder</A>
<DD>Constructor NormalizedTokenHolderStringHolder
<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms"><B>TopicConnector</B></A> - class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>.<DD>TopicConnector is a concrete JMSConnector subclass that specifically handles
   connections to topics (pub-sub domain).<DT><A HREF="org/apache/axis/transport/jms/TopicConnector.html#TopicConnector(javax.jms.TopicConnectionFactory, int, int, long, long, long, boolean, java.lang.String, java.lang.String, java.lang.String, org.apache.axis.components.jms.JMSVendorAdapter, org.apache.axis.transport.jms.JMSURLHelper)"><B>TopicConnector(TopicConnectionFactory, int, int, long, long, long, boolean, String, String, String, JMSVendorAdapter, JMSURLHelper)</B></A> - 
Constructor for class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/TopicConnector.html" title="class in org.apache.axis.transport.jms">TopicConnector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client"><B>Transport</B></A> - class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/client/Transport.html#Transport()"><B>Transport()</B></A> - 
Constructor for class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/server/Transport.html" title="class in org.apache.axis.server"><B>Transport</B></A> - class org.apache.axis.server.<A HREF="org/apache/axis/server/Transport.html" title="class in org.apache.axis.server">Transport</A>.<DD>Transport is a targeted chain that knows it's a transport.<DT><A HREF="org/apache/axis/server/Transport.html#Transport()"><B>Transport()</B></A> - 
Constructor for class org.apache.axis.server.<A HREF="org/apache/axis/server/Transport.html" title="class in org.apache.axis.server">Transport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net"><B>TransportClientProperties</B></A> - interface org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientProperties.html" title="interface in org.apache.axis.components.net">TransportClientProperties</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html" title="class in org.apache.axis.components.net"><B>TransportClientPropertiesFactory</B></A> - class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html" title="class in org.apache.axis.components.net">TransportClientPropertiesFactory</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html#TransportClientPropertiesFactory()"><B>TransportClientPropertiesFactory()</B></A> - 
Constructor for class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/TransportClientPropertiesFactory.html" title="class in org.apache.axis.components.net">TransportClientPropertiesFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable"><B>Type</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>.<DD>This class represents a TypeEntry that is a type (complexType, simpleType, etc.<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html#Type(javax.xml.namespace.QName)"><B>Type(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>
<DD>Create a Type object for an xml construct name that represents a base type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html#Type(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>Type(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>
<DD>Create a TypeEntry object for an xml construct that references a type that has
 not been defined yet.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Type.html#Type(javax.xml.namespace.QName, org.w3c.dom.Node)"><B>Type(QName, Node)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Type.html" title="class in org.apache.axis.wsdl.symbolTable">Type</A>
<DD>Create a Type object for an xml construct that is not a base type
<DT><A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description"><B>TypeDesc</B></A> - class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>.<DD>A TypeDesc represents a Java<->XML data binding.<DT><A HREF="org/apache/axis/description/TypeDesc.html#TypeDesc(java.lang.Class)"><B>TypeDesc(Class)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Creates a new <code>TypeDesc</code> instance.
<DT><A HREF="org/apache/axis/description/TypeDesc.html#TypeDesc(java.lang.Class, boolean)"><B>TypeDesc(Class, boolean)</B></A> - 
Constructor for class org.apache.axis.description.<A HREF="org/apache/axis/description/TypeDesc.html" title="class in org.apache.axis.description">TypeDesc</A>
<DD>Creates a new <code>TypeDesc</code> instance.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable"><B>TypeEntry</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>.<DD>This class represents a wsdl types entry that is supported by the WSDL2Java emitter.<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#TypeEntry(javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.TypeEntry, org.w3c.dom.Node, java.lang.String)"><B>TypeEntry(QName, TypeEntry, Node, String)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Create a TypeEntry object for an xml construct that references another type.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#TypeEntry(javax.xml.namespace.QName, org.w3c.dom.Node)"><B>TypeEntry(QName, Node)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Create a TypeEntry object for an xml construct that is not a base type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#TypeEntry(javax.xml.namespace.QName)"><B>TypeEntry(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Create a TypeEntry object for an xml construct name that represents a base type
<DT><A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding"><B>TypeMapping</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMapping.html" title="interface in javax.xml.rpc.encoding">TypeMapping</A>.<DD>The <code>javax.xml.rpc.encoding.TypeMapping</code> is the base
 interface for the representation of a type mapping.<DT><A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding"><B>TypeMapping</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A>.<DD>This interface describes the AXIS TypeMapping.<DT><A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding"><B>TypeMappingDelegate</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingDelegate.html" title="class in org.apache.axis.encoding">TypeMappingDelegate</A>.<DD>The TypeMapping delegate is used to simply delegate to 
 the indicated type mapping.<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding"><B>TypeMappingImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>.<DD>
 This is the implementation of the axis TypeMapping interface (which extends
 the JAX-RPC TypeMapping interface).<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.html#TypeMappingImpl()"><B>TypeMappingImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.html" title="class in org.apache.axis.encoding">TypeMappingImpl</A>
<DD>Construct TypeMapping
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding"><B>TypeMappingImpl.Pair</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html#TypeMappingImpl.Pair(java.lang.Class, javax.xml.namespace.QName)"><B>TypeMappingImpl.Pair(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding"><B>TypeMappingRegistry</B></A> - interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>.<DD>The interface <code>javax.xml.rpc.encoding.TypeMappingRegistry</code>
 defines a registry of TypeMapping instances for various encoding
 styles.<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding"><B>TypeMappingRegistry</B></A> - interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistry.html" title="interface in org.apache.axis.encoding">TypeMappingRegistry</A>.<DD>This interface describes the AXIS TypeMappingRegistry.<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding"><B>TypeMappingRegistryImpl</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>.<DD>
 The TypeMappingRegistry keeps track of the individual TypeMappings.<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#TypeMappingRegistryImpl(org.apache.axis.encoding.TypeMappingImpl)"><B>TypeMappingRegistryImpl(TypeMappingImpl)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Construct TypeMappingRegistry
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#TypeMappingRegistryImpl()"><B>TypeMappingRegistryImpl()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Construct TypeMappingRegistry
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#TypeMappingRegistryImpl(boolean)"><B>TypeMappingRegistryImpl(boolean)</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava"><B>Types</B></A> - class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>.<DD>Description: <DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#Types(javax.wsdl.Definition, org.apache.axis.encoding.TypeMapping, org.apache.axis.encoding.TypeMapping, org.apache.axis.wsdl.fromJava.Namespaces, java.lang.String, java.util.List, org.apache.axis.description.ServiceDesc)"><B>Types(Definition, TypeMapping, TypeMapping, Namespaces, String, List, ServiceDesc)</B></A> - 
Constructor for class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>This class serailizes a <code>Class</code> to XML Schema.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#Types(javax.wsdl.Definition, org.apache.axis.encoding.TypeMapping, org.apache.axis.encoding.TypeMapping, org.apache.axis.wsdl.fromJava.Namespaces, java.lang.String, java.util.List, org.apache.axis.description.ServiceDesc, org.apache.axis.wsdl.fromJava.Emitter)"><B>Types(Definition, TypeMapping, TypeMapping, Namespaces, String, List, ServiceDesc, Emitter)</B></A> - 
Constructor for class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>This class serailizes a <code>Class</code> to XML Schema.
<DT><A HREF="org/apache/axis/encoding/CallbackTarget.html#target"><B>target</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/CallbackTarget.html" title="class in org.apache.axis.encoding">CallbackTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerTarget.html#target"><B>target</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerTarget.html" title="class in org.apache.axis.encoding">DeserializerTarget</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#targets"><B>targets</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils"><B>tcpmon</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils">tcpmon</A>.<DD>TCP monitor to log http messages and responses, both SOAP and plain HTTP.<DT><A HREF="org/apache/axis/utils/tcpmon.html#tcpmon(int, java.lang.String, int, boolean)"><B>tcpmon(int, String, int, boolean)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils">tcpmon</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/tcpmon.html#tcpmon(int, java.lang.String, int)"><B>tcpmon(int, String, int)</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils">tcpmon</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html#testCaseWriter"><B>testCaseWriter</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceWriter</A>
<DD>Field testCaseWriter
<DT><A HREF="org/apache/axis/message/NodeImpl.html#textRep"><B>textRep</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#threadcount"><B>threadcount</B></A> - 
Variable in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#threads"><B>threads</B></A> - 
Variable in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#toByte()"><B>toByte()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#toByteArray()"><B>toByteArray()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method toByteArray
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#toByteArray()"><B>toByteArray()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Namespaces.html#toDir(java.lang.String)"><B>toDir(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Namespaces.html" title="class in org.apache.axis.wsdl.toJava">Namespaces</A>
<DD>Return the given package name in directory format (dots replaced by slashes).
<DT><A HREF="org/apache/axis/transport/jms/Handler.html#toExternalForm(java.net.URL)"><B>toExternalForm(URL)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Handler.html" title="class in org.apache.axis.transport.jms">Handler</A>
<DD>Reassembles the URL string, in the form "jms:/<dest>?prop1=value1&prop2=value2&..."
<DT><A HREF="javax/xml/messaging/Endpoint.html#toString()"><B>toString()</B></A> - 
Method in class javax.xml.messaging.<A HREF="javax/xml/messaging/Endpoint.html" title="class in javax.xml.messaging">Endpoint</A>
<DD>Retrieves a string representation of this <code>Endpoint</code> object.
<DT><A HREF="javax/xml/namespace/QName.html#toString()"><B>toString()</B></A> - 
Method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Returns a string representation of this QName.
<DT><A HREF="javax/xml/rpc/ParameterMode.html#toString()"><B>toString()</B></A> - 
Method in class javax.xml.rpc.<A HREF="javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/AxisFault.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Stringify this fault as the current fault string.
<DT><A HREF="org/apache/axis/ConfigurationException.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/ConfigurationException.html" title="class in org.apache.axis">ConfigurationException</A>
<DD>Stringify, including stack trace.
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Provides a string representation of the entries within the map.
<DT><A HREF="org/apache/axis/components/compiler/Javac.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Javac.html" title="class in org.apache.axis.components.compiler">Javac</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Enum.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/FaultDesc.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/FaultDesc.html" title="class in org.apache.axis.description">FaultDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/OperationDesc.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/i18n/ProjectResourceBundle.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.i18n.<A HREF="org/apache/axis/i18n/ProjectResourceBundle.html" title="class in org.apache.axis.i18n">ProjectResourceBundle</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>Generate a string representation by serializing our contents
 This is not a lightweight operation, and is repeated whenever
 you call this method.
<DT><A HREF="org/apache/axis/message/PrefixedQName.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/PrefixedQName.html" title="class in org.apache.axis.message">PrefixedQName</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/Text.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/Text.html" title="class in org.apache.axis.message">Text</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSURLHelper.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSURLHelper.html" title="class in org.apache.axis.transport.jms">JMSURLHelper</A>
<DD>Returns a formatted URL String with the assigned properties
<DT><A HREF="org/apache/axis/transport/jms/Subscription.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/Subscription.html" title="class in org.apache.axis.transport.jms">Subscription</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Day.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Day.html" title="class in org.apache.axis.types">Day</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Duration.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Duration.html" title="class in org.apache.axis.types">Duration</A>
<DD>This returns the xml representation of an xsd:duration object.
<DT><A HREF="org/apache/axis/types/HexBinary.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/HexBinary.html" title="class in org.apache.axis.types">HexBinary</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/IDRefs.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/IDRefs.html" title="class in org.apache.axis.types">IDRefs</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Month.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Month.html" title="class in org.apache.axis.types">Month</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/MonthDay.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/MonthDay.html" title="class in org.apache.axis.types">MonthDay</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NMTokens.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NMTokens.html" title="class in org.apache.axis.types">NMTokens</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/NormalizedString.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NormalizedString.html" title="class in org.apache.axis.types">NormalizedString</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Time.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Time.html" title="class in org.apache.axis.types">Time</A>
<DD>stringify method returns the time as it would be in GMT, only accurate to the
 second...millis probably get lost.
<DT><A HREF="org/apache/axis/types/URI.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Get the URI as a string specification.
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/Year.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/YearMonth.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/CLOption.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOption.html" title="class in org.apache.axis.utils">CLOption</A>
<DD>Convert to String.
<DT><A HREF="org/apache/axis/utils/CLOptionDescriptor.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/CLOptionDescriptor.html" title="class in org.apache.axis.utils">CLOptionDescriptor</A>
<DD>Convert to String.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/MimeInfo.html" title="class in org.apache.axis.wsdl.symbolTable">MimeInfo</A>
<DD>Method toString
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameter.html" title="class in org.apache.axis.wsdl.symbolTable">Parameter</A>
<DD>Method toString
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Parameters.html" title="class in org.apache.axis.wsdl.symbolTable">Parameters</A>
<DD>Method toString
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Collate the info in this object in string form.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/SymTabEntry.html" title="class in org.apache.axis.wsdl.symbolTable">SymTabEntry</A>
<DD>Collate the info in this object in string form with indentation.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Get string representation.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#toString(java.lang.String)"><B>toString(String)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Get string representation with indentation
<DT><A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/FactoryProperty.html" title="class in org.apache.axis.wsdl.toJava">FactoryProperty</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>
<DD>Method toString
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo</A>
<DD>Convert all entries in the list to a string
<DT><A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html#toString()"><B>toString()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/NamespaceSelector.html" title="class in org.apache.axis.wsdl.toJava">NamespaceSelector</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/compiler/AbstractCompiler.html#toStringArray(java.util.List)"><B>toStringArray(List)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/AbstractCompiler.html" title="class in org.apache.axis.components.compiler">AbstractCompiler</A>
<DD>Copy arguments to a string array
<DT><A HREF="org/apache/axis/components/compiler/Jikes.html#toStringArray(java.util.List)"><B>toStringArray(List)</B></A> - 
Method in class org.apache.axis.components.compiler.<A HREF="org/apache/axis/components/compiler/Jikes.html" title="class in org.apache.axis.components.compiler">Jikes</A>
<DD>Copy arguments to a string array
<DT><A HREF="org/apache/axis/utils/NSStack.html#topOfFrame()"><B>topOfFrame()</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/NSStack.html" title="class in org.apache.axis.utils">NSStack</A>
<DD>Reset the embedded iterator in this class to the top of the current
 (i.e., last) frame.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#totalsz"><B>totalsz</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>The total size in bytes in this data source.
<DT><A HREF="org/apache/axis/session/Session.html#touch()"><B>touch()</B></A> - 
Method in interface org.apache.axis.session.<A HREF="org/apache/axis/session/Session.html" title="interface in org.apache.axis.session">Session</A>
<DD>"Touch" the session (mark it recently used)
<DT><A HREF="org/apache/axis/session/SimpleSession.html#touch()"><B>touch()</B></A> - 
Method in class org.apache.axis.session.<A HREF="org/apache/axis/session/SimpleSession.html" title="class in org.apache.axis.session">SimpleSession</A>
<DD>"Touch" the session (mark it recently used)
<DT><A HREF="org/apache/axis/transport/http/AxisHttpSession.html#touch()"><B>touch()</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AxisHttpSession.html" title="class in org.apache.axis.transport.http">AxisHttpSession</A>
<DD>"Touch" the session (mark it recently used)
<DT><A HREF="org/apache/axis/message/SOAPEnvelope.html#trailers"><B>trailers</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html#transformBackslashes(java.lang.String, boolean)"><B>transformBackslashes(String, boolean)</B></A> - 
Static method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BackslashUtil.html" title="class in org.apache.axis.wsdl.symbolTable">BackslashUtil</A>
<DD>Slave method for applyBackslashes & stripBackslashes .
<DT><A HREF="org/apache/axis/client/Transport.html#transportName"><B>transportName</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Transport Chain Name - so users can change the default.
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#trim(java.lang.String)"><B>trim(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeBodyPart.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeBodyPart.html" title="class in org.apache.axis.attachments">DimeBodyPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Our type
<DT><A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/ContainedEntry.html" title="class in org.apache.axis.wsdl.symbolTable">ContainedEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/GeneratedFileInfo.Entry.html" title="class in org.apache.axis.wsdl.toJava">GeneratedFileInfo.Entry</A>
<DD>Field type
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field type
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#type"><B>type</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Field type
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html#typeDesc"><B>typeDesc</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializer.html" title="class in org.apache.axis.encoding.ser">BeanDeserializer</A>
<DD>Type metadata about this class for XML deserialization
<DT><A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html#typeDesc"><B>typeDesc</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanDeserializerFactory</A>
<DD>Type metadata about this class for XML deserialization
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#typeDesc"><B>typeDesc</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html#typeDesc"><B>typeDesc</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BeanSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/description/ParameterDesc.html#typeEntry"><B>typeEntry</B></A> - 
Variable in class org.apache.axis.description.<A HREF="org/apache/axis/description/ParameterDesc.html" title="class in org.apache.axis.description">ParameterDesc</A>
<DD>A TypeEntry corresponding to this parameter
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#typeMappingVersion"><B>typeMappingVersion</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field typeMappingVersion
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#typeMappingVersion"><B>typeMappingVersion</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD>Field typeMappingVersion
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#typeQName"><B>typeQName</B></A> - 
Variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#typeQName"><B>typeQName</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#types"><B>types</B></A> - 
Variable in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Field types
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#types"><B>types</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field types
</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#UNKNOWN"><B>UNKNOWN</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#UNSUBSCRIBE"><B>UNSUBSCRIBE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Key for properties used in the <code>registerListener</code>
 method.
<DT><A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html#URI"><B>URI</B></A> - 
Static variable in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeTypeNameFormat.html" title="class in org.apache.axis.attachments">DimeTypeNameFormat</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types"><B>URI</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>.<DD><i>Axis Note: This class was 'borrowed' from Xerces 2:
 org.apache.xerces.util.URI.java, version 1.22 </i>
 <DT><A HREF="org/apache/axis/types/URI.html#URI()"><B>URI()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new and uninitialized URI.
<DT><A HREF="org/apache/axis/types/URI.html#URI(org.apache.axis.types.URI)"><B>URI(URI)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI from another URI.
<DT><A HREF="org/apache/axis/types/URI.html#URI(java.lang.String)"><B>URI(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI from a URI specification string.
<DT><A HREF="org/apache/axis/types/URI.html#URI(java.lang.String, boolean)"><B>URI(String, boolean)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI from a URI specification string.
<DT><A HREF="org/apache/axis/types/URI.html#URI(org.apache.axis.types.URI, java.lang.String)"><B>URI(URI, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI from a base URI and a URI specification string.
<DT><A HREF="org/apache/axis/types/URI.html#URI(org.apache.axis.types.URI, java.lang.String, boolean)"><B>URI(URI, String, boolean)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI from a base URI and a URI specification string.
<DT><A HREF="org/apache/axis/types/URI.html#URI(java.lang.String, java.lang.String)"><B>URI(String, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI that does not follow the generic URI syntax.
<DT><A HREF="org/apache/axis/types/URI.html#URI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>URI(String, String, String, String, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI that follows the generic URI syntax from its
 component parts.
<DT><A HREF="org/apache/axis/types/URI.html#URI(java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String)"><B>URI(String, String, String, int, String, String, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.html" title="class in org.apache.axis.types">URI</A>
<DD>Construct a new URI that follows the generic URI syntax from its
 component parts.
<DT><A HREF="org/apache/axis/types/URI.MalformedURIException.html" title="class in org.apache.axis.types"><B>URI.MalformedURIException</B></A> - exception org.apache.axis.types.<A HREF="org/apache/axis/types/URI.MalformedURIException.html" title="class in org.apache.axis.types">URI.MalformedURIException</A>.<DD>MalformedURIExceptions are thrown in the process of building a URI
 or setting fields on a URI when an operation would result in an
 invalid URI specification.<DT><A HREF="org/apache/axis/types/URI.MalformedURIException.html#URI.MalformedURIException()"><B>URI.MalformedURIException()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.MalformedURIException.html" title="class in org.apache.axis.types">URI.MalformedURIException</A>
<DD>Constructs a <code>MalformedURIException</code> with no specified
 detail message.
<DT><A HREF="org/apache/axis/types/URI.MalformedURIException.html#URI.MalformedURIException(java.lang.String)"><B>URI.MalformedURIException(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/URI.MalformedURIException.html" title="class in org.apache.axis.types">URI.MalformedURIException</A>
<DD>Constructs a <code>MalformedURIException</code> with the
 specified detail message.
<DT><A HREF="org/apache/axis/holders/URIHolder.html" title="class in org.apache.axis.holders"><B>URIHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/URIHolder.html" title="class in org.apache.axis.holders">URIHolder</A>.<DD>Class URIHolder<DT><A HREF="org/apache/axis/holders/URIHolder.html#URIHolder()"><B>URIHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/URIHolder.html" title="class in org.apache.axis.holders">URIHolder</A>
<DD>Constructor URIHolder
<DT><A HREF="org/apache/axis/holders/URIHolder.html#URIHolder(org.apache.axis.types.URI)"><B>URIHolder(URI)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/URIHolder.html" title="class in org.apache.axis.holders">URIHolder</A>
<DD>Constructor URIHolder
<DT><A HREF="org/apache/axis/Constants.html#URIS_SCHEMA_XSD"><B>URIS_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URIS_SCHEMA_XSI"><B>URIS_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URIS_SOAP_ENC"><B>URIS_SOAP_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URIS_SOAP_ENV"><B>URIS_SOAP_ENV</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_1999_SCHEMA_XSD"><B>URI_1999_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_1999_SCHEMA_XSI"><B>URI_1999_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_2000_SCHEMA_XSD"><B>URI_2000_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_2000_SCHEMA_XSI"><B>URI_2000_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_2001_SCHEMA_XSD"><B>URI_2001_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_2001_SCHEMA_XSI"><B>URI_2001_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DEFAULT_SCHEMA_XSD"><B>URI_DEFAULT_SCHEMA_XSD</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DEFAULT_SCHEMA_XSI"><B>URI_DEFAULT_SCHEMA_XSI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DEFAULT_SOAP_ENC"><B>URI_DEFAULT_SOAP_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DEFAULT_SOAP_ENV"><B>URI_DEFAULT_SOAP_ENV</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DIME_CLOSED_LAYOUT"><B>URI_DIME_CLOSED_LAYOUT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DIME_CONTENT"><B>URI_DIME_CONTENT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DIME_OPEN_LAYOUT"><B>URI_DIME_OPEN_LAYOUT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DIME_REFERENCE"><B>URI_DIME_REFERENCE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_DIME_WSDL"><B>URI_DIME_WSDL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_LITERAL_ENC"><B>URI_LITERAL_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPConstants.html#URI_NS_SOAP_ENCODING"><B>URI_NS_SOAP_ENCODING</B></A> - 
Static variable in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPConstants.html" title="interface in javax.xml.soap">SOAPConstants</A>
<DD>The namespace identifier for the SOAP encoding (see section 5 of
 the SOAP 1.1 specification).
<DT><A HREF="javax/xml/soap/SOAPConstants.html#URI_NS_SOAP_ENVELOPE"><B>URI_NS_SOAP_ENVELOPE</B></A> - 
Static variable in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPConstants.html" title="interface in javax.xml.soap">SOAPConstants</A>
<DD>The namespace identifier for the SOAP envelope.
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP11_ENC"><B>URI_SOAP11_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP11_ENV"><B>URI_SOAP11_ENV</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP11_HTTP"><B>URI_SOAP11_HTTP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP11_NEXT_ACTOR"><B>URI_SOAP11_NEXT_ACTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_ENC"><B>URI_SOAP12_ENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_ENV"><B>URI_SOAP12_ENV</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_HTTP"><B>URI_SOAP12_HTTP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_NEXT_ACTOR"><B>URI_SOAP12_NEXT_ACTOR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD><B>Deprecated.</B>&nbsp;<I>use URI_SOAP12_NEXT_ROLE</I>
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_NEXT_ROLE"><B>URI_SOAP12_NEXT_ROLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_NOENC"><B>URI_SOAP12_NOENC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_NONE_ROLE"><B>URI_SOAP12_NONE_ROLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_RPC"><B>URI_SOAP12_RPC</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_SOAP12_ULTIMATE_ROLE"><B>URI_SOAP12_ULTIMATE_ROLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPConstants.html#URI_SOAP_ACTOR_NEXT"><B>URI_SOAP_ACTOR_NEXT</B></A> - 
Static variable in interface javax.xml.soap.<A HREF="javax/xml/soap/SOAPConstants.html" title="interface in javax.xml.soap">SOAPConstants</A>
<DD>The URI identifying the first application processing a SOAP request as the intended
 actor for a SOAP header entry (see section 4.2.2 of the SOAP 1.1 specification).
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#URI_WSDD"><B>URI_WSDD</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#URI_WSDD_HANDLER"><B>URI_WSDD_HANDLER</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#URI_WSDD_JAVA"><B>URI_WSDD_JAVA</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#URI_WSDD_WSDD_BSF"><B>URI_WSDD_WSDD_BSF</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#URI_WSDD_WSDD_COM"><B>URI_WSDD_WSDD_COM</B></A> - 
Static variable in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_WSDL11_SOAP"><B>URI_WSDL11_SOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_WSDL12_SOAP"><B>URI_WSDL12_SOAP</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#URI_XOP_INCLUDE"><B>URI_XOP_INCLUDE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/HTTPTransport.html#URL"><B>URL</B></A> - 
Static variable in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/HTTPTransport.html" title="class in org.apache.axis.transport.http">HTTPTransport</A>
<DD>HTTP properties
<DT><A HREF="javax/xml/messaging/URLEndpoint.html" title="class in javax.xml.messaging"><B>URLEndpoint</B></A> - class javax.xml.messaging.<A HREF="javax/xml/messaging/URLEndpoint.html" title="class in javax.xml.messaging">URLEndpoint</A>.<DD>A special case of the <code>Endpoint</code> class used for simple applications that want to communicate directly
 with another SOAP-based application in a point-to-point fashion instead of going through a messaging provider.<DT><A HREF="javax/xml/messaging/URLEndpoint.html#URLEndpoint(java.lang.String)"><B>URLEndpoint(String)</B></A> - 
Constructor for class javax.xml.messaging.<A HREF="javax/xml/messaging/URLEndpoint.html" title="class in javax.xml.messaging">URLEndpoint</A>
<DD>Constructs a new <code>URLEndpoint</code> object using the given URL.
<DT><A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils"><B>URLHashSet</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>.<DD>Class URLHashSet<DT><A HREF="org/apache/axis/utils/URLHashSet.html#URLHashSet()"><B>URLHashSet()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/URLHashSet.html" title="class in org.apache.axis.utils">URLHashSet</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http"><B>URLMapper</B></A> - class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http">URLMapper</A>.<DD>An <code>URLMapper</code> attempts to use the extra path info
 of this request as the service name.<DT><A HREF="org/apache/axis/handlers/http/URLMapper.html#URLMapper()"><B>URLMapper()</B></A> - 
Constructor for class org.apache.axis.handlers.http.<A HREF="org/apache/axis/handlers/http/URLMapper.html" title="class in org.apache.axis.handlers.http">URLMapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#USERNAME_OPT"><B>USERNAME_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Field USERNAME_OPT
<DT><A HREF="javax/xml/rpc/Call.html#USERNAME_PROPERTY"><B>USERNAME_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A>
<DD>Standard property: User name for authentication
 
<DT><A HREF="javax/xml/rpc/Stub.html#USERNAME_PROPERTY"><B>USERNAME_PROPERTY</B></A> - 
Static variable in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Standard property: User name for authentication.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#USE_ENCODED"><B>USE_ENCODED</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field USE_ENCODED
<DT><A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html#USE_LITERAL"><B>USE_LITERAL</B></A> - 
Static variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/BindingEntry.html" title="class in org.apache.axis.wsdl.symbolTable">BindingEntry</A>
<DD>Field USE_LITERAL
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#USE_OPT"><B>USE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field USE_OPT
<DT><A HREF="org/apache/axis/components/uuid/UUIDGen.html" title="interface in org.apache.axis.components.uuid"><B>UUIDGen</B></A> - interface org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGen.html" title="interface in org.apache.axis.components.uuid">UUIDGen</A>.<DD>A Universally Unique Identifier (UUID) is a 128 bit number generated
 according to an algorithm that is garanteed to be unique in time and space
 from all other UUIDs.<DT><A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html" title="class in org.apache.axis.components.uuid"><B>UUIDGenFactory</B></A> - class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html" title="class in org.apache.axis.components.uuid">UUIDGenFactory</A>.<DD>A Universally Unique Identifier (UUID) is a 128 bit number generated
 according to an algorithm that is garanteed to be unique in time and space
 from all other UUIDs.<DT><A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html#UUIDGenFactory()"><B>UUIDGenFactory()</B></A> - 
Constructor for class org.apache.axis.components.uuid.<A HREF="org/apache/axis/components/uuid/UUIDGenFactory.html" title="class in org.apache.axis.components.uuid">UUIDGenFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html" title="interface in org.apache.axis.wsdl.symbolTable"><B>Undefined</B></A> - interface org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html" title="interface in org.apache.axis.wsdl.symbolTable">Undefined</A>.<DD>This Undefined interface is implemented by UndefinedType and UndefinedElement.<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html" title="class in org.apache.axis.wsdl.symbolTable"><B>UndefinedDelegate</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedDelegate</A>.<DD>This UndefinedDelegate class implements the common functions of UndefinedType and UndefinedElement.<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable"><B>UndefinedElement</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedElement</A>.<DD>This represents a QName found in a reference but is not defined.<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html#UndefinedElement(javax.xml.namespace.QName)"><B>UndefinedElement(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedElement</A>
<DD>Construct a referenced (but as of yet undefined) element
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html" title="class in org.apache.axis.wsdl.symbolTable"><B>UndefinedType</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedType</A>.<DD>This represents a QName found in a reference but is not defined.<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html#UndefinedType(javax.xml.namespace.QName)"><B>UndefinedType(QName)</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedType</A>
<DD>Construct a referenced (but as of yet undefined) type
<DT><A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types"><B>UnsignedByte</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>.<DD>Custom class for supporting primitive XSD data type UnsignedByte<DT><A HREF="org/apache/axis/types/UnsignedByte.html#UnsignedByte()"><B>UnsignedByte()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedByte.html#UnsignedByte(long)"><B>UnsignedByte(long)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>
<DD>ctor for UnsignedByte
<DT><A HREF="org/apache/axis/types/UnsignedByte.html#UnsignedByte(java.lang.String)"><B>UnsignedByte(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedByte.html" title="class in org.apache.axis.types">UnsignedByte</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/UnsignedByteHolder.html" title="class in org.apache.axis.holders"><B>UnsignedByteHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedByteHolder.html" title="class in org.apache.axis.holders">UnsignedByteHolder</A>.<DD>Class UnsignedByteHolder<DT><A HREF="org/apache/axis/holders/UnsignedByteHolder.html#UnsignedByteHolder()"><B>UnsignedByteHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedByteHolder.html" title="class in org.apache.axis.holders">UnsignedByteHolder</A>
<DD>Constructor UnsignedByteHolder
<DT><A HREF="org/apache/axis/holders/UnsignedByteHolder.html#UnsignedByteHolder(org.apache.axis.types.UnsignedByte)"><B>UnsignedByteHolder(UnsignedByte)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedByteHolder.html" title="class in org.apache.axis.holders">UnsignedByteHolder</A>
<DD>Constructor UnsignedByteHolder
<DT><A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types"><B>UnsignedInt</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>.<DD>Custom class for supporting primitive XSD data type UnsignedInt<DT><A HREF="org/apache/axis/types/UnsignedInt.html#UnsignedInt()"><B>UnsignedInt()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#UnsignedInt(long)"><B>UnsignedInt(long)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>ctor for UnsignedInt
<DT><A HREF="org/apache/axis/types/UnsignedInt.html#UnsignedInt(java.lang.String)"><B>UnsignedInt(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedInt.html" title="class in org.apache.axis.types">UnsignedInt</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/UnsignedIntHolder.html" title="class in org.apache.axis.holders"><B>UnsignedIntHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedIntHolder.html" title="class in org.apache.axis.holders">UnsignedIntHolder</A>.<DD>Class UnsignedIntHolder<DT><A HREF="org/apache/axis/holders/UnsignedIntHolder.html#UnsignedIntHolder()"><B>UnsignedIntHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedIntHolder.html" title="class in org.apache.axis.holders">UnsignedIntHolder</A>
<DD>Constructor UnsignedIntHolder
<DT><A HREF="org/apache/axis/holders/UnsignedIntHolder.html#UnsignedIntHolder(org.apache.axis.types.UnsignedInt)"><B>UnsignedIntHolder(UnsignedInt)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedIntHolder.html" title="class in org.apache.axis.holders">UnsignedIntHolder</A>
<DD>Constructor UnsignedIntHolder
<DT><A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types"><B>UnsignedLong</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>.<DD>Custom class for supporting primitive XSD data type UnsignedLong<DT><A HREF="org/apache/axis/types/UnsignedLong.html#UnsignedLong()"><B>UnsignedLong()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#UnsignedLong(double)"><B>UnsignedLong(double)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#UnsignedLong(java.math.BigInteger)"><B>UnsignedLong(BigInteger)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#UnsignedLong(long)"><B>UnsignedLong(long)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedLong.html#UnsignedLong(java.lang.String)"><B>UnsignedLong(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedLong.html" title="class in org.apache.axis.types">UnsignedLong</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/UnsignedLongHolder.html" title="class in org.apache.axis.holders"><B>UnsignedLongHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedLongHolder.html" title="class in org.apache.axis.holders">UnsignedLongHolder</A>.<DD>Class UnsignedLongHolder<DT><A HREF="org/apache/axis/holders/UnsignedLongHolder.html#UnsignedLongHolder()"><B>UnsignedLongHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedLongHolder.html" title="class in org.apache.axis.holders">UnsignedLongHolder</A>
<DD>Constructor UnsignedLongHolder
<DT><A HREF="org/apache/axis/holders/UnsignedLongHolder.html#UnsignedLongHolder(org.apache.axis.types.UnsignedLong)"><B>UnsignedLongHolder(UnsignedLong)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedLongHolder.html" title="class in org.apache.axis.holders">UnsignedLongHolder</A>
<DD>Constructor UnsignedLongHolder
<DT><A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types"><B>UnsignedShort</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>.<DD>Custom class for supporting primitive XSD data type UnsignedShort<DT><A HREF="org/apache/axis/types/UnsignedShort.html#UnsignedShort()"><B>UnsignedShort()</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/types/UnsignedShort.html#UnsignedShort(long)"><B>UnsignedShort(long)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>
<DD>ctor for UnsignedShort
<DT><A HREF="org/apache/axis/types/UnsignedShort.html#UnsignedShort(java.lang.String)"><B>UnsignedShort(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/UnsignedShort.html" title="class in org.apache.axis.types">UnsignedShort</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/UnsignedShortHolder.html" title="class in org.apache.axis.holders"><B>UnsignedShortHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedShortHolder.html" title="class in org.apache.axis.holders">UnsignedShortHolder</A>.<DD>Class UnsignedShortHolder<DT><A HREF="org/apache/axis/holders/UnsignedShortHolder.html#UnsignedShortHolder()"><B>UnsignedShortHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedShortHolder.html" title="class in org.apache.axis.holders">UnsignedShortHolder</A>
<DD>Constructor UnsignedShortHolder
<DT><A HREF="org/apache/axis/holders/UnsignedShortHolder.html#UnsignedShortHolder(org.apache.axis.types.UnsignedShort)"><B>UnsignedShortHolder(UnsignedShort)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedShortHolder.html" title="class in org.apache.axis.holders">UnsignedShortHolder</A>
<DD>Constructor UnsignedShortHolder
<DT><A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants"><B>Use</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>.<DD>Use enum description<DT><A HREF="org/apache/axis/constants/Use.html#Use()"><B>Use()</B></A> - 
Constructor for class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/enum/Use.html" title="class in org.apache.axis.enum"><B>Use</B></A> - class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Use.html" title="class in org.apache.axis.enum">Use</A>.<DD><B>Deprecated.</B>&nbsp;<I>please use org.apache.axis.constants.Scope</I><DT><A HREF="org/apache/axis/enum/Use.html#Use()"><B>Use()</B></A> - 
Constructor for class org.apache.axis.enum.<A HREF="org/apache/axis/enum/Use.html" title="class in org.apache.axis.enum">Use</A>
<DD><B>Deprecated.</B>&nbsp;&nbsp;
<DT><A HREF="org/apache/axis/constants/Use.Type.html" title="class in org.apache.axis.constants"><B>Use.Type</B></A> - class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Use.Type.html" title="class in org.apache.axis.constants">Use.Type</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable"><B>Utils</B></A> - class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>.<DD>This class contains static utility methods for the emitter.<DT><A HREF="org/apache/axis/wsdl/symbolTable/Utils.html#Utils()"><B>Utils()</B></A> - 
Constructor for class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Utils.html" title="class in org.apache.axis.wsdl.symbolTable">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava"><B>Utils</B></A> - class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>.<DD>Class Utils<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#Utils()"><B>Utils()</B></A> - 
Constructor for class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#undefined"><B>undefined</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>Field undefined
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#undeployFromRegistry(org.apache.axis.deployment.wsdd.WSDDDeployment)"><B>undeployFromRegistry(WSDDDeployment)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#undeployHandler(java.lang.String)"><B>undeployHandler(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>undeploy a handler
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#undeployHandler(javax.xml.namespace.QName)"><B>undeployHandler(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Remove a named handler
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#undeployHandler(javax.xml.namespace.QName)"><B>undeployHandler(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#undeployHandler(java.lang.String)"><B>undeployHandler(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#undeployHandler(java.lang.String)"><B>undeployHandler(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/AdminClient.html#undeployService(java.lang.String)"><B>undeployService(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/AdminClient.html" title="class in org.apache.axis.client">AdminClient</A>
<DD>undeploy a service
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#undeployService(javax.xml.namespace.QName)"><B>undeployService(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Remove a named service
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#undeployService(javax.xml.namespace.QName)"><B>undeployService(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#undeployService(java.lang.String)"><B>undeployService(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#undeployService(java.lang.String)"><B>undeployService(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#undeployTransport(javax.xml.namespace.QName)"><B>undeployTransport(QName)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Remove a named transport
<DT><A HREF="org/apache/axis/management/ServiceAdmin.html#undeployTransport(javax.xml.namespace.QName)"><B>undeployTransport(QName)</B></A> - 
Static method in class org.apache.axis.management.<A HREF="org/apache/axis/management/ServiceAdmin.html" title="class in org.apache.axis.management">ServiceAdmin</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html#undeployTransport(java.lang.String)"><B>undeployTransport(String)</B></A> - 
Method in class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministrator.html" title="class in org.apache.axis.management.jmx">DeploymentAdministrator</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html#undeployTransport(java.lang.String)"><B>undeployTransport(String)</B></A> - 
Method in interface org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/DeploymentAdministratorMBean.html" title="interface in org.apache.axis.management.jmx">DeploymentAdministratorMBean</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#underlTypeNillable"><B>underlTypeNillable</B></A> - 
Variable in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/StringUtils.html#unescapeNumericChar(java.lang.String)"><B>unescapeNumericChar(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Unescapes numeric character referencs found in the <code>String</code>.
<DT><A HREF="org/apache/axis/utils/StringUtils.html#unescapeNumericChar(java.io.Writer, java.lang.String)"><B>unescapeNumericChar(Writer, String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/StringUtils.html" title="class in org.apache.axis.utils">StringUtils</A>
<DD>Unescapes numeric character references found in the <code>String</code> to a
 <code>Writer</code>.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#unregisterListener(javax.jms.MessageListener)"><B>unregisterListener(MessageListener)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Unregister a message listener.
<DT><A HREF="org/apache/axis/transport/jms/JMSEndpoint.html#unregisterListener(javax.jms.MessageListener, java.util.HashMap)"><B>unregisterListener(MessageListener, HashMap)</B></A> - 
Method in class org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSEndpoint.html" title="class in org.apache.axis.transport.jms">JMSEndpoint</A>
<DD>Unregister a message listener.
<DT><A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html#unregisterTypeMapping(java.lang.String)"><B>unregisterTypeMapping(String)</B></A> - 
Method in interface javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/TypeMappingRegistry.html" title="interface in javax.xml.rpc.encoding">TypeMappingRegistry</A>
<DD>Unregisters a TypeMapping instance, if present, from the specified
 encodingStyleURI.
<DT><A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html#unregisterTypeMapping(java.lang.String)"><B>unregisterTypeMapping(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingRegistryImpl.html" title="class in org.apache.axis.encoding">TypeMappingRegistryImpl</A>
<DD>Unregisters the TypeMapping for the namespace.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html#update(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>update(TypeEntry)</B></A> - 
Method in interface org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/Undefined.html" title="interface in org.apache.axis.wsdl.symbolTable">Undefined</A>
<DD>Call update with the actual TypeEntry.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html#update(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>update(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedDelegate.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedDelegate</A>
<DD>Call update with the actual TypeEntry.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html#update(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>update(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedElement.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedElement</A>
<DD>Call update with the actual TypeEntry.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html#update(org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>update(TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/UndefinedType.html" title="class in org.apache.axis.wsdl.symbolTable">UndefinedType</A>
<DD>Call update with the actual TypeEntry.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#updateNamespaces()"><B>updateNamespaces()</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Method updateNamespaces
<DT><A HREF="org/apache/axis/message/RPCElement.html#updateOperationsByName()"><B>updateOperationsByName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/RPCElement.html#updateOperationsByQName()"><B>updateOperationsByQName()</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/QSWSDLHandler.html#updateSoapAddressLocationURLs(org.w3c.dom.Document, org.apache.axis.MessageContext)"><B>updateSoapAddressLocationURLs(Document, MessageContext)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/QSWSDLHandler.html" title="class in org.apache.axis.transport.http">QSWSDLHandler</A>
<DD>Updates the soap:address locations for all ports in the WSDL using the URL from the request as
 the base portion for the updated locations, ensuring the WSDL returned to the client contains
 the correct location URL.
<DT><A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html#updateUndefined(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>updateUndefined(TypeEntry, TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.symbolTable.<A HREF="org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>
<DD>UpdateUndefined is called when the ref TypeEntry is finally known.
<DT><A HREF="org/apache/axis/client/Transport.html#url"><B>url</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>
<DD>Transport URL, if any.
<DT><A HREF="org/apache/axis/MessageContext.html#useSOAPAction()"><B>useSOAPAction()</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>Indicates wether the soap action URI is being used or not.
<DT><A HREF="org/apache/axis/client/Call.html#useSOAPAction()"><B>useSOAPAction()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>Discover if soapAction is being used.
<DT><A HREF="org/apache/axis/security/SecurityProvider.html#userMatches(org.apache.axis.security.AuthenticatedUser, java.lang.String)"><B>userMatches(AuthenticatedUser, String)</B></A> - 
Method in interface org.apache.axis.security.<A HREF="org/apache/axis/security/SecurityProvider.html" title="interface in org.apache.axis.security">SecurityProvider</A>
<DD>See if a user matches a principal name.
<DT><A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html#userMatches(org.apache.axis.security.AuthenticatedUser, java.lang.String)"><B>userMatches(AuthenticatedUser, String)</B></A> - 
Method in class org.apache.axis.security.servlet.<A HREF="org/apache/axis/security/servlet/ServletSecurityProvider.html" title="class in org.apache.axis.security.servlet">ServletSecurityProvider</A>
<DD>See if a user matches a principal name.
<DT><A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html#userMatches(org.apache.axis.security.AuthenticatedUser, java.lang.String)"><B>userMatches(AuthenticatedUser, String)</B></A> - 
Method in class org.apache.axis.security.simple.<A HREF="org/apache/axis/security/simple/SimpleSecurityProvider.html" title="class in org.apache.axis.security.simple">SimpleSecurityProvider</A>
<DD>See if a user matches a principal name.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#username"><B>username</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field username
</DL>
<HR>
<A NAME="_V_"><!-- --></A><H2>
<B>V</B></H2>
<DL>
<DT><A HREF="org/apache/axis/encoding/ser/MapDeserializer.html#VALHINT"><B>VALHINT</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapDeserializer.html" title="class in org.apache.axis.encoding.ser">MapDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#VALUE_PROPERTY"><B>VALUE_PROPERTY</B></A> - 
Static variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#VENDOR"><B>VENDOR</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#VENDOR_ADAPTER"><B>VENDOR_ADAPTER</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#VERBOSE_OPT"><B>VERBOSE_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field VERBOSE_OPT
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser"><B>VectorDeserializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>.<DD>Deserializer for SOAP Vectors for compatibility with SOAP 2.2.<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html#VectorDeserializer()"><B>VectorDeserializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializer.html" title="class in org.apache.axis.encoding.ser">VectorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>VectorDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">VectorDeserializerFactory</A>.<DD>A VectorDeserializer Factory<DT><A HREF="org/apache/axis/encoding/ser/VectorDeserializerFactory.html#VectorDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>VectorDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">VectorDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser"><B>VectorSerializer</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>.<DD>A <code>VectorSerializer</code> is be used to serialize and
 deserialize Vectors using the <code>SOAP-ENC</code>
 encoding style.<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#VectorSerializer()"><B>VectorSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializerFactory.html" title="class in org.apache.axis.encoding.ser"><B>VectorSerializerFactory</B></A> - class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializerFactory.html" title="class in org.apache.axis.encoding.ser">VectorSerializerFactory</A>.<DD>A VectorSerializer Factory<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializerFactory.html#VectorSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>VectorSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializerFactory.html" title="class in org.apache.axis.encoding.ser">VectorSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Version.html" title="class in org.apache.axis"><B>Version</B></A> - class org.apache.axis.<A HREF="org/apache/axis/Version.html" title="class in org.apache.axis">Version</A>.<DD>Little utility to get the version and build date of the axis.jar.<DT><A HREF="org/apache/axis/Version.html#Version()"><B>Version()</B></A> - 
Constructor for class org.apache.axis.<A HREF="org/apache/axis/Version.html" title="class in org.apache.axis">Version</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#validateDescriptors()"><B>validateDescriptors()</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>This method can be used for dynamic deployment using new WSDDService()
 etc.
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#validateOptions()"><B>validateOptions()</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>validateOptions
 This method is invoked after the options are set to validate
 the option settings.
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#validateOptions()"><B>validateOptions()</B></A> - 
Method in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>validateOptions
 This method is invoked after the options are set to validate
 the option settings.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#validateOptions()"><B>validateOptions()</B></A> - 
Method in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>validateOptions
 This method is invoked after the options are set to validate and default the options
 the option settings.
<DT><A HREF="javax/xml/rpc/holders/BigDecimalHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigDecimalHolder.html" title="class in javax.xml.rpc.holders">BigDecimalHolder</A>
<DD>The <code>BigDecimal</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/BigIntegerHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BigIntegerHolder.html" title="class in javax.xml.rpc.holders">BigIntegerHolder</A>
<DD>The <code>BigInteger</code> that is held.
<DT><A HREF="javax/xml/rpc/holders/BooleanHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>
<DD>The <code>boolean</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/BooleanWrapperHolder.html" title="class in javax.xml.rpc.holders">BooleanWrapperHolder</A>
<DD>The <code>Boolean</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ByteArrayHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteArrayHolder.html" title="class in javax.xml.rpc.holders">ByteArrayHolder</A>
<DD>The <code>byte[]</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ByteHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteHolder.html" title="class in javax.xml.rpc.holders">ByteHolder</A>
<DD>The <code>byte</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ByteWrapperHolder.html" title="class in javax.xml.rpc.holders">ByteWrapperHolder</A>
<DD>The <code>Byte</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/CalendarHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/CalendarHolder.html" title="class in javax.xml.rpc.holders">CalendarHolder</A>
<DD>The <code>Calendar</code> that is held.
<DT><A HREF="javax/xml/rpc/holders/DoubleHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleHolder.html" title="class in javax.xml.rpc.holders">DoubleHolder</A>
<DD>The <code>double</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/DoubleWrapperHolder.html" title="class in javax.xml.rpc.holders">DoubleWrapperHolder</A>
<DD>The <code>Double</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/FloatHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatHolder.html" title="class in javax.xml.rpc.holders">FloatHolder</A>
<DD>The <code>byte</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/FloatWrapperHolder.html" title="class in javax.xml.rpc.holders">FloatWrapperHolder</A>
<DD>The <code>Float</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/IntHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntHolder.html" title="class in javax.xml.rpc.holders">IntHolder</A>
<DD>The <code>int</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/IntegerWrapperHolder.html" title="class in javax.xml.rpc.holders">IntegerWrapperHolder</A>
<DD>The <code>Integer</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/LongHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongHolder.html" title="class in javax.xml.rpc.holders">LongHolder</A>
<DD>The <code>long</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/LongWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/LongWrapperHolder.html" title="class in javax.xml.rpc.holders">LongWrapperHolder</A>
<DD>The <code>Long</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ObjectHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ObjectHolder.html" title="class in javax.xml.rpc.holders">ObjectHolder</A>
<DD>The <code>Object</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/QNameHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/QNameHolder.html" title="class in javax.xml.rpc.holders">QNameHolder</A>
<DD>The <code>QName</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ShortHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortHolder.html" title="class in javax.xml.rpc.holders">ShortHolder</A>
<DD>The <code>short</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/ShortWrapperHolder.html" title="class in javax.xml.rpc.holders">ShortWrapperHolder</A>
<DD>The <code>Short</code> contained by this holder.
<DT><A HREF="javax/xml/rpc/holders/StringHolder.html#value"><B>value</B></A> - 
Variable in class javax.xml.rpc.holders.<A HREF="javax/xml/rpc/holders/StringHolder.html" title="class in javax.xml.rpc.holders">StringHolder</A>
<DD>The <code>String</code> contained by this holder.
<DT><A HREF="org/apache/axis/components/net/BooleanHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.components.net.<A HREF="org/apache/axis/components/net/BooleanHolder.html" title="class in org.apache.axis.components.net">BooleanHolder</A>
<DD>Field value
<DT><A HREF="org/apache/axis/constants/Enum.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Enum.html" title="class in org.apache.axis.constants">Enum</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/DataHandlerHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DataHandlerHolder.html" title="class in org.apache.axis.holders">DataHandlerHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/DateHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DateHolder.html" title="class in org.apache.axis.holders">DateHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/DayHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DayHolder.html" title="class in org.apache.axis.holders">DayHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/DurationHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/DurationHolder.html" title="class in org.apache.axis.holders">DurationHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/HexBinaryHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/HexBinaryHolder.html" title="class in org.apache.axis.holders">HexBinaryHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/ImageHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/ImageHolder.html" title="class in org.apache.axis.holders">ImageHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/MimeMultipartHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MimeMultipartHolder.html" title="class in org.apache.axis.holders">MimeMultipartHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/MonthDayHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthDayHolder.html" title="class in org.apache.axis.holders">MonthDayHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/MonthHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/MonthHolder.html" title="class in org.apache.axis.holders">MonthHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/NegativeIntegerHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NegativeIntegerHolder.html" title="class in org.apache.axis.holders">NegativeIntegerHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonNegativeIntegerHolder.html" title="class in org.apache.axis.holders">NonNegativeIntegerHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NonPositiveIntegerHolder.html" title="class in org.apache.axis.holders">NonPositiveIntegerHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/NormalizedStringHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/NormalizedStringHolder.html" title="class in org.apache.axis.holders">NormalizedStringHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/OctetStreamHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/OctetStreamHolder.html" title="class in org.apache.axis.holders">OctetStreamHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/PositiveIntegerHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/PositiveIntegerHolder.html" title="class in org.apache.axis.holders">PositiveIntegerHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/SchemaHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SchemaHolder.html" title="class in org.apache.axis.holders">SchemaHolder</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/holders/SourceHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/SourceHolder.html" title="class in org.apache.axis.holders">SourceHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/TimeHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TimeHolder.html" title="class in org.apache.axis.holders">TimeHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/TokenHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/TokenHolder.html" title="class in org.apache.axis.holders">TokenHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/URIHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/URIHolder.html" title="class in org.apache.axis.holders">URIHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/UnsignedByteHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedByteHolder.html" title="class in org.apache.axis.holders">UnsignedByteHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/UnsignedIntHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedIntHolder.html" title="class in org.apache.axis.holders">UnsignedIntHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/UnsignedLongHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedLongHolder.html" title="class in org.apache.axis.holders">UnsignedLongHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/UnsignedShortHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/UnsignedShortHolder.html" title="class in org.apache.axis.holders">UnsignedShortHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/YearHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearHolder.html" title="class in org.apache.axis.holders">YearHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/holders/YearMonthHolder.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearMonthHolder.html" title="class in org.apache.axis.holders">YearMonthHolder</A>
<DD>Field _value
<DT><A HREF="org/apache/axis/message/MessageElement.QNameAttr.html#value"><B>value</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.QNameAttr.html" title="class in org.apache.axis.message">MessageElement.QNameAttr</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/Deserializer.html#valueComplete()"><B>valueComplete()</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Deserializer.html" title="interface in org.apache.axis.encoding">Deserializer</A>
<DD>The valueComplete() method is invoked when the
 end tag of the element is read.
<DT><A HREF="org/apache/axis/encoding/DeserializerImpl.html#valueComplete()"><B>valueComplete()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/DeserializerImpl.html" title="class in org.apache.axis.encoding">DeserializerImpl</A>
<DD>The valueComplete() method is invoked when the
 end tag of the element is read.
<DT><A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html#valueComplete()"><B>valueComplete()</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArrayDeserializer.html" title="class in org.apache.axis.encoding.ser">ArrayDeserializer</A>
<DD>When valueComplete() is invoked on the array, 
 first convert the array value into the expected array.
<DT><A HREF="javax/xml/namespace/QName.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in class javax.xml.namespace.<A HREF="javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>
<DD>Returns a QName holding the value of the specified String.
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#values()"><B>values()</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Implements <CODE>Map.values()</CODE>.
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#verbose"><B>verbose</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>Field verbose
<DT><A HREF="org/apache/axis/wsdl/toJava/Emitter.html#verbose(boolean)"><B>verbose(boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Emitter.html" title="class in org.apache.axis.wsdl.toJava">Emitter</A>
<DD><B>Deprecated.</B>&nbsp;<I>Use setVerbose(value)</I>
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#verboseMessage(java.lang.String)"><B>verboseMessage(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Return the string:  "Generating <file>".
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#verboseMessage(java.lang.String)"><B>verboseMessage(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Return the string:  "Generating <file>".
<DT><A HREF="org/apache/axis/client/HappyClient.html#verifyClientIsHappy(boolean)"><B>verifyClientIsHappy(boolean)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client">HappyClient</A>
<DD>Audit the client, print out status
<DT><A HREF="org/apache/axis/HandlerIterationStrategy.html#visit(org.apache.axis.Handler, org.apache.axis.MessageContext)"><B>visit(Handler, MessageContext)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/HandlerIterationStrategy.html" title="interface in org.apache.axis">HandlerIterationStrategy</A>
<DD>Visit a handler with a message context.
<DT><A HREF="org/apache/axis/strategies/InvocationStrategy.html#visit(org.apache.axis.Handler, org.apache.axis.MessageContext)"><B>visit(Handler, MessageContext)</B></A> - 
Method in class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/InvocationStrategy.html" title="class in org.apache.axis.strategies">InvocationStrategy</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/strategies/WSDLGenStrategy.html#visit(org.apache.axis.Handler, org.apache.axis.MessageContext)"><B>visit(Handler, MessageContext)</B></A> - 
Method in class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/WSDLGenStrategy.html" title="class in org.apache.axis.strategies">WSDLGenStrategy</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#WAIT_FOR_RESPONSE"><B>WAIT_FOR_RESPONSE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>This is used as a key in the Call properties telling the JMS transport
 to wait for a response from the service.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#WORKING_BUFFER_SIZE"><B>WORKING_BUFFER_SIZE</B></A> - 
Static variable in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#WRAPPED"><B>WRAPPED</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/constants/Style.html#WRAPPED_STR"><B>WRAPPED_STR</B></A> - 
Static variable in class org.apache.axis.constants.<A HREF="org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#WRAP_ARRAYS_OPT"><B>WRAP_ARRAYS_OPT</B></A> - 
Static variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Wrap arrays option
<DT><A HREF="javax/xml/soap/SOAPMessage.html#WRITE_XML_DECLARATION"><B>WRITE_XML_DECLARATION</B></A> - 
Static variable in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Specifies whether the SOAP Message should contain an XML declaration.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDArrayMapping</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>.<DD>A <code>WSDDArrayMapping</code> is simply a <code>WSDDTypeMapping</code>
 which has preset values for the serializer and deserializer attributes.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html#WSDDArrayMapping()"><B>WSDDArrayMapping()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html#WSDDArrayMapping(org.w3c.dom.Element)"><B>WSDDArrayMapping(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDBeanMapping</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDBeanMapping</A>.<DD>A <code>WSDDBeanMapping</code> is simply a <code>WSDDTypeMapping</code>
 which has preset values for the serializer and deserializer attributes.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html#WSDDBeanMapping()"><B>WSDDBeanMapping()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDBeanMapping</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html#WSDDBeanMapping(org.w3c.dom.Element)"><B>WSDDBeanMapping(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDBeanMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDBsfProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDBsfProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html#WSDDBsfProvider()"><B>WSDDBsfProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDBsfProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDChain</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>.<DD>WSDD chain element<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#WSDDChain()"><B>WSDDChain()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#WSDDChain(org.w3c.dom.Element)"><B>WSDDChain(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDComProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html#WSDDComProvider()"><B>WSDDComProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDComProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDComProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDConstants</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html#WSDDConstants()"><B>WSDDConstants()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDConstants.html" title="class in org.apache.axis.deployment.wsdd">WSDDConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDDeployableItem</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>.<DD>WSDD DeployableItem complexType<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#WSDDDeployableItem()"><B>WSDDDeployableItem()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#WSDDDeployableItem(org.w3c.dom.Element)"><B>WSDDDeployableItem(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDDeployment</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>.<DD>WSDD deployment element<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#WSDDDeployment()"><B>WSDDDeployment()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#WSDDDeployment(org.w3c.dom.Element)"><B>WSDDDeployment(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>Create an element in WSDD that wraps an extant DOM element
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDDocument</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>.<DD>represents a WSDD Document (this is the top level object in this object model)
 Only one of <CODE>#deployment</CODE> and <CODE>#undeployment</CODE> should be valid.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#WSDDDocument()"><B>WSDDDocument()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>empty constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#WSDDDocument(org.w3c.dom.Document)"><B>WSDDDocument(Document)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>create and bind to a document
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#WSDDDocument(org.w3c.dom.Element)"><B>WSDDDocument(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>bind to a sub-element in a document.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDDocumentation</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>.<DD>represents a WSDD documentation 
 All WSDDElement can have a documentation but it is used only for 
 Services, Operations and Parameters for now<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#WSDDDocumentation(java.lang.String)"><B>WSDDDocumentation(String)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#WSDDDocumentation(org.w3c.dom.Element)"><B>WSDDDocumentation(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDElement</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>.<DD>abstract class extended by all WSDD Element classes<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#WSDDElement()"><B>WSDDElement()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#WSDDElement(org.w3c.dom.Element)"><B>WSDDElement(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>Create an element in WSDD that wraps an extant DOM element
<DT><A HREF="org/apache/axis/WSDDEngineConfiguration.html" title="interface in org.apache.axis"><B>WSDDEngineConfiguration</B></A> - interface org.apache.axis.<A HREF="org/apache/axis/WSDDEngineConfiguration.html" title="interface in org.apache.axis">WSDDEngineConfiguration</A>.<DD>Extends EngineConfiguration interface to provide hook to
 internal WSDD deployment info.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDException.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDException</B></A> - exception org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDException.html" title="class in org.apache.axis.deployment.wsdd">WSDDException</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDException.html#WSDDException(java.lang.String)"><B>WSDDException(String)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDException.html" title="class in org.apache.axis.deployment.wsdd">WSDDException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDException.html#WSDDException(java.lang.Exception)"><B>WSDDException(Exception)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDException.html" title="class in org.apache.axis.deployment.wsdd">WSDDException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDFault</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#WSDDFault(org.apache.axis.description.FaultDesc)"><B>WSDDFault(FaultDesc)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#WSDDFault(org.w3c.dom.Element)"><B>WSDDFault(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>Construct a WSDDFault from a DOM Element
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDFaultFlow</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDFaultFlow</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html#WSDDFaultFlow()"><B>WSDDFaultFlow()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDFaultFlow</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html#WSDDFaultFlow(org.w3c.dom.Element)"><B>WSDDFaultFlow(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFaultFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDFaultFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDGlobalConfiguration</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>.<DD>Represents the global configuration of the Axis engine.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#WSDDGlobalConfiguration()"><B>WSDDGlobalConfiguration()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#WSDDGlobalConfiguration(org.w3c.dom.Element)"><B>WSDDGlobalConfiguration(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDHandler</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html#WSDDHandler()"><B>WSDDHandler()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html#WSDDHandler(org.w3c.dom.Element)"><B>WSDDHandler(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDHandlerProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDHandlerProvider</A>.<DD>This is a simple provider for using Handler-based services which don't
 need further configuration (such as Java classes, etc).<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html#WSDDHandlerProvider()"><B>WSDDHandlerProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDHandlerProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDHandlerProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDJAXRPCHandlerInfo</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#WSDDJAXRPCHandlerInfo()"><B>WSDDJAXRPCHandlerInfo()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#WSDDJAXRPCHandlerInfo(org.w3c.dom.Element)"><B>WSDDJAXRPCHandlerInfo(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDJAXRPCHandlerInfoChain</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#WSDDJAXRPCHandlerInfoChain()"><B>WSDDJAXRPCHandlerInfoChain()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#WSDDJAXRPCHandlerInfoChain(org.w3c.dom.Element)"><B>WSDDJAXRPCHandlerInfoChain(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDJavaCORBAProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaCORBAProvider</A>.<DD>A WSDD CORBA provider<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html#WSDDJavaCORBAProvider()"><B>WSDDJavaCORBAProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaCORBAProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaCORBAProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDJavaEJBProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaEJBProvider</A>.<DD>A WSDD EJB provider<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html#WSDDJavaEJBProvider()"><B>WSDDJavaEJBProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaEJBProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaEJBProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDJavaMsgProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaMsgProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html#WSDDJavaMsgProvider()"><B>WSDDJavaMsgProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaMsgProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaMsgProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDJavaRMIProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRMIProvider</A>.<DD>A WSDD RMI provider<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html#WSDDJavaRMIProvider()"><B>WSDDJavaRMIProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRMIProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRMIProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html" title="class in org.apache.axis.deployment.wsdd.providers"><B>WSDDJavaRPCProvider</B></A> - class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRPCProvider</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html#WSDDJavaRPCProvider()"><B>WSDDJavaRPCProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDJavaRPCProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDJavaRPCProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDNonFatalException</B></A> - exception org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html" title="class in org.apache.axis.deployment.wsdd">WSDDNonFatalException</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html#WSDDNonFatalException(java.lang.String)"><B>WSDDNonFatalException(String)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html" title="class in org.apache.axis.deployment.wsdd">WSDDNonFatalException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html#WSDDNonFatalException(java.lang.Exception)"><B>WSDDNonFatalException(Exception)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDNonFatalException.html" title="class in org.apache.axis.deployment.wsdd">WSDDNonFatalException</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDOperation</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>.<DD>Parse the WSDD operation elements.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html#WSDDOperation(org.apache.axis.description.OperationDesc)"><B>WSDDOperation(OperationDesc)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>
<DD>Constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html#WSDDOperation(org.w3c.dom.Element, org.apache.axis.description.ServiceDesc)"><B>WSDDOperation(Element, ServiceDesc)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>
<DD>Constructor from XML
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDParameter</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#WSDDParameter(org.w3c.dom.Element, org.apache.axis.description.OperationDesc)"><B>WSDDParameter(Element, OperationDesc)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#WSDDParameter()"><B>WSDDParameter()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#WSDDParameter(org.apache.axis.description.ParameterDesc)"><B>WSDDParameter(ParameterDesc)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDProvider</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>.<DD>WSDD provider element

 Represents the liason to the application being exposed
 as a Web Service.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html#WSDDProvider()"><B>WSDDProvider()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDProvider.html" title="class in org.apache.axis.deployment.wsdd">WSDDProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDRequestFlow</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDRequestFlow</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html#WSDDRequestFlow()"><B>WSDDRequestFlow()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDRequestFlow</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html#WSDDRequestFlow(org.w3c.dom.Element)"><B>WSDDRequestFlow(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDRequestFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDRequestFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDResponseFlow</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDResponseFlow</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html#WSDDResponseFlow()"><B>WSDDResponseFlow()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDResponseFlow</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html#WSDDResponseFlow(org.w3c.dom.Element)"><B>WSDDResponseFlow(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDResponseFlow.html" title="class in org.apache.axis.deployment.wsdd">WSDDResponseFlow</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDService</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>.<DD>A service represented in WSDD.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#WSDDService()"><B>WSDDService()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#WSDDService(org.w3c.dom.Element)"><B>WSDDService(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html" title="class in org.apache.axis.management.jmx"><B>WSDDServiceWrapper</B></A> - class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html" title="class in org.apache.axis.management.jmx">WSDDServiceWrapper</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html#WSDDServiceWrapper()"><B>WSDDServiceWrapper()</B></A> - 
Constructor for class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDServiceWrapper.html" title="class in org.apache.axis.management.jmx">WSDDServiceWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDTargetedChain</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#WSDDTargetedChain()"><B>WSDDTargetedChain()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#WSDDTargetedChain(org.w3c.dom.Element)"><B>WSDDTargetedChain(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDTransport</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html#WSDDTransport()"><B>WSDDTransport()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html#WSDDTransport(org.w3c.dom.Element)"><B>WSDDTransport(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html" title="class in org.apache.axis.management.jmx"><B>WSDDTransportWrapper</B></A> - class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html" title="class in org.apache.axis.management.jmx">WSDDTransportWrapper</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html#WSDDTransportWrapper()"><B>WSDDTransportWrapper()</B></A> - 
Constructor for class org.apache.axis.management.jmx.<A HREF="org/apache/axis/management/jmx/WSDDTransportWrapper.html" title="class in org.apache.axis.management.jmx">WSDDTransportWrapper</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDTypeMapping</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#WSDDTypeMapping()"><B>WSDDTypeMapping()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#WSDDTypeMapping(org.w3c.dom.Element)"><B>WSDDTypeMapping(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.html" title="interface in org.apache.axis.deployment.wsdd"><B>WSDDTypeMappingContainer</B></A> - interface org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMappingContainer.html" title="interface in org.apache.axis.deployment.wsdd">WSDDTypeMappingContainer</A>.<DD>A common interface for things which contain type mappings (i.e.<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd"><B>WSDDUndeployment</B></A> - class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>.<DD>WSDD deployment element<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#WSDDUndeployment()"><B>WSDDUndeployment()</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>Default constructor
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#WSDDUndeployment(org.w3c.dom.Element)"><B>WSDDUndeployment(Element)</B></A> - 
Constructor for class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>Constructor - build an undeployment from a DOM Element.
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen"><B>WSDL2</B></A> - class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>.<DD>Class WSDL2<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#WSDL2()"><B>WSDL2()</B></A> - 
Constructor for class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Constructor
 Used by extended classes to construct an instance of WSDL2
<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl"><B>WSDL2Java</B></A> - class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>.<DD>Command line interface to the WSDL2Java utility<DT><A HREF="org/apache/axis/wsdl/WSDL2Java.html#WSDL2Java()"><B>WSDL2Java()</B></A> - 
Constructor for class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/WSDL2Java.html" title="class in org.apache.axis.wsdl">WSDL2Java</A>
<DD>Instantiate a WSDL2Java emitter.
<DT><A HREF="org/apache/axis/MessageContext.html#WSDLGEN_INTFNAMESPACE"><B>WSDLGEN_INTFNAMESPACE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The value of the property is used by service WSDL generation (aka ?WSDL)
 For the service's interface namespace if not set TRANS_URL property is used.
<DT><A HREF="org/apache/axis/MessageContext.html#WSDLGEN_SERV_LOC_URL"><B>WSDLGEN_SERV_LOC_URL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A>
<DD>The value of the property is used by service WSDL generation (aka ?WSDL).
<DT><A HREF="org/apache/axis/strategies/WSDLGenStrategy.html" title="class in org.apache.axis.strategies"><B>WSDLGenStrategy</B></A> - class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/WSDLGenStrategy.html" title="class in org.apache.axis.strategies">WSDLGenStrategy</A>.<DD>A Strategy which calls generateWSDL() on the specified Handler, passing
 it the specified MessageContext.<DT><A HREF="org/apache/axis/strategies/WSDLGenStrategy.html#WSDLGenStrategy()"><B>WSDLGenStrategy()</B></A> - 
Constructor for class org.apache.axis.strategies.<A HREF="org/apache/axis/strategies/WSDLGenStrategy.html" title="class in org.apache.axis.strategies">WSDLGenStrategy</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/WSDLUtils.html" title="class in org.apache.axis.utils"><B>WSDLUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/WSDLUtils.html" title="class in org.apache.axis.utils">WSDLUtils</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/WSDLUtils.html#WSDLUtils()"><B>WSDLUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/WSDLUtils.html" title="class in org.apache.axis.utils">WSDLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/ServiceFactory.html#WSDL_LOCATION"><B>WSDL_LOCATION</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/ServiceFactory.html" title="class in org.apache.axis.client">ServiceFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Call.html#WSDL_PORT_NAME"><B>WSDL_PORT_NAME</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>this is a property set in the message context when the invocation
 process begins, for the benefit of handlers
<DT><A HREF="org/apache/axis/client/Call.html#WSDL_SERVICE"><B>WSDL_SERVICE</B></A> - 
Static variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Call.html" title="class in org.apache.axis.client">Call</A>
<DD>this is a property set in the message context when the invocation
 process begins, for the benefit of handlers
<DT><A HREF="org/apache/axis/Constants.html#WSIBP11_COMPAT_PROPERTY"><B>WSIBP11_COMPAT_PROPERTY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>Basic Profile 1.1 compatibility flag
<DT><A HREF="org/apache/axis/client/async/AsyncResult.html#waitFor(long)"><B>waitFor(long)</B></A> - 
Method in class org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/AsyncResult.html" title="class in org.apache.axis.client.async">AsyncResult</A>
<DD>Method waitFor
<DT><A HREF="org/apache/axis/client/async/IAsyncResult.html#waitFor(long)"><B>waitFor(long)</B></A> - 
Method in interface org.apache.axis.client.async.<A HREF="org/apache/axis/client/async/IAsyncResult.html" title="interface in org.apache.axis.client.async">IAsyncResult</A>
<DD>Method waitFor
<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html#warning(org.xml.sax.SAXParseException)"><B>warning(SAXParseException)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/FaultableHandler.html#workHandler"><B>workHandler</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/FaultableHandler.html" title="class in org.apache.axis">FaultableHandler</A>
<DD>The <code>Handler</code> that will do the actual work of handeling the
 fault.
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#workerDone(java.lang.Runnable, boolean)"><B>workerDone(Runnable, boolean)</B></A> - 
Method in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>Used by MessageWorkers to notify the pool that it is done
<DT><A HREF="org/apache/axis/wsdl/gen/Parser.html#wrapArrays"><B>wrapArrays</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/Parser.html" title="class in org.apache.axis.wsdl.gen">Parser</A>
<DD>If this is false, we'll prefer "String[]" to "ArrayOfString" for literal wrapped arrays
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#wrapPrimitiveType(org.apache.axis.wsdl.symbolTable.TypeEntry, java.lang.String)"><B>wrapPrimitiveType(TypeEntry, String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Return a string with "var" wrapped as an Object type if needed
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#wrapperPW"><B>wrapperPW</B></A> - 
Variable in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Field wrapperPW
<DT><A HREF="org/apache/axis/attachments/DimeMultiPart.html#write(java.io.OutputStream)"><B>write(OutputStream)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeMultiPart.html" title="class in org.apache.axis.attachments">DimeMultiPart</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#write(byte[])"><B>write(byte[])</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>Write bytes to the stream.
<DT><A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html#write(byte[], int)"><B>write(byte[], int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/ManagedMemoryDataSource.html" title="class in org.apache.axis.attachments">ManagedMemoryDataSource</A>
<DD>This method is a low level write.
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#write(byte[])"><B>write(byte[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html#write(byte[], int, int)"><B>write(byte[], int, int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/ChunkedOutputStream.html" title="class in org.apache.axis.transport.http">ChunkedOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.NullOutputStream.html" title="class in org.apache.axis.transport.http">FilterPrintWriter.NullOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#write(char[])"><B>write(char[])</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#write(char[], int, int)"><B>write(char[], int, int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#write(java.lang.String)"><B>write(String)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/FilterPrintWriter.html#write(java.lang.String, int, int)"><B>write(String, int, int)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/FilterPrintWriter.html" title="class in org.apache.axis.transport.http">FilterPrintWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArray.html#write(byte[])"><B>write(byte[])</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method write
<DT><A HREF="org/apache/axis/utils/ByteArray.html#write(byte[], int, int)"><B>write(byte[], int, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method write
<DT><A HREF="org/apache/axis/utils/ByteArray.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method write
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#write(byte[], int, int)"><B>write(byte[], int, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>Calls the write(byte[]) method.
<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#write(byte[])"><B>write(byte[])</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#write(byte[], int, int)"><B>write(byte[], int, int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/TeeOutputStream.html#write(int)"><B>write(int)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/TeeOutputStream.html" title="class in org.apache.axis.utils">TeeOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeAccessMethods()"><B>writeAccessMethods()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the setter and getter methods
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeAddressInfo(java.io.PrintWriter, java.lang.String, java.lang.String, javax.wsdl.Port)"><B>writeAddressInfo(PrintWriter, String, String, Port)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the private address field for this port and the public getter for it.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeArrayTypeMapping(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String, java.lang.String, javax.xml.namespace.QName)"><B>writeArrayTypeMapping(PrintWriter, String, String, String, String, QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Raw routine that writes out the typeMapping.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#writeAttribute(org.apache.axis.wsdl.fromJava.Types, java.lang.String, java.lang.Class, javax.xml.namespace.QName, org.w3c.dom.Element)"><B>writeAttribute(Types, String, Class, QName, Element)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>write aa attribute element and append it to the 'where' Node
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeBinding(javax.wsdl.Definition, boolean)"><B>writeBinding(Definition, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create the binding.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html#writeBindingAssignment(java.io.PrintWriter, java.lang.String, java.lang.String)"><B>writeBindingAssignment(PrintWriter, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>
<DD>Method writeBindingAssignment
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeBindingMethods(java.io.PrintWriter, java.util.List)"><B>writeBindingMethods(PrintWriter, List)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>for each of the TypeEntry objects in the deferredBindings list, we need
 to write code that will associate a class with a schema namespace/name.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeBindingOperation(javax.wsdl.Definition, javax.wsdl.Binding, javax.wsdl.Operation, org.apache.axis.description.OperationDesc)"><B>writeBindingOperation(Definition, Binding, Operation, OperationDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Binding Operation
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#writeChars(char[], int, int)"><B>writeChars(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convenience operation to write out (to Writer) the characters
 in p1 starting at index p2 for length p3.
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#writeChars(char[], int, int)"><B>writeChars(char[], int, int)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#writeComment(java.io.PrintWriter, org.w3c.dom.Element)"><B>writeComment(PrintWriter, Element)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Output a documentation element as a Java comment.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#writeComment(java.io.PrintWriter, org.w3c.dom.Element, boolean)"><B>writeComment(PrintWriter, Element, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>Output a documentation element as a Java comment.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeConstructors(java.io.PrintWriter)"><B>writeConstructors(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>write Constructors
<DT><A HREF="org/apache/axis/attachments/Attachments.html#writeContentToStream(java.io.OutputStream)"><B>writeContentToStream(OutputStream)</B></A> - 
Method in interface org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/Attachments.html" title="interface in org.apache.axis.attachments">Attachments</A>
<DD>Write the content to the stream.
<DT><A HREF="org/apache/axis/attachments/AttachmentsImpl.html#writeContentToStream(java.io.OutputStream)"><B>writeContentToStream(OutputStream)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/AttachmentsImpl.html" title="class in org.apache.axis.attachments">AttachmentsImpl</A>
<DD>Write the content to the stream.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#writeDOMElement(org.w3c.dom.Element)"><B>writeDOMElement(Element)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Output a DOM representation to a SerializationContext
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#writeDOMElement(org.w3c.dom.Element)"><B>writeDOMElement(Element)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeDefaultConstructor()"><B>writeDefaultConstructor()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the default constructor.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeDefinitions(javax.wsdl.Definition, java.lang.String)"><B>writeDefinitions(Definition, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create the definition header information.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeDeployBinding(java.io.PrintWriter, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>writeDeployBinding(PrintWriter, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Write out deployment instructions for given WSDL binding
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeDeployPort(java.io.PrintWriter, javax.wsdl.Port, javax.wsdl.Service, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>writeDeployPort(PrintWriter, Port, Service, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Write out deployment and undeployment instructions for given WSDL port
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#writeDeployPort(java.io.PrintWriter, javax.wsdl.Port)"><B>writeDeployPort(PrintWriter, Port)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Write out deployment and undeployment instructions for given WSDL port
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeDeployServices(java.io.PrintWriter)"><B>writeDeployServices(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Write out deployment and undeployment instructions for each WSDL service
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#writeDeployServices(java.io.PrintWriter)"><B>writeDeployServices(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Write out deployment and undeployment instructions for each WSDL service
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeDeployTypes(java.io.PrintWriter, javax.wsdl.Binding, boolean, boolean, org.apache.axis.constants.Use)"><B>writeDeployTypes(PrintWriter, Binding, boolean, boolean, Use)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Write out bean mappings for each type
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeDeserializer(java.io.PrintWriter)"><B>writeDeserializer(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>write Deserializer getter code and pass in meta data to avoid
 undo introspection.
<DT><A HREF="org/apache/axis/AxisFault.html#writeDetails(javax.xml.namespace.QName, org.apache.axis.encoding.SerializationContext)"><B>writeDetails(QName, SerializationContext)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A>
<DD>Writes any exception data to the faultDetails.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeElementDecl(javax.xml.namespace.QName, java.lang.Class, javax.xml.namespace.QName, boolean, javax.xml.namespace.QName)"><B>writeElementDecl(QName, Class, QName, boolean, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Create a top-level element declaration in our generated schema
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeElementForPart(java.lang.Class, javax.xml.namespace.QName)"><B>writeElementForPart(Class, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write out an element referenced by a part element attribute.
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoder.html#writeEncoded(java.io.Writer, java.lang.String)"><B>writeEncoded(Writer, String)</B></A> - 
Method in interface org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>
<DD>write the encoded version of a given string
<DT><A HREF="org/apache/axis/EngineConfiguration.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in interface org.apache.axis.<A HREF="org/apache/axis/EngineConfiguration.html" title="interface in org.apache.axis">EngineConfiguration</A>
<DD>Read the configuration from an engine, and store it somehow.
<DT><A HREF="org/apache/axis/configuration/DirProvider.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/DirProvider.html" title="class in org.apache.axis.configuration">DirProvider</A>
<DD>Save the engine configuration.
<DT><A HREF="org/apache/axis/configuration/FileProvider.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/FileProvider.html" title="class in org.apache.axis.configuration">FileProvider</A>
<DD>Save the engine configuration.
<DT><A HREF="org/apache/axis/configuration/NullProvider.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/NullProvider.html" title="class in org.apache.axis.configuration">NullProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/SimpleProvider.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/SimpleProvider.html" title="class in org.apache.axis.configuration">SimpleProvider</A>
<DD>We don't write ourselves out, so this is a noop.
<DT><A HREF="org/apache/axis/configuration/XMLStringProvider.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/XMLStringProvider.html" title="class in org.apache.axis.configuration">XMLStringProvider</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#writeEngineConfig(org.apache.axis.AxisEngine)"><B>writeEngineConfig(AxisEngine)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeEnumType(javax.xml.namespace.QName, java.lang.Class)"><B>writeEnumType(QName, Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write Enumeration Complex Type
 (Only supports enumeration classes of string types)
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeEqualsMethod()"><B>writeEqualsMethod()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes a general purpose equals method
<DT><A HREF="org/apache/axis/collections/LRUMap.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/LRUMap.html" title="class in org.apache.axis.collections">LRUMap</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/collections/SequencedHashMap.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.axis.collections.<A HREF="org/apache/axis/collections/SequencedHashMap.html" title="class in org.apache.axis.collections">SequencedHashMap</A>
<DD>Serializes this map to the given stream.
<DT><A HREF="org/apache/axis/message/MimeHeaders.html#writeExternal(java.io.ObjectOutput)"><B>writeExternal(ObjectOutput)</B></A> - 
Method in class org.apache.axis.message.<A HREF="org/apache/axis/message/MimeHeaders.html" title="class in org.apache.axis.message">MimeHeaders</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html#writeFault(java.io.PrintWriter, org.apache.axis.AxisFault)"><B>writeFault(PrintWriter, AxisFault)</B></A> - 
Method in class org.apache.axis.transport.http.<A HREF="org/apache/axis/transport/http/AbstractQueryStringHandler.html" title="class in org.apache.axis.transport.http">AbstractQueryStringHandler</A>
<DD>this method writes a fault out to an HTML stream.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeFaultInfo(java.io.PrintWriter, javax.wsdl.BindingOperation)"><B>writeFaultInfo(PrintWriter, BindingOperation)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>This function writes the regsiterFaultInfo API calls
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeFaultMessage(javax.wsdl.Definition, org.apache.axis.description.FaultDesc)"><B>writeFaultMessage(Definition, FaultDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Fault Message
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html#writeFaults()"><B>writeFaults()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDefinitionWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDefinitionWriter</A>
<DD>Write all the simple type faults.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#writeField(org.apache.axis.wsdl.fromJava.Types, java.lang.String, javax.xml.namespace.QName, java.lang.Class, boolean, boolean, org.w3c.dom.Element, boolean, javax.xml.namespace.QName)"><B>writeField(Types, String, QName, Class, boolean, boolean, Element, boolean, QName)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>write a schema representation of the given Class field and append it to
 the where Node, recurse on complex types
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Generate the file body for the bean helper.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Generate the binding for the given complex type.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBuildFileWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBuildFileWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Write the body of the deploy.wsdd file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaEnumTypeWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaEnumTypeWriter</A>
<DD>Generate the binding for the given enumeration type.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaFaultWriter</A>
<DD>Write the body of the Fault file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaHolderWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaHolderWriter</A>
<DD>Generate the holder for the given complex type.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Write the body of the binding's stub file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>Write the body of the portType interface file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceIfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceIfaceWriter</A>
<DD>Write the body of the service file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the body of the service file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaSkelWriter</A>
<DD>Write the body of the binding's stub file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Write the body of the binding's stub file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>
<DD>Write the body of the TestCase file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Write the body of the deploy.wsdd file.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#writeFileBody(java.io.PrintWriter)"><B>writeFileBody(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>This method must be implemented by a subclass.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html#writeFileFooter(java.io.PrintWriter)"><B>writeFileFooter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanFaultWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanFaultWriter</A>
<DD>Write the Exception serialization code
 <p/>
 NOTE: This function is written in JavaFaultWriter.java also.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeFileFooter(java.io.PrintWriter)"><B>writeFileFooter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Only write the file footer if the bean helper is not
 wrapped within a bean.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#writeFileFooter(java.io.PrintWriter)"><B>writeFileFooter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Generate the closing curly brace.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#writeFileFooter(java.io.PrintWriter)"><B>writeFileFooter(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>You may want to override this method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>Only write the file header if the bean helper is not wrapped
 within a bean.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Write a common header, including the package name, the class
 declaration, and the opening curly brace.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Write a common header, including the package name, the class
 declaration, and the opening curly brace.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Replace the default file header with the deployment doc file header.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaUndeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaUndeployWriter</A>
<DD>Replace the default file header with the deployment doc file header.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html#writeFileHeader(java.io.PrintWriter)"><B>writeFileHeader(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaWriter</A>
<DD>This method is intended to be overridden as necessary
 to generate file header information.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html#writeFlowsToContext(org.apache.axis.encoding.SerializationContext)"><B>writeFlowsToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTargetedChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDTargetedChain</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeFullConstructor()"><B>writeFullConstructor()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the full constructor.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetPortClass(java.io.PrintWriter, java.util.Vector, java.util.Vector, java.util.Vector, boolean)"><B>writeGetPortClass(PrintWriter, Vector, Vector, Vector, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the getPort(Class serviceInterfaceWriter) method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetPortName(java.io.PrintWriter, java.lang.String, java.lang.String)"><B>writeGetPortName(PrintWriter, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the get<portName>() method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetPortNameURL(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>writeGetPortNameURL(PrintWriter, String, String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the get<portName>(URL) method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetPortQNameClass(java.io.PrintWriter, java.util.Vector, java.util.Vector)"><B>writeGetPortQNameClass(PrintWriter, Vector, Vector)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the getPort(QName portName, Class serviceInterfaceWriter) method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetPorts(java.io.PrintWriter, java.lang.String, java.util.Vector)"><B>writeGetPorts(PrintWriter, String, Vector)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the getPorts method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeGetServiceName(java.io.PrintWriter, javax.xml.namespace.QName)"><B>writeGetServiceName(PrintWriter, QName)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the getServiceName method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeHashCodeMethod()"><B>writeHashCodeMethod()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes a general purpose hashCode method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#writeHeaderComments(java.io.PrintWriter)"><B>writeHeaderComments(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Write the header comments.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeImport(javax.wsdl.Definition, java.lang.String, java.lang.String)"><B>writeImport(Definition, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create and add an import
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeMemberFields()"><B>writeMemberFields()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the member fields.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeMessages(javax.wsdl.Definition, javax.wsdl.Operation, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><B>writeMessages(Definition, Operation, OperationDesc, BindingOperation)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Message
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeMetaData(java.io.PrintWriter)"><B>writeMetaData(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>write MetaData code
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeMinimalConstructor()"><B>writeMinimalConstructor()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeOperation(javax.wsdl.Definition, javax.wsdl.Binding, org.apache.axis.description.OperationDesc)"><B>writeOperation(Definition, Binding, OperationDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Operation
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeOperation(java.io.PrintWriter, java.lang.String, javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.namespace.QName, org.apache.axis.wsdl.symbolTable.Parameters, javax.xml.namespace.QName, java.util.ArrayList, java.lang.String)"><B>writeOperation(PrintWriter, String, QName, QName, QName, Parameters, QName, ArrayList, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Raw routine that writes out the operation and parameters.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html#writeOperation(java.io.PrintWriter, org.apache.axis.wsdl.symbolTable.Parameters)"><B>writeOperation(PrintWriter, Parameters)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaImplWriter</A>
<DD>Write the implementation template for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html#writeOperation(java.io.PrintWriter, javax.wsdl.Operation)"><B>writeOperation(PrintWriter, Operation)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaInterfaceWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaInterfaceWriter</A>
<DD>This method generates the interface signatures for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html#writeOperation(java.io.PrintWriter, javax.wsdl.BindingOperation, org.apache.axis.wsdl.symbolTable.Parameters, java.lang.String, java.lang.String)"><B>writeOperation(PrintWriter, BindingOperation, Parameters, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaSkelWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaSkelWriter</A>
<DD>Write the skeleton code for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeOperation(java.io.PrintWriter, javax.wsdl.BindingOperation, org.apache.axis.wsdl.symbolTable.Parameters, java.lang.String, java.lang.String, boolean, int)"><B>writeOperation(PrintWriter, BindingOperation, Parameters, String, String, boolean, int)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Write the stub code for the given operation.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeOperationMap(java.io.PrintWriter)"><B>writeOperationMap(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Method writeOperationMap
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeOutputAssign(java.io.PrintWriter, java.lang.String, org.apache.axis.wsdl.symbolTable.Parameter, java.lang.String)"><B>writeOutputAssign(PrintWriter, String, Parameter, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>writeOutputAssign
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html#writePackage(java.io.PrintWriter)"><B>writePackage(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaClassWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaClassWriter</A>
<DD>Write the package declaration statement.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeParameters(java.io.PrintWriter, org.apache.axis.wsdl.symbolTable.Parameters)"><B>writeParameters(PrintWriter, Parameters)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Method writeParameters
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html#writeParamsToContext(org.apache.axis.encoding.SerializationContext)"><B>writeParamsToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployableItem.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployableItem</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writePartToMessage(javax.wsdl.Definition, javax.wsdl.Message, boolean, org.apache.axis.description.ParameterDesc)"><B>writePartToMessage(Definition, Message, boolean, ParameterDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Part
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writePortType(javax.wsdl.Definition, javax.wsdl.Binding)"><B>writePortType(Definition, Binding)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a PortType
<DT><A HREF="org/apache/axis/types/NegativeInteger.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NegativeInteger.html" title="class in org.apache.axis.types">NegativeInteger</A>
<DD>Work-around for http://developer.java.sun.com/developer/bugParade/bugs/4378370.html
<DT><A HREF="org/apache/axis/types/NonNegativeInteger.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NonNegativeInteger.html" title="class in org.apache.axis.types">NonNegativeInteger</A>
<DD>Work-around for http://developer.java.sun.com/developer/bugParade/bugs/4378370.html
<DT><A HREF="org/apache/axis/types/NonPositiveInteger.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/NonPositiveInteger.html" title="class in org.apache.axis.types">NonPositiveInteger</A>
<DD>Work-around for http://developer.java.sun.com/developer/bugParade/bugs/4378370.html
<DT><A HREF="org/apache/axis/types/PositiveInteger.html#writeReplace()"><B>writeReplace()</B></A> - 
Method in class org.apache.axis.types.<A HREF="org/apache/axis/types/PositiveInteger.html" title="class in org.apache.axis.types">PositiveInteger</A>
<DD>Work-around for http://developer.java.sun.com/developer/bugParade/bugs/4378370.html
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeRequestMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><B>writeRequestMessage(Definition, OperationDesc, BindingOperation)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Request Message
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeResponseHandling(java.io.PrintWriter, org.apache.axis.wsdl.symbolTable.Parameters)"><B>writeResponseHandling(PrintWriter, Parameters)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Method writeResponseHandling
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeResponseMessage(javax.wsdl.Definition, org.apache.axis.description.OperationDesc, javax.wsdl.BindingOperation)"><B>writeResponseMessage(Definition, OperationDesc, BindingOperation)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a Response Message
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPBody(javax.xml.namespace.QName)"><B>writeSOAPBody(QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method writeSOAPBody
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPFault(org.apache.axis.description.FaultDesc)"><B>writeSOAPFault(FaultDesc)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Method writeSOAPFault
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeSOAPHeader(org.apache.axis.description.ParameterDesc, javax.xml.namespace.QName, java.lang.String)"><B>writeSOAPHeader(ParameterDesc, QName, String)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create a SOAPHeader element
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#writeSafeString(java.lang.String)"><B>writeSafeString(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convenience operation to write out (to Writer) the String
 properly encoded with xml entities (like &amp)
<DT><A HREF="org/apache/axis/encoding/Serializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in interface org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/Serializer.html" title="interface in org.apache.axis.encoding">Serializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/ArraySerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ArraySerializer.html" title="class in org.apache.axis.encoding.ser">ArraySerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/BeanSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BeanSerializer.html" title="class in org.apache.axis.encoding.ser">BeanSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/CalendarSerializer.html" title="class in org.apache.axis.encoding.ser">CalendarSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/DateSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DateSerializer.html" title="class in org.apache.axis.encoding.ser">DateSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/DocumentSerializer.html" title="class in org.apache.axis.encoding.ser">DocumentSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/ElementSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/ElementSerializer.html" title="class in org.apache.axis.encoding.ser">ElementSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/EnumSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/EnumSerializer.html" title="class in org.apache.axis.encoding.ser">EnumSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/JAFDataHandlerSerializer.html" title="class in org.apache.axis.encoding.ser">JAFDataHandlerSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/MapSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/MapSerializer.html" title="class in org.apache.axis.encoding.ser">MapSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/QNameSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/QNameSerializer.html" title="class in org.apache.axis.encoding.ser">QNameSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/TimeSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/TimeSerializer.html" title="class in org.apache.axis.encoding.ser">TimeSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/VectorSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/VectorSerializer.html" title="class in org.apache.axis.encoding.ser">VectorSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorSerializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into
 the &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#writeSchema(java.lang.Class, org.apache.axis.wsdl.fromJava.Types)"><B>writeSchema(Class, Types)</B></A> - 
Method in class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>Return XML schema for the specified type, suitable for insertion into the
 &lt;types&gt; element of a WSDL document, or underneath an
 &lt;element&gt; or &lt;attribute&gt; declaration.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeSchemaElement(javax.xml.namespace.QName, org.w3c.dom.Element)"><B>writeSchemaElement(QName, Element)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD><B>Deprecated.</B>&nbsp;<I>Please use writeSchemaElement(String namespaceURI, Element element)</I>
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeSchemaElement(java.lang.String, org.w3c.dom.Element)"><B>writeSchemaElement(String, Element)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write out the given Element into the appropriate schema node.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeSchemaElementDecl(javax.xml.namespace.QName, org.w3c.dom.Element)"><B>writeSchemaElementDecl(QName, Element)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Method writeSchemaElementDecl
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeSchemaTypeDecl(javax.xml.namespace.QName, org.w3c.dom.Element)"><B>writeSchemaTypeDecl(QName, Element)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Method writeSchemaTypeDecl
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeSerializationDecls(java.io.PrintWriter, boolean, java.lang.String)"><B>writeSerializationDecls(PrintWriter, boolean, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>In the stub constructor, write the serializer code for the complex types.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html#writeSerializationInit(java.io.PrintWriter, org.apache.axis.wsdl.symbolTable.TypeEntry)"><B>writeSerializationInit(PrintWriter, TypeEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaStubWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaStubWriter</A>
<DD>Method writeSerializationInit
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html#writeSerializer(java.io.PrintWriter)"><B>writeSerializer(PrintWriter)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanHelperWriter</A>
<DD>write Serializer getter code and pass in meta data to avoid
 undo introspection.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeService(javax.wsdl.Definition, javax.wsdl.Binding)"><B>writeService(Definition, Binding)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Create the service.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html#writeServiceTestCode(java.io.PrintWriter, java.lang.String, javax.wsdl.PortType, org.apache.axis.wsdl.symbolTable.BindingEntry)"><B>writeServiceTestCode(PrintWriter, String, PortType, BindingEntry)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaTestCaseWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaTestCaseWriter</A>
<DD>Method writeServiceTestCode
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeSetEndpointAddress(java.io.PrintWriter, java.util.Vector)"><B>writeSetEndpointAddress(PrintWriter, Vector)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the setEndpointAddress(String portName, String newAddress)
 and setEndpointAddress(QName portName, String newAddress) methods.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeSetPortEndpointAddress(java.io.PrintWriter, java.lang.String)"><B>writeSetPortEndpointAddress(PrintWriter, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the set<portName>EndpointAddress(String) method.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeSimpleConstructors()"><B>writeSimpleConstructors()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the constructors for SimpleTypes.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeSimpleTypeGetter(java.lang.String, java.lang.String, java.lang.String)"><B>writeSimpleTypeGetter(String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Method writeSimpleTypeGetter
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeSimpleTypeSetter(java.lang.String)"><B>writeSimpleTypeSetter(String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Method writeSimpleTypeSetter
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#writeString(java.lang.String)"><B>writeString(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>Convenience operation to write out (to Writer) the String
<DT><A HREF="org/apache/axis/encoding/TextSerializationContext.html#writeString(java.lang.String)"><B>writeString(String)</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TextSerializationContext.html" title="class in org.apache.axis.encoding">TextSerializationContext</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/soap/SOAPMessage.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class javax.xml.soap.<A HREF="javax/xml/soap/SOAPMessage.html" title="class in javax.xml.soap">SOAPMessage</A>
<DD>Writes this <CODE>SOAPMessage</CODE> object to the given
   output stream.
<DT><A HREF="org/apache/axis/Message.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>
<DD>Writes this <CODE>SOAPMessage</CODE> object to the given
   output stream.
<DT><A HREF="org/apache/axis/SOAPPart.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Write the contents to the specified stream.
<DT><A HREF="org/apache/axis/SOAPPart.html#writeTo(java.io.Writer)"><B>writeTo(Writer)</B></A> - 
Method in class org.apache.axis.<A HREF="org/apache/axis/SOAPPart.html" title="class in org.apache.axis">SOAPPart</A>
<DD>Write the contents to the specified writer.
<DT><A HREF="org/apache/axis/utils/ByteArray.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArray.html" title="class in org.apache.axis.utils">ByteArray</A>
<DD>Method writeTo
<DT><A HREF="org/apache/axis/utils/ByteArrayOutputStream.html#writeTo(java.io.OutputStream)"><B>writeTo(OutputStream)</B></A> - 
Method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/ByteArrayOutputStream.html" title="class in org.apache.axis.utils">ByteArrayOutputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDArrayMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDArrayMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDBeanMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDBeanMapping</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDChain</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDDeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocument.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocument</A>
<DD>write the deployment to the supplied serialization context.
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDDocumentation.html" title="class in org.apache.axis.deployment.wsdd">WSDDDocumentation</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDElement.html" title="class in org.apache.axis.deployment.wsdd">WSDDElement</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDFault.html" title="class in org.apache.axis.deployment.wsdd">WSDDFault</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.html" title="class in org.apache.axis.deployment.wsdd">WSDDGlobalConfiguration</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDHandler.html" title="class in org.apache.axis.deployment.wsdd">WSDDHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfo.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfo</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDJAXRPCHandlerInfoChain.html" title="class in org.apache.axis.deployment.wsdd">WSDDJAXRPCHandlerInfoChain</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDOperation.html" title="class in org.apache.axis.deployment.wsdd">WSDDOperation</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDParameter.html" title="class in org.apache.axis.deployment.wsdd">WSDDParameter</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDService.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDService.html" title="class in org.apache.axis.deployment.wsdd">WSDDService</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTransport.html" title="class in org.apache.axis.deployment.wsdd">WSDDTransport</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDTypeMapping.html" title="class in org.apache.axis.deployment.wsdd">WSDDTypeMapping</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.<A HREF="org/apache/axis/deployment/wsdd/WSDDUndeployment.html" title="class in org.apache.axis.deployment.wsdd">WSDDUndeployment</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html#writeToContext(org.apache.axis.encoding.SerializationContext)"><B>writeToContext(SerializationContext)</B></A> - 
Method in class org.apache.axis.deployment.wsdd.providers.<A HREF="org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.html" title="class in org.apache.axis.deployment.wsdd.providers">WSDDBsfProvider</A>
<DD>Write this element out to a SerializationContext
<DT><A HREF="org/apache/axis/attachments/MimeUtils.html#writeToMultiPartStream(java.io.OutputStream, javax.mail.internet.MimeMultipart)"><B>writeToMultiPartStream(OutputStream, MimeMultipart)</B></A> - 
Static method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/MimeUtils.html" title="class in org.apache.axis.attachments">MimeUtils</A>
<DD>This routine will the multi part type and write it out to a stream.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html#writeToStringMethod()"><B>writeToStringMethod()</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaBeanWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaBeanWriter</A>
<DD>Writes the toString method
 Currently the toString method is only written for
 simpleTypes.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeType(java.lang.Class)"><B>writeType(Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write a schema representation for the given <code>Class</code>.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeType(java.lang.Class, javax.xml.namespace.QName)"><B>writeType(Class, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write a schema representation for the given <code>Class</code>.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeTypeAndSubTypeForPart(java.lang.Class, javax.xml.namespace.QName)"><B>writeTypeAndSubTypeForPart(Class, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write out a type (and its subtypes) referenced by a part type attribute.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeTypeForPart(java.lang.Class, javax.xml.namespace.QName)"><B>writeTypeForPart(Class, QName)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write out a type referenced by a part type attribute.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html#writeTypeMapping(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>writeTypeMapping(PrintWriter, String, String, String, String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaDeployWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaDeployWriter</A>
<DD>Raw routine that writes out the typeMapping.
<DT><A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html#writeWSDDServiceNameInfo(java.io.PrintWriter, java.lang.String, java.lang.String, java.lang.String)"><B>writeWSDDServiceNameInfo(PrintWriter, String, String, String)</B></A> - 
Method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/JavaServiceImplWriter.html" title="class in org.apache.axis.wsdl.toJava">JavaServiceImplWriter</A>
<DD>Write the private WSDD service name field and the public accessors for it.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeWrappedParameter(org.w3c.dom.Element, java.lang.String, javax.xml.namespace.QName, java.lang.Class)"><B>writeWrappedParameter(Element, String, QName, Class)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write a parameter (a sub-element) into a sequence generated by
 writeWrapperElement() above.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Types.html#writeWrapperElement(javax.xml.namespace.QName, boolean, boolean)"><B>writeWrapperElement(QName, boolean, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Types.html" title="class in org.apache.axis.wsdl.fromJava">Types</A>
<DD>Write the element definition for a WRAPPED operation.
<DT><A HREF="org/apache/axis/wsdl/fromJava/Emitter.html#writeWrapperPart(javax.wsdl.Definition, javax.wsdl.Message, org.apache.axis.description.OperationDesc, boolean)"><B>writeWrapperPart(Definition, Message, OperationDesc, boolean)</B></A> - 
Method in class org.apache.axis.wsdl.fromJava.<A HREF="org/apache/axis/wsdl/fromJava/Emitter.html" title="class in org.apache.axis.wsdl.fromJava">Emitter</A>
<DD>Write out the schema definition for a WRAPPED operation request or
 response.
<DT><A HREF="org/apache/axis/encoding/SerializationContext.html#writeXMLDeclaration()"><B>writeXMLDeclaration()</B></A> - 
Method in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/SerializationContext.html" title="class in org.apache.axis.encoding">SerializationContext</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#wsdlFilename"><B>wsdlFilename</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field wsdlFilename
<DT><A HREF="org/apache/axis/wsdl/Java2WSDL.html#wsdlImplFilename"><B>wsdlImplFilename</B></A> - 
Variable in class org.apache.axis.wsdl.<A HREF="org/apache/axis/wsdl/Java2WSDL.html" title="class in org.apache.axis.wsdl">Java2WSDL</A>
<DD>Field wsdlImplFilename
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#wsdlStart"><B>wsdlStart</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/EchoHandler.html#wsdlStart1"><B>wsdlStart1</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/EchoHandler.html" title="class in org.apache.axis.handlers">EchoHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/wsdl/gen/WSDL2.html#wsdlURI"><B>wsdlURI</B></A> - 
Variable in class org.apache.axis.wsdl.gen.<A HREF="org/apache/axis/wsdl/gen/WSDL2.html" title="class in org.apache.axis.wsdl.gen">WSDL2</A>
<DD>Field wsdlURI
</DL>
<HR>
<A NAME="_X_"><!-- --></A><H2>
<B>X</B></H2>
<DL>
<DT><A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils"><B>XMLChar</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>.<DD>This class defines the basic XML character properties.<DT><A HREF="org/apache/axis/utils/XMLChar.html#XMLChar()"><B>XMLChar()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLChar.html" title="class in org.apache.axis.utils">XMLChar</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding"><B>XMLEncoder</B></A> - interface org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoder.html" title="interface in org.apache.axis.components.encoding">XMLEncoder</A>.<DD>Interface for XMLEncoders<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding"><B>XMLEncoderFactory</B></A> - class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>.<DD>Factory for XMLEncoder<DT><A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html#XMLEncoderFactory()"><B>XMLEncoderFactory()</B></A> - 
Constructor for class org.apache.axis.components.encoding.<A HREF="org/apache/axis/components/encoding/XMLEncoderFactory.html" title="class in org.apache.axis.components.encoding">XMLEncoderFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/configuration/XMLStringProvider.html" title="class in org.apache.axis.configuration"><B>XMLStringProvider</B></A> - class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/XMLStringProvider.html" title="class in org.apache.axis.configuration">XMLStringProvider</A>.<DD>A simple ConfigurationProvider that uses the Admin class to
 configure the engine from a String containing XML.<DT><A HREF="org/apache/axis/configuration/XMLStringProvider.html#XMLStringProvider(java.lang.String)"><B>XMLStringProvider(String)</B></A> - 
Constructor for class org.apache.axis.configuration.<A HREF="org/apache/axis/configuration/XMLStringProvider.html" title="class in org.apache.axis.configuration">XMLStringProvider</A>
<DD>Constructor
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding"><B>XMLType</B></A> - class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>.<DD>Constants representing XML Types.<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XMLType()"><B>XMLType()</B></A> - 
Constructor for class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/XMLType.html" title="class in org.apache.axis.encoding"><B>XMLType</B></A> - class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/XMLType.html" title="class in org.apache.axis.encoding">XMLType</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/encoding/XMLType.html#XMLType()"><B>XMLType()</B></A> - 
Constructor for class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/XMLType.html" title="class in org.apache.axis.encoding">XMLType</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils"><B>XMLUtils</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/XMLUtils.html#XMLUtils()"><B>XMLUtils()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils"><B>XMLUtils.ParserErrorHandler</B></A> - class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>.<DD>&nbsp;<DT><A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html#XMLUtils.ParserErrorHandler()"><B>XMLUtils.ParserErrorHandler()</B></A> - 
Constructor for class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.ParserErrorHandler.html" title="class in org.apache.axis.utils">XMLUtils.ParserErrorHandler</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XML_LANG"><B>XML_LANG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ANY"><B>XSD_ANY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ANYSIMPLETYPE"><B>XSD_ANYSIMPLETYPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ANYTYPE"><B>XSD_ANYTYPE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ANYURI"><B>XSD_ANYURI</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_BASE64"><B>XSD_BASE64</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for base64Binary.
<DT><A HREF="org/apache/axis/Constants.html#XSD_BASE64"><B>XSD_BASE64</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_BOOLEAN"><B>XSD_BOOLEAN</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for boolean.
<DT><A HREF="org/apache/axis/Constants.html#XSD_BOOLEAN"><B>XSD_BOOLEAN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_BYTE"><B>XSD_BYTE</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for byte.
<DT><A HREF="org/apache/axis/Constants.html#XSD_BYTE"><B>XSD_BYTE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_DATE"><B>XSD_DATE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_DATETIME"><B>XSD_DATETIME</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for dateTime.
<DT><A HREF="org/apache/axis/Constants.html#XSD_DATETIME"><B>XSD_DATETIME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_DAY"><B>XSD_DAY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_DECIMAL"><B>XSD_DECIMAL</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for decimal.
<DT><A HREF="org/apache/axis/Constants.html#XSD_DECIMAL"><B>XSD_DECIMAL</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_DOUBLE"><B>XSD_DOUBLE</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for double.
<DT><A HREF="org/apache/axis/Constants.html#XSD_DOUBLE"><B>XSD_DOUBLE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_DURATION"><B>XSD_DURATION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ENTITIES"><B>XSD_ENTITIES</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_ENTITY"><B>XSD_ENTITY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_FLOAT"><B>XSD_FLOAT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for float.
<DT><A HREF="org/apache/axis/Constants.html#XSD_FLOAT"><B>XSD_FLOAT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_HEXBIN"><B>XSD_HEXBIN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_HEXBINARY"><B>XSD_HEXBINARY</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for hexBinary.
<DT><A HREF="org/apache/axis/Constants.html#XSD_ID"><B>XSD_ID</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_IDREF"><B>XSD_IDREF</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_IDREFS"><B>XSD_IDREFS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_INT"><B>XSD_INT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for int.
<DT><A HREF="org/apache/axis/Constants.html#XSD_INT"><B>XSD_INT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_INTEGER"><B>XSD_INTEGER</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for integer.
<DT><A HREF="org/apache/axis/Constants.html#XSD_INTEGER"><B>XSD_INTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_LANGUAGE"><B>XSD_LANGUAGE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_LONG"><B>XSD_LONG</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for long.
<DT><A HREF="org/apache/axis/Constants.html#XSD_LONG"><B>XSD_LONG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_MONTH"><B>XSD_MONTH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_MONTHDAY"><B>XSD_MONTHDAY</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NAME"><B>XSD_NAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NCNAME"><B>XSD_NCNAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NEGATIVEINTEGER"><B>XSD_NEGATIVEINTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NMTOKEN"><B>XSD_NMTOKEN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NMTOKENS"><B>XSD_NMTOKENS</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NONNEGATIVEINTEGER"><B>XSD_NONNEGATIVEINTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NONPOSITIVEINTEGER"><B>XSD_NONPOSITIVEINTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NORMALIZEDSTRING"><B>XSD_NORMALIZEDSTRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_NOTATION"><B>XSD_NOTATION</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_POSITIVEINTEGER"><B>XSD_POSITIVEINTEGER</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_QNAME"><B>XSD_QNAME</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for QName.
<DT><A HREF="org/apache/axis/Constants.html#XSD_QNAME"><B>XSD_QNAME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_SCHEMA"><B>XSD_SCHEMA</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_SHORT"><B>XSD_SHORT</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for short.
<DT><A HREF="org/apache/axis/Constants.html#XSD_SHORT"><B>XSD_SHORT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/encoding/XMLType.html#XSD_STRING"><B>XSD_STRING</B></A> - 
Static variable in class javax.xml.rpc.encoding.<A HREF="javax/xml/rpc/encoding/XMLType.html" title="class in javax.xml.rpc.encoding">XMLType</A>
<DD>XSD type for string.
<DT><A HREF="org/apache/axis/Constants.html#XSD_STRING"><B>XSD_STRING</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_TIME"><B>XSD_TIME</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_TIMEINSTANT1999"><B>XSD_TIMEINSTANT1999</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_TIMEINSTANT2000"><B>XSD_TIMEINSTANT2000</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_TOKEN"><B>XSD_TOKEN</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_UNSIGNEDBYTE"><B>XSD_UNSIGNEDBYTE</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_UNSIGNEDINT"><B>XSD_UNSIGNEDINT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_UNSIGNEDLONG"><B>XSD_UNSIGNEDLONG</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_UNSIGNEDSHORT"><B>XSD_UNSIGNEDSHORT</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_YEAR"><B>XSD_YEAR</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/Constants.html#XSD_YEARMONTH"><B>XSD_YEARMONTH</B></A> - 
Static variable in class org.apache.axis.<A HREF="org/apache/axis/Constants.html" title="class in org.apache.axis">Constants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html" title="class in org.apache.axis.encoding.ser.xbeans"><B>XmlBeanDeserializer</B></A> - class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanDeserializer</A>.<DD>Class XmlBeanDeserializer<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html#XmlBeanDeserializer(java.lang.Class, javax.xml.namespace.QName)"><B>XmlBeanDeserializer(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans"><B>XmlBeanDeserializerFactory</B></A> - class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanDeserializerFactory</A>.<DD>Class XmlBeanDeserializerFactory<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializerFactory.html#XmlBeanDeserializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>XmlBeanDeserializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanDeserializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans"><B>XmlBeanSerializer</B></A> - class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>.<DD>Class XmlBeanSerializer<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html#XmlBeanSerializer()"><B>XmlBeanSerializer()</B></A> - 
Constructor for class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializer.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans"><B>XmlBeanSerializerFactory</B></A> - class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializerFactory</A>.<DD>Class XmlBeanSerializerFactory<DT><A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializerFactory.html#XmlBeanSerializerFactory(java.lang.Class, javax.xml.namespace.QName)"><B>XmlBeanSerializerFactory(Class, QName)</B></A> - 
Constructor for class org.apache.axis.encoding.ser.xbeans.<A HREF="org/apache/axis/encoding/ser/xbeans/XmlBeanSerializerFactory.html" title="class in org.apache.axis.encoding.ser.xbeans">XmlBeanSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/utils/XMLUtils.html#xmlEncodeString(java.lang.String)"><B>xmlEncodeString(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/XMLUtils.html" title="class in org.apache.axis.utils">XMLUtils</A>
<DD>Encode a string appropriately for XML.
<DT><A HREF="org/apache/axis/utils/JavaUtils.html#xmlNameToJava(java.lang.String)"><B>xmlNameToJava(String)</B></A> - 
Static method in class org.apache.axis.utils.<A HREF="org/apache/axis/utils/JavaUtils.html" title="class in org.apache.axis.utils">JavaUtils</A>
<DD>Map an XML name to a Java identifier per
 the mapping rules of JSR 101 (in version 1.0 this is
 "Chapter 20: Appendix: Mapping of XML Names"
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#xmlNameToJava(java.lang.String)"><B>xmlNameToJava(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Map an XML name to a valid Java identifier
<DT><A HREF="org/apache/axis/wsdl/toJava/Utils.html#xmlNameToJavaClass(java.lang.String)"><B>xmlNameToJavaClass(String)</B></A> - 
Static method in class org.apache.axis.wsdl.toJava.<A HREF="org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A>
<DD>Map an XML name to a valid Java identifier w/ capitolized first letter
<DT><A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.<A HREF="org/apache/axis/encoding/TypeMappingImpl.Pair.html" title="class in org.apache.axis.encoding">TypeMappingImpl.Pair</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/Base64Serializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/Base64Serializer.html" title="class in org.apache.axis.encoding.ser">Base64Serializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseDeserializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseDeserializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/BaseSerializerFactory.html" title="class in org.apache.axis.encoding.ser">BaseSerializerFactory</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/HexSerializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/HexSerializer.html" title="class in org.apache.axis.encoding.ser">HexSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListDeserializer.html" title="class in org.apache.axis.encoding.ser">SimpleListDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleListSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleListSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.<A HREF="org/apache/axis/encoding/ser/SimpleSerializer.html" title="class in org.apache.axis.encoding.ser">SimpleSerializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorDeserializer</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html#xmlType"><B>xmlType</B></A> - 
Variable in class org.apache.axis.encoding.ser.castor.<A HREF="org/apache/axis/encoding/ser/castor/CastorEnumTypeDeserializer.html" title="class in org.apache.axis.encoding.ser.castor">CastorEnumTypeDeserializer</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_Y_"><!-- --></A><H2>
<B>Y</B></H2>
<DL>
<DT><A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types"><B>Year</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>.<DD>Implementation of the XML Schema type gYear<DT><A HREF="org/apache/axis/types/Year.html#Year(int)"><B>Year(int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>Constructs a Year with the given values
 No timezone is specified
<DT><A HREF="org/apache/axis/types/Year.html#Year(int, java.lang.String)"><B>Year(int, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>Constructs a Year with the given values, including a timezone string
 The timezone is validated but not used.
<DT><A HREF="org/apache/axis/types/Year.html#Year(java.lang.String)"><B>Year(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/Year.html" title="class in org.apache.axis.types">Year</A>
<DD>Construct a Year from a String in the format [-]CCYY[timezone]
<DT><A HREF="org/apache/axis/holders/YearHolder.html" title="class in org.apache.axis.holders"><B>YearHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearHolder.html" title="class in org.apache.axis.holders">YearHolder</A>.<DD>Class YearHolder<DT><A HREF="org/apache/axis/holders/YearHolder.html#YearHolder()"><B>YearHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearHolder.html" title="class in org.apache.axis.holders">YearHolder</A>
<DD>Constructor YearHolder
<DT><A HREF="org/apache/axis/holders/YearHolder.html#YearHolder(org.apache.axis.types.Year)"><B>YearHolder(Year)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearHolder.html" title="class in org.apache.axis.holders">YearHolder</A>
<DD>Constructor YearHolder
<DT><A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types"><B>YearMonth</B></A> - class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>.<DD>Implementation of the XML Schema type gYearMonth<DT><A HREF="org/apache/axis/types/YearMonth.html#YearMonth(int, int)"><B>YearMonth(int, int)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>Constructs a YearMonth with the given values
 No timezone is specified
<DT><A HREF="org/apache/axis/types/YearMonth.html#YearMonth(int, int, java.lang.String)"><B>YearMonth(int, int, String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>Constructs a YearMonth with the given values, including a timezone string
 The timezone is validated but not used.
<DT><A HREF="org/apache/axis/types/YearMonth.html#YearMonth(java.lang.String)"><B>YearMonth(String)</B></A> - 
Constructor for class org.apache.axis.types.<A HREF="org/apache/axis/types/YearMonth.html" title="class in org.apache.axis.types">YearMonth</A>
<DD>Construct a YearMonth from a String in the format [-]CCYY-MM
<DT><A HREF="org/apache/axis/holders/YearMonthHolder.html" title="class in org.apache.axis.holders"><B>YearMonthHolder</B></A> - class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearMonthHolder.html" title="class in org.apache.axis.holders">YearMonthHolder</A>.<DD>Class YearMonthHolder<DT><A HREF="org/apache/axis/holders/YearMonthHolder.html#YearMonthHolder()"><B>YearMonthHolder()</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearMonthHolder.html" title="class in org.apache.axis.holders">YearMonthHolder</A>
<DD>Constructor YearMonthHolder
<DT><A HREF="org/apache/axis/holders/YearMonthHolder.html#YearMonthHolder(org.apache.axis.types.YearMonth)"><B>YearMonthHolder(YearMonth)</B></A> - 
Constructor for class org.apache.axis.holders.<A HREF="org/apache/axis/holders/YearMonthHolder.html" title="class in org.apache.axis.holders">YearMonthHolder</A>
<DD>Constructor YearMonthHolder
</DL>
<HR>
<A NAME="___"><!-- --></A><H2>
<B>_</B></H2>
<DL>
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_ACKNOWLEDGE_MODE"><B>_ACKNOWLEDGE_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_CLIENT_ID"><B>_CLIENT_ID</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html#_CONNECTION_FACTORY_JNDI_NAME"><B>_CONNECTION_FACTORY_JNDI_NAME</B></A> - 
Static variable in class org.apache.axis.components.jms.<A HREF="org/apache/axis/components/jms/JNDIVendorAdapter.html" title="class in org.apache.axis.components.jms">JNDIVendorAdapter</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_CONNECT_RETRY_INTERVAL"><B>_CONNECT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_DELIVERY_MODE"><B>_DELIVERY_MODE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_DOMAIN"><B>_DOMAIN</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_INTERACT_RETRY_INTERVAL"><B>_INTERACT_RETRY_INTERVAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_JMS_CORRELATION_ID"><B>_JMS_CORRELATION_ID</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_JMS_CORRELATION_ID_AS_BYTES"><B>_JMS_CORRELATION_ID_AS_BYTES</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_JMS_TYPE"><B>_JMS_TYPE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_MESSAGE_SELECTOR"><B>_MESSAGE_SELECTOR</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_MIN_TIMEOUT_TIME"><B>_MIN_TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_MSG_PROP_PREFIX"><B>_MSG_PROP_PREFIX</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>Defines a prefix added to each application-specific property in the 
 JMS URL that should be added to the JMS Message when issued.
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_NO_LOCAL"><B>_NO_LOCAL</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_NUM_RETRIES"><B>_NUM_RETRIES</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_NUM_SESSIONS"><B>_NUM_SESSIONS</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_PRIORITY"><B>_PRIORITY</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_SUBSCRIPTION_NAME"><B>_SUBSCRIPTION_NAME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_TIMEOUT_TIME"><B>_TIMEOUT_TIME</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_TIME_TO_LIVE"><B>_TIME_TO_LIVE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_UNSUBSCRIBE"><B>_UNSUBSCRIBE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_VENDOR"><B>_VENDOR</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/transport/jms/JMSConstants.html#_WAIT_FOR_RESPONSE"><B>_WAIT_FOR_RESPONSE</B></A> - 
Static variable in interface org.apache.axis.transport.jms.<A HREF="org/apache/axis/transport/jms/JMSConstants.html" title="interface in org.apache.axis.transport.jms">JMSConstants</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Service.html#_call"><B>_call</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#_call"><B>_call</B></A> - 
Variable in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/client/Stub.html#_createCall()"><B>_createCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Creates a call from the service.
<DT><A HREF="org/apache/axis/client/Stub.html#_getCall()"><B>_getCall()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Returns last Call object associated with this stub.
<DT><A HREF="javax/xml/rpc/Stub.html#_getProperty(java.lang.String)"><B>_getProperty(String)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Gets the value of a specific configuration property.
<DT><A HREF="org/apache/axis/client/Stub.html#_getProperty(java.lang.String)"><B>_getProperty(String)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Gets the value of a named property.
<DT><A HREF="javax/xml/rpc/Stub.html#_getPropertyNames()"><B>_getPropertyNames()</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Returns an <code>Iterator</code> view of the names of the properties
 that can be configured on this stub instance.
<DT><A HREF="org/apache/axis/client/Stub.html#_getPropertyNames()"><B>_getPropertyNames()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Return the names of configurable properties for this stub class.
<DT><A HREF="org/apache/axis/client/Stub.html#_getService()"><B>_getService()</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Provide access to the service object.
<DT><A HREF="org/apache/axis/AxisEngine.html#_hasSafePassword"><B>_hasSafePassword</B></A> - 
Variable in class org.apache.axis.<A HREF="org/apache/axis/AxisEngine.html" title="class in org.apache.axis">AxisEngine</A>
<DD>Has the user changed the password yet? True if they have.
<DT><A HREF="org/apache/axis/message/NodeImpl.html#_isDirty"><B>_isDirty</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/NodeImpl.html" title="class in org.apache.axis.message">NodeImpl</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/message/MessageElement.html#_isRoot"><B>_isRoot</B></A> - 
Variable in class org.apache.axis.message.<A HREF="org/apache/axis/message/MessageElement.html" title="class in org.apache.axis.message">MessageElement</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html#_read(byte[], int, int)"><B>_read(byte[], int, int)</B></A> - 
Method in class org.apache.axis.attachments.<A HREF="org/apache/axis/attachments/DimeDelimitedInputStream.html" title="class in org.apache.axis.attachments">DimeDelimitedInputStream</A>
<DD>&nbsp;
<DT><A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html#_roles"><B>_roles</B></A> - 
Variable in class org.apache.axis.handlers.<A HREF="org/apache/axis/handlers/HandlerInfoChainFactory.html" title="class in org.apache.axis.handlers">HandlerInfoChainFactory</A>
<DD>&nbsp;
<DT><A HREF="javax/xml/rpc/Stub.html#_setProperty(java.lang.String, java.lang.Object)"><B>_setProperty(String, Object)</B></A> - 
Method in interface javax.xml.rpc.<A HREF="javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc">Stub</A>
<DD>Sets the name and value of a configuration property
 for this Stub instance.
<DT><A HREF="org/apache/axis/client/Stub.html#_setProperty(java.lang.String, java.lang.Object)"><B>_setProperty(String, Object)</B></A> - 
Method in class org.apache.axis.client.<A HREF="org/apache/axis/client/Stub.html" title="class in org.apache.axis.client">Stub</A>
<DD>Sets the value for a named property.
<DT><A HREF="org/apache/axis/components/threadpool/ThreadPool.html#_shutdown"><B>_shutdown</B></A> - 
Variable in class org.apache.axis.components.threadpool.<A HREF="org/apache/axis/components/threadpool/ThreadPool.html" title="class in org.apache.axis.components.threadpool">ThreadPool</A>
<DD>&nbsp;
</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> 

<!-- ======= 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">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&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;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.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>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

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