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:
- C#-API zum Hinzufügen von Fußnotenlinks und Rollenreferenzobjekten zu XBRL
- Fügen Sie Fußnoten-Links zu XBRL hinzu
- Rollenreferenzobjekt zu XBRL hinzufügen
- Arc-Rollenreferenzobjekt in XBRL
C#-API zum Hinzufügen von Fußnotenlinks und Rollenreferenzobjekten zu XBRL
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
Hinzufügen von Fußnoten-Links zu XBRL mit C#
Wir können einen Fußnoten-Link in einem XBRL-Instanzdokument hinzufügen, indem wir die folgenden Schritte ausführen:
- Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
- Fügen Sie den Instanzen des XbrlDocument-Objekts eine neue XBRL-Instanz hinzu.
- Fügen Sie den Schemareferenzen des XbrlInstance-Objekts eine neue Schemareferenz hinzu.
- Rufen Sie SchemaRef nach seinem Index aus SchemaRefCollection ab.
- Initialisieren Sie die Instanz Context und fügen Sie sie der Sammlung Context objects hinzu.
- Definieren Sie eine Fußnote-Instanz und legen Sie ihre Beschriftung und ihren Text fest.
- Initialisieren Sie den Locator-Typ mit der Klasseninstanz Loc.
- Definieren Sie FootnoteArc mit Locator-Label und Footnote-Label als Argumente.
- Erstellen Sie eine Instanz der FootnoteLink-Klasse.
- Fügen Sie Footnote, Locator und FootnoteArc zu relevanten FootnoteLink-Sammlungen hinzu.
- Fügen Sie danach den FootnoteLink zur FootnoteLinks-Sammlung hinzu.
- 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:
- Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
- Fügen Sie als Nächstes eine neue XBRL-Instanz zu den Instanzen des XbrlDocument-Objekts hinzu.
- Fügen Sie dann eine neue Schemareferenz zu den Schemareferenzen des XbrlInstance-Objekts hinzu.
- Rufen Sie SchemaRef anhand seines Index aus SchemaRefCollection ab.
- Rufen Sie als Nächstes den RoleType aus der Methode GetRoleTypeByURI() ab.
- Erstellen Sie dann eine Instanz der RoleReference-Klasse mit dem RoleType-Objekt als Argument.
- Fügen Sie danach die RoleReference der RoleReference-Objektsammlung hinzu.
- 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:
- Erstellen Sie zunächst eine Instanz der XbrlDocument-Klasse.
- Fügen Sie als Nächstes eine neue XBRL-Instanz zu den Instanzen des XbrlDocument-Objekts hinzu.
- Fügen Sie dann eine neue Schemareferenz zu den Schemareferenzen des XbrlInstance-Objekts hinzu.
- Rufen Sie als Nächstes SchemaRef anhand seines Index aus SchemaRefCollection ab.
- Rufen Sie dann den ArcRoleType aus der Methode GetArcroleTypeByURI() ab.
- Erstellen Sie als Nächstes eine Instanz der ArcRoleReference-Klasse mit dem ArcRoleType-Objekt als Argument.
- Fügen Sie danach die ArcRoleReference der ArcRoleReference-Objektsammlung hinzu.
- 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.