Lägg till fotnotslänkar och rollreferensobjekt till XBRL med C#

I föregående inlägg lärde vi oss hur man lägger till schemareferens, sammanhang, enhet och faktaobjekt till XBRL-instansdokument med C#. I den här artikeln kommer vi att lära oss hur du lägger till fotnotslänkar och rollreferensobjekt till XBRL med C#.

Följande ämnen ska behandlas i den här artikeln:

För att lägga till rollreferens- och bågrollreferensobjekt till ett XBRL-instansdokument kommer vi att använda Aspose.Finance for .NET API. Det gör det möjligt att skapa XBRL-instanser, analysera och validera XBRL- eller iXBRL-filerna. Klassen XbrlDocument i API:t representerar ett XBRL-dokument som innehåller en eller flera XBRL-instanser. En XBRL-instans är ett XML-fragment, där rotelementet har en XBRL-tagg. Klassen XbrlInstance tillhandahåller olika metoder och egenskaper för att arbeta med XBRL-instansen. Klassen FootnoteLink innehåller lokalisatorer, resurser och bågar för att beskriva relationerna mellan fakta i en XBRL-instans. API:et tillhandahåller klassen RoleReference som gör det möjligt att referera till definitionerna av alla anpassade rollattributvärden som används i fotnotslänkar i XBRL-instansen. På liknande sätt tillåter klassen ArcRoleReference att lösa anpassade bågrollvärden som används i en länkbas eller en XBRL-instans.

Vänligen antingen ladda ner API:ts DLL eller installera den med NuGet.

PM> Install-Package Aspose.Finance

Vi kan lägga till en fotnotslänk i ett XBRL-instansdokument genom att följa stegen nedan:

  1. Skapa först en instans av klassen XbrlDocument.
  2. Lägg till en ny XBRL-instans till XbrlDocument-objektets instanser.
  3. Lägg till en ny schemareferens till XbrlInstance-objektets schemareferenser.
  4. SchemaRef genom dess index från SchemaRefCollection.
  5. Initiera instansen Context och lägg till den i samlingen Context objects.
  6. Definiera en Fotnot-instans och ställ in dess etikett och text.
  7. Initiera Locator-typ med klassinstansen Loc.
  8. Definiera FootnoteArc med Locator-etikett och Footnote-etikett som argument.
  9. Skapa en instans av klassen FootnoteLink.
  10. Lägg till Footnote, Locator och FootnoteArc till relevanta FootnoteLink-samlingar.
  11. Lägg sedan till FootnoteLink till FootnoteLinks-samlingen.
  12. Spara slutligen XBRL-filen med metoden XbrlDocument.Save(). Den tar utdatafilens sökväg som ett argument.

Följande kodexempel visar hur man lägger till en fotnotslänk i ett XBRL-instansdokument med C#.

// Skapa en instans av XbrlDocument-klassen
XbrlDocument document = new XbrlDocument();

// Skaffa XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Lägg till XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Definiera sammanhang
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);

// Definiera fotnot
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";

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

// Definiera fotnotArc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);

// Definiera fotnot link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);

// Spara dokumentet
document.Save(@"C:\Files\Finance\document6.xbrl");

Lägg till rollreferensobjekt till XBRL med C#

Vi kan lägga till en rollreferens i ett XBRL-instansdokument genom att följa stegen nedan:

  1. Skapa först en instans av klassen XbrlDocument.
  2. Lägg sedan till en ny XBRL-instans till XbrlDocument-objektets instanser.
  3. Lägg sedan till en ny schemareferens till XbrlInstance-objektets schemareferenser.
  4. Få SchemaRef genom dess index från SchemaRefCollection.
  5. Därefter hämtar du RoleType från metoden GetRoleTypeByURI().
  6. Skapa sedan en instans av klassen RoleReference med RoleType-objektet som argument.
  7. Lägg sedan till RoleReference till RoleReference-objektsamlingen.
  8. Slutligen sparar du XBRL-filen med metoden XbrlDocument.Save(). Den tar utdatafilens sökväg som ett argument.

Följande kodexempel visar hur man lägger till rollreferens i ett XBRL-instansdokument med C#.

// Skapa en instans av XbrlDocument-klassen
XbrlDocument document = new XbrlDocument();

// Skaffa XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Lägg till XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Lägg till rollreferens
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
    RoleReference roleReference = new RoleReference(roleType);
    xbrlInstance.RoleReferences.Add(roleReference);
}

// Spara dokumentet
document.Save(@"C:\Files\Finance\document7.xbrl");

Lägg till Arc Roll Reference Object till XBRL med C#

Vi kan lägga till en Arc-rollreferens i ett XBRL-instansdokument genom att följa stegen nedan:

  1. Skapa först en instans av klassen XbrlDocument.
  2. Lägg sedan till en ny XBRL-instans till XbrlDocument-objektets instanser.
  3. Lägg sedan till en ny schemareferens till XbrlInstance-objektets schemareferenser.
  4. Hämta sedan SchemaRef efter dess index från SchemaRefCollection.
  5. Hämta sedan ArcRoleType från metoden GetArcroleTypeByURI().
  6. Skapa sedan en instans av klassen ArcRoleReference med objektet ArcRoleType som argument.
  7. Efter det lägger du till ArcRoleReference i ArcRoleReference-objektsamlingen.
  8. Slutligen, spara XBRL-filen med metoden XbrlDocument.Save(). Den tar utdatafilens sökväg som ett argument.

Följande kodexempel visar hur man lägger till bågrollreferens i ett XBRL-instansdokument med C#.

// Skapa en instans av XbrlDocument-klassen
XbrlDocument document = new XbrlDocument();

// Skaffa XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Lägg till XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Lägg till Arc Roll Reference
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
    ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
    xbrlInstance.ArcroleReferences.Add(arcroleReference);
}

// Spara dokumentet
document.Save(@"C:\Files\Finance\document8.xbrl");

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • skapa ett XBRL-dokument med C#;
  • lägg till en fotnot och en fotnotsbåge med hjälp av fotnotslänk till XBRL-objekt programmatiskt;
  • lägg till roll- och bågrollreferenser i XBRL i C#.

Dessutom kan du lära dig mer om Aspose.Finance för .NET API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forum.

Se även