WebSphere WebSphere Enterprise Service Bus, Version 6.0.1 Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows

Cuerpo de SMO

El cuerpo de un objeto SMO (Objeto de mensaje de servicio) se define por referencia a un mensaje WSDL (Web Services Description Language).

Introducción

Generalmente, la estructura del cuerpo de SMO se define por referencia a un mensaje WSDL.

Para cada parte definida por el mensaje WSDL, existe un elemento bajo el cuerpo de SMO. El contenido de los elementos de SMO son de la estructura de la definición de la parte de WSDL. Los nombres de elemento dependen del tipo de mensaje de WSDL a partir del que se define el SMO.

Estilo acomodado de literal de documento y otros estilos de mensaje WSDL parecidos

El estilo acomodado de literal de documento de WSDL produce cuerpos de SMO que contienen un único elemento. Este estilo de WSDL lo utilizan generalmente los diseñadores de servicios web y se genera mediante el editor de interfaz de WebSphere Integration Developer.

Si el mensaje WSDL tiene una única parte, escrita en la definición de WSDL mediante un elemento global, el cuerpo de SMO contiene un único elemento. El elemento único aparece después del elemento global de WSDL.
Nota: El elemento único no está cualificado por un espacio de nombres. El espacio de nombres de un elemento global se pasa por alto.
Por ejemplo, considere el WSDL siguiente.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns="urn://www.example.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="DLWInterface" targetNamespace="urn://www.example.org">
  <wsdl:types>
    <xsd:schema targetNamespace="urn://www.example.org" xmlns:tns="urn://www.example.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="operation1">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="name" nillable="true" type="xsd:string"/>
            <xsd:element name="age" nillable="true" type="xsd:int"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="operation1Response">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="surname" nillable="true" type="xsd:string"/>
            <xsd:element name="height" nillable="true" type="xsd:float"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
    <wsdl:message name="operation1RequestMsg">
    <wsdl:part element="tns:operation1" name="operation1Parameters"/>
  </wsdl:message>
    <wsdl:message name="operation1ResponseMsg">
    <wsdl:part element="tns:operation1Response" name="operation1Result"/>
  </wsdl:message>
    <wsdl:portType name="DLWInterface">
    <wsdl:operation name="operation1">
      <wsdl:input message="tns:operation1RequestMsg" name="operation1Request"/>
      <wsdl:output message="tns:operation1ResponseMsg" name="operation1Response"/>
    </wsdl:operation>
  </wsdl:portType>
</wsdl:definitions>
Este ejemplo de WSDL produciría un cuerpo de SMO parecido al siguiente.
<body xsi:type="tns:operation1RequestMsg">
  <operation1>
    <name>Bob</name>
    <age>35</age>
  </operation1>
</body>

Este ejemplo tendría una expresión XPath de tipo /body/operation1/name

Otros estilos de WSDL

Si mensaje WSDL tiene varias partes, el nombre de cada elemento del cuerpo de SMO es el mismo que la parte WSDL correspondiente. Si el mensaje WSDL tiene una única parte descrita por un tipo XSD, el nombre de cada elemento del cuerpo SMO también coincide con el nombre de la parte WSDL correspondiente.

Por ejemplo, considere el WSDL siguiente.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns="urn://www.example.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="NonDLWInterface" targetNamespace="urn://www.example.org">

  <wsdl:message name="operation2RequestMsg">
    <wsdl:part name="name" type="xsd:string"/>
    <wsdl:part name="age" type="xsd:int"/>
  </wsdl:message>
  <wsdl:message name="operation2ResponseMsg">
    <wsdl:part name="surname" type="xsd:string"/>
    <wsdl:part name="height" type="xsd:float"/>
  </wsdl:message>
  <wsdl:portType name="NonDLWInterface">
    <wsdl:operation name="operation2">
      <wsdl:input message="tns:operation2RequestMsg" name="operation2Request"/>
      <wsdl:output message="tns:operation2ResponseMsg" name="operation2Response"/>
    </wsdl:operation>
  </wsdl:portType>
</wsdl:definitions>
Este ejemplo de WSDL produciría un cuerpo de SMO parecido al siguiente.
<body xsi:type="tns:operation2RequestMsg">
    <name>Bob</name>
    <age>35</age>
</body>

Este ejemplo tendría una expresión XPath de tipo /body/name

Editor de interfaces de WebSphere Integration Developer

Si crea una interfaz mediante el editor de interfaces de WebSphere Integration Developer, el WSDL resultante será el estilo acomodado de literal de documento. No obstante, puede ver y editar archivos WSDL que no correspondan al estilo acomodado de literal de documento, utilizando el editor de la interfaz. En algunos casos, es posible que el editor de interfaz no muestre la información necesaria para determinar la estructura del cuerpo de SMO.


Reference topic

Condiciones de uso | Evalúe esta página

Icono de fecha y horaÚltima actualización: 1 Mar 2006
http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp?topic=/com.ibm.websphere.wesb.doc.nl1_6.0.1\ref\rwesb_SMOBody.html

(C) Copyright IBM Corporation 2005. Reservados todos los derechos.
Este centro de información está basado en tecnología Eclipse. (http://www.eclipse.org)