Agregar objetos a documentos XBRL usando C#

XBRL (Lenguaje extensible de informes comerciales) define e intercambia información financiera, como un estado financiero. Un documento de instancia XBRL es una colección de hechos que juntos forman un informe comercial. Podemos crear fácilmente un documento de instancia de XBRL mediante programación y agregar objetos o elementos como referencia de esquema, contexto, unidad, elementos, etc. En este artículo, aprenderemos cómo agregar objetos a documentos de instancia de XBRL usando C#.

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

API de C# para agregar objetos a documentos de instancia XBRL

Para crear un documento de instancia XBRL y agregar objetos, usaremos la API Aspose.Finance for .NET. Permite crear instancias XBRL, analizar y validar los archivos XBRL o iXBRL. Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Finance

Agregar referencia de esquema a XBRL usando C#

Podemos agregar una referencia de esquema 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, obtenga la colección de instancias del objeto XbrlDocument en el objeto XbrlInstanceCollection.
  3. Luego, agregue una nueva instancia XBRL usando el método XbrlInstanceCollection.Add().
  4. A continuación, obtenga la colección de referencia de esquema del objeto XbrlInstance en el objeto SchemaRefCollection.
  5. Después de eso, agregue una nueva referencia de esquema utilizando el método SchemaRefCollection.Add().
  6. 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 esquema en un documento de instancia XBRL mediante C#.

// Este ejemplo de código demuestra cómo agregar el objeto SchemaReference a XBRL.
// 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];

// Obtener colección de referencias de Schema
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;

// Agregar referencia de esquema
schemaRefs.Add(@"D:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");

// Guarde el archivo de salida
document.Save(@"D:\Files\Finance\output.xbrl");

Agregar objeto de contexto en XBRL usando C#

Podemos agregar un contexto a 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, obtenga la colección de instancias del objeto XbrlDocument en el objeto XbrlInstanceCollection.
  3. Luego, agregue una nueva instancia XBRL usando el método XbrlInstanceCollection.Add().
  4. A continuación, cree una instancia de la clase ContextPeriod con las fechas de inicio y finalización.
  5. Luego, cree una ContextEntity y proporcione el esquema y el identificador.
  6. A continuación, cree una instancia de la clase Context con ContextPeriod y ContextEntity definidos.
  7. Después de eso, agregue el objeto Contexto a la colección Objetos de contexto.
  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 un objeto de contexto en un documento de instancia XBRL mediante C#.

// Este ejemplo de código demuestra cómo agregar un objeto de contexto a XBRL.
// 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 período de contexto
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10"));

// Entrada de contexto Cretae
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier");

// Crear contexto
Context context = new Context(contextPeriod, contextEntity);

// Agregar contexto
xbrlInstance.Contexts.Add(context);

// Guarde el archivo de salida
document.Save(@"D:\Files\Finance\Output.xbrl");

Crear Unidades en XBRL usando C#

Las unidades en XBRL miden elementos numéricos. Podemos agregar una unidad 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, obtenga la colección de instancias del objeto XbrlDocument en el objeto XbrlInstanceCollection.
  3. Luego, agregue una nueva instancia XBRL usando el método XbrlInstanceCollection.Add().
  4. A continuación, cree una instancia de la clase Unidad con TipoUnidad como Medida.
  5. Luego, agregue QualifiedName a la colección MeasureQualifiedNames.
  6. Después de eso, agregue la Unidad a la colección Objetos de la Unidad.
  7. 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 objeto de unidad en un documento de instancia XBRL mediante C#.

// Este ejemplo de código demuestra cómo agregar un objeto Unit a XBRL.
// 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 unidad
Unit unit = new Unit(UnitType.Measure);

// Agregar nombre calificador
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));

// Agregar unidad
xbrlInstance.Units.Add(unit);

// Guarde el archivo de salida
document.Save(@"D:\Files\Finance\Output.xbrl");

Agregar objeto de hechos en XBRL usando C#

Los hechos en XBRL se definen utilizando elementos de elementos. Un ítem en XBRL contiene el valor del hecho simple y una referencia al contexto para interpretar correctamente ese hecho. Podemos agregar un elemento 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 de contexto y agréguela a la colección Objetos de contexto.
  6. Defina una instancia de Unidad y agréguela a la colección Objetos de Unidad.
  7. Cree una instancia de clase Concept usando el método SchemaRef.GetConceptByName().
  8. Cree una instancia de la clase Item con el objeto Concept como argumento.
  9. Establezca propiedades de elementos como ContextRef, UnitRef, Precision, Value, etc.
  10. Después de eso, agregue el elemento a la colección Objetos de hechos.
  11. 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 hecho como un elemento de elemento en un documento de instancia de XBRL mediante C#.

// Este ejemplo de código muestra cómo agregar un objeto de elemento de hecho a XBRL.
// Crear documento Xbrl
XbrlDocument document = new XbrlDocument();
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()];

// Definir referencia de esquema
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"D:\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);
xbrlInstance.Contexts.Add(context);

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

// Obtener concepto
Concept fixedAssetsConcept = schema.GetConceptByName("fixedAssets");
if (fixedAssetsConcept != null)
{
    // Definir el elemento del artículo para el hecho
    Item item = new Item(fixedAssetsConcept);
    item.ContextRef = context;
    item.UnitRef = unit;
    item.Precision = 4;
    item.Value = "1444";
    
    // Agregar elemento de artículo a hechos
    xbrlInstance.Facts.Add(item);
}

// Guarde el archivo de salida
document.Save(@"D:\Files\Finance\Output.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 cómo crear un documento XBRL usando C#. También hemos visto cómo agregar varios objetos XBRL al documento de instancia XBRL creado mediante programación. 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