In der folgenden Tabelle sind die Java-Methoden, mit denen auf die
Elementbaumstrukturen zugegriffen werden kann, sowie die entsprechenden ESQL-Feldtypkonstanten für
jeden Punkt in der Baumstruktur aufgeführt.
Java-Zugriffsmechanismus aus MbMessageAssembly |
ESQL-Feldtypkonstante |
getMessage().getRootElement() |
InputRoot |
getMessage().getRootElement().getLastChild() |
InputBody |
getLocalEnvironment().getRootElement() |
InputLocalEnvironment |
getGlobalEnvironment().getRootElement() |
Umgebung |
getExceptionList().getRootElement() |
InputExceptionList |
Mit den folgenden Methoden können Sie eine Nachrichtenbaumstruktur von einem Element des Typs 'MbElement' durchlaufen:
- getParent()
- gibt das übergeordnete Element des aktuellen Elements zurück
- getPreviousSibling()
- gibt das vorhergehende gleichgeordnete Element des aktuellen Elements zurück
- getNextSibling()
- gibt das nächste gleichgeordnete Element des aktuellen Elements zurück
- getFirstChild()
- gibt das erste untergeordnete Element des aktuellen Elements zurück
- getLastChild()
- gibt das letzte untergeordnete Element des aktuellen Elements zurück
Alternativ dazu verwenden Sie ein Document Object Model-Objekt (DOM-Objekt) und die DOM-API, um zu den Elementen zu navigieren und diese zu bearbeiten.
MBMessage stellt folgende Methoden bereit:
- getDOMDocument()
- ruft ein W3C-Objekt org.w3c.dom.Document für den Nachrichtentext ab.
- createDOMDocument()
- ruft ein W3C-Objekt org.w3c.dom.Document für den Nachrichtentext ab.
MbElement stellt die folgende Methode bereit:
- getDOMNode()
- ruft ein W3C-Objekt org.w3c.dom.Node für das Nachrichtenelement ab.
Im folgenden Beispiel wird eine einfache XML-Nachricht und die logische Baumstruktur gezeigt, die aus der Nachricht erstellt würde. Die Nachricht wurde mithilfe von WebSphere MQ gesendet. In der logischen Baumstruktur werden auch die
Methoden gezeigt, die zum Navigieren in der Baumstruktur aufgerufen werden können.
<document>
<chapter title='Einleitung'>
Text
</chapter>
</document>

Die in diesem Diagramm verwendete Baumstruktur wurde durch die Syntaxanalyse im vorigen XML-Beispiel erstellt.
- Durch den Aufruf von 'getFirstChild()' im Stammteil der Baumstruktur wird zu den Eigenschaften navigiert. Durch den Aufruf von 'getLastChild()' im Stammteil wird XML zurückgegeben.
- Durch Aufruf von 'getParent()' in den Eigenschaften wird das Stammverzeichnis, durch Aufruf von 'getNextSibling()' wird MQMD zurückgegeben.
- Durch Aufruf von 'getPreviousSibling()' in MQMD werden Eigenschaften, durch Aufruf von 'getParent()' das Stammelement und durch Aufruf von 'getNextSibling()' wird XML zurückgegeben.
- Durch Aufruf von 'getPreviousSibling()' in XML wird MQMD, durch Aufruf von 'getParent()' wird ein Stammelement, durch Aufruf von 'getFirstChild()' wird ein Dokument, und durch Aufruf von 'getLastChild()' wird ebenfalls ein Dokument zurückgegeben.
- Durch Aufruf von 'getParent()' im Dokument wird XML, durch Aufruf von 'getFirstChild()' wird ein Kapitel und durch Aufruf von 'getLastChild()' wird ebenfalls ein Kapitel zurückgegeben.
- Durch Aufruf von 'getParent()' im Kapitel wird ein Dokument, durch Aufruf von 'getFirstChild()' wird ein Titel und durch Aufruf von 'getLastChild()' wird das untergeordnete Element mit den Nachrichtendaten 'Text' zurückgegeben..
Mit folgendem Java-Code wird auf das Kapitelelement
in der logischen Baumstruktur für eine XML-Nachricht zugegriffen, die keine Leerzeichen enthält: Der XML-Parser behält Leerzeichen in der analysierten Baumstruktur bei, der XMLNS- und
XMLNSC-Parser dagegen nicht.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();