13.12 xml.sax.xmlreader -- Interfaccia per parser XML

Nuovo nella versione 2.0.

I parser SAX implementano l'interfaccia XMLReader. Vengono implementati in un modulo Python, che deve fornire una funzione create_parser(). Questa funzione viene invocata da xml.sax.make_parser() senza argomenti per creare un nuovo oggetto parser.

class XMLReader( )
Classe base che può essere ereditata dal parser SAX.

class IncrementalParser( )
In alcuni casi è desiderabile non analizzare un sorgente in input subito, ma introdurre buona parte del documento così come questo è disponibile. Notare che il lettore di solito non legge l'intero file, ma, più comodamente, ne legge un pezzo; anche parse() non può restituire i suoi risultati finché l'intero documento non viene elaborato. Queste interfacce possono essere usate se il comportamento bloccante di parse() non è desiderabile.

Quando il parser viene istanziato, viene letto per iniziare ad accettare dati dal metodo di alimentazione immediatamente. Successivamente l'analisi viene terminata con una chiamata a close(), il metodo reset() può essere chiamato per preparare il parser ad accettare nuovi dati, per alimentare il parser o per usare il metodo parse().

Notare che questi metodi non devono essere chiamati durante l'analisi, ma dopo che l'analisi è stata invocata e prima che essa restituisca i suoi risultati.

Di norma, la classe implementa il metodo parse dell'interfaccia XMLReader usando metodi feed, close e reset dell'interfaccia IncrementalParser come un conveniente driver per la scrittura in SAX 2.0.

class Locator( )
Interfaccia per associare un evento SAX ad un determinato documento. Un oggetto locator restituisce risultati validi solamente durante chiamate con metodi DocumentHandler; in ogni altro momento i risultati saranno imprevedibili. Se non sono disponibili informazioni, i metodi dovrebbero restituire None.

class InputSource( [systemId])
L'incapsulamento di informazioni necessita dell'XMLReader per leggere le entità.

Questa clase dovrebbe includere informazioni circa l'identificatore pubblico e l'identificatore del sistema, il flusso dei byte (possibilmente con informazioni sulla codifica dei caratteri) e o con il flussi di caratteri da un'entità.

Applicazioni creeranno oggetti di questa classe per usarla nel metodo XMLReader.parse() o per ritornare da EntityResolver.resolveEntity.

Un InputSource appartiene ad un'applicazione. L'XMLReader non consente di modificare oggetti InputSource passati a esso da un'applicazione. Questo nonostante il suo comportamento dovrebbe essere quello di realizzare una copia e modificarla.

class AttributesImpl( attrs)
Questa è un implementazione degli attributi dell'interfaccia (vedere la sezione 13.12.5). Questo è un oggetto simil dizionario che rappresenta un attributo nella chiamata startElement(). In aggiunta alle più utili operazioni del tipo dizionario, supporta una varietà di altri metodi come descritto per le interfacce. Gli oggetti di questa classe devono essere istanziati attraverso un lettore; attrs deve esssere un oggetto simil dizionario contenente una mappa dei nomi degli attributi ed il loro valore.

class AttributesNSImpl( attrs, qnames)
Spazio dei nomi consapevoli, variante di AttributesImpl, che verrà passata a startElementNS(). Questo deriva da AttributesImpl, ma non capisce i nomi degli attributi come le due tuple di namespaceURI e localname. In aggiunta esso fornisce un numero di metodi eccetto i nomi qualificati come essi appaiono nel documento originale. Questa classe implementa l'interfaccia AttributesNS (vedere la sezione 13.12.6).



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.