WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Conjuntos de mensajes: importar de WSDL: objetos y limitaciones generados

Cuando se realizan importaciones de WSDL se generan varios objetos, pero es posible que se apliquen restricciones.

Objetos generados

Archivos copiados mediante la importación de línea de mandatos
El mandato mqsicreatemsgdefsfromwsdl copia los archivos WSDL que necesita al espacio de trabajo antes de ejecutar el proceso de importación. Estos archivos son los archivos WDSL de nivel superior y cualquier importación resuelta desde una ubicación relativa. Los archivos se copian bajo la aplicación, la biblioteca o el conjunto de mensajes especificado en una carpeta llamada importFiles.
Archivo de informe

El importador WSDL añade el resultado de la operación de importación a un archivo de informe que lista todos los errores que se han producido durante el proceso. El nombre de archivo del archivo de informe es aplicación o biblioteca.wsdl.report.txt o conjunto de mensajes.wsdl.report.txt.

Definiciones de mensajes SOAP

Los archivos .xsds de SOAP necesarios se añaden a la aplicación o biblioteca. Si está utilizando un conjunto de mensajes, se añaden archivos .mxsds al conjunto de mensajes.

Para analizar documentos de instancia SOAP 1.2, elimine manualmente las definiciones SOAP 1.1 e importe las definiciones SOAP 1.2 utilizando el asistente de Archivo de definición de mensajes, seleccionando Mensaje suministrado por IBM.

Si la aplicación, biblioteca o conjunto de mensajes tiene capas TDS o CWF, es posible que reciba una serie de avisos relacionados con las definiciones SOAP importadas. La mayor parte de estos avisos se pueden pasar por alto, pero se deben tener en cuenta los valores permitidos para los atributos booleanos. En SOAP 1.1 los valores booleanos son 1 ó 0, mientras que en SOAP 1.2 los valores son true y false. La representación XML de los valores booleanos para una aplicación, biblioteca o conjunto de mensajes se especifica en las propiedades físicas del formato físico XML y es posible que se deba establecer en consecuencia.

Raíces de mensaje o archivos de definición de mensajes
Si está utilizando un conjunto de mensajes, se crean definiciones de mensajes. Si está utilizando una aplicación o biblioteca, se crean raíces de mensaje en lugar de definiciones de mensajes. Otros nombres de archivo de raíz de mensaje o definición de mensajes se crean como nombre archivo entrada.xsd (para aplicaciones y bibliotecas) o nombre archivo entrada.mxsd (para conjuntos de mensajes) y su contenido depende del estilo WSDL.
document-style
Las partes del mensaje WSDL correspondientes a style="document" (que incluye todas las partes de la cabecera SOAP, errores y errores de cabecera) hacen referencia a un elemento definido en el esquema XML. Este elemento se importa como un elemento global y un mensaje del intermediario en el archivo .xsd o .mxsd.

La política de salida xsi:type del mensaje se establece en "Nunca".

rpc-style
Las partes del mensaje WSDL correspondientes a style="rpc" (y exclusivamente aquellas asignadas al cuerpo del mensaje SOAP) hacen referencia a un tipo definido en el esquema XML. En este caso, los mensajes de entrada y salida se crean tal como se muestra en la tabla siguiente:
  Un mensaje de entrada Un mensaje de salida
Derivado de El elemento hijo wsdl:input (si lo hay) de la operación WSDL, y el mensaje WSDL y las partes que lo identifican El elemento hijo wsdl:output (si lo hay) de la operación WSDL, y el mensaje WSDL y las partes que lo identifican
Nombre del elemento El valor del atributo de nombre en el elemento operación de WSDL El valor del atributo de nombre en el elemento operación de WSDL seguido del sufijo "Response"
Espacio de nombres del elemento El valor del atributo de espacio de nombres en el elemento soap:body correspondiente El valor del atributo de espacio de nombres en el elemento soap:body correspondiente

Cada mensaje tiene un tipo complejo local que es una secuencia de elementos. El nombre de cada elemento es el valor del atributo de nombre de las partes WSDL del mensaje identificadas por el elemento de entrada o de salida. Estos elementos no tienen ningún espacio de nombres (la representación del esquema subyacente tiene el formato form="unqualified") y su ámbito es local para evitar colisiones de nombres. El tipo de estos elementos locales es el tipo de esquema XML al que hace referencia el atributo de tipo del elemento de parte correspondiente. El tipo es global en el esquema WSDL.

Si el elemento soap:body se ha definido con use="encoded" en la definición WSDL, la definición de mensaje incluye una referencia al grupo de atributos encodingStyle en el espacio de nombres SOAP-ENV y la política de salida xsi:type del mensaje se establece en "Seguir reglas de codificación SOAP". De lo contrario, la política de salida xsi:type del mensaje se establece en "Nunca".

WSDLs generados usando .NET
En algunos casos, los archivos WSDL que se generan utilizando .NET incluyen referencias de elemento al propio esquema; por ejemplo:
<xsd:complexType>
		<xsd:sequence>
			<xsd:element ref="s:schema"/>
		</xsd:sequence>
</xsd:complexType>
Para que los archivos WSDL de este tipo se importen correctamente a WebSphere Message Broker Toolkit sin errores de validación, debe añadir manualmente una sentencia de importación de espacio de nombres al espacio de nombres del esquema; por ejemplo:
<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/>

Coloque la sentencia de importación en primer lugar en el elemento del esquema y asegúrese de que aparezca antes de cualquier definición de elemento o tipo complejo. Valide de nuevo el WSDL pulsando el botón derecho del ratón en el WSDL actualizado y pulsando Validar.

Restricciones

Existen restricciones relacionadas con la importación de definiciones WSDL cuando las definiciones WSDL no son compatibles con WS-I.
Matrices SOAP
Una definición de WSDL 1.1 puede definir una matriz SOAP (aplicable únicamente al estilo de codificación rpc de WDSL y no conforme a las normas WS-I):
    <xsd:complexType name="t">
          <xsd:complexContent>
            <xsd:restriction base="SOAP-ENC:Array">
              <xsd:sequence>
                <xsd:element name="item" type="string" maxOccurs="unbounded"/>
              </xsd:sequence>
              <xsd:attribute  ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
            </xsd:restriction>
          </xsd:complexContent>
    </xsd:complexType>

Algunos uso de la sintaxis de las matrices SOAP no está soportada. Aunque se crea un árbol práctico durante el análisis y se puede serializar durante la escritura, se aplican las siguientes restricciones.

  • El modelo no tiene en cuenta el atributo SOAP-ENC:arrayType.
  • El modelo de matrices transmitidas parcialmente no tiene en cuenta el atributo SOAP-ENC:offset.

    Por ejemplo, al primer elemento de una matriz especificada con offset[2] se debe acceder en ESQL, no como InputRoot.MRM.array.item[3], sino como InputRoot.MRM.array.item[1].

  • El modelo de las matrices multidimensionales reduce la representación a una sola dimensión. Por ejemplo, a una matriz bidimensional se accede en ESQL, no como InputRoot.MRM.array.item[x][y], sino como InputRoot.MRM.array.item[i] donde el índice i debe calcularse correctamente.
Elementos anónimos
El extracto de WSDL anterior describe un documento de una instancia SOAP con el formato siguiente:
    <SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]">
       <item xsi:type="xsd:string">Una serie de caracteres de texto general</item>
       <item xsi:type="xsd:token">Una restricción del tipo de serie</item>
       <item xsi:type="xsd:Name">ARestrictionOfTheTokenType</item>
    </SOAP-ENC:Array>

El modelo de intermediario maneja este documento como está previsto pero, en la matriz de codificación SOAP, los elementos pueden utilizar elementos de tipo del espacio de nombres de codificación SOAP. Por lo tanto, una aplicación que utilice la misma definición puede crear un documento de la instancia con el formato siguiente:

    <SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]">
       <SOAP-ENC:string>Una serie de caracteres de texto general</SOAP-ENC:string>
       <SOAP-ENC:token>Una restricción del tipo de serie</SOAP-ENC:token>
       <SOAP-ENC:Name>ARestrictionOfTheTokenType</ SOAP-ENC:Name>
    </SOAP-ENC:Array>

Para manejar este caso, debe editar manualmente el modelo de intermediario que se crea al importar el WSDL, a menos que sea aceptable que el analizador lo trate como un elemento autodefinido.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:59:31


Tema de referenciaTema de referencia | Versión 8.0.0.5 | ad30560_