mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			134 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{\module{xml.sax} ---
 | 
						|
         Support for SAX2 parsers}
 | 
						|
 | 
						|
\declaremodule{standard}{xml.sax}
 | 
						|
\modulesynopsis{Package containing SAX2 base classes and convenience
 | 
						|
                functions.}
 | 
						|
\moduleauthor{Lars Marius Garshol}{larsga@garshol.priv.no}
 | 
						|
\sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org}
 | 
						|
\sectionauthor{Martin v. L\"owis}{loewis@informatik.hu-berlin.de}
 | 
						|
 | 
						|
\versionadded{2.0}
 | 
						|
 | 
						|
 | 
						|
The \module{xml.sax} package provides a number of modules which
 | 
						|
implement the Simple API for XML (SAX) interface for Python.  The
 | 
						|
package itself provides the SAX exceptions and the convenience
 | 
						|
functions which will be most used by users of the SAX API.
 | 
						|
 | 
						|
The convenience functions are:
 | 
						|
 | 
						|
\begin{funcdesc}{make_parser}{\optional{parser_list}}
 | 
						|
  Create and return a SAX \class{XMLReader} object.  The first parser
 | 
						|
  found will be used.  If \var{parser_list} is provided, it must be a
 | 
						|
  sequence of strings which name modules that have a function named
 | 
						|
  \function{create_parser()}.  Modules listed in \var{parser_list}
 | 
						|
  will be used before modules in the default list of parsers.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{parse}{filename_or_stream, handler\optional{, error_handler}}
 | 
						|
  Create a SAX parser and use it to parse a document.  The document,
 | 
						|
  passed in as \var{filename_or_stream}, can be a filename or a file
 | 
						|
  object.  The \var{handler} parameter needs to be a SAX
 | 
						|
  \class{ContentHandler} instance.  If \var{error_handler} is given,
 | 
						|
  it must be a SAX \class{ErrorHandler} instance; if omitted, 
 | 
						|
  \exception{SAXParseException} will be raised on all errors.  There
 | 
						|
  is no return value; all work must be done by the \var{handler}
 | 
						|
  passed in.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
\begin{funcdesc}{parseString}{string, handler\optional{, error_handler}}
 | 
						|
  Similar to \function{parse()}, but parses from a buffer \var{string}
 | 
						|
  received as a parameter.
 | 
						|
\end{funcdesc}
 | 
						|
 | 
						|
A typical SAX application uses three kinds of objects: readers,
 | 
						|
handlers and input sources.  ``Reader'' in this context is another
 | 
						|
term for parser, i.e.\ some piece of code that reads the bytes or
 | 
						|
characters from the input source, and produces a sequence of events.
 | 
						|
The events then get distributed to the handler objects, i.e.\ the
 | 
						|
reader invokes a method on the handler.  A SAX application must
 | 
						|
therefore obtain a reader object, create or open the input sources,
 | 
						|
create the handlers, and connect these objects all together.  As the
 | 
						|
final step of preparation, the reader is called to parse the input.
 | 
						|
During parsing, methods on the handler objects are called based on
 | 
						|
structural and syntactic events from the input data.
 | 
						|
 | 
						|
For these objects, only the interfaces are relevant; they are normally
 | 
						|
not instantiated by the application itself.  Since Python does not have
 | 
						|
an explicit notion of interface, they are formally introduced as
 | 
						|
classes, but applications may use implementations which do not inherit
 | 
						|
from the provided classes.  The \class{InputSource}, \class{Locator},
 | 
						|
\class{AttributesImpl}, \class{AttributesNSImpl}, and
 | 
						|
\class{XMLReader} interfaces are defined in the module
 | 
						|
\refmodule{xml.sax.xmlreader}.  The handler interfaces are defined in
 | 
						|
\refmodule{xml.sax.handler}.  For convenience, \class{InputSource}
 | 
						|
(which is often instantiated directly) and the handler classes are
 | 
						|
also available from \module{xml.sax}.  These interfaces are described
 | 
						|
below.
 | 
						|
 | 
						|
In addition to these classes, \module{xml.sax} provides the following
 | 
						|
exception classes.
 | 
						|
 | 
						|
\begin{excclassdesc}{SAXException}{msg\optional{, exception}}
 | 
						|
  Encapsulate an XML error or warning.  This class can contain basic
 | 
						|
  error or warning information from either the XML parser or the
 | 
						|
  application: it can be subclassed to provide additional
 | 
						|
  functionality or to add localization.  Note that although the
 | 
						|
  handlers defined in the \class{ErrorHandler} interface receive
 | 
						|
  instances of this exception, it is not required to actually raise
 | 
						|
  the exception --- it is also useful as a container for information.
 | 
						|
 | 
						|
  When instantiated, \var{msg} should be a human-readable description
 | 
						|
  of the error.  The optional \var{exception} parameter, if given,
 | 
						|
  should be \code{None} or an exception that was caught by the parsing
 | 
						|
  code and is being passed along as information.
 | 
						|
 | 
						|
  This is the base class for the other SAX exception classes.
 | 
						|
\end{excclassdesc}
 | 
						|
 | 
						|
\begin{excclassdesc}{SAXParseException}{msg, exception, locator}
 | 
						|
  Subclass of \exception{SAXException} raised on parse errors.
 | 
						|
  Instances of this class are passed to the methods of the SAX
 | 
						|
  \class{ErrorHandler} interface to provide information about the
 | 
						|
  parse error.  This class supports the SAX \class{Locator} interface
 | 
						|
  as well as the \class{SAXException} interface.
 | 
						|
\end{excclassdesc}
 | 
						|
 | 
						|
\begin{excclassdesc}{SAXNotRecognizedException}{msg\optional{, exception}}
 | 
						|
  Subclass of \exception{SAXException} raised when a SAX
 | 
						|
  \class{XMLReader} is confronted with an unrecognized feature or
 | 
						|
  property.  SAX applications and extensions may use this class for
 | 
						|
  similar purposes.
 | 
						|
\end{excclassdesc}
 | 
						|
 | 
						|
\begin{excclassdesc}{SAXNotSupportedException}{msg\optional{, exception}}
 | 
						|
  Subclass of \exception{SAXException} raised when a SAX
 | 
						|
  \class{XMLReader} is asked to enable a feature that is not
 | 
						|
  supported, or to set a property to a value that the implementation
 | 
						|
  does not support.  SAX applications and extensions may use this
 | 
						|
  class for similar purposes.
 | 
						|
\end{excclassdesc}
 | 
						|
 | 
						|
 | 
						|
\begin{seealso}
 | 
						|
  \seetitle[http://www.saxproject.org/]{SAX: The Simple API for
 | 
						|
            XML}{This site is the focal point for the definition of
 | 
						|
            the SAX API.  It provides a Java implementation and online
 | 
						|
            documentation.  Links to implementations and historical
 | 
						|
            information are also available.}
 | 
						|
\end{seealso}
 | 
						|
 | 
						|
 | 
						|
\subsection{SAXException Objects \label{sax-exception-objects}}
 | 
						|
 | 
						|
The \class{SAXException} exception class supports the following
 | 
						|
methods:
 | 
						|
 | 
						|
\begin{methoddesc}[SAXException]{getMessage}{}
 | 
						|
  Return a human-readable message describing the error condition.
 | 
						|
\end{methoddesc}
 | 
						|
 | 
						|
\begin{methoddesc}[SAXException]{getException}{}
 | 
						|
  Return an encapsulated exception object, or \code{None}.
 | 
						|
\end{methoddesc}
 |