Nuovo nella versione 2.0.
Il modello di oggetto di documento, o ``DOM,'' è una API disponibile per molti linguaggi del W3C (consorzio mondiale per il web) per l'accesso e la modifica di documenti XML. Un'implementazione DOM presenta un documento XML come una struttura ad albero, o permette al codice del cliente di costruire queste strutture da zero. Fornisce l'accesso alla struttura attraverso un insieme di oggetti che forniscono interfacce ben conosciute.
Il DOM è estremamente utile per un'applicazione con accesso casuale. Solo SAX permette di vedere anche un solo bit per volta del documento. Se si sta guardando un elemento SAX, non si ha accesso ad un altro elemento. Se si sta guardando verso un nodo di testo, non si ha accesso ai nodi che lo contengono. Quando si scrive una applicazione SAX, si deve tener presente nel proprio codice della posizione del programma all'interno del documento. SAX non fa questo al posto dello sviluppatore. Se si ha la necessità di dare uno sguardo dietro al documento XML, si può dire che siete sfortunati.
Alcune applicazione sono semplicemente impossibili in un modello di gestione ad eventi senza l'accesso a un albero. Di solito ci si può costruire una qualche sorta di albero degli eventi SAX, ma DOM permette di evitare la scrittura di questo codice. DOM è una rappresentazione ad albero standard per i dati XML.
Il modello di oggetto di documento (DOM) è stato definito dal W3C in strati, o ``livelli'' nella lora terminologia comune. Il modo che ha Python di mappare le API è sostanzialmente basato sulle raccomandazioni di livello 2 del W3C per DOM. L'adeguamento alle specifiche di livello 3, è disponibile attualmente solo in un formato di bozza, ed è in sviluppo da parte del gruppo di interesse specifico XML di Python come parte del package PyXMLPyXML. Fare riferimento alla documentazione allegata con questo package per informazioni sullo stato corrente del supporto al livello 3 di DOM.
Le applicazioni DOM si avviano tipicamente analizzando un po' di codice XML in un DOM. Come questo viene svolto non è coperto in nessun modo dal DOM di livello 1, ed il livello 2 fornisce solo alcune parziali indicazioni: c'e' una classe oggetto DOMImplementation che fornisce accesso ai metodi di creazione Document, ma nessun modo di accedere ad un XML lettore/parser/Document con un metodo indipendente di implementazione. Non è stato neanche ben definito come accedere a questi metodi senza un oggetto Document preesistente. In Python, ogni implementazione DOM fornisce una funzione getDOMImplementation(). Il DOM di livello 3 aggiunge una specifica di caricamento/memorizzazione (Load/Store), che definisce una interfaccia al lettore, ma questa specifica non è ancora disponibile nella libreria standard di Python.
Dal momento che si dispone di un oggetto documento DOM, si può accedere a parti del documento XML attraverso le sue proprietà ed i suoi metodi. Queste proprietà vengono definite nelle specifiche DOM; questa porzione del manuale di riferimento descrive l'interpretazione delle specifiche riportate in Python.
Le specifiche fornite dal W3C definiscono le API DOM per Java, ECMAScript ed OMG IDL. Lo schema Python definito qui viene basato in larga parte sulla versione IDL delle specifiche, ma una stretta conformità non viene richiesta (le implementazioni sono libere comunque di supportare una stretta aderenza all'IDL). Vedere la sezione 13.6.3, ``Conformità,'' per una dettagliata discussione dei requisiti di conformità.
Vedete anche: