Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The ISO/IEC 29362 standard, also known as the WS-I Attachments Profile Version 1.1, defines a structured framework for packaging and transmitting binary or compound payloads alongside SOAP messages in a fully interoperable manner. In modern service-oriented architectures, the ability to embed images, documents, or large data objects within web service conversations is essential, yet without a shared profile, disparate implementations produce incompatible wire formats. This standard closes that gap by mandating a consistent MIME multipart binding, concrete rules for referencing attachments from SOAP envelopes, and a compliance model that implementors can verify against reference tools.
The profile mandates that SOAP messages with attachments shall be serialized as a MIME multipart/related message conforming to RFC 2387 and RFC 2045. The root body part MUST be the SOAP 1.1 envelope with a Content-Type of “text/xml”, and each subsequent part carries one attachment. The table below summarizes the key MIME structure rules enforced by the profile.
| MIME Parameter | Requirement | Rationale |
|---|---|---|
| Content-Type (root) | text/xml; charset=utf-8 | Ensures all SOAP processors recognize the root part unambiguously |
| Content-Transfer-Encoding | 7bit, 8bit, or binary (not quoted-printable or base64 for root XML) | Base64 for XML hides structure; binary preserves parser efficiency |
| Content-ID (cid: scheme) | Globally unique; enclosed in angle brackets per RFC 2392 | Required for <wsa:Reference> mechanism; path-based refs are not portable |
| Attachment disposition | Content-Disposition SHOULD be omitted or “attachment” | Inline disposition complicates processing and is not recommended |
| MIME version | MIME-Version: 1.0 MUST be present in the preamble | Needed for all multipart messages per RFC 2045 |
The root body part and attachments are linked via the wsa:Reference element defined in the WS-Addressing namespace. Implementors must ensure that the URI in the wsa:Reference uses the cid: (content-ID) scheme for direct part lookup. Using absolute file paths or URLs defeats the self-contained nature of the multipart message and leads to failures when messages traverse intermediaries.
The profile specifies two referencing mechanisms: the swaRef type defined in the WS-I Attachments schema, and the wsa:Reference element from WS-Addressing. The swaRef mechanism uses an href attribute whose value is a URI matching one of the Content-ID headers. This indirection decouples the logical reference from the physical MIME structure, allowing intermediaries to reorder body parts without breaking references.
From an engineering perspective, the most robust approach is to generate the Content-ID as a UUID (e.g., uuid:a1b2c3d4-...@ws-i.example.com) and embed the same UUID (without angle brackets) in the swaRef. This eliminates ambiguity around case sensitivity and URI normalization — two frequent sources of hard-to-debug failures.
While the profile does not mandate MTOM (Message Transmission Optimization Mechanism), engineers designing new systems should evaluate whether MTOM/XOP (XML-binary Optimized Packaging) provides superior wire efficiency. The WS-I Attachments Profile is logically compatible with MTOM; the key difference is that MTOM moves binary content out of the SOAP envelope at the transport level, whereas the Attachments Profile uses a side-by-side MIME structure.
| Characteristic | WS-I Attachments Profile | MTOM/XOP |
|---|---|---|
| Wire format | MIME multipart/related | MIME multipart/related with XOP includes |
| Binary representation | cid-referenced MIME parts | Base64 in XML replaced via xop:Include |
| SOAP envelope size | Unchanged | Reduced (binaries excluded) |
| Intermediary transparency | Full (envelope untouched) | Full after XOP re-serialization |
| Reference resolution | swaRef + cid: URI | xop:Include + cid: URI |
| Toolkit support | Axis 1.x, gSOAP, WCF | Axis 2, CXF, .NET 3.0+, Metro |
The standard is accompanied by the WS-I Testing Tools (Analyzer, Monitor, and Claims Tester) that validate message conformance against the Attachments Profile assertions. Implementations claiming WS-I Attachments Profile conformance must pass all mandatory assertions, which cover MIME structure, SOAP envelope integrity, reference resolution, and character encoding rules.
For engineering teams, the recommended workflow is: (1) instrument the service endpoint with the WS-I Monitor to capture wire messages, (2) run the Analyzer to identify profile violations, and (3) remediate before production deployment. This approach has proven effective in large-scale government and healthcare interoperability projects where attachment handling failures have direct operational impact.
A: The profile is defined for SOAP 1.1 only. For SOAP 1.2 systems, use the SOAP Message Transmission Optimization Mechanism (MTOM) specified in W3C Recommendation, which provides equivalent functionality with better performance characteristics.
A: No — the profile requires that the root body part be a complete SOAP 1.1 envelope. Attachments are additional MIME parts referenced from within the envelope. A standalone XML attachment without a containing SOAP message is outside the profile scope.
A: The standard does not define a size limit. However, practical experience shows that MIME multipart messages exceeding 50 MB cause performance degradation in Java EE and .NET deserialization pipelines. For larger payloads, consider streaming MTOM or chunked transfer encoding at the HTTP transport level.
A: The profile itself does not specify security mechanisms. Use WS-Security to encrypt the SOAP envelope body, and consider encrypting attachment parts individually at the application layer. Be aware that encrypted attachments cannot be inspected by intermediaries and will affect message throughput. For end-to-end encryption, combine with TLS 1.3 at the transport layer.