ASP.NET e Xml

Corso ASP.NET: undicesima puntata

Esempio funzionante | Sorgente | Scarica il sorgente (zip)

ASP.NET utilizza Xml in modo trasparente, come vedremo nel nostro esempio.

Sono molti gli oggetti di documenti Xml a disposizione dello sviluppatore in ambiente ASP.NET e che sono figli del namespace System.Xml:

  1. XmlDocument: utilizzato per accedere ai file Xml come previsto dallo standard W3c per il Dom Xml
  2. XmlDataDocument: estende il precedente oggetto con caratteristiche che consente di trattare un documento Xml come fosse una sorgente dati relazione (e viceversa) e quindi di “connettersi” ad un documento Xml
  3. XPathDocument: è un oggetto molto prestazionale utilizzato per eseguire interrogazioni XPath sul documento (così da “navigarlo”)

Non ci soffermiamo ulteriormente su questi oggetti, né su quelli (come l’XmlTextReader e l’XmlTextWriter) che creano documenti nodo dopo nodo oltre a leggerli da disco fisso o convertendoli da altri oggetti. Per questo vi rimandiamo alla esauriente documentazione del .Net Framework.

Nel prossimo esempio vediamo piuttosto come sia possibile caricare un documento Xml da un DataSet e visualizzarlo, in modo trasparente, in un DataGrid.

Caricare un DataSet da un file Xml

Lo scopo ultimo dell’esempio è di visualizzare in una DataGrid pagina dei dati provenienti da un file Xml:

È stata realizzata una funzione CaricaXml contenente il codice per popolare il DataSet.

 34   objDataSet.ReadXmlSchema(strLocPath & "XmlSchema.xml")

Con il metodo ReadXmlSchema del DataSet viene caricato da disco il file di definizione dell’Xml, così da poter verificare la conformità del documento Xml che verrà successivamente aperto.

 38   objDataSet.ReadXml(strLocPath & "XmlDocument.xml")

Con altrettanta semplicità viene caricato il documento Xml, utilizzando questa volta il metodo ReadXml.

 42   objTableLibro = objDataSet.Tables("Libro")
 43     
 44   objTableView = objTableLibro.DefaultView
 45   
 46   libri.DataSource = objTableView
 47   libri.DataBind()

A questo punto, tra tutti i nodi, viene scelto quello che rappresenta i libri (cioè i nodi identificati dal tag Libri).

Come per un normale DataBind viene poi associata la vista di default al controllo DataGrid.