No señala nada sin fundamento
Cada hallazgo llega con la cláusula en la que se apoya. Si no se incumple ninguna, lo dice. Es tiempo que su equipo no gasta comprobando si un aviso era real.
Producto
MirrorMere es el motor de validación XBRL que corre dentro del producto que ya vende. Cada hallazgo lleva dónde está, qué cláusula incumple y qué cambiar.
Ontología y Why Path
Un validador que solo devuelve códigos de error no puede explicarse. MirrorMere enlaza conceptos, reglas, errores y cláusulas en una sola ontología y razona sobre ella con SHACL: el camino que siguió la inferencia es la razón, y qué está mal, por qué y qué cambiar salen de una vez. Y ese camino es lo que ve como Why Path.


ixbrlo:illegalMultipleUseOfId
a owl:Class ;
rdfs:subClassOf ixbrlo:ValidationError ;
rdfs:comment "id attribute reused across iXBRL elements that require uniqueness."@en ;
skos:note "Inline XBRL 1.1, Section 3 — ixe:illegalMultipleUseOfId"@en ;
skos:note "Inline XBRL 1.1, Section 4 — ixe:illegalMultipleUseOfId"@en ;
owl:equivalentClass <http://www.xbrl.org/2013/inlineXBRL/errors#illegalMultipleUseOfId> .
El vocabulario es el estándar del W3C; la última línea apunta al identificador de error que publica XBRL International. Ningún nombre de aquí es invención nuestra.
Entrada
El fichero validado.
Regla
Las comprobaciones XBRL 2.1 §3–§5 que se ejecutaron.
Cláusula
Dos infracciones, ambas ligadas a XBRL 2.1 §5.1.3.4.
Qué corregir
El rol http://xbrl.org/role/conformance no puede usarse en link:label.
Esa última línea es lo que importa: señala la corrección, no solo el fallo.
Resultados en los que confiar
Un resultado de validación acaba siendo el fundamento de una auditoría o de una presentación. Importan, pues, dos cosas: que la respuesta no oscile y que «superado» signifique realmente superado. Aquí nada adivina ni responde por probabilidad: meta cien veces el mismo documento y obtendrá cien veces la misma respuesta.
Cada hallazgo llega con la cláusula en la que se apoya. Si no se incumple ninguna, lo dice. Es tiempo que su equipo no gasta comprobando si un aviso era real.
Una comprobación que no pudo ejecutar se declara como no ejecutada y se cuenta aparte de las superadas. Nada pasa en silencio, así que un resultado limpio puede tomarse al pie de la letra.
Las pruebas estándar se ejecutan en cada compilación, y un cambio que rompa aunque sea una jamás sale. Adoptar una versión nueva no da la vuelta a lo que concluyó el mes pasado.
Vuelva a ejecutarlo. La misma respuesta.
Núcleo de validación
Cada especificación es un módulo aparte. Llévese el motor entero, o solo los que realmente maneja.
| Especificación | Qué comprueba |
|---|---|
| XBRL 2.1 Core | Si importes, periodos, unidades y definiciones de conceptos encajan entre sí |
| XBRL Dimensions 1.0 | Si los desgloses por segmento o zona son combinaciones permitidas |
| XBRL Formula 1.0 | Si se cumplen las reglas de cálculo y control fijadas por la empresa o el regulador |
| XBRL Table Linkbase 1.0 | Si el informe sale con el formato de tabla que exige el regulador |
| Inline XBRL 1.1 | Si lo que ve un lector y lo que lee una máquina dicen lo mismo |
| Open Information Model 1.0 | Si el mismo contenido conserva su sentido en XML, JSON y CSV |
| Extensible Enumerations 1.0 / 2.0 | Si un campo que debe elegirse de una lista cerrada contiene realmente un valor de ella |
| Report Packages 1.0 | Si el paquete de envío está armado como exigen las reglas |
| Taxonomy Packages 1.0 | Si un paquete de taxonomía está bien armado y se resuelve sin acceso a Internet |
| Units Registry 1.0 | Si las unidades como moneda, acciones y porcentajes siguen el registro estándar |
| Link Role Registry 1.0 | Si los roles empleados son los publicados en el registro estándar |
| Transformation Rules Registry v3 / v4 / v5 | Si «1.234» o «marzo de 2025» en pantalla se convierte en el valor prescrito |
Calculation 1.1 viene con el núcleo. Elija el conjunto que elija, los hallazgos vuelven todos con la misma forma.
Java puro y rendimiento
Java puro: nada de código nativo, nada más que instalar. Y aun así lo bastante rápido para ejecutar toda la batería dentro de su compilación. No una vez por versión: cada vez que cambia algo.
Los tiempos varían según la máquina; lo que importa es el orden de magnitud, no la cifra exacta. Las pruebas son públicas: mídalo en su propio equipo.
Donde corra una JVM, corre esto. Nada más que instalar, ninguna biblioteca nativa en el paquete.
Para evaluación
La forma más rápida de juzgar un motor es apuntarlo a documentos cuya respuesta ya conocen.