Algunos primitivos de mediación utilizan una serialización XML de un objeto de mensaje de servicio (SMO).
Los primitivos de mediación Registrador de mensajes y XSLT utilizan una serialización XML del SMO.
El primitivo de mediación Registrador de mensajes registra una serialización XML del SMO. El primitivo de mediación XSLT transforma mensajes utilizando una transformación XSLT 1.0. La transformación opera en una serialización XML del SMO. Si debe saber qué datos registra el Registrador de mensajes, o escribir transformaciones XSL que operen en una serialización XML, debe saber cómo se representa el SMO como XML.
Generalmente, un SMO contiene datos de cabecera, información de contexto y un cuerpo que contiene la carga del mensaje. La carga del mensaje hace referencia a los datos de aplicación que se intercambian entre puntos finales de servicio. Los datos de cabecera tienen una estructura fija; la estructura de los datos del contexto es parcialmente fija y está parcialmente definida por el diseñador de flujos. La estructura del cuerpo se define mediante una referencia a un mensaje definido por WSDL.
Los primitivos de mediación Registrador de mensajes y XSLT permiten especificar la raíz de la serialización, y el elemento raíz del documento XML refleja esta raíz.
Generalmente, el elemento raíz recibe el nombre según la raíz seleccionada en la estructura de SMO y se encuentra en el espacio de nombres predeterminado. No obstante, si se serializa el SMO completo, seleccionando / como raíz del primitivo de mediación, el nombre del elemento raíz es smo y se encuentra en el espacio de nombres de SMO.
<?xml version="1.0" encoding="UTF-8"?> <smo:smo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:accounts="urn://www.example.com/accounts" xmlns:smo="http://www.ibm.com/websphere/sibx/smo/v6.0.1"> <context> <correlation xsi:type="accounts:CorrelateByAgentId"> <agentid>SMI537654-2</agentid> </correlation> <transient xsi:type="accounts:ExchangeRate"> <from>GBP</from> <to>USD</to> <multiplier>1.74068</multiplier> </transient> </context> <headers> <SMOHeader> <MessageUUID>b048778f-0701-0000-0080-80c5b8a4d8b8</MessageUUID> <Version> <Version>6</Version> <Release>0</Release> <Modification>1</Modification> </Version> </SMOHeader> </headers> <body xsi:type="accounts:processPaymentRequestMsg"> <processPayment> <agentid>SMI537654-2</agentid> <priority>2</priority> <payment> <value>415.26</value> <currency>USD</currency> <date>2005-01-16Z</date> <account>546219G</account> </payment> </processPayment> </body> </smo:smo>
<?xml version="1.0" encoding="UTF-8"?> <body xsi:type="accounts:processPaymentRequestMsg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:accounts="urn://www.example.com/accounts"> <processPayment> <agentid>SMI537654-2</agentid> <priority>2</priority> <payment> <value>415.26</value> <currency>USD</currency> <date>2005-01-16Z</date> <account>546219G</account> </payment> </processPayment> </body>
Generalmente, el cuerpo de la serialización XML se define por referencia a un mensaje WSDL.