New in version 2.0.
SAX parsers implement the XMLReader interface. They are
implemented in a Python module, which must provide a function
create_parser(). This function is invoked by
xml.sax.make_parser() with no arguments to create a new
- class XMLReader()
Base class which can be inherited by SAX parsers.
- class IncrementalParser()
In some cases, it is desirable not to parse an input source at once,
but to feed chunks of the document as they get available. Note that
the reader will normally not read the entire file, but read it in
chunks as well; still parse() won't return until the entire
document is processed. So these interfaces should be used if the
blocking behaviour of parse() is not desirable.
When the parser is instantiated it is ready to begin accepting data
from the feed method immediately. After parsing has been finished
with a call to close the reset method must be called to make the
parser ready to accept new data, either from feed or using the parse
Note that these methods must not be called during parsing,
that is, after parse has been called and before it returns.
By default, the class also implements the parse method of the
XMLReader interface using the feed, close and reset methods of the
IncrementalParser interface as a convenience to SAX 2.0 driver
- class Locator()
Interface for associating a SAX event with a document location. A
locator object will return valid results only during calls to
DocumentHandler methods; at any other time, the results are
unpredictable. If information is not available, methods may return
- class InputSource([systemId])
Encapsulation of the information needed by the XMLReader to
This class may include information about the public identifier,
system identifier, byte stream (possibly with character encoding
information) and/or the character stream of an entity.
Applications will create objects of this class for use in the
XMLReader.parse() method and for returning from
An InputSource belongs to the application, the
XMLReader is not allowed to modify InputSource objects
passed to it from the application, although it may make copies and
- class AttributesImpl(attrs)
This is a dictionary-like object which represents the element
attributes in a startElement() call. In addition to the
most useful dictionary operations, it supports a number of other
methods as described below. Objects of this class should be
instantiated by readers; attrs must be a dictionary-like
- class AttributesNSImpl(attrs, qnames)
Namespace-aware variant of attributes, which will be passed to
startElementNS(). It is derived from AttributesImpl,
but understands attribute names as two-tuples of namespaceURI
and localname. In addition, it provides a number of methods
expecting qualified names as they appear in the original document.
See About this document... for information on suggesting changes.