Erstellen Sie eine XBRL-Datei mit Python

Ein XBRL-Dokument ist eine Sammlung von Fakten, die zusammen einen Geschäftsbericht ergeben. Wir können ganz einfach ein XBRL-Instanzdokument programmgesteuert erstellen und Objekte oder Elemente wie Schemareferenz, Kontext, Einheit, Elemente usw. hinzufügen. In diesem Artikel lernen wir, wie man eine XBRL-Datei mit Python erstellt.

Folgende Themen sollen in diesem Artikel behandelt werden:

  1. Was ist XBRL
  2. Python Finance Library zum Erstellen von XBRL-Dateien
  3. XBRL-Datei erstellen
  4. Schemareferenz zu XBRL hinzufügen
  5. Kontext in XBRL hinzufügen
  6. Einheit in XBRL erstellen
  7. Faktenelement in XBRL hinzufügen
  8. Fußnotenlinks zu XBRL hinzufügen
  9. Rollenreferenz in XBRL einfügen
  10. Arc-Rollenreferenz zu XBRL hinzufügen

Was ist XBRL

XBRL steht für eXtensible Business Reporting Language, eine XML-basierte Auszeichnungssprache. Es wird für die standardisierte Geschäftsberichterstattung über die finanzielle Leistung eines Unternehmens verwendet. Es bietet eine Möglichkeit, Geschäftsinformationen zwischen Geschäftssystemen zu kommunizieren und auszutauschen.

Python-Finanzbibliothek zum Erstellen von XBRL-Dateien

Um eine XBRL-Datei oder ein Instanzdokument zu erstellen, verwenden wir die API Aspose.Finance for Python. Es ermöglicht das Erstellen von XBRL-Instanzen, das Analysieren und Validieren der XBRL- oder iXBRL-Dateien.

Die API stellt die Klasse XbrlDocument bereit, die ein XBRL-Dokument darstellt, das eine oder mehrere XBRL-Instanzen enthält. Eine XBRL-Instanz ist ein XML-Fragment, wobei das Wurzelelement ein XBRL-Tag hat. Die Klasse XbrlInstance stellt verschiedene Methoden und Eigenschaften für die Arbeit mit XBRL-Instanzen bereit. Die Methode save() der XbrlDocument-Klasse erstellt und speichert die XBRL-Datei auf der Festplatte. Bitte lesen Sie mehr über andere Klassen zum Arbeiten mit XBRL-Objekten in API-Referenz.

Bitte laden Sie das Paket herunter oder installieren Sie die API von PyPI mit dem folgenden Pip-Befehl in der Konsole:

pip install aspose-finance

XBRL-Instanzdokument in Python erstellen

Wir können ganz einfach ein XBRL-Instanzdokument von Grund auf neu erstellen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Greifen Sie als Nächstes auf die Sammlung der Instanzen aus dem XbrlDocument-Objekt in das xbrlinstances-Objekt zu.
  3. Fügen Sie danach mit der Methode xbrlinstances.add() eine neue XBRL-Instanz hinzu.
  4. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string). Es nimmt den Pfad der Ausgabedatei als Argument.

Das folgende Codebeispiel zeigt, wie Sie eine XBRL-Instanz mit Python erstellen.

# This code example demonstrates how to create an XBRL document
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Save the file
xbrlDoc.save(outputFile)

Nachdem wir die Instanz von XBRL erstellt haben, können wir die Schemareferenz, den Kontext, Einheiten, Elemente, Fußnotenlinks, Rollenreferenzen und Arc-Rollenreferenzen in der neu erstellten XBRL-Instanz hinzufügen.

Schemaverweis zu XBRL mit Python hinzufügen

Wir können eine Schemareferenz in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Holen Sie als Nächstes die Sammlung der Instanzen des XbrlDocument-Objekts in das xbrlinstances-Objekt.
  3. Fügen Sie dann mit der Methode xbrlinstances.add() eine neue XBRL-Instanz hinzu.
  4. Holen Sie als Nächstes die Schemareferenzsammlung des XbrlInstance-Objekts in das schemarefs-Objekt.
  5. Fügen Sie danach eine neue Schemareferenz mit der Methode schemarefs.add() mit der Eingabeschemadatei hinzu.
  6. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie ein XBRL-Instanzdokument erstellen und Schemaverweise in Python hinzufügen.

# This code example demonstrates how to create an XBRL document and add schema reference object
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")

# Save the document
xbrlDoc.save(outputFile)

Kontext in XBRL mit Python hinzufügen

Wir können einem XBRL-Instanzdokument einen Kontext hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie als Nächstes eine neue XBRL-Instanz zu den xbrlinstances des XbrlDocument-Objekts hinzu.
  3. Erstellen Sie dann eine Instanz der ContextPeriod-Klasse mit den Start- und Enddaten.
  4. Erstellen Sie als Nächstes ein ContextEntity-Objekt mit Schema und Bezeichner.
  5. Erstellen Sie dann eine Instanz der Context-Klasse mit der definierten ContextPeriod und ContextEntity.
  6. Fügen Sie danach das Context-Objekt zur Contexts-Auflistung hinzu.
  7. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie ein XBRL-Instanzdokument erstellen und ein Kontextobjekt in Python hinzufügen.

# This code example demonstrates how to create an XBRL document and add Context object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Add context period
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))

# Add context entity
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")

# Define and add context
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Save the document
xbrlDoc.save(outputFile)

Erstellen Sie Einheiten in XBRL mit Python

Die Einheiten in XBRL messen numerische Elemente. Wir können eine Einheit in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie als Nächstes eine neue XBRL-Instanz zu den xbrlinstances des XbrlDocument-Objekts hinzu.
  3. Erstellen Sie dann eine Instanz der Unit-Klasse mit dem UnitType als MEASURE.
  4. Fügen Sie als Nächstes QualifiedName zur Measurequalifiednames-Auflistung hinzu.
  5. Fügen Sie danach die Einheit der Einheitensammlung hinzu.
  6. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie eine XBRL-Datei erstellen und ein Einheitenobjekt in Python hinzufügen.

# This code example demonstrates how to create an XBRL document and add Unit object
from aspose.finance.xbrl import XbrlDocument,Unit,QualifiedName,UnitType

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Add Unit
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# Save the document
xbrlDoc.save(outputFile)

Faktenelement in XBRL mit Python hinzufügen

Fakten in XBRL werden über Item-Elemente definiert. Ein Element in XBRL enthält den Wert des einfachen Fakts und einen Verweis auf den Kontext, um diesen Fakt korrekt zu interpretieren. Wir können ein Element in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie den xbrlinstances des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
  3. Fügen Sie den Schemarefs des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
  4. Rufen Sie SchemaRef anhand seines Index von Schemarefs ab.
  5. Initialisieren Sie die Context-Instanz und fügen Sie sie der Contexts-Auflistung hinzu.
  6. Definieren Sie eine Einheiteninstanz und fügen Sie sie der Einheitensammlung hinzu.
  7. Erstellen Sie eine Concept-Klasseninstanz mit der Methode getconceptbyname().
  8. Erstellen Sie eine Instanz der Item-Klasse mit dem Concept-Objekt als Argument.
  9. Legen Sie Elementeigenschaften wie Kontextref, Einheitsref, Genauigkeit, Wert usw. fest.
  10. Fügen Sie danach den Artikel der Faktensammlung hinzu.
  11. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie mit Python einen Fakt als Elementelement in einem XBRL-Instanzdokument hinzufügen.

# This code example demonstrates how to create an XBRL document and add Item object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,Unit,UnitType,QualifiedName,Item

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Add unit
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# Add item
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)
    
# Save the document
xbrlDoc.save(outputFile)

Wir können einen Fußnoten-Link in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie den xbrlinstances des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
  3. Fügen Sie den Schemarefs des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
  4. Rufen Sie SchemaRef anhand seines Index von Schemarefs ab.
  5. Initialisieren Sie die Context-Instanz und fügen Sie sie der Contexts-Auflistung hinzu.
  6. Definieren Sie eine Fußnote-Klasseninstanz und legen Sie ihre Bezeichnung und ihren Text fest.
  7. Initialisieren Sie den Locator-Typ mit der Loc-Klasseninstanz.
  8. Definieren Sie das FootnoteArc-Objekt mit Locator-Label und Footnote-Label als Argumente.
  9. Erstellen Sie eine Instanz der FootnoteLink-Klasse.
  10. Fügen Sie den relevanten Sammlungen Footnote, Locator und FootnoteArc hinzu.
  11. Fügen Sie danach den FootnoteLink zur footnotelinks-Sammlung hinzu.
  12. Speichern Sie schließlich die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie mit Python einen Fußnotenlink in ein XBRL-Instanzdokument einfügen.

# This code example demonstrates how to create an XBRL document and add Footnote Link object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,FootnoteLink,Footnote,Loc,FootnoteArc

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Add Footnote
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."

# Add Location
loc = Loc("#cd1", "fact1")

# Define Footnote arc
footnoteArc = FootnoteArc(loc.label, footnote.label)

# Add FootnoteLink
footnoteLink = FootnoteLink()
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
    
# Save the document
xbrlDoc.save(outputFile)

Rollenreferenz in XBRL mit Python einfügen

Wir können eine Rollenreferenz in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie den xbrlinstances des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
  3. Fügen Sie den Schemarefs des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
  4. Rufen Sie SchemaRef anhand seines Index von Schemarefs ab.
  5. Rufen Sie als Nächstes den RoleType aus der Methode getroletypebyuri() ab.
  6. Erstellen Sie dann eine Instanz der RoleReference-Klasse mit dem RoleType-Objekt als Argument.
  7. Fügen Sie danach die RoleReference der rolereferences-Sammlung hinzu.
  8. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie Sie mit Python eine Rollenreferenz in einem XBRL-Instanzdokument hinzufügen.

# This code example demonstrates how to create an XBRL document and add Role reference object
from aspose.finance.xbrl import XbrlDocument,RoleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    roleReference = RoleReference(roleType)
    xbrlInstance.role_references.append(roleReference)

# Save the document
xbrlDoc.save(outputFile)

Arc-Rollenreferenz zu XBRL in Python hinzufügen

Wir können eine Arc-Rollenreferenz in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
  2. Fügen Sie den xbrlinstances des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
  3. Fügen Sie den Schemarefs des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
  4. Rufen Sie SchemaRef anhand seines Index von Schemarefs ab.
  5. Rufen Sie als Nächstes den RoleType aus der Methode getarcroletypebyuri() ab.
  6. Erstellen Sie dann eine Instanz der ArcroleReference-Klasse mit dem RoleType-Objekt als Argument.
  7. Fügen Sie danach die ArcroleReference der arcrolereferences-Sammlung hinzu.
  8. Speichern Sie abschließend die XBRL-Datei mit der Methode save(string).

Das folgende Codebeispiel zeigt, wie eine Arc-Rollenreferenz in einem XBRL-Instanzdokument mit Python hinzugefügt wird.

# This code example demonstrates how to create an XBRL document and add Arc Role reference object
from aspose.finance.xbrl import XbrlDocument,ArcroleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    arcroleReference = ArcroleReference(roleType)
    xbrlInstance.arcrole_references.append(arcroleReference)

# Save the document
xbrlDoc.save(outputFile)

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man ein XBRL-Dokument mit Python erstellt. Wir haben auch gesehen, wie man dem erstellten XBRL-Instanzdokument programmgesteuert verschiedene XBRL-Objekte hinzufügt. Außerdem können Sie mithilfe der Dokumentation mehr über Aspose.Finance for Python API erfahren. Bei Unklarheiten können Sie sich gerne in unserem Forum an uns wenden.

Siehe auch