# {py:mod}`arelle.ModelDocument` ```{py:module} arelle.ModelDocument ``` ```{autodoc2-docstring} arelle.ModelDocument :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ModelDocument ` - ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument :summary: ``` * - {py:obj}`ModelDocumentReference ` - ```{autodoc2-docstring} arelle.ModelDocument.ModelDocumentReference :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`load ` - ```{autodoc2-docstring} arelle.ModelDocument.load :summary: ``` * - {py:obj}`loadSchemalocatedSchema ` - ```{autodoc2-docstring} arelle.ModelDocument.loadSchemalocatedSchema :summary: ``` * - {py:obj}`create ` - ```{autodoc2-docstring} arelle.ModelDocument.create :summary: ``` * - {py:obj}`inlineIxdsDiscover ` - ```{autodoc2-docstring} arelle.ModelDocument.inlineIxdsDiscover :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Type ` - ```{autodoc2-docstring} arelle.ModelDocument.Type :summary: ``` * - {py:obj}`urlMatchPattern ` - ```{autodoc2-docstring} arelle.ModelDocument.urlMatchPattern :summary: ``` * - {py:obj}`creationSoftwareNames ` - ```{autodoc2-docstring} arelle.ModelDocument.creationSoftwareNames :summary: ``` * - {py:obj}`schemaBottom ` - ```{autodoc2-docstring} arelle.ModelDocument.schemaBottom :summary: ``` * - {py:obj}`fractionParts ` - ```{autodoc2-docstring} arelle.ModelDocument.fractionParts :summary: ``` ```` ### API ````{py:data} Type :canonical: arelle.ModelDocument.Type :value: > None ```{autodoc2-docstring} arelle.ModelDocument.Type ``` ```` ````{py:data} urlMatchPattern :canonical: arelle.ModelDocument.urlMatchPattern :value: > 'compile(...)' ```{autodoc2-docstring} arelle.ModelDocument.urlMatchPattern ``` ```` ````{py:data} creationSoftwareNames :canonical: arelle.ModelDocument.creationSoftwareNames :type: list[tuple[str, regex.Pattern[str]]] | None :value: > None ```{autodoc2-docstring} arelle.ModelDocument.creationSoftwareNames ``` ```` ````{py:function} load(modelXbrl: arelle.ModelXbrl.ModelXbrl, uri: str, base: str | None = None, referringElement: arelle.ModelObject.ModelObject | arelle.ModelXbrl.ModelXbrl | None = None, isEntry: bool = False, isDiscovered: bool = False, isIncluded: bool = False, isSupplemental: bool = False, namespace: str | None = None, reloadCache: bool = False, **kwargs: typing.Any) -> ModelDocument | None :canonical: arelle.ModelDocument.load ```{autodoc2-docstring} arelle.ModelDocument.load ``` ```` ````{py:function} loadSchemalocatedSchema(modelXbrl: arelle.ModelXbrl.ModelXbrl, element: arelle.ModelObject.ModelObject, relativeUrl: str, namespace: str, baseUrl: str) -> ModelDocument | None :canonical: arelle.ModelDocument.loadSchemalocatedSchema ```{autodoc2-docstring} arelle.ModelDocument.loadSchemalocatedSchema ``` ```` ````{py:function} create(modelXbrl: arelle.ModelXbrl.ModelXbrl, type: int, uri: str, schemaRefs: list[str] | None = None, isEntry: bool = False, initialXml: str | None = None, initialComment: str | None = None, base: str | None = None, discover: bool = True, documentEncoding: str = 'utf-8', xbrliNamespacePrefix: str | None = None, entrypoint: dict[str, typing.Any] | None = None) -> ModelDocument :canonical: arelle.ModelDocument.create ```{autodoc2-docstring} arelle.ModelDocument.create ``` ```` ````{py:data} schemaBottom :canonical: arelle.ModelDocument.schemaBottom :value: > None ```{autodoc2-docstring} arelle.ModelDocument.schemaBottom ``` ```` ````{py:data} fractionParts :canonical: arelle.ModelDocument.fractionParts :value: > None ```{autodoc2-docstring} arelle.ModelDocument.fractionParts ``` ```` `````{py:class} ModelDocument(modelXbrl: arelle.ModelXbrl.ModelXbrl, type: int, uri: str, filepath: str, xmlDocument: lxml.etree._ElementTree[lxml.etree._Element] | None) :canonical: arelle.ModelDocument.ModelDocument Bases: {py:obj}`arelle.typing.ModelDocumentBase` ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.__init__ ``` ````{py:attribute} documentEncoding :canonical: arelle.ModelDocument.ModelDocument.documentEncoding :type: str :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.documentEncoding ``` ```` ````{py:attribute} entrypoint :canonical: arelle.ModelDocument.ModelDocument.entrypoint :type: dict[str, typing.Any] | None :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.entrypoint ``` ```` ````{py:attribute} xmlRootElement :canonical: arelle.ModelDocument.ModelDocument.xmlRootElement :type: typing.Any :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.xmlRootElement ``` ```` ````{py:attribute} targetXbrlRootElement :canonical: arelle.ModelDocument.ModelDocument.targetXbrlRootElement :type: arelle.ModelObject.ModelObject :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.targetXbrlRootElement ``` ```` ````{py:attribute} parser :canonical: arelle.ModelDocument.ModelDocument.parser :type: lxml.etree.XMLParser[lxml.etree._Element] :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.parser ``` ```` ````{py:attribute} parserLookupName :canonical: arelle.ModelDocument.ModelDocument.parserLookupName :type: arelle.ModelObjectFactory.KnownNamespacesModelObjectClassLookup :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.parserLookupName ``` ```` ````{py:attribute} parserLookupClass :canonical: arelle.ModelDocument.ModelDocument.parserLookupClass :type: arelle.ModelObjectFactory.DiscoveringClassLookup :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.parserLookupClass ``` ```` ````{py:attribute} securityClassification :canonical: arelle.ModelDocument.ModelDocument.securityClassification :type: str | None :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.securityClassification ``` ```` ````{py:attribute} fromDTS :canonical: arelle.ModelDocument.ModelDocument.fromDTS :type: arelle.ModelXbrl.ModelXbrl :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.fromDTS ``` ```` ````{py:attribute} toDTS :canonical: arelle.ModelDocument.ModelDocument.toDTS :type: arelle.ModelXbrl.ModelXbrl :value: > None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.toDTS ``` ```` ````{py:method} objectId(refId: str = '') -> str :canonical: arelle.ModelDocument.ModelDocument.objectId ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.objectId ``` ```` ````{py:property} qname :canonical: arelle.ModelDocument.ModelDocument.qname :type: arelle.ModelValue.QName | None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.qname ``` ```` ````{py:method} relativeUri(uri: str) -> str :canonical: arelle.ModelDocument.ModelDocument.relativeUri ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.relativeUri ``` ```` ````{py:property} modelDocument :canonical: arelle.ModelDocument.ModelDocument.modelDocument :type: typing_extensions.Self ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.modelDocument ``` ```` ````{py:property} displayUri :canonical: arelle.ModelDocument.ModelDocument.displayUri :type: str ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.displayUri ``` ```` ````{py:property} basename :canonical: arelle.ModelDocument.ModelDocument.basename :type: str ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.basename ``` ```` ````{py:property} filepathdir :canonical: arelle.ModelDocument.ModelDocument.filepathdir :type: str ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.filepathdir ``` ```` ````{py:property} propertyView :canonical: arelle.ModelDocument.ModelDocument.propertyView :type: tuple[tuple[str, str], ...] ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.propertyView ``` ```` ````{py:method} setTitle(cntlr: arelle.CntlrWinMain.CntlrWinMain) -> None :canonical: arelle.ModelDocument.ModelDocument.setTitle ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.setTitle ``` ```` ````{py:method} setTitleInBackground() -> None :canonical: arelle.ModelDocument.ModelDocument.setTitleInBackground ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.setTitleInBackground ``` ```` ````{py:method} updateFileHistoryIfNeeded() -> None :canonical: arelle.ModelDocument.ModelDocument.updateFileHistoryIfNeeded ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.updateFileHistoryIfNeeded ``` ```` ````{py:method} save(overrideFilepath: str | None = None, outputZip: zipfile.ZipFile | None = None, outputFile: io.IOBase | None = None, updateFileHistory: bool = True, encoding: str = 'utf-8', zipDir: str | None = None, **kwargs: typing.Any) -> None :canonical: arelle.ModelDocument.ModelDocument.save ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.save ``` ```` ````{py:method} close(visited: list[arelle.ModelDocument.ModelDocument] | None = None, urlDocs: dict[str, arelle.ModelDocument.ModelDocument] | None = None) -> None :canonical: arelle.ModelDocument.ModelDocument.close ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.close ``` ```` ````{py:method} gettype() -> str :canonical: arelle.ModelDocument.ModelDocument.gettype ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.gettype ``` ```` ````{py:property} creationSoftwareComment :canonical: arelle.ModelDocument.ModelDocument.creationSoftwareComment :type: str | None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.creationSoftwareComment ``` ```` ````{py:property} creationSoftware :canonical: arelle.ModelDocument.ModelDocument.creationSoftware :type: str ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.creationSoftware ``` ```` ````{py:method} creationSoftwareMatches(text: str | None) -> list[str] :canonical: arelle.ModelDocument.ModelDocument.creationSoftwareMatches ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.creationSoftwareMatches ``` ```` ````{py:property} processingInstructions :canonical: arelle.ModelDocument.ModelDocument.processingInstructions :type: list[lxml.etree._ProcessingInstruction] ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.processingInstructions ``` ```` ````{py:method} schemaDiscover(rootElement: arelle.ModelObject.ModelObject, isIncluded: bool | None, isSupplemental: bool, namespace: str | None) -> None :canonical: arelle.ModelDocument.ModelDocument.schemaDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.schemaDiscover ``` ```` ````{py:method} schemaDiscoverChildElements(parentModelObject: arelle.ModelObject.ModelObject, isSupplemental: bool = False) -> None :canonical: arelle.ModelDocument.ModelDocument.schemaDiscoverChildElements ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.schemaDiscoverChildElements ``` ```` ````{py:method} baseForElement(element: arelle.ModelObject.ModelObject) -> str :canonical: arelle.ModelDocument.ModelDocument.baseForElement ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.baseForElement ``` ```` ````{py:method} importDiscover(element: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.importDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.importDiscover ``` ```` ````{py:method} schemalocateElementNamespace(element: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.schemalocateElementNamespace ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.schemalocateElementNamespace ``` ```` ````{py:method} loadSchemalocatedSchemas() -> None :canonical: arelle.ModelDocument.ModelDocument.loadSchemalocatedSchemas ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.loadSchemalocatedSchemas ``` ```` ````{py:method} schemaLinkbaseRefsDiscover(tree: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.schemaLinkbaseRefsDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.schemaLinkbaseRefsDiscover ``` ```` ````{py:method} schemaLinkbaseRefDiscover(element: arelle.ModelObject.ModelObject) -> typing.Any :canonical: arelle.ModelDocument.ModelDocument.schemaLinkbaseRefDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.schemaLinkbaseRefDiscover ``` ```` ````{py:method} linkbasesDiscover(tree: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.linkbasesDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.linkbasesDiscover ``` ```` ````{py:method} linkbaseDiscover(linkbaseElement: arelle.ModelObject.ModelObject, inInstance: bool = False) -> None :canonical: arelle.ModelDocument.ModelDocument.linkbaseDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.linkbaseDiscover ``` ```` ````{py:method} discoverHref(element: arelle.ModelObject.ModelObject, nonDTS: bool = False, urlRewritePluginClass: str | None = None) -> tuple[arelle.ModelObject.ModelObject, arelle.ModelDocument.ModelDocument | None, str | None] | None :canonical: arelle.ModelDocument.ModelDocument.discoverHref ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.discoverHref ``` ```` ````{py:method} instanceDiscover(xbrlElement: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.instanceDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.instanceDiscover ``` ```` ````{py:method} instanceContentsDiscover(xbrlElement: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.instanceContentsDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.instanceContentsDiscover ``` ```` ````{py:method} contextDiscover(modelContext: arelle.ModelInstanceObject.ModelContext, setTargetModelXbrl: bool = False) -> None :canonical: arelle.ModelDocument.ModelDocument.contextDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.contextDiscover ``` ```` ````{py:method} unitDiscover(unitElement: arelle.ModelInstanceObject.ModelUnit, setTargetModelXbrl: bool = False) -> None :canonical: arelle.ModelDocument.ModelDocument.unitDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.unitDiscover ``` ```` ````{py:method} inlineXbrlDiscover(htmlElement: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.inlineXbrlDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.inlineXbrlDiscover ``` ```` ````{py:method} factDiscover(modelFact: arelle.ModelInstanceObject.ModelFact, parentModelFacts: list[arelle.ModelInstanceObject.ModelFact] | None = None, parentElement: arelle.ModelObject.ModelObject | None = None) -> None :canonical: arelle.ModelDocument.ModelDocument.factDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.factDiscover ``` ```` ````{py:method} testcasesIndexDiscover(rootNode: lxml.etree._ElementTree, validateTestcaseSchema: bool) -> None :canonical: arelle.ModelDocument.ModelDocument.testcasesIndexDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.testcasesIndexDiscover ``` ```` ````{py:method} testcaseDiscover(testcaseElement: arelle.ModelObject.ModelObject, validateTestcaseSchema: bool) -> None :canonical: arelle.ModelDocument.ModelDocument.testcaseDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.testcaseDiscover ``` ```` ````{py:method} registryDiscover(rootNode: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.registryDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.registryDiscover ``` ```` ````{py:method} xPathTestSuiteDiscover(rootNode: arelle.ModelObject.ModelObject) -> None :canonical: arelle.ModelDocument.ModelDocument.xPathTestSuiteDiscover ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.xPathTestSuiteDiscover ``` ```` ````{py:method} addDocumentReference(doc: arelle.ModelDocument.ModelDocument, referenceType: str, referringModelObject: arelle.ModelObject.ModelObject | None = None) -> None :canonical: arelle.ModelDocument.ModelDocument.addDocumentReference ```{autodoc2-docstring} arelle.ModelDocument.ModelDocument.addDocumentReference ``` ```` ````` ````{py:function} inlineIxdsDiscover(modelXbrl: arelle.ModelXbrl.ModelXbrl, modelIxdsDocument: arelle.ModelDocument.ModelDocument, setTargetModelXbrl: bool = False, **kwargs: typing.Any) -> None :canonical: arelle.ModelDocument.inlineIxdsDiscover ```{autodoc2-docstring} arelle.ModelDocument.inlineIxdsDiscover ``` ```` `````{py:exception} LoadingException() :canonical: arelle.ModelDocument.LoadingException Bases: {py:obj}`Exception` ````{py:method} add_note() :canonical: arelle.ModelDocument.LoadingException.add_note ```` ```{py:class} args :canonical: arelle.ModelDocument.LoadingException.args ``` ````{py:method} with_traceback() :canonical: arelle.ModelDocument.LoadingException.with_traceback ```` ````` `````{py:class} ModelDocumentReference(referenceType: str, referringModelObject: arelle.ModelObject.ModelObject | None = None) :canonical: arelle.ModelDocument.ModelDocumentReference ```{autodoc2-docstring} arelle.ModelDocument.ModelDocumentReference ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.ModelDocument.ModelDocumentReference.__init__ ``` ````{py:property} referringXlinkRole :canonical: arelle.ModelDocument.ModelDocumentReference.referringXlinkRole :type: str | None ```{autodoc2-docstring} arelle.ModelDocument.ModelDocumentReference.referringXlinkRole ``` ```` `````