From their wiki:
What is MTOM?
From Etilizewiki
Jump to: navigation, search
MTOM is the W3C Message Transmission Optimization Mechanism,
a method of efficiently sending binary data to and from web
services. It uses XOP (XML-binary Optimized Packaging) to transmit
binary data and is intended to replace both MIME and DIME
attachments. Binary content often has to be reencoded to be sent as
text data with SOAP messages. MTOM allows more efficient sending of
binary data in a SOAP request or response.
Sample Raw Request:
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:com="
http://com.etilize.spexlive">
<soapenv:Header/>
<soapenv:Body>
<com:ManageProductLists catalog="?" siteId="0">
<!--You have a CHOICE of the next 5 items at this
level-->
<!--0 to 25 repetitions:-->
<com:task id="?">
<!--You have a CHOICE of the next 6 items at this
level-->
<!--Optional:-->
<com:insertToProductListByProductID listName="?"
productId="?" ordinal="?"/>
<!--Optional:-->
<com:insertToProductListBySKU listName="?" type="?"
number="?" ordinal="?"/>
<!--Optional:-->
<com:deleteFromProductListByProductID listName="?"
productId="?"/>
<!--Optional:-->
<com:deleteFromProductListBySKU listName="?" type="?"
number="?"/>
<!--Optional:-->
<com:deleteProductList listName="?"/>
<!--Optional:-->
<com:defineProductList listName="?">
<!--Optional:-->
<com:keywordFilter>?</com:keywordFilter>
<!--Zero or more repetitions:-->
<com:categoryFilter id="?" type="default"/>
<!--Zero or more repetitions:-->
<com:manufacturerFilter id="?"/>
<!--Zero or more repetitions:-->
<com:attributeFilter attributeId="?" valueId="?"
operator="EQ"/>
<!--Optional:-->
<com:context>
<!--Zero or more repetitions:-->
<com:mapping key="?" value="?"/>
</com:context>
</com:defineProductList>
</com:task>
<!--Optional:-->
<com:getProductList scope="application" listname="?"/>
<!--Optional:-->
<com:getProductListDirectory scope="application"/>
<!--Optional:-->
<com:uploadProductListFile listName="?">
<com:file>cid:1138977549033</com:file>
</com:uploadProductListFile>
<!--Optional:-->
<com:downloadProductListFile listName="?"/>
</com:ManageProductLists>
</soapenv:Body>
</soapenv:Envelope>
And then this is a sample of a request I sent thru soapui
which automatically enables the mtom:
POST /service/soap/catalog?appId=223170 HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: ws.spexlive.net
Content-Length: 338
<soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:com="
http://WebServiceName">
<soapenv:Header/>
<soapenv:Body>
<com:ManageProductLists catalog="spr">
<com:getProductList scope="application"
listname="hisd"/>
</com:ManageProductLists>
</soapenv:Body>
</soapenv:Envelope>
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: multipart/related; type="application/xop+xml";
start="<soap.xml@xfire.codehaus.org>"; start-info="text/xml";
boundary="----=_Part_39944_20960317.1235233442949"
Transfer-Encoding: chunked
Date: Sat, 21 Feb 2009 16:24:02 GMT
28d