Validar archivos XBRL y iXBRL en C#

Valide el archivo de instancia XBRL en C#

Las instancias XBRL, las bases de enlaces XBRL y los esquemas de taxonomía XBRL DEBEN cumplir con los requisitos de sintaxis impuestos enXBRL especificación. Para validar estos, elXbrlInstancia la clase proporciona laValidar() método.

El siguiente fragmento de código C# muestra cómo validar un documento de instancia XBRL.

Validar archivo iXBRL en C#

losiXBRL especificacióndefine muchas reglas de validación. Para validar archivos iXBRL, elInlineXbrlDocumentInlineXbrlDocument la clase proporciona unValidar() método.

El siguiente fragmento de código C# demuestra la validación de un documento de instancia iXBRL.

Códigos de error de validación

en la enumeraciónCódigo de error de validación , los códigos de error de validación se definen para cada regla de validación. Las siguientes son las definiciones de los códigos de error:

  • ContextPeriodNoStartTime: el tipo de período de contexto es la duración, pero no tiene fecha de inicio.
  • ContextPeriodNoEndTime: el tipo de período de contexto es la duración, pero no tiene fecha de finalización.
  • ContextPeriodStartAfterEnd: el tipo de período de contexto es la duración, pero la fecha de finalización es anterior a la fecha de inicio.
  • ContextInstantNoTime: el tipo de período de contexto es instantáneo, pero no tiene fecha instantánea.
  • ContextScenarioXbrlNamespace: el escenario de contexto no puede tener el nodo de espacio de nombres XBRL.
  • ContextScenarioXbrlSubstitutionGroup: el escenario de contexto no puede tener un elemento en el grupo de sustitución para elementos definidos en el espacio de nombres XBRL.
  • ContextScenarioEmpty: el escenario de contexto no puede estar vacío.
  • ContextSegmentXbrlNamespace: el segmento de contexto no puede tener el nodo de espacio de nombres XBRL.
  • ContextSegmentXbrlSubstitutionGroup: el segmento de contexto no puede tener elementos en el grupo de sustitución para elementos definidos en el espacio de nombres XBRL.
  • ContextSegmentEmpty: el segmento de contexto no puede estar vacío.
  • ItemNoContext: el elemento debe tener un contexto.
  • ItemPeroidTypeConflictWithContext: el elemento tiene un conflicto de tipo de período con el contexto.
  • ItemNumericNoUnit: el artículo es numérico y debe tener una unidad.
  • MonetaryItemNoSingleUnitMeasure: el artículo es de tipo monetario y debe tener una sola unidad de medida.
  • MonetaryItemNoISO4217: el artículo es de tipo monetario y debe tener una unidad de medida de estilo ISO 4217.
  • ShareItemNoSingleUnitMeasure: el artículo es un tipo de recurso compartido y debe tener una sola unidad de medida.
  • ShareItemNoShareUnitMeasure: el elemento es de tipo compartido y debe tener una unidad de medida xbrli:shares.
  • NillItemWithPrecisionOrDecimals: el elemento es nulo y no debe tener precisión ni decimales.
  • FractionItemWithPrecisionOrDecimals: el elemento es un tipo de fracción y no debe tener precisión ni decimales.
  • NumericItemWithBothPrecisionAndDecimals: el elemento es de tipo numérico y no debe tener precisión ni decimales.
  • NumericItemWithoutPrecisionOrDecimals: el elemento es de tipo numérico y debe tener precisión o decimales.
  • NonNumericItemWithPrecisionOrDecimals: el elemento no es de tipo numérico y no debe tener precisión ni decimales.
  • FootnoteArcFromNotFound: no se puede encontrar el arco de la nota al pie de Loc.
  • FootnoteArcToNotFound: no se puede encontrar el arco de la nota al pie en la nota al pie.
  • DefinitionArcFromNotFound: no se puede encontrar el arco de definición de Loc.
  • DefinitionArcToNotFound: no se puede encontrar el arco de definición para Loc.
  • EssenceAliasDefinitionArcDifferentType: el arco de definición de alias de esencia tiene diferentes tipos.
  • EssenceAliasDefinitionArcDifferentPeriodType: el arco de definición de alias de esencia tiene diferentes periodTypes.
  • EssenceAliasDefinitionArcDifferentBalance: el arco de definición de alias de esencia tiene diferentes saldos.
  • CalculationArcFromNotFound: no se puede encontrar el arco de cálculo de Loc.
  • CalculationArcToNotFound: no se puede encontrar el arco de cálculo para Loc.
  • LabelArcFromNotFound: no se puede encontrar el arco de etiqueta de Loc.
  • LabelArcToNotFound: no se puede encontrar el arco de etiquetas en la ubicación.
  • PresentationArcFromNotFound: no se puede encontrar un arco de presentación de Loc.
  • PresentationArcToNotFound: no se puede encontrar un arco de presentación para Loc.
  • ReferenceArcFromNotFound: no se puede encontrar un arco de referencia de Loc.
  • ReferenceArcToNotFound: no se puede encontrar un arco de referencia para Loc.

Ejemplo de mensaje de error de validación estándar

todo:imagen_alternativa_texto

Arriba hay una instancia XBRL, define el contexto “cd1”, este tipo de período de contexto es duración, su fecha de inicio es 2002-03-31, la fecha de finalización es 2001-03-31, por lo que la fecha de finalización es anterior a la fecha de inicio. En la especificación XBRL, capítulo 4.7.2, define la regla de validación: “la fecha de finalización DEBE especificar o implicar un punto en el tiempo que es posterior al punto en el tiempo especificado o implícito de la correspondiente fecha de inicio”. Según esta regla, esta instancia XBRL no es válida.

Valide XBRL y genere un mensaje de error estándar

El siguiente código valida la instancia XBRL y genera el mensaje de error estándar.

La siguiente imagen muestra la salida:

todo:imagen_alternativa_texto

Valide XBRL y emita un mensaje de error personalizado

El siguiente código valida la instancia XBRL y genera un mensaje de error personalizado.

La siguiente imagen muestra la salida:

todo:imagen_alternativa_texto

Valide XBRL y genere un mensaje de error estándar