Rational Developer for System z, Versión 7.6.1

Utilización de espacios de nombres

Este tema describe cómo se utilizan los espacios de nombres en los conversores de petición y de respuesta.

Para la conversión de petición (XML a COBOL), el conversor sólo reconoce el espacio de nombres del elemento raíz. Los espacios de nombres destino se pueden asignar anteponiendo el prefijo de espacio de nombres al elemento (formando un QName) o declarando un espacio de nombres predeterminado. Se aplican las siguientes restricciones:

Para la conversión de respuesta (COBOL a XML), los prefijos de calificación y los espacios de nombres correctos se generan basándose en el esquema o esquemas para el mensaje XML.

Para la optimización, si todos los elementos del mensaje de respuesta están vinculados al mismo espacio de nombres, se califican implícitamente utilizando un espacio de nombres predeterminado. Por ejemplo, el conversor de respuesta genera el mensaje que se muestra en la Figura 1.

Figura 1. Ejemplo de mensaje de conversor de respuesta que utiliza elementos calificados implícitamente
<?xml version="1.0" encoding="UTF-8"?>
<LONEPost xmlns="http://www.loneI.com/schemas/loneIInterface"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.loneI.com/schemas/loneIInterface LONEI.xsd ">
            <Company>IBM</Company>
            <Voucher_number>002</Voucher_number>
            <Transaction_type>001</Transaction_type>
            <Delivery_system>POST</Delivery_system>
            <Transfer_date>16002007</Transfer_date>
            <Posting_date>17152007</Posting_date>
</LONEPost>

En lugar del mensaje mostrado en la Figura 2.

Figura 2. Ejemplo de mensaje de conversor de respuesta que utiliza elementos calificados explícitamente
<?xml version="1.0" encoding="UTF-8"?>
<cbl:LONEPost xmlns:cbl="http://www.loneI.com/schemas/loneIInterface"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.loneI.com/schemas/loneIInterface LONEI.xsd ">
      <cbl:Company>IBM</cbl:Company>
      <cbl:Voucher_number>002</cbl:Voucher_number>
      <cbl:Transaction_type>001</cbl:Transaction_type>
      <cbl:Delivery_system>POST</cbl:Delivery_system>
      <cbl:Transfer_date>16002007</cbl:Transfer_date>
      <cbl:Posting_date>17152007</cbl:Posting_date>
</cbl:LONEPost
Nota: El contenido de la Figura 1 y la Figura 2 es equivalente; sin embargo, la Figura 1 representa un uso más eficiente de los espacios de nombres XML.

El conversor XML de respuesta utiliza esta optimización cuando es posible reducir el tamaño de los mensajes XML, esta optimización tiene ventajas de conservación de tiempo de CPU con respeto al ancho de banda de red.

Nota: Esta optimización sólo es posible si los valores de elementForm (explícitos o implícitos) son los mismos para todos los elementos correlacionados.

La Figura 3 es un ejemplo de esquema XML con valores elementForm mixtos:

Figura 3. Ejemplo de esquema XML con valores de elementForm mixtos
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:addr="http://www.address.com/"
targetNamespace="http://www.address.com/"
elementFormDefault="unqualified" attributeFormDefault="unqualified">

<complexType name="USAddress">
     <sequence>
           <!-- explcit Form="qualified" -->
           <element name="name" type="string" form="qualified"/> 

           <!-- implicit Form="unqualified" -->
           <element name="street" type="string"/>
     </sequence>
</complexType>
</schema>

Para los esquemas con calificación de elementos mixtos, el conversor de respuesta genera los prefijos de espacios de nombres cuando se necesitan. Para el esquema anterior con la calificación de elemento mixto (consulte la Figura 3), el conversor de respuesta genera un mensaje que contiene el fragmento siguiente:

...
<addr:name>addr:name</addr:name> <!-- qualified -->
<street>street</street> <!--unqualified-->
...

Términos de uso | Comentarios

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