Agregar enlaces de notas al pie y objetos de referencia de roles a XBRL usando C#

En la publicación anterior, aprendimos cómo agregar referencias de esquema, contexto, unidades y objetos de hechos a documentos de instancia XBRL usando C#. En este artículo, aprenderemos cómo agregar enlaces de notas al pie y objetos de referencia de roles a XBRL usando C#.

En este artículo se tratarán los siguientes temas:

Para agregar objetos de referencia de rol y de referencia de rol de arco a un documento de instancia XBRL, usaremos la API Aspose.Finance for .NET. Permite crear instancias XBRL, analizar y validar los archivos XBRL o iXBRL. La clase XbrlDocument de la API representa un documento XBRL que contiene una o más instancias XBRL. Una instancia XBRL es un fragmento XML, cuyo elemento raíz tiene una etiqueta XBRL. La clase XbrlInstance proporciona varios métodos y propiedades para trabajar con la instancia XBRL. La clase FootnoteLink contiene localizadores, recursos y arcos para describir las relaciones entre hechos en una instancia XBRL. La API proporciona la clase RoleReference que permite hacer referencia a las definiciones de cualquier valor de atributo de rol personalizado utilizado en enlaces de notas al pie en la instancia de XBRL. De manera similar, la clase ArcRoleReference permite resolver valores de rol de arco personalizados que se utilizan en una base de enlace o una instancia XBRL.

Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Finance

Podemos agregar un enlace de nota al pie en un documento de instancia XBRL siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase XbrlDocument.
  2. Agregue una nueva instancia XBRL a las instancias del objeto XbrlDocument.
  3. Agregue una nueva referencia de esquema a las referencias de esquema del objeto XbrlInstance.
  4. Obtenga SchemaRef por su índice de SchemaRefCollection.
  5. Inicialice la instancia Context y agréguela a la colección Context objects.
  6. Defina una instancia de Nota al pie y establezca su etiqueta y texto.
  7. Inicialice el tipo de localizador utilizando la instancia de clase Loc.
  8. Defina FootnoteArc con la etiqueta del localizador y la etiqueta de la nota al pie como argumentos.
  9. Cree una instancia de la clase FootnoteLink.
  10. Agregue Footnote, Locator y FootnoteArc a las colecciones de FootnoteLink relevantes.
  11. Después de eso, agregue FootnoteLink a la colección FootnoteLinks.
  12. Finalmente, guarde el archivo XBRL usando el método XbrlDocument.Save(). Toma la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo agregar un enlace de nota al pie en un documento de instancia de XBRL mediante C#.

// Crear una instancia de la clase XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obtener XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Agregar instancia Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Definir contexto
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);

// Definir nota al pie
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";

// Definir localizador
Loc loc = new Loc("#cd1", "fact1");

// Definir nota al pieArc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);

// Definir nota al pie link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);

// Guardar el documento
document.Save(@"C:\Files\Finance\document6.xbrl");

Agregar objeto de referencia de rol a XBRL usando C#

Podemos agregar una referencia de rol en un documento de instancia XBRL siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase XbrlDocument.
  2. A continuación, agregue una nueva instancia XBRL a las instancias del objeto XbrlDocument.
  3. Luego, agregue una nueva referencia de esquema a las referencias de esquema del objeto XbrlInstance.
  4. Obtenga SchemaRef por su índice de SchemaRefCollection.
  5. A continuación, obtenga el RoleType del método GetRoleTypeByURI().
  6. Luego, cree una instancia de la clase RoleReference con el objeto RoleType como argumento.
  7. Después de eso, agregue RoleReference a la colección de objetos RoleReference.
  8. Finalmente, guarde el archivo XBRL usando el método XbrlDocument.Save(). Toma la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo agregar una referencia de función en un documento de instancia XBRL mediante C#.

// Crear una instancia de la clase XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obtener XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Agregar instancia Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Agregar referencia de rol
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
    RoleReference roleReference = new RoleReference(roleType);
    xbrlInstance.RoleReferences.Add(roleReference);
}

// Guardar el documento
document.Save(@"C:\Files\Finance\document7.xbrl");

Agregar objeto de referencia de rol de arco a XBRL usando C#

Podemos agregar una referencia de rol de Arc en un documento de instancia XBRL siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cree una instancia de la clase XbrlDocument.
  2. A continuación, agregue una nueva instancia XBRL a las instancias del objeto XbrlDocument.
  3. Luego, agregue una nueva referencia de esquema a las referencias de esquema del objeto XbrlInstance.
  4. A continuación, obtenga SchemaRef por su índice de SchemaRefCollection.
  5. Luego, obtenga el ArcRoleType del método GetArcroleTypeByURI().
  6. A continuación, cree una instancia de la clase ArcRoleReference con el objeto ArcRoleType como argumento.
  7. Después de eso, agregue ArcRoleReference a la colección de objetos ArcRoleReference.
  8. Finalmente, guarde el archivo XBRL usando el método XbrlDocument.Save(). Toma la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo agregar una referencia de función de arco en un documento de instancia de XBRL mediante C#.

// Crear una instancia de la clase XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obtener XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Agregar instancia Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

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

// Agregar referencia de rol de arco
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
    ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
    xbrlInstance.ArcroleReferences.Add(arcroleReference);
}

// Guardar el documento
document.Save(@"C:\Files\Finance\document8.xbrl");

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido a:

  • crear un documento XBRL usando C#;
  • agregue una nota al pie y un arco de nota al pie usando un enlace de nota al pie a los objetos XBRL mediante programación;
  • agregue referencias de funciones y funciones de arco en XBRL en C#.

Además, puede obtener más información sobre Aspose.Finance for .NET API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también