Meno domande tornano a voi
Gli utenti smettono di chiedere che cosa significhi un codice di errore: la risposta è già nel risultato.
Prodotto
MirrorMere non è una schermata: è il motore di validazione XBRL che gira dietro. È un Validating Processor XBRL certificato e va dritto dentro il prodotto che già vendete.
Struttura
La maggior parte dei validatori si ferma al What. Dicono che qualcosa non va e lasciano il perché, e il che fare, a chi riceve il messaggio. MirrorMere li produce tutti e tre insieme: possibile solo perché qui XBRL stesso è costruito come un'ontologia.
Ontologia e inferenza
Un validatore che emette solo codici d'errore non può dirvi perché. Qui i concetti, le regole, gli errori e la clausola dietro ciascuno stanno insieme in un'unica ontologia, e il verdetto è ciò che SHACL vi inferisce sopra. L'inferenza è la ragione.


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> .
Il vocabolario è quello standard W3C; l'ultima riga punta all'identificatore d'errore pubblicato da XBRL International. Nessun nome qui è inventato da noi.
Why Path
Un codice di errore dice che qualcosa non va. Why Path dice quale oggetto, quale regola e quale clausola: chi ha in mano il deposito può correggere, e voi potete mostrare il ragionamento se ve lo chiedono.
Gli utenti smettono di chiedere che cosa significhi un codice di errore: la risposta è già nel risultato.
L'oggetto e la clausola sono indicati per nome: nessuno deve andarli a cercare.
Quando un revisore o un'autorità chiede perché, la traccia è la risposta.
Input
Il file validato.
Regola
I controlli XBRL 2.1 §3–§5 che hanno girato.
Clausola
Due violazioni, entrambe legate a XBRL 2.1 §5.1.3.4.
Che cosa correggere
Il ruolo http://xbrl.org/role/conformance non può essere usato su link:label.
È l'ultima riga che conta: indica la correzione, non solo l'errore.
Risultati su cui contare
Un esito di validazione finisce per fondare una revisione o un deposito. Contano quindi due cose: che la risposta non oscilli e che «superato» voglia dire davvero superato. Qui nulla tira a indovinare né risponde per probabilità: date lo stesso documento cento volte e avrete cento volte la stessa risposta.
Ogni rilievo arriva con la clausola su cui poggia. Se nessuna clausola è violata, lo dice. È tempo che il vostro team non spende a verificare se un avviso fosse reale.
Un controllo che non è riuscito a eseguire viene riportato come non eseguito e contato a parte dai superati. Nulla passa in silenzio, quindi un esito pulito lo potete prendere alla lettera.
Le suite di test standard girano a ogni build, e una modifica che ne rompe anche una sola non esce mai. Prendere una nuova versione non ribalta ciò che avevate concluso il mese scorso.
Rieseguitelo. Stessa risposta.
Nucleo di validazione
Ogni specifica è un modulo a sé. Prendete il motore intero, oppure solo quelli che trattate davvero.
| Specifica | Che cosa controlla |
|---|---|
| XBRL 2.1 Core | Se importi, periodi, unità e definizioni dei concetti reggono insieme |
| XBRL Dimensions 1.0 | Se le ripartizioni per settore o area sono combinazioni ammesse |
| XBRL Formula 1.0 | Se le regole di calcolo e controllo poste dall'azienda o dal regolatore reggono |
| XBRL Table Linkbase 1.0 | Se il rapporto esce nel formato tabellare prescritto dal regolatore |
| Inline XBRL 1.1 | Se ciò che vede un lettore e ciò che legge una macchina dicono la stessa cosa |
| Open Information Model 1.0 | Se lo stesso contenuto mantiene il significato tra XML, JSON e CSV |
| Extensible Enumerations 1.0 / 2.0 | Se un campo che va scelto da un elenco chiuso contiene davvero un valore di quell'elenco |
| Report Packages 1.0 | Se il pacchetto di trasmissione è confezionato come prescritto |
| Taxonomy Packages 1.0 | Se un pacchetto di tassonomia è confezionato bene e si risolve senza Internet |
| Units Registry 1.0 | Se le unità come valuta, azioni e percentuali seguono il registro standard |
| Link Role Registry 1.0 | Se i ruoli usati sono quelli pubblicati nel registro standard |
| Transformation Rules Registry v3 / v4 / v5 | Se «1.234» o «marzo 2025» a schermo si converte nel valore prescritto |
Calculation 1.1 arriva con il nucleo. Qualunque insieme scegliate, i rilievi tornano tutti nella stessa forma.
Java puro e prestazioni
Puro Java: nessun codice nativo, nulla da installare in più. E abbastanza veloce da far girare l'intera suite dentro la vostra build. Non una volta per rilascio: ogni volta che cambiate qualcosa.
I tempi variano da macchina a macchina; conta l'ordine di grandezza, non il numero esatto. I test sono pubblicati: potete misurarlo sul vostro hardware.
Dove gira una JVM, gira anche questo. Nient'altro da installare, nessuna libreria nativa nel pacchetto.
Per valutazione
Il modo più rapido per giudicare un motore è metterlo su documenti di cui conoscete già la risposta.