name=uuid@domainwhere name is the name of the message part that is being encoded, uuid is a globally unique identifier, and domain is a domain identifier (for example my.example.com).
In order to distinguish between the cases, service integration technologies assumes that if a message attachment follows the Version 1.0 convention for constructing the Content ID, then it is a Version 1.0 message.
The following WSDL fragment is for a bound attachment, with message instances that follow both styles:
<wsdl:binding name="BoundSoapBinding" type="intf:BoundPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="bound"> <soap:operation soapAction=""/> <wsdl:input> <mime:multipartRelated> <mime:part> <soap:body parts="stringIn" namespace="http://bound" use="literal"/> </mime:part> <mime:part> <mime:content part="attachIn" type="text/xml"/> </mime:part> </mime:multipartRelated> </wsdl:input>
The following WSDL fragment is for a SOAP instance that uses Version 1.0 encoding. In this fragment, the message body contains no mention of the attachIn part, and the Content ID of the attachment identifies the part that is being encoded.
--myBoundary Content-Type: text/xml Content-Transfer-Encoding: 7bit Content-Id: <myStartID> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ns0:bound xmlns:ns0="http://bound"> <stringIn>some string data</stringIn> </ns0:bound> </SOAP-ENV:Body> </SOAP-ENV:Envelope> --myBoundary Content-Type: text/xml Content-Transfer-Encoding: 7bit Content-Id: <attachIn=someUUID@some.domain.name> <someOtherXMLElement/> --myBoundary--
The following WSDL fragment is for a SOAP instance that uses SOAP Messages with Attachments encoding. In this fragment, the message body does contain a reference to the bound attachment, and the Content ID of the attachment is not constrained.
--myBoundary Content-Type: text/xml Content-Transfer-Encoding: 7bit Content-Id: <myStartID> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ns0:bound xmlns:ns0="http://bound"> <stringIn>some string data</stringIn> <attachIn href="cid:notTheStart"/> </ns0:bound> </SOAP-ENV:Body> </SOAP-ENV:Envelope> --myBoundary Content-Type: text/xml Content-Transfer-Encoding: 7bit Content-Id: <notTheStart> <someOtherXMLElement/> --myBoundary--
In the previous two cases there is sufficient information in the message to identify the bound attachment, and in both cases service integration technologies places a bound attachment entry in the attachments list, and places the data from the attachment into the body section of the data graph.