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>