Rational Developer para System z, Versión 7.6

Elementos y tipos utilizados normalmente

En este tema se describe cómo los usuarios de Enterprise Service Tools pueden incluir y hacer referencia a elementos de interfaz utilizados comúnmente (que se obtienen de libros de copia COBOL) utilizando mecanismos de inclusión XSD y WSDL estándar.

Incluir y hacer referencia a elementos y tipos utilizados normalmente

Nota: Esta característica se aplica a las herramientas del procesador por lotes EST para el escenario de desarrollo "ascendente" de nuevas interfaces de servicio desde aplicaciones COBOL utilizando la tecnología "Conversión XML compilada". Únicamente está disponible a través de archivos de configuración del procesador por lotes y sólo para fuentes COBOL. Los generadores utilizados en el proceso de generación por lotes deben tener acceso a los libros de copia a los que se hace referencia en el fuente COBOL.

Es normal en el desarrollo de aplicaciones COBOL crear secuencias reutilizables de código colocándolas en archivos “COPY” (libros COPY) y reutilizarlas incluyendo el mismo libro COPY en múltiples archivos origen (mediante la sentencia COBOL COPY).

La Figura 1 es un ejemplo de una secuencia de código típica para reutilizar su definición de datos que se repite en múltiples estructuras de datos. En este ejemplo, las dos definiciones de datos reutilizan el mismo libro COPY denominado COMMHDR.

Figura 1. Ejemplo de reutilización de elemento de definición de datos COBOL
       01 departmentUpdateRequest.
           COPY COMMHDR.
           COPY DEPTBDY.

             

       01 departmentUpdateReply.
           COPY COMMHDR.
           02 updStatus pic xxx.

La Figura 2 y la Figura 3 muestran el contenido el libro de copia COMMHDR y el libro de copia DEPTBDY.

Figura 2. Ejemplo de libro de copia COMMHDR
         05 commHeader.
             10 commId                  PIC 9(4).
             10 commRevDate             PIC X(8).
             10 commDigest              PIC X(40).
Figura 3. Ejemplo de libro de copia DEPTBDY
             2 member-count  pic 9(9) binary.
             2 dept-details.
               3 dept-title           pic x(35).
               3 dept-id              pic x(45).
               3 dept-seq             pic 9(4).
               3 dept-hq              pic x(75).  

Información para incluir y hacer referencia a elementos y tipos utilizados normalmente

Antes de IBM® Rational Developer for System z Versión 7.5, las interfaces de servicio generadas a partir de estructuras de datos que hacían referencia a libros COPY necesitaban que se generasen esquemas XML completos (XSD) para cada estructura de datos.

Al utilizar la entrada que se muestra en la Figura 1, las versiones anteriores de los asistentes de Enterprise Service Tools generaban la salida que se muestra en la Figura 4 (departmentUpdateRequest), y la Figura 5 (departmentUpdateReply).
Nota: Para la documentación, sólo se visualiza el esquema parcial.
Figura 4. Ejemplo de parte del esquema generado para el tipo de interfaz WSDL para departmentUpdateRequest
     <schema ... 
targetNamespace="http://www.TST01I.com/schemas/TST01IInterface"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface">

      <complexType name="departmentUpdateRequest">
        <sequence>
          <element name="commHeader"
type="cbl:departmentupdaterequest_commheader"/>
          <element form="qualified" name="member_count">
            <simpleType>
              ...
            </simpleType>
          </element>
          <element name="dept_details"
type="cbl:departmentupdaterequest_dept__details"/>
        </sequence>
      </complexType>
      <complexType name="departmentupdaterequest_commheader">
        <sequence>
          <element form="qualified" name="commId">
            <simpleType>
              ...
            </simpleType>
          </element>
          <element form="qualified" name="commRevDate">
            <simpleType>
              ...
            </simpleType>
          </element>
          <element form="qualified" name="commDigest">
            <simpleType>
              ...
            </simpleType>
          </element>
        </sequence>
      </complexType>
      <complexType name="departmentupdaterequest_dept__details">
        <sequence>
          ...          
        </sequence>
      </complexType>
      <element name="departmentUpdateRequest" type="cbl:departmentUpdateRequest">
    </schema>
Figura 5. Ejemplo de parte del esquema generado para el tipo de interfaz WSDL para departmentUpdateReply
      <schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://www.TST01O.com/schemas/TST01OInterface" 
xmlns="http://www.w3.org/2001/XMLSchema" 
xmlns:cbl="http://www.TST01O.com/schemas/TST01OInterface">
      <complexType name="departmentUpdateReply">
        <sequence>
          <element name="commHeader" type="cbl:departmentupdatereply_commheader"/>
          <element form="qualified" name="updStatus">
            ...
          </element>
        </sequence>
      </complexType>
      <complexType name="departmentupdatereply_commheader">
        <sequence>
          <element form="qualified" name="commId">
            ...
          </element>
          <element form="qualified" name="commRevDate">
            ...
          </element>
          <element form="qualified" name="commDigest">
            ...
          </element>
        </sequence>
      </complexType>
      <element name=" departmentUpdateReply" type="cbl:departmentUpdateReply">
        ...
      </element>
    </schema>  
Tal como es muestra en la Figura 4 y la Figura 5, las declaraciones para el elemento commHeader y para su tipo estás duplicadas para departmentUpdateRequest y para departmentUpdateReply. Las únicas diferencias son:
  1. El nombre de tipo complejo para cada elemento:

    (departmentupdaterequest_commheader. versus departmentupdatereply_commheader)

    y

  2. Los espacios de nombres para los esquemas:

    (xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface. versus xmlns:cbl="http://www.TST01O.com/schemas/TST01OInterface) .

Como se puede utilizar un solo libro COPY para múltiples servicios, la multiplicidad de elementos con tipo similar puede llevar a la duplicación innecesaria de código generado para los clientes a partir de estos archivos WSDL o XSD.

Esta característica permite a los usuarios especificar un libro COPY común y tipos y elementos XSD comunes que múltiples interfaces pueden utilizar sin tener contenido de esquema duplicado.


Términos de uso | Comentarios

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