使用 C# 将脚注链接和角色引用对象添加到 XBRL

previous post 中,我们学习了如何使用 C# 将模式引用、上下文、单元和事实对象添加到 XBRL 实例文档。在本文中,我们将学习如何使用 C# 将脚注链接和角色引用对象添加到 XBRL。

本文将涵盖以下主题:

为了将角色引用和弧角色引用对象添加到 XBRL 实例文档,我们将使用 Aspose.Finance for .NET API。它允许创建 XBRL 实例、解析和验证 XBRL 或 iXBRL 文件。 API 的 XbrlDocument 类表示包含一个或多个 XBRL 实例的 XBRL 文档。 XBRL 实例是一个 XML 片段,其根元素具有 XBRL 标记。 XbrlInstance 类提供了各种方法和属性来处理 XBRL 实例。 FootnoteLink 类包含定位器、资源和弧来描述 XBRL 实例中事实之间的关系。 API 提供 RoleReference 类,允许引用 XBRL 实例中脚注链接中使用的任何自定义角色属性值的定义。类似地,ArcRoleReference 类允许解析在链接基础或 XBRL 实例中使用的自定义弧角色值。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Finance

我们可以按照以下步骤在 XBRL 实例文档中添加脚注链接:

  1. 首先,创建 XbrlDocument 类的实例。
  2. 将新的 XBRL 实例添加到 XbrlDocument 对象的实例。
  3. 向 XbrlInstance 对象的架构引用添加新架构引用。
  4. 通过从 SchemaRefCollection 中的索引获取 SchemaRef
  5. 初始化 Context 实例并将其添加到 Context objects 集合中。
  6. 定义一个 脚注 实例并设置其标签和文本。
  7. 使用 Loc 类实例初始化 Locator 类型。
  8. 使用定位器标签和脚注标签作为参数定义 FootnoteArc
  9. 创建 FootnoteLink 类的实例。
  10. 将脚注、定位器和脚注弧添加到相关的脚注链接集合。
  11. 之后,将 FootnoteLink 添加到 FootnoteLinks 集合中。
  12. 最后,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它将输出文件路径作为参数。

以下代码示例展示了如何使用 C# 在 XBRL 实例文档中添加脚注链接。

// 创建 XbrlDocument 类的实例
XbrlDocument document = new XbrlDocument();

// 获取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

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

// 定义架构参考
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// 定义上下文
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);

// 定义脚注
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";

// 定义定位器
Loc loc = new Loc("#cd1", "fact1");

// 定义脚注Arc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);

// 定义脚注 link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);

// 保存文档
document.Save(@"C:\Files\Finance\document6.xbrl");

使用 C# 将角色引用对象添加到 XBRL

我们可以按照以下步骤在 XBRL 实例文档中添加角色引用:

  1. 首先,创建 XbrlDocument 类的实例。
  2. 接下来,将一个新的 XBRL 实例添加到 XbrlDocument 对象的实例中。
  3. 然后,将新的架构引用添加到 XbrlInstance 对象的架构引用。
  4. 通过 SchemaRefCollection 中的索引获取 SchemaRef。
  5. 接下来,从 GetRoleTypeByURI() 方法中获取 RoleType
  6. 然后,使用 RoleType 对象作为参数创建 RoleReference 类的实例。
  7. 之后,将 RoleReference 添加到 RoleReference 对象集合。
  8. 最后,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它将输出文件路径作为参数。

以下代码示例展示了如何使用 C# 在 XBRL 实例文档中添加角色引用。

// 创建 XbrlDocument 类的实例
XbrlDocument document = new XbrlDocument();

// 获取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

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

// 定义架构参考
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// 添加角色参考
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
    RoleReference roleReference = new RoleReference(roleType);
    xbrlInstance.RoleReferences.Add(roleReference);
}

// 保存文档
document.Save(@"C:\Files\Finance\document7.xbrl");

使用 C# 将 Arc 角色引用对象添加到 XBRL

我们可以按照以下步骤在 XBRL 实例文档中添加 Arc 角色引用:

  1. 首先,创建 XbrlDocument 类的实例。
  2. 接下来,将一个新的 XBRL 实例添加到 XbrlDocument 对象的实例中。
  3. 然后,将新的架构引用添加到 XbrlInstance 对象的架构引用。
  4. 接下来,通过 SchemaRefCollection 中的索引获取 SchemaRef。
  5. 然后,从 GetArcroleTypeByURI() 方法中获取 ArcRoleType
  6. 接下来,使用 ArcRoleType 对象作为参数创建 ArcRoleReference 类的实例。
  7. 之后,将 ArcRoleReference 添加到 ArcRoleReference 对象集合中。
  8. 最后,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它将输出文件路径作为参数。

以下代码示例展示了如何使用 C# 在 XBRL 实例文档中添加弧角色引用。

// 创建 XbrlDocument 类的实例
XbrlDocument document = new XbrlDocument();

// 获取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

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

// 定义架构参考
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// 添加弧角色参考
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
    ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
    xbrlInstance.ArcroleReferences.Add(arcroleReference);
}

// 保存文档
document.Save(@"C:\Files\Finance\document8.xbrl");

获得免费许可证

您可以获得免费的临时许可证 试用该库而不受评估限制。

结论

在本文中,我们学习了如何:

  • 使用 C# 创建 XBRL 文档;
  • 使用脚注链接以编程方式向 XBRL 对象添加脚注和脚注弧;
  • 在 C# 中的 XBRL 中添加角色和弧角色引用。

此外,您可以使用 文档 了解更多关于 Aspose.Finance for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看