Hinzufügen von Objekten zu XBRL-Dokumenten mit C#

XBRL (eXtensible Business Reporting Language) definiert und tauscht Finanzinformationen aus, z. B. einen Finanzbericht. Ein XBRL-Instanzdokument 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 Schemareferenzen, Kontext, Einheiten, Elemente usw. hinzufügen. In diesem Artikel erfahren Sie, wie Sie mit C# Objekte zu XBRL-Instanzdokumenten hinzufügen.

Folgende Themen sollen in diesem Artikel behandelt werden:

C#-API zum Hinzufügen von Objekten zu XBRL-Instanzdokumenten

Zum Erstellen eines XBRL-Instanzdokuments und Hinzufügen von Objekten verwenden wir die API Aspose.Finance for .NET. Es ermöglicht das Erstellen von XBRL-Instanzen, das Analysieren und Validieren der XBRL- oder iXBRL-Dateien. Bitte downloaden Sie die DLL der API oder installieren Sie sie mit NuGet.

PM> Install-Package Aspose.Finance

Schemaverweis zu XBRL mit C# 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 Klasse XbrlDocument.
  2. Rufen Sie als Nächstes die Sammlung der Instanzen des XbrlDocument-Objekts in das Objekt XbrlInstanceCollection ab.
  3. Fügen Sie dann eine neue XBRL-Instanz mit der Methode XbrlInstanceCollection.Add() hinzu.
  4. Rufen Sie als Nächstes die Schemareferenzsammlung des XbrlInstance-Objekts in das Objekt SchemaRefCollection ab.
  5. Fügen Sie danach eine neue Schemareferenz mit der Methode SchemaRefCollection.Add() hinzu.
  6. Speichern Sie abschließend die XBRL-Datei mit der Methode XbrlDocument.Save(). Es nimmt den Pfad der Ausgabedatei als Argument.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von C# Schemaverweise in einem XBRL-Instanzdokument hinzufügen.

// Dieses Codebeispiel zeigt, wie XBRL ein SchemaReference-Objekt hinzugefügt wird.
// Erstellen Sie eine Instanz der XbrlDocument-Klasse
XbrlDocument document = new XbrlDocument();

// Holen Sie sich XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstance hinzufügen
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Holen Sie sich die Sammlung von Schema-Referenzen
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;

// Schemareferenz hinzufügen
schemaRefs.Add(@"D:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");

// Speichern Sie die Ausgabedatei
document.Save(@"D:\Files\Finance\output.xbrl");

Kontextobjekt in XBRL mit CSharp 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 Klasse XbrlDocument.
  2. Rufen Sie als Nächstes die Sammlung der Instanzen des XbrlDocument-Objekts in das Objekt XbrlInstanceCollection ab.
  3. Fügen Sie dann eine neue XBRL-Instanz mit der Methode XbrlInstanceCollection.Add() hinzu.
  4. Erstellen Sie als Nächstes eine Instanz der Klasse ContextPeriod mit den Start- und Enddaten.
  5. Erstellen Sie dann eine ContextEntity und geben Sie Schema und Bezeichner an.
  6. Erstellen Sie als Nächstes eine Instanz der Klasse Context mit der definierten ContextPeriod und ContextEntity.
  7. Fügen Sie danach das Kontextobjekt zur Sammlung Kontextobjekte hinzu.
  8. Speichern Sie abschließend die XBRL-Datei mit der Methode XbrlDocument.Save(). Es nimmt den Pfad der Ausgabedatei als Argument.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von C# ein Kontextobjekt in einem XBRL-Instanzdokument hinzufügen.

// Dieses Codebeispiel zeigt, wie Sie XBRL ein Context-Objekt hinzufügen.
// Erstellen Sie eine Instanz der XbrlDocument-Klasse
XbrlDocument document = new XbrlDocument();

// Holen Sie sich XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstance hinzufügen
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Kontextzeitraum definieren
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10"));

// Cretae-Kontexteintrag
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier");

// Kontext schaffen
Context context = new Context(contextPeriod, contextEntity);

// Kontext hinzufügen
xbrlInstance.Contexts.Add(context);

// Speichern Sie die Ausgabedatei
document.Save(@"D:\Files\Finance\Output.xbrl");

Einheiten in XBRL mit C# erstellen

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 Klasse XbrlDocument.
  2. Rufen Sie als Nächstes die Sammlung der Instanzen des XbrlDocument-Objekts in das Objekt XbrlInstanceCollection ab.
  3. Fügen Sie dann eine neue XBRL-Instanz mit der Methode XbrlInstanceCollection.Add() hinzu.
  4. Erstellen Sie als Nächstes eine Instanz der Klasse Unit mit UnitType als Measure.
  5. Fügen Sie dann QualifiedName zur MeasureQualifiedNames-Auflistung hinzu.
  6. Fügen Sie danach die Einheit zur Sammlung Unit objects hinzu.
  7. Speichern Sie abschließend die XBRL-Datei mit der Methode XbrlDocument.Save(). Es nimmt den Pfad der Ausgabedatei als Argument.

Das folgende Codebeispiel zeigt, wie ein Unit-Objekt in einem XBRL-Instanzdokument mit C# hinzugefügt wird.

// Dieses Codebeispiel zeigt, wie Sie ein Unit-Objekt zu XBRL hinzufügen.
// Erstellen Sie eine Instanz der XbrlDocument-Klasse
XbrlDocument document = new XbrlDocument();

// Holen Sie sich XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstance hinzufügen
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Einheit definieren
Unit unit = new Unit(UnitType.Measure);

// Qualifizierernamen hinzufügen
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));

// Einheit hinzufügen
xbrlInstance.Units.Add(unit);

// Speichern Sie die Ausgabedatei
document.Save(@"D:\Files\Finance\Output.xbrl");

Faktenobjekt in XBRL mit C# 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 Klasse XbrlDocument.
  2. Fügen Sie den Instanzen des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
  3. Fügen Sie den Schemareferenzen des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
  4. Rufen Sie SchemaRef anhand seines Index aus SchemaRefCollection ab.
  5. Initialisieren Sie die Kontextinstanz und fügen Sie sie der Sammlung Kontextobjekte hinzu.
  6. Definieren Sie eine Unit-Instanz und fügen Sie sie der Sammlung Unit-Objekte hinzu.
  7. Erstellen Sie mithilfe der Methode SchemaRef.GetConceptByName() eine Concept-Klasseninstanz.
  8. Erstellen Sie eine Instanz der Klasse Item mit dem Concept-Objekt als Argument.
  9. Legen Sie Elementeigenschaften wie ContextRef, UnitRef, Precision, Value usw. fest.
  10. Fügen Sie danach das Element der Sammlung Fact objects hinzu.
  11. Speichern Sie abschließend die XBRL-Datei mit der Methode XbrlDocument.Save(). Es nimmt den Pfad der Ausgabedatei als Argument.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von C# einen Fakt als Elementelement in einem XBRL-Instanzdokument hinzufügen.

// Dieses Codebeispiel demonstriert, wie das Fact-Item-Objekt zu XBRL hinzugefügt wird.
// XbrlDocument erstellen
XbrlDocument document = new XbrlDocument();
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()];

// Schemareferenz definieren
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"D:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// Kontext definieren
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10"));
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier");
Context context = new Context(contextPeriod, contextEntity);
xbrlInstance.Contexts.Add(context);

// Einheit definieren
Unit unit = new Unit(UnitType.Measure);
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));
xbrlInstance.Units.Add(unit);

// Konzept erhalten
Concept fixedAssetsConcept = schema.GetConceptByName("fixedAssets");
if (fixedAssetsConcept != null)
{
    // Item-Element für Fakt definieren
    Item item = new Item(fixedAssetsConcept);
    item.ContextRef = context;
    item.UnitRef = unit;
    item.Precision = 4;
    item.Value = "1444";
    
    // Artikelelement zu Fakten hinzufügen
    xbrlInstance.Facts.Add(item);
}

// Speichern Sie die Ausgabedatei
document.Save(@"D:\Files\Finance\Output.xbrl");

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 C# 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 für die .NET-API erfahren. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch