Die nicht transparente Syntaxanalyse ist ein Leistungsmerkmal der XMLNS-Domäne.
Die nicht transparente Syntaxanalyse in XMLNS wurde von der Funktion für die nicht transparente Syntaxanalyse der XMLNSC-Domäne abgelöst. Verwenden Sie den XMLNS-Parser für die nicht transparente Syntaxanalyse nur für den Fall, dass für Ihren Nachrichtenfluss Funktionen erforderlich sind, die nur der XMLNS-Parser bietet.
Wenn Sie bei der Erstellung eines Nachrichtenflusses wissen, dass auf ein bestimmtes Element in einer Nachricht in einem Nachrichtenfluss nie verwiesen wird, können Sie angeben, dass für dieses Element eine nicht transparente Syntaxanalyse ausgeführt wird. Dies verringert die Kosten für die Syntaxanalyse und das Schreiben der Nachricht und führt möglicherweise zu einer Leistungssteigerung in anderen Teilen des Nachrichtenflusses.
Um festzulegen, dass ein XML-Element auf nicht transparente Weise syntaktisch analysiert werden soll, geben Sie eine ESQL CREATE-Anweisung mit einer PARSE-Klausel für die Syntaxanalyse des XML-Dokuments an. Geben Sie für das Qualifikationsmerkmal FORMAT der PARSE-Klausel die konstante Zeichenfolge 'XMLNS_OPAQUE' an, wobei die Groß-/Kleinschreibung beachtet werden muss, und geben Sie für das Qualifikationsmerkmal TYPE der PARSE-Klausel den Namen des XML-Elements an, das auf nicht transparente Weise syntaktisch analysiert werden soll.
In der TYPE-Klausel kann der Elementname ohne Namespace (so dass jeder Namespace zutrifft) oder mit einem Namespace-Präfix oder einer vollständigen Namespace-URI (so dass ein bestimmter Namespace zutrifft) angegeben werden.
Nicht transparente Elemente in XMLNS können nicht über die Knoteneigenschaften angegeben werden.
Beispiel:
DECLARE soap NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
DECLARE BitStream BLOB ASBITSTREAM(InputRoot.XMLNS
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId);
--Ohne Namespace
CREATE LASTCHILD OF OutputRoot
DOMAIN('XMLNS')
PARSE (BitStream
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId
FORMAT 'XMLNS_OPAQUE'
TYPE 'Body');
--Namespace-Präfix
CREATE LASTCHILD OF OutputRoot
DOMAIN('XMLNS')
PARSE (BitStream
ENCODING InputRoot.Properties.Encoding
CCSID InputRoot.Properties.CodedCharSetId
FORMAT 'XMLNS_OPAQUE'
TYPE 'soap:Body');
--Namespace-URI
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');