ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

XML PARSING IN JAVA
Siti Web con XML e Java
Uno sguardo al passato
Un Open Standard: XML
Caratteristiche dell'XML
Applicazioni dell'XML
Il Parser
Da XML a HTML
Conclusioni
Bibliografia
L'Autore

<<< Caratteristiche dell'XML >>>

L'XML in apparenza assomiglia all'HTML, in realtà ne differisce in maniera sostanziale. Questo è importante: infatti un normale file HTML non è, come forse ci si potrebbe aspettare, un file XML valido: conseguenza, l'XML non è HTML con la libertà di usare i tag che si vogliono. I tag non devono essere necessariamente definiti con un DTD esterno: ovvero si può scrivere un file XML, senza la necessità di specificare il DTD. Se si vuole usarlo, il DTD viene espresso in XML stesso e può essere incorporato direttamente nel documento: l'XML prevede dichiarazioni.
Un file XML può quindi essere autocontenuto: l'applicazione che lo ha generato saprà come trattare in maniera più precisa i tag. Le altre applicazioni, anche se non capiranno tutti i tag, saranno in grado di comprenderne almeno il linea di massima la struttura. Questa libertà però ha alcune conseguenze, che rende XML più rigido dell'HTML. Per cominciare, tutti i tag devono essere accoppiati: <ARTICOLO>…</ARTICOLO> e così via. In HTML esistono dei tag che non sono accoppiati. Per esempio <IMG SRC="mia.gif">. In XML si deve scrivere <IMG SRC="mia.gif"></IMG> o meglio usando la forma abbreviata <IMG SRC="mia.gif"/>. Per indicare che un tag è isolato, ovvero non è accoppiato, lo si termina con />: questo indica appunto che il tag comincia e finisce lì. In generale questo è necessario: in XML non si hanno informazioni sui tag (che possono essere quelli che si vogliono) per cui non è possibile stabilire se un tag è singolo o abbia, magari molto più avanti, una chiusura. Un altro aspetto da tenere in considerazione è la sintassi degli attributi. <TABLE BORDER ALIGN=CENTER>, regolarissima in HTML, è sbagliata in XML: occorre che ogni attributo abbia un valore, e che l'attributo sia specificato tra virgolette, quindi <TABLE BORDER="2" ALIGN="CENTER">. Infine le entità: l'HTML conosce un certo numero di entità: >; <; &amp; &copy; eccetera eccetera. L'XML non le conosce: conosce solo quelle numeriche (&#24; eccetera) a meno di non dichiararle esplicitamente. Queste differenze rendono ostico utilizzare direttamente documenti HTML già esistenti per manipolarli con un parser XML. Comunque non è complicato XML-izzare documenti HTML (almeno in casi semplici): in ditta utilizziamo degli script in Perl, quick-and-dirty, che però svolgono egregiamente e rapidamente il compito di "normalizzare" l'HTML. Attendo un convertitore generale, cosa meno semplice di quello che potrebbe sembrare: le "schifezze" (perdonatemi il termine ma è proprio così) che vengono prodotte dai vari generatori e filtri di esportazione HTML sono terribili. La mancanza di uno standard ha costretto ad adattarsi alle idiosincrasie dei vari browser, e la tolleranda agli errori dei browser ha fatto lasciare molti bug (tanto si vede lo stesso). Così ci si ritrova in documenti Word salvati come HTML orrori come paragrafi aperti e non chiusi dentro celle di tabella o sequenze come <I><B>bla</I></B> (notare che l'italico è chiuso prima del bold), che scombussolano ogni parser di XML che si aspetta qualcosa di ordinato e regolare. Cosa che in generale non è il caso di aspettarsi dai file di strana origine che pullulano nella rete e nei nostri hard disk.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com