<!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.5.0) on Wed May 21 13:06:53 EDT 2008 -->
<TITLE>
G-Index
</TITLE>


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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="G-Index";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</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=2 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;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-7.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 NAME="main"></A>
<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">Q</A> <A HREF="index-16.html">R</A> <A HREF="index-17.html">S</A> <A HREF="index-18.html">T</A> <A HREF="index-19.html">U</A> <A HREF="index-20.html">V</A> <A HREF="index-21.html">W</A> <A HREF="index-22.html">X</A> <HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html#get(java.lang.String)"><B>get(String)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticSeverity</A>
<DD>Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
 specified literal value.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html#get(int)"><B>get(int)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticSeverity</A>
<DD>Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
 specified integer value.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLConstants.html#getAttribute(org.w3c.dom.Element, java.lang.String)"><B>getAttribute(Element, String)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLConstants.html" title="class in org.eclipse.wst.wsdl.util">WSDLConstants</A>
<DD>Returns an attribute value given the attributeName in the element.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBinding()"><B>getBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Binding.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Binding</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBinding_EBindingOperations()"><B>getBinding_EBindingOperations()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Binding.html#getEBindingOperations()"><CODE><em>EBinding Operations</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBinding_EPortType()"><B>getBinding_EPortType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Binding.html#getEPortType()"><CODE><em>EPort Type</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBinding_QName()"><B>getBinding_QName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Binding.html#getQName()"><CODE><em>QName</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBinding_Undefined()"><B>getBinding_Undefined()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Binding.html#isUndefined()"><CODE><em>Undefined</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingFault()"><B>getBindingFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/BindingFault.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Binding Fault</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingFault_EFault()"><B>getBindingFault_EFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/BindingFault.html#getEFault()"><CODE><em>EFault</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingFault_Name()"><B>getBindingFault_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/BindingFault.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingInput()"><B>getBindingInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/BindingInput.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Binding Input</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingInput_EInput()"><B>getBindingInput_EInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/BindingInput.html#getEInput()"><CODE><em>EInput</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingInput_Name()"><B>getBindingInput_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/BindingInput.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation()"><B>getBindingOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Binding Operation</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation_EBindingFaults()"><B>getBindingOperation_EBindingFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingFaults()"><CODE><em>EBinding Faults</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation_EBindingInput()"><B>getBindingOperation_EBindingInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingInput()"><CODE><em>EBinding Input</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation_EBindingOutput()"><B>getBindingOperation_EBindingOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingOutput()"><CODE><em>EBinding Output</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation_EOperation()"><B>getBindingOperation_EOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEOperation()"><CODE><em>EOperation</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOperation_Name()"><B>getBindingOperation_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOutput()"><B>getBindingOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Binding Output</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOutput_EOutput()"><B>getBindingOutput_EOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html#getEOutput()"><CODE><em>EOutput</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getBindingOutput_Name()"><B>getBindingOutput_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html#getByName(java.lang.String)"><B>getByName(String)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticSeverity.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticSeverity</A>
<DD>Returns the '<em><b>Diagnostic Severity</b></em>' literal with the
 specified name.
<DT><A HREF="../org/eclipse/wst/wsdl/UnknownExtensibilityElement.html#getChildren()"><B>getChildren()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/UnknownExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl">UnknownExtensibilityElement</A>
<DD>Returns the value of the '<em><b>Children</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getColumn()"><B>getColumn()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html#getContainer()"><B>getContainer()</B></A> - 
Method in interface org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html" title="interface in org.eclipse.wst.wsdl.util">WSDLDiagnostic</A>
<DD>returns the Element where the error occurs
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getContainer()"><B>getContainer()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getContainer()"><B>getContainer()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html" title="interface in org.eclipse.wst.wsdl">WSDLElement</A>
<DD>Returns the value of the '<em><b>Container</b></em>' reference.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceImpl.html#getDefaultSaveOptions()"><B>getDefaultSaveOptions()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceImpl.html#getDefinition()"><B>getDefinition()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceImpl</A>
<DD>Returns the resource's Definition.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition()"><B>getDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Definition</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_EBindings()"><B>getDefinition_EBindings()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEBindings()"><CODE><em>EBindings</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_EImports()"><B>getDefinition_EImports()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEImports()"><CODE><em>EImports</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_EMessages()"><B>getDefinition_EMessages()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEMessages()"><CODE><em>EMessages</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_ENamespaces()"><B>getDefinition_ENamespaces()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getENamespaces()"><CODE><em>ENamespaces</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_Encoding()"><B>getDefinition_Encoding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEncoding()"><CODE><em>Encoding</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_EPortTypes()"><B>getDefinition_EPortTypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEPortTypes()"><CODE><em>EPort Types</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_EServices()"><B>getDefinition_EServices()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getEServices()"><CODE><em>EServices</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_ETypes()"><B>getDefinition_ETypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getETypes()"><CODE><em>ETypes</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_Location()"><B>getDefinition_Location()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getLocation()"><CODE><em>Location</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_QName()"><B>getDefinition_QName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getQName()"><CODE><em>QName</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDefinition_TargetNamespace()"><B>getDefinition_TargetNamespace()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Definition.html#getTargetNamespace()"><CODE><em>Target Namespace</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getDiagnostics()"><B>getDiagnostics()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Provides a collection with the diagnostics generated during parsing.
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getDocument()"><B>getDocument()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns a W3C DOM Document built from the input WSDL document.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getDocument()"><B>getDocument()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Provides the DOM document created by parsing the WSDL document.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getDocumentationElement()"><B>getDocumentationElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html" title="interface in org.eclipse.wst.wsdl">WSDLElement</A>
<DD>Returns the value of the '<em><b>Documentation Element</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDOMDocument()"><B>getDOMDocument()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for data type '<CODE><em>DOM Document</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getDOMElement()"><B>getDOMElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for data type '<CODE><em>DOM Element</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/Port.html#getEBinding()"><B>getEBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Port.html" title="interface in org.eclipse.wst.wsdl">Port</A>
<DD>Returns the value of the '<em><b>EBinding</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingFaults()"><B>getEBindingFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl">BindingOperation</A>
<DD>Returns the value of the '<em><b>EBinding Faults</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingInput()"><B>getEBindingInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl">BindingOperation</A>
<DD>Returns the value of the '<em><b>EBinding Input</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/Binding.html#getEBindingOperations()"><B>getEBindingOperations()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Binding.html" title="interface in org.eclipse.wst.wsdl">Binding</A>
<DD>Returns the value of the '<em><b>EBinding Operations</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEBindingOutput()"><B>getEBindingOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl">BindingOperation</A>
<DD>Returns the value of the '<em><b>EBinding Output</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEBindings()"><B>getEBindings()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>EBindings</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Import.html#getEDefinition()"><B>getEDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl">Import</A>
<DD>Returns the value of the '<em><b>EDefinition</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getEEncodingStyles()"><B>getEEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBody</A>
<DD>Returns the value of the '<em><b>EEncoding Styles</b></em>' attribute list.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEEncodingStyles()"><B>getEEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>EEncoding Styles</b></em>' attribute list.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html#getEExtensibilityElements()"><B>getEExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPart</A>
<DD>Returns the value of the '<em><b>EExtensibility Elements</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html#getEExtensibilityElements()"><B>getEExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html" title="interface in org.eclipse.wst.wsdl">ExtensibleElement</A>
<DD>Returns the value of the '<em><b>EExtensibility Elements</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingFault.html#getEFault()"><B>getEFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingFault.html" title="interface in org.eclipse.wst.wsdl">BindingFault</A>
<DD>Returns the value of the '<em><b>EFault</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getEFaults()"><B>getEFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>EFaults</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEImports()"><B>getEImports()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>EImports</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingInput.html#getEInput()"><B>getEInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingInput.html" title="interface in org.eclipse.wst.wsdl">BindingInput</A>
<DD>Returns the value of the '<em><b>EInput</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getEInput()"><B>getEInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>EInput</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getElement()"><B>getElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html" title="interface in org.eclipse.wst.wsdl">WSDLElement</A>
<DD>Returns the value of the '<em><b>Element</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getElementDeclaration()"><B>getElementDeclaration()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>Element Declaration</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getElementName()"><B>getElementName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>Element Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLConstants.html#getElementTag(int)"><B>getElementTag(int)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLConstants.html" title="class in org.eclipse.wst.wsdl.util">WSDLConstants</A>
<DD>Returns a String name of element tag given the nodeType.
<DT><A HREF="../org/eclipse/wst/wsdl/ExtensibilityElement.html#getElementType()"><B>getElementType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/ExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl">ExtensibilityElement</A>
<DD>Returns the value of the '<em><b>Element Type</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEMessage()"><B>getEMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>EMessage</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/MessageReference.html#getEMessage()"><B>getEMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/MessageReference.html" title="interface in org.eclipse.wst.wsdl">MessageReference</A>
<DD>Returns the value of the '<em><b>EMessage</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getEMessage()"><B>getEMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>EMessage</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEMessages()"><B>getEMessages()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>EMessages</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html#getEMIMEPart()"><B>getEMIMEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEMultipartRelated</A>
<DD>Returns the value of the '<em><b>EMIME Part</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getENamespaces()"><B>getENamespaces()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>ENamespaces</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getEnclosingDefinition()"><B>getEnclosingDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html" title="interface in org.eclipse.wst.wsdl">WSDLElement</A>
<DD>Returns the Definition that contains this WSDL element.
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>Encoding</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getEncoding()"><B>getEncoding()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEncodingStyles()"><B>getEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getEndColumn(org.w3c.dom.Node)"><B>getEndColumn(Node)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Returns the column at which the given node ends.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getEndLine(org.w3c.dom.Node)"><B>getEndLine(Node)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Returns the line at which the given node ends.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getEOperation()"><B>getEOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl">BindingOperation</A>
<DD>Returns the value of the '<em><b>EOperation</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/PortType.html#getEOperations()"><B>getEOperations()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/PortType.html" title="interface in org.eclipse.wst.wsdl">PortType</A>
<DD>Returns the value of the '<em><b>EOperations</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOutput.html#getEOutput()"><B>getEOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html" title="interface in org.eclipse.wst.wsdl">BindingOutput</A>
<DD>Returns the value of the '<em><b>EOutput</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getEOutput()"><B>getEOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>EOutput</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getEParameterOrdering()"><B>getEParameterOrdering()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>EParameter Ordering</b></em>' reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html#getEPart()"><B>getEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEContent</A>
<DD>Returns the value of the '<em><b>EPart</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html#getEPart()"><B>getEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEMimeXml</A>
<DD>Returns the value of the '<em><b>EPart</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEPart()"><B>getEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>EPart</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getEParts()"><B>getEParts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBody</A>
<DD>Returns the value of the '<em><b>EParts</b></em>' reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Message.html#getEParts()"><B>getEParts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Message.html" title="interface in org.eclipse.wst.wsdl">Message</A>
<DD>Returns the value of the '<em><b>EParts</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Service.html#getEPorts()"><B>getEPorts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Service.html" title="interface in org.eclipse.wst.wsdl">Service</A>
<DD>Returns the value of the '<em><b>EPorts</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Binding.html#getEPortType()"><B>getEPortType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Binding.html" title="interface in org.eclipse.wst.wsdl">Binding</A>
<DD>Returns the value of the '<em><b>EPort Type</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEPortTypes()"><B>getEPortTypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>EPort Types</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Import.html#getESchema()"><B>getESchema()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl">Import</A>
<DD>Returns the value of the '<em><b>ESchema</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getEServices()"><B>getEServices()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>EServices</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getETypes()"><B>getETypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>ETypes</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getExtensibilityElement()"><B>getExtensibilityElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/ExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Extensibility Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getExtensibilityElement_ElementType()"><B>getExtensibilityElement_ElementType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/ExtensibilityElement.html#getElementType()"><CODE><em>Element Type</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getExtensibilityElement_Required()"><B>getExtensibilityElement_Required()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/ExtensibilityElement.html#isRequired()"><CODE><em>Required</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html#getExtensibilityElementFactory(java.lang.String)"><B>getExtensibilityElementFactory(String)</B></A> - 
Method in class org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html" title="class in org.eclipse.wst.wsdl">WSDLPlugin</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html#getExtensibilityElementFactoryRegistry()"><B>getExtensibilityElementFactoryRegistry()</B></A> - 
Method in class org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html" title="class in org.eclipse.wst.wsdl">WSDLPlugin</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html#getExtensibilityElements()"><B>getExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPart</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html#getExtensibilityElements()"><B>getExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html" title="interface in org.eclipse.wst.wsdl">ExtensibleElement</A>
<DD>This method is same as getEExtensibilityElements() and compatible with the JWSDL API.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getExtensibleElement()"><B>getExtensibleElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Extensible Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getExtensibleElement_EExtensibilityElements()"><B>getExtensibleElement_EExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/ExtensibleElement.html#getEExtensibilityElements()"><CODE><em>EExtensibility Elements</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html#getExtensionToFactoryMap()"><B>getExtensionToFactoryMap()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceFactoryRegistry</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html#getFactory(URI)"><B>getFactory(URI)</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceFactoryRegistry</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html#getFactory(URI, java.lang.String)"><B>getFactory(URI, String)</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceFactoryRegistry</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/BindingFault.html#getFault()"><B>getFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingFault.html" title="interface in org.eclipse.wst.wsdl">BindingFault</A>
<DD>This method is same as getEFault() and compatible with the JWSDL API.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getFault()"><B>getFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Fault.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Fault</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeader.html#getHeaderFaults()"><B>getHeaderFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeader.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeader</A>
<DD>Returns the value of the '<em><b>Header Faults</b></em>' containment reference list.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPAddress()"><B>getHTTPAddress()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPAddress.html" title="interface in org.eclipse.wst.wsdl.binding.http"><CODE><em>Address</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPAddress_LocationURI()"><B>getHTTPAddress_LocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPAddress.html#getLocationURI()"><CODE><em>Location URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPBinding()"><B>getHTTPBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPBinding.html" title="interface in org.eclipse.wst.wsdl.binding.http"><CODE><em>Binding</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPBinding_Verb()"><B>getHTTPBinding_Verb()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPBinding.html#getVerb()"><CODE><em>Verb</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPFactory()"><B>getHTTPFactory()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the factory that creates the instances of the model
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPOperation()"><B>getHTTPOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPOperation.html" title="interface in org.eclipse.wst.wsdl.binding.http"><CODE><em>Operation</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPOperation_LocationURI()"><B>getHTTPOperation_LocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPOperation.html#getLocationURI()"><CODE><em>Location URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPFactory.html#getHTTPPackage()"><B>getHTTPPackage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPFactory.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPFactory</A>
<DD>Returns the package supported by this factory
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPUrlEncoded()"><B>getHTTPUrlEncoded()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPUrlEncoded.html" title="interface in org.eclipse.wst.wsdl.binding.http"><CODE><em>Url Encoded</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getHTTPUrlReplacement()"><B>getHTTPUrlReplacement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPUrlReplacement.html" title="interface in org.eclipse.wst.wsdl.binding.http"><CODE><em>Url Replacement</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIBinding()"><B>getIBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IBinding</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIBindingFault()"><B>getIBindingFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IBinding Fault</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIBindingInput()"><B>getIBindingInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IBinding Input</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIBindingOperation()"><B>getIBindingOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IBinding Operation</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIBindingOutput()"><B>getIBindingOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IBinding Output</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIDefinition()"><B>getIDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IDefinition</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIExtensibilityElement()"><B>getIExtensibilityElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IExtensibility Element</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIExtensionRegistry()"><B>getIExtensionRegistry()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IExtension Registry</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIFault()"><B>getIFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IFault</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getIHTTPAddress()"><B>getIHTTPAddress()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<CODE><em>IHTTP Address</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getIHTTPBinding()"><B>getIHTTPBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<CODE><em>IHTTP Binding</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getIHTTPOperation()"><B>getIHTTPOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<CODE><em>IHTTP Operation</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getIHTTPUrlEncoded()"><B>getIHTTPUrlEncoded()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<CODE><em>IHTTP Url Encoded</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html#getIHTTPUrlReplacement()"><B>getIHTTPUrlReplacement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPPackage</A>
<DD>Returns the meta object for class '<CODE><em>IHTTP Url Replacement</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIImport()"><B>getIImport()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IImport</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIInput()"><B>getIInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IInput</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIIterator()"><B>getIIterator()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IIterator</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIList()"><B>getIList()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IList</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIMap()"><B>getIMap()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMap</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIMessage()"><B>getIMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMessage</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getIMIMEContent()"><B>getIMIMEContent()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMIME Content</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getIMIMEMimeXml()"><B>getIMIMEMimeXml()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMIME Mime Xml</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getIMIMEMultipartRelated()"><B>getIMIMEMultipartRelated()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMIME Multipart Related</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getIMIMEPart()"><B>getIMIMEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<CODE><em>IMIME Part</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getImport()"><B>getImport()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Import</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getImport_EDefinition()"><B>getImport_EDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Import.html#getEDefinition()"><CODE><em>EDefinition</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getImport_ESchema()"><B>getImport_ESchema()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Import.html#getESchema()"><CODE><em>ESchema</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getImport_LocationURI()"><B>getImport_LocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Import.html#getLocationURI()"><CODE><em>Location URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getImport_NamespaceURI()"><B>getImport_NamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Import.html#getNamespaceURI()"><CODE><em>Namespace URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/BindingInput.html#getInput()"><B>getInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingInput.html" title="interface in org.eclipse.wst.wsdl">BindingInput</A>
<DD>This method is same as getEInput() and compatible with the JWSDL API.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getInput()"><B>getInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Input.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Input</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIOperation()"><B>getIOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IOperation</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIOutput()"><B>getIOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IOutput</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIPart()"><B>getIPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IPart</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIPort()"><B>getIPort()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IPort</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIPortType()"><B>getIPortType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IPort Type</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIService()"><B>getIService()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IService</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPAddress()"><B>getISOAPAddress()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Address</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPBinding()"><B>getISOAPBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Binding</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPBody()"><B>getISOAPBody()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Body</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPFault()"><B>getISOAPFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Fault</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPHeader()"><B>getISOAPHeader()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Header</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPHeaderFault()"><B>getISOAPHeaderFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Header Fault</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getISOAPOperation()"><B>getISOAPOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<CODE><em>ISOAP Operation</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getIString()"><B>getIString()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for data type '<CODE><em>IString</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getITypes()"><B>getITypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>ITypes</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getIURL()"><B>getIURL()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<CODE><em>IURL</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html#getKey()"><B>getKey()</B></A> - 
Method in interface org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html" title="interface in org.eclipse.wst.wsdl.util">WSDLDiagnostic</A>
<DD>Gets the original message key.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getKey()"><B>getKey()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getLine()"><B>getLine()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getList()"><B>getList()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for data type '<CODE><em>List</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getLocation()"><B>getLocation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>Location</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getLocation()"><B>getLocation()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPAddress.html#getLocationURI()"><B>getLocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPAddress.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPAddress</A>
<DD>Returns the value of the '<em><b>Location URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPOperation.html#getLocationURI()"><B>getLocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPOperation.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPOperation</A>
<DD>Returns the value of the '<em><b>Location URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPAddress.html#getLocationURI()"><B>getLocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPAddress.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPAddress</A>
<DD>Returns the value of the '<em><b>Location URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Import.html#getLocationURI()"><B>getLocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl">Import</A>
<DD>Returns the value of the '<em><b>Location URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getMessage()"><B>getMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>Message</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getMessage()"><B>getMessage()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessage()"><B>getMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Message.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Message</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessage_EParts()"><B>getMessage_EParts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Message.html#getEParts()"><CODE><em>EParts</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessage_QName()"><B>getMessage_QName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Message.html#getQName()"><CODE><em>QName</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessage_Undefined()"><B>getMessage_Undefined()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Message.html#isUndefined()"><CODE><em>Undefined</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessageReference()"><B>getMessageReference()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/MessageReference.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Message Reference</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessageReference_EMessage()"><B>getMessageReference_EMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/MessageReference.html#getEMessage()"><CODE><em>EMessage</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getMessageReference_Name()"><B>getMessageReference_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/MessageReference.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEContent()"><B>getMIMEContent()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html" title="interface in org.eclipse.wst.wsdl.binding.mime"><CODE><em>Content</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEContent_EPart()"><B>getMIMEContent_EPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html#getEPart()"><CODE><em>EPart</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEContent_Type()"><B>getMIMEContent_Type()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html#getType()"><CODE><em>Type</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEFactory()"><B>getMIMEFactory()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the factory that creates the instances of the model
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEMimeXml()"><B>getMIMEMimeXml()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html" title="interface in org.eclipse.wst.wsdl.binding.mime"><CODE><em>Mime Xml</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEMimeXml_EPart()"><B>getMIMEMimeXml_EPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html#getEPart()"><CODE><em>EPart</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEMultipartRelated()"><B>getMIMEMultipartRelated()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html" title="interface in org.eclipse.wst.wsdl.binding.mime"><CODE><em>Multipart Related</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEMultipartRelated_EMIMEPart()"><B>getMIMEMultipartRelated_EMIMEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html#getEMIMEPart()"><CODE><em>EMIME Part</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEFactory.html#getMIMEPackage()"><B>getMIMEPackage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEFactory.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEFactory</A>
<DD>Returns the package supported by this factory
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEPart()"><B>getMIMEPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html" title="interface in org.eclipse.wst.wsdl.binding.mime"><CODE><em>Part</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html#getMIMEPart_EExtensibilityElements()"><B>getMIMEPart_EExtensibilityElements()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPackage.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEPart.html#getEExtensibilityElements()"><CODE><em>EExtensibility Elements</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html#getMIMEParts()"><B>getMIMEParts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMultipartRelated.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEMultipartRelated</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPFault</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/BindingFault.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingFault.html" title="interface in org.eclipse.wst.wsdl">BindingFault</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/BindingInput.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingInput.html" title="interface in org.eclipse.wst.wsdl">BindingInput</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOperation.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOperation.html" title="interface in org.eclipse.wst.wsdl">BindingOperation</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOutput.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html" title="interface in org.eclipse.wst.wsdl">BindingOutput</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/MessageReference.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/MessageReference.html" title="interface in org.eclipse.wst.wsdl">MessageReference</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Port.html#getName()"><B>getName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Port.html" title="interface in org.eclipse.wst.wsdl">Port</A>
<DD>Returns the value of the '<em><b>Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getNamespace()"><B>getNamespace()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Namespace.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Namespace</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getNamespace_Prefix()"><B>getNamespace_Prefix()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Namespace.html#getPrefix()"><CODE><em>Prefix</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getNamespace_URI()"><B>getNamespace_URI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Namespace.html#getURI()"><CODE><em>URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBody</A>
<DD>Returns the value of the '<em><b>Namespace URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPFault</A>
<DD>Returns the value of the '<em><b>Namespace URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>Namespace URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Import.html#getNamespaceURI()"><B>getNamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl">Import</A>
<DD>Returns the value of the '<em><b>Namespace URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html#getNode()"><B>getNode()</B></A> - 
Method in interface org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html" title="interface in org.eclipse.wst.wsdl.util">WSDLDiagnostic</A>
<DD>Gets the DOM Node where the error occurs
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getNode()"><B>getNode()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation()"><B>getOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Operation</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_EFaults()"><B>getOperation_EFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getEFaults()"><CODE><em>EFaults</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_EInput()"><B>getOperation_EInput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getEInput()"><CODE><em>EInput</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_EOutput()"><B>getOperation_EOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getEOutput()"><CODE><em>EOutput</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_EParameterOrdering()"><B>getOperation_EParameterOrdering()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference list '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getEParameterOrdering()"><CODE><em>EParameter Ordering</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_Name()"><B>getOperation_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_Style()"><B>getOperation_Style()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Operation.html#getStyle()"><CODE><em>Style</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperation_Undefined()"><B>getOperation_Undefined()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Operation.html#isUndefined()"><CODE><em>Undefined</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOperationType()"><B>getOperationType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for data type '<CODE><em>Operation Type</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/BindingOutput.html#getOutput()"><B>getOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/BindingOutput.html" title="interface in org.eclipse.wst.wsdl">BindingOutput</A>
<DD>This method is same as getEOutput() and compatible with the JWSDL API.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getOutput()"><B>getOutput()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Output.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Output</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html#getPart()"><B>getPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEContent</A>
<DD>
 If the meaning of the '<em>Part</em>' reference isn't clear,
 there really should be more of a description here...
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html#getPart()"><B>getPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEMimeXml.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEMimeXml</A>
<DD>
 If the meaning of the '<em>Part</em>' reference isn't clear,
 there really should be more of a description here...
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getPart()"><B>getPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>Part</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart()"><B>getPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Part</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_ElementDeclaration()"><B>getPart_ElementDeclaration()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Part.html#getElementDeclaration()"><CODE><em>Element Declaration</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_ElementName()"><B>getPart_ElementName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Part.html#getElementName()"><CODE><em>Element Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_EMessage()"><B>getPart_EMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Part.html#getEMessage()"><CODE><em>EMessage</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_Name()"><B>getPart_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Part.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_TypeDefinition()"><B>getPart_TypeDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Part.html#getTypeDefinition()"><CODE><em>Type Definition</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPart_TypeName()"><B>getPart_TypeName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Part.html#getTypeName()"><CODE><em>Type Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html#getPlugin()"><B>getPlugin()</B></A> - 
Static method in class org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html" title="class in org.eclipse.wst.wsdl">WSDLPlugin</A>
<DD>Returns the singleton instance of the Eclipse plugin.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html#getPluginResourceLocator()"><B>getPluginResourceLocator()</B></A> - 
Method in class org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPlugin.html" title="class in org.eclipse.wst.wsdl">WSDLPlugin</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPort()"><B>getPort()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Port.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Port</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPort_EBinding()"><B>getPort_EBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/Port.html#getEBinding()"><CODE><em>EBinding</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPort_Name()"><B>getPort_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Port.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPortType()"><B>getPortType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/PortType.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Port Type</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPortType_EOperations()"><B>getPortType_EOperations()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/PortType.html#getEOperations()"><CODE><em>EOperations</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPortType_QName()"><B>getPortType_QName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/PortType.html#getQName()"><CODE><em>QName</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getPortType_Undefined()"><B>getPortType_Undefined()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/PortType.html#isUndefined()"><CODE><em>Undefined</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/Namespace.html#getPrefix()"><B>getPrefix()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Namespace.html" title="interface in org.eclipse.wst.wsdl">Namespace</A>
<DD>Returns the value of the '<em><b>Prefix</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html#getProtocolToFactoryMap()"><B>getProtocolToFactoryMap()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLResourceFactoryRegistry.html" title="class in org.eclipse.wst.wsdl.util">WSDLResourceFactoryRegistry</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/Binding.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Binding.html" title="interface in org.eclipse.wst.wsdl">Binding</A>
<DD>Returns the value of the '<em><b>QName</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>QName</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Message.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Message.html" title="interface in org.eclipse.wst.wsdl">Message</A>
<DD>Returns the value of the '<em><b>QName</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/PortType.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/PortType.html" title="interface in org.eclipse.wst.wsdl">PortType</A>
<DD>Returns the value of the '<em><b>QName</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Service.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Service.html" title="interface in org.eclipse.wst.wsdl">Service</A>
<DD>Returns the value of the '<em><b>QName</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getQName()"><B>getQName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for data type '<CODE><em>QName</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/Import.html#getSchema()"><B>getSchema()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Import.html" title="interface in org.eclipse.wst.wsdl">Import</A>
<DD>This method is same as getESchema().
<DT><A HREF="../org/eclipse/wst/wsdl/XSDSchemaExtensibilityElement.html#getSchema()"><B>getSchema()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/XSDSchemaExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl">XSDSchemaExtensibilityElement</A>
<DD>Returns the value of the '<em><b>Schema</b></em>' containment reference
<DT><A HREF="../org/eclipse/wst/wsdl/Types.html#getSchemas()"><B>getSchemas()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Types.html" title="interface in org.eclipse.wst.wsdl">Types</A>
<DD>Returns a List of inline XSDSchema instances in this Types.
<DT><A HREF="../org/eclipse/wst/wsdl/Types.html#getSchemas(java.lang.String)"><B>getSchemas(String)</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Types.html" title="interface in org.eclipse.wst.wsdl">Types</A>
<DD>Returns a List of inline XSDSchema instances in this Types.
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getService()"><B>getService()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Service.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Service</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getService_EPorts()"><B>getService_EPorts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/Service.html#getEPorts()"><CODE><em>EPorts</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getService_QName()"><B>getService_QName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Service.html#getQName()"><CODE><em>QName</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getService_Undefined()"><B>getService_Undefined()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/Service.html#isUndefined()"><CODE><em>Undefined</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html#getSeverity()"><B>getSeverity()</B></A> - 
Method in interface org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html" title="interface in org.eclipse.wst.wsdl.util">WSDLDiagnostic</A>
<DD>Provides this diagnostic's severity.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getSeverity()"><B>getSeverity()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html#getSoapActionURI()"><B>getSoapActionURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPOperation</A>
<DD>Returns the value of the '<em><b>Soap Action URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPAddress()"><B>getSOAPAddress()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPAddress.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Address</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPAddress_LocationURI()"><B>getSOAPAddress_LocationURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPAddress.html#getLocationURI()"><CODE><em>Location URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBinding()"><B>getSOAPBinding()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Binding</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBinding_Style()"><B>getSOAPBinding_Style()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html#getStyle()"><CODE><em>Style</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBinding_TransportURI()"><B>getSOAPBinding_TransportURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html#getTransportURI()"><CODE><em>Transport URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBody()"><B>getSOAPBody()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Body</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBody_EEncodingStyles()"><B>getSOAPBody_EEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute list '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getEEncodingStyles()"><CODE><em>EEncoding Styles</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBody_EParts()"><B>getSOAPBody_EParts()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the reference list '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getEParts()"><CODE><em>EParts</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBody_NamespaceURI()"><B>getSOAPBody_NamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getNamespaceURI()"><CODE><em>Namespace URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPBody_Use()"><B>getSOAPBody_Use()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getUse()"><CODE><em>Use</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFactory()"><B>getSOAPFactory()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the factory that creates the instances of the model
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFault()"><B>getSOAPFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Fault</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFault_EEncodingStyles()"><B>getSOAPFault_EEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute list '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>EEncoding Styles</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFault_Name()"><B>getSOAPFault_Name()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getName()"><CODE><em>Name</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFault_NamespaceURI()"><B>getSOAPFault_NamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getNamespaceURI()"><CODE><em>Namespace URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPFault_Use()"><B>getSOAPFault_Use()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getUse()"><CODE><em>Use</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeader()"><B>getSOAPHeader()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeader.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Header</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeader_HeaderFaults()"><B>getSOAPHeader_HeaderFaults()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeader.html#getHeaderFaults()"><CODE><em>Header Faults</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase()"><B>getSOAPHeaderBase()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Header Base</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_EEncodingStyles()"><B>getSOAPHeaderBase_EEncodingStyles()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute list '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEEncodingStyles()"><CODE><em>EEncoding Styles</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_EMessage()"><B>getSOAPHeaderBase_EMessage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEMessage()"><CODE><em>EMessage</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_EPart()"><B>getSOAPHeaderBase_EPart()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the reference '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getEPart()"><CODE><em>EPart</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_Message()"><B>getSOAPHeaderBase_Message()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getMessage()"><CODE><em>Message</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_NamespaceURI()"><B>getSOAPHeaderBase_NamespaceURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getNamespaceURI()"><CODE><em>Namespace URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_Part()"><B>getSOAPHeaderBase_Part()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getPart()"><CODE><em>Part</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderBase_Use()"><B>getSOAPHeaderBase_Use()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getUse()"><CODE><em>Use</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPHeaderFault()"><B>getSOAPHeaderFault()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Header Fault</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPOperation()"><B>getSOAPOperation()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html" title="interface in org.eclipse.wst.wsdl.binding.soap"><CODE><em>Operation</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPOperation_SoapActionURI()"><B>getSOAPOperation_SoapActionURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html#getSoapActionURI()"><CODE><em>Soap Action URI</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html#getSOAPOperation_Style()"><B>getSOAPOperation_Style()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPPackage.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html#getStyle()"><CODE><em>Style</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFactory.html#getSOAPPackage()"><B>getSOAPPackage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFactory.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPFactory</A>
<DD>Returns the package supported by this factory
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getStartColumn(org.w3c.dom.Node)"><B>getStartColumn(Node)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Returns the column at which the given node starts.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getStartLine(org.w3c.dom.Node)"><B>getStartLine(Node)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Returns the line at which the given node starts.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html#getStyle()"><B>getStyle()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBinding</A>
<DD>Returns the value of the '<em><b>Style</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html#getStyle()"><B>getStyle()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPOperation.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPOperation</A>
<DD>Returns the value of the '<em><b>Style</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Operation.html#getStyle()"><B>getStyle()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Operation.html" title="interface in org.eclipse.wst.wsdl">Operation</A>
<DD>Returns the value of the '<em><b>Style</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html#getSubstitutions()"><B>getSubstitutions()</B></A> - 
Method in interface org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnostic.html" title="interface in org.eclipse.wst.wsdl.util">WSDLDiagnostic</A>
<DD>Returns a list with the original message parameters as Strings.
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html#getSubstitutions()"><B>getSubstitutions()</B></A> - 
Method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLDiagnosticImpl.html" title="class in org.eclipse.wst.wsdl.util">WSDLDiagnosticImpl</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/wsdl/Definition.html#getTargetNamespace()"><B>getTargetNamespace()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Definition.html" title="interface in org.eclipse.wst.wsdl">Definition</A>
<DD>Returns the value of the '<em><b>Target Namespace</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html#getTransportURI()"><B>getTransportURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBinding.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBinding</A>
<DD>Returns the value of the '<em><b>Transport URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html#getType()"><B>getType()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.mime.<A HREF="../org/eclipse/wst/wsdl/binding/mime/MIMEContent.html" title="interface in org.eclipse.wst.wsdl.binding.mime">MIMEContent</A>
<DD>Returns the value of the '<em><b>Type</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getTypeDefinition()"><B>getTypeDefinition()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>Type Definition</b></em>' reference
<DT><A HREF="../org/eclipse/wst/wsdl/Part.html#getTypeName()"><B>getTypeName()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Part.html" title="interface in org.eclipse.wst.wsdl">Part</A>
<DD>Returns the value of the '<em><b>Type Name</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getTypes()"><B>getTypes()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/Types.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Types</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getUnknownExtensibilityElement()"><B>getUnknownExtensibilityElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/UnknownExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Unknown Extensibility Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getUnknownExtensibilityElement_Children()"><B>getUnknownExtensibilityElement_Children()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference list '<A HREF="../org/eclipse/wst/wsdl/UnknownExtensibilityElement.html#getChildren()"><CODE><em>Children</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/Namespace.html#getURI()"><B>getURI()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/Namespace.html" title="interface in org.eclipse.wst.wsdl">Namespace</A>
<DD>Returns the value of the '<em><b>URI</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html#getUse()"><B>getUse()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPBody.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPBody</A>
<DD>Returns the value of the '<em><b>Use</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html#getUse()"><B>getUse()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPFault.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPFault</A>
<DD>Returns the value of the '<em><b>Use</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html#getUse()"><B>getUse()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.soap.<A HREF="../org/eclipse/wst/wsdl/binding/soap/SOAPHeaderBase.html" title="interface in org.eclipse.wst.wsdl.binding.soap">SOAPHeaderBase</A>
<DD>Returns the value of the '<em><b>Use</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html#getUserData(org.w3c.dom.Node)"><B>getUserData(Node)</B></A> - 
Static method in class org.eclipse.wst.wsdl.util.<A HREF="../org/eclipse/wst/wsdl/util/WSDLParser.html" title="class in org.eclipse.wst.wsdl.util">WSDLParser</A>
<DD>Returns the user data associated with the node.
<DT><A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPBinding.html#getVerb()"><B>getVerb()</B></A> - 
Method in interface org.eclipse.wst.wsdl.binding.http.<A HREF="../org/eclipse/wst/wsdl/binding/http/HTTPBinding.html" title="interface in org.eclipse.wst.wsdl.binding.http">HTTPBinding</A>
<DD>Returns the value of the '<em><b>Verb</b></em>' attribute
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getWSDLElement()"><B>getWSDLElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getWSDLElement_DocumentationElement()"><B>getWSDLElement_DocumentationElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getDocumentationElement()"><CODE><em>Documentation Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getWSDLElement_Element()"><B>getWSDLElement_Element()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the attribute '<A HREF="../org/eclipse/wst/wsdl/WSDLElement.html#getElement()"><CODE><em>Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getWSDLException()"><B>getWSDLException()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for data type '<CODE><em>Exception</em></CODE>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getWSDLFactory()"><B>getWSDLFactory()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the factory that creates the instances of the model
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLFactory.html#getWSDLPackage()"><B>getWSDLPackage()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLFactory.html" title="interface in org.eclipse.wst.wsdl">WSDLFactory</A>
<DD>Returns the package supported by this factory
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getXSDSchemaExtensibilityElement()"><B>getXSDSchemaExtensibilityElement()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for class '<A HREF="../org/eclipse/wst/wsdl/XSDSchemaExtensibilityElement.html" title="interface in org.eclipse.wst.wsdl"><CODE><em>XSD Schema Extensibility Element</em></CODE></A>'
<DT><A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html#getXSDSchemaExtensibilityElement_Schema()"><B>getXSDSchemaExtensibilityElement_Schema()</B></A> - 
Method in interface org.eclipse.wst.wsdl.<A HREF="../org/eclipse/wst/wsdl/WSDLPackage.html" title="interface in org.eclipse.wst.wsdl">WSDLPackage</A>
<DD>Returns the meta object for the containment reference '<A HREF="../org/eclipse/wst/wsdl/XSDSchemaExtensibilityElement.html#getSchema()"><CODE><em>Schema</em></CODE></A>'
</DL>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 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;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-7.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 ======= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">H</A> <A HREF="index-9.html">I</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">Q</A> <A HREF="index-16.html">R</A> <A HREF="index-17.html">S</A> <A HREF="index-18.html">T</A> <A HREF="index-19.html">U</A> <A HREF="index-20.html">V</A> <A HREF="index-21.html">W</A> <A HREF="index-22.html">X</A> <HR>

</BODY>
</HTML>
