1import xml.dom
2from typing import IO, Any, Optional, Text as _Text, TypeVar, Union
3from xml.dom.xmlbuilder import DocumentLS, DOMImplementationLS
4from xml.sax.xmlreader import XMLReader
5
6_T = TypeVar("_T")
7
8def parse(file: Union[str, IO[Any]], parser: Optional[XMLReader] = ..., bufsize: Optional[int] = ...): ...
9def parseString(string: Union[bytes, _Text], parser: Optional[XMLReader] = ...): ...
10def getDOMImplementation(features=...): ...
11
12class Node(xml.dom.Node):
13    namespaceURI: Optional[str]
14    parentNode: Any
15    ownerDocument: Any
16    nextSibling: Any
17    previousSibling: Any
18    prefix: Any
19    def toxml(self, encoding: Optional[Any] = ...): ...
20    def toprettyxml(self, indent: str = ..., newl: str = ..., encoding: Optional[Any] = ...): ...
21    def hasChildNodes(self) -> bool: ...
22    def insertBefore(self, newChild, refChild): ...
23    def appendChild(self, node): ...
24    def replaceChild(self, newChild, oldChild): ...
25    def removeChild(self, oldChild): ...
26    def normalize(self) -> None: ...
27    def cloneNode(self, deep): ...
28    def isSupported(self, feature, version): ...
29    def isSameNode(self, other): ...
30    def getInterface(self, feature): ...
31    def getUserData(self, key): ...
32    def setUserData(self, key, data, handler): ...
33    childNodes: Any
34    def unlink(self) -> None: ...
35    def __enter__(self: _T) -> _T: ...
36    def __exit__(self, et, ev, tb) -> None: ...
37
38class DocumentFragment(Node):
39    nodeType: Any
40    nodeName: str
41    nodeValue: Any
42    attributes: Any
43    parentNode: Any
44    childNodes: Any
45    def __init__(self) -> None: ...
46
47class Attr(Node):
48    name: str
49    nodeType: Any
50    attributes: Any
51    specified: bool
52    ownerElement: Any
53    namespaceURI: Optional[str]
54    childNodes: Any
55    nodeName: Any
56    nodeValue: str
57    value: str
58    prefix: Any
59    def __init__(
60        self, qName: str, namespaceURI: Optional[str] = ..., localName: Optional[Any] = ..., prefix: Optional[Any] = ...
61    ) -> None: ...
62    def unlink(self) -> None: ...
63
64class NamedNodeMap:
65    def __init__(self, attrs, attrsNS, ownerElement) -> None: ...
66    def item(self, index): ...
67    def items(self): ...
68    def itemsNS(self): ...
69    def __contains__(self, key): ...
70    def keys(self): ...
71    def keysNS(self): ...
72    def values(self): ...
73    def get(self, name, value: Optional[Any] = ...): ...
74    def __len__(self) -> int: ...
75    def __eq__(self, other: Any) -> bool: ...
76    def __ge__(self, other: Any) -> bool: ...
77    def __gt__(self, other: Any) -> bool: ...
78    def __le__(self, other: Any) -> bool: ...
79    def __lt__(self, other: Any) -> bool: ...
80    def __getitem__(self, attname_or_tuple): ...
81    def __setitem__(self, attname, value) -> None: ...
82    def getNamedItem(self, name): ...
83    def getNamedItemNS(self, namespaceURI: str, localName): ...
84    def removeNamedItem(self, name): ...
85    def removeNamedItemNS(self, namespaceURI: str, localName): ...
86    def setNamedItem(self, node): ...
87    def setNamedItemNS(self, node): ...
88    def __delitem__(self, attname_or_tuple) -> None: ...
89
90AttributeList = NamedNodeMap
91
92class TypeInfo:
93    namespace: Any
94    name: Any
95    def __init__(self, namespace, name) -> None: ...
96
97class Element(Node):
98    nodeType: Any
99    nodeValue: Any
100    schemaType: Any
101    parentNode: Any
102    tagName: str
103    prefix: Any
104    namespaceURI: Optional[str]
105    childNodes: Any
106    nextSibling: Any
107    def __init__(
108        self, tagName, namespaceURI: Optional[str] = ..., prefix: Optional[Any] = ..., localName: Optional[Any] = ...
109    ) -> None: ...
110    def unlink(self) -> None: ...
111    def getAttribute(self, attname): ...
112    def getAttributeNS(self, namespaceURI: str, localName): ...
113    def setAttribute(self, attname, value) -> None: ...
114    def setAttributeNS(self, namespaceURI: str, qualifiedName: str, value) -> None: ...
115    def getAttributeNode(self, attrname): ...
116    def getAttributeNodeNS(self, namespaceURI: str, localName): ...
117    def setAttributeNode(self, attr): ...
118    setAttributeNodeNS: Any
119    def removeAttribute(self, name) -> None: ...
120    def removeAttributeNS(self, namespaceURI: str, localName) -> None: ...
121    def removeAttributeNode(self, node): ...
122    removeAttributeNodeNS: Any
123    def hasAttribute(self, name: str) -> bool: ...
124    def hasAttributeNS(self, namespaceURI: str, localName) -> bool: ...
125    def getElementsByTagName(self, name): ...
126    def getElementsByTagNameNS(self, namespaceURI: str, localName): ...
127    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
128    def hasAttributes(self) -> bool: ...
129    def setIdAttribute(self, name) -> None: ...
130    def setIdAttributeNS(self, namespaceURI: str, localName) -> None: ...
131    def setIdAttributeNode(self, idAttr) -> None: ...
132
133class Childless:
134    attributes: Any
135    childNodes: Any
136    firstChild: Any
137    lastChild: Any
138    def appendChild(self, node) -> None: ...
139    def hasChildNodes(self) -> bool: ...
140    def insertBefore(self, newChild, refChild) -> None: ...
141    def removeChild(self, oldChild) -> None: ...
142    def normalize(self) -> None: ...
143    def replaceChild(self, newChild, oldChild) -> None: ...
144
145class ProcessingInstruction(Childless, Node):
146    nodeType: Any
147    target: Any
148    data: Any
149    def __init__(self, target, data) -> None: ...
150    nodeValue: Any
151    nodeName: Any
152    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
153
154class CharacterData(Childless, Node):
155    ownerDocument: Any
156    previousSibling: Any
157    def __init__(self) -> None: ...
158    def __len__(self) -> int: ...
159    data: str
160    nodeValue: Any
161    def substringData(self, offset: int, count: int) -> str: ...
162    def appendData(self, arg: str) -> None: ...
163    def insertData(self, offset: int, arg: str) -> None: ...
164    def deleteData(self, offset: int, count: int) -> None: ...
165    def replaceData(self, offset: int, count: int, arg: str) -> None: ...
166
167class Text(CharacterData):
168    nodeType: Any
169    nodeName: str
170    attributes: Any
171    data: Any
172    def splitText(self, offset): ...
173    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
174    def replaceWholeText(self, content): ...
175
176class Comment(CharacterData):
177    nodeType: Any
178    nodeName: str
179    def __init__(self, data) -> None: ...
180    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
181
182class CDATASection(Text):
183    nodeType: Any
184    nodeName: str
185    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
186
187class ReadOnlySequentialNamedNodeMap:
188    def __init__(self, seq=...) -> None: ...
189    def __len__(self): ...
190    def getNamedItem(self, name): ...
191    def getNamedItemNS(self, namespaceURI: str, localName): ...
192    def __getitem__(self, name_or_tuple): ...
193    def item(self, index): ...
194    def removeNamedItem(self, name) -> None: ...
195    def removeNamedItemNS(self, namespaceURI: str, localName) -> None: ...
196    def setNamedItem(self, node) -> None: ...
197    def setNamedItemNS(self, node) -> None: ...
198
199class Identified: ...
200
201class DocumentType(Identified, Childless, Node):
202    nodeType: Any
203    nodeValue: Any
204    name: Any
205    publicId: Any
206    systemId: Any
207    internalSubset: Any
208    entities: Any
209    notations: Any
210    nodeName: Any
211    def __init__(self, qualifiedName: str) -> None: ...
212    def cloneNode(self, deep): ...
213    def writexml(self, writer, indent: str = ..., addindent: str = ..., newl: str = ...) -> None: ...
214
215class Entity(Identified, Node):
216    attributes: Any
217    nodeType: Any
218    nodeValue: Any
219    actualEncoding: Any
220    encoding: Any
221    version: Any
222    nodeName: Any
223    notationName: Any
224    childNodes: Any
225    def __init__(self, name, publicId, systemId, notation) -> None: ...
226    def appendChild(self, newChild) -> None: ...
227    def insertBefore(self, newChild, refChild) -> None: ...
228    def removeChild(self, oldChild) -> None: ...
229    def replaceChild(self, newChild, oldChild) -> None: ...
230
231class Notation(Identified, Childless, Node):
232    nodeType: Any
233    nodeValue: Any
234    nodeName: Any
235    def __init__(self, name, publicId, systemId) -> None: ...
236
237class DOMImplementation(DOMImplementationLS):
238    def hasFeature(self, feature, version) -> bool: ...
239    def createDocument(self, namespaceURI: str, qualifiedName: str, doctype): ...
240    def createDocumentType(self, qualifiedName: str, publicId, systemId): ...
241    def getInterface(self, feature): ...
242
243class ElementInfo:
244    tagName: Any
245    def __init__(self, name) -> None: ...
246    def getAttributeType(self, aname): ...
247    def getAttributeTypeNS(self, namespaceURI: str, localName): ...
248    def isElementContent(self): ...
249    def isEmpty(self): ...
250    def isId(self, aname): ...
251    def isIdNS(self, namespaceURI: str, localName): ...
252
253class Document(Node, DocumentLS):
254    implementation: Any
255    nodeType: Any
256    nodeName: str
257    nodeValue: Any
258    attributes: Any
259    parentNode: Any
260    previousSibling: Any
261    nextSibling: Any
262    actualEncoding: Any
263    encoding: Any
264    standalone: Any
265    version: Any
266    strictErrorChecking: bool
267    errorHandler: Any
268    documentURI: Any
269    doctype: Any
270    childNodes: Any
271    def __init__(self) -> None: ...
272    def appendChild(self, node): ...
273    documentElement: Any
274    def removeChild(self, oldChild): ...
275    def unlink(self) -> None: ...
276    def cloneNode(self, deep): ...
277    def createDocumentFragment(self): ...
278    def createElement(self, tagName: str): ...
279    def createTextNode(self, data): ...
280    def createCDATASection(self, data): ...
281    def createComment(self, data): ...
282    def createProcessingInstruction(self, target, data): ...
283    def createAttribute(self, qName) -> Attr: ...
284    def createElementNS(self, namespaceURI: str, qualifiedName: str): ...
285    def createAttributeNS(self, namespaceURI: str, qualifiedName: str) -> Attr: ...
286    def getElementById(self, id): ...
287    def getElementsByTagName(self, name: str): ...
288    def getElementsByTagNameNS(self, namespaceURI: str, localName): ...
289    def isSupported(self, feature, version): ...
290    def importNode(self, node, deep): ...
291    def writexml(
292        self, writer, indent: str = ..., addindent: str = ..., newl: str = ..., encoding: Optional[Any] = ...
293    ) -> None: ...
294    def renameNode(self, n, namespaceURI: str, name): ...
295