使用 Python 創建 XBRL 文件

XBRL 文檔是共同構成商業報告的事實集合。我們可以輕鬆地以編程方式創建 XBRL 實例文檔,並添加對像或元素,例如架構引用、上下文、單位、項目等。在本文中,我們將學習如何使用 Python 創建 XBRL 文件。

本文應涵蓋以下主題:

  1. 什麼是 XBRL
  2. 創建 XBRL 文件的 Python 財務庫
  3. 創建 XBRL 文件
  4. 將架構參考添加到 XBRL
  5. 在 XBRL 中添加上下文
  6. 在 XBRL 中創建一個單位
  7. 在 XBRL 中添加事實項
  8. 向 XBRL 添加腳註鏈接
  9. 在 XBRL 中插入角色參考
  10. 添加Arc Role Reference to XBRL

什麼是 XBRL

XBRL 代表可擴展商業報告語言,一種基於 XML 的標記語言。它用於公司財務業績的標準化業務報告。它提供了一種在業務系統之間通信和交換業務信息的方式。

用於創建 XBRL 文件的 Python 金融庫

要創建 XBRL 文件或實例文檔,我們將使用 Aspose.Finance for Python API。它允許創建 XBRL 實例、解析和驗證 XBRL 或 iXBRL 文件。

API 提供了 XbrlDocument 類,代表包含一個或多個 XBRL 實例的 XBRL 文檔。 XBRL 實例是一個 XML 片段,根元素具有 XBRL 標記。 XbrlInstance 類提供各種方法和屬性來處理 XBRL 實例。 XbrlDocument 類的 save() 方法創建 XBRL 文件並將其保存到磁盤。請在 API 參考 中閱讀更多關於使用 XBRL 對象的其他類的信息。

下載軟件包 或在控制台中使用以下 pip 命令從 PyPI 安裝 API:

pip install aspose-finance

在 Python 中創建 XBRL 實例文檔

我們可以按照以下步驟輕鬆地從頭開始創建 XBRL 實例文檔:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 接下來,將實例的集合從 XbrlDocument 對象訪問到 xbrlinstances 對像中。
  3. 之後,使用 xbrlinstances.add() 方法添加一個新的 XBRL 實例。
  4. 最後,使用 save(string) 方法保存 XBRL 文件。它以輸出文件路徑作為參數。

以下代碼示例展示瞭如何使用 Python 創建 XBRL 實例。

# 此代碼示例演示如何創建 XBRL 文檔
from aspose.finance.xbrl import XbrlDocument

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 保存文件
xbrlDoc.save(outputFile)

創建 XBRL 實例後,我們可以在新創建的 XBRL 實例中添加模式引用、上下文、單位、項目、腳註鏈接、角色引用和弧形角色引用。

使用 Python 將架構參考添加到 XBRL

我們可以按照以下步驟在 XBRL 實例文檔中添加模式引用:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 接下來,將 XbrlDocument 對象的實例集合放入 xbrlinstances 對像中。
  3. 然後,使用 xbrlinstances.add() 方法添加一個新的 XBRL 實例。
  4. 接下來,將 XbrlInstance 對象的架構引用集合獲取到 schemarefs 對像中。
  5. 之後,使用帶有輸入模式文件的 schemarefs.add() 方法添加一個新的模式引用。
  6. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例顯示瞭如何在 Python 中創建 XBRL 實例文檔和添加架構引用。

# 此代碼示例演示如何創建 XBRL 文檔並添加架構引用對象
from aspose.finance.xbrl import XbrlDocument

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 獲取實例架構引用集合
schemaRefs = xbrlInstance.schema_refs

# 添加模式
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")

# 保存文件
xbrlDoc.save(outputFile)

使用 Python 在 XBRL 中添加上下文

我們可以按照以下步驟將上下文添加到 XBRL 實例文檔:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 接下來,將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 然後,使用開始日期和結束日期創建 ContextPeriod 類的實例。
  4. 接下來,使用模式和標識符創建一個 ContextEntity 對象。
  5. 然後,使用定義的 ContextPeriod 和 ContextEntity 創建 Context 類的實例。
  6. 之後,將 Context 對象添加到 contexts 集合中。
  7. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例顯示瞭如何在 Python 中創建 XBRL 實例文檔並添加上下文對象。

# 此代碼示例演示如何創建 XBRL 文檔並添加 Context 對象
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 添加上下文期間
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))

# 添加上下文實體
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")

# 定義和添加上下文
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# 保存文件
xbrlDoc.save(outputFile)

使用 Python 在 XBRL 中創建單位

XBRL 中的單位衡量數字項目。我們可以按照以下步驟在 XBRL 實例文檔中添加單位:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 接下來,將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 然後,創建一個 Unit 類的實例,UnitType 為 MEASURE。
  4. 接下來,將 QualifiedName 添加到 measurequalifiednames 集合。
  5. 之後,將 Unit 添加到 units 集合中。
  6. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例顯示瞭如何在 Python 中創建 XBRL 文件和添加單位對象。

# 此代碼示例演示如何創建 XBRL 文檔並添加 Unit 對象
from aspose.finance.xbrl import XbrlDocument,Unit,QualifiedName,UnitType

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 添加單位
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# 保存文件
xbrlDoc.save(outputFile)

使用 Python 在 XBRL 中添加事實項

XBRL 中的事實是使用項目元素定義的。 XBRL 中的項目包含簡單事實的值和對上下文的引用以正確解釋該事實。我們可以按照以下步驟在 XBRL 實例文檔中添加項目:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 添加對 XbrlInstance 對象的 schemarefs 的新架構引用。
  4. 從 schemarefs 通過其索引獲取 SchemaRef。
  5. 初始化 Context 實例並將其添加到 contexts 集合中。
  6. 定義一個 Unit 實例並將其添加到 units 集合中。
  7. 使用 getconceptbyname() 方法創建一個概念類實例。
  8. 使用 Concept 對像作為參數創建 Item 類的實例。
  9. 設置項目屬性,例如 contextref、unitref、precision、value 等。
  10. 之後,將 Item 添加到事實集合中。
  11. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例顯示瞭如何使用 Python 在 XBRL 實例文檔中添加事實作為項目元素。

# 此代碼示例演示如何創建 XBRL 文檔並添加 Item 對象
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,Unit,UnitType,QualifiedName,Item

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 獲取實例架構引用集合
schemaRefs = xbrlInstance.schema_refs

# 添加架構
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# 添加上下文
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# 添加單位
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)

# 添加項目
fixedAssetsConcept = schema.get_concept_by_name("fixedAssets")
if fixedAssetsConcept is not None:
    item = Item(fixedAssetsConcept)
    item.context_ref = context
    item.unit_ref = unit
    item.precision = 4
    item.value = "1444"
    xbrlInstance.facts.append(item)
    
# 保存文檔
xbrlDoc.save(outputFile)

我們可以按照以下步驟在 XBRL 實例文檔中添加腳註鏈接:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 添加對 XbrlInstance 對象的 schemarefs 的新架構引用。
  4. 從 schemarefs 通過其索引獲取 SchemaRef。
  5. 初始化 Context 實例並將其添加到 contexts 集合中。
  6. 定義一個腳註類實例並設置其標籤和文本。
  7. 使用 Loc 類實例初始化定位器類型。
  8. 使用 Locator 標籤和 Footnote 標籤作為參數定義 FootnoteArc 對象。
  9. 創建 FootnoteLink 類的實例。
  10. 相關集合添加Footnote、Locator、FootnoteArc。
  11. 之後,將 FootnoteLink 添加到 footnotelinks 集合。
  12. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例展示瞭如何使用 Python 在 XBRL 實例文檔中添加腳註鏈接。

# 此代碼示例演示如何創建 XBRL 文檔並添加腳註鏈接對象
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,FootnoteLink,Footnote,Loc,FootnoteArc

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 獲取實例架構引用集合
schemaRefs = xbrlInstance.schema_refs

# 添加模式
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# 添加上下文
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# 添加腳註
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."

# 添加位置
loc = Loc("#cd1", "fact1")

# 定義腳註弧
footnoteArc = FootnoteArc(loc.label, footnote.label)

# 添加腳註Link
footnoteLink = FootnoteLink()
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
    
# 保存文件
xbrlDoc.save(outputFile)

使用 Python 在 XBRL 中插入角色參考

我們可以按照以下步驟在 XBRL 實例文檔中添加角色引用:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 添加對 XbrlInstance 對象的 schemarefs 的新架構引用。
  4. 從 schemarefs 通過其索引獲取 SchemaRef。
  5. 接下來,從 getroletypebyuri() 方法獲取 RoleType。
  6. 然後,使用 RoleType 對像作為參數創建 RoleReference 類的實例。
  7. 之後,將 RoleReference 添加到 rolereferences 集合。
  8. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例展示瞭如何使用 Python 在 XBRL 實例文檔中添加角色引用。

# 此代碼示例演示如何創建 XBRL 文檔並添加角色引用對象
from aspose.finance.xbrl import XbrlDocument,RoleReference

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 獲取實例架構引用集合
schemaRefs = xbrlInstance.schema_refs

# 添加模式
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# 獲取角色類型
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# 添加角色參考
if roleType is not None:
    roleReference = RoleReference(roleType)
    xbrlInstance.role_references.append(roleReference)

# 保存文檔
xbrlDoc.save(outputFile)

在 Python 中添加對 XBRL 的 Arc 角色引用

我們可以按照以下步驟在 XBRL 實例文檔中添加 Arc 角色引用:

  1. 首先,創建 XbrlDocument 類的一個實例。
  2. 將新的 XBRL 實例添加到 XbrlDocument 對象的 xbrlinstances。
  3. 添加對 XbrlInstance 對象的 schemarefs 的新架構引用。
  4. 從 schemarefs 通過其索引獲取 SchemaRef。
  5. 接下來,從 getarcroletypebyuri() 方法獲取 RoleType。
  6. 然後,使用 RoleType 對像作為參數創建 ArcroleReference 類的實例。
  7. 之後,將 ArcroleReference 添加到 arcrolereferences 集合。
  8. 最後,使用 save(string) 方法保存 XBRL 文件。

以下代碼示例顯示瞭如何使用 Python 在 XBRL 實例文檔中添加弧角色引用。

# 此代碼示例演示如何創建 XBRL 文檔並添加 Arc Role 參考對象
from aspose.finance.xbrl import XbrlDocument,ArcroleReference

# 文檔目錄的路徑。
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# 創建 XBRL 文檔
xbrlDoc = XbrlDocument()

# 獲取文檔實例集合
xbrlInstances = xbrlDoc.xbrl_instances

# 將實例添加到集合
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# 獲取實例架構引用集合
schemaRefs = xbrlInstance.schema_refs

# 添加模式
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]

# 獲取角色類型
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# 添加角色參考
if roleType is not None:
    arcroleReference = ArcroleReference(roleType)
    xbrlInstance.arcrole_references.append(arcroleReference)

# 保存文件
xbrlDoc.save(outputFile)

獲得免費許可證

您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。

結論

在本文中,我們學習瞭如何使用 Python 創建 XBRL 文檔。我們還了解瞭如何以編程方式將各種 XBRL 對象添加到創建的 XBRL 實例文檔中。此外,您可以使用 文檔 了解更多關於 Aspose.Finance for Python API 的信息。如有任何疑問,請隨時在我們的 論壇 上與我們聯繫。

也可以看看