Accesso agli elementi di un albero dei messaggi da un nodo JavaCompute

Quando si desidera accedere al contenuto di un messaggio, per eseguire la lettura o la scrittura, utilizzare la struttura e la disposizione degli elementi nell'albero creato dal programma di analisi dal flusso di bit di input. Seguire la relazione tra l'elemento parent e l'elemento child dall'alto dell'albero verso il basso finché non si raggiunge l'elemento richiesto.

L'albero dei messaggi viene trasmesso a un nodo JavaCompute come argomento del metodo di valutazione. L'argomento è un oggetto MbMessageAssembly. In MbMessageAssembly sono contenuti quattro oggetti messaggio:
  • Messaggio
  • Ambiente locale
  • Ambiente globale
  • Elenco di eccezioni
Tali oggetti sono di sola lettura, ad eccezione di Ambiente globale. Se si esegue il tentativo di scrivere in oggetti di sola lettura, viene generata una MbReadOnlyException.
In questo argomento sono contenute le seguenti informazioni sull'accesso agli elementi in un albero dei messaggi:

Spostamento nell'albero dell'elemento

Nella tabella vengono riportati i metodi Java da utilizzare per accedere agli alberi dell'elemento e il nome di correlazione ESQL equivalente per ciascun punto nell'albero.
Funzione di accesso Java da MbMessageAssembly Nome di correlazione ESQL
getMessage().getRootElement() InputRoot
getMessage().getRootElement().getLastChild() InputBody
getLocalEnvironment().getRootElement() InputLocalEnvironment
getGlobalEnvironment().getRootElement() Ambiente
getExceptionList().getRootElement() InputExceptionList
E' possibile utilizzare i seguenti metodi per spostarsi in un albero dei messaggi da un elemento di tipo MbElement:
getParent()
restituisce l'elemento parent dell'elemento corrente
getPreviousSibling()
restituisce l'elemento di pari livello precedente dell'elemento corrente
getNextSibling()
restituisce l'elemento di pari livello successivo dell'elemento corrente
getFirstChild()
restituisce il primo elemento child dell'elemento corrente
getLastChild()
restituisce l'ultimo elemento child dell'elemento corrente

Nel seguente esempio viene descritto un messaggio XML semplice e l'albero logico creato dal messaggio. In questo esempio il messaggio è stato inviato utilizzando WebSphere MQ. Nel diagramma dell'albero logico vengono inoltre riportati i metodi da richiamare per esplorare l'albero.

<document>
  <chapter title='Introduction'>
    Some text.
  </chapter>
</document>

Nel diagramma vengono riportati i metodi da richiamare per esplorare un albero dei messaggi. L'albero utilizzato è quello creato analizzando l'esempio XML fornito in questo argomento. Se dalla parte Root dell'albero si richiama getFirstChild(), si passa alle Proprietà. Se dalla parte Root si richiama getLastChild(), viene restituito XML. Se dalle Proprietà si richiamagetParent() viene restituito Root e se si richiama getNextSibling() viene restituito MQMD. Se da MQMD si richiama getPreviousSibling() viene restituito Proprietà, se si richiama getParent() viene restituito Root e se si richiama getNextSibling() viene restituito XML. Se da XML si richiama getPreviousSibling() viene restituito MQMD, se si richiama getParent() viene restituito Root, se si richiama getFirstChild() viene restituito il documento e se si richiama getLastChild() viene restituito ugualmente il documento. Se dal documento si richiama getParent() viene restituito XML, se si richiama getFirstChild() viene restituito il capitolo e se si richiama getLastChild() viene restituito ugualmente il capitolo. Se dal capitolo si richiama getParent() viene restituito il documento, se si richiama getFirstChild() viene restituito il titolo e se si richiama getLastChild() viene restituito l'elemento child in cui sono contenuti i dati del messaggio "Some text.".

Il seguente codice Java consente di accedere all'elemento del capitolo nell'albero logico:
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();

Accesso alle informazioni su un elemento utilizzando un nodo JavaCompute

Utilizzare i seguenti metodi per restituire le informazioni sull'elemento di riferimento. API del nodo definito dall'utente Java fornisce ulteriori dettagli sui metodi:
getName()
Restituisce il nome elemento come java.lang.String
getValue()
Restituisce il valore dell'elemento
getType()
Restituisce il tipo generico, uno dei seguenti tipi:
  • NAME. Un elemento di questo tipo dispone di un nome, ma non di un valore.
  • VALUE. Un elemento di questo tipo dispone di un valore, ma non di un nome.
  • NAME/VALUE. Un elemento di questo tipo dispone di un valore e di un nome.
getSpecificType()
Restituisce il tipo specifico al programma di analisi dell'elemento
getNamespace()
Restituisce l'URI spazio dei nomi dell'elemento
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac30330_