Adicionar objetos a documentos XBRL usando C#

XBRL (eXtensible Business Reporting Language) define e troca informações financeiras, como um demonstrativo financeiro. Um documento de instância XBRL é uma coleção de fatos que juntos formam um relatório de negócios. Podemos criar facilmente um documento de instância XBRL programaticamente e adicionar objetos ou elementos como referência de esquema, contexto, unidade, itens etc. Neste artigo, aprenderemos como adicionar objetos a documentos de instância XBRL usando C#.

Os seguintes tópicos serão abordados neste artigo:

API C# para adicionar objetos a documentos de instância XBRL

Para criar um documento de instância XBRL e adicionar objetos, usaremos a API Aspose.Finance for .NET. Ele permite criar instâncias XBRL, analisar e validar os arquivos XBRL ou iXBRL. Por favor, baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.Finance

Adicionar referência de esquema ao XBRL usando C#

Podemos adicionar referência de esquema em um documento de instância XBRL seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe XbrlDocument.
  2. Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
  3. Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
  4. Em seguida, obtenha a coleção de referência de esquema do objeto XbrlInstance no objeto SchemaRefCollection.
  5. Depois disso, adicione uma nova referência de esquema usando o método SchemaRefCollection.Add().
  6. Finalmente, salve o arquivo XBRL usando o método XbrlDocument.Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como adicionar referência de esquema em um documento de instância XBRL usando C#.

// Este exemplo de código demonstra como adicionar o objeto SchemaReference ao XBRL.
// Crie uma instância da classe XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obter instâncias Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Adicionar XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Obter coleção de referências de esquema
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;

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

// Salve o arquivo de saída
document.Save(@"D:\Files\Finance\output.xbrl");

Adicionar objeto de contexto em XBRL usando CSharp

Podemos adicionar um contexto a um documento de instância XBRL seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe XbrlDocument.
  2. Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
  3. Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
  4. Em seguida, crie uma instância da classe ContextPeriod com as datas de início e término.
  5. Em seguida, crie um ContextEntity e forneça o esquema e o identificador.
  6. Em seguida, crie uma instância da classe Context com ContextPeriod e ContextEntity definidos.
  7. Depois disso, adicione o objeto Context à coleção Context objects.
  8. Finalmente, salve o arquivo XBRL usando o método XbrlDocument.Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como adicionar um objeto de contexto em um documento de instância XBRL usando C#.

// Este exemplo de código demonstra como adicionar o objeto Context ao XBRL.
// Crie uma instância da classe XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obter instâncias Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Adicionar XbrlInstance
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");

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

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

// Salve o arquivo de saída
document.Save(@"D:\Files\Finance\Output.xbrl");

Criar unidades em XBRL usando C#

As unidades em XBRL medem itens numéricos. Podemos adicionar uma unidade em um documento de instância XBRL seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe XbrlDocument.
  2. Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
  3. Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
  4. Em seguida, crie uma instância da classe Unit com o UnitType como Measure.
  5. Em seguida, adicione QualifiedName à coleção MeasureQualifiedNames.
  6. Depois disso, adicione a unidade à coleção objetos da unidade.
  7. Finalmente, salve o arquivo XBRL usando o método XbrlDocument.Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como adicionar um objeto de unidade em um documento de instância XBRL usando C#.

// Este exemplo de código demonstra como adicionar o objeto Unit ao XBRL.
// Crie uma instância da classe XbrlDocument
XbrlDocument document = new XbrlDocument();

// Obter instâncias Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Adicionar XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Definir unidade
Unit unit = new Unit(UnitType.Measure);

// Adicionar nome do qualificador
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));

// Adicionar unidade
xbrlInstance.Units.Add(unit);

// Salve o arquivo de saída
document.Save(@"D:\Files\Finance\Output.xbrl");

Adicionar objeto de fato em XBRL usando C#

Fatos em XBRL são definidos usando elementos de item. Um item em XBRL contém o valor do fato simples e uma referência ao contexto para interpretar corretamente esse fato. Podemos adicionar um item em um documento de instância XBRL seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe XbrlDocument.
  2. Adicione uma nova instância XBRL às instâncias do objeto XbrlDocument.
  3. Adicione uma nova referência de esquema às referências de esquema do objeto XbrlInstance.
  4. Obtenha SchemaRef por seu índice de SchemaRefCollection.
  5. Inicialize a instância Context e adicione-a à coleção Context objects.
  6. Defina uma instância de unidade e adicione-a à coleção objetos de unidade.
  7. Crie uma instância de classe Concept usando o método SchemaRef.GetConceptByName().
  8. Crie uma instância da classe Item com o objeto Concept como argumento.
  9. Defina as propriedades do item, como ContextRef, UnitRef, Precision, Value, etc.
  10. Depois disso, adicione o Item à coleção Fact objects.
  11. Finalmente, salve o arquivo XBRL usando o método XbrlDocument.Save(). Ele usa o caminho do arquivo de saída como um argumento.

O exemplo de código a seguir mostra como adicionar um fato como um elemento de item em um documento de instância XBRL usando C#.

// Este exemplo de código demonstra como adicionar o objeto de item de fato ao XBRL.
// Criar documento Xbrl
XbrlDocument document = new XbrlDocument();
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()];

// Definir referência 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 unidade
Unit unit = new Unit(UnitType.Measure);
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));
xbrlInstance.Units.Add(unit);

// Obter conceito
Concept fixedAssetsConcept = schema.GetConceptByName("fixedAssets");
if (fixedAssetsConcept != null)
{
    // Definir elemento Item para fato
    Item item = new Item(fixedAssetsConcept);
    item.ContextRef = context;
    item.UnitRef = unit;
    item.Precision = 4;
    item.Value = "1444";
    
    // Adicionar elemento de item aos fatos
    xbrlInstance.Facts.Add(item);
}

// Salve o arquivo de saída
document.Save(@"D:\Files\Finance\Output.xbrl");

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como criar um documento XBRL usando C#. Também vimos como adicionar vários objetos XBRL ao documento de instância XBRL criado programaticamente. Além disso, você pode aprender mais sobre o Aspose.Finance for .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também