Validieren Sie die Dateien XBRL und iXBRL in Python

Validieren Sie die Instanzdatei XBRL in Python

XBRL-Instanzen, XBRL-Linkbases und XBRL-Taxonomieschemata MÜSSEN den inXBRL Spezifikation. Um diese zu validieren, stellt die XbrlInstance-Klasse die Methode validate() bereit.

Das folgende Python-Code-Snippet zeigt, wie ein XBRL-Instanzdokument validiert wird.

Validieren Sie die iXBRL-Datei in Python

DasiXBRL Spezifikation definiert viele Validierungsregeln. Zum Validieren von iXBRL-Dateien stellt die InlineXbrlDocument-Klasse eine validate()-Methode bereit.

Das folgende Python-Code-Snippet veranschaulicht die Validierung eines iXBRL-Instanzdokuments.

Validierungsfehlercodes

Im Enum ValidationErrorCode sind Validierungsfehlercodes für jede Validierungsregel definiert. Im Folgenden sind die Definitionen der Fehlercodes aufgeführt:

  • KONTEXT_ZEITRAUM_NEIN_ANFANG_ZEIT: Der Kontextzeitraumtyp ist Dauer, hat aber kein Startdatum.
  • KONTEXT_ZEITRAUM_NEIN_ENDE_ZEIT: Der Kontextzeitraumtyp ist Dauer, hat aber kein Enddatum.
  • KONTEXT_ZEITRAUM_ANFANG_NACH_ENDE: Der Kontextzeitraumtyp ist Dauer, aber das Enddatum liegt vor dem Startdatum.
  • KONTEXT_SOFORTIG_NO_TIME: Der Kontextzeitraumtyp ist sofortig, hat aber kein sofortiges Datum.
  • KONTEXT_SZENARIO_XBRL_NAMESPACE: Das Kontextszenario kann keinen XBRL-Namespace-Knoten haben.
  • KONTEXT_SZENARIO_XBRL_AUSWECHSLUNG_GRUPPE: Das Kontextszenario darf kein Element in der Ersetzungsgruppe für Elemente haben, die im Namensraum XBRL definiert sind.
  • KONTEXT_SZENARIO_LEER: Das Kontextszenario darf nicht leer sein.
  • KONTEXT_SEGMENT_XBRL_NAMESPACE: Das Kontextsegment darf keinen XBRL-Namespace-Knoten haben.
  • KONTEXT_SEGMENT_XBRL_SUBSTITUTIONGROUP: Das Kontextsegment darf kein Element in der Substitutionsgruppe für Elemente haben, die im Namensraum XBRL definiert sind.
  • KONTEXT_SEGMENT_LEER: Kontextsegment darf nicht leer sein.
  • ARTIKEL_NEIN_KONTEXT: Artikel muss einen Kontext haben.
  • ARTIKEL_ZEITRAUM_TYP_KONFLIKT_WITH_CONTEXT: Artikel hat Periodentypkonflikt mit Kontext.
  • ARTIKEL_NUMERISCH_NO_UNIT: Item ist numerisch und muss eine Einheit haben.
  • GELD_ARTIKEL_NEIN_SINGLE_UNIT_MEASURE: Der Artikel ist ein Geldtyp und muss eine einzelne Maßeinheit haben.
  • GELD_ARTIKEL_NO_ISO4217: Der Artikel ist ein Geldtyp und muss eine Maßeinheit im Stil von Iso 4217 haben.
  • TEILEN_ARTIKEL_NEIN_SINGLE_UNIT_MEASURE: Artikel ist ein Anteilstyp und muss eine einzelne Maßeinheit haben.
  • TEILEN_ARTIKEL_NEIN_TEILEN_UNIT_MEASURE: Der Artikel ist vom Typ „Share“ und muss eine xbrli:shares-Maßeinheit haben.
  • NULL_ARTIKEL_MIT_PRÄZISION_OR_DECIMALS: Das Element ist null und darf weder Genauigkeit noch Dezimalstellen haben.
  • FRAKTION_ARTIKEL_MIT_PRÄZISION_OR_DECIMALS: Item ist ein Bruchtyp und darf weder Genauigkeit noch Dezimalstellen haben.
  • NUMERISCH_ARTIKEL_MIT_BEIDE_PRÄZISION_UND_DEZIMALS: Item ist ein numerischer Typ und darf nicht sowohl Genauigkeit als auch Dezimalstellen haben.
  • NUMERISCH_ARTIKEL_OHNE_PRÄZISION_OR_DECIMALS: Item ist ein numerischer Typ und muss entweder Genauigkeit oder Dezimalstellen haben.
  • NICHT_NUMERISCH_ARTIKEL_MIT_PRÄZISION_ODER_DEZIMALS: Item ist kein numerischer Typ und darf weder Genauigkeit noch Dezimalstellen haben.
  • FUSSNOTE_BOGEN_AUS_NICHT_GEFUNDEN: Fußnotenbogen von Loc kann nicht gefunden werden.
  • FUSSNOTE_BOGEN_ZU_NICHT_GEFUNDEN: Fußnotenbogen zu Fußnote kann nicht gefunden werden.
  • DEFINITION_BOGEN_AUS_NICHT_GEFUNDEN: Definitionsbogen von Loc kann nicht gefunden werden.
  • DEFINITION_BOGEN_ZU_NICHT_GEFUNDEN: Definitionsbogen zu Loc kann nicht gefunden werden.
  • WESEN_ALIAS_DEFINITION_BOGEN_DIFFERENT_TYPE: Essence-Alias-Definitionsbogen hat verschiedene Typen.
  • WESEN_ALIAS_DEFINITION_BOGEN_ANDERS_ZEITRAUM_TYPE: Essence-Alias Definition arc hat verschiedene periodTypes.
  • WESEN_ALIAS_DEFINITION_BOGEN_DIFFERENT_BALANCE: Essence-Alias-Definitionsbogen hat unterschiedliche Balancen.
  • BERECHNUNG_BOGEN_AUS_NICHT_GEFUNDEN: Berechnungsbogen von Loc.
  • BERECHNUNG_BOGEN_ZU_NICHT_GEFUNDEN: Berechnungsbogen zu Loc kann nicht gefunden werden.
  • ETIKETT_BOGEN_AUS_NICHT_GEFUNDEN: Lable arc von Loc kann nicht gefunden werden.
  • ETIKETT_BOGEN_ZU_NICHT_GEFUNDEN: Lable Bogen zu Loc kann nicht gefunden werden.
  • PRÄSENTATION_BOGEN_AUS_NICHT_GEFUNDEN: Präsentationsbogen von Loc.
  • PRÄSENTATION_BOGEN_ZU_NICHT_GEFUNDEN: Präsentationsbogen zu Loc kann nicht gefunden werden.
  • HINWEIS_BOGEN_AUS_NICHT_GEFUNDEN: Kein Referenzbogen von Loc.
  • HINWEIS_BOGEN_ZU_NICHT_GEFUNDEN: Es konnte kein Referenzbogen zu Loc gefunden werden.

Beispiel für eine standardmäßige Validierungsfehlermeldung

todo: Bild_alt_Text

Oben ist eine XBRL-Instanz, sie definiert den Kontext „cd1“, dieser Kontextzeitraumtyp ist Dauer, sein Startdatum ist 2002-03-31, das Enddatum ist 2001-03-31, also liegt das Enddatum vor dem Startdatum. In der XBRL-Spezifikation, Kapitel 4.7.2, definiert sie eine Validierungsregel: „das Enddatum MUSS einen Zeitpunkt spezifizieren oder implizieren, der nach dem angegebenen oder implizierten Zeitpunkt des entsprechenden Startdatums liegt“. Gemäß dieser Regel ist diese XBRL-Instanz nicht gültig.

XBRL validieren und Standardfehlermeldung ausgeben

Der folgende Code validiert die Instanz XBRL und gibt die Standardfehlermeldung aus.

Das folgende Bild zeigt die Ausgabe:

todo: Bild_alt_Text