# [Python-checkins] CVS: python/dist/src/Doc/lib xmldom.tex,1.4,1.5

Fred L. Drake python-dev@python.org
Wed, 13 Dec 2000 09:38:04 -0800

Update of /cvsroot/python/python/dist/src/Doc/lib
In directory slayer.i.sourceforge.net:/tmp/cvs-serv15429/lib

Modified Files:
xmldom.tex
Log Message:

Added descriptions of the defined exceptions and their mapping to the
DOM recommendation.

Index: xmldom.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/xmldom.tex,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** xmldom.tex	2000/12/08 06:54:51	1.4
--- xmldom.tex	2000/12/13 17:38:02	1.5
***************
*** 120,124 ****
--- 120,127 ----
\end{tableiii}

+ An additional section describes the exceptions defined for working
+ with the DOM in Python.

+
\subsubsection{DOMImplementation Objects
\label{dom-implementation-objects}}
***************
*** 593,596 ****
--- 596,725 ----
whitespace character.
\end{memberdesc}
+
+
+ \subsubsection{Exceptions \label{dom-exceptions}}
+
+
+ The DOM Level 2 recommendation defines a single exception,
+ \exception{DOMException}, and a number of constants that allow
+ applications to determine what sort of error occurred.
+ \exception{DOMException} instances carry a \member{code} attribute
+ that provides the appropriate value for the specific exception.
+
+ The Python DOM interface provides the constants, but also expands the
+ set of exceptions so that a specific exception exists for each of the
+ exception codes defined by the DOM.  The implementations must raise
+ the appropriate specific exception, each of which carries the
+ appropriate value for the \member{code} attribute.
+
+ \begin{excdesc}{DOMException}
+   Base exception class used for all specific DOM exceptions.  This
+   exception class cannot be directly instantiated.
+ \end{excdesc}
+
+ \begin{excdesc}{DomstringSizeErr}
+   Raised when a specified range of text does not fit into a string.
+   This is not known to be used in the Python DOM implementations, but
+   may be received from DOM implementations not written in Python.
+ \end{excdesc}
+
+ \begin{excdesc}{HierarchyRequestErr}
+   Raised when an attempt is made to insert a node where the node type
+   is not allowed.
+ \end{excdesc}
+
+ \begin{excdesc}{IndexSizeErr}
+   Raised when an index or size parameter to a method is negative or
+   exceeds the allowed values.
+ \end{excdesc}
+
+ \begin{excdesc}{InuseAttributeErr}
+   Raised when an attempt is made to insert an \class{Attr} node that
+   is already present elsewhere in the document.
+ \end{excdesc}
+
+ \begin{excdesc}{InvalidAccessErr}
+   Raised if a parameter or an operation is not supported on the
+   underlying object.
+ \end{excdesc}
+
+ \begin{excdesc}{InvalidCharacterErr}
+   This exception is raised when a string parameter contains a
+   character that is not permitted in the context it's being used in by
+   the XML 1.0 recommendation.  For example, attempting to create an
+   \class{Element} node with a space in the element type name will
+   cause this error to be raised.
+ \end{excdesc}
+
+ \begin{excdesc}{InvalidModificationErr}
+   Raised when an attempt is made to modify the type of a node.
+ \end{excdesc}
+
+ \begin{excdesc}{InvalidStateErr}
+   Raised when an attempt is made to use an object that is not or is no
+   longer usable.
+ \end{excdesc}
+
+ \begin{excdesc}{NamespaceErr}
+   If an attempt is made to change any object in a way that is not
+   permitted with regard to the
+   \citetitle[http://www.w3.org/TR/REC-xml-names/]{Namespaces in XML}
+   recommendation, this exception is raised.
+ \end{excdesc}
+
+ \begin{excdesc}{NotFoundErr}
+   Exception when a node does not exist in the referenced context.  For
+   example, \method{NamedNodeMap.removeNamedItem()} will raise this if
+   the node passed in does not exist in the map.
+ \end{excdesc}
+
+ \begin{excdesc}{NotSupportedErr}
+   Raised when the implementation does not support the requested type
+   of object or operation.
+ \end{excdesc}
+
+ \begin{excdesc}{NoDataAllowedErr}
+   This is raised if data is specified for a node which does not
+   support data.
+   % XXX  a better explanation is needed!
+ \end{excdesc}
+
+ \begin{excdesc}{NoModificationAllowedErr}
+   Raised on attempts to modify an object where modifications are not
+   allowed (such as for read-only nodes).
+ \end{excdesc}
+
+ \begin{excdesc}{SyntaxErr}
+   Raised when an invalid or illegal string is specified.
+   % XXX  how is this different from InvalidCharacterErr ???
+ \end{excdesc}
+
+ \begin{excdesc}{WrongDocumentErr}
+   Raised when a node is inserted in a different document than it
+   currently belongs to, and the implementation does not support
+   migrating the node from one document to the other.
+ \end{excdesc}
+
+ The exception codes defined in the DOM recommendation map to the
+ exceptions described above according to this table:
+
+ \begin{tableii}{l|l}{constant}{Constant}{Exception}
+   \lineii{DOMSTRING_SIZE_ERR}{\exception{DomstringSizeErr}}
+   \lineii{HIERARCHY_REQUEST_ERR}{\exception{HierarchyRequestErr}}
+   \lineii{INDEX_SIZE_ERR}{\exception{IndexSizeErr}}
+   \lineii{INUSE_ATTRIBUTE_ERR}{\exception{InuseAttributeErr}}
+   \lineii{INVALID_ACCESS_ERR}{\exception{InvalidAccessErr}}
+   \lineii{INVALID_CHARACTER_ERR}{\exception{InvalidCharacterErr}}
+   \lineii{INVALID_MODIFICATION_ERR}{\exception{InvalidModificationErr}}
+   \lineii{INVALID_STATE_ERR}{\exception{InvalidStateErr}}
+   \lineii{NAMESPACE_ERR}{\exception{NamespaceErr}}
+   \lineii{NOT_FOUND_ERR}{\exception{NotFoundErr}}
+   \lineii{NOT_SUPPORTED_ERR}{\exception{NotSupportedErr}}
+   \lineii{NO_DATA_ALLOWED_ERR}{\exception{NoDataAllowedErr}}
+   \lineii{NO_MODIFICATION_ALLOWED_ERR}{\exception{NoModificationAllowedErr}}
+   \lineii{SYNTAX_ERR}{\exception{SyntaxErr}}
+   \lineii{WRONG_DOCUMENT_ERR}{\exception{WrongDocumentErr}}
+ \end{tableii}