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
- Adicionar referência de esquema ao XBRL
- Adicionar objeto de contexto em XBRL
- Criar uma unidade em XBRL
- Adicionar objeto de fato em XBRL
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:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
- Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
- Em seguida, obtenha a coleção de referência de esquema do objeto XbrlInstance no objeto SchemaRefCollection.
- Depois disso, adicione uma nova referência de esquema usando o método SchemaRefCollection.Add().
- 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:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
- Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
- Em seguida, crie uma instância da classe ContextPeriod com as datas de início e término.
- Em seguida, crie um ContextEntity e forneça o esquema e o identificador.
- Em seguida, crie uma instância da classe Context com ContextPeriod e ContextEntity definidos.
- Depois disso, adicione o objeto Context à coleção Context objects.
- 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:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Em seguida, obtenha a coleção de instâncias do objeto XbrlDocument no objeto XbrlInstanceCollection.
- Em seguida, adicione uma nova instância XBRL usando o método XbrlInstanceCollection.Add().
- Em seguida, crie uma instância da classe Unit com o UnitType como Measure.
- Em seguida, adicione QualifiedName à coleção MeasureQualifiedNames.
- Depois disso, adicione a unidade à coleção objetos da unidade.
- 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:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Adicione uma nova instância XBRL às instâncias do objeto XbrlDocument.
- Adicione uma nova referência de esquema às referências de esquema do objeto XbrlInstance.
- Obtenha SchemaRef por seu índice de SchemaRefCollection.
- Inicialize a instância Context e adicione-a à coleção Context objects.
- Defina uma instância de unidade e adicione-a à coleção objetos de unidade.
- Crie uma instância de classe Concept usando o método SchemaRef.GetConceptByName().
- Crie uma instância da classe Item com o objeto Concept como argumento.
- Defina as propriedades do item, como ContextRef, UnitRef, Precision, Value, etc.
- Depois disso, adicione o Item à coleção Fact objects.
- 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.