From bb757136b29369e88c72e1563ee95cd6514c15a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Gust=C3=A4bel?= Date: Sun, 24 Sep 2000 20:38:18 +0000 Subject: Improvements to doco strings. Tiny bug fix to expatreader.py (endDocument was only called after errors). --- Lib/xml/sax/__init__.py | 4 +--- Lib/xml/sax/expatreader.py | 11 +++++++---- Lib/xml/sax/handler.py | 15 ++++++++------- Lib/xml/sax/xmlreader.py | 11 +++++++++++ 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Lib/xml/sax/__init__.py b/Lib/xml/sax/__init__.py index 24b7d24..7c62ea1 100644 --- a/Lib/xml/sax/__init__.py +++ b/Lib/xml/sax/__init__.py @@ -16,9 +16,7 @@ saxutils -- Implementation of the convenience classes commonly used to xmlreader -- Base classes and constants which define the SAX 2 API for the parsers used with SAX for Python. -expatreader -- Driver that allows use of the Expat parser with the - classes defined in saxlib. - +expatreader -- Driver that allows use of the Expat parser with SAX. """ from xmlreader import InputSource diff --git a/Lib/xml/sax/expatreader.py b/Lib/xml/sax/expatreader.py index e3b3ad0..1d93542 100644 --- a/Lib/xml/sax/expatreader.py +++ b/Lib/xml/sax/expatreader.py @@ -1,6 +1,6 @@ """ SAX driver for the Pyexpat C module. This driver works with -pyexpat.__version__ == '1.5'. +pyexpat.__version__ == '2.22'. """ version = "0.20" @@ -28,7 +28,7 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator): # XMLReader methods def parse(self, source): - "Parse an XML document from a URL." + "Parse an XML document from a URL or an InputSource." source = saxutils.prepare_input_source(source) self._source = source @@ -40,7 +40,7 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator): error_code = self._parser.ErrorCode raise SAXParseException(expat.ErrorString(error_code), None, self) - self._cont_handler.endDocument() + self._cont_handler.endDocument() def prepareParser(self, source): if source.getSystemId() != None: @@ -108,7 +108,10 @@ class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator): # self._parser.DefaultHandlerExpand = # self._parser.NotStandaloneHandler = self._parser.ExternalEntityRefHandler = self.external_entity_ref - + + self._parsing = 0 + self._entity_stack = [] + # Locator methods def getColumnNumber(self): diff --git a/Lib/xml/sax/handler.py b/Lib/xml/sax/handler.py index c80457c..0931014 100644 --- a/Lib/xml/sax/handler.py +++ b/Lib/xml/sax/handler.py @@ -20,13 +20,14 @@ version = '2.0beta' # ===== ERRORHANDLER ===== class ErrorHandler: - """Basic interface for SAX error handlers. If you create an object - that implements this interface, then register the object with your - Parser, the parser will call the methods in your object to report - all warnings and errors. There are three levels of errors - available: warnings, (possibly) recoverable errors, and - unrecoverable errors. All methods take a SAXParseException as the - only parameter.""" + """Basic interface for SAX error handlers. + + If you create an object that implements this interface, then + register the object with your XMLReader, the parser will call the + methods in your object to report all warnings and errors. There + are three levels of errors available: warnings, (possibly) + recoverable errors, and unrecoverable errors. All methods take a + SAXParseException as the only parameter.""" def error(self, exception): "Handle a recoverable error." diff --git a/Lib/xml/sax/xmlreader.py b/Lib/xml/sax/xmlreader.py index 04e7bc1..c381fd4 100644 --- a/Lib/xml/sax/xmlreader.py +++ b/Lib/xml/sax/xmlreader.py @@ -6,6 +6,17 @@ import handler # ===== XMLREADER ===== class XMLReader: + """Interface for reading an XML document using callbacks. + + XMLReader is the interface that an XML parser's SAX2 driver must + implement. This interface allows an application to set and query + features and properties in the parser, to register event handlers + for document processing, and to initiate a document parse. + + All SAX interfaces are assumed to be synchronous: the parse + methods must not return until parsing is complete, and readers + must wait for an event-handler callback to return before reporting + the next event.""" def __init__(self): self._cont_handler = handler.ContentHandler() -- cgit v0.12