arelle.ModelObject
¶
See COPYRIGHT.md for copyright information.
Module Contents¶
Classes¶
ModelObjects represent the XML elements within a document, and are implemented as custom lxml proxy objects. Each modelDocument has a parser with the parser objects in ModelObjectFactory.py, to determine the type of model object to correspond to a proxied lxml XML element. Both static assignment of class, by namespace and local name, and dynamic assignment, by dynamic resolution of element namespace and local name according to the dynamically loaded schemas, are used in the ModelObjectFactory. |
|
ModelConcept is a custom proxy objects for etree. |
|
ModelProcessingInstruction is a custom proxy object for etree. |
|
.. class:: ModelAttribute(modelElement, attrTag, xValid, xValue, sValue, text) |
|
Functions¶
Data¶
API¶
- arelle.ModelObject.XmlUtil: Any¶
None
- arelle.ModelObject.emptySet: set[Any]¶
‘set(…)’
- arelle.ModelObject.init() None ¶
- class arelle.ModelObject.ModelObject¶
Bases:
arelle.model.ElementBase
ModelObjects represent the XML elements within a document, and are implemented as custom lxml proxy objects. Each modelDocument has a parser with the parser objects in ModelObjectFactory.py, to determine the type of model object to correspond to a proxied lxml XML element. Both static assignment of class, by namespace and local name, and dynamic assignment, by dynamic resolution of element namespace and local name according to the dynamically loaded schemas, are used in the ModelObjectFactory.
ModelObjects are grouped into Python modules to ensure minimal inter-package references (which causes a performance impact). ModelDtsObjects collects DTS objects (schema and linkbase), ModelInstanceObjects collects instance objects (facts, contexts, dimensions, and units), ModelTestcaseObject collects testcase and variation objects, ModelVersioningObject has specialized objects representing versioning report contents, and ModelRssItem represents the item objects in an RSS feed.
The ModelObject custom lxml proxy object is implemented as a specialization of etree.ElementBase, and used as the superclass of discovered and created objects in XML-based objects in Arelle. ModelObject is also used as a phantom proxy object, for non-XML objects that are resolved from modelDocument objects, such as the ModelRelationship object. ModelObjects persistent with their owning ModelDocument, due to reference by modelObject list in modelDocument object.
(The attributes and methods for ModelObject are in addition to those for lxml base class, _ElementBase.)
.. attribute:: modelDocument Owning ModelDocument object .. attribute:: modelXbrl modelDocument's owning ModelXbrl object .. attribute:: localName W3C DOM localName .. attribute:: prefixedName Prefix by ancestor xmlns and localName of element .. attribute:: namespaceURI W3C DOM namespaceURI (overridden for schema elements) .. attribute:: elementNamespaceURI W3C DOM namespaceURI (not overridden by subclasses) .. attribute:: qname QName of element (overridden for schema elements) .. attribute:: elementQname QName of element (not overridden by subclasses) .. attribute:: parentQname QName of parent element .. attribute:: id Id attribute or None .. attribute:: elementAttributesTuple Python tuple of (tag, value) of specified attributes of element, where tag is in Clark notation .. attribute:: elementAttributesStr String of tag=value[,tag=value...] of specified attributes of element .. attribute:: xValid XmlValidation.py validation state enumeration .. attribute:: xValue PSVI value (for formula processing) .. attribute:: sValue s-equals value (for s-equality) .. attribute:: xAttributes Dict by attrTag of ModelAttribute objects (see below) of specified and default attributes of this element.
- _elementQname: arelle.ModelValue.QName¶
None
- _parentQname: arelle.ModelValue.QName | None¶
None
- _elementSequence: int¶
None
- _namespaceURI: str | None¶
None
- _hashSEqual: int¶
None
- _hashXpathEqual: int¶
None
- sValue: arelle.ModelValue.TypeSValue¶
None
- xAttributes: dict[str, ModelAttribute]¶
None
- xValue: arelle.ModelValue.TypeXValue¶
None
- xValueError: Exception | None¶
None
- xValid: int¶
None
- xlinkLabel: str¶
None
- targetModelXbrl: arelle.ModelXbrl.ModelXbrl¶
None
- _init() None ¶
- clear() None ¶
- init(modelDocument: arelle.ModelDocument.ModelDocument) None ¶
- objectId(refId: str = '') str ¶
Returns a string surrogate representing the object index of the model document, prepended by the refId string.
- Parameters:
refId (str) – A string to prefix the refId for uniqueless (such as to use in tags for tkinter)
- property modelXbrl: arelle.ModelXbrl.ModelXbrl | None¶
- attr(attrname: str) str | None ¶
- property slottedAttributesNames: set[Any]¶
- setNamespaceLocalName() None ¶
- getStripped(attrName: str) str | None ¶
- property localName: str¶
- property prefixedName: str¶
- property namespaceURI: str | None¶
- property elementNamespaceURI: str | None¶
- property qname: arelle.ModelValue.QName¶
- property elementQname: arelle.ModelValue.QName¶
- vQname(validationModelXbrl: arelle.ModelXbrl.ModelXbrl | None = None) arelle.ModelValue.QName ¶
- elementDeclaration(validationModelXbrl: arelle.ModelXbrl.ModelXbrl | None = None) arelle.ModelDtsObject.ModelConcept | None ¶
- property elementSequence: int¶
- property parentQname: arelle.ModelValue.QName | None¶
- property id: str | None¶
- property stringValue: str¶
- property textValue: str¶
- _textNodes(recurse: bool = False) Generator[str | Any, None, None] ¶
- property document: arelle.ModelDocument.ModelDocument¶
- prefixedNameQname(prefixedName: str | None) arelle.ModelValue.QName | None ¶
Returns ModelValue.QName of prefixedName using this element and its ancestors’ xmlns.
- Parameters:
prefixedName (str) – A prefixed name string
- Returns:
QName – the resolved prefixed name, or None if no prefixed name was provided
- property elementAttributesTuple: tuple[Any, ...]¶
- property elementAttributesStr: str¶
- resolveUri(hrefObject: tuple[str, arelle.ModelDocument.ModelDocument, str] | None = None, uri: str | None = None, dtsModelXbrl: arelle.ModelXbrl.ModelXbrl | None = None) arelle.ModelObject.ModelObject | None ¶
Returns the modelObject within modelDocment that resolves a URI based on arguments relative to this element
- Parameters:
hrefObject – an optional tuple of (hrefElement, modelDocument, id), or
uri (str) – An (element scheme pointer), and dtsModelXbrl (both required together if for a multi-instance href)
dtsModelXbrl (ModelXbrl) – DTS of href resolution (default is the element’s own modelXbrl)
- Returns:
ModelObject – Document node corresponding to the href or resolved uri
- genLabel(role: str | None = None, fallbackToQname: bool = False, fallbackToXlinkLabel: bool = False, lang: str | None = None, strip: bool = False, linkrole: str | None = None) str | None ¶
- viewText(labelrole: str | None = None, lang: str | None = None) str ¶
- property propertyView: tuple[Any, ...]¶
- __repr__() str ¶
- class arelle.ModelObject.ModelComment¶
Bases:
arelle.model.CommentBase
ModelConcept is a custom proxy objects for etree.
- _init() None ¶
- init(modelDocument: arelle.ModelDocument.ModelDocument) None ¶
- class arelle.ModelObject.ModelProcessingInstruction¶
Bases:
arelle.model.PIBase
ModelProcessingInstruction is a custom proxy object for etree.
- _init() None ¶
- class arelle.ModelObject.ModelAttribute(modelElement: arelle.ModelObject.ModelObject | arelle.ModelDtsObject.ModelLink | arelle.ModelDtsObject.ModelLocator | arelle.ModelDtsObject.ModelResource | arelle.ModelInstanceObject.ModelInlineXbrliXbrl | arelle.ModelInstanceObject.ModelInlineFact | arelle.ModelInstanceObject.ModelDimensionValue | arelle.ModelInstanceObject.ModelInlineFootnote, attrTag: str, xValid: int, xValue: arelle.ModelValue.TypeXValue, sValue: arelle.ModelValue.TypeSValue, text: str)¶
.. class:: ModelAttribute(modelElement, attrTag, xValid, xValue, sValue, text)
ModelAttribute is a class of slot-based instances to store PSVI attribute values for each ModelObject that has been validated. It does not correspond to, or proxy, any lxml object.
- Parameters:
modelElement (ModelObject) – owner element of attribute node
attrTag (str) – Clark notation attribute tag (from lxml)
xValid – XmlValidation.py validation state enumeration
xValue – PSVI value (for formula processing)
sValue – s-equals value (for s-equality)
Initialization
- __slots__¶
(‘modelElement’, ‘attrTag’, ‘xValid’, ‘xValue’, ‘sValue’, ‘text’)
- class arelle.ModelObject.ObjectPropertyViewWrapper(modelObject: arelle.ModelObject.ModelObject, extraProperties: tuple[Any, ...] = ())¶
Initialization
- __slots__¶
(‘modelObject’, ‘extraProperties’)
- modelObject: arelle.ModelObject.ModelObject¶
None
- property propertyView: tuple[Any, ...]¶
- __repr__() str ¶