# {py:mod}`arelle.XmlUtil` ```{py:module} arelle.XmlUtil ``` ```{autodoc2-docstring} arelle.XmlUtil :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`xmlns ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlns :summary: ``` * - {py:obj}`xmlnsprefix ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlnsprefix :summary: ``` * - {py:obj}`targetNamespace ` - ```{autodoc2-docstring} arelle.XmlUtil.targetNamespace :summary: ``` * - {py:obj}`schemaLocation ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaLocation :summary: ``` * - {py:obj}`clarkNotationToPrefixNsLocalname ` - ```{autodoc2-docstring} arelle.XmlUtil.clarkNotationToPrefixNsLocalname :summary: ``` * - {py:obj}`clarkNotationToPrefixedName ` - ```{autodoc2-docstring} arelle.XmlUtil.clarkNotationToPrefixedName :summary: ``` * - {py:obj}`prefixedNameToNamespaceLocalname ` - ```{autodoc2-docstring} arelle.XmlUtil.prefixedNameToNamespaceLocalname :summary: ``` * - {py:obj}`prefixedNameToClarkNotation ` - ```{autodoc2-docstring} arelle.XmlUtil.prefixedNameToClarkNotation :summary: ``` * - {py:obj}`encoding ` - ```{autodoc2-docstring} arelle.XmlUtil.encoding :summary: ``` * - {py:obj}`text ` - ```{autodoc2-docstring} arelle.XmlUtil.text :summary: ``` * - {py:obj}`childText ` - ```{autodoc2-docstring} arelle.XmlUtil.childText :summary: ``` * - {py:obj}`textNotStripped ` - ```{autodoc2-docstring} arelle.XmlUtil.textNotStripped :summary: ``` * - {py:obj}`selfClosable ` - ```{autodoc2-docstring} arelle.XmlUtil.selfClosable :summary: ``` * - {py:obj}`innerText ` - ```{autodoc2-docstring} arelle.XmlUtil.innerText :summary: ``` * - {py:obj}`innerTextList ` - ```{autodoc2-docstring} arelle.XmlUtil.innerTextList :summary: ``` * - {py:obj}`innerTextNodes ` - ```{autodoc2-docstring} arelle.XmlUtil.innerTextNodes :summary: ``` * - {py:obj}`escapedNode ` - ```{autodoc2-docstring} arelle.XmlUtil.escapedNode :summary: ``` * - {py:obj}`escapedText ` - ```{autodoc2-docstring} arelle.XmlUtil.escapedText :summary: ``` * - {py:obj}`collapseWhitespace ` - ```{autodoc2-docstring} arelle.XmlUtil.collapseWhitespace :summary: ``` * - {py:obj}`parentId ` - ```{autodoc2-docstring} arelle.XmlUtil.parentId :summary: ``` * - {py:obj}`hasChild ` - ```{autodoc2-docstring} arelle.XmlUtil.hasChild :summary: ``` * - {py:obj}`hasDescendant ` - ```{autodoc2-docstring} arelle.XmlUtil.hasDescendant :summary: ``` * - {py:obj}`hasAncestor ` - ```{autodoc2-docstring} arelle.XmlUtil.hasAncestor :summary: ``` * - {py:obj}`ancestor ` - ```{autodoc2-docstring} arelle.XmlUtil.ancestor :summary: ``` * - {py:obj}`parent ` - ```{autodoc2-docstring} arelle.XmlUtil.parent :summary: ``` * - {py:obj}`ancestors ` - ```{autodoc2-docstring} arelle.XmlUtil.ancestors :summary: ``` * - {py:obj}`ancestorOrSelfAttr ` - ```{autodoc2-docstring} arelle.XmlUtil.ancestorOrSelfAttr :summary: ``` * - {py:obj}`childAttr ` - ```{autodoc2-docstring} arelle.XmlUtil.childAttr :summary: ``` * - {py:obj}`descendantAttr ` - ```{autodoc2-docstring} arelle.XmlUtil.descendantAttr :summary: ``` * - {py:obj}`children ` - ```{autodoc2-docstring} arelle.XmlUtil.children :summary: ``` * - {py:obj}`child ` - ```{autodoc2-docstring} arelle.XmlUtil.child :summary: ``` * - {py:obj}`lastChild ` - ```{autodoc2-docstring} arelle.XmlUtil.lastChild :summary: ``` * - {py:obj}`previousSiblingElement ` - ```{autodoc2-docstring} arelle.XmlUtil.previousSiblingElement :summary: ``` * - {py:obj}`nextSiblingElement ` - ```{autodoc2-docstring} arelle.XmlUtil.nextSiblingElement :summary: ``` * - {py:obj}`childrenAttrs ` - ```{autodoc2-docstring} arelle.XmlUtil.childrenAttrs :summary: ``` * - {py:obj}`descendant ` - ```{autodoc2-docstring} arelle.XmlUtil.descendant :summary: ``` * - {py:obj}`descendants ` - ```{autodoc2-docstring} arelle.XmlUtil.descendants :summary: ``` * - {py:obj}`isDescendantOf ` - ```{autodoc2-docstring} arelle.XmlUtil.isDescendantOf :summary: ``` * - {py:obj}`schemaDescendantsNames ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaDescendantsNames :summary: ``` * - {py:obj}`schemaDescendant ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaDescendant :summary: ``` * - {py:obj}`schemaBaseTypeDerivedFrom ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaBaseTypeDerivedFrom :summary: ``` * - {py:obj}`schemaFacets ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaFacets :summary: ``` * - {py:obj}`schemaAttributesGroups ` - ```{autodoc2-docstring} arelle.XmlUtil.schemaAttributesGroups :summary: ``` * - {py:obj}`emptyContentModel ` - ```{autodoc2-docstring} arelle.XmlUtil.emptyContentModel :summary: ``` * - {py:obj}`addChild ` - ```{autodoc2-docstring} arelle.XmlUtil.addChild :summary: ``` * - {py:obj}`copyNodes ` - ```{autodoc2-docstring} arelle.XmlUtil.copyNodes :summary: ``` * - {py:obj}`copyChildren ` - ```{autodoc2-docstring} arelle.XmlUtil.copyChildren :summary: ``` * - {py:obj}`copyIxFootnoteHtml ` - ```{autodoc2-docstring} arelle.XmlUtil.copyIxFootnoteHtml :summary: ``` * - {py:obj}`addComment ` - ```{autodoc2-docstring} arelle.XmlUtil.addComment :summary: ``` * - {py:obj}`addProcessingInstruction ` - ```{autodoc2-docstring} arelle.XmlUtil.addProcessingInstruction :summary: ``` * - {py:obj}`addQnameValue ` - ```{autodoc2-docstring} arelle.XmlUtil.addQnameValue :summary: ``` * - {py:obj}`setXmlns ` - ```{autodoc2-docstring} arelle.XmlUtil.setXmlns :summary: ``` * - {py:obj}`sortKey ` - ```{autodoc2-docstring} arelle.XmlUtil.sortKey :summary: ``` * - {py:obj}`tzinfo ` - ```{autodoc2-docstring} arelle.XmlUtil.tzinfo :summary: ``` * - {py:obj}`datetimeValue ` - ```{autodoc2-docstring} arelle.XmlUtil.datetimeValue :summary: ``` * - {py:obj}`dateunionValue ` - ```{autodoc2-docstring} arelle.XmlUtil.dateunionValue :summary: ``` * - {py:obj}`xpointerSchemes ` - ```{autodoc2-docstring} arelle.XmlUtil.xpointerSchemes :summary: ``` * - {py:obj}`xpointerElement ` - ```{autodoc2-docstring} arelle.XmlUtil.xpointerElement :summary: ``` * - {py:obj}`elementFragmentIdentifier ` - ```{autodoc2-docstring} arelle.XmlUtil.elementFragmentIdentifier :summary: ``` * - {py:obj}`elementIndex ` - ```{autodoc2-docstring} arelle.XmlUtil.elementIndex :summary: ``` * - {py:obj}`elementChildSequence ` - ```{autodoc2-docstring} arelle.XmlUtil.elementChildSequence :summary: ``` * - {py:obj}`elementTagnamesPath ` - ```{autodoc2-docstring} arelle.XmlUtil.elementTagnamesPath :summary: ``` * - {py:obj}`xmlstring ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlstring :summary: ``` * - {py:obj}`writexml ` - ```{autodoc2-docstring} arelle.XmlUtil.writexml :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`htmlEltUriAttrs ` - ```{autodoc2-docstring} arelle.XmlUtil.htmlEltUriAttrs :summary: ``` * - {py:obj}`resolveHtmlUri ` - ```{autodoc2-docstring} arelle.XmlUtil.resolveHtmlUri :summary: ``` * - {py:obj}`datetimePattern ` - ```{autodoc2-docstring} arelle.XmlUtil.datetimePattern :summary: ``` * - {py:obj}`xmlDeclarationPattern ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlDeclarationPattern :summary: ``` * - {py:obj}`xmlEncodingPattern ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlEncodingPattern :summary: ``` * - {py:obj}`xpointerFragmentIdentifierPattern ` - ```{autodoc2-docstring} arelle.XmlUtil.xpointerFragmentIdentifierPattern :summary: ``` * - {py:obj}`xmlnsStripPattern ` - ```{autodoc2-docstring} arelle.XmlUtil.xmlnsStripPattern :summary: ``` * - {py:obj}`nonSpacePattern ` - ```{autodoc2-docstring} arelle.XmlUtil.nonSpacePattern :summary: ``` * - {py:obj}`DATETIME_MINYEAR ` - ```{autodoc2-docstring} arelle.XmlUtil.DATETIME_MINYEAR :summary: ``` * - {py:obj}`DATETIME_MAXYEAR ` - ```{autodoc2-docstring} arelle.XmlUtil.DATETIME_MAXYEAR :summary: ``` ```` ### API ````{py:data} htmlEltUriAttrs :canonical: arelle.XmlUtil.htmlEltUriAttrs :type: dict[str, typing.Collection[str]] | None :value: > None ```{autodoc2-docstring} arelle.XmlUtil.htmlEltUriAttrs ``` ```` ````{py:data} resolveHtmlUri :canonical: arelle.XmlUtil.resolveHtmlUri :type: typing.Callable[[arelle.ModelObject.ModelObject, str | bytes | None, str | bytes | None], str] | None :value: > None ```{autodoc2-docstring} arelle.XmlUtil.resolveHtmlUri ``` ```` ````{py:data} datetimePattern :canonical: arelle.XmlUtil.datetimePattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.datetimePattern ``` ```` ````{py:data} xmlDeclarationPattern :canonical: arelle.XmlUtil.xmlDeclarationPattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.xmlDeclarationPattern ``` ```` ````{py:data} xmlEncodingPattern :canonical: arelle.XmlUtil.xmlEncodingPattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.xmlEncodingPattern ``` ```` ````{py:data} xpointerFragmentIdentifierPattern :canonical: arelle.XmlUtil.xpointerFragmentIdentifierPattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.xpointerFragmentIdentifierPattern ``` ```` ````{py:data} xmlnsStripPattern :canonical: arelle.XmlUtil.xmlnsStripPattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.xmlnsStripPattern ``` ```` ````{py:data} nonSpacePattern :canonical: arelle.XmlUtil.nonSpacePattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.XmlUtil.nonSpacePattern ``` ```` ```{py:exception} XmlDeclarationLocationException() :canonical: arelle.XmlUtil.XmlDeclarationLocationException Bases: {py:obj}`Exception` ``` ````{py:function} xmlns(element: arelle.ModelObject.ModelObject, prefix: str | None) -> str | None :canonical: arelle.XmlUtil.xmlns ```{autodoc2-docstring} arelle.XmlUtil.xmlns ``` ```` ````{py:function} xmlnsprefix(element: lxml.etree._Element | arelle.ModelObject.ModelObject, ns: str | None) -> str | None :canonical: arelle.XmlUtil.xmlnsprefix ```{autodoc2-docstring} arelle.XmlUtil.xmlnsprefix ``` ```` ````{py:function} targetNamespace(element: arelle.ModelObject.ModelObject) -> str | None :canonical: arelle.XmlUtil.targetNamespace ```{autodoc2-docstring} arelle.XmlUtil.targetNamespace ``` ```` ````{py:function} schemaLocation(element: lxml.etree._Element, namespace: str, returnElement: bool = False) -> lxml.etree._Element | str | None :canonical: arelle.XmlUtil.schemaLocation ```{autodoc2-docstring} arelle.XmlUtil.schemaLocation ``` ```` ````{py:function} clarkNotationToPrefixNsLocalname(element: arelle.ModelObject.ModelObject, clarkName: str, isAttribute: bool = False) -> tuple[str | None, str | None, str] :canonical: arelle.XmlUtil.clarkNotationToPrefixNsLocalname ```{autodoc2-docstring} arelle.XmlUtil.clarkNotationToPrefixNsLocalname ``` ```` ````{py:function} clarkNotationToPrefixedName(element: arelle.ModelObject.ModelObject, clarkName: str, isAttribute: bool = False) -> str :canonical: arelle.XmlUtil.clarkNotationToPrefixedName ```{autodoc2-docstring} arelle.XmlUtil.clarkNotationToPrefixedName ``` ```` ````{py:function} prefixedNameToNamespaceLocalname(element: arelle.ModelObject.ModelObject, prefixedName: str, defaultNsmap: typing.Mapping[str, str] | None = None) -> tuple[str | None, str, str | None] | None :canonical: arelle.XmlUtil.prefixedNameToNamespaceLocalname ```{autodoc2-docstring} arelle.XmlUtil.prefixedNameToNamespaceLocalname ``` ```` ````{py:function} prefixedNameToClarkNotation(element: arelle.ModelObject.ModelObject, prefixedName: str) -> str | None :canonical: arelle.XmlUtil.prefixedNameToClarkNotation ```{autodoc2-docstring} arelle.XmlUtil.prefixedNameToClarkNotation ``` ```` ````{py:function} encoding(xml: arelle.XmlUtil.encoding.str | bytes, default: arelle.XmlUtil.encoding.str = 'utf-8') -> arelle.XmlUtil.encoding.str :canonical: arelle.XmlUtil.encoding ```{autodoc2-docstring} arelle.XmlUtil.encoding ``` ```` ````{py:function} text(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject) -> str :canonical: arelle.XmlUtil.text ```{autodoc2-docstring} arelle.XmlUtil.text ``` ```` ````{py:function} childText(element: arelle.ModelObject.ModelObject, childNamespaceURIs: str | None, childLocalNames: tuple[str, ...]) -> str | None :canonical: arelle.XmlUtil.childText ```{autodoc2-docstring} arelle.XmlUtil.childText ``` ```` ````{py:function} textNotStripped(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None) -> str :canonical: arelle.XmlUtil.textNotStripped ```{autodoc2-docstring} arelle.XmlUtil.textNotStripped ``` ```` ````{py:function} selfClosable(elt: arelle.ModelObject.ModelObject) -> bool :canonical: arelle.XmlUtil.selfClosable ```{autodoc2-docstring} arelle.XmlUtil.selfClosable ``` ```` ````{py:function} innerText(element: arelle.ModelObject.ModelObject, ixExclude: bool = False, ixEscape: str | None = None, ixContinuation: bool = False, ixResolveUris: bool = False, strip: bool = True) -> str :canonical: arelle.XmlUtil.innerText ```{autodoc2-docstring} arelle.XmlUtil.innerText ``` ```` ````{py:function} innerTextList(element: arelle.ModelObject.ModelObject, ixExclude: bool = False, ixEscape: str | None = None, ixContinuation: bool = False, ixResolveUris: bool = False) -> str :canonical: arelle.XmlUtil.innerTextList ```{autodoc2-docstring} arelle.XmlUtil.innerTextList ``` ```` ````{py:function} innerTextNodes(element: arelle.ModelObject.ModelObject | None, ixExclude: bool | str, ixEscape: str | None, ixContinuation: bool, ixResolveUris: bool) -> typing.Generator[str, None, None] :canonical: arelle.XmlUtil.innerTextNodes ```{autodoc2-docstring} arelle.XmlUtil.innerTextNodes ``` ```` ````{py:function} escapedNode(elt: arelle.ModelObject.ModelObject, start: bool, empty: bool, ixEscape: str, ixResolveUris: bool) -> str :canonical: arelle.XmlUtil.escapedNode ```{autodoc2-docstring} arelle.XmlUtil.escapedNode ``` ```` ````{py:function} escapedText(text: str) -> str :canonical: arelle.XmlUtil.escapedText ```{autodoc2-docstring} arelle.XmlUtil.escapedText ``` ```` ````{py:function} collapseWhitespace(s: str) -> str :canonical: arelle.XmlUtil.collapseWhitespace ```{autodoc2-docstring} arelle.XmlUtil.collapseWhitespace ``` ```` ````{py:function} parentId(element: arelle.ModelObject.ModelObject, parentNamespaceURI: str, parentLocalName: str) -> str | None :canonical: arelle.XmlUtil.parentId ```{autodoc2-docstring} arelle.XmlUtil.parentId ``` ```` ````{py:function} hasChild(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str) -> bool :canonical: arelle.XmlUtil.hasChild ```{autodoc2-docstring} arelle.XmlUtil.hasChild ``` ```` ````{py:function} hasDescendant(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalNames: str) -> bool :canonical: arelle.XmlUtil.hasDescendant ```{autodoc2-docstring} arelle.XmlUtil.hasDescendant ``` ```` ````{py:function} hasAncestor(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str, ancestorLocalNames: str | tuple[str, ...]) -> bool :canonical: arelle.XmlUtil.hasAncestor ```{autodoc2-docstring} arelle.XmlUtil.hasAncestor ``` ```` ````{py:function} ancestor(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str, ancestorLocalNames: str | tuple[str, ...]) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.ancestor ```{autodoc2-docstring} arelle.XmlUtil.ancestor ``` ```` ````{py:function} parent(element: arelle.ModelObject.ModelObject, parentNamespaceURI: str | None = None, parentLocalNames: str | tuple[str, ...] | None = None, ixTarget: bool = False) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.parent ```{autodoc2-docstring} arelle.XmlUtil.parent ``` ```` ````{py:function} ancestors(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str | None = None, ancestorLocalNames: str | tuple[str, ...] | None = None) -> list[arelle.ModelObject.ModelObject] :canonical: arelle.XmlUtil.ancestors ```{autodoc2-docstring} arelle.XmlUtil.ancestors ``` ```` ````{py:function} ancestorOrSelfAttr(element: arelle.ModelObject.ModelObject, attrClarkName: str) -> str | None :canonical: arelle.XmlUtil.ancestorOrSelfAttr ```{autodoc2-docstring} arelle.XmlUtil.ancestorOrSelfAttr ``` ```` ````{py:function} childAttr(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...], attrClarkName: str) -> str | None :canonical: arelle.XmlUtil.childAttr ```{autodoc2-docstring} arelle.XmlUtil.childAttr ``` ```` ````{py:function} descendantAttr(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...], attrClarkName: str, attrName: str | None = None, attrValue: str | None = None) -> str | None :canonical: arelle.XmlUtil.descendantAttr ```{autodoc2-docstring} arelle.XmlUtil.descendantAttr ``` ```` ````{py:function} children(element: arelle.ModelObject.ModelObject | lxml.etree._ElementTree | arelle.PrototypeDtsObject.PrototypeElementTree, childNamespaceURIs: str | tuple[str, ...] | None, childLocalNames: str | tuple[str, ...], ixTarget: bool = False) -> typing.Sequence[arelle.ModelObject.ModelObject] :canonical: arelle.XmlUtil.children ```{autodoc2-docstring} arelle.XmlUtil.children ``` ```` ````{py:function} child(element: arelle.ModelObject.ModelObject, childNamespaceURI: str | tuple[str, ...] | None = None, childLocalNames: str | tuple[str, ...] = ('*', )) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.child ```{autodoc2-docstring} arelle.XmlUtil.child ``` ```` ````{py:function} lastChild(element: arelle.ModelObject.ModelObject, childNamespaceURI: str | tuple[str, ...] | None = None, childLocalNames: str | tuple[str, ...] = ('*', )) -> arelle.ModelObject.ModelObject | arelle.ModelInstanceObject.ModelContext | arelle.ModelInstanceObject.ModelUnit | None :canonical: arelle.XmlUtil.lastChild ```{autodoc2-docstring} arelle.XmlUtil.lastChild ``` ```` ````{py:function} previousSiblingElement(element: arelle.ModelObject.ModelObject) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.previousSiblingElement ```{autodoc2-docstring} arelle.XmlUtil.previousSiblingElement ``` ```` ````{py:function} nextSiblingElement(element: arelle.ModelObject.ModelObject) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.nextSiblingElement ```{autodoc2-docstring} arelle.XmlUtil.nextSiblingElement ``` ```` ````{py:function} childrenAttrs(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...], attrLocalName: str) -> list[str] :canonical: arelle.XmlUtil.childrenAttrs ```{autodoc2-docstring} arelle.XmlUtil.childrenAttrs ``` ```` ````{py:function} descendant(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject, descendantNamespaceURI: str | None, descendantLocalNames: str | tuple[str, ...], attrName: str | None = None, attrValue: str | None = None) -> arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None :canonical: arelle.XmlUtil.descendant ```{autodoc2-docstring} arelle.XmlUtil.descendant ``` ```` ````{py:function} descendants(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | lxml.etree._ElementTree, descendantNamespaceURI: str | None, descendantLocalNames: str | tuple[str, ...], attrName: str | None = None, attrValue: str | None = None, breakOnFirst: bool = False, ixTarget: bool = False) -> typing.Sequence[arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject] :canonical: arelle.XmlUtil.descendants ```{autodoc2-docstring} arelle.XmlUtil.descendants ``` ```` ````{py:function} isDescendantOf(element: arelle.ModelObject.ModelObject, ancestorElement: arelle.ModelObject.ModelObject) -> bool :canonical: arelle.XmlUtil.isDescendantOf ```{autodoc2-docstring} arelle.XmlUtil.isDescendantOf ``` ```` ````{py:function} schemaDescendantsNames(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalName: str, qnames: set[arelle.ModelValue.QName | None] | None = None) -> set[arelle.ModelValue.QName | None] :canonical: arelle.XmlUtil.schemaDescendantsNames ```{autodoc2-docstring} arelle.XmlUtil.schemaDescendantsNames ``` ```` ````{py:function} schemaDescendant(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalName: str, name: str) -> arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.schemaDescendant ```{autodoc2-docstring} arelle.XmlUtil.schemaDescendant ``` ```` ````{py:function} schemaBaseTypeDerivedFrom(element: arelle.ModelObject.ModelObject) -> typing.Any :canonical: arelle.XmlUtil.schemaBaseTypeDerivedFrom ```{autodoc2-docstring} arelle.XmlUtil.schemaBaseTypeDerivedFrom ``` ```` ````{py:function} schemaFacets(element: lxml.etree._Element, facetTags: list[str], facets: list[lxml.etree._Element | None] | None = None) -> list[lxml.etree._Element | None] :canonical: arelle.XmlUtil.schemaFacets ```{autodoc2-docstring} arelle.XmlUtil.schemaFacets ``` ```` ````{py:function} schemaAttributesGroups(element: lxml.etree._Element, attributes: list[lxml.etree._Element] | None = None, attributeWildcards: list[lxml.etree._Element] | None = None, attributeGroups: list[lxml.etree._Element] | None = None) -> tuple[list[lxml.etree._Element], list[lxml.etree._Element], list[lxml.etree._Element]] :canonical: arelle.XmlUtil.schemaAttributesGroups ```{autodoc2-docstring} arelle.XmlUtil.schemaAttributesGroups ``` ```` ````{py:function} emptyContentModel(element: lxml.etree._Element) -> bool :canonical: arelle.XmlUtil.emptyContentModel ```{autodoc2-docstring} arelle.XmlUtil.emptyContentModel ``` ```` ````{py:function} addChild(parent: arelle.ModelObject.ModelObject, childName1: str | arelle.ModelValue.QName, childName2: str | None = None, attributes: typing.Sequence[tuple[str | arelle.ModelValue.QName, str]] | dict[str | arelle.ModelValue.QName, str] | tuple[str, str] | None = None, text: str | None = None, afterSibling: arelle.ModelObject.ModelObject | None = None, beforeSibling: arelle.ModelObject.ModelObject | None = None, appendChild: bool = True) -> arelle.ModelObject.ModelObject :canonical: arelle.XmlUtil.addChild ```{autodoc2-docstring} arelle.XmlUtil.addChild ``` ```` ````{py:function} copyNodes(parent: arelle.ModelObject.ModelObject, elts: typing.Sequence[arelle.ModelObject.ModelObject] | arelle.ModelObject.ModelObject) -> None :canonical: arelle.XmlUtil.copyNodes ```{autodoc2-docstring} arelle.XmlUtil.copyNodes ``` ```` ````{py:function} copyChildren(parent: arelle.ModelObject.ModelObject, elt: arelle.ModelObject.ModelObject) -> None :canonical: arelle.XmlUtil.copyChildren ```{autodoc2-docstring} arelle.XmlUtil.copyChildren ``` ```` ````{py:function} copyIxFootnoteHtml(srcXml: lxml.etree._Element, tgtHtml: lxml.etree._Element, targetModelDocument: arelle.ModelDocument.ModelDocument | None = None, withText: bool = False, isContinChainElt: bool = True, tgtStack: list[list[lxml.etree._Element | str]] | None = None, srcLevel: int = 0) -> None :canonical: arelle.XmlUtil.copyIxFootnoteHtml ```{autodoc2-docstring} arelle.XmlUtil.copyIxFootnoteHtml ``` ```` ````{py:function} addComment(parent: arelle.ModelObject.ModelObject, commentText: str) -> None :canonical: arelle.XmlUtil.addComment ```{autodoc2-docstring} arelle.XmlUtil.addComment ``` ```` ````{py:function} addProcessingInstruction(parent: arelle.ModelObject.ModelObject, piTarget: str | bytes, piText: str, insertBeforeChildElements: bool = True, insertBeforeParentElement: bool = False) -> None :canonical: arelle.XmlUtil.addProcessingInstruction ```{autodoc2-docstring} arelle.XmlUtil.addProcessingInstruction ``` ```` ````{py:function} addQnameValue(modelDocument: arelle.ModelDocument.ModelDocument, qnameValue: arelle.ModelValue.QName | str) -> str :canonical: arelle.XmlUtil.addQnameValue ```{autodoc2-docstring} arelle.XmlUtil.addQnameValue ``` ```` ````{py:function} setXmlns(modelDocument: lxml.etree._ElementTree | arelle.ModelDocument.ModelDocument, prefix: str | None, namespaceURI: str) -> None :canonical: arelle.XmlUtil.setXmlns ```{autodoc2-docstring} arelle.XmlUtil.setXmlns ``` ```` ````{py:function} sortKey(parentElement: arelle.ModelObject.ModelObject, childNamespaceUri: str, childLocalNames: tuple[str, ...], childAttributeName: str | None = None, qnames: bool = False) -> list[tuple[str, str, str | None]] :canonical: arelle.XmlUtil.sortKey ```{autodoc2-docstring} arelle.XmlUtil.sortKey ``` ```` ````{py:data} DATETIME_MINYEAR :canonical: arelle.XmlUtil.DATETIME_MINYEAR :value: > 'datetime(...)' ```{autodoc2-docstring} arelle.XmlUtil.DATETIME_MINYEAR ``` ```` ````{py:data} DATETIME_MAXYEAR :canonical: arelle.XmlUtil.DATETIME_MAXYEAR :value: > 'datetime(...)' ```{autodoc2-docstring} arelle.XmlUtil.DATETIME_MAXYEAR ``` ```` ````{py:function} tzinfo(tz: str | None) -> datetime.timezone | None :canonical: arelle.XmlUtil.tzinfo ```{autodoc2-docstring} arelle.XmlUtil.tzinfo ``` ```` ````{py:function} datetimeValue(element: arelle.ModelObject.ModelObject, addOneDay: bool = False, none: str | None = None, subtractOneDay: bool = False) -> datetime.datetime | None :canonical: arelle.XmlUtil.datetimeValue ```{autodoc2-docstring} arelle.XmlUtil.datetimeValue ``` ```` ````{py:function} dateunionValue(datetimeValue: typing.Any, subtractOneDay: bool = False, dateOnlyHour: int | None = None) -> str :canonical: arelle.XmlUtil.dateunionValue ```{autodoc2-docstring} arelle.XmlUtil.dateunionValue ``` ```` ````{py:function} xpointerSchemes(fragmentIdentifier: str) -> list[tuple[str, str]] :canonical: arelle.XmlUtil.xpointerSchemes ```{autodoc2-docstring} arelle.XmlUtil.xpointerSchemes ``` ```` ````{py:function} xpointerElement(modelDocument: arelle.ModelDocument.ModelDocument, fragmentIdentifier: str) -> lxml.etree._Element | arelle.ModelObject.ModelObject | None :canonical: arelle.XmlUtil.xpointerElement ```{autodoc2-docstring} arelle.XmlUtil.xpointerElement ``` ```` ````{py:function} elementFragmentIdentifier(element: lxml.etree.ElementBase | lxml.etree._Element | arelle.ModelObject.ModelObject | None) -> str | None :canonical: arelle.XmlUtil.elementFragmentIdentifier ```{autodoc2-docstring} arelle.XmlUtil.elementFragmentIdentifier ``` ```` ````{py:function} elementIndex(element: typing.Any) -> int :canonical: arelle.XmlUtil.elementIndex ```{autodoc2-docstring} arelle.XmlUtil.elementIndex ``` ```` ````{py:function} elementChildSequence(element: lxml.etree._Element | lxml.etree.ElementBase | arelle.ModelObject.ModelObject | None) -> str :canonical: arelle.XmlUtil.elementChildSequence ```{autodoc2-docstring} arelle.XmlUtil.elementChildSequence ``` ```` ````{py:function} elementTagnamesPath(element: lxml.etree._Element | arelle.ModelObject.ModelObject | None) -> str :canonical: arelle.XmlUtil.elementTagnamesPath ```{autodoc2-docstring} arelle.XmlUtil.elementTagnamesPath ``` ```` ````{py:function} xmlstring(elt: lxml.etree._Element | arelle.ModelObject.ModelObject, stripXmlns: bool = False, prettyPrint: bool = False, contentsOnly: bool = False, includeText: bool = False) -> str :canonical: arelle.XmlUtil.xmlstring ```{autodoc2-docstring} arelle.XmlUtil.xmlstring ``` ```` ````{py:function} writexml(writer: typing.TextIO, node: lxml.etree._ElementTree | lxml.etree._Element | arelle.ModelObject.ModelObject, encoding: str | None = None, indent: str = '', xmlcharrefreplace: bool = False, edgarcharrefreplace: bool = False, skipInvalid: bool = False, parentNsmap: dict[str | None, str] | None = None) -> None :canonical: arelle.XmlUtil.writexml ```{autodoc2-docstring} arelle.XmlUtil.writexml ``` ````