# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.7

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.storage
import winsdk.windows.storage.streams

class NodeType(enum.IntEnum):
    INVALID = 0
    ELEMENT_NODE = 1
    ATTRIBUTE_NODE = 2
    TEXT_NODE = 3
    DATA_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

Self = typing.TypeVar('Self')

class DtdEntity(_winrt.Object):
    notation_name: typing.Optional[_winrt.Object]
    public_id: typing.Optional[_winrt.Object]
    system_id: typing.Optional[_winrt.Object]
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> DtdEntity: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class DtdNotation(_winrt.Object):
    public_id: typing.Optional[_winrt.Object]
    system_id: typing.Optional[_winrt.Object]
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> DtdNotation: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlAttribute(_winrt.Object):
    value: str
    specified: _winrt.Boolean
    name: str
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlAttribute: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlCDataSection(_winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlCDataSection: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def append_data(self, data: str) -> None: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def split_text(self, offset: _winrt.UInt32) -> typing.Optional[IXmlText]: ...
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class XmlComment(_winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlComment: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def append_data(self, data: str) -> None: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class XmlDocument(_winrt.Object):
    doctype: typing.Optional[XmlDocumentType]
    document_element: typing.Optional[XmlElement]
    document_uri: str
    implementation: typing.Optional[XmlDomImplementation]
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    owner_document: typing.Optional[XmlDocument]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocument: ...
    def __new__(cls: typing.Type[XmlDocument]) -> XmlDocument:...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def create_attribute(self, name: str) -> typing.Optional[XmlAttribute]: ...
    def create_attribute_n_s(self, namespace_uri: typing.Optional[_winrt.Object], qualified_name: str) -> typing.Optional[XmlAttribute]: ...
    def create_c_data_section(self, data: str) -> typing.Optional[XmlCDataSection]: ...
    def create_comment(self, data: str) -> typing.Optional[XmlComment]: ...
    def create_document_fragment(self) -> typing.Optional[XmlDocumentFragment]: ...
    def create_element(self, tag_name: str) -> typing.Optional[XmlElement]: ...
    def create_element_n_s(self, namespace_uri: typing.Optional[_winrt.Object], qualified_name: str) -> typing.Optional[XmlElement]: ...
    def create_entity_reference(self, name: str) -> typing.Optional[XmlEntityReference]: ...
    def create_processing_instruction(self, target: str, data: str) -> typing.Optional[XmlProcessingInstruction]: ...
    def create_text_node(self, data: str) -> typing.Optional[XmlText]: ...
    def get_element_by_id(self, element_id: str) -> typing.Optional[XmlElement]: ...
    def get_elements_by_tag_name(self, tag_name: str) -> typing.Optional[XmlNodeList]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def import_node(self, node: typing.Optional[IXmlNode], deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    @typing.overload
    @staticmethod
    def load_from_file_async(file: typing.Optional[winsdk.windows.storage.IStorageFile]) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_file_async(file: typing.Optional[winsdk.windows.storage.IStorageFile], load_settings: typing.Optional[XmlLoadSettings]) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_uri_async(uri: typing.Optional[winsdk.windows.foundation.Uri]) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_uri_async(uri: typing.Optional[winsdk.windows.foundation.Uri], load_settings: typing.Optional[XmlLoadSettings]) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    def load_xml(self, xml: str) -> None: ...
    @typing.overload
    def load_xml(self, xml: str, load_settings: typing.Optional[XmlLoadSettings]) -> None: ...
    @typing.overload
    def load_xml_from_buffer(self, buffer: typing.Optional[winsdk.windows.storage.streams.IBuffer]) -> None: ...
    @typing.overload
    def load_xml_from_buffer(self, buffer: typing.Optional[winsdk.windows.storage.streams.IBuffer], load_settings: typing.Optional[XmlLoadSettings]) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def save_to_file_async(self, file: typing.Optional[winsdk.windows.storage.IStorageFile]) -> typing.Optional[winsdk.windows.foundation.IAsyncAction]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlDocumentFragment(_winrt.Object):
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    child_nodes: typing.Optional[XmlNodeList]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocumentFragment: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlDocumentType(_winrt.Object):
    entities: typing.Optional[XmlNamedNodeMap]
    name: str
    notations: typing.Optional[XmlNamedNodeMap]
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocumentType: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlDomImplementation(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDomImplementation: ...
    def has_feature(self, feature: str, version: typing.Optional[_winrt.Object]) -> _winrt.Boolean: ...

class XmlElement(_winrt.Object):
    tag_name: str
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    namespace_uri: typing.Optional[_winrt.Object]
    node_type: NodeType
    node_name: str
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    child_nodes: typing.Optional[XmlNodeList]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlElement: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_attribute(self, attribute_name: str) -> str: ...
    def get_attribute_n_s(self, namespace_uri: typing.Optional[_winrt.Object], local_name: str) -> str: ...
    def get_attribute_node(self, attribute_name: str) -> typing.Optional[XmlAttribute]: ...
    def get_attribute_node_n_s(self, namespace_uri: typing.Optional[_winrt.Object], local_name: str) -> typing.Optional[XmlAttribute]: ...
    def get_elements_by_tag_name(self, tag_name: str) -> typing.Optional[XmlNodeList]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_attribute(self, attribute_name: str) -> None: ...
    def remove_attribute_n_s(self, namespace_uri: typing.Optional[_winrt.Object], local_name: str) -> None: ...
    def remove_attribute_node(self, attribute_node: typing.Optional[XmlAttribute]) -> typing.Optional[XmlAttribute]: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def set_attribute(self, attribute_name: str, attribute_value: str) -> None: ...
    def set_attribute_n_s(self, namespace_uri: typing.Optional[_winrt.Object], qualified_name: str, value: str) -> None: ...
    def set_attribute_node(self, new_attribute: typing.Optional[XmlAttribute]) -> typing.Optional[XmlAttribute]: ...
    def set_attribute_node_n_s(self, new_attribute: typing.Optional[XmlAttribute]) -> typing.Optional[XmlAttribute]: ...

class XmlEntityReference(_winrt.Object):
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    child_nodes: typing.Optional[XmlNodeList]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlEntityReference: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlLoadSettings(_winrt.Object):
    validate_on_parse: _winrt.Boolean
    resolve_externals: _winrt.Boolean
    prohibit_dtd: _winrt.Boolean
    max_element_depth: _winrt.UInt32
    element_content_white_space: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlLoadSettings: ...
    def __new__(cls: typing.Type[XmlLoadSettings]) -> XmlLoadSettings:...

class XmlNamedNodeMap(_winrt.Object, typing.Sequence[IXmlNode]):
    length: _winrt.UInt32
    size: _winrt.UInt32
    def __len__(self) -> int: ...
    @typing.overload
    def __getitem__(self, index: int) -> IXmlNode: ...
    @typing.overload
    def __getitem__(self, index: slice) -> typing.Sequence[IXmlNode]: ...
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlNamedNodeMap: ...
    def first(self) -> typing.Optional[winsdk.windows.foundation.collections.IIterator[IXmlNode]]: ...
    def get_at(self, index: _winrt.UInt32) -> typing.Optional[IXmlNode]: ...
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IXmlNode]]: ...
    def get_named_item(self, name: str) -> typing.Optional[IXmlNode]: ...
    def get_named_item_n_s(self, namespace_uri: typing.Optional[_winrt.Object], name: str) -> typing.Optional[IXmlNode]: ...
    def index_of(self, value: typing.Optional[IXmlNode]) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    def item(self, index: _winrt.UInt32) -> typing.Optional[IXmlNode]: ...
    def remove_named_item(self, name: str) -> typing.Optional[IXmlNode]: ...
    def remove_named_item_n_s(self, namespace_uri: typing.Optional[_winrt.Object], name: str) -> typing.Optional[IXmlNode]: ...
    def set_named_item(self, node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def set_named_item_n_s(self, node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...

class XmlNodeList(_winrt.Object, typing.Sequence[IXmlNode]):
    length: _winrt.UInt32
    size: _winrt.UInt32
    def __len__(self) -> int: ...
    @typing.overload
    def __getitem__(self, index: int) -> IXmlNode: ...
    @typing.overload
    def __getitem__(self, index: slice) -> typing.Sequence[IXmlNode]: ...
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlNodeList: ...
    def first(self) -> typing.Optional[winsdk.windows.foundation.collections.IIterator[IXmlNode]]: ...
    def get_at(self, index: _winrt.UInt32) -> typing.Optional[IXmlNode]: ...
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IXmlNode]]: ...
    def index_of(self, value: typing.Optional[IXmlNode]) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    def item(self, index: _winrt.UInt32) -> typing.Optional[IXmlNode]: ...

class XmlProcessingInstruction(_winrt.Object):
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    attributes: typing.Optional[XmlNamedNodeMap]
    first_child: typing.Optional[IXmlNode]
    child_nodes: typing.Optional[XmlNodeList]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    data: str
    target: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlProcessingInstruction: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class XmlText(_winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: typing.Optional[_winrt.Object]
    node_value: typing.Optional[_winrt.Object]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    attributes: typing.Optional[XmlNamedNodeMap]
    owner_document: typing.Optional[XmlDocument]
    child_nodes: typing.Optional[XmlNodeList]
    parent_node: typing.Optional[IXmlNode]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlText: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def append_data(self, data: str) -> None: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def split_text(self, offset: _winrt.UInt32) -> typing.Optional[IXmlText]: ...
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class IXmlCharacterData(_winrt.Object):
    data: str
    length: _winrt.UInt32
    attributes: typing.Optional[XmlNamedNodeMap]
    child_nodes: typing.Optional[XmlNodeList]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    node_value: typing.Optional[_winrt.Object]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    prefix: typing.Optional[_winrt.Object]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlCharacterData: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def append_data(self, data: str) -> None: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class IXmlNode(_winrt.Object):
    attributes: typing.Optional[XmlNamedNodeMap]
    child_nodes: typing.Optional[XmlNodeList]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    node_value: typing.Optional[_winrt.Object]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    prefix: typing.Optional[_winrt.Object]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNode: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class IXmlNodeSelector(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNodeSelector: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...

class IXmlNodeSerializer(_winrt.Object):
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNodeSerializer: ...
    def get_xml(self) -> str: ...

class IXmlText(_winrt.Object):
    data: str
    length: _winrt.UInt32
    attributes: typing.Optional[XmlNamedNodeMap]
    child_nodes: typing.Optional[XmlNodeList]
    first_child: typing.Optional[IXmlNode]
    last_child: typing.Optional[IXmlNode]
    local_name: typing.Optional[_winrt.Object]
    namespace_uri: typing.Optional[_winrt.Object]
    next_sibling: typing.Optional[IXmlNode]
    node_name: str
    node_type: NodeType
    node_value: typing.Optional[_winrt.Object]
    owner_document: typing.Optional[XmlDocument]
    parent_node: typing.Optional[IXmlNode]
    prefix: typing.Optional[_winrt.Object]
    previous_sibling: typing.Optional[IXmlNode]
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlText: ...
    def append_child(self, new_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def append_data(self, data: str) -> None: ...
    def clone_node(self, deep: _winrt.Boolean) -> typing.Optional[IXmlNode]: ...
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    def get_xml(self) -> str: ...
    def has_child_nodes(self) -> _winrt.Boolean: ...
    def insert_before(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    def normalize(self) -> None: ...
    def remove_child(self, child_node: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_child(self, new_child: typing.Optional[IXmlNode], reference_child: typing.Optional[IXmlNode]) -> typing.Optional[IXmlNode]: ...
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    def select_nodes(self, xpath: str) -> typing.Optional[XmlNodeList]: ...
    def select_nodes_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[XmlNodeList]: ...
    def select_single_node(self, xpath: str) -> typing.Optional[IXmlNode]: ...
    def select_single_node_n_s(self, xpath: str, namespaces: typing.Optional[_winrt.Object]) -> typing.Optional[IXmlNode]: ...
    def split_text(self, offset: _winrt.UInt32) -> typing.Optional[IXmlText]: ...
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

