El análisis opaco es una característica de rendimiento que ofrece el dominio XMLNS.
El análisis opaco XMLNS ha sido suplantado por la característica de análisis opaco del dominio XMLNSC. No utilice el analizador XMLNS para el análisis opaco a menos que el flujo de mensajes requiera características que únicamente ofrece el analizador XMLNS.
Si está diseñando un flujo de mensajes y sabe que no se hace nunca referencia a un elemento concreto del mensaje en el flujo de mensajes, puede especificar que se efectúe un análisis opaco de dicho elemento. Esto disminuye el coste de análisis y escritura del mensaje y puede mejorar el rendimiento en otras partes del flujo de mensajes.
Para especificar que un elemento XML se analice de forma opaca, utilice una sentencia ESQL CREATE con una cláusula PARSE para analizar el documento XML. Establezca el calificador FORMAT de la cláusula PARSE en la serie de caracteres constante sensible a las mayúsculas y minúsculas 'XMLNS_OPAQUE' y el calificador TYPE de la cláusula PARSE en el nombre del elemento XML que debe analizarse de forma opaca.
La cláusula TYPE puede especificar un nombre de elemento sin espacio de nombres (para que coincida con cualquier espacio de nombres) o con un prefijo de espacio de nombres o un URI de espacio de nombres completo (para que coincida con un espacio de nombres específico).
Los elementos opacos XMLNS no se pueden especificar mediante las propiedades del nodo.
Considere el ejemplo siguiente:
DECLARE soap NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
DECLARE BitStream BLOB ASBITSTREAM(InputRoot.XMLNS
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId);
--Sin espacio de nombres
CREATE LASTCHILD OF OutputRoot
DOMAIN('XMLNS')
PARSE (BitStream
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId
FORMAT 'XMLNS_OPAQUE'
TYPE 'Body');
--Prefijo de espacio de nombres
CREATE LASTCHILD OF OutputRoot
DOMAIN('XMLNS')
PARSE (BitStream
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId
FORMAT 'XMLNS_OPAQUE'
TYPE 'soap:Body');
--URI de espacio de nombres
CREATE LASTCHILD OF OutputRoot
DOMAIN('XMLNS')
PARSE (BitStream
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId
FORMAT 'XMLNS_OPAQUE'
TYPE '{http://schemas.xmlsoap.org/soap/envelope/}:Body');