Il ne signale rien sans fondement
Chaque constat arrive avec la clause sur laquelle il repose. Si aucune clause n'est enfreinte, il le dit. Autant de temps que votre équipe ne passe pas à vérifier si une alerte était fondée.
Produit
MirrorMere est le moteur de validation XBRL qui tourne à l'intérieur du produit que vous vendez déjà. Chaque constat porte son emplacement, la clause enfreinte et ce qu'il faut changer.
Ontologie et Why Path
Un validateur qui ne renvoie que des codes d'erreur ne peut pas s'expliquer. MirrorMere relie concepts, règles, erreurs et clauses en une seule ontologie et y raisonne avec SHACL : le chemin suivi par l'inférence est la raison, et ce qui ne va pas, pourquoi et quoi changer sortent d'un seul coup. C'est ce chemin que vous voyez sous le nom de 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> .
Le vocabulaire est celui du standard W3C ; la dernière ligne pointe vers l'identifiant d'erreur publié par XBRL International. Aucun nom ici n'est de notre invention.
Entrée
Le fichier validé.
Règle
Les contrôles XBRL 2.1 §3–§5 qui se sont exécutés.
Clause
Deux violations, toutes deux rattachées à XBRL 2.1 §5.1.3.4.
Ce qu'il faut corriger
Le rôle http://xbrl.org/role/conformance ne peut pas être employé sur link:label.
C'est cette dernière ligne qui compte : elle nomme la correction, pas seulement l'échec.
Des résultats sur lesquels compter
Un résultat de validation finit par servir de fondement à un audit ou à un dépôt. Deux choses comptent donc : que la réponse ne vacille pas, et que « conforme » veuille bien dire conforme. Rien ici ne devine ni ne répond par probabilité : soumettez cent fois le même document, vous aurez cent fois la même réponse.
Chaque constat arrive avec la clause sur laquelle il repose. Si aucune clause n'est enfreinte, il le dit. Autant de temps que votre équipe ne passe pas à vérifier si une alerte était fondée.
Un contrôle qu'il n'a pas pu exécuter est signalé comme non exécuté et compté à part des réussites. Rien ne passe en silence : un résultat propre peut être pris au pied de la lettre.
Les suites de tests standards tournent à chaque build, et une modification qui en casse une seule ne sort jamais. Passer à une nouvelle version ne renverse pas ce que vous aviez conclu le mois dernier.
Relancez-le. Même réponse.
Cœur de validation
Chaque spécification est un module distinct. Prenez le moteur entier, ou seulement ceux que vous traitez réellement.
| Spécification | Ce qu'il vérifie |
|---|---|
| XBRL 2.1 Core | Si les montants, périodes, unités et définitions de concepts tiennent ensemble |
| XBRL Dimensions 1.0 | Si les ventilations par segment ou par zone sont des combinaisons autorisées |
| XBRL Formula 1.0 | Si les règles de calcul et de contrôle propres à l'entreprise ou au régulateur sont respectées |
| XBRL Table Linkbase 1.0 | Si le rapport sort dans la présentation tabulaire imposée par le régulateur |
| Inline XBRL 1.1 | Si ce que voit un lecteur et ce que lit une machine disent la même chose |
| Open Information Model 1.0 | Si le même contenu garde son sens en XML, JSON et CSV |
| Extensible Enumerations 1.0 / 2.0 | Si un champ censé être choisi dans une liste fermée contient bien une valeur de cette liste |
| Report Packages 1.0 | Si le paquet de soumission est constitué comme l'exigent les règles |
| Taxonomy Packages 1.0 | Si un paquet de taxonomie est correctement constitué et se résout sans accès Internet |
| Units Registry 1.0 | Si les unités (devise, actions, pourcentages) suivent le registre standard |
| Link Role Registry 1.0 | Si les rôles employés sont bien ceux publiés au registre standard |
| Transformation Rules Registry v3 / v4 / v5 | Si « 1 234 » ou « mars 2025 » à l'écran se convertit en la valeur prescrite |
Calculation 1.1 est fourni avec le cœur. Quel que soit l'ensemble retenu, les constats reviennent tous sous la même forme.
Java pur et performance
Pur Java : aucun code natif, rien de plus à installer. Et assez rapide pour faire tourner toute la suite dans votre build. Pas une fois par version : à chaque modification.
Les temps varient selon la machine ; ce qui compte est l'ordre de grandeur, pas le chiffre exact. Les tests sont publiés : mesurez-le sur votre propre matériel.
Là où une JVM tourne, ceci tourne. Rien d'autre à installer, aucune bibliothèque native dans le paquet.
Pour évaluation
Le moyen le plus rapide de juger un moteur est de le lancer sur des documents dont vous connaissez déjà la réponse.