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

XMLNSC: Declaraciones de espacios de nombres

El analizador XMLNSC proporciona soporte completo para los espacios de nombres.

El analizador XMLNSC establece el espacio de nombres correcto en cada elemento de sintaxis que crea mientras analiza un mensaje y almacena declaraciones de espacio de nombres en el árbol de mensaje. El analizador utiliza las declaraciones de espacio de nombres para seleccionar los prefijos adecuados cuando genera el árbol de mensaje.

El analizador XMLNSC utiliza los siguientes tipos de campos para representar declaraciones de espacio de nombres. Utilice las constantes de tipo de campos que aparecen en esta lista cuando cree declaraciones de espacio de nombres en el árbol de mensajes.

Tabla 1. Constantes de tipo de campo específico
Creación XML Constante de tipo de campo XMLNSC Valor
Declaración de espacio de nombres
XMLNSC.SingleNamespaceDecl
XMLNSC.DoubleNamespaceDecl
0x03000102
0x03000103
Cuando acceda a elementos y atributos en el árbol de mensaje, no utilice las constantes que se listan en la tabla anterior; en su lugar, utilice la constante de tipo de campo genérico que coincida con los dos valores de la tabla anterior.
Tabla 2. Constantes de tipo de campo genérico
Creación XML Constante de tipo de campo XMLNSC Finalidad
Declaración de espacio de nombres XMLNSC.NamespaceDecl Establece coincidencia entre las declaraciones de espacio de nombres entre comillas simples y dobles.

Ejemplos de código ESQL

Ejemplo 1 : Declaración de un prefijo no vacío
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns:ns1 = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Se crea el siguiente mensaje XML:
<ns1:root xmlns:ns1="namespace1">
    <ns1:example>ABCDE</ns1:example>
</ns1:root>
Observe que la constante space1 de NAMESPACE es sólo una variable local en el ESQL; no afecta al prefijo del espacio de nombres ns1 que define el elemento NameSpaceDecl y aparece en el mensaje de salida.

Sin embargo, tal como se muestra aquí, space1 se puede utilizar para inicializar NameSpaceDecl para ns1. De esta forma se evita la necesidad de duplicar el URI de espacio de nombres ('namespace1' en este ejemplo), que a la práctica normalmente es una serie mucho más larga.

Ejemplo 2 : Declaración de un prefijo vacío
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Se crea el siguiente mensaje XML:
<root xmlns="namespace1">
    <example>ABCDE</example>
</root>
Observe que los elementos de la sintaxis root y example deben tener un espacio de nombres que no esté vacío. La declaración de espacio de nombres predeterminada significa que cualquier elemento hijo sin un prefijo está en el espacio de nombres namespace1.
Ejemplo 3 : Ejemplo de uso incorrecto
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.root.example = 'ABCDE';
Este ejemplo hace que el analizador XMLNSC emita el mensaje BIP5014 cuando intenta crear el árbol de mensajes. Los elementos root yexample están ambos dentro del ámbito de la declaración de espacio de nombres predeterminada; por lo tanto, en ESQL, estos elementos deben calificarse mediante un prefijo de espacio de nombres enlazado a ese espacio de nombres.
Ejemplo 4: Adición de una declaración de espacio de nombres con un prefijo
SET OutputRoot.(XMLNSC.DoubleNamespaceDecl)xmlns:ns2 = space1;
En este ejemplo de una sentencia SET se crea una declaración de espacio de nombres con el nombre ns2 en el espacio de nombres xmlns.
CREATE LASTCHILD OF OutputRoot IDENTITY (XMLNSC.DoubleNamespaceDecl)xmlns:ns2 VALUE space1;
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAMESPACE 'xmlns' NAME 'ns2' VALUE space1;
Estos ejemplos de una sentencia CREATE también crean una declaración de espacio de nombres con el nombre ns2 en el espacio de nombres xmlns.
Sin embargo, tenga en cuenta que el ejemplo siguiente de sentencia CREATE crea una declaración de espacio de nombres con el nombre de xmlns:ns2 en el espacio de nombres predeterminado:
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAME 'xmlns:ns2' VALUE space1;
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:58:55


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