Questo argomento contiene le seguenti sezioni:
Utilizzare il nodo XMLTransformation per trasformare un messaggio XML in un altro formato di messaggio XML, in base alle regole fornite da un foglio di stile XSL (eXtensible Stylesheet Language).
E' possibile specificare l'ubicazione del foglio di stile da applicare a questa trasformazione in uno dei seguenti tre modi:
Viene utilizzato un compilatore XSLT (eXtensible Stylesheet Language for Transformations)
per la trasformazione, se il foglio di stile non è integrato all'interno del messaggio e il livello della
cache del nodo (proprietà del nodo
Livello cache del
foglio di stile) è maggiore di 0. Se XSLT è memorizzato nella cache,
le prestazioni migliorano poiché XSLT non viene analizzato ogni volta che viene utilizzato.
Il nodo XMLTransformation è rappresentato nel workbench dalla seguente icona:
Per un esempio di come utilizzare questo nodo, prendere in considerazione due agenzie di informazioni che si scambiamo informazioni regolarmente. Una potrebbe essere una stazione televisiva e l'altra un giornale. Sebbene le informazioni siano simili, il linguaggio utilizzato dalle due agenzie è diverso. Questo nodo può trasformare un formato in un altro applicando le regole del foglio di stile specificato. Se si specifica il foglio di stile nel messaggio (dati XML o LocalEnvironment), lo stesso nodo può svolgere entrambe le trasformazioni.
Esaminare l'Esempio XMLT per ulteriori dettagli su come utilizzare il nodo XMLTransformation.
La sola eccezione è rappresentata dal fatto che, quando si specifica un foglio di stile principale come proprietà Nome foglio di stile su un nodo XMLTransformation, è possibile utilizzare un percorso assoluto che punti alla struttura di directory corretta nell'area di lavoro Eclipse. Se il foglio di stile principale viene trovato, il sistema reimposta automaticamente la proprietà del nodo sul valore relativo corretto. Esso svolge anche una distribuzione automatica del foglio di stile principale, insieme a tutti i fogli di stile discendenti che dipendono dall'ubicazione e che sono disponibili nel progetto dell'area di lavoro Eclipse in questione. Tutti i riferimenti ai fogli di stile discendenti che dipendono dall'ubicazione (o file XML) di un foglio di stile principale devono essere messi in relazione all'ubicazione dei rispettivi fogli di stile parent. Ad esempio, se il foglio di stile //project1/a/b.xsl fa riferimento al foglio di stile //project1/a/c/d.xsl il riferimento deve essere modificato in c/d.xsl (o ./c/d.xsl).
Per eseguire la distribuzione manuale, aggiungere i file da distribuire ad un archivio broker (fare riferimento ad Aggiunta di file a un archivio broker e a Aggiunta di parole chiave a fogli di stile XSL) e distribuire l'archivio broker.
Se un foglio di stile nella directory percorso di lavoro del broker/XSL/external condivide lo stesso percorso e nome con un foglio di stile distribuito, viene utilizzato quest'ultimo.
Una volta inserita un'istanza del nodo XMLTransformation in un flusso di messaggi, è possibile configurarla. Fare clic con il tasto destro del mouse sul nodo nella vista dell'editor e fare clic su Proprietà. Vengono visualizzate le proprietà base del nodo.
Tutte le proprietà obbligatorie, per le quali è necessario immettere un valore (quelle per le quali non è specificato un valore predefinito), sono contrassegnate con un asterisco nella finestra di dialogo delle proprietà.
Configurare il nodo XMLTransformation come segue:
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
Poiché questo nodo era disponibile in un SupportPac per la Versione 2.1 e l'elemento ComIbmXslMqsiStylesheetname era utilizzato come nome del foglio di stile, il nodo corrente controlla entrambi gli elementi. Se sono presenti entrambi, il valore in ComIbmXslXmltStylesheetname ha la precedenza.
E' possibile impostare sullo stesso valore più di una proprietà, sebbene non sia consigliabile. In questo caso, l'ordine di priorità impostato dal nodo è l'ordine predefinito sopra indicato.
Se si imposta un valore di ignora, il nodo non ricerca nell'ubicazione corrispondente per l'identificazione del foglio di stile. Se si impostano tutte e tre le proprietà su ignora, viene generato un errore di runtime.
Se si desidera specificare un foglio di stile non distribuito utilizzando le proprietà del nodo, immettere il valore richiesto per Nome foglio di stile. Questo valore viene ignorato se le informazioni sul foglio di stile sono ricercate e trovate in un'ubicazione preferita (determinata dai valori di priorità di selezione impostati).
Se si modifica un foglio di stile memorizzato nella cache (ridistribuendo o sostituendo il file nel file system), il nodo XMLTransformation che contiene la cache sostituisce la versione memorizzata nella cache con la versione modificata (più recente) prima di elaborare un nuovo messaggio. Tuttavia, se si stanno modificando diversi fogli di stile, arrestare i flussi di messaggi appropriati prima di apportare le modifiche. Se non si arrestano i flussi di messaggi appropriati prima di apportare le modifiche, l'ordine delle modifiche non può essere garantito eseguendo flussi di messaggi ed è possibile che vi sia incompatibilità tra i fogli di stile modificati. È possibile utilizzare il comando mqsireload per ricaricare un foglio di stile ma il comando non impedisce incompatibilità.
Ad esempio, per codificare l'output della trasformazione come UTF-8, immettere il valore 1208 come stringa in questo elemento.
Poiché questo nodo era disponibile in un SupportPac per la Versione 2.1 e l'elemento ComIbmXslMqsiOutputcharset era utilizzato per la serie di caratteri di output, il nodo corrente controlla entrambi gli elementi. Se sono presenti entrambi, il valore in ComIbmXslXmltOutputcharset ha la precedenza.
Se si imposta un valore per Serie di caratteri di output, il valore immesso deve essere numerico. Ad esempio, per codificare l'output della trasformazione come UTF-16, immettere 1200.
E' possibile impostare sullo stesso valore più di una proprietà, sebbene non sia consigliabile. In questo caso, l'ordine di priorità impostato dal nodo è l'ordine predefinito sopra indicato.
Se si imposta un valore 0, il nodo non ricerca nell'ubicazione corrispondente l'identificazione della serie di caratteri.
Se il nodo non riesce a stabilire la serie di caratteri di output da nessuna di queste due origini, o perché non è impostato alcun valore o perché le priorità di selezione sono impostate su 0, viene utilizzato il valore predefinito 1208 (UTF8). (La specifica XSL indica che è possibile specificare la serie di caratteri di output nel foglio di stile; tuttavia, il nodo XMLTransformation ignora questo valore.)
Le informazioni relative alla traccia sono scritte su un file di traccia XMLTTrace.log:
Se si attiva la traccia dettagliata per un nodo XMLTransformation, è attivata per tutti i nodi nel gruppo di esecuzione.
Fare clic su Annulla per chiudere la finestra di dialogo ed eliminare tutte le modifiche apportate alle proprietà.
mqsireportproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize
mqsichangeproperties brokerName -e executionGroupLabel -o ComIbmJVMManager -n jvmMaxHeapSize -v newSize
sostituendo brokerName, executionGroupLabel
e newSize con i valori appropriati.Il valore da scegliere
per newSize dipende dalla quantità di memoria fisica che ha
il proprio computer e da quanto si sta utilizzando Java.
Si suggerisce un valore nell'intervallo
compreso tra 512 MB (536870912) e 1 GB (1073741824).
I terminali del nodo XMLTransformation sono descritti nella seguente tabella.
Terminale | Descrizione |
---|---|
In | Il terminale di input che accetta il messaggio per l'elaborazione da parte del nodo. |
Failure | Il terminale di output a cui è instradato il messaggio originale se viene rilevato un errore durante la trasformazione. |
Out | Il terminale di output a cui è instradato il messaggio trasformato con esito positivo. |
Le seguenti tabelle descrivono le proprietà del nodo; la colonna con l'intestazione O indica se la proprietà è obbligatoria (contrassegnata con un asterisco nella finestra di dialogo delle proprietà, se è necessario immettere un valore quando non è specificato un valore predefinito), la colonna con l'intestazione C indica se la proprietà è configurabile (è possibile modificare il valore quando si aggiunge un flusso di messaggi a un file bar per distribuirlo).
Le proprietà relative al foglio di stile del nodo XMLTransformation sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Priorità di selezione XML integrato | Sì | No | 1 | Il valore di priorità per la ricerca delle informazioni sull'ubicazione del foglio di stile nei dati XML. |
Priorità di selezione ambiente messaggio | Sì | No | 2 | Il valore di priorità per la ricerca delle informazioni sull'ubicazione del foglio di stile nella cartella LocalEnvironment del messaggio corrente. |
Priorità di selezione attributo nodo broker | Sì | No | 3 | Il valore priorità per la ricerca delle informazioni sull'ubicazione del foglio di stile come proprietà del nodo |
Nome foglio di stile | No | Sì | Il nome del foglio di stile, utilizzato se la specifica del foglio di stile viene ricercata nelle proprietà del nodo. | |
Directory foglio di stile | No | Sì | Il percorso in cui è localizzato il foglio di stile. Utilizzato da tutti i metodi di ubicazione. | |
Livello cache del foglio di stile | No | No | 5 | Il numero di fogli di stile compilati o analizzati che sono memorizzati in questa istanza del nodo. |
Le proprietà Serie di caratteri di output del nodo XMLTransformation sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Priorità di selezione ambiente messaggio | Sì | No | 1 | Il valore di priorità per la ricerca dell'ID Serie di caratteri di output nella cartella LocalEnvironment del messaggio corrente. |
Priorità di selezione attributo nodo broker | Sì | No | 2 | Il valore di priorità per la ricerca dell'ID Serie di caratteri di output come proprietà del nodo. |
Serie di caratteri di output | No | No | Il valore numerico della Serie di caratteri di output |
Le proprietà Traccia dettagli del nodo XMLTransformation sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Impostazione traccia | Sì | No | Off | Indica se la traccia è attiva o non attiva. Se la traccia è attiva, la traccia di livello basso è registrata in un file. |
Le proprietà Descrizione del nodo XMLTransformation sono descritte nella seguente tabella.
Proprietà | O | C | Valore predefinito | Descrizione |
---|---|---|---|---|
Descrizione breve | No | No | Una breve descrizione del nodo. | |
Descrizione completa | No | No | Testo che descrive lo scopo del nodo nel flusso di messaggi. |
Se il prologo del contenuto del messaggio di input contiene una dichiarazione di codifica XML, il nodo XMLTransformation ignora la codifica e utilizza sempre CodedCharSetId nella cartella di proprietà del messaggio per decodificare il messaggio.