Validieren Sie die Dateien XBRL und iXBRL in C#
Validieren Sie die Instanzdatei XBRL in C#
XBRL-Instanzen, XBRL-Linkbases und XBRL-Taxonomieschemata MÜSSEN den inXBRL Spezifikation. Um diese zu validieren, dieXbrlInstance Klasse bietet dieBestätigen() Methode.
Das folgende C#-Code-Snippet zeigt, wie ein XBRL-Instanzdokument validiert wird.
Validieren Sie die iXBRL-Datei in C#
DasiXBRL Spezifikationdefiniert viele Validierungsregeln. Für die Validierung von iXBRL-Dateien ist dieInlineXbrlDocument Klasse bietet aBestätigen() Methode.
Das folgende C#-Code-Snippet veranschaulicht die Validierung eines iXBRL-Instanzdokuments.
Validierungsfehlercodes
In der AufzählungValidierungsfehlercode werden Validierungsfehlercodes für jede Validierungsregel definiert. Im Folgenden sind die Definitionen der Fehlercodes aufgeführt:
- ContextPeriodNoStartTime: Der Typ des Kontextzeitraums ist Dauer, hat aber kein Startdatum.
- ContextPeriodNoEndTime: Der Kontextzeitraumtyp ist Dauer, hat aber kein Enddatum.
- ContextPeriodStartAfterEnd: Der Typ des Kontextzeitraums ist Dauer, aber das Enddatum liegt vor dem Startdatum.
- ContextInstantNoTime: Der Kontextzeitraumtyp ist Instant, hat aber kein Instant-Datum.
- ContextScenarioXbrlNamespace: Das Kontextszenario darf keinen XBRL-Namespace-Knoten haben.
- ContextScenarioXbrlSubstitutionGroup: Das Kontextszenario darf kein Element in der Substitutionsgruppe für Elemente haben, die im Namensraum XBRL definiert sind.
- ContextScenarioEmpty: Kontextszenario darf nicht leer sein.
- ContextSegmentXbrlNamespace: Das Kontextsegment darf keinen XBRL-Namespace-Knoten haben.
- ContextSegmentXbrlSubstitutionGroup: Das Kontextsegment darf kein Element in der Substitutionsgruppe für Elemente haben, die im Namensraum XBRL definiert sind.
- ContextSegmentEmpty: Kontextsegment darf nicht leer sein.
- ItemNoContext: Item muss einen Kontext haben.
- ItemPeroidTypeConflictWithContext: Artikel hat Zeitraumtypkonflikt mit Kontext.
- ItemNumericNoUnit: Item ist numerisch und muss eine Einheit haben.
- MonetaryItemNoSingleUnitMeasure: Artikel ist ein Geldtyp und muss eine einzelne Maßeinheit haben.
- MonetaryItemNoISO4217: Der Artikel ist ein Geldtyp und muss eine Maßeinheit im Stil von Iso 4217 haben.
- ShareItemNoSingleUnitMeasure: Artikel ist ein Anteilstyp und muss eine einzelne Maßeinheit haben.
- ShareItemNoShareUnitMeasure: Das Element ist vom Typ „Share“ und muss eine xbrli:shares-Maßeinheit haben.
- NillItemWithPrecisionOrDecimals: Das Element ist null und darf weder Genauigkeit noch Dezimalstellen haben.
- FractionItemWithPrecisionOrDecimals: Item ist ein Bruchtyp und darf weder Genauigkeit noch Dezimalstellen haben.
- NumericItemWithBothPrecisionAndDecimals: Item ist ein numerischer Typ und darf nicht sowohl Genauigkeit als auch Dezimalstellen aufweisen.
- NumericItemWithoutPrecisionOrDecimals: Item ist ein numerischer Typ und muss entweder Genauigkeit oder Dezimalstellen aufweisen.
- NonNumericItemWithPrecisionOrDecimals: Item ist kein numerischer Typ und darf weder Genauigkeit noch Dezimalstellen haben.
- FootnoteArcFromNotFound: Fußnotenbogen von Loc kann nicht gefunden werden.
- FootnoteArcToNotFound: Bogen von Fußnote zu Fußnote kann nicht gefunden werden.
- DefinitionArcFromNotFound: Definitionsbogen von Loc kann nicht gefunden werden.
- DefinitionArcToNotFound: Definitionsbogen zu Loc kann nicht gefunden werden.
- EssenceAliasDefinitionArcDifferentType: Essence-Alias-Definitionsbogen hat verschiedene Typen.
- EssenceAliasDefinitionArcDifferentPeriodType: Essence-Alias Definition arc hat verschiedene periodTypes.
- EssenceAliasDefinitionArcDifferentBalance: Essence-Alias Definition arc hat unterschiedliche Balancen.
- CalculationArcFromNotFound: Berechnungsbogen von Loc kann nicht gefunden werden.
- CalculationArcToNotFound: Berechnungsbogen zu Loc kann nicht gefunden werden.
- LabelArcFromNotFound: Beschriftungsbogen von Loc kann nicht gefunden werden.
- LabelArcToNotFound: Lable-Bogen zu Loc kann nicht gefunden werden.
- PresentationArcFromNotFound: Es konnte kein Präsentationsbogen von Loc gefunden werden.
- PresentationArcToNotFound: Präsentationsbogen zu Loc konnte nicht gefunden werden.
- ReferenceArcFromNotFound: Referenzbogen von Loc kann nicht gefunden werden.
- ReferenceArcToNotFound: Referenzbogen zu Loc kann nicht gefunden werden.
Beispiel für eine standardmäßige Validierungsfehlermeldung
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:
Validieren Sie XBRL und geben Sie eine angepasste Fehlermeldung aus
Der folgende Code validiert die Instanz XBRL und gibt eine benutzerdefinierte Fehlermeldung aus.
Das folgende Bild zeigt die Ausgabe:
XBRL validieren und Standardfehlermeldung ausgeben