WebSphere Enterprise Service Bus, Version 6.0.2
Operating Systems:
SMO Structure
The service message object (SMO) structure starts with a root data
object called a ServiceMessageObject, which in turn contains other data objects
representing header, body and context data.
Introduction
There is a schema declaration
that specifies the overall structure of the SMO. The schema is generated by
the WebSphere Integration Developer tooling.
Note: The root ServiceMessageObject
does not appear in XPath expressions: it is represented by a forward slash
(/).
SMO Structure
ServiceMessageObject
Description: root data object
Occurs: 1
Type: ServiceMessageObject, which consists of the following data fields:
context
Description: data other than the message payload
Occurs: 1
Type: ContextType, which consists of the following data fields:
correlation
Description: allows data that is not part of the message payload to be
passed between mediation primitives. Correlation context can link a specific
request message with its response.
Occurs: 0..1
Type: anyType
transient
Description: allows data that is not part of the message payload to be
passed between mediation primitives. Transient context is restricted to a
single message flow, and cannot link requests and responses.
Occurs: 0..1
Type: anyType
failInfo
Description: represents exception information for use when a fail terminal
is wired.
Occurs: 0..1
Type: FailInfoType, which consists of the following data fields:
failureString
Description: indicates the cause of the failure
Occurs: 1
Type: string
origin
Description: the name of the failing mediation primitive
Occurs: 1
Type: string
invocationPath
Description: a list of PrimitiveTypes
Occurs: 1
Type: anonymous type containing 1..* PrimitiveTypes. The PrimitiveType
consists of the following data fields:
inTerminal
Description: the name of an input terminal
Occurs: 1
Type: string
name
Description: the name of a mediation primitive
Occurs: 1
Type: string
outTerminal
Description: the name of an output terminal. The failing mediation primitive
does not name an output terminal because failures occur before using the output
terminal
Occurs: 0..1
Type: string
predecessor
Description: another instance of a FailInfoType
Occurs: 0..1
Type: FailInfoType
primitiveContext
Description: used to store context information about the primitive.
Occurs: 0..1
Type: PrimitiveContextType, which consists of the following data field:
EndpointLookupContext
Description: used to store the result of a WebSphere Service Registry
and Repository query.
Occurs: 0..*
Type: EndpointLookupContextType, which consists of the following data
fields:
endpointReference
Description: conveys the information needed to address the Web service
endpoint.
Occurs: 1
Type: EndpointReferenceType.
registryAnnotations
Description: used to store user-defined metadata.
Occurs: 0..1
Type: RegistryAnnotationsType, which consists of the following data fields:
property
Description: a user-defined property.
Occurs: 0..*
Type: RegistryPropertyType, which consists of the following data fields:
name
Description: the name of the property.
Occurs: 1
Type: string
value
Description: the value assigned to the property.
Occurs: 0..1
Type: string
classification
Description: a user-defined classification.
Occurs: 0..*
Type: anyURI
relationship
Description: a user-defined relationship.
Occurs: 0..*
Type: RegistryRelationshipType, which consists of the following fields:
relationshipName
Description: the name of the relationship.
Occurs: 1
Type: string
targetName
Description: the name of the object that is the target of the relationship.
Occurs: 0..1
Type: string
targetNameSpace
Description: the name space in which the name of the target object occurs.
Occurs: 0..1
Type: anyURI
targetVersion
Description: the version of the target object.
Occurs: 0..1
Type: string
headers
Description: header information associated with the message
Occurs: 1
Type: HeadersType, which consists of the following data fields:
SMOHeader
Description: models generic header fields
Occurs: 0..1
Type: SMOHeaderType, which consists of the following data fields:
MessageUUID
Description: the Universally Unique IDentifier (UUID) of the message.
The UUID is a message tag that enables a specific message to be referred to
unambiguously.
Occurs: 1
Type: string
Version
Description: version information relating to this message.
Occurs: 1
Type: VersionType, which consists of the following data fields:
Version
Description: the version number
Occurs: 1
Type: integer
Release
Description: the release number
Occurs: 1
Type: integer
Modification
Description: the modification number
Occurs: 1
Type: integer
MessageType
Description: the type of message. For example, a request or response
Occurs: 0..1
Type: messageTypeType
Type: string, restricted to the following:
"Request"
"Response"
"Exception"
Operation
Description: the operation
Occurs: 0..1
Type: string
Action
Description: the action
Occurs: 0..1
Type: string
Target
Description: used to store the dynamic endpoint used by the runtime if
the Use dynamic endpoint property is set and there is a valid endpoint in
the field.
Occurs: 0..1
Type: TargetAddressType, which consists of the following data field:
Address
Description: the address of the target.
Occurs: 0..1
Type: anyURI
JMSHeader
Description: models JMS header fields
Occurs: 0..1
Type: JMSHeaderType, which consists of the following data fields:
JMSDestination
Description: the JMSDestination
Occurs: 0..1
Type: anyURI
JMSDeliveryMode
Description: the JMSDeliveryMode
Occurs: 0..1
Type: persistenceType
Type: string, restricted to the following:
"NonPersistent"
"Persistent"
JMSMessageID
Description: the JMSMessageID
Occurs: 0..1
Type: string
JMSTimestamp
Description: the JMSTimestamp
Occurs: 0..1
Type: long
JMSCorrelationID
Description: the JMSCorrelationID. This is used for linking one message
with another
Occurs: 0..1
Type: string
JMSReplyTo
Description: the JMSReplyTo information. Indicates where a reply to this
message should be sent
Occurs: 0..1
Type: anyURI
JMSRedelivered
Description: the JMSRedelivered information
Occurs: 0..1
Type: boolean
JMSType
Description: the JMSType
Occurs: 0..1
Type: string
JMSExpiration
Description: the JMSExpiration
Occurs: 0..1
Type: long
JMSPriority
Description: the JMSPriority
Occurs: 0..1
Type: priorityType
Type: integer, restricted to 0 through 9.
SOAPHeader
Description: models SOAP header fields.
Occurs: 0..*
Type: SOAPHeaderType, which consists of the following data fields:
nameSpace
Description: the nameSpace
Occurs: 1
Type: anyURI
name
Description: the name
Occurs: 1
Type: NCName
prefix
Description: the prefix
Occurs: 0..1
Type: NCName
value
Description: the value
Occurs: 1
Type: anyType
SOAPFaultInfo
Description: models SOAP fault information
Occurs: 0..1
Type: SOAPFaultInfoType, which consists of the following data fields:
faultcode
Description: the fault code
Occurs: 1
Type: QName
faultstring
Description: the fault string
Occurs: 1
Type: string
faultactor
Description: the fault actor
Occurs: 0..1
Type: anyURI
properties
Description: models a list of properties whose names are not fixed from
one message instance to the next
Occurs: 0..*
Type: PropertyType, which consists of the following data fields:
Type: MQHeaderType, which consists of the following data fields:
md
Description: MQ message descriptor (MQMD), excluding message format information.
For full details, refer to WebSphere MQ documentation.
Occurs: 0..1
Type: MQMD, which consists of the following data fields:
Report
Occurs: 0..1
Type: MQLONG
MsgType
Occurs: 0..1
Type: MQLONG
Expiry
Occurs: 0..1
Type: MQLONG
Feedback
Occurs: 0..1
Type: MQLONG
Priority
Occurs: 0..1
Type: MQLONG
Persistence
Occurs: 0..1
Type: MQLONG
MsgId
Occurs: 0..1
Type: MQBYTE24
CorrelId
Occurs: 0..1
Type: MQBYTE24
BackoutCount
Occurs: 0..1
Type: MQLONG
ReplyToQ
Occurs: 0..1
Type: MQCHAR48
ReplyToQMgr
Occurs: 0..1
Type: MQCHAR48
UserIdentifier
Occurs: 0..1
Type: MQCHAR12
AccountingToken
Occurs: 0..1
Type: MQBYTE32
ApplIdentityData
Occurs: 0..1
Type: MQCHAR32
PutApplType
Occurs: 0..1
Type: MQLONG
PutApplName
Occurs: 0..1
Type: MQCHAR28
PutDate
Occurs: 0..1
Type: MQCHAR8
PutTime
Occurs: 0..1
Type: MQCHAR8
ApplOriginData
Occurs: 0..1
Type: MQCHAR4
GroupId
Occurs: 0..1
Type: MQBYTE24
MsgSeqNumber
Occurs: 0..1
Type: MQLONG
Offset
Occurs: 0..1
Type: MQLONG
MsgFlags
Occurs: 0..1
Type: MQLONG
OriginalLength
Occurs: 0..1
Type: MQLONG
control
Description: Format and encoding information describing the message body.
Occurs: 0..1
Type: MQControl, which consists of the following data fields:
Encoding
Occurs: 0..1
Type: MQLONG
CodedCharSetId
Occurs: 0..1
Type: MQLONG
Format
Occurs: 0..1
Type: MQLONG
header
Description: WebSphere MQ message header.
Occurs: 0..*
Type: MQChainedHeaderType, which contains the following fields:
Encoding
Description: control field that describes the encoding of the header.
Occurs: 0..1
Type: MQLONG
CodedCharSetId
Description: control field that describes the encoding of the header.
Occurs: 0..1
Type: MQLONG
Format
Description: control field that describes the format of the header.
Occurs: 0..1
Type: MQCHAR8
One of the following four mutually exclusive elements:
value
Description: contains an arbitrary DataObject representing the message
header, usually requiring a user-provided MQ header data binding.
Type: anyType
opaque
Description: represents an MQ header of the standard structure, as opaque
binary data.
Type: MQOpaqueHeader, which contains the following fields:
StrucId
Occurs: 0..1
Type: MQCHAR4
Version
Occurs: 0..1
Type: MQLONG
Flags
Occurs: 0..1
Type: MQLONG
data
Occurs: 0..1
Type: hexBinary
rfh
Description: Represents an MQ RFH (version 1) header.
Type: MQRFH, which contains the following fields:
Flags
Occurs: 0..1
Type: MQLONG
property
Occurs: 0..*
Type: contains the following fields:
name
Occurs: 1
Type: string
value
Occurs: 1
Type: string
rfh2
Description: represents an MQ RFH (version 2) header.
Type: MQRFH2, which contains the following fields:
Flags
Occurs: 0..1
Type: MQLONG
NameValueCCSID
Occurs: 0..1
Type: MQLONG (limited to 1200, 1208, 13488, or 17584)
folder
Description: represents a folder in an MQRFH version 2.
Occurs: 0..n
Type: MQRFH2Group, containing a name field and a sequence
of group and property fields:
name
Occurs: 1
Type: string
group
Description: represents a group.
Occurs: 0..n
Type: MQRFH2Group (recursive)
property
Description: a name-type-value triplet.
Occurs: 0..n
Type: contains the following fields:
name
Occurs: 1
Type: NCName
type
Occurs: 0..1
Type: string, limited to string, boolean, bin.hex, i1, i2, i4, i8, int, r4,
or r8.
value
Occurs: 1
Type: NCName
body
Description: contains the message payload (the application data exchanged
between service endpoints).
Occurs: 0..1
Type: anyType
Note:
anySimpleType: in an instance of SMO, the value in this field can be any
of the Java simple types such as short, int, long, double, String and boolean.
anyType: in an instance of SMO, this field acts as a place where a more
complex structure can be substituted.
FailInfoType: contains an attribute whose value is a language code.