Rational Developer for System z, Versión 7.6.1

Definir elementos y tipos estándar comunes en los XSD y WSDL generados

En este tema se describen los parámetros de definición para la característica “Incluir y hacer referencia a elementos y tipos utilizados normalmente”.

El contenido de esquema común se define para la herramienta de línea de mandatos xsebatch a través de un archivo XML que se puede especificar en el parámetro de línea de mandatos (-commtypes para “Tipos comunes”) o por el atributo “commTypesFile“ especificado en el archivo ServiceSpecification.xml.

El usuario puede alterar temporalmente el archivo xml commtypes especificado con el atributo “commTypesFile“ para los elementos de mensaje de entrada y salida (InputMessage y OutputMessage) en el archivo de especificación de opciones del procesador por lotes (ServiceSpecification.xml).

Cuando el usuario crea y especifica el archivo xml commtypes, el proceso de generación WSDL y XSD utiliza la información especificada en el archivo commtypes para generar elementos, tipos e informes de esquema en lugar de tipos incorporados, elementos y espacios de nombres. La lista de tipos comunes del parámetro de línea de mandatos se puede alterar temporalmente por el contenido el archivo o archivos especificados en el atributo commTypesFile.

La Tabla 1 es un listado de los elementos y atributos del elemento de tipos comunes.
Tabla 1. Elementos y atributos del elemento de tipos comunes
Elemento o atributo Definición
CommTypes Elemento contenedor para grupos comunes.
CommGroup Grupo para listar información de tipos comunes.
lang Especifica el lenguaje origen del origen de aplicación que se procesa.
format Para lenguajes origen que permiten formato de origen fijo o libre, este atributo debe especificar el formato que se utiliza. Actualmente este atributo está reservado y se establece en "fixed".
CommonType Los atributos de este elemento describen cómo se deben procesar los elementos de datos origen de aplicación comunes (consulte más abajo).
srcName Especifica el nombre origen del libro de copia que aparece en el origen de programa de aplicación COBOL. Los libros COPY especificados en el atributo srcName no tienen referencias cruzadas con los archivos origen de aplicación COBOL, pero deben estar presentes y accesibles para la herramienta del procesador por lotes cuando se procesa el origen de aplicación COBOL.
nativeName Especifica el nombre de elemento de datos COBOL para el que se deben tomar la referencia y el tipo de esquema XML del esquema común.
commSchemaLocation Especifica el atributo de ubicación del esquema común (xsi:schemaLocation) que se genera en la sentencia de importación para WSDL o XSD que lo contienen.
Nota: Para escenarios CICS Webservices, esta ubicación debe estar accesible cuando se ejecutan las herramientas. De lo contrario, se visualiza un mensaje de error y el proceso de generación no se completa.
commNamespace Especifica el valor de la declaración de espacio de nombres que se genera para hacer referencia al esquema común.
xmlElementName Especifica el valor del nombre de elemento del esquema común al que se debe hacer referencia desde el WSDL o XSD que lo contienen.
commNsPrefix Especifica el valor del prefijo de espacio de nombres que se debe generar para calificar la referencia de los elementos y tipos comunes.

La Figura 1 es un ejemplo de un archivo xml commtype utilizado para indicar al procesador que utilice tipos, elementos y espacios de nombres comunes en un ejemplo de lenguaje fuente COBOL.

Figura 1. Ejemplo de un archivo XML commtype
 
<?xml version="1.0" encoding="UTF-8"?>
<commtypes:CommonTypes xmlns:commtypes="http://www.ibm.com/xmlent/commxsd/emf/commtypes">
  <commtypes:CommGroup lang="COBOL" format="fixed"> 
    <commtypes:CommonType 
               srcName="COMMHDR" 
               nativeName="commHeader" 
               commSchemaLocation="commHeader.xsd"
               commNamespace="http://www.sample.com/schemas/commHeader"
               xmlElementName="commHeader"
               commNsPrefix="hdr1"
               />
  </commtypes:CommGroup>
</commtypes:CommonTypes>

El esquema de archivo xml commtype se muestra en la Figura 2.

Figura 2. Esquema de archivo XML commtype
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:commtypes="http://www.ibm.com/xmlent/commxsd/emf/commtypes" 
targetNamespace="http://www.ibm.com/xmlent/commxsd/emf/commtypes">
  <xsd:element name="CommGroup">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="commtypes:CommonType" minOccurs="1" maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="lang" type="xsd:string"/>
      <xsd:attribute name="format" type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="CommonTypes">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="commtypes:CommGroup"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="CommonType">
    <xsd:complexType>
      <xsd:attribute name="srcName" type="xsd:string"/>
      <xsd:attribute name="xmlElementName" type="xsd:string"/>
      <xsd:attribute name="nativeName" type="xsd:string"/>
      <xsd:attribute name="commSchemaLocation" type="xsd:string"/>
      <xsd:attribute name="commNamespace" type="xsd:string"/>
      <xsd:attribute name="commNsPrefix" type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
Cuando el ejemplo de archivo xml commtype mostrado en la Figura 1 se aplica al ejemplo de fuente COBOL y libros de copia que se muestran en la Figura 1 en el tema Elementos y tipos utilizados normalmente, el esquema generado para departmentUpdateRequest se muestra en Figura 3 y el esquema generado para departmentUpdateReply se muestra en Figura 4.
Nota: Para la documentación, sólo se visualiza el esquema parcial.

La Figura 5 muestra el esquema commHeader.

Figura 3. Ejemplo de parte del esquema generado para el elemento departmentUpdateRequest
<schema attributeFormDefault="qualified" elementFormDefault="qualified" 
            targetNamespace="http://www.TST01I.com/schemas/TST01IInterface" 
            xmlns="http://www.w3.org/2001/XMLSchema" 
            xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface"
            xmlns:hdr1="http://www.sample.com/schemas/commHeader"> 
      <import namespace="http://www.sample.com/schemas/commHeader" 
            schemaLocation="commHeader.xsd"/>
      <complexType name="departmentUpdateRequest">
        <sequence>
          <element ref="hdr1:commHeader"/>
          <element form="qualified" name="member_count">
            <simpleType>
              <restriction base="int">
                <minInclusive value="0"/>
                <maxInclusive value="999999999"/>
              </restriction>
            </simpleType>
          </element>
          <element name="dept_details" type="cbl:departmentupdaterequest_dept__details"/>
        </sequence>
      </complexType>
Figura 4. Ejemplo de parte del esquema generado para el elemento 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" 
            xmlns:hdr1="http://www.sample.com/schemas/commHeader"> 
      <import namespace="http://www.sample.com/schemas/commHeader" 
            schemaLocation="commHeader.xsd"/>
      <complexType name="departmentUpdateReply">
        <sequence>
          <element ref="hdr1:commHeader"/>
          <element form="qualified" name="updStatus">
            <annotation>
              <appinfo source="http://www.wsadie.com/appinfo">
                <initialValue kind="SPACE"/>
              </appinfo>
            </annotation>
            <simpleType>
              <restriction base="string">
                <maxLength value="3"/>
              </restriction>
            </simpleType>
          </element>
        </sequence>
      </complexType>
      <element name="employeeUpdateRequest" type="cbl:departmentUpdateReply">
        <annotation>
          <documentation source="com.ibm.etools.xmlent.batch">8.0.0.V200803251533</documentation>
        </annotation>
      </element>
    </schema>

La Figura 5 es un ejemplo del esquema para el archivo commonHdr.xsd.

Figura 5. Ejemplo del esquema generado para el archivo commonHdr.xsd
<?xml version="1.0" encoding="UTF-8"?><schema attributeFormDefault="qualified" 
elementFormDefault="qualified" targetNamespace="http://www.sample.com/schemas/commHeader" 
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:cbl="http://www.sample.com/schemas/commHeader">
  <complexType name="commheader">
    <sequence>
      <element name="commId">
        <simpleType>
          <restriction base="short">
            <minInclusive value="0"/>
            <maxInclusive value="9999"/>
          </restriction>
        </simpleType>
      </element>
      <element name="commRevDate">
        <annotation>
          <appinfo source="http://www.wsadie.com/appinfo">
            <initialValue kind="SPACE"/>
          </appinfo>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="8"/>
          </restriction>
        </simpleType>
      </element>
      <element name="commDigest">
        <annotation>
          <appinfo source="http://www.wsadie.com/appinfo">
            <initialValue kind="SPACE"/>
          </appinfo>
        </annotation>
        <simpleType>
          <restriction base="string">
            <maxLength value="40"/>
          </restriction>
        </simpleType>
      </element>
    </sequence>
  </complexType>
  <element name="commHeader" type="cbl:commheader">
    <annotation>
      <documentation source="com.ibm.etools.xmlent.batch">8.0.0.V200803251533</documentation>
    </annotation>
  </element>
</schema>

Normas y condiciones

En este tema se listan las normas y condiciones para la característica “Incluir y hacer referencia a elementos y tipos utilizados normalmente”.

Las normas y condiciones son las siguientes:
  1. El contenido del archivo XML de tipos comunes debe coincidir con el esquema especificado en este documento. Si no lo hace, el comportamiento del procesador por lotes será imprevisible.
  2. Si el archivo XML de tipos comunes se especifica en la línea de mandatos y también se han especificado archivos xml de tipos comunes en el atributo commTypesFile, el archivo XML de tipos comunes de la línea de mandatos se altera temporalmente por la información del archivo o archivos especificados con el atributo commTypesFile.
  3. Si se especifica un archivo o archivos XML de tipos comunes (en la línea de mandatos y/o en el archivo de opciones de procesador por lotes) pero no existen realmente, el procesador por lotes emite un aviso y sigue, pasando por alto el archivo o archivos especificados.
  4. Si se especifica el archivo XML de tipos comunes en el atributo commTypesFile para elementos de mensaje de entrada y salida, la información común de elementos y tipos sólo se aplica a los InputMessage o OutputMessage para los que se especifica el atributo commTypesFile.
  5. Si se especifica el archivo XML de tipos comunes en la línea de mandatos o en el atributo commTypesFile pero no se encuentran elementos en el archivo origen que correspondan a algún itemName especificado en el archivo XML de tipos comunes, se emite un mensaje de aviso.
  6. Si se especifica el archivo XML de tipos comunes en la línea de mandatos o en el atributo commTypesFile, y la propiedad GEN_ELEMENT_FORM_QUALIFIED del atributo CodeGenProperty se ha establecido en false (en el archivo de configuración de proceso por lotes o en las preferencias de la GUI para el espacio de trabajo), el procesador por lotes emite un aviso y sigue, pasando por alto el archivo o archivos XML de tipos comunes especificado.

Términos de uso | Comentarios

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