Créer le fichier XBRL dans Python

Créer une instance XBRL dans C#

Aspose.Finance prend en charge la création de documents XBRL. Pour cela, le API fournit la classe XbrlDocument. Le constructeur par défaut de la classe XbrlDocument peut être utilisé pour créer un nouveau document d’instance XBRL.

L’extrait de code suivant illustre la création d’un nouveau document d’instance XBRL.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Ajouter une référence de schéma

Aspose.Finance vous permet d’ajouter une référence de schéma dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe SchemaRefCollection.

L’extrait de code suivant illustre l’ajout d’une référence de schéma à une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Ajouter du contexte

Aspose.Finance vous permet d’ajouter du contexte dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe Context.

L’extrait de code suivant illustre l’ajout de contexte dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Ajouter une unité

Aspose.Finance vous permet d’ajouter du contexte dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe Unit.

L’extrait de code suivant montre comment ajouter une unité dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Ajouter un item

Aspose.Finance vous permet d’ajouter des éléments dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe Item.

L’extrait de code suivant montre comment ajouter un élément dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)
fixedAssetsConcept = schema.get_concept_by_name("fixedAssets")
if fixedAssetsConcept is not None:
item = Item(fixedAssetsConcept)
item.context_ref = context
item.unit_ref = unit
item.precision = 4
item.value = "1444"
xbrlInstance.facts.append(item)
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Ajouter un lien de note de bas de page

Aspose.Finance vous permet d’ajouter un lien de note de bas de page dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe FootnoteLink.

L’extrait de code suivant montre comment ajouter un lien de note de bas de page dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
footnoteLink = FootnoteLink()
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."
loc = Loc("#cd1", "fact1")
footnoteArc = FootnoteArc(loc.label, footnote.label)
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
xbrlDoc.save(os.path.join(outputDir, "xbrl_sample_with_footnotelink.xbrl"))

Ajouter une référence de rôle

Aspose.Finance vous permet d’ajouter une référence de rôle dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe RoleReference.

L’extrait de code suivant montre comment ajouter une référence de rôle dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")
if roleType is not None:
roleReference = RoleReference(roleType)
xbrlInstance.role_references.append(roleReference)
xbrlDoc.save(os.path.join(outputDir, "xbrl_sample_with_roletype.xbrl"))

Ajouter une référence de rôle d’arc

Aspose.Finance vous permet d’ajouter une référence de rôle d’arc dans l’instance XBRL nouvellement créée. Pour cela, le API fournit la classe ArcoleReference.

L’extrait de code suivant montre comment ajouter une référence de rôle d’arc dans une instance XBRL nouvellement créée.

xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
arcroleType = schema.get_arcrole_type_by_uri("http://abc.com/arcrole/footnote-test")
if arcroleType is not None:
arcroleReference = ArcroleReference(arcroleType)
xbrlInstance.arcrole_references.append(arcroleReference)
xbrlDoc.save(os.path.join(outputDir, "xbrl_sample_with_arcroletype.xbrl"))