Создайте файл XBRL с помощью Python

Документ XBRL представляет собой набор фактов, которые вместе составляют бизнес-отчет. Мы можем легко создать экземпляр документа XBRL программно и добавить объекты или элементы, такие как ссылка на схему, контекст, единица измерения, элементы и т. д. В этой статье мы узнаем, как создать файл XBRL с помощью Python.

В этой статье должны быть раскрыты следующие темы:

  1. Что такое XBRL
  2. Финансовая библиотека Python для создания файлов XBRL
  3. Создать файл XBRL
  4. Добавить ссылку на схему в XBRL
  5. Добавить контекст в XBRL
  6. Создать блок в XBRL
  7. Добавить факт в XBRL
  8. Добавить ссылки на сноски в XBRL
  9. Вставить ссылку на роль в XBRL
  10. Добавить ссылку на роль Arc в XBRL

Что такое XBRL

XBRL расшифровывается как eXtensible Business Reporting Language, язык разметки на основе XML. Он используется для стандартизированной бизнес-отчетности о финансовых результатах компании. Он обеспечивает способ общения и обмена бизнес-информацией между бизнес-системами.

Финансовая библиотека Python для создания файлов XBRL

Для создания XBRL-файла или экземпляра документа мы будем использовать API Aspose.Finance for Python. Он позволяет создавать экземпляры XBRL, анализировать и проверять файлы XBRL или iXBRL.

API предоставляет класс XbrlDocument, который представляет документ XBRL, содержащий один или несколько экземпляров XBRL. Отчет XBRL представляет собой фрагмент XML, корневой элемент которого имеет тег XBRL. Класс XbrlInstance предоставляет различные методы и свойства для работы с экземплярами XBRL. Метод save() класса XbrlDocument создает и сохраняет файл XBRL на диск. Подробнее о других классах для работы с объектами XBRL читайте в справке по API.

Пожалуйста, либо загрузите пакет, либо установите API из PyPI, используя следующую команду pip в консоли:

pip install aspose-finance

Создать экземпляр документа XBRL в Python

Мы можем легко создать экземпляр документа XBRL с нуля, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем получите доступ к коллекции экземпляров из объекта XbrlDocument в объект xbrlinstances.
  3. После этого добавьте новый экземпляр XBRL с помощью метода xbrlinstances.add().
  4. Наконец, сохраните файл XBRL, используя метод сохранения (строка). Он принимает путь к выходному файлу в качестве аргумента.

В следующем примере кода показано, как создать экземпляр XBRL с помощью Python.

# This code example demonstrates how to create an XBRL document
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Save the file
xbrlDoc.save(outputFile)

Создав экземпляр XBRL, мы можем добавить ссылку на схему, контекст, единицы, элементы, ссылки на сноски, ссылки на роли и ссылки на роли дуг во вновь созданный экземпляр XBRL.

Добавить ссылку на схему в XBRL с помощью Python

Мы можем добавить ссылку на схему в экземпляр документа XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем поместите коллекцию экземпляров объекта XbrlDocument в объект xbrlinstances.
  3. Затем добавьте новый отчет XBRL с помощью метода xbrlinstances.add().
  4. Затем получите коллекцию ссылок на схему объекта XbrlInstance в объект schemarefs.
  5. После этого добавьте новую ссылку на схему, используя метод schemarefs.add() с входным файлом схемы.
  6. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как создать экземпляр документа XBRL и добавить ссылку на схему в Python.

# This code example demonstrates how to create an XBRL document and add schema reference object
from aspose.finance.xbrl import XbrlDocument

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

# Add schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")

# Save the document
xbrlDoc.save(outputFile)

Добавить контекст в XBRL с помощью Python

Мы можем добавить контекст в документ экземпляра XBRL, выполнив шаги, указанные ниже:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Затем создайте экземпляр класса ContextPeriod с датами начала и окончания.
  4. Затем создайте объект ContextEntity со схемой и идентификатором.
  5. Затем создайте экземпляр класса Context с определенными ContextPeriod и ContextEntity.
  6. После этого добавьте объект Context в коллекцию contexts.
  7. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как создать экземпляр документа XBRL и добавить объект контекста в Python.

# This code example demonstrates how to create an XBRL document and add Context object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Add context period
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))

# Add context entity
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")

# Define and add context
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Save the document
xbrlDoc.save(outputFile)

Создание единиц в XBRL с использованием Python

Единицы в XBRL измеряют числовые статьи. Мы можем добавить единицу в экземпляр документа XBRL, выполнив шаги, указанные ниже:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Затем создайте экземпляр класса Unit с UnitType как MEASURE.
  4. Затем добавьте QualifiedName в коллекцию MeasurequalifiedNames.
  5. После этого добавьте модуль в коллекцию модулей.
  6. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как создать файл XBRL и добавить объект модуля в Python.

# This code example demonstrates how to create an XBRL document and add Unit object
from aspose.finance.xbrl import XbrlDocument,Unit,QualifiedName,UnitType

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

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

# Save the document
xbrlDoc.save(outputFile)

Добавить элемент факта в XBRL с помощью Python

Факты в XBRL определяются с использованием элементов позиции. Элемент в XBRL содержит значение простого факта и ссылку на контекст для правильной интерпретации этого факта. Мы можем добавить элемент в экземпляр документа XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Добавьте новую ссылку на схему в schemarefs объекта XbrlInstance.
  4. Получить SchemaRef по его индексу из schemarefs.
  5. Инициализируйте экземпляр Context и добавьте его в коллекцию contexts.
  6. Определите экземпляр модуля и добавьте его в коллекцию модулей.
  7. Создайте экземпляр класса Concept с помощью метода getconceptbyname().
  8. Создайте экземпляр класса Item с объектом Concept в качестве аргумента.
  9. Установите свойства элемента, такие как contextref, unitref, точность, значение и т. д.
  10. После этого добавьте Item в коллекцию фактов.
  11. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как добавить факт в качестве элемента элемента в экземпляр документа XBRL с помощью Python.

# This code example demonstrates how to create an XBRL document and add Item object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,Unit,UnitType,QualifiedName,Item

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

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

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

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

# Add item
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)
    
# Save the document
xbrlDoc.save(outputFile)

Мы можем добавить ссылку сноски в экземпляр документа XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Добавьте новую ссылку на схему в schemarefs объекта XbrlInstance.
  4. Получить SchemaRef по его индексу из schemarefs.
  5. Инициализируйте экземпляр Context и добавьте его в коллекцию contexts.
  6. Определите экземпляр класса Footnote и установите его метку и текст.
  7. Инициализируйте тип Locator, используя экземпляр класса Loc.
  8. Определите объект FootnoteArc с меткой Locator и меткой Footnote в качестве аргументов.
  9. Создайте экземпляр класса FootnoteLink.
  10. Добавьте Footnote, Locator и FootnoteArc в соответствующие коллекции.
  11. После этого добавьте FootnoteLink в коллекцию ссылок на сноски.
  12. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как добавить ссылку сноски в экземпляр документа XBRL с помощью Python.

# This code example demonstrates how to create an XBRL document and add Footnote Link object
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,FootnoteLink,Footnote,Loc,FootnoteArc

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

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

# Add context
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)

# Add Footnote
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."

# Add Location
loc = Loc("#cd1", "fact1")

# Define Footnote arc
footnoteArc = FootnoteArc(loc.label, footnote.label)

# Add FootnoteLink
footnoteLink = FootnoteLink()
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
    
# Save the document
xbrlDoc.save(outputFile)

Вставьте ссылку на роль в XBRL с помощью Python

Мы можем добавить ссылку на роль в отчетный документ XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Добавьте новую ссылку на схему в schemarefs объекта XbrlInstance.
  4. Получить SchemaRef по его индексу из schemarefs.
  5. Затем получите RoleType из метода getroletypebyuri().
  6. Затем создайте экземпляр класса RoleReference с объектом RoleType в качестве аргумента.
  7. После этого добавьте RoleReference в коллекцию rolereferences.
  8. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как добавить ссылку на роль в документ экземпляра XBRL с помощью Python.

# This code example demonstrates how to create an XBRL document and add Role reference object
from aspose.finance.xbrl import XbrlDocument,RoleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

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

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    roleReference = RoleReference(roleType)
    xbrlInstance.role_references.append(roleReference)

# Save the document
xbrlDoc.save(outputFile)

Добавить ссылку на роль дуги в XBRL в Python

Мы можем добавить ссылку на роль Arc в отчетный документ XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Добавьте новый экземпляр XBRL в xbrlinstances объекта XbrlDocument.
  3. Добавьте новую ссылку на схему в schemarefs объекта XbrlInstance.
  4. Получить SchemaRef по его индексу из schemarefs.
  5. Затем получите RoleType из метода getarcroletypebyuri().
  6. Затем создайте экземпляр класса ArcroleReference с объектом RoleType в качестве аргумента.
  7. После этого добавьте ArcroleReference в коллекцию arcrolereferences.
  8. Наконец, сохраните файл XBRL, используя метод сохранения (строка).

В следующем примере кода показано, как добавить ссылку на роль дуги в документ экземпляра XBRL с помощью Python.

# This code example demonstrates how to create an XBRL document and add Arc Role reference object
from aspose.finance.xbrl import XbrlDocument,ArcroleReference

# The path to the documents directory.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"

# Create XBRL document
xbrlDoc = XbrlDocument()

# Get document instances collection
xbrlInstances = xbrlDoc.xbrl_instances

# Add instance to the collection
xbrlInstance = xbrlInstances[xbrlInstances.add()]

# Get instance schema references collection
schemaRefs = xbrlInstance.schema_refs

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

# Get role type
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")

# Add role reference
if roleType is not None:
    arcroleReference = ArcroleReference(roleType)
    xbrlInstance.arcrole_references.append(arcroleReference)

# Save the document
xbrlDoc.save(outputFile)

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.

Вывод

В этой статье мы узнали, как создать документ XBRL с помощью Python. Мы также увидели, как программно добавлять различные объекты XBRL в созданный экземпляр документа XBRL. Кроме того, вы можете узнать больше об Aspose.Finance for Python API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.

Смотрите также