Nachrichten unter Verwendung des XMLNSC-Parsers bearbeiten

Bei der Domäne XMLNSC handelt es sich um eine Erweiterung der Domäne XMLNS, die wiederum eine Erweiterung der ursprünglichen Domäne XML ist.

Bei der Domäne XMLNS kam die Unterstützung von Namensbereichen hinzu. Die neue Domäne XMLNSC wurde für die Erstellung einer kompakteren Baumstruktur entwickelt, damit bei der Handhabung umfangreicher Nachrichten weniger Speicher benötigt wird. Es wurde eine neue Domäne hinzugefügt, damit bestehende Anwendungen nicht beeinträchtigt werden.

Nachrichtenbaumstruktur

Der Parser XMLNSC erhält seine kompaktere Baumstruktur durch die Verwendung eines einzelnen Elements des Typs 'Name-Wert', mit dem codierter Text dargestellt wird. Dies steht im Gegensatz zu den separaten Namens- und Wertelementen, die von den Parsern XML und XMLNS verwendet werden. Beachten Sie folgende Nachricht:
    <Folder1>
        <Folder2 Attribute1='AttributeValue1'>
            <Field1><Value1></Field1>
            <Field2 Attribute2='AttributeValue2'><Value2></Field2>
        </Folder2>
    </Folder1>

In der XMLNSC-Domäne wird dies durch zwei Namenselemente (Folder1 und Folder2) sowie vier Elemente des Typs 'Name-Wert' dargestellt (Attribute1, Field1, Field2 und Attribute2).

Beginn der ÄnderungDie Domänen XML und XMLNS unterscheiden sich darin, dass die beiden Felder (Field1 und Field2) jeweilsEnde der Änderung durch ein Namenselement mit einem untergeordneten Wertelement dargestellt werden. Dieser Unterschied erscheint zwar nur gering, häufig verfügen Nachrichten jedoch über solche Feldverzweigungen. Beispiel:
    <Folder1>
        <Folder2>
            <Field1><Value1></Field1>
            <Field2><Value2></Field2>
            ....
            <Field100><Value100></Field100>
        </Folder2>
    </Folder1>

In diesem Fall stellt der XMLNSC-Parser die Nachricht durch zwei Namenselemente und 100 Elemente des Typs 'Name-Wert' dar, während die Parser XML und XMLNS 102 Namens- und 100 Wertelemente sowie weitere 103 Wertelemente für die Darstellung des in den formatierten Nachrichten implizierten Leerraums verwenden.

Beginn der ÄnderungDie Domänen XML und XMLNS erstellen Elemente des Typs 'Name-Wert' für die Leerraumformatierungszeichen zwischen dem Schließen und dem Öffnen der einzelnen Ordner oder Felder. Diese Leerraumelemente enthalten einen leeren Namen und einen Wert für Leerzeichen, Tabulator, Zeilenvorschub oder andere Zeichen, die für die Formatierung des XML-Dokuments verwendet werden. Diese Elemente haben keinen verwendbaren Wert und können deshalb gelöscht werden, um die Komprimierung zu verbessern. Aus demselben Grund werden standardmäßig alle XML-Verarbeitungsanweisungen und Kommentare im Eingabedatenstrom gelöscht, und in der kompakten Domänenstruktur werden keine Elemente erstellt.Ende der Änderung

Attribute und codierter Text

Da sowohl Attribute als auch codierter Text durch Elemente des Typs 'Name-Wert' dargestellt werden, unterscheiden sie sich durch die Verwendung der Elementtypen. Wenn Sie keinen Typ angeben, wird von einem codierten Text ausgegangen. Daher könnte die erste Beispielnachricht oben durch folgende SQL-Anweisungen generiert worden sein:
    SET Origin.Folder1.Folder2.(XMLNSC.Attribute)Attribute1 = 
       'AttributeValue1';
    SET Origin.Folder1.Folder2.Field1 = ‘Value1’;
    SET Origin.Folder1.Folder2.(XMLNSC.Attribute)Attribute2 = 
       'AttributeValue2';
    SET Origin.Folder1.Folder2.Field2 = ‘Value2’;

Der vorhergehende ESQL-Code scheint zwar nahezu identisch mit dem Code, der beim XML-Parser verwendet wird, die Typkonstanten gehören jedoch zum Parser XMLNSC. Die Verwendung von Konstanten, die zu anderen Parsern gehören (beispielsweise zum XML-Parser) führt zu unerwarteten Ergebnissen, da ähnlich benannte Konstanten (beispielsweise XML.Attribute) andere Werte aufweisen.

Beginn der ÄnderungDie folgenden Konstanten werden in der Domäne XMLNSC zum Erstellen von Attributen definiert:
   XMLNSC.SingleAttribute   XMLNSC.DoubleAttribute
Ende der Änderung
Beginn der ÄnderungDie folgende Konstante wird in der Domäne XMLNSC für die Auswahl von Attributen definiert:
   XMLNSC.Attribute
Ende der Änderung
Beginn der ÄnderungBetrachten Sie die folgende XML-Eingabenachricht:
    <Folder1 Item='ValueA'>
        <Item>Value1</Item>
    </Folder1>
Ende der Änderung
Beginn der ÄnderungDamit der Name Item, der hier als Attributname und als Feldname in Folder1 verwendet wird, nicht mehr mehrdeutig ist, kann folgender ESQL-Code verwendet werden:
    SET ItemAttributeValueHolder = InputRoot.XMLNSC.Folder1.(XMLNSC.Attribute)Item;
    SET ItemFieldValueHolder = InputRoot.XMLNSC.Folder1.(XMLNSC.Field)Item;
Ende der Änderung

Diese Methode hat gegenüber der Verwendung einer Feldgruppenindexauswahl mit Folder1 den Vorteil, dass es keine Auswirkungen hat, wenn das Attribut im Eingabedatenstrom nicht vorhanden ist.

Handhabung von gemischtem Text

Beginn der ÄnderungVorhandener gemischter Text wird standardmäßig gelöscht, da davon ausgegangen wird, dass er lediglich Formatierungsleerraum darstellt und keine sonstige Bedeutung hat. Ende der Änderung

Es wurde jedoch ein Modus bereitgestellt, bei dem während der Syntaxanalyse jeglicher Text, der sich nicht zwischen einem DTL-Anfangs- und Endbefehl befindet (d. h. zwischen open->open, close->close und close->open), Beginn der Änderungdurch ein einzelnes nicht benanntes Wert-Element dargestellt wird.Ende der Änderung Die Wertelementtypen unterstützen PCDATA, CDATA sowie eine Mischform dieser beiden.

Bezüglich des Abrufs und der Festlegung von Werten gibt es nach wie vor kein spezielles Verhalten des Syntaxelements. Der SQL-Code kann nur durch eine explizite Adressierung auf Elemente des Typs Wert (Value) zugreifen. Hierfür wurden die folgenden zusätzlichen Konstanten bereitgestellt:
   XMLNSC.Value
   XMLNSC.PCDataValue
   XMLNSC.CDataValue
   XMLNSC.HybridValue
Beginn der ÄnderungDer Modus wird durch die Einstellung der Option Residenter Modus für gemischten Inhalt im Eigenschaftendialognavigator 'XMLNSC-Parseroptionen' auf allen Nachrichtensyntaxanalyseknoten, z. B. dem MQEmpfangsknoten, gesteuert. Für die programmgestützte Steuerung mit Hilfe von Nachrichtenoptionen werden die folgenden Konstanten bereitgestellt:Ende der Änderung
   XMLNSC.MixedContentRetainNone = 0x0000000000000000
   XMLNSC.MixedContentRetainAll  = 0x0001000000000000
Diese Konstanten können in den Klauseln Option sowohl des SQL-Codes CREATE-Anweisung (PARSE-Abschnitt) als auch ASBITSTREAM-Funktion verwendet werden. Beispiel:
   DECLARE X BLOB ASBITSTREAM(InputRoot.XMLNSC.Data OPTIONS 
   XMLNSC.MixedContentRetainAll);
   ...
   CREATE LASTCHILD OF outputRoot PARSE(X OPTIONS 
   XMLNSC.MixedContentRetainNone);

Handhabung von Kommentaren

Vorhandene Kommentare werden ebenfalls standardmäßig gelöscht, da davon ausgegangen wird, dass es sich dabei lediglich um zusätzliche Informationen ohne besondere Bedeutung handelt.

Beginn der ÄnderungEs wird jedoch ein Modus bereitgestellt, bei dem während der Syntaxanalyse alle Kommentare im Dokument (mit Ausnahme der Kommentare in der Dokumentbeschreibung selbst) durch ein Element des Typs 'Name-Wert' mit dem Namen Comment (Kommentar) dargestellt werden. Hierfür wurde die folgende zusätzliche Konstante bereitgestellt.
   XMLNSC.Comment
Ende der Änderung
Beginn der ÄnderungDer Modus wird durch die Einstellung der Option Residenter Modus für Kommentare im Eigenschaftendialognavigator 'XMLNSC-Parseroptionen' auf allen Nachrichtensyntaxanalyseknoten, z. B. dem MQEmpfangsknoten, gesteuert. Für die programmgestützte Steuerung mit Hilfe von Nachrichtenoptionen werden die folgenden Konstanten bereitgestellt:Ende der Änderung
   XMLNSC.CommentsRetainNone = 0x0000000000000000
   XMLNSC.CommentsRetainAll  = 0x0002000000000000
Beispiel:
   DECLARE X BLOB ASBITSTREAM(InputRoot.XMLNSC.Data OPTIONS 
   XMLNSC.CommentsRetainAll);
   ...
   CREATE LASTCHILD OF outputRoot PARSE(X OPTIONS XMLNSC.CommentsRetainNone);

Handhabung von Verarbeitungsanweisungen

Vorhandene Verarbeitungsanweisungen werden ebenfalls standardmäßig gelöscht, da davon ausgegangen wird, dass es sich dabei lediglich um zusätzliche Informationen ohne besondere Bedeutung handelt.

Es wird jedoch ein Modus bereitgestellt, bei dem während der Syntaxanalyse alle Verarbeitungsanweisungen im Dokument (mit Ausnahme der Verarbeitungsanweisungen in der Dokumentbeschreibung selbst) durch ein Element des Typs 'Name-Wert' mit dem entsprechenden Namen und Wert dargestellt werden. Hierfür wurden die folgenden zusätzlichen Konstanten bereitgestellt:
    XMLNSC.ProcessingInstruction
Beginn der ÄnderungDer Modus wird durch die Einstellung der Option Residenter Modus für Verarbeitungsanweisungen im Eigenschaftendialognavigator 'XMLNSC-Parseroptionen' auf allen Nachrichtensyntaxanalyseknoten, z. B. dem MQEmpfangsknoten, gesteuert. Für die programmgestützte Steuerung mit Hilfe von Nachrichtenoptionen werden die folgenden Konstanten bereitgestellt:Ende der Änderung
    XMLNSC.ProcessingInstructionsRetainNone = 0x0000000000000000
    XMLNSC.ProcessingInstructionsRetainAll  = 0x0004000000000000
Beispiel:
    DECLARE X BLOB ASBITSTREAM(InputRoot.XMLNSC.Data 
    OPTIONS XMLNSC.ProcessingInstructionsRetainAll);
    ...
    CREATE LASTCHILD OF outputRoot PARSE(X OPTIONS 
    XMLNSC.ProcessingInstructionsRetainNone);

Einen bestehenden Fluss migrieren

Beginn der ÄnderungUm die neue XMLNSC-Domäne und den Parser verwenden zu können, müssen Sie Ihren ESQL-Code neu codieren, damit XMLNSC in Ihren Pfaden enthalten ist. Betrachten Sie folgende ESQL-Anweisungen:
SET OutputRoot.XML.Person.Salary    = CAST(InputRoot.XML.Person.Salary AS INTEGER) * 3;
SET OutputRoot.XMLNS.Person.Salary  = CAST(InputRoot.XMLNS.Person.Salary AS INTEGER) * 3;
SET OutputRoot.XMLNSC.Person.Salary = CAST(InputRoot.XMLNSC.Person.Salary AS INTEGER) * 3;
Ende der Änderung
Beginn der ÄnderungIn all diesen Fällen hat der XML-Bitstrom, der in der Empfangswarteschlange erwartet und in die Ausgabewarteschlange geschrieben wird, folgendes Format:
    <Person><Salary>42</Salary></Person>
Ende der Änderung

Beginn der ÄnderungDie drei ESQL-Beispiele unterscheiden sich darin, dass sie für diese Elemente verschiedene Parser verwenden. Der Parser kann durch die eingehende Nachricht, mit einem MQRFH2-Header, wobei ein <mcd>-Ordner die Nachrichtengruppendomäne angibt, oder durch die Nachrichtengruppendomäne, die in den Standardeigenschaften des Empfangsknotens des Nachrichtenflusses definiert ist, festgelegt werden. Wenn beide dieser Domänendefinitionen vorhanden sind, hat der Wert für die Nachrichtengruppendomäne im <mcd>-Ordner des MQRFH2-Headers Vorrang.Ende der Änderung

Beginn der ÄnderungWenn Sie eine Migration auf die Domäne XMLNSC durchführen möchten, ist bei Verwendung von MQRFH2-Headern der neue Domänenname im Feld <Msd> des Ordners <mcd> erforderlich. Der neue Domänenname wird im MQRFH2-Header der abgehenden Nachricht angezeigt. Damit externe Anwendungen vor diesen Änderungen geschützt sind, kann die Eigenschaft XMLNSC-Kompaktparser für XMLNS-Domäne verwenden auf dem Empfangsknoten des Flusses sowie auf dem Rechen- oder Zuordnungsknoten angegeben werden. Wenn diese Eigenschaften festgelegt sind, bleiben die Eingabe- und Ausgabenachricht unverändert, und als Wert für das Feld <Msd> kann XMLNS stehen bleiben. Der Nachrichtenfluss verwendet jetzt den Kompaktparser, und die ESQL-Pfad werden mit XMLNSC codiert. Ende der Änderung

Beginn der ÄnderungWenn die eingehenden Nachrichten keine MQRFH2-Header enthalten und die Nachrichtendomäneneigenschaft des Empfangsknotens für die Angabe der Domäne verwendet wird, können Sie eine Migration auf die Domäne XMLNSC durchführen, indem Sie die Domäneneigenschaft des Empfangsknotens des Flusses direkt auf XMLNSC setzen, oder den Wert XMLNS lassen, wobei Sie in diesem Fall darüber hinaus die Eigenschaft XMLNSC-Kompaktparser für XMLNS-Domäne verwenden festlegen müssen. Bei beiden Einstellungen wird der Kompaktparser im Nachrichtenfluss verwendet, und die ESQL-Pfade müssen mit XMLNSC codiert werden.Ende der Änderung

Beginn der ÄnderungWenn die abgehenden Nachrichten keine MQRFH2-Header enthalten, wird die Domäne in den Ausgabenachrichten nirgends angezeigt, und die Festlegung der Eigenschaft XMLNSC-Kompaktparser für XMLNS-Domäne verwenden des Rechenknotens hat keine Auswirkungen.Ende der Änderung

XML-Header erstellen

Der folgende ESQL-Code ist in der XML-Domäne gültig:
SET OutputRoot.XML.(XML.XmlDecl)*.(XML.Version)* = '1.0';
Zur Migration von XMLNS müssen Sie lediglich das Stammverzeichnis (die Root) ändern:
SET OutputRoot.XMLNS.(XML.XmlDecl)*.(XML.Version)* = '1.0';

Hinweis: Auch wenn der Parser XMLNS verwendet wird, gehören die Elementtyp-Konstanten zum Parser XML. Diese Vorgehensweise funktioniert, weil die von den Parsern XML und XMLNS verwendeten Typwerte identisch sind. Beim Parser XMLNSC unterscheiden sich die Typwerte jedoch und müssen daher immer die eigenen Typkonstanten verwenden.

In der XMLNSC-Domäne gibt es keinen besonderen Typ für die XML-Version; sie wird lediglich als Attribut der XML-Deklaration verwendet. Die funktional entsprechende Syntax für obiges Beispiel lautet wie folgt:
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version = '1.0';
Beginn der ÄnderungEbenso werden in der Domäne XMLNSC der XML-Codierungstyp und der XML-Standalone-Modus einfach als Attribute der XML-Deklaration verarbeitet und können in ESQL wie folgt definiert werden:
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding = 'UTF-8';
SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)StandAlone = 'Yes';
Ende der Änderung

Nachrichtenbaumstrukturen kopieren

Beim Kopieren von Baumstrukturen betrachtet der Broker XML und XMLNSC als ungleiche Parser. Dies bedeutet, dass alle Attribute in der Quellenbaumstruktur Elementen in der Zielbaumstruktur zugeordnet werden. Diese Situation entsteht nur, wenn Sie beide Parser in demselben Fluss verwenden - einen für die Eingabe, den anderen für die Ausgabe. Verwenden Sie daher für beide Flüsse den Kompaktparser.

Wenn für den Eingabe- und Ausgabefluss verschiedene Parser verwendet werden müssen, kann die explizite Angabe der Elementtypen in den Pfaden oder die Verwendung der FIELDVALUE-Funktion erforderlich sein, damit anstelle der untergeordneten Baumstrukturen eine Kopie der Skalarwerte gewährleistet ist.

Halten Sie sich an die Richtlinien für XML-Nachrichten, die im Abschnitt Nachrichten in der XML-Domäne bearbeiten genannt werden, sowie an die Informationen im Abschnitt Inhalt des Hauptteils einer Nachricht bearbeiten.

Mit Hilfe von Korrelationsnamen auf Syntaxelemente in der XMLNSC-Domäne zugreifen

Die folgende Tabelle enthält die Korrelationsnamen der einzelnen XML-Syntaxelemente. Verwenden Sie bei der Arbeit in der XMLNSC-Domäne diese Namen, um in Eingabenachrichten auf die Elemente zu verweisen und in Ausgabenachrichten Elemente, Attribute und Werte festzulegen.
Tabelle 1. Korrelationsnamen für XML-Syntaxelemente
Syntax- element Korrelationsname Konstanter Wert
Ordner XMLNSC.Folder 0x01000000
Dokumenttyp 1 XMLNSC.DocumentType 0x01000300
XML-Deklaration 2 XMLNSC.XmlDeclaration 0x01000400
     
Feld- oder Attributwert XMLNSC.Value 0x02000000
PCData value XMLNSC.PCDataValue 0x02000000
CData value XMLNSC.CDataValue 0x02000001
Hybridwert XMLNSC.HybridValue 0x02000002
     
Entitätsverweis XMLNSC.EntityReference 0x02000100
     
Feld XMLNSC.Field 0x03000000
PCData XMLNSC.PCDataField 0x03000000
CData XMLNSC.CDataField 0x03000001
Hybrid XMLNSC.HybridField 0x03000002
     
Attribut XMLNSC.Attribute 0x03000100
Einfaches Anführungszeichen XMLNSC.SingleAttribute 0x03000101
Doppeltes Anführungszeichen XMLNSC.DoubleAttribute 0x03000100
     
Namensbereichsdeklaration XMLNSC.NamespaceDecl 0x03000102
Einfaches Anführungszeichen XMLNSC.SingleNamespaceDecl 0x03000103
Doppeltes Anführungszeichen XMLNSC.DoubleNamespaceDecl 0x03000102
     
Bitstromdaten XMLNSC.BitStream 0x03000200
     
Entitätsdefinition 1 XMLNSC.EntityDefinition 0x03000300
Einfaches Anführungszeichen XMLNSC.SingleEntityDefinition 0x03000301
Doppeltes Anführungszeichen XMLNSC.DoubleEntityDefinition 0x03000300
     
Kommentar XMLNSC.Comment 0x03000400
     
Verarbeitungsanweisung XMLNSC.ProcessingInstruction 0x03000401
Hinweise:
  1. Dokumenttyp wird nur für Entitätsdefinitionen verwendet. Beispiel:
    SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)BodyDocument.(XMLNSC.EntityDefinition)TestDef =
    		          'Compact Tree Parser XML Test Module Version 1.0';
  2. Bei der XML-Deklaration handelt es sich um einen speziellen Ordnertyp, der untergeordnete Elemente für die Version usw. enthält. Beispiel:
    -- XML-Deklaration erstellen 		
    SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.Version = 1.0;
    SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.Encoding = 'UTF8';
    SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.Standalone = 'yes';

Beginn der ÄnderungVerwendung von 'EntityDefintion' und 'EntityReference' mit dem XMLNSC-ParserEnde der Änderung

Beginn der ÄnderungAn zwei Beispielen wird die Verwendung von EntityDefintion und EntityReference mit dem XMLNSC-Parser mit Hilfe von ESQL veranschaulicht. Bei beiden Beispielen wird dieselbe Eingabenachricht verwendet:
<BookInfo dtn="BookInfo" edn="author" edv="A.N.Other">
<Identifier>ES39B103T6</Identifier>
</BookInfo>
Ende der Änderung
Beginn der ÄnderungDas erste Beispiel stellt eine Möglichkeit dar, EntityDefintion und EntityReference mit dem XMLNSC-Parser zu verwenden. Durch das Beispiel wird folgende Ausgabenachricht generiert:
<!DOCTYPE BookInfo [<!ENTITY author "A.N.Other">]>
<BookInfo><Identifier>ES39B103T7</Identifier><entref>&author;</entref></BookInfo>
Ende der Änderung
Beginn der ÄnderungIm folgenden ESQL-Code wird XMLNSC.EntityDefinition verwendet, um die fest codierte Entität 'author' mit dem Wert A.N.Other zu definieren, der aus edv aus der Eingabenachricht stammt. XMLNSC.EntityReference wird verwendet, um einen Verweis auf die Entität 'author' im XML-Nachrichtenhauptteil zu erstellen.
SET OutputRoot.MQMD = InputRoot.MQMD; 
DECLARE cursor REFERENCE TO InputRoot.XMLNSC.BookInfo;
SET OutputRoot.XMLNSC.BookInfo.Identifier = cursor.Identifier;
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)* NAME = cursor.dtn;
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)*.(XMLNSC.EntityDefinition)* NAME = 'author';
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)*.(XMLNSC.EntityDefinition)author VALUE = cursor.edv;
SET OutputRoot.XMLNSC.(XMLNSC.BookInfo).entref.(XMLNSC.EntityReference)* = 'author';
Ende der Änderung

Beginn der ÄnderungMit der Variable cursor wird auf folgende Variablen gezeigt: auf dtn, den Dokumenttypnamen, edv, den Entitätsdefinitionswert und den Wert für Identifier. Die Werte für diese Variablen stammen aus der Eingabenachricht. Ende der Änderung

Beginn der ÄnderungDieses zweite Beispiel veranschaulicht die Erstellung einer Ausgabenachricht, die eine Entitätsdefinition und einen Verweis auf diese Entität enthält, wobei dies auf dem Inhalt derselben Eingabenachricht basiert. Durch das Beispiel wird folgende Ausgabnachricht mit einer Entitätsdefinition namens author und einem Verweis auf die Entität im XMl-Nachrichtenhauptteil generiert:
<!DOCTYPE BookInfo [<!ENTITY author "Book 1">]>
<BookInfo Identifier="ES39B103T6">&author;</BookInfo>
Ende der Änderung
Beginn der ÄnderungIm folgenden ESQL-Code wird EntityDefintion und EntityReference mit dem XMLNSC-Parser zur Generierung der vorhergehenden Ausgabenachricht verwendet:
SET OutputRoot.MQMD = InputRoot.MQMD; 
DECLARE cursor REFERENCE TO InputRoot.XMLNSC.BookInfo;
CREATE FIELD OutputRoot.XMLNSC.BookInfo;
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)* NAME = cursor.dtn;
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)*.(XMLNSC.EntityDefinition)* NAME = cursor.edn;
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)*.(XMLNSC.EntityDefinition)* VALUE = 'Book 1';
SET OutputRoot.XMLNSC.(XMLNSC.Folder)*[<].(XMLNSC.EntityReference)* = cursor.edn;
SET OutputRoot.XMLNSC.Identifier.(XMLNSC.DoubleAttribute)Identifier = cursor.Identifier;
Ende der Änderung

Beginn der ÄnderungXMLNSC.EntityDefinition wird für die Definition der Entität author mit dem Wert Book 1 verwendet. Anschließend wird in der Nachricht mit XMLNSC.EntityReference ein Verweis auf die Entität 'author' erstellt. Mit der Variable cursor wird auf folgende Variablen gezeigt: auf dtn, den Dokumenttypnamen, edn, den Entitätsdefinitionsnamen und den Wert für Identifier. Diese Variablen stammen alle aus der Eingabenachricht. Mit dem Code XMLNSC.DoubleAttribute werden Anführungszeichen zu Identifier hinzugefügt. Zum Hinzufügen von Hochkommata zu Identifier kann XMLNSC.SingleAttribute verwendet werden.Ende der Änderung

Modi für XMLNSC-Parser

Standardmäßig löscht der XMLNSC-Parser Dokumentelemente, die normalerweise keine geschäftliche Bedeutung haben. Es sind jedoch Parsermodi verfügbar, die die Sicherung dieser Elemente erzwingen. Sie können diese Modi auf den Eigenschaften des Knotens konfigurieren, der angibt, dass die Nachricht in der XMLNSC-Domäne analysiert wird.

Für den XMLNSC-Parser sind folgende Parsermodi gültig:
XMLNSC.MixedContentRetainNone
XMLNSC.MixedContentRetainAll
XMLNSC.CommentsRetainNone
XMLNSC.CommentsRetainAll
XMLNSC.ProcessingInstructionsRetainNone
XMLNSC.ProcessingInstructionsRetainAll
Im folgenden Beispiel werden die Modi XMLNSC.ProcessingInstructionsRetainAll und XMLNSC.ProcessingInstructionsRetainNone verwendet, um die Anweisungen zur Dokumentverarbeitung bei der Syntaxanalyse zu erhalten:
DECLARE X BLOB ASBITSTREAM(InputRoot.XMLNSC.Data OPTIONS XMLNSC.ProcessingInstructionsRetainAll);
...     
CREATE LASTCHILD OF outputRoot PARSE(X OPTIONS XMLNSC.ProcessingInstructionsRetainNone);
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
XML-Parser und -Domänen
Übersicht zu ESQL
Zugehörige Tasks
Einen Nachrichtenfluss entwerfen
Nachrichtenflussinhalte definieren
Nachrichten in der XML-Domäne bearbeiten
Zugehörige Verweise
ESQL-Referenz
SET-Anweisung
FIELDVALUE-Funktion
ASBITSTREAM-Funktion
CREATE-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac26040_