Ett XBRL dokument är en samling fakta som tillsammans utgör en affärsrapport. Vi kan enkelt skapa ett XBRL-instansdokument programmatiskt och lägga till objekt eller element som schemareferens, sammanhang, enhet, objekt etc. I den här artikeln kommer vi att lära oss hur man skapar en XBRL-fil med Python.
Följande ämnen ska behandlas i den här artikeln:
- Vad är XBRL
- Python Finance Library för att skapa XBRL-filer
- Skapa XBRL-fil
- Lägg till schemareferens till XBRL
- Lägg till sammanhang i XBRL
- Skapa en enhet i XBRL
- Lägg till faktaobjekt i XBRL
- Lägg till fotnotslänkar till XBRL
- Infoga rollreferens i XBRL
- Lägg till bågrollreferens till XBRL
Vad är XBRL
XBRL står för eXtensible Business Reporting Language, ett XML-baserat märkningsspråk. Det används för standardiserad affärsrapportering av ett företags finansiella resultat. Det ger ett sätt att kommunicera och utbyta affärsinformation mellan affärssystem.
Python Finance Library för att skapa XBRL-filer
För att skapa en XBRL-fil eller ett instansdokument kommer vi att använda Aspose.Finance for Python API. Det gör det möjligt att skapa XBRL-instanser, analysera och validera XBRL- eller iXBRL-filerna.
API tillhandahåller klassen XbrlDocument som representerar ett XBRL-dokument som innehåller en eller flera XBRL-instanser. En XBRL-instans är ett XML-fragment, där rotelementet har en XBRL-tagg. Klassen XbrlInstance tillhandahåller olika metoder och egenskaper för att arbeta med XBRL-instanser. Metoden save() för klassen XbrlDocument skapar och sparar XBRL-filen på disken. Läs mer om andra klasser för att arbeta med XBRL-objekt i API-referens.
Vänligen antingen ladda ner paketet eller installera API:et från PyPI med följande pip-kommando i konsolen:
pip install aspose-finance
Skapa XBRL-instansdokument i Python
Vi kan enkelt skapa ett XBRL-instansdokument från början genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Öppna sedan instanssamlingen från XbrlDocument-objektet till xbrlinstances-objektet.
- Efter det lägger du till en ny XBRL-instans med metoden xbrlinstances.add().
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden. Den tar utdatafilens sökväg som ett argument.
Följande kodexempel visar hur man skapar en XBRL-instans med Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument
from aspose.finance.xbrl import XbrlDocument
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Spara filen
xbrlDoc.save(outputFile)
När vi har skapat instansen av XBRL kan vi lägga till schemareferens, sammanhang, enheter, objekt, fotnotslänkar, rollreferenser och bågrollreferenser i den nyskapade XBRL-instansen.
Lägg till Schema Reference till XBRL med Python
Vi kan lägga till schemareferens i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Hämta sedan XbrlDocument-objektets instanssamling till xbrlinstances-objektet.
- Lägg sedan till en ny XBRL-instans med metoden xbrlinstances.add().
- Hämta sedan XbrlInstance-objektets schemareferenssamling till schemarefs-objektet.
- Lägg sedan till en ny schemareferens med metoden schemarefs.add() med inmatningsschemafil.
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden.
Följande kodexempel visar hur man skapar ett XBRL-instansdokument och lägger till schemareferens i Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument och lägger till schemareferensobjekt
from aspose.finance.xbrl import XbrlDocument
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Hämta instansschemareferenssamling
schemaRefs = xbrlInstance.schema_refs
# Lägg till schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
# Spara dokumentet
xbrlDoc.save(outputFile)
Lägg till kontext i XBRL med Python
Vi kan lägga till ett sammanhang till ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg sedan till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Skapa sedan en instans av klassen ContextPeriod med start- och slutdatum.
- Skapa sedan ett ContextEntity-objekt med schema och identifierare.
- Skapa sedan en instans av klassen Context med den definierade ContextPeriod och ContextEntity.
- Efter det lägger du till Context-objektet i kontextsamlingen.
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden.
Följande kodexempel visar hur man skapar ett XBRL-instansdokument och lägger till ett kontextobjekt i Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument och lägger till Context-objekt
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Lägg till kontextperiod
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
# Lägg till kontextenhet
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
# Definiera och lägg till sammanhang
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
# Spara dokumentet
xbrlDoc.save(outputFile)
Skapa enheter i XBRL med Python
Enheterna i XBRL mäter numeriska objekt. Vi kan lägga till en enhet i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg sedan till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Skapa sedan en instans av klassen Unit med UnitType som MEASURE.
- Lägg sedan till QualifiedName i samlingen measurequalifiednames.
- Efter det lägger du till enheten i enhetssamlingen.
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden.
Följande kodexempel visar hur man skapar en XBRL-fil och lägger till ett enhetsobjekt i Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument och lägger till Unit-objekt
from aspose.finance.xbrl import XbrlDocument,Unit,QualifiedName,UnitType
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Lägg till enhet
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)
# Spara dokumentet
xbrlDoc.save(outputFile)
Lägg till faktaobjekt i XBRL med Python
Fakta i XBRL definieras med hjälp av artikelelement. En post i XBRL innehåller värdet av det enkla faktumet och en referens till sammanhanget för att korrekt tolka det faktumet. Vi kan lägga till ett objekt i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Lägg till en ny schemareferens till XbrlInstance-objektets schemarefs.
- Få SchemaRef genom dess index från schemarefs.
- Initiera Context-instansen och lägg till den i kontextsamlingen.
- Definiera en enhetsinstans och lägg till den i enhetssamlingen.
- Skapa en Concept-klassinstans med metoden getconceptbyname().
- Skapa en instans av klassen Item med Concept-objektet som argument.
- Ställ in objektegenskaper som contextref, unitref, precision, value, etc.
- Lägg sedan till objektet i faktasamlingen.
- Spara slutligen XBRL-filen med metoden save(string).
Följande kodexempel visar hur man lägger till ett fakta som ett objektelement i ett XBRL-instansdokument med Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument och lägger till objektobjekt
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,Unit,UnitType,QualifiedName,Item
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Hämta instansschemareferenssamling
schemaRefs = xbrlInstance.schema_refs
# Lägg till schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
# Lägg till sammanhang
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
# Lägg till enhet
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)
# Lägg till vara
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)
# Spara dokumentet
xbrlDoc.save(outputFile)
Lägg till fotnotslänkar till XBRL i Python
Vi kan lägga till en fotnotslänk i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Lägg till en ny schemareferens till XbrlInstance-objektets schemarefs.
- Få SchemaRef genom dess index från schemarefs.
- Initiera Context-instansen och lägg till den i kontextsamlingen.
- Definiera en fotnotsklassinstans och ställ in dess etikett och text.
- Initiera Locator-typ med hjälp av Loc-klassinstansen.
- Definiera FootnoteArc-objekt med Locator-etikett och Footnote-etikett som argument.
- Skapa en instans av klassen FootnoteLink.
- Lägg till Footnote, Locator och FootnoteArc till relevanta samlingar.
- Lägg sedan till fotnotslänken till samlingen av fotnotslänkar.
- Spara slutligen XBRL-filen med metoden save(string).
Följande kodexempel visar hur man lägger till en fotnotslänk i ett XBRL-instansdokument med Python.
# Detta kodexempel visar hur man skapar ett XBRL-dokument och lägger till Footnote Link-objekt
from datetime import datetime
from aspose.finance.xbrl import XbrlDocument,ContextPeriod,ContextEntity,Context,FootnoteLink,Footnote,Loc,FootnoteArc
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Hämta instansschemareferenssamling
schemaRefs = xbrlInstance.schema_refs
# Lägg till schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
# Lägg till sammanhang
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
# Lägg till fotnot
footnote = Footnote("footnote1")
footnote.text = "Including the effects of the merger."
# Lägg till plats
loc = Loc("#cd1", "fact1")
# Definiera fotnotsbåge
footnoteArc = FootnoteArc(loc.label, footnote.label)
# Lägg till fotnotLink
footnoteLink = FootnoteLink()
footnoteLink.footnotes.append(footnote)
footnoteLink.locators.append(loc)
footnoteLink.footnote_arcs.append(footnoteArc)
xbrlInstance.footnote_links.append(footnoteLink)
# Spara dokumentet
xbrlDoc.save(outputFile)
Infoga rollreferens i XBRL med Python
Vi kan lägga till en rollreferens i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Lägg till en ny schemareferens till XbrlInstance-objektets schemarefs.
- Få SchemaRef genom dess index från schemarefs.
- Hämta sedan RoleType från metoden getroletypebyuri() .
- Skapa sedan en instans av klassen RoleReference med RoleType-objektet som argument.
- Efter det lägger du till RoleReference till rollereferences-samlingen.
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden.
Följande kodexempel visar hur man lägger till en rollreferens i ett XBRL-instansdokument med Python.
# Det här kodexemplet visar hur man skapar ett XBRL-dokument och lägger till ett rollreferensobjekt
from aspose.finance.xbrl import XbrlDocument,RoleReference
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Hämta instansschemareferenssamling
schemaRefs = xbrlInstance.schema_refs
# Lägg till schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
# Få rolltyp
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")
# Lägg till rollreferens
if roleType is not None:
roleReference = RoleReference(roleType)
xbrlInstance.role_references.append(roleReference)
# Spara dokumentet
xbrlDoc.save(outputFile)
Lägg till Arc Roll Reference till XBRL i Python
Vi kan lägga till en Arc-rollreferens i ett XBRL-instansdokument genom att följa stegen nedan:
- Skapa först en instans av klassen XbrlDocument.
- Lägg till en ny XBRL-instans till XbrlDocument-objektets xbrlinstances.
- Lägg till en ny schemareferens till XbrlInstance-objektets schemarefs.
- Få SchemaRef genom dess index från schemarefs.
- Hämta sedan RoleType från metoden getarcroletypebyuri() .
- Skapa sedan en instans av klassen ArcroleReference med RoleType-objektet som argument.
- Efter det lägger du till ArcroleReference i samlingen arcrolereferences.
- Slutligen, spara XBRL-filen med hjälp av save(string)-metoden.
Följande kodexempel visar hur man lägger till en bågrollreferens i ett XBRL-instansdokument med Python.
# Det här kodexemplet visar hur man skapar ett XBRL-dokument och lägger till Arc Role-referensobjekt
from aspose.finance.xbrl import XbrlDocument,ArcroleReference
# Sökvägen till dokumentkatalogen.
outputFile = "C:\\Files\\document.xbrl"
inputSchemaFile = "C:\\Files\\schema.xsd"
# Skapa XBRL-dokument
xbrlDoc = XbrlDocument()
# Få insamling av dokumentinstanser
xbrlInstances = xbrlDoc.xbrl_instances
# Lägg till instans i samlingen
xbrlInstance = xbrlInstances[xbrlInstances.add()]
# Hämta instansschemareferenssamling
schemaRefs = xbrlInstance.schema_refs
# Lägg till schema
schemaRefs.add(inputSchemaFile, "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
# Få rolltyp
roleType = schema.get_role_type_by_uri("http://abc.com/role/link1")
# Lägg till rollreferens
if roleType is not None:
arcroleReference = ArcroleReference(roleType)
xbrlInstance.arcrole_references.append(arcroleReference)
# Spara dokumentet
xbrlDoc.save(outputFile)
Skaffa en gratis licens
Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har vi lärt oss hur man skapar ett XBRL-dokument med Python. Vi har också sett hur man lägger till olika XBRL-objekt till det skapade XBRL-instansdokumentet programmatiskt. Dessutom kan du lära dig mer om Aspose.Finance för Python API med hjälp av dokumentationen. I händelse av oklarheter, vänligen kontakta oss på vårt forum.