Pfade und Typen in einer XML-Nachricht bearbeiten

Wenn Sie auf Elemente innerhalb eines XML-Nachrichtenhauptteils verweisen oder diese festlegen, müssen Sie in ESQL-Feldverweisen die richtigen Feldtypkonstanten verwenden, um diese zu adressieren.

In der folgenden Tabelle sind die Feldtypkonstanten aller gültigen Elemente aufgeführt.

Syntaxelement Feldtypkonstante
CDataSection (XML.CDataSection)
Comment (XML.Comment)
Content

(XML.Content)
(XML.pcdata) wird ebenfalls unterstützt

Element

(XML.Element)
(XML.tag) wird ebenfalls unterstützt

EntityReferenceEnd (XML.EntityReferenceEnd)
EntityReferenceStart (XML.EntityReferenceStart)
ProcessingInstruction (XML.ProcessingInstruction)
WhiteSpace (XML.WhiteSpace)

Wenn ein Typ in einem Pfadelement nicht vorhanden ist, spielt der Typ des Syntaxelements keine Rolle. D. h., das Pfadelement name entspricht jedem Syntaxelement mit dem Namen name, und zwar ungeachtet des Elementtyps. Ebenso wie ein Pfadelement einen Namen und keinen Typ angeben kann, kann es einen Typen und keinen Namen angeben. Dieser Typ des Pfadelements entspricht allen Syntaxelementen, die den angegebenen Typ haben, und zwar ungeachtet des Namens. Betrachten Sie das folgende Beispiel:

 FIELDNAME(InputBody.(XML.Element)[1])

Bei diesem Beispiel wird der Name des ersten Elements im Hauptteil der Nachricht zurückgegeben. Das folgende Beispiel generischen XML-Codes zeigt, wann in den Pfaden Typen verwendet werden müssen:

<tag1 attr1='abc'> 
  <attr1>123<attr1> 
</tag1>

Der Pfad InputBody.tag1.attr1 verweist auf das Attribut attr1, da Attribute in einer Syntaxbaumstruktur, die von einem XML-Parser generiert wurde, vor verschachtelten Elementen angezeigt werden. Zum Verweis auf das Element attr1 müssen Sie einen Pfad verwenden:

InputBody.tag1.(XML.Element)attr1

Sie sollten in solchen Fällen stets Typen einfügen, damit deutlich wird, auf welches Syntaxelement verwiesen wird.

Der ESQL-Code

SET OutputRoot.XML.Element1.(XML.Element)Attribute1 = '123';

ist im Wesentlichen eine Kurzform des folgenden vollständig qualifizierten Pfads:

SET OutputRoot.XML.(XML.Element)Element1.(XML.Element)Attribute1.
	(XML.Content) = '123';

Beachten Sie folgenden XML-Code:

 <?xml version="1.0"?>
<!DOCTYPE Order SYSTEM "Order.dtd">
<Order>
   <ItemNo>1</ItemNo>
   <Quantity>2</Quantity>
</Order>

Der Pfad InputBody.Order verweist auf das Syntaxelement (XML.DocTypeDecl), da dieses vor dem XML-Hauptteil in der Syntaxbaumstruktur angezeigt wird und denselben Namen trägt. Wenn Sie auf das Element ItemNo verweisen möchten, verwenden Sie den Pfad InputBody.(XML.Element)Order.ItemNo. Sehen Sie sich beispielsweise folgende XML-Eingabenachricht an:

<doc><i1>100</i1></doc>

112233 wird <i1> mit dem folgenden ESQL-Ausdruck zugeordnet:

SET OutputRoot.XML.(XML.Element)doc.I1=112233;
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu ESQL
Nachrichten modellieren
Zugehörige Tasks
Nachrichtenfluss entwerfen
Nachrichtenflussinhalte definieren
ESQL-Dateien verwalten
Zugriff auf Attribute in XML-Nachrichten
Zugriff auf XmlDecl in einer XML-Nachricht
Zugriff auf DocTypeDecl in einer XML-Nachricht
Zugehörige Verweise
Compute-Knoten
ESQL-Referenz
FIELDNAME-Funktion
SET-Anweisung
Übersicht über ESQL-Feldreferenzen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:21

ac17280_