arelle.XmlUtil

See COPYRIGHT.md for copyright information.

Module Contents

Functions

Data

API

arelle.XmlUtil.datetimePattern

‘compile(…)’

arelle.XmlUtil.xmlDeclarationPattern

‘compile(…)’

arelle.XmlUtil.xmlEncodingPattern

‘compile(…)’

arelle.XmlUtil.xpointerFragmentIdentifierPattern

‘compile(…)’

arelle.XmlUtil.xmlnsStripPattern

‘compile(…)’

exception arelle.XmlUtil.XmlDeclarationLocationException

Bases: Exception

add_note()
class args
with_traceback()
arelle.XmlUtil.xmlns(element: arelle.ModelObject.ModelObject, prefix: str | None) → str | None
arelle.XmlUtil.xmlnsprefix(element: lxml.etree._Element | arelle.ModelObject.ModelObject, ns: str | None) → str | None
arelle.XmlUtil.targetNamespace(element: arelle.ModelObject.ModelObject) → str | None
arelle.XmlUtil.schemaLocation(element: lxml.etree._Element, namespace: str, returnElement: bool = False) → lxml.etree._Element | str | None
arelle.XmlUtil.clarkNotationToPrefixNsLocalname(element: arelle.ModelObject.ModelObject, clarkName: str, isAttribute: bool = False) → tuple[str | None, str | None, str]
arelle.XmlUtil.clarkNotationToPrefixedName(element: arelle.ModelObject.ModelObject, clarkName: str, isAttribute: bool = False) → str
arelle.XmlUtil.prefixedNameToNamespaceLocalname(element: arelle.ModelObject.ModelObject, prefixedName: str, defaultNsmap: collections.abc.Mapping[str, str] | None = None) → tuple[str | None, str, str | None] | None
arelle.XmlUtil.prefixedNameToClarkNotation(element: arelle.ModelObject.ModelObject, prefixedName: str) → str | None
arelle.XmlUtil.encoding(xml: arelle.XmlUtil.encoding.str | bytes, default: arelle.XmlUtil.encoding.str = 'utf-8') → arelle.XmlUtil.encoding.str
arelle.XmlUtil.text(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject) → str
arelle.XmlUtil.childText(element: arelle.ModelObject.ModelObject, childNamespaceURIs: str | tuple[str, ...] | None, childLocalNames: str | tuple[str, ...]) → str | None
arelle.XmlUtil.textNotStripped(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | None) → str
arelle.XmlUtil.selfClosable(elt: arelle.ModelObject.ModelObject) → bool
arelle.XmlUtil.innerText(element: arelle.ModelObject.ModelObject, ixExclude: bool = False, ixEscape: str | None = None, ixContinuation: bool = False, ixResolveUris: bool = False, strip: bool = True) → str
arelle.XmlUtil.innerTextList(element: arelle.ModelObject.ModelObject, ixExclude: bool = False, ixEscape: str | None = None, ixContinuation: bool = False, ixResolveUris: bool = False) → str
arelle.XmlUtil.innerTextNodes(element: arelle.ModelObject.ModelObject | None, ixExclude: bool | str, ixEscape: str | None, ixContinuation: bool, ixResolveUris: bool) → collections.abc.Generator[str, None, None]
arelle.XmlUtil.escapedNode(elt: arelle.ModelObject.ModelObject, start: bool, empty: bool, ixEscape: str, ixResolveUris: bool) → str
arelle.XmlUtil.escapedText(text: str) → str
arelle.XmlUtil.replaceWhitespace(s: str) → str
arelle.XmlUtil.collapseWhitespace(s: str) → str
arelle.XmlUtil.xhtmlFragmentsEqual(a: str, b: str, normalizeSpace: bool = True) → bool

Whether two strings are the same XHTML fragment when parsed with XHTML as the default namespace.

Quote style, attribute order, character references, empty element syntax and redundant namespace declarations are ignored. If normalizeSpace is true, leading and trailing whitespace is ignored and other runs of whitespace compare as a single space. Strings that aren’t well formed XML fragments are never equal.

arelle.XmlUtil.parentId(element: arelle.ModelObject.ModelObject, parentNamespaceURI: str, parentLocalName: str) → str | None
arelle.XmlUtil.hasChild(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...]) → bool
arelle.XmlUtil.hasDescendant(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalNames: str) → bool
arelle.XmlUtil.hasAncestor(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str, ancestorLocalNames: str | tuple[str, ...]) → bool
arelle.XmlUtil.ancestor(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str, ancestorLocalNames: str | tuple[str, ...]) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.parent(element: arelle.ModelObject.ModelObject, parentNamespaceURI: str | None = None, parentLocalNames: str | tuple[str, ...] | None = None, ixTarget: bool = False) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.ancestors(element: arelle.ModelObject.ModelObject, ancestorNamespaceURI: str | None = None, ancestorLocalNames: str | tuple[str, ...] | None = None) → list[arelle.ModelObject.ModelObject]
arelle.XmlUtil.ancestorOrSelfAttr(element: arelle.ModelObject.ModelObject, attrClarkName: str) → str | None
arelle.XmlUtil.childAttr(element: arelle.ModelObject.ModelObject, childNamespaceURI: str | tuple[str, ...] | None, childLocalNames: str | tuple[str, ...], attrClarkName: str) → str | None
arelle.XmlUtil.descendantAttr(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...], attrClarkName: str, attrName: str | None = None, attrValue: str | None = None) → str | None
arelle.XmlUtil.children(element: arelle.ModelObject.ModelObject | lxml.etree._ElementTree | arelle.PrototypeDtsObject.PrototypeElementTree, childNamespaceURIs: str | tuple[str, ...] | None, childLocalNames: str | tuple[str, ...], ixTarget: bool = False) → collections.abc.Sequence[arelle.ModelObject.ModelObject]
arelle.XmlUtil.child(element: arelle.ModelObject.ModelObject, childNamespaceURI: str | tuple[str, ...] | None = None, childLocalNames: str | tuple[str, ...] = ('*',)) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.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
arelle.XmlUtil.previousSiblingElement(element: arelle.ModelObject.ModelObject) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.nextSiblingElement(element: arelle.ModelObject.ModelObject) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.childrenAttrs(element: arelle.ModelObject.ModelObject, childNamespaceURI: str, childLocalNames: str | tuple[str, ...], attrLocalName: str) → list[str]
arelle.XmlUtil.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
arelle.XmlUtil.descendants(element: arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject | lxml.etree._ElementTree | arelle.PrototypeDtsObject.PrototypeElementTree, descendantNamespaceURI: str | None, descendantLocalNames: str | tuple[str, ...], attrName: str | None = None, attrValue: str | None = None, breakOnFirst: bool = False, ixTarget: bool = False) → collections.abc.Sequence[arelle.ModelObject.ModelObject | arelle.PrototypeDtsObject.PrototypeObject]
arelle.XmlUtil.isDescendantOf(element: arelle.ModelObject.ModelObject, ancestorElement: arelle.ModelObject.ModelObject) → bool
arelle.XmlUtil.schemaDescendantsNames(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalName: str, qnames: set[arelle.ModelValue.QName | None] | None = None) → set[arelle.ModelValue.QName | None]
arelle.XmlUtil.schemaDescendant(element: arelle.ModelObject.ModelObject, descendantNamespaceURI: str, descendantLocalName: str, name: str) → arelle.ModelObject.ModelObject | None
arelle.XmlUtil.schemaBaseTypeDerivedFrom(element: arelle.ModelObject.ModelObject) → Any
arelle.XmlUtil.schemaFacets(element: lxml.etree._Element, facetTags: list[str] | tuple[str, ...], facets: list[lxml.etree._Element | None] | None = None) → list[lxml.etree._Element | None]
arelle.XmlUtil.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]]
arelle.XmlUtil.emptyContentModel(element: lxml.etree._Element) → bool
arelle.XmlUtil.addChild(parent: arelle.ModelObject.ModelObject, childName1: str | arelle.ModelValue.QName, childName2: str | None = None, attributes: collections.abc.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
arelle.XmlUtil.copyNodes(parent: arelle.ModelObject.ModelObject, elts: collections.abc.Sequence[arelle.ModelObject.ModelObject] | arelle.ModelObject.ModelObject) → None
arelle.XmlUtil.copyChildren(parent: arelle.ModelObject.ModelObject, elt: arelle.ModelObject.ModelObject) → None
arelle.XmlUtil.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
arelle.XmlUtil.addComment(parent: lxml.etree._Element, commentText: str) → None
arelle.XmlUtil.addProcessingInstruction(parent: lxml.etree._Element, piTarget: str | bytes, piText: str, insertBeforeChildElements: bool = True, insertBeforeParentElement: bool = False) → None
arelle.XmlUtil.addQnameValue(modelDocument: arelle.ModelDocument.ModelDocument | arelle.ModelObject.ModelObject, qnameValue: arelle.ModelValue.QName | str) → str
arelle.XmlUtil.setXmlns(modelDocument: lxml.etree._ElementTree | arelle.ModelDocument.ModelDocument, prefix: str | None, namespaceURI: str) → None
arelle.XmlUtil.sortKey(parentElement: arelle.ModelObject.ModelObject, childNamespaceUri: str, childLocalNames: tuple[str, ...], childAttributeName: str | None = None, qnames: bool = False) → list[tuple[str, str, str | None]]
arelle.XmlUtil.DATETIME_MINYEAR

‘datetime(…)’

arelle.XmlUtil.DATETIME_MAXYEAR

‘datetime(…)’

arelle.XmlUtil.tzinfo(tz: str | None) → datetime.timezone | None
arelle.XmlUtil.datetimeValue(element: str | arelle.ModelObject.ModelObject | None, addOneDay: bool = False, none: str | None = None, subtractOneDay: bool = False) → datetime.datetime | None

Parses text value from element as a datetime.

If element is None, returns None, unless none is provided: “minyear”: minimum datetime value “maxyear”: maximum datetime value

If the text value does not match a date/datetime pattern, returns None.

If the text value has a time portion with 24:00:00, the date is rolled forward to it’s 00:00:00 equivalent.

If the text value has a time portion and subtractOneDay is True, 00:00:00 datetimes will cause a day to be subtracted from the result.

If the text value does not have a time portion and addOneDay is True, a day will be added to the result.

Parameters:
  • element – Element that provides text value to be parsed.

  • addOneDay – If value does not have a time portion, add one day

  • none – Determines what to return if element is None. “minyear” or “maxyear”

  • subtractOneDay – If value has a zero-valued time portion, subtract one day

Returns:

arelle.XmlUtil.dateunionValue(datetimeValue: datetime.datetime | datetime.date | None, subtractOneDay: bool = False, dateOnlyHour: int | None = None) → str
arelle.XmlUtil.xpointerSchemes(fragmentIdentifier: str) → list[tuple[str, str]]
arelle.XmlUtil.xpointerElement(modelDocument: arelle.ModelDocument.ModelDocument, fragmentIdentifier: str) → lxml.etree._Element | arelle.ModelObject.ModelObject | None
arelle.XmlUtil.elementFragmentIdentifier(element: lxml.etree.ElementBase | lxml.etree._Element | arelle.ModelObject.ModelObject | None) → str | None
arelle.XmlUtil.elementIndex(element: Any) → int
arelle.XmlUtil.elementChildSequence(element: lxml.etree._Element | lxml.etree.ElementBase | arelle.ModelObject.ModelObject | None) → str
arelle.XmlUtil.elementTagnamesPath(element: lxml.etree._Element | arelle.ModelObject.ModelObject | None) → str
arelle.XmlUtil.xmlstring(elt: lxml.etree._Element | arelle.ModelObject.ModelObject, stripXmlns: bool = False, prettyPrint: bool = False, contentsOnly: bool = False, includeText: bool = False) → str
arelle.XmlUtil.writexml(writer: 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