No post anterior, aprendemos como adicionar objetos de referência de esquema, contexto, unidade e fato a documentos de instância XBRL usando C#. Neste artigo, aprenderemos como adicionar links de notas de rodapé e objetos de referência de função ao XBRL usando C#.
Os seguintes tópicos serão abordados neste artigo:
- API C# para adicionar links de notas de rodapé e objetos de referência de função ao XBRL
- Adicionar links de nota de rodapé ao XBRL
- Adicionar objeto de referência de função ao XBRL
- Objeto de referência de função do arco em XBRL
API C# para adicionar links de notas de rodapé e objetos de referência de função ao XBRL
Para adicionar objetos de referência de função e referência de função de arco a um documento de instância XBRL, usaremos a API Aspose.Finance for .NET. Ele permite criar instâncias XBRL, analisar e validar os arquivos XBRL ou iXBRL. A classe XbrlDocument da API representa um documento XBRL que contém uma ou mais instâncias XBRL. Uma instância XBRL é um fragmento XML, com o elemento raiz tendo uma tag XBRL. A classe XbrlInstance fornece vários métodos e propriedades para trabalhar com a instância XBRL. A classe FootnoteLink contém localizadores, recursos e arcos para descrever os relacionamentos entre fatos em uma instância XBRL. A API fornece a classe RoleReference que permite fazer referência às definições de qualquer valor de atributo de função personalizado usado em links de notas de rodapé na instância XBRL. Da mesma forma, a classe ArcRoleReference permite resolver valores de função de arco personalizados que são usados em um Link base ou em uma instância XBRL.
Por favor, baixe a DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.Finance
Adicionar links de nota de rodapé ao XBRL usando C#
Podemos adicionar um link de nota de rodapé 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 Footnote e defina seu rótulo e texto.
- Inicialize o tipo de localizador usando a instância da classe Loc.
- Defina FootnoteArc com o rótulo do localizador e o rótulo da nota de rodapé como argumentos.
- Crie uma instância da classe FootnoteLink.
- Adicione Footnote, Locator e FootnoteArc às coleções FootnoteLink relevantes.
- Depois disso, adicione o FootnoteLink à coleção FootnoteLinks.
- 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 link de nota de rodapé em um documento de instância XBRL usando C#.
// 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 referência 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 de rodapé
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";
// Definir localizador
Loc loc = new Loc("#cd1", "fact1");
// Definir nota de rodapéArc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);
// Definir nota de rodapé link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);
// Salve o documento
document.Save(@"C:\Files\Finance\document6.xbrl");
Adicionar objeto de referência de função ao XBRL usando C#
Podemos adicionar uma referência de função em um documento de instância XBRL seguindo as etapas abaixo:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Em seguida, adicione uma nova instância XBRL às instâncias do objeto XbrlDocument.
- Em seguida, adicione uma nova referência de esquema às referências de esquema do objeto XbrlInstance.
- Obtenha SchemaRef por seu índice de SchemaRefCollection.
- Em seguida, obtenha o RoleType do método GetRoleTypeByURI().
- Em seguida, crie uma instância da classe RoleReference com o objeto RoleType como argumento.
- Depois disso, adicione o RoleReference à coleção de objetos RoleReference.
- 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 função em um documento de instância XBRL usando C#.
// 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 referência de esquema
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];
// Adicionar referência de função
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
RoleReference roleReference = new RoleReference(roleType);
xbrlInstance.RoleReferences.Add(roleReference);
}
// Salve o documento
document.Save(@"C:\Files\Finance\document7.xbrl");
Adicionar objeto de referência de função Arc ao XBRL usando C#
Podemos adicionar uma referência de função Arc em um documento de instância XBRL seguindo as etapas abaixo:
- Primeiramente, crie uma instância da classe XbrlDocument.
- Em seguida, adicione uma nova instância XBRL às instâncias do objeto XbrlDocument.
- Em seguida, adicione uma nova referência de esquema às referências de esquema do objeto XbrlInstance.
- Em seguida, obtenha SchemaRef por seu índice de SchemaRefCollection.
- Em seguida, obtenha o ArcRoleType do método GetArcroleTypeByURI().
- Em seguida, crie uma instância da classe ArcRoleReference com o objeto ArcRoleType como argumento.
- Depois disso, adicione o ArcRoleReference à coleção de objetos ArcRoleReference.
- 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 função arc em um documento de instância XBRL usando C#.
// 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 referência de esquema
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];
// Adicionar referência de função de arco
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
xbrlInstance.ArcroleReferences.Add(arcroleReference);
}
// Salve o documento
document.Save(@"C:\Files\Finance\document8.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:
- crie um documento XBRL usando C#;
- adicione uma nota de rodapé e um arco de nota de rodapé usando o link de nota de rodapé para objetos XBRL programaticamente;
- adicione referências de função e função de arco em XBRL em C#.
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.