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

<META NAME="keywords" CONTENT="org.apache.axis.wsdl.symbolTable.Utils class">

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

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

</HEAD>

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


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

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

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

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis.wsdl.symbolTable</FONT>
<BR>
Class Utils</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.wsdl.symbolTable.Utils</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/axis/wsdl/toJava/Utils.html" title="class in org.apache.axis.wsdl.toJava">Utils</A></DD>
</DL>
<HR>
<DL>
<DT>public class <B>Utils</B><DT>extends java.lang.Object</DL>

<P>
This class contains static utility methods for the emitter.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Rich Scheuerle  (scheu@us.ibm.com), Tom Jordahl (tomj@macromedia.com)</DD>
</DL>
<HR>

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


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


<!-- ======== CONSTRUCTOR SUMMARY ======== -->

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

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

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#genQNameAttributeString(javax.xml.namespace.QName, java.lang.String)">genQNameAttributeString</A></B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                        java.lang.String&nbsp;prefix)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate an XML prefixed attribute value with a corresponding xmlns
 declaration for the prefix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#genQNameAttributeStringWithLastLocalPart(javax.xml.namespace.QName, java.lang.String)">genQNameAttributeStringWithLastLocalPart</A></B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                                         java.lang.String&nbsp;prefix)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getAttribute(org.w3c.dom.Node, java.lang.String)">getAttribute</A></B>(org.w3c.dom.Node&nbsp;node,
             java.lang.String&nbsp;attr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given a node, return the value of the given attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getAttributesWithLocalName(org.w3c.dom.Node, java.lang.String)">getAttributesWithLocalName</A></B>(org.w3c.dom.Node&nbsp;node,
                           java.lang.String&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given a node, return the attributes that have the specified local name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.util.HashSet</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getDerivedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)">getDerivedTypes</A></B>(<A HREF="../../../../../org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>&nbsp;type,
                <A HREF="../../../../../org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>&nbsp;symbolTable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method returns a set of all types that are derived
 from this type via an extension of a complexType</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getLastLocalPart(java.lang.String)">getLastLocalPart</A></B>(java.lang.String&nbsp;localPart)</CODE>

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

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method getMemberTypeQNames</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;java.util.HashSet</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getNestedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable, boolean)">getNestedTypes</A></B>(<A HREF="../../../../../org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>&nbsp;type,
               <A HREF="../../../../../org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>&nbsp;symbolTable,
               boolean&nbsp;derivedFlag)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method returns a set of all the nested types.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getNodeNameQName(org.w3c.dom.Node)">getNodeNameQName</A></B>(org.w3c.dom.Node&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XML nodes may have a name attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getNodeQName(org.w3c.dom.Node)">getNodeQName</A></B>(org.w3c.dom.Node&nbsp;node)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An xml element may have a name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getQNameFromPrefixedName(org.w3c.dom.Node, java.lang.String)">getQNameFromPrefixedName</A></B>(org.w3c.dom.Node&nbsp;node,
                         java.lang.String&nbsp;prefixedName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a prefixed name into a qname</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getScopedAttribute(org.w3c.dom.Node, java.lang.String)">getScopedAttribute</A></B>(org.w3c.dom.Node&nbsp;node,
                   java.lang.String&nbsp;attr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given a node, return the value of the given attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/axis/wsdl/symbolTable/Utils.html#getTypeQName(org.w3c.dom.Node, javax.xml.rpc.holders.BooleanHolder, boolean)">getTypeQName</A></B>(org.w3c.dom.Node&nbsp;node,
             <A HREF="../../../../../javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>&nbsp;forElement,
             boolean&nbsp;ignoreMaxOccurs)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An XML element or attribute node has several ways of
 identifying the type of the element or attribute:
 - use the type attribute to reference a complexType/simpleType
 - use the ref attribute to reference another element, group or attributeGroup
 - use of an anonymous type (i.e.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

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


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

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

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

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

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

<A NAME="getScopedAttribute(org.w3c.dom.Node, java.lang.String)"><!-- --></A><H3>
getScopedAttribute</H3>
<PRE>
public static java.lang.String <B>getScopedAttribute</B>(org.w3c.dom.Node&nbsp;node,
                                                  java.lang.String&nbsp;attr)</PRE>
<DL>
<DD>Given a node, return the value of the given attribute.
 If the attribute does not exist, searching continues through ancestor nodes until found.
 This method is useful for finding attributes that pertain to a group of contained
 nodes (i.e. xlmns, xmlns:tns, targetNamespace, name)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - <DD><CODE>attr</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getAttribute(org.w3c.dom.Node, java.lang.String)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public static java.lang.String <B>getAttribute</B>(org.w3c.dom.Node&nbsp;node,
                                            java.lang.String&nbsp;attr)</PRE>
<DL>
<DD>Given a node, return the value of the given attribute.
 Returns null if the attribute is not found
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - <DD><CODE>attr</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getAttributesWithLocalName(org.w3c.dom.Node, java.lang.String)"><!-- --></A><H3>
getAttributesWithLocalName</H3>
<PRE>
public static java.util.Vector <B>getAttributesWithLocalName</B>(org.w3c.dom.Node&nbsp;node,
                                                          java.lang.String&nbsp;localName)</PRE>
<DL>
<DD>Given a node, return the attributes that have the specified local name.
 Returns null if the attribute is not found
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - <DD><CODE>localName</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getNodeQName(org.w3c.dom.Node)"><!-- --></A><H3>
getNodeQName</H3>
<PRE>
public static <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getNodeQName</B>(org.w3c.dom.Node&nbsp;node)</PRE>
<DL>
<DD>An xml element may have a name.
 For example &lt.element name="foo" type="b:bar"&gt.
 has the name "element".  This routine gets the full QName of the element.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getNodeNameQName(org.w3c.dom.Node)"><!-- --></A><H3>
getNodeNameQName</H3>
<PRE>
public static <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getNodeNameQName</B>(org.w3c.dom.Node&nbsp;node)</PRE>
<DL>
<DD>XML nodes may have a name attribute.
 For example &lt.element name="foo" type="b:bar"&gt.
 has the name attribute value "foo".  This routine gets the QName of the name attribute value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getTypeQName(org.w3c.dom.Node, javax.xml.rpc.holders.BooleanHolder, boolean)"><!-- --></A><H3>
getTypeQName</H3>
<PRE>
public static <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getTypeQName</B>(org.w3c.dom.Node&nbsp;node,
                                 <A HREF="../../../../../javax/xml/rpc/holders/BooleanHolder.html" title="class in javax.xml.rpc.holders">BooleanHolder</A>&nbsp;forElement,
                                 boolean&nbsp;ignoreMaxOccurs)</PRE>
<DL>
<DD>An XML element or attribute node has several ways of
 identifying the type of the element or attribute:
 - use the type attribute to reference a complexType/simpleType
 - use the ref attribute to reference another element, group or attributeGroup
 - use of an anonymous type (i.e. a nested type underneath itself)
 - a wsdl:part can use the element attribute.
 - an extension can use the base attribute.
 <p/>
 This routine returns a QName representing this "type".
 The forElement value is also returned to indicate whether the
 QName represents an element (i.e. obtained using the ref attribute)
 or a type.
 <p/>
 Other attributes affect the QName that is returned.
 If the "minOccurs" and "maxOccurs" are set such that the
 type is a collection of "types", then an artificial qname is
 returned to represent the collection.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - of the reference<DD><CODE>forElement</CODE> - output parameter is set to true if QName is for an element
                        (i.e. ref= or element= attribute was used).<DD><CODE>ignoreMaxOccurs</CODE> - indicates whether minOccurs/maxOccurs affects the QName
<DT><B>Returns:</B><DD>QName representing the type of this element</DL>
</DD>
</DL>
<HR>

<A NAME="getMemberTypeQNames(org.w3c.dom.Node)"><!-- --></A><H3>
getMemberTypeQNames</H3>
<PRE>
public static <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>[] <B>getMemberTypeQNames</B>(org.w3c.dom.Node&nbsp;node)</PRE>
<DL>
<DD>Method getMemberTypeQNames
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getQNameFromPrefixedName(org.w3c.dom.Node, java.lang.String)"><!-- --></A><H3>
getQNameFromPrefixedName</H3>
<PRE>
public static <A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getQNameFromPrefixedName</B>(org.w3c.dom.Node&nbsp;node,
                                             java.lang.String&nbsp;prefixedName)</PRE>
<DL>
<DD>Convert a prefixed name into a qname
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - <DD><CODE>prefixedName</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getDerivedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable)"><!-- --></A><H3>
getDerivedTypes</H3>
<PRE>
public static java.util.HashSet <B>getDerivedTypes</B>(<A HREF="../../../../../org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>&nbsp;type,
                                                <A HREF="../../../../../org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>&nbsp;symbolTable)</PRE>
<DL>
<DD>This method returns a set of all types that are derived
 from this type via an extension of a complexType
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - <DD><CODE>symbolTable</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="getNestedTypes(org.apache.axis.wsdl.symbolTable.TypeEntry, org.apache.axis.wsdl.symbolTable.SymbolTable, boolean)"><!-- --></A><H3>
getNestedTypes</H3>
<PRE>
protected static java.util.HashSet <B>getNestedTypes</B>(<A HREF="../../../../../org/apache/axis/wsdl/symbolTable/TypeEntry.html" title="class in org.apache.axis.wsdl.symbolTable">TypeEntry</A>&nbsp;type,
                                                  <A HREF="../../../../../org/apache/axis/wsdl/symbolTable/SymbolTable.html" title="class in org.apache.axis.wsdl.symbolTable">SymbolTable</A>&nbsp;symbolTable,
                                                  boolean&nbsp;derivedFlag)</PRE>
<DL>
<DD>This method returns a set of all the nested types.
 Nested types are types declared within this TypeEntry (or descendents)
 plus any extended types and the extended type nested types
 The elements of the returned HashSet are Types.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - is the type entry to consider<DD><CODE>symbolTable</CODE> - is the symbolTable<DD><CODE>derivedFlag</CODE> - should be set if all dependendent derived types should also be
                    returned.
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="genQNameAttributeString(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
genQNameAttributeString</H3>
<PRE>
public static java.lang.String <B>genQNameAttributeString</B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                                                       java.lang.String&nbsp;prefix)</PRE>
<DL>
<DD>Generate an XML prefixed attribute value with a corresponding xmlns
 declaration for the prefix.  If there is no namespace,
 don't prefix the name or emit the xmlns attribute.
 <p/>
 Caller should provide the enclosing quotes.
 <p/>
 Usage:  println("name=\"" + genXMLQNameString(qname, "foo") + "\""
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>qname</CODE> - <DD><CODE>prefix</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="genQNameAttributeStringWithLastLocalPart(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
genQNameAttributeStringWithLastLocalPart</H3>
<PRE>
public static java.lang.String <B>genQNameAttributeStringWithLastLocalPart</B>(<A HREF="../../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                                                                        java.lang.String&nbsp;prefix)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLastLocalPart(java.lang.String)"><!-- --></A><H3>
getLastLocalPart</H3>
<PRE>
public static java.lang.String <B>getLastLocalPart</B>(java.lang.String&nbsp;localPart)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


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

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

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

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