XML data binding
# XML data binding

L'XML data binding costituisce un modo per trasformare le informazioni contenute in un documento XML in un oggetto (object) della memoria di un computer. Questo consente alle applicazioni di accedere ai dati XML direttamente dall'oggetto invece di utilizzare Document Object Model (DOM) o Simple API for XML (SAX) per recuperarli dal documento XML.

Un XML data binder permette questo processo creando automaticamente le relazioni (mapping) tra gli elementi dello schema XML e gli oggetti equivalenti.

La conversione di un documento XML in oggetti, viene detta unmarshalling (deserializzazione).

Il processo inverso di conversione di oggetti nell'equivalente documento XML viene detto marshalling (serializzazione).

Poiché XML è intrinsecamente sequenziale mentre gli oggetti (di solito) non lo sono, il mapping attraverso l'XML data binding spesso non riesce a preservare tutte le informazioni contenute in un documento XML. In particolare, le informazioni come i commenti, i riferimenti ai vari elementi XML, e l'ordine di pari livello potrebbero non essere rappresentati nell'oggetto creato dalla binding application. Ciò non accade sempre; data binders sufficientemente complessi sono in grado di convertire totalmente le informazioni di un documento XML.

Allo stesso modo, dal momento che gli oggetti nella memoria del computer non sono intrinsecamente sequenziali, e possono includere collegamenti ad altri oggetti (inclusi i link autoreferenziali), il mapping dei dati attraverso l'XML binding spesso non riesce a preservare tutte le informazioni su un oggetto quando questo viene serializzato (marshalling) in XML.

Un approccio alternativo al data binding automatico si basa invece su espressioni XPath realizzate manualmente che estraggono i dati dai file XML. Questo approccio ha diversi vantaggi; in primo luogo, il codice per il data binding ha bisogno solo di una conoscenza approssimata (ad esempio, la topologia, i nomi dei tag, ecc.) della struttura ad albero del documento XML, che gli sviluppatori possono determinare, guardando ai dati e gli schemi XML non sono più obbligatori. Inoltre, XPath consente all'applicazione di effettuare il binding degli elementi rilevanti escludendo tutto il resto, evitando in tal modo i processi superflui che sarebbero richiesti per deserializzare (unmarshalling) completamente l'intero documento XML. Lo svantaggio di questo approccio è la mancanza di automazione nell'implementazione dell'object model e delle espressioni XPath che gli sviluppatori devono creare manualmente.

