Skip to main content

XML format

SOAP envelope

The message envelope for SOAP web services, still the backbone of banking, logistics and telecom integrations.

A SOAP message is an <Envelope> with an optional <Header> and a mandatory <Body>. The version is carried by the envelope namespace URI rather than an attribute, so URI comparison is the only correct way to detect it.

Errors are in-band: a fault is a normal <Body> child, often returned with an HTTP 500. That means a failed SOAP call and a successful one are the same shape at the transport layer, and only the payload distinguishes them.

Constraints that bite

  • SOAP 1.1 and 1.2 use different envelope namespaces and different fault structures.
  • Exactly one <Body>; <Header> is optional but must come first if present.
  • A fault is a Body child, not a transport error — HTTP 500 with a valid envelope is normal.
  • Prefixes vary wildly (soap:, soapenv:, SOAP-ENV:, s:) — always match on the namespace URI.
  • Headers marked mustUnderstand="1" must be rejected if unrecognised, not ignored.
Root element
<Envelope>
Media type
application/soap+xml
Extensions
.xml
Namespaces
  • http://schemas.xmlsoap.org/soap/envelope/
  • http://www.w3.org/2003/05/soap-envelope
XMLDir label
soap

Specification: SOAP 1.2 Part 1

A minimal valid document

Every example on this site is checked against the same parser the workspace uses, so what you see below is known to be well-formed.

soap.xml
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetOrder xmlns="https://example.com/orders">
      <OrderId>10024</OrderId>
    </GetOrder>
  </soap:Body>
</soap:Envelope>

Get started

Bring order to the XML your team can't afford to ignore.

Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.