1"""W3C Document Object Model implementation for Python. 2 3The Python mapping of the Document Object Model is documented in the 4Python Library Reference in the section on the xml.dom package. 5 6This package contains the following modules: 7 8minidom -- A simple implementation of the Level 1 DOM with namespace 9 support added (based on the Level 2 specification) and other 10 minor Level 2 functionality. 11 12pulldom -- DOM builder supporting on-demand tree-building for selected 13 subtrees of the document. 14 15""" 16 17 18class Node: 19 """Class giving the NodeType constants.""" 20 21 # DOM implementations may use this as a base class for their own 22 # Node implementations. If they don't, the constants defined here 23 # should still be used as the canonical definitions as they match 24 # the values given in the W3C recommendation. Client code can 25 # safely refer to these values in all tests of Node.nodeType 26 # values. 27 28 ELEMENT_NODE = 1 29 ATTRIBUTE_NODE = 2 30 TEXT_NODE = 3 31 CDATA_SECTION_NODE = 4 32 ENTITY_REFERENCE_NODE = 5 33 ENTITY_NODE = 6 34 PROCESSING_INSTRUCTION_NODE = 7 35 COMMENT_NODE = 8 36 DOCUMENT_NODE = 9 37 DOCUMENT_TYPE_NODE = 10 38 DOCUMENT_FRAGMENT_NODE = 11 39 NOTATION_NODE = 12 40 41 42#ExceptionCode 43INDEX_SIZE_ERR = 1 44DOMSTRING_SIZE_ERR = 2 45HIERARCHY_REQUEST_ERR = 3 46WRONG_DOCUMENT_ERR = 4 47INVALID_CHARACTER_ERR = 5 48NO_DATA_ALLOWED_ERR = 6 49NO_MODIFICATION_ALLOWED_ERR = 7 50NOT_FOUND_ERR = 8 51NOT_SUPPORTED_ERR = 9 52INUSE_ATTRIBUTE_ERR = 10 53INVALID_STATE_ERR = 11 54SYNTAX_ERR = 12 55INVALID_MODIFICATION_ERR = 13 56NAMESPACE_ERR = 14 57INVALID_ACCESS_ERR = 15 58VALIDATION_ERR = 16 59 60 61class DOMException(Exception): 62 """Abstract base class for DOM exceptions. 63 Exceptions with specific codes are specializations of this class.""" 64 65 def __init__(self, *args, **kw): 66 if self.__class__ is DOMException: 67 raise RuntimeError( 68 "DOMException should not be instantiated directly") 69 Exception.__init__(self, *args, **kw) 70 71 def _get_code(self): 72 return self.code 73 74 75class IndexSizeErr(DOMException): 76 code = INDEX_SIZE_ERR 77 78class DomstringSizeErr(DOMException): 79 code = DOMSTRING_SIZE_ERR 80 81class HierarchyRequestErr(DOMException): 82 code = HIERARCHY_REQUEST_ERR 83 84class WrongDocumentErr(DOMException): 85 code = WRONG_DOCUMENT_ERR 86 87class InvalidCharacterErr(DOMException): 88 code = INVALID_CHARACTER_ERR 89 90class NoDataAllowedErr(DOMException): 91 code = NO_DATA_ALLOWED_ERR 92 93class NoModificationAllowedErr(DOMException): 94 code = NO_MODIFICATION_ALLOWED_ERR 95 96class NotFoundErr(DOMException): 97 code = NOT_FOUND_ERR 98 99class NotSupportedErr(DOMException): 100 code = NOT_SUPPORTED_ERR 101 102class InuseAttributeErr(DOMException): 103 code = INUSE_ATTRIBUTE_ERR 104 105class InvalidStateErr(DOMException): 106 code = INVALID_STATE_ERR 107 108class SyntaxErr(DOMException): 109 code = SYNTAX_ERR 110 111class InvalidModificationErr(DOMException): 112 code = INVALID_MODIFICATION_ERR 113 114class NamespaceErr(DOMException): 115 code = NAMESPACE_ERR 116 117class InvalidAccessErr(DOMException): 118 code = INVALID_ACCESS_ERR 119 120class ValidationErr(DOMException): 121 code = VALIDATION_ERR 122 123class UserDataHandler: 124 """Class giving the operation constants for UserDataHandler.handle().""" 125 126 # Based on DOM Level 3 (WD 9 April 2002) 127 128 NODE_CLONED = 1 129 NODE_IMPORTED = 2 130 NODE_DELETED = 3 131 NODE_RENAMED = 4 132 133XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" 134XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" 135XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml" 136EMPTY_NAMESPACE = None 137EMPTY_PREFIX = None 138 139from domreg import getDOMImplementation,registerDOMImplementation 140