There are several examples of metadata such as you might find in a SOAP envelope. They would typically be implemented as separate elements within a separate XML namespace outside the SOAP envelope but within the body. Some of these are still the subject of ongoing standardization.
- Transactions: headers that bind multiple SOAP requests (and other sorts of actions) together to ensure consistent results even in the case of errors.
- Authentication: headers to present a user's authorization to make the given request.
- Tracing: headers to mark each request distinctly for auditing or troubleshooting purposes.
- Versioning: headers to indicate any application-specific versions related to the request.
SOAP example
The top-level element within the body is in a namespace particular to the calendar widget.
<c:AddListing xmlns:c="http://uche.ogbuji.net/soap-example/calendar"> <!-- Request arguments go here -> </c:AddListing>
The element name indicates which particular request we're making of the calendar widget: adding a listing.