Linq to XSD - Alpha 02

Linq to XSD è un'implementazione di Linq che estende le funzionalità  di Linq to XML, in particolare permettendo di lavorare con "Oggetti XML", cioè invece di scrivere con Linq To XML:

image

E' possibile scrivere con Linq to XSD:

image

Come vedete, mentre con Linq To XML lavoro in modo 'non tipizzato', cioè uso la stringa "Item", la stringa "Price", la stringa "Quantity", con Linq to XSD uso l'oggetto Item,  l'oggetto Price e così via.

Da poco è disponibile la versione Alpha 02 di Linq To XSD per Visual Studio 2008, che potete scaricare qui. Mentre qui potete leggere l'annuncio.

Seguendo la documentazione potete costruire un piccolo esempio:

1) Creare il progetto console

Create un semplice progetto console usando il template per Visual Studio 2008 che vi trovate dopo l'installazione:

image

2) Aggiungere uno schema XSD al progetto

Potete ora aggiungere un file XML al vostro progetto, ed il relativo file XML Schema, che ne descrive appunto la struttura. A questo punto sul file XML Schema dovete impostare la proprietà BuildAction a LinqToXsdSchema, come mostrato in figura:

image 

Questo genererà le classi che poi potete usare nella vostra applicazione, come ad esempio Item, Price, come avete visto nella query iniziale. Le classi generate possono essere utilizzate non solo per fare operazioni di Query, come quelle viste in precedenza, ma anche per creare oggetti tipizzati.

Quindi potete creare un oggetto come quello che segue e salvarlo in un file xml, usando il metodo Save. Le classi generate dall' XSD derivano tutte da una classe comune XTypedElement, che potete trovare documentata.

image

Conclusione

In questo breve post avete visto un'altra implementazione di Linq che permette di lavorare con oggetti che rappresentano una vista tipizzata di nodi XML, si potrebbe dire quindi Oggetti XML che vengono generati a partire da uno schema XML. Potete scaricare il semplice esempio di codice per vostra comodità al link sotto.

Ciao e buon week-end