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

Soporte de espacios de nombres

El Creador de expresiones XPath proporciona soporte cualificado para espacios de nombres.

El diálogo Creador de expresiones XPath contiene una tabla de valores de espacio de nombres que:

La tabla encapsula datos desplegables pasados al entorno de ejecución, como parte de los datos de atributos de nodos, y el nodo los utiliza para modificar expresiones mediante la sustitución de prefijo por URI. Las expresiones finales dan soporte a la coincidencia de espacio de nombres porque se procesan en comparación con un árbol de destino cuando las emplea el motor de proceso de mensajes asociado, es decir, el motor de ejecución XPath 1.0 o el motor de ejecución ESQL.

Cuando se especifica una expresión de referencia de campo ESQL en un campo de vía de acceso de sólo lectura o de lectura-grabación, o una expresión de vía de acceso XPath 1.0 en un campo de vía de acceso de sólo lectura o de lectura-grabación o un campo de expresión general (las expresiones generales pueden no contener ninguna expresión de vía de acceso o contener algunas), WebSphere Message Broker entiende el lenguaje a partir de la sintaxis que se utiliza.

XPath es el valor predeterminado para los campos de expresión general que se validan asegurando que satisfacen los requisitos de la gramática de XPath 1.0. Para los campos de expresión de vía de acceso, se presupone XPath si la expresión es válida y empieza con un signo $.

El lenguaje que se puede utilizar lo dicta el editor de propiedades que se utiliza en ese momento para el campo de propiedades de un nodo.

Los prefijos de espacio de nombres se utilizan en una expresión XPath o ESQL para hacer que las sentencias sean más cortas y más fáciles de entender, y al mismo tiempo, seguir dando soporte a la posibilidad de calificar una coincidencia de nombre de elemento mediante la coincidencia también de su URI de espacio de nombres asociado.

Por ejemplo, examine el mensaje siguiente donde el prefijo de espacio de nombre b se altera temporalmente mediante una declaración interna
 <b:a xmlns:b='xyz'>
  <!-- el espacio de nombres de los elementos 'a' y 'c' que utilizan el prefijo 'b'  es xyz -->
  <b:c>
   <b:d  xmlns:b='qrs'>
    <!-- el espacio de nombres de los elementos 'd' y 'e' que utilizan el prefijo 'b' es ahora qrs -->
    <b:e>100</b:e>
   </b:d>
  </b:c>
 </b:a>

Tenga en cuenta que el ámbito de una declaración de espacio de nombres que declara un prefijo se extiende desde el principio del código de inicio en el que aparece hasta el final del código de finalización correspondiente, excluyendo el ámbito de cualquier declaración interna con el mismo prefijo de espacio de nombres. En el caso de un código vacío, el ámbito es el propio código: >.

Para navegar hasta el elemento e en el mensaje anterior, utilice la siguiente expresión XPath en formato legible:
  /b:a/b:c/b2:d/b2:e

Tenga en cuenta que, para evitar que el prefijo generado automáticamente en la correlación de URI generada en el diálogo de expresión sobrecargue el mismo prefijo (en este caso b), al prefijo b interno se le añade un valor numérico para distinguirlo del prefijo b externo. Esta estrategia se repite en cada colisión de nombre de prefijo.

Esta notación es parecida a la expresión ESQL en formato legible equivalente:
  Root.b:a.b:c.b2:d.b2:e

Para dar soporte a prefijos de espacio de nombres dentro de expresiones, el diálogo Creador de expresiones XPath genera automáticamente un prefijo una tabla de valores de espacio de nombres de prefijo a URI (basándose en el contenido de definiciones de esquema importadas, mediante las que se generan expresiones).

Sin el uso de datos de correlación de prefijos de espacio de nombres a URI en esta tabla, el entorno de ejecución se vería obligado a emplear un método menos eficaz, en el que se necesitarían expresiones XPath portables pero detalladas para proporcionar soporte de coincidencia de espacio de nombres.

La expresión anterior:
  /b:a/b:c/b2:d/b2:e
tomaría la forma:
  /*[namespace-uri()='xyz' and local-name()='a']/*[namespace-uri()='xyz' 
     and local-name()='c']/*[namespace-uri()='qrs' and 
     local-name()='d']/*[namespace-uri()='qrs' and local-name()='e']
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 17:00:02


Tema de conceptoTema de concepto | Versión 8.0.0.5 | ak64760_