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