| <?xml version="1.0" encoding="UTF-8"?> |
| <!--// |
| 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/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1"> |
| <!-- ==================================================================== --> |
| <!-- DeployableItem--> |
| <!-- ==================================================================== --> |
| <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"/> |
| <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> |
| <!-- ==================================================================== --> |
| <!--Flow --> |
| <!-- ==================================================================== --> |
| <xsd:complexType name="Flow"> |
| <xsd:annotation> |
| <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 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 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> |
| <!-- ==================================================================== --> |
| <!-- parameter--> |
| <!-- ==================================================================== --> |
| <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 "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 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" default="false"/> |
| <xsd:attribute name="value" type="xsd:string" use="optional"/> |
| <xsd:attribute name="type" type="xsd:QName" use="optional"/> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- documentation--> |
| <!-- ==================================================================== --> |
| <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> |
| <!-- ==================================================================== --> |
| <!-- service--> |
| <!-- ==================================================================== --> |
| <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:DeployableItem"> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:namespace" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="wsdlFile" type="xsd:string" minOccurs="0"/> |
| <xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:operation" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:typeMapping" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:beanMapping" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:provider" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:requestFlow" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:responseFlow" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:faultFlow" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="description" type="xsd:string" use="optional"/> |
| <xsd:attribute name="provider" type="xsd:QName" use="optional"/> |
| <xsd:attribute name="style" type="xsd:string" use="optional"/> |
| <xsd:attribute name="use" type="xsd:string" use="optional"/> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- handler--> |
| <!-- ==================================================================== --> |
| <xsd:element name="handler"> |
| <xsd:annotation> |
| <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:DeployableItem"> |
| <xsd:sequence> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- chain--> |
| <!-- ==================================================================== --> |
| <xsd:element name="chain"> |
| <xsd:annotation> |
| <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:DeployableItem"> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- requestFlow --> |
| <!-- ==================================================================== --> |
| <xsd:element name="requestFlow" type="wsdd:Flow"> |
| <xsd:annotation> |
| <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:element> |
| <!-- ==================================================================== --> |
| <!-- responseFlow --> |
| <!-- ==================================================================== --> |
| <xsd:element name="responseFlow" type="wsdd:Flow"> |
| <xsd:annotation> |
| <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:element> |
| <xsd:element name="faultFlow" type="wsdd:Flow"> |
| <xsd:annotation> |
| <xsd:documentation>The faultFlow Element is a DeployableItem that describes a fault-processing flow.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- beanMapping--> |
| <!-- ==================================================================== --> |
| <xsd:element name="beanMapping"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This describes a default mapping between XML and a programming language specific object. |
| LanguageSpecificType refers to the type name in the programming language that is being coverted to/from XML. No |
| Serializers/Deserializers are specified, because this is shorthand for a default (i.e. bean for Java) mapping. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:documentation" minOccurs="0"/> |
| <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="encodingStyle" type="xsd:string" use="optional"/> |
| <xsd:attribute name="qname" type="xsd:QName" use="optional"/> |
| <xsd:attribute name="languageSpecificType" type="xsd:QName" use="optional"/> |
| </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. |
| 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> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:documentation" minOccurs="0"/> |
| <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="encodingStyle" type="xsd:string" use="optional"/> |
| <xsd:attribute name="qname" type="xsd:QName" use="optional"/> |
| <xsd:attribute name="languageSpecificType" type="xsd:QName" use="optional"/> |
| <xsd:attribute name="serializer" type="xsd:anyURI" use="optional"/> |
| <xsd:attribute name="deserializer" type="xsd:anyURI" use="optional"/> |
| <xsd:attribute name="type" type="xsd:anyURI"/> |
| <xsd:attribute name="name" type="xsd:anyURI" use="optional"/> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- provider --> |
| <!-- ==================================================================== --> |
| <xsd:element name="provider"> |
| <xsd:annotation> |
| <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:DeployableItem"> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:operation" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- operation --> |
| <!-- ==================================================================== --> |
| <xsd:element name="operation"> |
| <xsd:annotation> |
| <xsd:documentation>Defines an operation exposed by the Service Provider |
| |
| The optional qname attribute specifies the public qualified name (QName) of this operation. The local part of the |
| QName may or may not be the same as the required name attribute. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/> |
| <xsd:attribute name="returnQName" type="xsd:QName" use="optional"/> |
| <xsd:attribute name="returnType" type="xsd:anyURI" use="optional"/> |
| <xsd:attribute name="qname" type="xsd:QName"/> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- transport --> |
| <!-- ==================================================================== --> |
| <xsd:element name="transport"> |
| <xsd:annotation> |
| <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:DeployableItem"> |
| <xsd:sequence> |
| <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="pivot" type="xsd:NCName" use="optional"/> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- globalConfiguration --> |
| <!-- ==================================================================== --> |
| <xsd:element name="globalConfiguration"> |
| <xsd:annotation> |
| <xsd:documentation>The globalConfiguration Element is a DeployableItem that describes the global configuration |
| of the Axis Engine. |
| |
| The globalConfiguration may define global request, response, fault and transport flows that apply to all services. |
| |
| The provider element describes the deployment of the Axis Engine implementation. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="wsdd:DeployableItem"> |
| <xsd:sequence> |
| <xsd:element ref="wsdd:transport" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="wsdd:requestFlow" minOccurs="0"/> |
| <xsd:element ref="wsdd:provider" 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:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:complexType name="DeploymentDescriptor"> |
| <xsd:sequence> |
| <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:beanMapping" 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:NCName" use="optional"/> |
| <xsd:anyAttribute namespace="##other"/> |
| </xsd:complexType> |
| <!-- ==================================================================== --> |
| <!-- deployment --> |
| <!-- ==================================================================== --> |
| <xsd:element name="deployment" type="wsdd:DeploymentDescriptor"> |
| <xsd:annotation> |
| <xsd:documentation>This is the root element for WSDD.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- undeployment --> |
| <!-- ==================================================================== --> |
| <xsd:element name="undeployment" type="wsdd:DeploymentDescriptor"> |
| <xsd:annotation> |
| <xsd:documentation>undeployment</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <!-- ==================================================================== --> |
| <!-- namespace--> |
| <!-- ==================================================================== --> |
| <xsd:element name="namespace" type="xsd:anyURI"> |
| <xsd:annotation> |
| <xsd:documentation>a namespace of a service</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:schema> |