Rational Developer for System z, Versión 7.6.1

Generación de esquemas XML compuestos a partir de múltiples estructuras de lenguaje

En este tema se describe cómo el procesador por lotes de Enterprise Service Tools genera esquemas XML compuestos cuando se especifican múltiples estructuras de lenguaje para interfaces de petición y respuesta de un programa de aplicación empresarial. Los elementos InputMessage y OutputMessage del archivo ServiceSpecification.xml se utilizan para especificar las estructuras de lenguaje para los mensajes de petición y respuesta respectivamente.

El procesador de Enterprise Service Tools sigue estos pasos para generar un esquema XML compuesto (supongamos sólo el mensaje de petición/entrada para estos pasos):
  1. Se procesa cada elemento InputMessage, y la estructura de lenguaje a la que se hace referencia (nativeTypeName) se convierte en un tipo complejo equivalente y se almacena en el esquema XML de petición. No se puede establecer el nombre de cada tipo de complejo generado.
  2. Para cada tipo complejo creado en el paso 1, se define un elemento XML y se almacena en el esquema XML de petición. Los atributos minOccurs y maxOccurs de cada elemento XML se establecen en los valores de los atributos lowerBound y upperBound del elemento InputMessage correspondiente. El nombre de cada elemento XML se establece en el valor del atributo xmlEleName del elemento InputMessage respectivo. Si no se especifica el atributo xmlEleName o si su valor no es exclusivo con respecto a otros elementos InputMessage, se utiliza un nombre generado.
    Nota: Cuando se utiliza el asistente de servicio Web de la Pasarela SOAP de IMS, el atributo xmlEleName nunca se especifica
  3. Cuando se ha definido un tipo complejo y un elemento XML para cada estructura de lenguaje, se define un tipo complejo de nivel superior individual que contiene todos los elementos XML en el mismo orden en el aparecen en las series de elementos InputMessage.
    Nota: Cuando se utiliza el asistente de servicio Web de Pasarela SOAP de IMS, el orden de la serie de elementos InputMessage se determina mediante el diseño especificado en la página “Diseños de mensajes IMS”.
  4. Se define un elemento XML global con un tipo complejo de nivel superior creado en el paso 3. El nombre del elemento global se establece en el valor del atributo XsdSpecIn/@xsdEleName.
    Nota: Se utiliza un nombre generado cuando no se especifica el atributo xsdEleName.

La Tabla 1 ilustra la especificación de múltiples elementos InputMessage y el esquema XML compuesto resultante.

Tabla 1. Ejemplo de un esquema XML compuesto resultante de la especificación de múltiples elementos InputMessage
ServiceSpecification.xml Esquema XML compuesto
<InputMessage 
  nativeTypeName="REQ-HEADER"
  xmlEleName="RequestHeader"
  lowerBound="1" upperBound="1">
  <ItemSelectionArray ../>

<InputMessage
  nativeTypeName="REQ-BODY"
  xmlEleName="REQ-BODY"
  

lowerBound="1"upperBound="10">
  <ItemSelectionArray ../>
</InputMessage>


<InputMessage
  nativeTypeName="REQ-SUM"
  xmlEleName="RequestSummary"
  lowerBound="1" upperBound="1">
  <ItemSelectionArray ../>
</InputMessage>

<XsdSpecIn 
  xsdEleName="ServiceRequest" ../>
<complexType name="REQ_HEADER">
  <sequence ../>
</complexType>

<complexType name="REQ_BODY">
  <sequence ../>
</complexType>

<complexType name="REQ_SUM">
  <sequence ../>
</complexType>

<complexType   
  name="EIS_COMPOSITE_MESSAGE">
  <sequence>
    <element name="RequestHeader"
      type="p:REQ_HEADER"
      minOccurs="1" maxOccurs="1" />
    <element name="RequestBody"
      type="p:REQ_BODY"
      minOccurs="1" maxOccurs="10" />
    <element name="RequestSummary"
      type="p:REQ_SUMMARY"
      minOccurs="1" maxOccurs="1" />
   </sequence>
</complexType>

<element name="ServiceRequest"
  type="p:EIS_COMPOSITE_MESSAGE" >
</element>

Limitaciones y condiciones de error

En esta sección se describen las limitaciones del procesador por lotes y las restricciones en la generación de esquemas XML compuestos a partir de estructuras de lenguaje.

No están permitidos múltiples InputMessage y OutputMessages si se especifican archivos de correlación en lugar de archivos origen de lenguajes (es decir, el encuentro en el medio no está soportado ya que esta función se ocupa de la generación de XSD).

Múltiples elementos InputOutputMessage no están permitidos. Utilice múltiples elementos InputMessage y OutputMessage en su lugar.

Una estructura de lenguaje no se puede especificar más de una vez en una serie de elementos InputMessage u OutputMessage. Esto significa que un tipo complejo de esquema XML obtenido de una estructura de lenguaje no puede volver a aparecer luego en un mensaje XML con inclusiones y/o exclusiones de nivel de campo idénticas o diferentes.

Todas las estructuras de lenguaje especificadas en elementos InputMessage y OutputMessage (nativeTypeName) deben tener nombres exclusivos sin tener en cuenta el archivo origen de lenguaje (importFile) en el que residen.

Todos los nombres de elementos XML especificados en elementos InputMessage y OutputMessage (xmlEleName) deben ser exclusivos con respecto a los demás elementos InputMessage u OutputMessage. No es un error que un nombre de elemento XML aparezca en una serie de elementos InputMessage y OutputMessage.

Importante: No están soportadas las dependencias de estructuras entre lenguajes.

Por ejemplo, un tema OCCURS DEPENDING ON (ODO) no se puede referir a un objeto ODO de otra estructura.


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)