Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Xhtml 1.1

  1. #1
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887

    Xhtml 1.1

    Ho una curiosità/dubbio da soddisfare.

    Leggendo qua e là e da alcune risposte credo di aver capito che utlizzare la codifica xhtml11 è ancora abbastanza rischioso perchè IE non è in grado di gestirlo. Meglio fermarsi alla versione 1.0 sia pure strict. Inoltre ho anche letto che per la versione 1.1 è obbligatorio il prologo xml per cui la pagina viene:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
    ..
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
    Facendo alcune prove ho constatato che FF visualizza correttamente la pagina con codice 1.1 mentre IE sballa un po' il layout. Però, togliendo il prologo xml, per FF non cambia niente, mentre IE visualizza finalmente la stessa pagina.

    Ora, il dubbio è: a che serve il prologo? In quali condizioni fa la differenza?
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  2. #2
    Partiamo dalle basi: XHTML andrebbe sempre reso con content-type application/xhtml+xml .
    Renderlo come text/html è un adattamento che poco gli si addice.

    I problemi dei browser:

    IE come al solito da problemi. Il massimo che personalmente sono riuscito ad ottenere è XHTML 1.0 Strict reso come application/xhtml+xml visibile su tutti i browser. Per IE ovviamente ho dovuto inserire nella pagina un piccolo hack, e cioè un link a un file xsl che fa semplicemente il <xsl:copy-of select="." /> in modo che il documento venga visualizzato come HTML invece che visualizzato l'albero XML.

    La stessa cosa teoricamente funziona anche con la DTD XHTML 1.1 però sorge un nuovo problema. Nella DTD 1.1 sono specificate due entity nulle (non utilizzate) che gli altri browser ignorano, mentre IE si blocca clamorosamente dicendo che non trova un valore valido per queste entity.

    Puoi fare delle prove e vedere. Comunque il risultato Strict 1.0 con application/xhtml+xml è comunque ottimo, in quanto si ottiene la rigidità voluta dal browser, che visualizzerà errori XML in caso di mancata well-formedness del documento e quant'altro (cosa che non accade con text/html).

    Ciao

  3. #3
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Originariamente inviato da Sgro
    ...
    Per IE ovviamente ho dovuto inserire nella pagina un piccolo hack, e cioè un link a un file xsl che fa semplicemente il <xsl:copy-of select="." /> in modo che il documento venga visualizzato come HTML invece che visualizzato l'albero XML.
    ...
    Questa non l'ho capita. Io utilizzo normalmente pagine xhtml 1.0 strict e funziona benissimo in IE. Ovviamente ho tolto il prologo XML.
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  4. #4
    Se togli il prologo <?xml?> allora non sono pagine XHTML. Quindi anche settare il content-type su application/xhtml+xml non ha alcun senso.

    Io ti parlo di pagine XHTML formattate correttamente in XML. Per IE ci vuole quell'hack altrimenti vedi l'albero dell'xml. E' anche documentato sul sito del w3c qui:

    http://www.w3.org/MarkUp/2004/xhtml-faq#browsers

    Ciao

  5. #5
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Per IE ci vuole quell'hack altrimenti vedi l'albero dell'xml.
    Bho! mi fido, ma non sono riuscito a ricreare il problema.

    Comunque il dubbio mi rimane. FF con o senza prologo non fa nessuna differenza.
    Quindi come e dove interviene questo prologo?
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  6. #6
    Non sei riuscito a ricreare il problema perchè il tag <meta> per il content-type non è sufficiente, devi settare il server web in modo che restituisca le pagine con una data estensione in quel formato. Io ad esempio, lavorando in asp.net, nel page_load metto:

    codice:
    Response.ContentType = "application/xhtml+xml";
    In questo modo viene fornita la pagina col content-type voluto.

    Il tuo dubbio su firefox invece è semplice da chiarire. Senza prologo XML la pagina non è formattata come xml. Se proverai a validarla sul validator del W3C (con content-type che abbiamo detto) ti verrà dato un errore. E comunque non avrai i vantaggi di avere la pagina formattata in xml.

    Prova a chiudere male un tag senza content-type e dichiarazione xml. La pagina si vedrà lo stesso.

    Se fai la stessa cosa con dichiarazione xml e content-type, vedrai, al posto della pagina, un bell'errore XML che segnala la mancata chiusura del tag.

  7. #7
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    OK ora è più chiaro.

    Grazie
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Continuo questo discorso e volevo chiedere se questa intestazione sia corretta per una pagina xhtml

    Saranno 5 righe ma ci ho messo 4 ore per farla e non sono sicuro di aver compreso ancora tutto.

    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="copy.xsl"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />
    il file copy.xsl
    codice:
    <stylesheet version="1.0"
         xmlns="http://www.w3.org/1999/XSL/Transform">
        <template match="/">
            <copy-of select="."/>
        </template>
    </stylesheet>
    Non sono sicuro di aver capito a cosa server la trasformazione xsl inoltre non ho ancora modo di testare
    la pagina in explorer visto che sto lavorando in locale sotto linux.


    Ciao
    Andrea

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    up

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    110
    La trasformazione xsl è un merge tra dati xml e struttura xsl, fatta dal motore xml. Un pò quello che avviene con un linguaggio da server web ma fatta lato client (ovviamente è possibile anche lato server).

    Comunque, tornando al discorso, firefox ha un baco per quanto riguarda la gestione del charset in documenti xml, non permette di modificarlo dal menù visualizza e se non metti il prologo, prende UTF-8 e tanti saluti alla nostra decodifica. Il prologo da usare è questo:
    <?xml version="1.0" encoding="ISO-8859-1"?>

    IE7 non l'ho ancora testato. IE6 col prologo cambia il layout, nel mio caso roba di poco. La dtd 1.1 la supporta se il file è una pagina statica con estensione .xhtml (stranissimo)

    Opera è un browser che ultimamente sto rivalutando, è quasi perfetto. Peccato che non ci siano tools di sviluppo del calibro di firebug
    Ciao
    Marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.