Come eseguire il debug di XSLT e XQuery
Non c'è niente di più frustrante che ottenere risultati inattesi da una trasformazione XSLT o XQuery e dover dedicare ore a individuare il problema, soprattutto se si è ereditato il progetto da un altro sviluppatore o se non si è esaminato il codice da qualche mese. Naturalmente, XMLSpy include da tempo un debugger XSLT e un debugger XQuery per impostare punti di interruzione e analizzare passo dopo passo le trasformazioni, al fine di identificare i problemi.
Per un processo di debug più interattivo, XMLSpy include anche Mappatura inversa XSLT/XQuery.
Con la funzione di "back-mapping" attivata, è possibile semplicemente cliccare o posizionare il cursore sulla sezione del documento di output a cui si desidera fare riferimento, e XMLSpy evidenzierà immediatamente il codice XML di origine e l'istruzione XSLT o XQuery responsabile. Vediamo come funziona.

Debuggare XSLT e XQuery utilizzando il processo di "back-mapping"
Poiché i documenti XSLT e XQuery sono spesso lunghi e complessi, può essere difficile individuare la causa di un output inatteso. Per un debug mirato, la funzionalità di "back-mapping" consente di visualizzare immediatamente quali nodi e istruzioni sono responsabili dell'output.
Con la funzione di "back-mapping" abilitata, le trasformazioni XSLT e le esecuzioni XQuery vengono eseguite in modo che il documento risultante possa essere ricollocato sui documenti XSLT+XML o XQuery+XML di origine. Quando si passa il mouse su una sezione del documento risultante, l'istruzione XSLT/XQuery e i dati XML di origine relativi a quel nodo verranno evidenziati.
Proviamo. Prima di avviare una trasformazione XSLT o XQuery, cliccare sul pulsante "Abilita il mapping inverso" nella barra degli strumenti di XMLSpy.

XMLSpy vi offrirà la possibilità di disporre i documenti di origine e di output in modo affiancato, in modo da poter visualizzare facilmente gli elementi correlati in un'unica finestra. Successivamente, eseguite la trasformazione.
Nella trasformazione XSLT mostrata di seguito, ho posizionato il cursore su uno dei pulsanti radio nel documento di output, visualizzato nella modalità "Browser", e XMLSpy ha automaticamente evidenziato il nodo e l'istruzione corrispondenti nei documenti XML e XSLT.

Il processo è lo stesso nella visualizzazione del testo, sia per l'output XSLT che per quello XQuery: è sufficiente selezionare la parte del documento di output che si desidera analizzare.
La possibilità di selezionare semplicemente un elemento nel risultato per identificarne la fonte rappresenta un notevole risparmio di tempo durante i test e il debug del codice XSLT e XQuery. La cosa migliore di tutto è che XMLSpy realizza la funzione di "back-mapping" senza modificare in alcun modo il documento di output.
Scoprite come funziona questo sistema sia per XSLT che per XQuery in questo breve video dimostrativo.