Qué comprueba esta herramienta
La buena formación, término de la propia especificación para «sintácticamente XML»:
- exactamente un elemento raíz;
- cada etiqueta cerrada, y cerrada en el orden en que se abrió;
- valores de atributo entre comillas, y ningún atributo repetido en un elemento;
- nombres de elementos y atributos que empiecen legalmente y contengan solo caracteres legales;
- entidades y referencias numéricas correctamente escritas;
- ningún carácter prohibido por XML.
Cuando el documento pasa, obtienes su elemento raíz y su tamaño. Cuando no, obtienes la queja del analizador, con la línea y la columna donde se rindió.
Bien formado no es válido
Son dos palabras distintas en la especificación XML, y confundirlas cuesta tiempo real.
| comprueba | |
|---|---|
| Bien formado | la sintaxis — lo que hace esta herramienta |
| Válido | la sintaxis y un esquema: DTD, XSD, RELAX NG |
Un documento puede estar impecablemente bien formado y equivocado en todo lo que importa: un elemento requerido ausente, un elemento fuera de lugar, <precio>plátano</precio> donde se declaró un decimal. Nada en este informe dice lo contrario, y ningún comprobador de buena formación puede decirlo.
Si lo que necesitas es validación por esquema, necesitas el esquema — y una herramienta que lo lea.
El DOCTYPE no se sigue
Una referencia <!DOCTYPE> es una URL. Resolverla implicaría una petición saliente, que diría que este documento existe y quién lo consulta. Aquí nada sale de tu navegador: el DOCTYPE se comprueba como sintaxis y se deja donde está.
Eso es también lo que deja sin objeto los ataques por entidad externa: una entidad que apunta a algún sitio nunca se resuelve.
Una instrucción de procesamiento delante no es problema
<?xml-stylesheet href="style.xsl"?> antes del elemento raíz es XML corriente y válido, y el informe nombra el verdadero elemento raíz en lugar de la instrucción.
La única regla de orden que se impone es la de la especificación: la declaración XML, si está, va primero. En otro sitio no es una declaración sino una instrucción de procesamiento llamada xml, y ese nombre está reservado.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.