Hinzufügen von Fußnoten-Links und Rollenreferenzobjekten zu XBRL mit C#

Im vorherigen Post haben wir gelernt, wie man XBRL-Instanzdokumenten mithilfe von C# Schemareferenzen, Kontexte, Einheiten und Faktenobjekte hinzufügt. In diesem Artikel erfahren Sie, wie Sie mithilfe von C# Fußnotenlinks und Rollenreferenzobjekte zu XBRL hinzufügen.

Folgende Themen sollen in diesem Artikel behandelt werden:

Zum Hinzufügen von Rollenreferenz- und Arc-Rollenreferenzobjekten zu einem XBRL-Instanzdokument 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. Die Klasse XbrlDocument der API stellt ein XBRL-Dokument dar, 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 der XBRL-Instanz bereit. Die Klasse FootnoteLink enthält Locators, Ressourcen und Bögen, um die Beziehungen zwischen Fakten in einer XBRL-Instanz zu beschreiben. Die API stellt die Klasse RoleReference bereit, die es ermöglicht, auf die Definitionen aller benutzerdefinierten Rollenattributwerte zu verweisen, die in Fußnotenlinks in der XBRL-Instanz verwendet werden. Auf ähnliche Weise ermöglicht die Klasse ArcRoleReference das Auflösen benutzerdefinierter Arc-Rollenwerte, die in einer Link-Basis oder einer XBRL-Instanz verwendet werden.

Bitte entweder die DLL der API herunterladen oder sie mit NuGet installieren.

PM> Install-Package Aspose.Finance

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 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 nach seinem Index aus SchemaRefCollection ab.
  5. Initialisieren Sie die Instanz Context und fügen Sie sie der Sammlung Context objects hinzu.
  6. Definieren Sie eine Fußnote-Instanz und legen Sie ihre Beschriftung und ihren Text fest.
  7. Initialisieren Sie den Locator-Typ mit der Klasseninstanz Loc.
  8. Definieren Sie FootnoteArc mit Locator-Label und Footnote-Label als Argumente.
  9. Erstellen Sie eine Instanz der FootnoteLink-Klasse.
  10. Fügen Sie Footnote, Locator und FootnoteArc zu relevanten FootnoteLink-Sammlungen hinzu.
  11. Fügen Sie danach den FootnoteLink zur FootnoteLinks-Sammlung hinzu.
  12. 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 mit C# einen Fußnotenlink in ein XBRL-Instanzdokument einfü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];

// Schemareferenz definieren
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\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);
context.Id = "cd1";
xbrlInstance.Contexts.Add(context);

// Fußnote definieren
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";

// Locator definieren
Loc loc = new Loc("#cd1", "fact1");

// Fußnote definierenArc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);

// Fußnote definieren link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);

// Speichern Sie das Dokument
document.Save(@"C:\Files\Finance\document6.xbrl");

Rollenreferenzobjekt mit C# zu XBRL hinzufü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 als Nächstes eine neue XBRL-Instanz zu den Instanzen des XbrlDocument-Objekts hinzu.
  3. Fügen Sie dann eine neue Schemareferenz zu den Schemareferenzen des XbrlInstance-Objekts hinzu.
  4. Rufen Sie SchemaRef anhand seines Index aus SchemaRefCollection 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 RoleReference-Objektsammlung 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# eine Rollenreferenz in einem XBRL-Instanzdokument 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];

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

// Rollenreferenz hinzufügen
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
    RoleReference roleReference = new RoleReference(roleType);
    xbrlInstance.RoleReferences.Add(roleReference);
}

// Speichern Sie das Dokument
document.Save(@"C:\Files\Finance\document7.xbrl");

Arc-Rollenreferenzobjekt mit C# zu XBRL 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 als Nächstes eine neue XBRL-Instanz zu den Instanzen des XbrlDocument-Objekts hinzu.
  3. Fügen Sie dann eine neue Schemareferenz zu den Schemareferenzen des XbrlInstance-Objekts hinzu.
  4. Rufen Sie als Nächstes SchemaRef anhand seines Index aus SchemaRefCollection ab.
  5. Rufen Sie dann den ArcRoleType aus der Methode GetArcroleTypeByURI() ab.
  6. Erstellen Sie als Nächstes eine Instanz der ArcRoleReference-Klasse mit dem ArcRoleType-Objekt als Argument.
  7. Fügen Sie danach die ArcRoleReference der ArcRoleReference-Objektsammlung 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 Arc-Rollenreferenzen in einem XBRL-Instanzdokument mit C# hinzugefügt werden.

// 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];

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

// Arc-Rollenreferenz hinzufügen
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
    ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
    xbrlInstance.ArcroleReferences.Add(arcroleReference);
}

// Speichern Sie das Dokument
document.Save(@"C:\Files\Finance\document8.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# erstellen;
  • programmgesteuert eine Fußnote und einen Fußnotenbogen mit Fußnotenverknüpfung zu XBRL-Objekten hinzufügen;
  • Hinzufügen von Rollen- und Arc-Rollenreferenzen in XBRL in C#.

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