Validera filerna XBRL och iXBRL i Python

Validera instansfilen XBRL i Python

XBRL Instances, XBRL Linkbases och XBRL Taxonomy Schemas MÅSTE uppfylla syntaxkraven iXBRL specifikation. För att validera dessa tillhandahåller klassen XbrlInstance metoden validate().

Följande Python-kodavsnitt visar hur man validerar ett XBRL-instansdokument.

Validera filen iXBRL i Python

DeiXBRL specifikation definierar många valideringsregler. För validering av iXBRL-filer tillhandahåller klassen InlineXbrlDocument en validate()-metod.

Följande Python-kodavsnitt visar validering av ett iXBRL-instansdokument.

Validering felkoder

I enum ValidationErrorCode definieras valideringsfelkoder för varje valideringsregel. Följande är felkodsdefinitionerna:

  • SAMMANHANG_PERIOD_NEJ_START_TID: Typ av kontextperiod är varaktighet, men har inget startdatum.
  • SAMMANHANG_PERIOD_NEJ_SLUTET_TID: Typ av kontextperiod är varaktighet, men har inget slutdatum.
  • SAMMANHANG_PERIOD_START_EFTER_SLUT: Typ av kontextperiod är varaktighet, men slutdatumet är före startdatumet.
  • SAMMANHANG_OMEDELBAR_NO_TIME: Typ av kontextperiod är omedelbar, men har inget direktdatum.
  • SAMMANHANG_SCENARIO_XBRL_NAMESPACE: Kontextscenariot kan inte ha XBRL namnområdesnod.
  • SAMMANHANG_SCENARIO_XBRL_UTBYTE_GROUP: Kontextscenariot kan inte ha ett element i ersättningsgruppen för element definierade i namnområdet XBRL.
  • SAMMANHANG_SCENARIO_TOM: Kontextscenariot kan inte vara tomt.
  • SAMMANHANG_SEGMENTET_XBRL_NAMESPACE: Kontextsegment kan inte ha XBRL namnområdesnod.
  • SAMMANHANG_SEGMENTET_XBRL_SUBSTITUTIONGROUP: Kontextsegment kan inte ha element i ersättningsgruppen för element definierade i namnområdet XBRL.
  • SAMMANHANG_SEGMENTET_TOM: Kontextsegmentet får inte vara tomt.
  • ARTIKEL_NEJ_KONTEXT: Objektet måste ha ett sammanhang.
  • ARTIKEL_PEROID_TYP_KONFLIKT_WITH_CONTEXT: Objektet har periodtyp i konflikt med sammanhanget.
  • ARTIKEL_NUMERISK_NO_UNIT: Objektet är numeriskt och måste ha en enhet.
  • MONETÄR_ARTIKEL_NEJ_ENDA_UNIT_MEASURE: Objekt är en monetär typ och måste ha ett enda mått.
  • MONETÄR_ARTIKEL_NO_ISO4217: Föremålet är en monetär typ och måste ha ett enhetsmått i Iso 4217-stil.
  • DELA MED SIG_ARTIKEL_NEJ_ENDA_UNIT_MEASURE: Objektet är en andelstyp och måste ha ett enda mått.
  • DELA MED SIG_ARTIKEL_NEJ_DELA MED SIG_UNIT_MEASURE: Objektet är delningstyp och måste ha ett xbrli:shares enhetsmått.
  • NILL_ARTIKEL_MED_PRECISION_OR_DECIMALS: Artikeln är noll och får inte ha vare sig precision eller decimaler.
  • FRAKTION_ARTIKEL_MED_PRECISION_OR_DECIMALS: Objekt är en bråktyp och får inte ha vare sig precision eller decimaler.
  • NUMERISK_ARTIKEL_MED_BÅDE_PRECISION_OCH_DECIMALER: Objektet är en numerisk typ och får inte ha både precision och decimaler.
  • NUMERISK_ARTIKEL_UTAN_PRECISION_OR_DECIMALS: Objektet är en numerisk typ och måste ha antingen precision eller decimaler.
  • EJ_NUMERISK_ARTIKEL_MED_PRECISION_ELLER_DECIMALER: Objektet är inte en numerisk typ och får inte ha vare sig precision eller decimaler.
  • FOTNOT_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta fotnotsbågen från Loc.
  • FOTNOT_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta fotnotsbåge till fotnot.
  • DEFINITION_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta definitionsbågen från Loc.
  • DEFINITION_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta definitionsbågen till Loc.
  • VÄSEN_ALIAS_DEFINITION_BÅGE_DIFFERENT_TYPE: Essence-alias Definition arc har olika typer.
  • VÄSEN_ALIAS_DEFINITION_BÅGE_ANNORLUNDA_PERIOD_TYPE: Essence-alias Definition arc har olika periodTypes.
  • VÄSEN_ALIAS_DEFINITION_BÅGE_DIFFERENT_BALANCE: Essence-alias Definition arc har olika balanser.
  • BERÄKNING_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta beräkningsbåge från Loc.
  • BERÄKNING_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta beräkningsbågen till Loc.
  • MÄRKA_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta Lable-bågen från Loc.
  • MÄRKA_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta Lable arc to Loc.
  • PRESENTATION_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta en presentationsbåge från Loc.
  • PRESENTATION_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta en presentationsbåge till Loc.
  • REFERENS_BÅGE_FRÅN_INTE_FOUND: Det gick inte att hitta en referensbåge från Loc.
  • REFERENS_BÅGE_TILL_INTE_FOUND: Det gick inte att hitta en referensbåge till Loc.

Exempel på standard valideringsfelmeddelande

todo:image_alt_text

Ovan är en XBRL-instans, den definierar sammanhanget “cd1”, denna kontextperiodtyp är varaktighet, dess startdatum är 2002-03-31, slutdatumet är 2001-03-31, så slutdatumet är före startdatumet. I XBRL-specifikationen, kapitel 4.7.2, definierar den valideringsregeln: “slutdatumet MÅSTE ange eller antyda en tidpunkt som är senare än den angivna eller underförstådda tidpunkten för motsvarande startdatum”. Enligt denna regel är denna XBRL-instans inte en giltig.

Validera XBRL och mata ut standardfelmeddelande

Följande kod validerar XBRL-instansen och matar ut standardfelmeddelandet.

Följande bild visar resultatet:

todo:image_alt_text