Menos perguntas voltam para vocês
Os utilizadores deixam de perguntar o que significa um código de erro: a resposta já está no resultado.
Produto
O MirrorMere não é um ecrã: é o motor de validação XBRL que corre por trás. É um Validating Processor XBRL certificado e entra diretamente no produto que já vendem.
Estrutura
A maioria dos validadores para no What. Dizem que algo está errado e deixam o porquê, e o que fazer agora, para quem recebe a mensagem. O MirrorMere produz os três em conjunto — só possível porque aqui o próprio XBRL é construído como uma ontologia.
Ontologia e inferência
Um validador que só emite códigos de erro não consegue dizer porquê. Aqui os conceitos, as regras, os erros e a cláusula por trás de cada um estão juntos numa só ontologia, e o veredicto é o que o SHACL infere sobre ela. A inferência é a razão.


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> .
O vocabulário é o padrão do W3C; a última linha aponta para o identificador de erro publicado pela XBRL International. Nenhum nome aqui é invenção nossa.
Why Path
Um código de erro diz que algo está errado. O Why Path diz qual objeto, qual regra e qual cláusula: quem tem a entrega em mãos pode corrigir, e vocês podem mostrar o raciocínio se lho pedirem.
Os utilizadores deixam de perguntar o que significa um código de erro: a resposta já está no resultado.
O objeto e a cláusula aparecem nomeados: ninguém tem de os ir procurar.
Quando um auditor ou um regulador pergunta porquê, o rasto é a resposta.
Entrada
O ficheiro validado.
Regra
As verificações XBRL 2.1 §3–§5 que correram.
Cláusula
Duas violações, ambas ligadas a XBRL 2.1 §5.1.3.4.
O que corrigir
O papel http://xbrl.org/role/conformance não pode ser usado em link:label.
É a última linha que conta: indica a correção, não apenas a falha.
Resultados em que podem confiar
Um resultado de validação acaba por fundamentar uma auditoria ou uma entrega. Contam, portanto, duas coisas: que a resposta não oscile e que «passou» queira mesmo dizer passou. Aqui nada adivinha nem responde por probabilidade: submetam cem vezes o mesmo documento e terão cem vezes a mesma resposta.
Cada achado chega com a cláusula em que assenta. Se nenhuma cláusula for violada, di-lo. É tempo que a vossa equipa não gasta a confirmar se um aviso era real.
Uma verificação que não conseguiu executar é reportada como não executada e contada à parte das passadas. Nada passa em silêncio, por isso um resultado limpo pode ser levado à letra.
Os testes padrão correm em cada compilação, e uma alteração que quebre uma que seja nunca sai. Adotar uma nova versão não deita por terra o que concluíram no mês passado.
Voltem a executar. A mesma resposta.
Núcleo de validação
Cada especificação é um módulo à parte. Levem o motor inteiro, ou só aqueles que realmente tratam.
| Especificação | O que verifica |
|---|---|
| XBRL 2.1 Core | Se montantes, períodos, unidades e definições de conceitos encaixam entre si |
| XBRL Dimensions 1.0 | Se as desagregações por segmento ou região são combinações permitidas |
| XBRL Formula 1.0 | Se as regras de cálculo e controlo definidas pela empresa ou pelo regulador se verificam |
| XBRL Table Linkbase 1.0 | Se o relatório sai no formato de tabela exigido pelo regulador |
| Inline XBRL 1.1 | Se o que um leitor vê e o que uma máquina lê dizem o mesmo |
| Open Information Model 1.0 | Se o mesmo conteúdo mantém o sentido em XML, JSON e CSV |
| Extensible Enumerations 1.0 / 2.0 | Se um campo que deve ser escolhido de uma lista fechada contém mesmo um valor dela |
| Report Packages 1.0 | Se o pacote de submissão está montado como as regras exigem |
| Taxonomy Packages 1.0 | Se um pacote de taxonomia está bem montado e resolve sem acesso à Internet |
| Units Registry 1.0 | Se as unidades como moeda, ações e percentagens seguem o registo padrão |
| Link Role Registry 1.0 | Se os papéis usados são os publicados no registo padrão |
| Transformation Rules Registry v3 / v4 / v5 | Se «1 234» ou «março de 2025» no ecrã se converte no valor prescrito |
Calculation 1.1 vem com o núcleo. Escolham o conjunto que escolherem, os achados voltam todos na mesma forma.
Java puro e desempenho
Java puro: nada de código nativo, nada mais para instalar. E ainda assim rápido o suficiente para correr toda a bateria dentro da vossa compilação. Não uma vez por versão: sempre que mudam alguma coisa.
Os tempos variam de máquina para máquina; o que conta é a ordem de grandeza, não o número exato. Os testes são públicos: meçam-no no vosso próprio equipamento.
Onde uma JVM correr, isto corre. Nada mais para instalar, nenhuma biblioteca nativa no pacote.
Para avaliação
A forma mais rápida de avaliar um motor é apontá-lo a documentos cuja resposta já conhecem.