| """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.""" | |
| # 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 |