<!--
Copyright © 2008 Bluestem Software LLC
All Rights Reserved. Bluestem Software LLC licenses this file
to you under the Ext EOA Specification License Agreement [1]. You
may not use this file except in compliance with the License. You
may obtain a copy of the License at:
[1] http://alakai.org/licensing/specification-eoa-ext-license.html
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://bluestemsoftware.org/specification/eoa/ext/binding/soap/default/1.0" xmlns:tns="http://bluestemsoftware.org/specification/eoa/ext/binding/soap/default/1.0" elementFormDefault="qualified">
<xs:element name="binding">
<xs:complexType>
<xs:all>
<xs:element name="features" minOccurs="0">
<xs:annotation>
<xs:documentation>Identifies features which MUST be enaged when Binding processes an action.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="feature" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="typeRef" type="xs:anyURI" use="required">
<xs:annotation>
<xs:documentation>URI which identifies required feature type.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="configuration" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="operations" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines operation specific configuration, which is only appropriate where binding is NOT reusable, i.e. where binding binds specific operations. It is an error if to specify this element if binding is re-usable.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="operation" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="requestorTimeout" type="xs:int">
<xs:annotation>
<xs:documentation>Defines amount of time before a blocking request times out for a specific operation, i.e if partner requires an anoymous response, specifies the amount of time binding provider will block for a response from engine before throwing a fault. Note that if MEP is robust-in-only, this value should be as short as possible, i.e. to avoid situation where provider blocks for a fault response from engine that may never be returned. Note also that the term 'requestor' is a metaphor, it does not imply that JMS must be used by underlying provider.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:QName" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dataSourceConnector" minOccurs="0" type="xs:NCName">
<xs:annotation>
<xs:documentation>Defines DataSourceConnector name which MAY be required by binding provider to implement message and/or header persistence. If element is undefined, the connector 'SystemDataSource' is implied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requestorTimeout" type="xs:int">
<xs:annotation>
<xs:documentation>Defines amount of time before a blocking request times out for an unbound operation, i.e if partner requires an anoymous response, specifies the amount of time binding provider will block for a response from engine before throwing a fault. Note that the term 'requestor' is a metaphor, it does not imply that JMS must be used by underlying provider.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="embedStackTraceInFaults" minOccurs="0" type="xs:boolean">
<xs:annotation>
<xs:documentation>If an expected throwable is caught, defines whether or not binding should embed stack trace within fault detail element of SOAP fault returned to sender.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxPayloadProcessors" minOccurs="0" type="xs:int">
<xs:annotation>
<xs:documentation>Defines maximum number of concurrent 'processors' which process message payload, i.e. which process action by binding it according to wsdl description and then passing to engine.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="minHeaderProcessors" minOccurs="0" type="xs:int">
<xs:annotation>
<xs:documentation>Defines minimum number of 'processors' which process message headers and write message to queue for payload processing. Note that maximum number of processors is unconstrained, i.e. to facillitate loose coupling. Idle processors are reclaimed as needed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="largeAttachementSize" minOccurs="0" type="xs:int">
<xs:annotation>
<xs:documentation>Gets value which MUST be used by provider to limit the size of message attachments buffered to memory. size specified in bytes or -1 to indicate size is unconstrained.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" use="required" type="xs:QName" />
</xs:complexType>
</xs:element>
</xs:schema>