3.5

Sezione 3: Autori

Q 3.5: Come faccio a utilizzare i miei file HTML esistenti in XML?

Puoi renderli XHTML/HTML5, o usare un tipo di documento diverso.

 

Puoi sia convertirli per conformarsi a qualche tipo nuovo di documento (con o senza un DTD o Schema) e scrivere un foglio di stile che lo accompagni; o puoi modificarli per conformarsi a XHTML o HTML5.

Potresti dover convertire file HTML esistenti perché XML non permette la minimizzazione del tag di chiusura </p>, ecc), valori di attributi non citati, e un numero di altre scorciatoie SGML che sono comunemente usate in HTML. Molti strumenti di modifica di HTML producono più o meno (ma non del tutto) XML ben formato assicurandosi che vengano usati tag di chiusura, i valori di attributo siano citati, ecc. tuttavia, molti non lo fanno.

Potresti essere in grado di convertire HTML in XHTML usando il programma HTML Tidy di Dave Raggett (esiste anche usa versione HTML5), che può ripulire il l’orribile disastro degli pseudo-markup lasciati da editor HTML incompetenti, e anche separare alcune delle formattazioni in un foglio di stile, ma solitamente c’è ancora dell’editing da svolgere manualmente.

La maggior parte dei programmi di design di siti Web, fra cui DreamWeaver, non producono ancora nulla di simile a HTML ben formato, in gran parte a causa del fatto che sono progettati per far apparire di bell’aspetto le pagine, anziché impostare correttamente i markup. Usando un programma per design di siti web e le sue pagine HTML come unico deposito delle tue informazioni può essere un errore costoso e pericoloso. Tuttavia, se lavori in altro modo, prima impostando correttamente il design dell’informazione in XML, e poi esportandolo su un design di pagina prodotto usando un programma per il design di siti web, è probabilmente meno importante che l’HTML sia un disastro, dato che i browser sono molto clementi.

Convertire HTML valido in XHTML

Se i tuoi file HTML sono validi (piena validazione formale con un parser SGML contro uno del DTD pubblicato, non un semplice controllo di sintassi), allora prova a validarli come XHTML con un parser XML. Se crei HTML puro senza formattazione incorporata allora questo processo dovrebbe mettere in disordine solamente le combinazioni errate di elementi maiuscoli/minuscoli e nomi di attributi, e elementi VUOTI come img, più qualsiasi tipo di elemento non standard se ne fai uso. Per sistemare questi cambiamenti dovrebbe bastare un po’ di editing manuale o un breve script.

Se il tuo HTML usa in modo valido l’omissione di tag di chiusura o valori di attributi non citati, questo può essere automaticamente sistemato da un programma di normalizzazione come sgmlnorm (dal pacchettoOpenSP, parte di OpenJade), o dalla funzione sgml-normalize in un editor come Emacs/psgml (non farti spaventare dai nomi, entrambi funzionano con XML).

Se hai molti file HTML validi, puoi scrivere uno script per fare questo in un linguaggio di programmazione che capisca i markup SGML (come Omnimark,SGMLC, o uno dei linguaggi di programmazione più popolari (ad es. Perl, , Tcl, usando le loro librerie SGML/XML; o puoi anche usare le macro dell’editor se sai cosa stai facendo.

Se il tuo HTML non è valido o mal formato, prova il programma HTML Tidy di cui si è parlato prima. Se questo non risolve il problema, ho paura che avrai bisogno di qualcosa di speciale usando la procedura qui sotto, o farlo completamente a mano, o copiare e incollare da un browser.

Convertire in un nuovo tipo di documento

Se vuoi spostare i tuoi file completamente fuori da HTML in alcuni altri DTD, esistono molti DTD industriali di XML nativo, e versioni di XML modulare di DTD popolari fra cui scegliere come TEI (documenti letterari, storici, e linguistici) e DocBook (documentazione per computer) o DITA (documentazione tecnica. Ci sono vari siti per lo scambio di nuovi DTD XML, ma scriverne di nuovi è adesso raro.

Puoi anche creare i tuoi markup ovviamente: fino a che abbiano senso e crei un file ben formato, dovresti essere in grado di scrivere un foglio di stile CSS o XSLT e visualizzare il tuo documento in un browser.

Convertire HTML invalido in XHTML ben formato

Se i tuoi file non sono HTML valido (95% del Web) possono essere convertiti in file ben formati senza DTD in questo modo:

  1. sostituisci qualsiasi dichiarazione DOCTYPE con la dichiarazione XML <?xml version=”1.0″ encoding=”UTF-8″?> (o usando la codifica di carattere adatta).
  2. Se non ci fosse nessuna Dichiarazione DOCTYPE, anteponi semplicemente alla Dichiarazione XML. In ogni caso, la Dichiarazione XML, se utilizzata deveessere la prima riga del documento.
  3. Cambia qualsiasi elemento EMPTY (ad es. ogni BASE, ISINDEX, LINK, META, NEXTIDe RANGE nell’ header, e ogni AREA, ATOPARA, AUDIOSCOPE, BASEFONT, BR, CHOOSE, COL, FRAME, HR, IMG, KEYGEN, LEFT, LIMITTEXT, OF, OVER, PARAM, RIGHT, SPACER, SPOT,TAB, e WBR nel corpo del documento) in modo da farli finire con />, per esempio <img src=”mypic.gif” alt=”Picture”/>;
  4. Scrivi tutti i nomi dei tipi di documento e nomi di attributi in minuscolo;
  5. Assicurati che ci siano tag di chiusura espliciti correttamente associati per tutti gli elementi non EMPTY; ad es. <para>deve avere un </para>, ecc.;
  6. Evita tutti i caratteri <e & non markup (ovvero testo letterale) come &lt; e &amp; rispettivamente (non ci dovrebbero essere caratteri < isolati sin dall’inizio!);
  7. Assicurati che tutti i valori di attributo in virgolette associate (valori con virgolette singole incorporate devono essere in doppie virgolette, e viceversa— se hai bisogno di entrambe usa il riferimento di entità di carattere  &quot;;
  8. Assicurati che tutti gli script URI che hanno &come separatore di campo siano cambiati per usare &amp; o un punto e virgola.
  9. Assicurati che tutti gli script (ad es. Javascript) che hanno caratteri <o & (simboli matematici minore, e Boolean E condizionali) siano sia dati come Sezioni Marcate CDATA, o (se l’elaboratore del browser gli accetta) cambiati per usare &lt;e &amp; o un punto e virgola rispettivamente.

Sappi che alcuni browser HTML obsoleti potrebbero non accettare elementi EMPTY in stile XML con lo slash, quindi i cambiamenti qui sopra potrebbero non essere retro compatibili. Un alternativa è quella di aggiungere un tag di chiusura fittizio a tutti gli elementi EMPTY, quindi <img src=”foo.gif”/> diventa <img src=”foo.gif”></img>. Questo è XML valido ma devi essere in grado di garantire che nessuno inserisca contenuto extra all’interno di tali elementi. Anche aggiungere uno spazio prima dello slash di chiusura negli elementi EMPTY(ad es. <img src=”foo.gif” />) potrebbe ingannare il browser facendogli accettare XHTML come HTML.

Se devi rispondere Si a qualsiasi delle domande nella Checklist qui sotto, puoi salvare molta fatica sistemando prima questi problemi prima di fare qualsiasi altra cosa. Probabilmente sarai molto vicino ad avere file ben formati.

I markup che sono sintatticamente corretti ma semanticamente insignificanti o vuoti devono essere modificati prima della conversione. Fra gli esempi troviamo modi di spaziatura inefficienti come la ripetizione di paragrafi vuoti o interruzioni di righe, tabelle vuote, spaziatura tramite GIF invisibili ecc. XML usa fogli di stile, e CSS3 significa che non avrai bisogno di tutto questo.

Sfortunatamente c’è molto lavoro da fare se i tuoi file non sono validi: questo è il motivo per cui molti Webmaster ora insistono che solo file ben formati o validi vengano usati (e perché dovresti insegnare ai tuoi designer a fare lo stesso), in modo da evitare eventuali costi di manutenzione manuale non necessaria e di conversione.

Checklist per HTML non valido

Se il tuoi file HTML ricadono in questa categoria (l’HTML creato dalla maggior parte di editor WYSIWYG sono solitamente non validi) allora quasi sicuramente dovranno essere convertiti manualmente, anche se le deformità sono regolari e attentamente costruite, i file potrebbero essere quasi ben formati, e potresti scrivere un programma o uno script per fare ciò che è stato descritto sopra. Le stranezze che dovresti cercare includono:

  • I file contengono errori di sintassi del markup? Per esempio, mancano parentesi angolate, barre inverse anziché normali o tag di chiusura, o elementi nidificati in maniera sbagliata? <B>parte <I>dentro un elemento</B> but fa finisce fuori</I> da esso)?
  • Ci sono elementi con tag di chiusura mancanti che non possono essere dedotti da (ad es.) sgmlnorm?
  • Ci sono degli URI (ad es. href o src) che usano barre inverse in stile Microsoft Windows anziché la barra normale
  • I file contengono markup che vanno in conflitto con i DTD HTML, come i titoli o le liste all’interno di paragrafi, oggetti di lista fuori dalla zona di lista, elementi header come baseche precedono il primo html, ecc? (un altro trucchetto superficiale da editor)
  • I file usano elementi immaginari che non esistono in nessun DTD HTML conosciuto? (molti di questi vengono usati in sistemi di markup proprietari mascherati come HTML). Anche se è facile trasformare un file ben formato senza DTD (dato che non devi definire elementi in precedenza) la maggior parte delle estensioni proprietarie o browser specifiche non sono mai state definite formalmente quindi è spesso impossibile capire in modo significativo dove i tipi di elementi possano essere utilizzati.
  • Ci sono caratteri non validi (non XML) nei tuoi file? Controlla specialmente per caratteri Apple Mac Roman-8 lasciati da designer noncuranti; qualsiasi carattere Windows illegale (i 32 caratteri ai codici decimali inclusivi 128-159) inseriti da editori Microsoft; e qualsiasi  carattere di controlloASCII 0–31 (eccetto quelli permessi come TAB, CR, e LF). Questi devono essere convertiti nel carattere corretto in UTF-8 (o qualsiasi cosa tu stia usando)
  • I tuoi file contengono commenti non validi (stile Mosaic/Netscape? I commenti dovrebbero avere

<!– questo aspetto –>

Con due trattini da entrambe le parti e nessun altro trattino (specialmente non multiplo) nel mezzo.

Leave a Comment

Your email address will not be published. Required fields are marked *