XBRL(可擴展商業報告語言)定義和交換財務信息,例如財務報表。 XBRL 實例文檔是共同構成業務報告的事實集合。我們可以輕鬆地以編程方式創建 XBRL 實例文檔,並添加對像或元素,例如架構引用、上下文、單位、項目等。在本文中,我們將學習如何使用 C# 將對象添加到 XBRL 實例文檔。
本文應涵蓋以下主題:
用於將對象添加到 XBRL 實例文檔的 C# API
為了創建 XBRL 實例文檔和添加對象,我們將使用 Aspose.Finance for .NET API。它允許創建 XBRL 實例、解析和驗證 XBRL 或 iXBRL 文件。請 下載 API 的 DLL 或使用 NuGet 安裝它。
PM> Install-Package Aspose.Finance
使用 C# 將架構引用添加到 XBRL
我們可以按照以下步驟在 XBRL 實例文檔中添加模式引用:
- 首先,創建 XbrlDocument 類的一個實例。
- 接下來,將 XbrlDocument 對象的實例集合放入 XbrlInstanceCollection 對像中。
- 然後,使用 XbrlInstanceCollection.Add() 方法添加一個新的 XBRL 實例。
- 接下來,將 XbrlInstance 對象的架構引用集合獲取到 SchemaRefCollection 對像中。
- 之後,使用 SchemaRefCollection.Add() 方法添加一個新的模式引用。
- 最後,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它以輸出文件路徑作為參數。
以下代碼示例展示瞭如何使用 C# 在 XBRL 實例文檔中添加架構引用。
// 此代碼示例演示如何將 SchemaReference 對象添加到 XBRL。
// 創建 XbrlDocument 類的實例
XbrlDocument document = new XbrlDocument();
// 獲取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// 添加 XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];
// 獲取架構引用集合
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
// 添加架構參考
schemaRefs.Add(@"D:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
// 保存輸出文件
document.Save(@"D:\Files\Finance\output.xbrl");
使用 CSharp 在 XBRL 中添加上下文對象
我們可以按照以下步驟將上下文添加到 XBRL 實例文檔:
- 首先,創建一個 XbrlDocument 類的實例。
- 接下來,將 XbrlDocument 對象的實例集合獲取到 XbrlInstanceCollection 對像中。
- 然後,使用 XbrlInstanceCollection.Add() 方法添加一個新的 XBRL 實例。
- 接下來,使用開始日期和結束日期創建 ContextPeriod 類的實例。
- 然後,創建一個 ContextEntity 並提供架構和標識符。
- 接下來,使用定義的 ContextPeriod 和 ContextEntity 創建 Context 類的實例。
- 之後,將 Context 對象添加到 Context objects 集合中。
- 最後,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它以輸出文件路徑作為參數。
以下代碼示例顯示如何使用 C# 在 XBRL 實例文檔中添加上下文對象。
// 此代碼示例演示如何將 Context 對象添加到 XBRL。
// 創建 XbrlDocument 類的實例
XbrlDocument document = new XbrlDocument();
// 獲取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// 添加 XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[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);
// 添加上下文
xbrlInstance.Contexts.Add(context);
// 保存輸出文件
document.Save(@"D:\Files\Finance\Output.xbrl");
使用 C# 在 XBRL 中創建單位
XBRL 中的單位衡量數字項目。我們可以按照以下步驟在 XBRL 實例文檔中添加單位:
- 首先,創建 XbrlDocument 類的一個實例。
- 接下來,將 XbrlDocument 對象的實例集合獲取到 XbrlInstanceCollection 對像中。
- 然後,使用 XbrlInstanceCollection.Add() 方法添加一個新的 XBRL 實例。
- 接下來,使用 UnitType 作為 Measure 創建 Unit 類的實例。
- 然後,將 QualifiedName 添加到 MeasureQualifiedNames 集合。
- 之後,將 Unit 添加到 Unit objects 集合中。
- 最後,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它以輸出文件路徑作為參數。
以下代碼示例顯示如何使用 C# 在 XBRL 實例文檔中添加單位對象。
// 此代碼示例演示如何將 Unit 對象添加到 XBRL。
// 創建 XbrlDocument 類的實例
XbrlDocument document = new XbrlDocument();
// 獲取 XbrlInstances
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// 添加 XbrlInstance
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];
// 定義單位
Unit unit = new Unit(UnitType.Measure);
// 添加限定符名稱
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));
// 添加單位
xbrlInstance.Units.Add(unit);
// 保存輸出文件
document.Save(@"D:\Files\Finance\Output.xbrl");
使用 C# 在 XBRL 中添加事實對象
XBRL 中的事實是使用項目元素定義的。 XBRL 中的項目包含簡單事實的值和對上下文的引用以正確解釋該事實。我們可以按照以下步驟在 XBRL 實例文檔中添加項目:
- 首先,創建一個 XbrlDocument 類的實例。
- 將新的 XBRL 實例添加到 XbrlDocument 對象的實例。
- 將新的架構引用添加到 XbrlInstance 對象的架構引用。
- 通過 SchemaRefCollection 的索引獲取 SchemaRef。
- 初始化 Context 實例並將其添加到 Context objects 集合中。
- 定義一個 Unit 實例並將其添加到 Unit objects 集合中。
- 使用 SchemaRef.GetConceptByName() 方法創建一個 Concept 類實例。
- 使用 Concept 對像作為參數創建 Item 類的實例。
- 設置項目屬性,例如 ContextRef、UnitRef、Precision、Value 等。
- 之後,將 Item 添加到 Fact objects 集合中。
- 最後,使用 XbrlDocument.Save() 方法保存 XBRL 文件。它以輸出文件路徑作為參數。
以下代碼示例顯示瞭如何使用 C# 在 XBRL 實例文檔中添加事實作為項目元素。
// 此代碼示例演示如何將事實項對象添加到 XBRL。
// 創建 XbrlDocument
XbrlDocument document = new XbrlDocument();
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()];
// 定義架構參考
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"D:\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);
xbrlInstance.Contexts.Add(context);
// 定義單位
Unit unit = new Unit(UnitType.Measure);
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"));
xbrlInstance.Units.Add(unit);
// 獲取概念
Concept fixedAssetsConcept = schema.GetConceptByName("fixedAssets");
if (fixedAssetsConcept != null)
{
// 為事實定義 Item 元素
Item item = new Item(fixedAssetsConcept);
item.ContextRef = context;
item.UnitRef = unit;
item.Precision = 4;
item.Value = "1444";
// 將項目元素添加到事實
xbrlInstance.Facts.Add(item);
}
// 保存輸出文件
document.Save(@"D:\Files\Finance\Output.xbrl");
獲得免費許可證
您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。
結論
在本文中,我們學習瞭如何使用 C# 創建 XBRL 文檔。我們還了解瞭如何以編程方式將各種 XBRL 對象添加到創建的 XBRL 實例文檔中。此外,您可以使用 文檔 了解有關 Aspose.Finance for .NET API 的更多信息。如有任何歧義,請隨時在論壇上與我們聯繫。