PDA

View Full Version : [XML/JAVA]Errore Parsing


morskott
22-10-2007, 19:23
Salve, avrō letto questo file XML<?xml version="1.0"?>
<LanguageConfig>
<AvailableLanguages>
<Language name="Italiano" code="IT" />
<Language name="English" code="EN" />
</AvailableLanguages>
<LanguagesObject>
<Object logicName="AnnullaButton">
<Lan code="IT">Annulla</Lan>
<Lan code="EN">Cancel</Lan>
</Object>
<Object logicName="OKButton">
<Lan code="IT">OK</Lan>
<Lan code="EN">OK</Lan>
</Object>
<Object logicName="DataAppelloLabel">
<Lan code="IT">Data Appello</Lan>
<Lan code="EN">Date of Exam</Lan>
</Object>
<Object logicName="OraAppelloLabel">
<Lan code="IT">Ora Appello</Lan>
<Lan code="EN">Hour of Exam</Lan>
</Object>
<Object logicName="SedeLabel">
<Lan code="IT">Sede</Lan>
<Lan code="EN">Building</Lan>
</Object>
<Object logicName="AulaLabel">
<Lan code="IT">Aula</Lan>
<Lan code="EN">Room</Lan>
</Object>
<Object logicName="AggiungiACorsiSeguitiLabel">
<Lan code="IT">Aggiungi un Appello ad uno dei seguenti corsi seguiti</Lan>
<Lan code="EN">Add an Exam to one of the followed courses</Lan>
</Object>
<Object logicName="AggiungiLabel">
<Lan code="IT">Aggiungi</Lan>
<Lan code="EN">Add</Lan>
</Object>
<Object logicName="NomeCorsoLabel">
<Lan code="IT">Nome Corso</Lan>
<Lan code="EN">Course Name</Lan>
</Object>
<Object logicName="DataInizioLabel">
<Lan code="IT">Data Inizio</Lan>
<Lan code="EN">Starting Date</Lan>
</Object>
<Object logicName="DataFineLabel">
<Lan code="IT">Data Fine</Lan>
<Lan code="EN">Ending Date</Lan>
</Object>
<Object logicName="CreditiLabel">
<Lan code="IT">Crediti</Lan>
<Lan code="EN">Credits</Lan>
</Object>
<Object logicName="OreInizioLabel">
<Lan code="IT">Ore Inizio</Lan>
<Lan code="EN">Starting Hour</Lan>
</Object>
<Object logicName="OreFineLabel">
<Lan code="IT">Ore Fine</Lan>
<Lan code="EN">Ending Hour</Lan>
</Object>
<Object logicName="NomeStudenteLabel">
<Lan code="IT">Nome</Lan>
<Lan code="EN">Name</Lan>
</Object>
<Object logicName="CognomeStudenteLabel">
<Lan code="IT">Cognome</Lan>
<Lan code="EN">Surname</Lan>
</Object>
<Object logicName="MatricolaLabel">
<Lan code="IT">Matricola</Lan>
<Lan code="EN">ID</Lan>
</Object>
<Object logicName="WelcomeLabel">
<Lan code="IT">Benvenuto nell applicazione Universita</Lan>
<Lan code="EN">Welcome to University application</Lan>
</Object>
<Object logicName="CreatoLabel">
<Lan code="IT">creato da Umberto Carlo de Matteis</Lan>
<Lan code="EN">created by Umberto Carlo de Matteis</Lan>
</Object>
<Object logicName="VersioneLabel">
<Lan code="IT">versione 1 0 beta</Lan>
<Lan code="EN">version 1 0 beta</Lan>
</Object>
<Object logicName="RegistrazioneLabel">
<Lan code="IT">Con una semplice registrazione potrai usufruire delle funzionalita offerte dal sistema</Lan>
<Lan code="EN">With a simple registration you can access all the functionality of the system</Lan>
</Object>
<Object logicName="RegistraLabel">
<Lan code="IT">Registra</Lan>
<Lan code="EN">Register</Lan>
</Object>
<Object logicName="CreazioneDBLabel">
<Lan code="IT">La creazione del database richiede un po di tempo aspettare per favore</Lan>
<Lan code="EN">It is required few time to create the DB please wait</Lan>
</Object>
<Object logicName="AggiungiAppelloLabel">
<Lan code="IT">Aggiungi Appello</Lan>
<Lan code="EN">Add Exam</Lan>
</Object>
<Object logicName="VisualizzaLabel">
<Lan code="IT">Visualizza</Lan>
<Lan code="EN">View</Lan>
</Object>
<Object logicName="AppelliDisponibiliLabel">
<Lan code="IT">Appelli Disponibili</Lan>
<Lan code="EN">Exams Availabe</Lan>
</Object>
<Object logicName="AppelliSuperatiLabel">
<Lan code="IT">Appelli Superati</Lan>
<Lan code="EN">Exams Passed</Lan>
</Object>
<Object logicName="AppelliPianificatiLabel">
<Lan code="IT">Appelli Pianificati</Lan>
<Lan code="EN">Exams Planned</Lan>
</Object>
<Object logicName="AppelliInDataLabel">
<Lan code="IT">Appelli in Data</Lan>
<Lan code="EN">Exams in Date</Lan>
</Object>
<Object logicName="StatisticheLabel">
<Lan code="IT">Statistiche</Lan>
<Lan code="EN">Statistics</Lan>
</Object>
<Object logicName="EsamiSuperatiLabel">
<Lan code="IT">Esami Superati</Lan>
<Lan code="EN">Exams Passed</Lan>
</Object>
<Object logicName="CreditiAcquisitiLabel">
<Lan code="IT">Crediti Acquisiti</Lan>
<Lan code="EN">Credits Gained</Lan>
</Object>
<Object logicName="MediaVoti30">
<Lan code="IT">Media Voti in Trentesimi</Lan>
<Lan code="EN">Average grade out of 30</Lan>
</Object>
<Object logicName="MediaVoti110">
<Lan code="IT">Media Voti in Centodecimi</Lan>
<Lan code="EN">Average grade out of 110</Lan>
</Object>
<Object logicName="VotoLabel">
<Lan code="IT">Voto</Lan>
<Lan code="EN">Grade</Lan>
</Object>
<Object logicName="DataVerbalizzazioneLabel">
<Lan code="IT">Data Verbalizzazione</Lan>
<Lan code="EN">Date of record</Lan>
</Object>
<Object logicName="CodiceVerbalinoLabel">
<Lan code="IT">Codice Verbalino</Lan>
<Lan code="EN">ID of record</Lan>
</Object>
<Object logicName="LunediLabel">
<Lan code="IT">Lunedi</Lan>
<Lan code="EN">Monday</Lan>
</Object>
<Object logicName="MartedėLabel">
<Lan code="IT">Martedi</Lan>
<Lan code="EN">Tuesday</Lan>
</Object>
<Object logicName="MercoledėLabel">
<Lan code="IT">Mercoledi</Lan>
<Lan code="EN">Wednesday</Lan>
</Object>
<Object logicName="GiovedėLabel">
<Lan code="IT">Giovedi</Lan>
<Lan code="EN">Thursday</Lan>
</Object>
<Object logicName="VenerdiLabel">
<Lan code="IT">Venerdi</Lan>
<Lan code="EN">Friday</Lan>
</Object>
<Object logicName="SabatoLabel">
<Lan code="IT">Sabato</Lan>
<Lan code="EN">Saturday</Lan>
</Object>
<Object logicName="DomenicaLabel">
<Lan code="IT">Domenica</Lan>
<Lan code="EN">Sunday</Lan>
</Object>
<Object logicName="PianificaCorsiLabel">
<Lan code="IT">Pianifica Corsi</Lan>
<Lan code="EN">Courses Planning</Lan>
</Object>
<Object logicName="PianificaAppelliLabel">
<Lan code="IT">Pianifica Appelli</Lan>
<Lan code="EN">Exams Planning</Lan>
</Object>
<Object logicName="CalendarioLabel">
<Lan code="IT">Calendario Corsi</Lan>
<Lan code="EN">Calendar</Lan>
</Object>
</LanguagesObject>
</LanguageConfig>almeno 1000 volte cercando un errore (che la buona JVM mi dice che č un "com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 3-byte UTF-8 sequence."), che c'č che non va???

Angus
23-10-2007, 14:04
Chi ha serializzato quel documento XML non ha rispettato la codifica in byte dell'encoding. Con alcuni parser si riesce a capire l'esatta posizione (riga, colonna) del problema.

morskott
23-10-2007, 14:15
Ho cercato tante volte un errore sui caratteri (ho tolto virgole, punti, lettere accentate), ma veramente non so iu dove ho sbagliato, non č che mi potresti dire esattamente dove?

^TiGeRShArK^
23-10-2007, 14:27
Prova a fargli leggere uno di questi file allegati.
Il primo č formattato DOS, il secondo UNICODE, il terzo UNIX.
Spero che almeno uno dei 3 te lo accetti :p

Angus
23-10-2007, 14:28
Quando hai tolto i caratteri accentati forse non hai "riscritto" i caratteri al contorno: in pratica se hai la sequenza "perchč no", non limitarti a sostituire la 'č' con la 'e', ma sovrascrivi l'intero gruppo di byte che circonda la 'č', quindi "hč " diventa "he ". Questa tecnica manuale risolve quasi sempre il problema, se l'editor utilizzato non fa le bizze.

Purtroppo non credo che un semplice copia/incolla sul forum mi permetta di ricevere il tuo stream XML cosė come ce l'hai su file system...

Nous
23-10-2007, 14:47
Prova a specificare l'encoding :

<?xml version="1.0" encoding="UTF-8"?>

^TiGeRShArK^
23-10-2007, 16:11
Prova a specificare l'encoding :

<?xml version="1.0" encoding="UTF-8"?>

ehmm..
il problema a quanto ho capito č che l'encodin nel suo file NON č UTF-8 in quanto ci sono sequenze di byte che non riescono ad essere interpretate da quel parser come UTF-8.
Per questo gli ho passato i file riconvertiti nelle 3 versioni.
Teroicamente ora non dovrebbe avere problemi a leggerne nessuno dei 3.
Perō si sa che tra la teoria e la pratica ci sta l'infinito in mezzo :D

Nous
23-10-2007, 16:14
Bene, ma dall'eccezione si vede che il parser un UTF-8 si aspetta :)

morskott
24-10-2007, 20:23
Prova a fargli leggere uno di questi file allegati.
Il primo č formattato DOS, il secondo UNICODE, il terzo UNIX.
Spero che almeno uno dei 3 te lo accetti :p

Non chiedermi perchč, ma col tuo secondo file funziona!!!!!!
Grazie!!!

Gremo
25-10-2007, 03:47
č il byte order mark(er) BOM, che non č supportato da vecchi editor.
scarica notepad++, dal menu codifica scegli "UTF-8 senza BOM" e vedrai che tutti i tuoi file si apriranno.

ciao

^TiGeRShArK^
25-10-2007, 08:08
Non chiedermi perchč, ma col tuo secondo file funziona!!!!!!
Grazie!!!
buono :p
nel caso ti dovesse ricapitare scaricati context (http://www.context.cx/), apri il file incriminato e convertilo dapprima in formato DOS e subito dopo in UNICODE e dovrebbe andare :D

Angus
25-10-2007, 09:56
buono :p
nel caso ti dovesse ricapitare scaricati context (http://www.context.cx/), apri il file incriminato e convertilo dapprima in formato DOS e subito dopo in UNICODE e dovrebbe andare :D

Il saggio lascia sempre spazio al dubbio ;)