XML data binding: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 11:
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 (metadato)|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.
==Collegamenti esterni==
|