You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by jm...@apache.org on 2001/04/26 00:30:16 UTC

cvs commit: xml-axis/java/wsdd WSDD.xsd

jmsnell     01/04/25 15:30:16

  Modified:    java/wsdd WSDD.xsd
  Log:
  WSDD Version 1.1
  
  Revision  Changes    Path
  1.2       +175 -323  xml-axis/java/wsdd/WSDD.xsd
  
  Index: WSDD.xsd
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/wsdd/WSDD.xsd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDD.xsd	2001/02/21 14:46:11	1.1
  +++ WSDD.xsd	2001/04/25 22:30:15	1.2
  @@ -1,433 +1,285 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -<!-- ************************************************************************************************ -->
  -<!-- * Apache Axis                                                                                              		* -->
  -<!-- *  Web Services Deployment Descriptor (WSDD) Version 1.0 Draft                  	* -->
  -<!-- *                                                                                                                           	* -->
  -<!-- * Authors: Steve Graham (sggraham@us.ibm.com)                                           	* -->
  -<!-- *               James Snell (jsnell@lemoorenet.com)                                                 	* -->
  -<!-- *                                                                                                                           	* -->
  -<!-- ************************************************************************************************ -->
  -<xsd:schema targetNamespace="http://xml.apache.org/axis/wsdd" xmlns:wsdd="http://xml.apache.org/axis/wsdd" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1.0">
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     (A)  WSDDBase                     ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:complexType name="WSDDBase" mixed="true">
  +<!--// 
  +            Web Services Deployment Descriptor (WSDD) Version 1.1 (Proposal)
  +//-->
  +<xsd:schema targetNamespace="http://xml.apache.org/axis/wsdd/" xmlns:wsdd="http://xml.apache.org/axis/wsdd/" xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">
  +	<xsd:complexType name="DeployableItem">
  +		<xsd:annotation>
  +			<xsd:documentation>A DeployableItem is any individual component which may be deployed into the Axis runtime 
  +environment.  Handlers, Chains, Flows, Providers, Services, Transports, and the global Axis Configuration are all
  +DeployableItems.
  +
  +The optional name attribute is used to uniquely identify the DeployableItem within the scope of the given WSDD document.
  +
  +The optional type attribute is used to reference the implementation of this DeployableItem. 
  +</xsd:documentation>
  +		</xsd:annotation>
   		<xsd:sequence>
  -			<xsd:element ref="wsdd:documentation" minOccurs="0" maxOccurs="unbounded"/>
  +			<xsd:element ref="wsdd:documentation" minOccurs="0"/>
   			<xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/>
   		</xsd:sequence>
  +		<xsd:attribute name="name" type="xsd:NCName" use="optional"/>
  +		<xsd:attribute name="type" type="xsd:QName" use="optional"/>
   	</xsd:complexType>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************               deployments            ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="deployments">
  -		<xsd:annotation>
  -			<xsd:documentation>This is the root level of a WSDD.  
  -
  -This allows a WSDD file to contain multiple typeMapping, handler, service or transport specific configurations</xsd:documentation>
  -		</xsd:annotation>
  -		<xsd:complexType mixed="false">
  -			<xsd:complexContent mixed="false">
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:sequence>
  -						<xsd:choice minOccurs="0" maxOccurs="unbounded">
  -							<xsd:element ref="wsdd:typeMapping"/>
  -							<xsd:element ref="wsdd:handlerConfiguration"/>
  -							<xsd:element ref="wsdd:transportConfiguration"/>
  -							<xsd:element ref="wsdd:serviceConfiguration"/>
  -						</xsd:choice>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -					</xsd:sequence>
  -					<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  -		</xsd:complexType>
  -	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     serviceConfiguration          ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="serviceConfiguration">
  +	<xsd:complexType name="Flow">
   		<xsd:annotation>
  -			<xsd:documentation>The serviceConfiguration reflects the deployment characteristics of a service within the Axis engine.   The child elements of 
  -the serviceConfiguration describe the handlers deployed on input, output, fault chains associated with the service.
  -
  -For a an engine global deployment, the value of the name attribute is "*".   This use specifies the chains and handlers that are 
  -processed for each input, output and/or fault message flowing through the Axis engine.
  +			<xsd:documentation>A Flow defines the sequential invocation of handlers and handler chains for a particular service.  
  +The are generally three distinct types of Flows supported by Axis: request flows, response flows and fault flows.  
   
  -The details of the service itself (pivot point in the chaining essentially) are modelled in a serviceDeployment element.
  +The child elements are  aggregated together into a single handler chain of the specified type.  If the type attribute is 
  +not set, then the default Axis flow type handler is used (org.apache.axis.SimpleChain).
   
  -The type attribute allows the deployment engineer to describe the type (typically a chainContainer type) of handler that is the primary 
  -or root handler to be generated for this service.
  +The optional name attribute is usually used to qualify the chains for multiple fault flows defined within a faultScope.
  +</xsd:documentation>
  +		</xsd:annotation>
  +		<xsd:complexContent>
  +			<xsd:extension base="wsdd:DeployableItem">
  +				<xsd:sequence>
  +					<xsd:choice minOccurs="0" maxOccurs="unbounded">
  +						<xsd:element ref="wsdd:chain"/>
  +						<xsd:element ref="wsdd:handler"/>
  +					</xsd:choice>
  +					<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
  +				</xsd:sequence>
  +				<xsd:anyAttribute namespace="##other"/>
  +			</xsd:extension>
  +		</xsd:complexContent>
  +	</xsd:complexType>
  +	<xsd:element name="parameter">
  +		<xsd:annotation>
  +			<xsd:documentation>Parameters are name/value pairs that are used as configuration data for the handler or other 
  +WSDD element during deployment and initialization.
   
  -The children elements are flow elements.  The flow elements appear according to the transmission primitives defined for the service.  
  -For example, a request/response service may  have an input, output and zero or more fault flow elements.</xsd:documentation>
  +the "locked" attribute indicates whether or not the value of the parameter may be modified after configuration.  
  +If locked=true, the value cannot be changed after deployment.  If locked=false, the value may be changed at 
  +any time.
  +</xsd:documentation>
   		</xsd:annotation>
  -		<xsd:complexType>
  -			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:sequence>
  -						<xsd:element ref="wsdd:serviceDeployment" minOccurs="0"/>
  -						<xsd:element ref="wsdd:flow" minOccurs="0" maxOccurs="unbounded"/>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -					</xsd:sequence>
  -					<xsd:attribute name="name" type="xsd:string" use="required"/>
  -					<xsd:attribute name="description" type="xsd:uriReference" use="optional"/>
  -					<xsd:attribute name="type" type="xsd:string" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  +		<xsd:complexType mixed="true">
  +			<xsd:sequence>
  +				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +			</xsd:sequence>
  +			<xsd:attribute name="name" type="xsd:NCName" use="required"/>
  +			<xsd:attribute name="locked" type="xsd:boolean" use="optional" value="false"/>
  +			<xsd:attribute name="value" type="xsd:CDATA" use="optional"/>
  +			<xsd:anyAttribute namespace="##other"/>
  +		</xsd:complexType>
  +	</xsd:element>
  +	<xsd:element name="documentation">
  +		<xsd:annotation>
  +			<xsd:documentation>Documentation is whitespace as far as the handler generator at WSDD deploy time 
  +is concerned. The generator may save documentation elements as properties of the generated 
  +handlers/chains as debug/administration aids.
  +</xsd:documentation>
  +		</xsd:annotation>
  +		<xsd:complexType mixed="true">
  +			<xsd:choice minOccurs="0" maxOccurs="unbounded">
  +				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +			</xsd:choice>
  +			<xsd:anyAttribute namespace="##other"/>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     serviceDeployment            ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="serviceDeployment">
  -		<xsd:annotation>
  -			<xsd:documentation>The serviceDeployment captures details of the service itself pertinent to deployment.  This includes details of the provider 
  -(serviceHandlerType, language type, etc), the operations being deployed and use of typeMappings.
  -
  -The serviceDescription element provides optional linking information to service description mechanisms such as WSDL.
  -Default style choice is "message".
  -The optional supplierType attribute allows the deployment engineer to specify the supplierType to be used to manage lifecycle of the service.
  -There can be 0 or more operations deployed for an RPC style service.  A message style service does not need explicit operation deployed.
  -If there are no operations defined, it will be assumed the deployment applies to all possible operations on the service.
  -The type attribute allows the deployment engineer to specify a different serviceHandler for the service deployment.
  -		</xsd:documentation>
  +	<xsd:element name="service">
  +		<xsd:annotation>
  +			<xsd:documentation>The service Element is a DeployableItem that describes the deployment of a Web Service.
  +
  +A service is structured as a Targeted Chain represented with a Request Flow, a Provider and a Response Flow.
  +
  +A service may define an optional collection of Fault Flow's and typeMappings.
  +
  +The optional description attribute provides a means to directly relate the deployed Service with an external 
  +Service Description mechanism (such as WSDL).
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:element ref="wsdd:serviceDescription" minOccurs="0"/>
  -						<xsd:choice minOccurs="0" maxOccurs="unbounded">
  -							<xsd:element ref="wsdd:operation" minOccurs="0" maxOccurs="unbounded"/>
  -							<xsd:element ref="wsdd:operations" minOccurs="0" maxOccurs="unbounded"/>
  -						</xsd:choice>
  -						<xsd:element ref="wsdd:provider" minOccurs="0" maxOccurs="unbounded"/>
  -						<xsd:element ref="wsdd:typeMappingUse" minOccurs="0" maxOccurs="unbounded"/>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:typeMapping" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:requestFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:provider"/>
  +						<xsd:element ref="wsdd:responseFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:faultFlow" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="style" use="optional" value="message">
  -						<xsd:simpleType>
  -							<xsd:restriction base="xsd:NMTOKEN">
  -								<xsd:enumeration value="rpc"/>
  -								<xsd:enumeration value="message"/>
  -							</xsd:restriction>
  -						</xsd:simpleType>
  -					</xsd:attribute>
  -					<xsd:attribute name="supplierType" type="xsd:string" use="optional"/>
  -					<xsd:attribute name="type" type="xsd:string" use="optional"/>
  +					<xsd:attribute name="description" type="xsd:uriReference" use="optional"/>
   					<xsd:anyAttribute namespace="##other"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- **************************                operations              ********************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="operations">
  +	<xsd:element name="handler">
   		<xsd:annotation>
  -			<xsd:documentation>Models a collection of simple method names(operations). For more complex modelling (eg to add uri-pattern to the method name (operation) use the operation element.</xsd:documentation>
  +			<xsd:documentation>The handler Element is a DeployableItem that describes the deployment of an individual
  +handler component.
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="names" type="xsd:NMTOKENS" use="required"/>
   					<xsd:anyAttribute namespace="##other"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- **************************                operation              ********************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="operation">
  +	<xsd:element name="chain">
   		<xsd:annotation>
  -			<xsd:documentation>Models the name for an operation.  For now this could have been modelled as a list of whitespace separated strings. 
  -This allows extension, such as the uriExtension this is similar to web apps.</xsd:documentation>
  +			<xsd:documentation>The chain Element is a DeployableItem that describes a collection of handlers invoked sequentially 
  +as a single unit.
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="name" type="xsd:string" use="required"/>
  -					<xsd:attribute name="uriExtension" type="xsd:string" use="optional"/>
   					<xsd:anyAttribute namespace="##other"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     provider                                  ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="provider">
  +	<xsd:element name="requestFlow" type="wsdd:Flow">
   		<xsd:annotation>
  -			<xsd:documentation>The provider element models the description of the underlying provider type for services.  
  -This element is "namespace extensible" to provide provider implementation specific details.</xsd:documentation>
  +			<xsd:documentation>The requestFlow Element is a DeployableItem that describes the inbound flow of a Message
  +to the Service Provider.</xsd:documentation>
   		</xsd:annotation>
  -		<xsd:complexType mixed="true">
  -			<xsd:complexContent mixed="true">
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:sequence>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -					</xsd:sequence>
  -					<xsd:attribute name="serviceHandler" type="xsd:string" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  -		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     serviceDescription             ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="serviceDescription">
  +	<xsd:element name="responseFlow" type="wsdd:Flow">
   		<xsd:annotation>
  -			<xsd:documentation>ThserviceDescription models the WSDD's reference to other service description mechanisms such as WSDL.
  -The type maps to WSDL or other, default is WSDL.  The URIReference points to the location of the service description itself.</xsd:documentation>
  +			<xsd:documentation>The responseFlow Element is a DeployableItem that describes the outward flow of a Message
  +from the Service Provider</xsd:documentation>
   		</xsd:annotation>
  -		<xsd:complexType>
  -			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:attribute name="descriptionURI" type="xsd:uriReference" use="required"/>
  -					<xsd:attribute name="descriptionType" type="xsd:string" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  -		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     typeMappingUse                 ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="typeMappingUse">
  +	<xsd:element name="faultFlow" type="wsdd:Flow">
   		<xsd:annotation>
  -			<xsd:documentation>This identifies the use of a typeMapping object within a service deployment.
  -
  -The URIReference refers to an ID associated with an ID deployed with a typeMapping element.</xsd:documentation>
  +			<xsd:documentation>The faultFlow Element is a DeployableItem that describes a fault-processing flow.</xsd:documentation>
   		</xsd:annotation>
  -		<xsd:complexType>
  -			<xsd:attribute name="ref" type="xsd:uriReference" use="required"/>
  -			<xsd:anyAttribute namespace="##other"/>
  -		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     typeMapping                       ********************************* -->
  -	<!-- ********************************************************************************************** -->
   	<xsd:element name="typeMapping">
   		<xsd:annotation>
  -			<xsd:documentation>This describes the mapping between XML and a programming language specific object. 
  +			<xsd:documentation>This describes the mapping between XML and a programming language specific object.
   
  -Encodingstyle defaults to SOAP.
  -
   LanguageSpecificType refers to the type name in the programming language that is being coverted to/from XML.
   
  -Serializer and deserializer refer to type names in the programming language.</xsd:documentation>
  +Serializer and deserializer refer to type names in the programming language.
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
  -			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:attribute name="id" type="xsd:ID" use="required"/>
  -					<xsd:attribute name="encodingStyle" type="xsd:uriReference" use="optional"/>
  -					<xsd:attribute name="namespaceURI" type="xsd:NMTOKEN" use="required"/>
  -					<xsd:attribute name="localPart" type="xsd:NMTOKEN" use="required"/>
  -					<xsd:attribute name="languageSpecificType" type="xsd:string" use="required"/>
  -					<xsd:attribute name="serializer" type="xsd:NMTOKEN" use="required"/>
  -					<xsd:attribute name="deserializer" type="xsd:NMTOKEN" use="required"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  +			<xsd:sequence>
  +				<xsd:element ref="wsdd:documentation" minOccurs="0"/>
  +				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +			</xsd:sequence>
  +			<xsd:attribute name="name" type="xsd:NCName" use="optional"/>
  +			<xsd:attribute name="ref" type="xsd:QName" use="optional"/>
  +			<xsd:attribute name="encodingStyle" type="xsd:uriReference" use="optional"/>
  +			<xsd:attribute name="namespaceURI" type="xsd:uriReference" use="optional"/>
  +			<xsd:attribute name="localPart" type="xsd:NCName" use="optional"/>
  +			<xsd:attribute name="languageSpecificType" type="xsd:QName" use="optional"/>
  +			<xsd:attribute name="serializer" type="xsd:QName" use="optional"/>
  +			<xsd:attribute name="deserializer" type="xsd:QName" use="optional"/>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     transportConfiguration       ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="transportConfiguration">
  +	<xsd:element name="provider">
   		<xsd:annotation>
  -			<xsd:documentation>This element is essentially the same as serviceConfiguration, except for a configuration of a TransportListener 
  -or client-specific chain, the name is some URI which corresponds to the client (eg "urn:xml.apache.axis:httpTransportListener").</xsd:documentation>
  +			<xsd:documentation>The provider Element is a DeployableItem that describes the Axis Service Provider</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:element ref="wsdd:flow" minOccurs="0" maxOccurs="unbounded"/>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:operation" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="name" type="xsd:string" use="required"/>
  -					<xsd:attribute name="type" type="xsd:string" use="optional"/>
   					<xsd:anyAttribute namespace="##other"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- *************************     handlerConfiguration          ********************************* -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="handlerConfiguration">
  -		<xsd:annotation>
  -			<xsd:documentation>The handlerConfiguration reflects the deployment characteristics of one or more handler(s) or chain(s) within the Axis 
  -engine.  This element can be used to deploy a base handler or chain into the handlerRegistry or to define a 
  -"reusable" chain or handler configuration into the handlerRegistry.
  +	<xsd:element name="operation">
  +		<xsd:annotation>
  +			<xsd:documentation>Defines an operation exposed by the Service Provider
   
  -Name attribute is the key to insert into the handlerRegistry.  It is some name.  The ID attribute can be used to associate with 
  -other chains (other chains use this as href attr value).  When ID is defined, this indicates the element is a reusable.
  +The optional "alias" attribute allows the name of the operation to be masked.
   
  -The most trivial case is to not define any child handler.  ~~need to play with this some more.</xsd:documentation>
  +The optional "namespaceURI" attributes allows the namespace of the operation explicitly set.
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
  -			<xsd:sequence>
  -				<xsd:element ref="wsdd:documentation" minOccurs="0" maxOccurs="unbounded"/>
  -				<xsd:choice minOccurs="0" maxOccurs="unbounded">
  -					<xsd:element ref="wsdd:chain"/>
  -					<xsd:element ref="wsdd:handler"/>
  -				</xsd:choice>
  -				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -			</xsd:sequence>
  -			<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
  -			<xsd:anyAttribute namespace="##other"/>
  +			<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
  +			<xsd:attribute name="alias" type="xsd:NMTOKEN" use="optional"/>
  +			<xsd:attribute name="namespaceURI" type="xsd:uriReference" use="optional"/>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     flow                                        ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="flow">
  +	<xsd:element name="transport">
   		<xsd:annotation>
  -			<xsd:documentation>The flow element corresponds to an abstract grouping of handlers for the flows (input/output/fault) defined for a 
  -service or handler.  
  -
  -The child elements are  aggregated together into a single chain of the given flowtype within the containing handler (usually a chainContainer or 
  -faultScope of some sort).
  -
  -The flowType attribute is one of ["request" | "response" | "fault"].
  -
  -The optional name attribute is usually used to qualify the chains for multiple fault flows defined within a faultScope.</xsd:documentation>
  +			<xsd:documentation>The transport Element is a DeployableItem that describes the request, response, and
  +fault Flows for a given transport mechanism. 
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:choice minOccurs="0" maxOccurs="unbounded">
  -							<xsd:element ref="wsdd:chain"/>
  -							<xsd:element ref="wsdd:handler"/>
  -						</xsd:choice>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:requestFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:responseFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:faultFlow" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="flowType" use="optional">
  -						<xsd:simpleType>
  -							<xsd:restriction base="xsd:NMTOKEN">
  -								<xsd:enumeration value="request"/>
  -								<xsd:enumeration value="response"/>
  -								<xsd:enumeration value="fault"/>
  -							</xsd:restriction>
  -						</xsd:simpleType>
  -					</xsd:attribute>
  -					<xsd:attribute name="name" type="xsd:string" use="optional"/>
  -					<xsd:attribute name="type" type="xsd:NMTOKEN" use="optional"/>
  -					<xsd:attribute name="id" type="xsd:ID" use="optional"/>
  -					<xsd:attribute name="ref" type="xsd:uriReference" use="optional"/>
  +					<xsd:attribute name="type" type="xsd:QName" use="prohibited"/>
   					<xsd:anyAttribute namespace="##other"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     chain                                      ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="chain">
  +	<xsd:element name="globalConfiguration">
   		<xsd:annotation>
  -			<xsd:documentation>A chain is the collection handlers that make up the processing chain.  
  +			<xsd:documentation>The globalConfiguration Element is a DeployableItem that describes the global configuration
  +of the Axis Engine.  
   
  -Every chain can have a defined type, allowing the deployment engineer to specify the type of chain to be used.  Type is optional, 
  -allowing the deployment engineer to take the "default" chain type configured in the chain generator.  The ref attribute is used to 
  -associate this chain object with another instance of a chain defined elsewhere. The reference to the reusable chain is conventionally 
  -"#SOMENAME" and this name must resolve to a name of a chain within the handlerRegistry.  
  +The globalConfiguration may define global request, response, fault and transport flows that apply to all services.
   
  -Note: a chain definition could be deployed by a combination of handlers and chains. Because handler and chain are both implement 
  -composite pattern the deployment engineer is free to mix and match groupings of these elements.</xsd:documentation>
  +The provider element describes the deployment of the Axis Engine implementation.
  +</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
   			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  +				<xsd:extension base="wsdd:DeployableItem">
   					<xsd:sequence>
  -						<xsd:choice minOccurs="0" maxOccurs="unbounded">
  -							<xsd:element ref="wsdd:chain"/>
  -							<xsd:element ref="wsdd:handler"/>
  -						</xsd:choice>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:transport" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:element ref="wsdd:requestFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:provider"/>
  +						<xsd:element ref="wsdd:responseFlow" minOccurs="0"/>
  +						<xsd:element ref="wsdd:faultFlow" minOccurs="0" maxOccurs="unbounded"/>
  +						<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   					</xsd:sequence>
  -					<xsd:attribute name="id" type="xsd:ID" use="optional"/>
  -					<xsd:attribute name="type" type="xsd:string" use="optional"/>
  -					<xsd:attribute name="ref" type="xsd:uriReference" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  +					<xsd:attribute name="type" type="xsd:QName" use="prohibited"/>
   				</xsd:extension>
   			</xsd:complexContent>
   		</xsd:complexType>
   	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     handler                                   ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="handler">
  +	<xsd:element name="deployment">
   		<xsd:annotation>
  -			<xsd:documentation>A handler element corresponds to a reference to a handler within a chain in the Axis engine.  The handler is 
  -specified by type, which must correspond to a deployed handler within the handlerRegistry in the Axis engine.  Type 
  -is an arbitrary URI, we imagine common handler types will emerge with use.
  -
  -The ID and ref combination allow the deployment engineer to specify multiple references to the same instance of the handler 
  -within chains defined by WSDD documents.  The value of the ref attribute must correspond to an entry in the handlerRegistry.</xsd:documentation>
  +			<xsd:documentation>This is the root element for WSDD.</xsd:documentation>
   		</xsd:annotation>
   		<xsd:complexType>
  -			<xsd:complexContent>
  -				<xsd:extension base="wsdd:WSDDBase">
  -					<xsd:sequence>
  -						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -					</xsd:sequence>
  -					<xsd:attribute name="id" type="xsd:ID" use="optional"/>
  -					<xsd:attribute name="type" type="xsd:string" use="optional"/>
  -					<xsd:attribute name="ref" type="xsd:uriReference" use="optional"/>
  -					<xsd:anyAttribute namespace="##other"/>
  -				</xsd:extension>
  -			</xsd:complexContent>
  -		</xsd:complexType>
  -	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     documentation                        ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="documentation" nullable="true">
  -		<xsd:annotation>
  -			<xsd:documentation>Documentation is whitespace as far as the handler generator at WSDD deploy time is concerned. The generator 
  -may save documentation elements as properties of the generated handlers/chains as debug/administration aids.  The optional 
  -src attribute can be used to reference an external documentation source via URI Reference.</xsd:documentation>
  -		</xsd:annotation>
  -		<xsd:complexType mixed="true">
   			<xsd:sequence>
  -				<xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  -			</xsd:sequence>
  -			<xsd:attribute name="src" type="xsd:uriReference" use="optional"/>
  -			<xsd:anyAttribute namespace="##other"/>
  -		</xsd:complexType>
  -	</xsd:element>
  -	<!-- ********************************************************************************************** -->
  -	<!-- ***********************     parameter                               ******************************** -->
  -	<!-- ********************************************************************************************** -->
  -	<xsd:element name="parameter" nullable="true">
  -		<xsd:annotation>
  -			<xsd:documentation>Parameters can be found as children of several elements.  This is used to add options at various levels in the WSDD.
  -A parameter represents a name/value pair that is used as configuration data for the handler or other WSDD element at deployment time.
  -Name is an attribute of the element, value is the element itself. Locked indicates if the value can be modified after configuration.  If locked=true, the value 
  -is immutable after deployment.</xsd:documentation>
  -		</xsd:annotation>
  -		<xsd:complexType mixed="true">
  -			<xsd:sequence>
  -				<xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  +				<xsd:element ref="wsdd:documentation" minOccurs="0"/>
  +				<xsd:element ref="wsdd:globalConfiguration" minOccurs="0"/>
  +				<xsd:choice minOccurs="0" maxOccurs="unbounded">
  +					<xsd:element ref="wsdd:typeMapping" minOccurs="0" maxOccurs="unbounded"/>
  +					<xsd:element ref="wsdd:chain" minOccurs="0" maxOccurs="unbounded"/>
  +					<xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/>
  +					<xsd:element ref="wsdd:transport" minOccurs="0" maxOccurs="unbounded"/>
  +					<xsd:element ref="wsdd:service" minOccurs="0" maxOccurs="unbounded"/>
  +				</xsd:choice>
  +				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
   			</xsd:sequence>
  -			<xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
  -			<xsd:attribute name="locked" type="xsd:boolean" use="optional" value="false"/>
  -			<xsd:attribute name="value" type="xsd:CDATA" use="optional"/>
  +			<xsd:attribute name="name" type="xsd:NCName" use="optional"/>
   			<xsd:anyAttribute namespace="##other"/>
   		</xsd:complexType>
   	</xsd:element>