100 % locale — i tuoi dati non lasciano mai il tuo browser

Validatore XML — trova dove si rompe

Controlla che un XML sia ben formato: una radice, tag chiusi e annidati, nomi validi. La prima rottura viene indicata nel punto in cui avviene.

Istantaneo Privato Zero cookie

Input XML

Output Result

Che cosa verifica questo strumento

La buona formazione, termine della specifica per «sintatticamente XML»:

  • esattamente un elemento radice;
  • ogni tag chiuso, e chiuso nell’ordine in cui è stato aperto;
  • valori di attributo tra virgolette, e nessun attributo ripetuto su un elemento;
  • nomi di elementi e attributi che inizino lecitamente e contengano solo caratteri leciti;
  • entità e referenze numeriche scritte correttamente;
  • nessun carattere vietato dall’XML.

Se il documento passa, ottieni il suo elemento radice e la sua dimensione. Altrimenti ottieni la protesta del parser, con la riga e la colonna in cui si è arreso.

Ben formato non è valido

Sono due parole diverse nella specifica XML, e confonderle costa tempo vero.

verifica
Ben formatola sintassi — ciò che fa questo strumento
Validola sintassi e uno schema: DTD, XSD, RELAX NG

Un documento può essere impeccabilmente ben formato e sbagliato in tutto ciò che conta: un elemento richiesto assente, un elemento fuori posto, <prezzo>banana</prezzo> dove era dichiarato un decimale. Nulla in questo rapporto dice il contrario, e nessun verificatore di buona formazione può dirlo.

Se ti serve la validazione con schema, ti serve lo schema — e uno strumento che lo legga.

Il DOCTYPE non viene seguito

Un riferimento <!DOCTYPE> è un URL. Risolverlo significherebbe una richiesta in uscita, che direbbe che questo documento esiste e chi lo consulta. Qui nulla lascia il tuo browser: il DOCTYPE è controllato come sintassi e resta dov’è.

È anche ciò che rende privi di oggetto gli attacchi tramite entità esterne: un’entità che punta da qualche parte non viene mai risolta.

Un’istruzione di elaborazione davanti non è un problema

<?xml-stylesheet href="style.xsl"?> prima dell’elemento radice è XML ordinario e valido, e il rapporto nomina il vero elemento radice anziché l’istruzione.

L’unica regola d’ordine imposta è quella della specifica: la dichiarazione XML, se c’è, viene per prima. Altrove non è affatto una dichiarazione ma un’istruzione di elaborazione chiamata xml, e quel nome è riservato.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Verifica il mio documento rispetto al suo XSD o alla sua DTD?
No, e la distinzione conta. **Ben formato** vuol dire che la sintassi regge: un elemento radice, ogni tag chiuso nell’ordine giusto, valori di attributo tra virgolette, nomi e caratteri leciti. **Valido** vuol dire che obbedisce anche a uno schema: gli elementi richiesti presenti, nell’ordine dichiarato, con i tipi dichiarati. Un documento può essere perfettamente ben formato e violare il suo schema a ogni riga.
Perché il DOCTYPE non viene seguito?
Perché seguirlo significa andare a prendere ciò che indica. Un riferimento a una DTD è un URL, e risolverlo invierebbe una richiesta, rivelando che il documento esiste e chi lo guarda. Qui tutto avviene nel tuo browser e nulla ne esce: il DOCTYPE è controllato come sintassi e per il resto lasciato stare.
Dice che la mia dichiarazione deve venire per prima. Perché?
Perché la dichiarazione XML è una dichiarazione solo in prima posizione; altrove è un’istruzione di elaborazione chiamata `xml`, nome che la specifica riserva. Un `<?xml-stylesheet?>` messo prima ne è la causa abituale. Riporta la dichiarazione in testa e il documento passa.

Convertitori correlati