XML Message Schema

This schema defines the message format for the XML Messaging Specification (XMSG). It provides the ability to encode multiple XML documents, non-XML documents, and metadata about the message or documents themselves.

The root of the message is the message element.

The element for encoding a message.

The element for encoding a message hop.

The element for encoding a message or document property.

The element for encoding a document.

The element for encoding a message failure.

The element for encoding a message receipt.

The element for encoding an XML document.

The element for encoding a non-XML document.

The element for referencing "out-of-band" documents.

A message may consist of an set of XML documents, non-XML documents, or references to "out-of-band" documents.

As a document is routed through a system to a target participant--as identified by the "to" property--a set of "system hops" encoded as hop elements may be added the message by the processing application. This encodes an audit trail for where the message has been.

A message also has properties associated with it. These properties are either first-class or arbitrary (application-defined). Any first-class property is encoded as an attribute and has a semantic defined in the XMSG specification.

In addition, each document may have properties. These properties may also be first-class or arbitrary (application-defined). A document's properties also specify the identity of the document.

The message may also specify a manifest, which is a pointer to a document that describes the contents of the message. The specification of the content of the manifest is left to the application or layered protocol.

Identifies the sender of the message via a URI value. This value must be absolute.

Identifies the intended recipiant of the message via a URI value. This value must be absolute.

Identifies to whom the reply should be send via a URI. Typically, this value is copied to the "to" attribute of the reply message. This value must be absolute.

Identifies for whom the message was sent of behalf of by the sender via a URI value. This value must be absolute.

A unique identifier that, when paired with the originator value, should be unique over time for the originator.

An application-dependent value that further qualifies to process to be performed by the recipiant.

Identifies the priority level at which the recipiant should process the message.

Sets the message processing to lowest priority.

Sets the message processing to low priority.

Sets the message processing to normal priority.

Sets the message processing to high priority.

Sets the message processing to highest priority.

Identifies a date and time in the future at which the message should be consider expired and no longer relavant.

An identifier that, when paired with the from value (sender), should be unique over time for the sender.

An application-dependent tracking code that can be used to track transactions, etc. over multiple messages. This value is not necessarily unique to a specific message instance.

The date and time the message was generated by the sender.

The URI of the document in the message that should be considered a manifest. The syntax and semantics of this message is application-dependent.

Identifies that a receipt for this message is requested because asynchronous processing of the reply will occurr.

Identifies the receipt for which this message is a reply.

This type represents a routing hop between nodes in a system. Essentially, this type records a specific hop in an audit trail for where the message has been.

Identifies the date upon which the message was received.

Identifies the host or system that received the message.

Identifies the transport method used in this hop. Typically, this value is some code list "http" or "https".

This type encodes a specific metadata property as a name/value pair.

Identifies the name of the property.

Specifies the value to be associated with this property.

This type represents a document encoded within a message. This document may be an inline XML document, an inline non-XML document, or an out-of-band XML document via a reference. In all cases, a set of properties may be associated with the document.

The "uri" attribute identifies the URI of the document. This URI must be unique to the message and should be considered the identity of the document. In this way, the URI can be use to match document between the sender and receiver.

The URI to be used to identify the contained or referred document. This value must be absolute.

An application-dependent version string for this document.

This type encodes an inline XML document. The first and only child is a the document element of the embedded XML document.

This type encodes the non-XML data using some encoding scheme. The content of this type is the encoded data.

The content type of the enclosed data.

The encoding of the enclosed data (e.g. base64, etc.).

This type encodes a reference to an "out-of-band" document. Such a document exists external to the message and is transport dependant on how it is resolved. This document may be XML or non-XML.

The URI of the referenced document.

The MIME type of the referenced document.

The encoding of the referenced document. This property maybe defaulted to the protocol used to access the document.

This type represents a failure message. The contents of the message is the "human readable" portion of the failure.

The time at which the failure occurred.

An application-dependent status code.

This type represents a receipt for message. It is used for asynchrous messages.

The date and time of the receipt as generated by the system which received the message to which this is a receipt.

A message tracking code to be used to match a future message with a "for.receipt" value of the same value.

This simple type represents an absolute URI.

This simple type represents a string with at least one character.

This simple type represents a MIME type specification.