<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.axis2.jaxws.description.xml.handler (Apache Axis2)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.axis2.jaxws.description.xml.handler (Apache Axis2)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/axis2/jaxws/description/validator/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../../../org/apache/axis2/jaxws/dispatchers/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/axis2/jaxws/description/xml/handler/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.axis2.jaxws.description.xml.handler</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/DescriptionType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">DescriptionType</a></td>
<td class="colLast">
<div class="block">The description type is used by a description element to provide text describing the parent
 element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/DisplayNameType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">DisplayNameType</a></td>
<td class="colLast">
<div class="block">The display-name type contains a short name that is intended to be displayed by tools.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EjbLinkType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EjbLinkType</a></td>
<td class="colLast">
<div class="block">The ejb-linkType is used by ejb-link elements in the ejb-ref or ejb-local-ref elements to specify
 that an EJB reference is linked to enterprise bean.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EjbLocalRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EjbLocalRefType</a></td>
<td class="colLast">
<div class="block">The ejb-local-refType is used by ejb-local-ref elements for the declaration of a reference to an
 enterprise bean's local home or to the local business interface of a 3.0 bean.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EjbRefNameType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EjbRefNameType</a></td>
<td class="colLast">
<div class="block">The ejb-ref-name element contains the name of an EJB reference.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EjbRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EjbRefType</a></td>
<td class="colLast">
<div class="block">The ejb-refType is used by ejb-ref elements for the declaration of a reference to an enterprise
 bean's home or to the remote business interface of a 3.0 bean.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EjbRefTypeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EjbRefTypeType</a></td>
<td class="colLast">
<div class="block">The ejb-ref-typeType contains the expected type of the referenced enterprise bean.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EmptyType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EmptyType</a></td>
<td class="colLast">
<div class="block">This type is used to designate an empty element when used.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EnvEntryType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EnvEntryType</a></td>
<td class="colLast">
<div class="block">The env-entryType is used to declare an application's environment entry.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/EnvEntryTypeValuesType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">EnvEntryTypeValuesType</a></td>
<td class="colLast">
<div class="block">This type contains the fully-qualified Java type of the environment entry value that is expected
 by the application's code.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/FullyQualifiedClassType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">FullyQualifiedClassType</a></td>
<td class="colLast">
<div class="block">The elements that use this type designate the name of a Java class or interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/GenericBooleanType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">GenericBooleanType</a></td>
<td class="colLast">
<div class="block">This type defines four different values which can designate boolean values.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/HandlerChainsType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">HandlerChainsType</a></td>
<td class="colLast">
<div class="block">The handler-chains element defines the handlerchains associated with this service or service
 endpoint.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/HandlerChainType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">HandlerChainType</a></td>
<td class="colLast">
<div class="block">The handler-chain element defines the handlerchain.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/HandlerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">HandlerType</a></td>
<td class="colLast">
<div class="block">Declares the handler.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/HomeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">HomeType</a></td>
<td class="colLast">
<div class="block">The homeType defines the fully-qualified name of an enterprise bean's home interface.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/IconType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">IconType</a></td>
<td class="colLast">
<div class="block">The icon type contains small-icon and large-icon elements that specify the file names for small
 and large GIF, JPEG, or PNG icon images used to represent the parent element in a GUI tool.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/InjectionTargetType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">InjectionTargetType</a></td>
<td class="colLast">
<div class="block">An injection target specifies a class and a name within that class into which a resource should
 be injected.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/JavaIdentifierType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">JavaIdentifierType</a></td>
<td class="colLast">
<div class="block">The java-identifierType defines a Java identifier.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/JavaTypeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">JavaTypeType</a></td>
<td class="colLast">
<div class="block">This is a generic type that designates a Java primitive type or a fully qualified name of a Java
 interface/type, or an array of such types.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/JndiNameType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">JndiNameType</a></td>
<td class="colLast">
<div class="block">The jndi-nameType type designates a JNDI name in the Deployment Component's environment and is
 relative to the java:comp/env context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/LifecycleCallbackType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">LifecycleCallbackType</a></td>
<td class="colLast">
<div class="block">The lifecycle-callback type specifies a method on a class to be called when a lifecycle event
 occurs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ListenerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ListenerType</a></td>
<td class="colLast">
<div class="block">The listenerType indicates the deployment properties for a web application listener bean.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/LocalHomeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">LocalHomeType</a></td>
<td class="colLast">
<div class="block">The local-homeType defines the fully-qualified name of an enterprise bean's local home
 interface.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/LocalType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">LocalType</a></td>
<td class="colLast">
<div class="block">The localType defines the fully-qualified name of an enterprise bean's local interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/MessageDestinationLinkType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">MessageDestinationLinkType</a></td>
<td class="colLast">
<div class="block">The message-destination-linkType is used to link a message destination reference or
 message-driven bean to a message destination.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/MessageDestinationRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">MessageDestinationRefType</a></td>
<td class="colLast">
<div class="block">The message-destination-ref element contains a declaration of Deployment Component's reference to
 a message destination associated with a resource in Deployment Component's environment.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/MessageDestinationType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">MessageDestinationType</a></td>
<td class="colLast">
<div class="block">The message-destinationType specifies a message destination.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/MessageDestinationTypeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">MessageDestinationTypeType</a></td>
<td class="colLast">
<div class="block">The message-destination-typeType specifies the type of the destination.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/MessageDestinationUsageType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">MessageDestinationUsageType</a></td>
<td class="colLast">
<div class="block">The message-destination-usageType specifies the use of the message destination indicated by the
 reference.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ObjectFactory.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ObjectFactory</a></td>
<td class="colLast">
<div class="block">This object contains factory methods for each 
 Java content interface and Java element interface 
 generated in the org.apache.axis2.jaxws.description.xml.handler package.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ParamValueType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ParamValueType</a></td>
<td class="colLast">
<div class="block">This type is a general type that can be used to declare parameter/value lists.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PathType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PathType</a></td>
<td class="colLast">
<div class="block">The elements that use this type designate either a relative path or an absolute path starting
 with a "/".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PersistenceContextRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PersistenceContextRefType</a></td>
<td class="colLast">
<div class="block">The persistence-context-ref element contains a declaration of Deployment Component's reference to
 a persistence context associated within a Deployment Component's environment.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PersistenceContextTypeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PersistenceContextTypeType</a></td>
<td class="colLast">
<div class="block">The persistence-context-typeType specifies the transactional nature of a persistence context
 reference.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PersistenceUnitRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PersistenceUnitRefType</a></td>
<td class="colLast">
<div class="block">The persistence-unit-ref element contains a declaration of Deployment Component's reference to a
 persistence unit associated within a Deployment Component's environment.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PortComponentRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PortComponentRefType</a></td>
<td class="colLast">
<div class="block">The port-component-ref element declares a client dependency on the container for resolving a
 Service Endpoint Interface to a WSDL port.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/PropertyType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">PropertyType</a></td>
<td class="colLast">
<div class="block">Specifies a name/value pair.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/RemoteType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">RemoteType</a></td>
<td class="colLast">
<div class="block">The remote element contains the fully-qualified name of the enterprise bean's remote interface.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ResAuthType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ResAuthType</a></td>
<td class="colLast">
<div class="block">The res-authType specifies whether the Deployment Component code signs on programmatically to the
 resource manager, or whether the Container will sign on to the resource manager on behalf of the
 Deployment Component.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ResourceEnvRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ResourceEnvRefType</a></td>
<td class="colLast">
<div class="block">The resource-env-refType is used to define resource-env-type elements.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ResourceRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ResourceRefType</a></td>
<td class="colLast">
<div class="block">The resource-refType contains a declaration of a Deployment Component's reference to an external
 resource.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ResSharingScopeType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ResSharingScopeType</a></td>
<td class="colLast">
<div class="block">The res-sharing-scope type specifies whether connections obtained through the given resource
 manager connection factory reference can be shared.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/RoleNameType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">RoleNameType</a></td>
<td class="colLast">
<div class="block">The role-nameType designates the name of a security role.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/RunAsType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">RunAsType</a></td>
<td class="colLast">
<div class="block">The run-asType specifies the run-as identity to be used for the execution of a component.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/SecurityRoleRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">SecurityRoleRefType</a></td>
<td class="colLast">
<div class="block">The security-role-refType contains the declaration of a security role reference in a component's
 or a Deployment Component's code.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/SecurityRoleType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">SecurityRoleType</a></td>
<td class="colLast">
<div class="block">The security-roleType contains the definition of a security role.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ServiceRefHandlerChainsType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ServiceRefHandlerChainsType</a></td>
<td class="colLast">
<div class="block">The handler-chains element defines the handlerchains associated with this service or service
 endpoint.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ServiceRefHandlerChainType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ServiceRefHandlerChainType</a></td>
<td class="colLast">
<div class="block">The handler-chain element defines the handlerchain.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ServiceRefHandlerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ServiceRefHandlerType</a></td>
<td class="colLast">
<div class="block">Declares the handler for a port-component.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/ServiceRefType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">ServiceRefType</a></td>
<td class="colLast">
<div class="block">The service-ref element declares a reference to a Web service.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/String.html" title="class in org.apache.axis2.jaxws.description.xml.handler">String</a></td>
<td class="colLast">
<div class="block">This is a special string datatype that is defined by Java EE as a base type for defining
 collapsed strings.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/TrueFalseType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">TrueFalseType</a></td>
<td class="colLast">
<div class="block">This simple type designates a boolean with only two permissible values
 <p/>
 - true - false
 <p/>
 <p/>
 <p/>
 Java class for true-falseType complex type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/UrlPatternType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">UrlPatternType</a></td>
<td class="colLast">
<div class="block">The url-patternType contains the url pattern of the mapping.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdAnyURIType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdAnyURIType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:anyURI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdBooleanType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdBooleanType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:boolean.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdIntegerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdIntegerType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:integer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdNMTOKENType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdNMTOKENType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:NMTOKEN.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdNonNegativeIntegerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdNonNegativeIntegerType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:nonNegativeInteger.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdPositiveIntegerType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdPositiveIntegerType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:positiveInteger.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdQNameType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdQNameType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:QName.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../../org/apache/axis2/jaxws/description/xml/handler/XsdStringType.html" title="class in org.apache.axis2.jaxws.description.xml.handler">XsdStringType</a></td>
<td class="colLast">
<div class="block">This type adds an "id" attribute to xsd:string.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/axis2/jaxws/description/validator/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../../../org/apache/axis2/jaxws/dispatchers/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/axis2/jaxws/description/xml/handler/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>