在 previous post 中,我们学习了如何使用 C# 将模式引用、上下文、单元和事实对象添加到 XBRL 实例文档。在本文中,我们将学习如何使用 C# 将脚注链接和角色引用对象添加到 XBRL。
本文将涵盖以下主题:
用于向 XBRL 添加脚注链接和角色引用对象的 C# API
为了将角色引用和弧角色引用对象添加到 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 实例中使用的自定义弧角色值。
PM> Install-Package Aspose.Finance
使用 C# 将脚注链接添加到 XBRL
我们可以按照以下步骤在 XBRL 实例文档中添加脚注链接:
- 首先,创建 XbrlDocument 类的实例。
- 将新的 XBRL 实例添加到 XbrlDocument 对象的实例。
- 向 XbrlInstance 对象的架构引用添加新架构引用。
- 通过从 SchemaRefCollection 中的索引获取 SchemaRef。
- 初始化 Context 实例并将其添加到 Context objects 集合中。
- 定义一个 脚注 实例并设置其标签和文本。
- 使用 Loc 类实例初始化 Locator 类型。
- 使用定位器标签和脚注标签作为参数定义 FootnoteArc。
- 创建 FootnoteLink 类的实例。
- 将脚注、定位器和脚注弧添加到相关的脚注链接集合。
- 之后,将 FootnoteLink 添加到 FootnoteLinks 集合中。
- 最后,使用 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 实例文档中添加角色引用:
- 首先,创建 XbrlDocument 类的实例。
- 接下来,将一个新的 XBRL 实例添加到 XbrlDocument 对象的实例中。
- 然后,将新的架构引用添加到 XbrlInstance 对象的架构引用。
- 通过 SchemaRefCollection 中的索引获取 SchemaRef。
- 接下来,从 GetRoleTypeByURI() 方法中获取 RoleType。
- 然后,使用 RoleType 对象作为参数创建 RoleReference 类的实例。
- 之后,将 RoleReference 添加到 RoleReference 对象集合。
- 最后,使用 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 角色引用:
- 首先,创建 XbrlDocument 类的实例。
- 接下来,将一个新的 XBRL 实例添加到 XbrlDocument 对象的实例中。
- 然后,将新的架构引用添加到 XbrlInstance 对象的架构引用。
- 接下来,通过 SchemaRefCollection 中的索引获取 SchemaRef。
- 然后,从 GetArcroleTypeByURI() 方法中获取 ArcRoleType。
- 接下来,使用 ArcRoleType 对象作为参数创建 ArcRoleReference 类的实例。
- 之后,将 ArcRoleReference 添加到 ArcRoleReference 对象集合中。
- 最后,使用 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 的信息。如有任何歧义,请随时在 论坛 上与我们联系。