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