Convalida i file XBRL e iXBRL in C#
Convalidare il file di istanza XBRL in C#
XBRL Istanze, XBRL Linkbase e XBRL Schemi di tassonomia DEVONO rispettare i requisiti di sintassi imposti inXBRL specifica. Per convalidare questi, ilXbrlInstance la classe fornisce ilConvalidare() metodo.
Il seguente frammento di codice C# illustra come convalidare un documento di istanza XBRL.
Convalida il file iXBRL in C#
IliXBRL specificadefinisce molte regole di convalida. Per la convalida dei file iXBRL, ilInlineXbrlDocument la classe fornisce aConvalidare() metodo.
Il seguente frammento di codice C# illustra la convalida di un documento di istanza iXBRL.
Codici di errore di convalida
Nell’enumerazioneValidationErrorCode , i codici di errore di convalida vengono definiti per ogni regola di convalida. Di seguito sono riportate le definizioni dei codici di errore:
- ContextPeriodNoStartTime: il tipo di periodo del contesto è la durata, ma non ha una data di inizio.
- ContextPeriodNoEndTime: il tipo di periodo del contesto è la durata, ma non ha una data di fine.
- ContextPeriodStartAfterEnd: il tipo di periodo del contesto è la durata, ma la data di fine è precedente alla data di inizio.
- ContextInstantNoTime: il tipo di periodo del contesto è istantaneo, ma non ha data istantanea.
- ContextScenarioXbrlNamespace: lo scenario di contesto non può avere il nodo dello spazio dei nomi XBRL.
- ContextScenarioXbrlSubstitutionGroup: lo scenario di contesto non può avere un elemento nel gruppo di sostituzione per gli elementi definiti nello spazio dei nomi XBRL.
- ContextScenarioEmpty: lo scenario di contesto non può essere vuoto.
- ContextSegmentXbrlNamespace: il segmento di contesto non può avere il nodo dello spazio dei nomi XBRL.
- ContextSegmentXbrlSubstitutionGroup: il segmento di contesto non può avere un elemento nel gruppo di sostituzione per gli elementi definiti nello spazio dei nomi XBRL.
- ContextSegmentEmpty: il segmento di contesto non può essere vuoto.
- ItemNoContext: l’elemento deve avere un contesto.
- ItemPeroidTypeConflictWithContext: l’elemento presenta un conflitto di tipo di periodo con il contesto.
- ItemNumericNoUnit: l’elemento è numerico e deve avere un’unità.
- MonetaryItemNoSingleUnitMeasure: l’elemento è di tipo monetario e deve avere una singola unità di misura.
- MonetaryItemNoISO4217: l’articolo è di tipo monetario e deve avere un’unità di misura in stile Iso 4217.
- ShareItemNoSingleUnitMeasure: l’elemento è un tipo di condivisione e deve avere una singola unità di misura.
- ShareItemNoShareUnitMeasure: l’elemento è di tipo condiviso e deve avere un’unità di misura xbrli:shares.
- NillItemWithPrecisionOrDecimals: l’elemento è nullo e non deve avere precisione o decimali.
- FractionItemWithPrecisionOrDecimals: Item è un tipo di frazione e non deve avere precisione o decimali.
- NumericItemWithBothPrecisionAndDecimals: Item è un tipo numerico e non deve avere sia precisione che decimali.
- NumericItemWithoutPrecisionOrDecimals: Item è un tipo numerico e deve avere precisione o decimali.
- NonNumericItemWithPrecisionOrDecimals: l’elemento non è un tipo numerico e non deve avere precisione o decimali.
- FootnoteArcFromNotFound: Impossibile trovare l’arco delle note a piè di pagina da Loc.
- FootnoteArcToNotFound: impossibile trovare l’arco della nota a piè di pagina nella nota a piè di pagina.
- DefinitionArcFromNotFound: Impossibile trovare l’arco di definizione da Loc.
- DefinitionArcToNotFound: impossibile trovare l’arco di definizione in Loc.
- EssenceAliasDefinitionArcDifferentType: Essence-alias Definition arc ha diversi tipi.
- EssenceAliasDefinitionArcDifferentPeriodType: la definizione di Essence-alias arc ha diversi periodType.
- EssenceAliasDefinitionArcDifferentBalance: Essence-alias Definition arc ha diversi saldi.
- CalculationArcFromNotFound: Impossibile trovare l’arco di calcolo da Loc.
- CalculationArcToNotFound: impossibile trovare l’arco di calcolo a Loc.
- LabelArcFromNotFound: Impossibile trovare Lable arc da Loc.
- LabelArcToNotFound: Impossibile trovare l’arco Lable in Loc.
- PresentationArcFromNotFound: impossibile trovare un arco di presentazione da Loc.
- PresentationArcToNotFound: impossibile trovare un arco di presentazione in Loc.
- ReferenceArcFromNotFound: Impossibile trovare un arco di riferimento da Loc.
- ReferenceArcToNotFound: Impossibile trovare un arco di riferimento a Loc.
Esempio di messaggio di errore di convalida standard
Sopra c’è un’istanza XBRL, definisce il contesto “cd1”, questo tipo di periodo di contesto è la durata, la sua data di inizio è 2002-03-31, la data di fine è 2001-03-31, quindi la data di fine è precedente alla data di inizio. Nella specifica XBRL, capitolo 4.7.2, definisce la regola di convalida: “la data di fine DEVE specificare o implicare un punto nel tempo che è successivo al punto nel tempo specificato o implicito della corrispondente data di inizio”. Secondo questa regola, questa istanza XBRL non è valida.
Convalidare XBRL e generare un messaggio di errore standard
Il codice seguente convalida l’istanza XBRL e restituisce il messaggio di errore standard.
L’immagine seguente mostra l’output:
Convalidare XBRL e generare un messaggio di errore personalizzato
Il codice seguente convalida l’istanza XBRL e genera un messaggio di errore personalizzato.
L’immagine seguente mostra l’output:
Convalidare XBRL e generare un messaggio di errore standard