Trasformazione funzionale di XML (LINQ to XML)
Questo articolo discute l'approccio di trasformazione funzionale pura per modificare i documenti XML e lo mette a confronto con un approccio procedurale.
Modificare un documento XML
Una delle attività più comuni richieste a un programmatore XML è la trasformazione di codice XML da una forma a un'altra. Per forma di un documento XML si intende la struttura del documento, che include:
- La gerarchia espressa dal documento.
- I nomi di elementi e attributi.
- I tipi di dati di elementi e attributi.
In generale, l'approccio più efficace alla trasformazione di codice XML da una forma a un'altra è quello basato sulla trasformazione funzionale pure. In questo approccio l'attività principale del programmatore consiste nel creare una trasformazione che viene applicata all'intero documento XML (o a uno o più nodi definiti rigidamente). La trasformazione funzionale è decisamente la più facile da codificare (una volta che il programmatore ha familiarizzato con l'approccio), consente di ottenere codice più conservabile ed offre spesso maggior compattezza rispetto agli approcci alternativi.
Tecnologie di trasformazione funzionale XML
Microsoft offre due tecnologie per la trasformazione funzionale utilizzabili con i documenti XML, ovvero XSLT e LINQ to XML. XSLT è supportato nello spazio dei nomi gestito System.Xml.Xsl e nell'implementazione COM nativa di MSXML. Sebbene XSLT sia una tecnologia affidabile per la modifica di documenti XML, richiede una certa esperienza in un dominio specializzato, ovvero quello del linguaggio XSLT e delle API che lo supportano.
LINQ to XML fornisce gli strumenti necessari per codificare trasformazioni funzionali pure in modo espressivo e potente all'interno di codice C# o Visual Basic. Ad esempio, in molti degli esempi della documentazione di LINQ to XML viene usato un approccio funzionale pure. In aggiunta, nell'Esercitazione: Manipolare il contenuto in un documento WordprocessingML, viene utilizzato LINQ to XML in un approccio funzionale per manipolare le informazioni in un documento Microsoft Word.
Per un confronto più completo tra LINQ to XML e altre tecnologie Microsoft XML, vedere LINQ to XML a confronto con altre tecnologie XML.
XSLT è lo strumento consigliato per effettuare trasformazioni basate su documenti in cui il documento di origine è caratterizzato da una struttura irregolare. Tuttavia, anche LINQ to XML è in grado di eseguire trasformazioni basate su documenti. Per altre informazioni, vedere Come usare le annotazioni per trasformare alberi LINQ to XML in uno stile XSLT.