Many services use attachments to send and receive data that are not well represented with XML messages (for example, multimedia binary data). SOAtest and Virtualize can optimize the sending of SOAP messages using MTOM, where any binary element content is sent as MIME attachments instead of being base64 encoded directly within the SOAP envelope. They can also receive and validate binary MIME attachments from MTOM payloads. Attachment encapsulation format can be configured under the SOAP Client’s Misc tab or the Virtualize Message Responder tool's Options tab.
The Attachment Handler tool can be used in conjunction with a SOAP Client or Message Responder to extract and validate attachments from a response message. For more information on configuring the Attachment Handler tool, see Attachment Handler.
MTOM/XOP Messages
SOAtest and Virtualize can work with services leveraging the MTOM (Message Transmission Optimization Mechanism) and XOP (XML-binary Optimized Packaging) technologies. You can elect the binary content to include—as well as validate, send, and receive—optimized messages.
MTOM optimized messages can be sent using the SOAP Client or Message Responder in Form Input view.
The XOP optimization is performed by replacing the xsd:base64Binary
element contents with a reference that looks similar to the following:
< xop:Include href="cid:1.urn:uuid:[email protected]" xmlns:xop="http://www.w3.org/2004/08/xop/include" />
The same href cid
value is used in a --MIME_boundary
section, which would include the corresponding non-encoded content.
To enable the sending of optimized messages, complete the following:
Click on the tool's Misc. or Options tab and choose Custom from the Attachment Encapsulation Format menu.
- Enable either MTOM always or MTOM optional.
- MTOM always: This tool will always send the request in a XOP Package (that is, with MIME boundaries), even when there is not optimized content in the request (that is, even when
xsd:base64Binary
XML types are not present in the message). MTOM optional: This tool will send the request in a XOP Package (that is, with MIME boundaries) only when there is optimized content in the request. In the absence of optimized content, it will send a normal request.Note that MTOM always or MTOM optional can be selected at the test or Responder suite level in the SOAP Client Options tab or in the SOAP Client page of the Preferences panel.
- MTOM always: This tool will always send the request in a XOP Package (that is, with MIME boundaries), even when there is not optimized content in the request (that is, even when
Select the Request or Response tab and make sure Form Input is selected from the Views menu. The Form Input view is a schema-aware view. In this view, the
xsd:base64Binary
schema datatype will be recognized so that you can reference the content that you want to optimize. When you click on abase64Binary
type, the following options are available:Reference to file: This is the recommended option. This option allows you to select a file to send as optimized content. SOAtest and Virtualize read the contents from the file as the contents are being sent on the wire. This way, the file contents are not stored in the suite.
- Persist As Relative Path: It is always recommended that the path to the file be kept as a relative path to the suite to allow for easier sharing and collaboration with the rest of the organization.
- Import from file: This option (not recommended) allows you to read the contents in from the file. This option is not recommended for big files because the contents of the file will be loaded into memory.
Additionally, the file to be sent can be driven by data sources by choosing Parameterized from the menu and selecting a File Data Source. For more information about File Data Sources, see Configuring a File Data Source in SOAtest or Configuring a File Data Source in Virtualize.