Crea file XBRL usando Python

Un documento XBRL è una raccolta di fatti che insieme costituiscono un rapporto commerciale. Possiamo facilmente creare un documento di istanza XBRL a livello di codice e aggiungere oggetti o elementi come riferimento allo schema, contesto, unità, elementi, ecc. In questo articolo impareremo come creare un file XBRL usando Python.

In questo articolo verranno trattati i seguenti argomenti:

  1. Cos’è XBRL
  2. Libreria finanziaria Python per creare file XBRL
  3. Crea file XBRL
  4. Aggiungi riferimento allo schema a XBRL
  5. Aggiungi contesto in XBRL
  6. Crea un’unità in XBRL
  7. Aggiungi elemento di fatto in XBRL
  8. Aggiungi collegamenti a piè di pagina a XBRL
  9. Inserisci riferimento ruolo in XBRL
  10. Aggiungi riferimento al ruolo dell’arco a XBRL

Cos’è XBRL

XBRL sta per eXtensible Business Reporting Language, un linguaggio di markup basato su XML. Viene utilizzato per la rendicontazione aziendale standardizzata della performance finanziaria di un’azienda. Fornisce un modo per comunicare e scambiare informazioni aziendali tra i sistemi aziendali.

Libreria finanziaria Python per creare file XBRL

Per creare un file XBRL o un documento di istanza, utilizzeremo l’API Aspose.Finance for Python. Consente di creare istanze XBRL, analizzare e convalidare i file XBRL o iXBRL.

L’API fornisce la classe XbrlDocument che rappresenta un documento XBRL contenente una o più istanze XBRL. Un’istanza XBRL è un frammento XML, con l’elemento radice che ha un tag XBRL. La classe XbrlInstance fornisce vari metodi e proprietà per lavorare con le istanze XBRL. Il metodo save() della classe XbrlDocument crea e salva il file XBRL sul disco. Leggi di più sulle altre classi per lavorare con gli oggetti XBRL in Riferimento API.

Si prega di scaricare il pacchetto o installare l’API da PyPI utilizzando il seguente comando pip nella console:

pip install aspose-finance

Crea un documento di istanza XBRL in Python

Possiamo facilmente creare un documento di istanza XBRL da zero seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Successivamente, accedi alla raccolta di istanze dall’oggetto XbrlDocument nell’oggetto xbrlinstances.
  3. Successivamente, aggiungi una nuova istanza XBRL utilizzando il metodo xbrlinstances.add().
  4. Infine, salva il file XBRL usando il metodo save(string). Prende il percorso del file di output come argomento.

L’esempio di codice seguente mostra come creare un’istanza XBRL usando 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)

Dopo aver creato l’istanza di XBRL, è possibile aggiungere il riferimento allo schema, il contesto, le unità, gli elementi, i collegamenti alle note a piè di pagina, i riferimenti al ruolo e i riferimenti al ruolo dell’arco nell’istanza XBRL appena creata.

Aggiungi riferimento allo schema a XBRL usando Python

Possiamo aggiungere un riferimento allo schema in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Quindi, ottieni la raccolta delle istanze dell’oggetto XbrlDocument nell’oggetto xbrlinstances.
  3. Quindi, aggiungi una nuova istanza XBRL utilizzando il metodo xbrlinstances.add().
  4. Quindi, ottieni la raccolta di riferimenti allo schema dell’oggetto XbrlInstance nell’oggetto schemarefs.
  5. Successivamente, aggiungi un nuovo riferimento allo schema utilizzando il metodo schemarefs.add() con il file dello schema di input.
  6. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come creare un documento di istanza XBRL e aggiungere un riferimento allo schema in 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)

Aggiungi contesto in XBRL usando Python

Possiamo aggiungere un contesto a un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Quindi, aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Quindi, crea un’istanza della classe ContextPeriod con le date di inizio e di fine.
  4. Quindi, crea un oggetto ContextEntity con schema e identificatore.
  5. Quindi, crea un’istanza della classe Context con ContextPeriod e ContextEntity definiti.
  6. Successivamente, aggiungi l’oggetto Context alla raccolta di contesti.
  7. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come creare un documento di istanza XBRL e aggiungere un oggetto contesto in 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)

Crea unità in XBRL usando Python

Le unità in XBRL misurano elementi numerici. Possiamo aggiungere un’unità in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Quindi, aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Quindi, crea un’istanza della classe Unit con UnitType come MEASURE.
  4. Quindi, aggiungi QualifiedName alla raccolta measurequalifiednames.
  5. Successivamente, aggiungi l’unità alla raccolta di unità.
  6. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come creare un file XBRL e aggiungere un oggetto unità in 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)

Aggiungi Fact Item in XBRL usando Python

I fatti in XBRL sono definiti utilizzando elementi elemento. Un elemento in XBRL contiene il valore del fatto semplice e un riferimento al contesto per interpretare correttamente quel fatto. Possiamo aggiungere un elemento in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Aggiungi un nuovo riferimento allo schema agli schemirefs dell’oggetto XbrlInstance.
  4. Ottieni SchemaRef in base al suo indice da schemarefs.
  5. Inizializza l’istanza Context e aggiungila alla raccolta di contesti.
  6. Definisci un’istanza Unit e aggiungila alla raccolta di unità.
  7. Crea un’istanza della classe Concept usando il metodo getconceptbyname().
  8. Crea un’istanza della classe Item con l’oggetto Concept come argomento.
  9. Imposta le proprietà dell’elemento come contextref, unitref, precision, value, ecc.
  10. Successivamente, aggiungi l’Articolo alla raccolta dei fatti.
  11. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come aggiungere un fatto come elemento elemento in un documento di istanza XBRL usando 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)

Possiamo aggiungere un collegamento a piè di pagina in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Aggiungi un nuovo riferimento allo schema agli schemirefs dell’oggetto XbrlInstance.
  4. Ottieni SchemaRef in base al suo indice da schemarefs.
  5. Inizializza l’istanza Context e aggiungila alla raccolta di contesti.
  6. Definire un’istanza di classe Footnote e impostarne l’etichetta e il testo.
  7. Inizializza il tipo Locator utilizzando l’istanza della classe Loc.
  8. Definisci l’oggetto FootnoteArc con l’etichetta Locator e l’etichetta Footnote come argomenti.
  9. Crea un’istanza della classe FootnoteLink.
  10. Aggiungi Footnote, Locator e FootnoteArc alle raccolte pertinenti.
  11. Successivamente, aggiungi FootnoteLink alla raccolta footnotelinks.
  12. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come aggiungere un collegamento a piè di pagina in un documento di istanza XBRL usando 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)

Inserisci il riferimento al ruolo in XBRL usando Python

Possiamo aggiungere un riferimento al ruolo in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Aggiungi un nuovo riferimento allo schema agli schemirefs dell’oggetto XbrlInstance.
  4. Ottieni SchemaRef in base al suo indice da schemarefs.
  5. Quindi, ottieni RoleType dal metodo getroletypebyuri().
  6. Quindi, crea un’istanza della classe RoleReference con l’oggetto RoleType come argomento.
  7. Successivamente, aggiungi RoleReference alla raccolta rolereferences.
  8. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come aggiungere un riferimento al ruolo in un documento di istanza XBRL usando 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)

Aggiungi Arc Role Reference a XBRL in Python

Possiamo aggiungere un riferimento al ruolo Arc in un documento di istanza XBRL seguendo i passaggi indicati di seguito:

  1. Innanzitutto, crea un’istanza della classe XbrlDocument.
  2. Aggiungi una nuova istanza XBRL alle xbrlinstances dell’oggetto XbrlDocument.
  3. Aggiungi un nuovo riferimento allo schema agli schemirefs dell’oggetto XbrlInstance.
  4. Ottieni SchemaRef in base al suo indice da schemarefs.
  5. Quindi, ottieni RoleType dal metodo getarcroletypebyuri().
  6. Quindi, crea un’istanza della classe ArcroleReference con l’oggetto RoleType come argomento.
  7. Successivamente, aggiungi ArcroleReference alla raccolta arcrolereferences.
  8. Infine, salva il file XBRL usando il metodo save(string).

L’esempio di codice seguente mostra come aggiungere un riferimento al ruolo arco in un documento di istanza XBRL usando 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)

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato come creare un documento XBRL usando Python. Abbiamo anche visto come aggiungere vari oggetti XBRL al documento di istanza XBRL creato a livello di codice. Inoltre, puoi saperne di più su Aspose.Finance per l’API Python usando la documentazione. In caso di ambiguità, non esitare a contattarci sul nostro forum.

Guarda anche