La cosa non potrebbe essere più facile…
Abbiamo delle regole che un file XML deve rispettare e dobbiamo verificare che le rispetti! Certo, è facile! Peccato che per farlo in “automatico”, cioè con un programmino (ino, ino) che lo faccia per noi, ho perso 3 ore! Gira e rigira su internet, ma niente! Una valanga di software perfettamente in grado di fare di tutto: creazione, editing, modifica, validazione, auto creazione e chi più ne ha più ne metta. Eppure un programmino (ino, ino) che, preso un XSD come insieme di regole da rispettare, verifichi che un dato XML le rispetti, non l’ho trovato! Incredibile!
In giro per la rete ci sono software da 2 a 20MB (a pagamento e non) che ti fanno pure il caffè, ma io non lo bevo il caffè! Non voglio creare XSD, XML, XSLT e averne pure delle spettacolari rappresentazioni grafiche! Voglio uno stupido programma che faccia una cosa stupida: presi 2 file in input (XSD e XML), mi dia un output (si o no!). E’ tanto difficile? Si, sembra proprio che lo sia! Ho trovato anche tanti articoli nei quali altri “disperati” come me sono giunti alla mia stessa conclusione, ossia scriverselo da soli. Già, peccato che però poi non l’abbiano condiviso!!!
Così ho usato qualche minuto del mio tempo, me lo sono fatto da solo e lo condivido qui con tutto il web. L’ho scritto pure in java in modo che sia portabile. Ci basta la JVM e amen. Oddio, in 60 minuti non è che abbia potuto creare un programma eccezionale: manca di molti controlli, l’interfaccia grafica è… spartana, ma fa quello che deve fare!
Ve lo propongo.

Anche questo piccolo programmino è rilasciato secondo la licenza che governa questo sito: creative commons 3.0 – not for commercial use!, ossia potete usarlo, distribuirlo, modificarlo, ma non potete venderlo o usarlo per fini commerciali (anche perché chi lo compra?
). Tutto qua.
Da questo link potete scaricare il .zip (appena 10KB!!!). Decomprimendo il .zip otterremo un file denominato XMLValidator.jar.
Come si usa il programma?
Non c’è bisogno di alcuna installazione, ma c’è bisogno di java ![]()
Per verificare di avere java installato sulla nostra macchina, apriamo il prompt di msdos (o il terminale di linux) e scriviamo “java -version” (senza i doppi apici). Se viene fuori la versione di java dobbiamo assicurarci che sia uguale o superiore alla 1.6. Se invece il comando non viene riconosciuto dobbiamo scaricare e installare java. Una volta avuta la certezza di possedere java sulla nostra macchina, possiamo lanciare l’applicazione in uno dei seguenti modi. Se abbiamo windows dovrebbe bastare cliccare 2 volte sul XMLValidator.jar (oppure apriamo una finestra del prompt di msdos, andiamo nella cartella del jar e digitiamo “java -jar XMLValidator.jar” senza doppi apici). Se invece abbiamo linux clicchiamo col pulsante dx del mouse su XMLValidator.jar e scegliamo “Apri con Sun java 6 runtime” (o qualcosa del genere). Anche su linux è comunque possibile lanciare il programma da terminale con lo stesso usato per windows. Su Solaris… non ricordo, dovrebbe bastare un doppio click. Apple Computer fornisce la propria versione di Java. Utilizziamo la funzione “Aggiornamento Software” (disponibile nel menu Apple) per verificare che la versione di Java in uso sul Mac sia quella più aggiornata.
Validate gente, validate!
NEWS
21.02.2012
Rilasciata la versione 2.0.
Novità: usato jaxp con sax; possibilità di validare file presenti direttamente online; comunicazione di riga e colonna in cui vengono riscontrati gli errori.
Sembra non esserci nessun articolo correlato a questo.




Ho provato ma credo che abbia problemi con file grossi.
Ho provato a validare un file xml con circa 100.000 righe, del peso di 90 MB ma dopo un po’ il programma sembra non fare più nulla, e guardando i processi, non vedo attività di CPU
Ciao Paolo,
può tranquillamente essere vero quello che dici. Non ho mai provato questo piccolo programma su file così grossi… E’ nato molto tempo fa e in mezz’ora di tempo! Non aveva grandi pretese
Comunque sei capitato nel periodo “giusto” in quanto, proprio la settimana prossima, ho in programma di scriverne una nuova versione con diverse novità (tra cui la gestione di file online, tramite http)…
In quell’occasione eseguirò certamente un test con file locali molto grossi e magari gestire eventuali overflow con un qualche messaggio di avviso…
ok grazie, se li trovi e anche no
Ciao, ti ringrazio per il tool, se mi rilasci i sorgenti vorrei fare alcune modifiche, che ovviamente ti rimando.
Danilo.
Ciao Danilo,
ero convinto di aver messo i sorgenti nel .zip. Mi sono accorto che non è così! Purtroppo ho fatto ‘sto coso un bel po’ di tempo fa e il codice non ho idea di dove sia finito (anche perché era una roba ridicola da pochi KB). Comunque appena ho un po’ di tempo vado a cercare tra i progetti salvati. Se lo trovo te lo mando…
Bel lavoro.
Sarebbe utile se segnalasse anche la riga in cui ha trovato l’errore.
Dove si possono scaricare i sorgenti?
Ho risolto grazie lo stesso! Era un errore mio!!!
Senti una cosa. Validazione sulla struttura dell’XML ok! Ma su i dati presenti all’interno dei tag???? Cioè se io ripeto dei tag in maniera impropria se ne accorge, ma se dentro un tag impostato come AAAA 4 cifre dell’anno posso anche metterci la parola “ITALIA” che lui non si rende conte di nulla! [...]
Ciao LuigiJava,
ma sei sicuro? ‘sto coso che ho scritto dovrebbe rendersi conto se un dato non rispetta le regole impostate nell’xsd! Ho provato a inserire un dato non corretto e mi ha piantato a video un sacrosanto errore. Mmah…non so cosa dirti… magari ci son degli errori nell’xsd al quale si deve attenere il tuo xml…
grazie, è utilissima!!
Ciao,
grazie mille per averlo realizzato! Appena riesco linko nel mio piccolo blog!
Ciao
M.E.
java -version:
java version “1.6.0_18″
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
con il comando java -jar XML.jar funge. Volevo fare doppio click sul file jar, ma cosi’ non funge.
Mi son dovuto fare un .bat con il comando.
It’s useful, thank!
Non funge…cannot find the main class!!!
Ciao phantom… da quel poco che mi scrivi la jvm sembra essere installata, ma potrebbe non essere sufficientemente aggiornata o essere quella della Microsoft.
Segui questi passi:
Se la risposta è 1.4.x, aggiorna la jvm almeno alla versione 1.5 (meglio 1.6)
Se invece il comando non viene riconosciuto, ma sei sicuro di aver installato la jvm, allora è un problema di variabili d’ambiente che non rendono visibile il comando java. In questo caso le cose si complicano perché la procedura per aggiungere o modificare una variabile d’ambiente dipendono dal sistema operativo
L’applicazione è stata testata da me su
- windows 7 home
- windows vista home premium
- windows xp (pro) SP2
- windows xp (pro) SP3
- linux ubuntu 9.10
tutti dotati di SUN java 1.6.
Non mi è stato mai segnalato il problema da te indicato che quindi non dovrebbe essere un problema dell’applicazione.
Tuttavia tale problema è conosciuto in ambito java e tipicamente dipende dai motivi che ti ho indicato.
Fammi sapere…
Grande!
Grande.
Mi hai risolto un bel problema con i controlli xs:keyref.