| """W3C Document Object Model implementation for Python. |
| |
| The Python mapping of the Document Object Model is documented in the |
| Python Library Reference in the section on the xml.dom package. |
| |
| This package contains the following modules: |
| |
| minidom -- A simple implementation of the Level 1 DOM with namespace |
| support added (based on the Level 2 specification) and other |
| minor Level 2 functionality. |
| |
| pulldom -- DOM builder supporting on-demand tree-building for selected |
| subtrees of the document. |
| |
| """ |
| |
| |
| class Node: |
| """Class giving the NodeType constants.""" |
| __slots__ = () |
| |
| # DOM implementations may use this as a base class for their own |
| # Node implementations. If they don't, the constants defined here |
| # should still be used as the canonical definitions as they match |
| # the values given in the W3C recommendation. Client code can |
| # safely refer to these values in all tests of Node.nodeType |
| # values. |
| |
| ELEMENT_NODE = 1 |
| ATTRIBUTE_NODE = 2 |
| TEXT_NODE = 3 |
| CDATA_SECTION_NODE = 4 |
| ENTITY_REFERENCE_NODE = 5 |
| ENTITY_NODE = 6 |
| PROCESSING_INSTRUCTION_NODE = 7 |
| COMMENT_NODE = 8 |
| DOCUMENT_NODE = 9 |
| DOCUMENT_TYPE_NODE = 10 |
| DOCUMENT_FRAGMENT_NODE = 11 |
| NOTATION_NODE = 12 |
| |
| |
| #ExceptionCode |
| INDEX_SIZE_ERR = 1 |
| DOMSTRING_SIZE_ERR = 2 |
| HIERARCHY_REQUEST_ERR = 3 |
| WRONG_DOCUMENT_ERR = 4 |
| INVALID_CHARACTER_ERR = 5 |
| NO_DATA_ALLOWED_ERR = 6 |
| NO_MODIFICATION_ALLOWED_ERR = 7 |
| NOT_FOUND_ERR = 8 |
| NOT_SUPPORTED_ERR = 9 |
| INUSE_ATTRIBUTE_ERR = 10 |
| INVALID_STATE_ERR = 11 |
| SYNTAX_ERR = 12 |
| INVALID_MODIFICATION_ERR = 13 |
| NAMESPACE_ERR = 14 |
| INVALID_ACCESS_ERR = 15 |
| VALIDATION_ERR = 16 |
| |
| |
| class DOMException(Exception): |
| """Abstract base class for DOM exceptions. |
| Exceptions with specific codes are specializations of this class.""" |
| |
| def __init__(self, *args, **kw): |
| if self.__class__ is DOMException: |
| raise RuntimeError( |
| "DOMException should not be instantiated directly") |
| Exception.__init__(self, *args, **kw) |
| |
| def _get_code(self): |
| return self.code |
| |
| |
| class IndexSizeErr(DOMException): |
| code = INDEX_SIZE_ERR |
| |
| class DomstringSizeErr(DOMException): |
| code = DOMSTRING_SIZE_ERR |
| |
| class HierarchyRequestErr(DOMException): |
| code = HIERARCHY_REQUEST_ERR |
| |
| class WrongDocumentErr(DOMException): |
| code = WRONG_DOCUMENT_ERR |
| |
| class InvalidCharacterErr(DOMException): |
| code = INVALID_CHARACTER_ERR |
| |
| class NoDataAllowedErr(DOMException): |
| code = NO_DATA_ALLOWED_ERR |
| |
| class NoModificationAllowedErr(DOMException): |
| code = NO_MODIFICATION_ALLOWED_ERR |
| |
| class NotFoundErr(DOMException): |
| code = NOT_FOUND_ERR |
| |
| class NotSupportedErr(DOMException): |
| code = NOT_SUPPORTED_ERR |
| |
| class InuseAttributeErr(DOMException): |
| code = INUSE_ATTRIBUTE_ERR |
| |
| class InvalidStateErr(DOMException): |
| code = INVALID_STATE_ERR |
| |
| class SyntaxErr(DOMException): |
| code = SYNTAX_ERR |
| |
| class InvalidModificationErr(DOMException): |
| code = INVALID_MODIFICATION_ERR |
| |
| class NamespaceErr(DOMException): |
| code = NAMESPACE_ERR |
| |
| class InvalidAccessErr(DOMException): |
| code = INVALID_ACCESS_ERR |
| |
| class ValidationErr(DOMException): |
| code = VALIDATION_ERR |
| |
| class UserDataHandler: |
| """Class giving the operation constants for UserDataHandler.handle().""" |
| |
| # Based on DOM Level 3 (WD 9 April 2002) |
| |
| NODE_CLONED = 1 |
| NODE_IMPORTED = 2 |
| NODE_DELETED = 3 |
| NODE_RENAMED = 4 |
| |
| XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" |
| XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" |
| XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml" |
| EMPTY_NAMESPACE = None |
| EMPTY_PREFIX = None |
| |
| from .domreg import getDOMImplementation, registerDOMImplementation |