webForumDet fria alternativet

måste man ha <?xml version="1.0" ...

7 svar · 315 visningar · startad av maqe

maqeMedlem sedan dec. 2003824 inlägg
#1

måste denna "<?xml version="1.0" encoding="UTF-8"?>" tagg finnas med i ett xhtml dokument och i så fall ska den ligga över eller under doctypen? MSIE förändrar min site beroende på vart jag har den.

tydalMedlem sedan juni 20034 013 inlägg
#2

Nej.

zcorpanMedlem sedan dec. 20042 245 inlägg
#3

En XML-deklaration är valbar i XML 1.0, men om den är med så måste den ligga allra allra först i dokumentet. Inte ens ett mellanslag får vara före den. Ligger den inte först är dokumentet inte välformat.

I XML kan man ange vilken character encoding man använder med XML-deklarationen. Men man kan också ange den med en HTTP Content-Type header. Om man inte anger någon encoding så är det UTF-8. (Om vi bortser från text/xml.)

I HTML kan man, bortsett från med en HTTP header, ange charset med ett META-element. Om du använder den, bör den ligga först i HEAD.

När du serverar XHTML som text/html tolkar webbläsaren din kod som HTML, när du serverar det som application/xhtml+xml tolkar webbläsaren det som XML. :)

GuffaMedlem sedan juni 2004533 inlägg
#4

Du ska inte ha med den, av den anledningen att IE inte klarar av att läsa den. Ifall du har med den så tolkar inte IE sidan som xhtml.

icaaqMedlem sedan okt. 20005 273 inlägg
#5

Guffa skrev:

Du ska inte ha med den, av den anledningen att IE inte klarar av att läsa den. Ifall du har med den så tolkar inte IE sidan som xhtml.

Nej. IE tolkar sidan som xhtml i quirks-mode och inte i standards-mode.

mv icaaq

zcorpanMedlem sedan dec. 20042 245 inlägg
#6

IE vet inte vad XHTML är för nåt, så om det visas "normalt" tolkar IE sidan som HTML. Ett annat scenario är att IE visar DOM-trädet.

IE har också en bugg som gör att vad som helst före DOCTYPE-deklarationen utlöser Quirks mode.

I HTML är det faktiskt ingen XML-deklaration, utan det är en meningslös processinstruktion. :)

jarvkloMedlem sedan juli 20013 378 inlägg
#7

icaaq skrev:

Nej. IE tolkar sidan som xhtml i quirks-mode och inte i standards-mode.

Förtydligar - IE hanterar i princip alltså xhtml-kod som "HTML med lite fel i" om man skickar den som text/html - oavsett om man har med <?xml?>-deklarationen eller ej...

Huruvida det blir "quirks" eller "standards" mode om man utelämnar <?xml?> är, som sagt, egentligen ett separat problem (relaterat till s.k. "doctype switching") och här hanterar t.ex. Mozillorna och MSIE valet mellan de olika moderna lite olika beroende på om <?xml?>-deklarationen är med eller ej, inledande mellanslag, utseendet på <!DOCTYPE och så vidare... Läs mer om det t.ex. här

Lyssna på zcorpan - han har örnkoll på detaljerna :)

maqeMedlem sedan dec. 2003824 inlägg
#8

tackar för svaren, verkar vara komplicerat att göra rätt :)

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)