This document is also available in these non-normative formats: .
Copyright © @@@@ W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
WSDL2.0 MTOM extension describes the concrete details for enabling MTOM [SOAP MTOM] in conjunction with WSDL 2.0.
This document is an editors' copy that has no official standing.
1. Introduction
2. WSDL2.0 MTOM extension
3. Interactions with other specifications
4. References
A. Acknowledgements (Non-Normative)
B. MTOM Extension Change Log (Non-Normative)
1. Introduction
1.1 Notational Conventions
2. WSDL2.0 MTOM extension
2.1 Relationship to WSDL Component Model
2.2 XML Representation
2.3 Mapping from XML Representation to Component Properties
3. Interactions with other specifications
3.1 Other Uses of OptimizedMimeSerialization Extension Element
3.2 HTTP Content Negociation
4. References
4.1 Normative References
4.2 Informative References
A. Acknowledgements (Non-Normative)
B. MTOM Extension Change Log (Non-Normative)
The Web Services Description Language (WSDL) provides a model and an XML format for describing Web services. WSDL2.0 MTOM Extension (this specification) describes the binding extension for MTOM [SOAP MTOM]. This extension is intended to enable Web Services applications to use MTOM.
This specification depends on WSDL 2.0 [WSDL 2.0 Core] and WSDL 2.0 Adjuncts [WSDL 2.0 Adjuncts].
This specification uses a number of namespace prefixes throughout; they are listed in Table 1-1. Note that the choice of any namespace prefix is arbitrary and not semantically significant (see [XML Information Set]).
This specification uses curly brackets (e.g., {property}) to indicate a property in the WSDL component model, as defined in Part 1 [WSDL 2.0 Core] Component Model.
Prefix | Namespace | Notes |
---|---|---|
wsdl | "http://www.w3.org/@@@@/@@/wsdl" | A normative XML Schema [XMLSchemaP1], [XMLSchemaP2] document for the "http://www.w3.org/@@@@/@@/wsdl" namespace can be found at http://www.w3.org/@@@@/@@/wsdl. |
wsoap | "http://www.w3.org/@@@@/@@/wsdl/soap" | A normative XML Schema [XMLSchemaP1], [XMLSchemaP2] document for the "http://www.w3.org/@@@@/@@/wsdl/soap" namespace can be found at http://www.w3.org/@@@@/@@/wsdl/soap. |
wso | "http://www.w3.org/@@@@/@@/wsdl/soap/mime-optimization" | Defined by this specification. |
Namespace names of the general form "http://example.org/..." and "http://example.com/..." represent application or context-dependent URIs [RFC3986].
All parts of this specification are normative, with the EXCEPTION of examples, and sections explicitly marked as "Non-Normative".
This extension allows describing the capacities and requirements of a service related to the use of MTOM. This specification defines the semantics of this extension when used in conjunction with:
This extension adds the following property to the Endpoint, Binding, Binding Operation, Binding Fault, Binding Message Reference and Binding Fault Reference component model (as defined in [WSDL 2.0 Core]):
{optimized mime serialization} OPTIONAL. An xs:token with one of the values "required" or "optional". When present, the property indicates that the use of MTOM has been declared. When absent, NO assertion is made on the support and use of MTOM.
The availability and requiredness of MTOM support and engagement is defined by the closest {optimized mime serialization} property, where closeness is defined by whether it is at the Endpoint component level, the Binding Message Reference component, the Binding Fault Reference component level, the Binding Operation level, the Binding Fault Reference level, or the Binding component level, respectively.
Required | Optional | |
---|---|---|
Input Message/Fault | MTOM MUST be supported and SHOULD be engaged by the client. Typically, MTOM MAY be disengaged when NO binary data is to be sent. | MTOM is supported by the service and MAY be engaged by the client. |
Output Message/Fault | MTOM MUST be supported by the client. Engagement is based on the message content-type as per the MTOM specification [SOAP MTOM]. | MTOM is supported and MAY be engaged by the service. Engagement MUST only be done when the service knows that the client supports MTOM. This knowledge MAY come from different sources: MTOM use in the input message, policy exchanges, content negociation (HTTP Accept header for instance)... By default, MTOM is NOT engaged. |
The XML representation for the WSDL2.0 MTOM extension is an element information item as follow:
<description> <wsdl:binding wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/"> <wso:OptimizedMimeSerialization wsdl:required="xs:boolean"?/>* <wsdl:fault> <wso:OptimizedMimeSerialization ... />* </wsdl:fault> <wsdl:operation> <wso:OptimizedMimeSerialization ... />* <wsdl:input> <wso:OptimizedMimeSerialization ... />* </wsdl:input> <wsdl:output> <wso:OptimizedMimeSerialization ... />* </wsdl:output> <wsdl:infault> <wso:OptimizedMimeSerialization ... />* </wsdl:infault> <wsdl:outfault> <wso:OptimizedMimeSerialization ... />* </wsdl:outfault> </wsdl:operation> </wsdl:binding> </wsdl:description>
This is an empty global element that allows any namespaced attribute, especially the wsdl:required attribute.
The XML representation for the MTOM extension is an element information item with the following Infoset properties:
A [local name] of wso:OptimizedMimeSerialization
.
A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl/soap/mime/optimisation".
An OPTIONAL wsdl:required
attribute information item with the following Infoset properties:
A [local name] of required
A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl"
A type of xs:boolean.
The mapping from the XML Representation of
the wso:OptimizedMimeSerialization
element information item
to the {optimized mime serialization} property of the
Endpoint,
Binding,
Binding Operation,
Binding Fault,
Binding Message Reference and
Binding Fault Reference component model
is as described in Table 2-2.
Property | Value |
---|---|
{optimized mime serialization} |
Absent if there is NO
If a |
This section is Non-Normative.
The wso:OptimizedMimeSerialization
element MAY be used in other contexts than WSDL2.0 (e.g., as a policy assertion in a policy framework).
Its use in such contexts is semantically equivalent to the use of wso:OptimizedMimeSerialization
as a WSDL extension element.
A client MAY indicate that it supports MTOM by using the Accept header field in the request. The service can then decide to engage MTOM or not in the response based on the Accept header field value.
Accept Header Value | Meaning |
---|---|
Accept: multipart/related;type="application/xop+xml" | The client wants to receive a MTOM message |
Accept: application/soap+xml | The client wants to receive a standard soap response |
Accept: multipart/related;type="application/xop+xml";q=0.5, application/soap+xml | The client prefers receiving a standard soap response but agrees to receive a MTOM response. |
Accept: application/soap+xml; q=0.5, multipart/related;type="application/xop+xml" | The client prefers receiving a MTOM response but agrees to receive a standard soap response |
This document is developed by the participants of the W3C Web Service Description Working Group.
Many people have contributed ideas and feedback that has improved this document.