ugrás a tartalomhoz

Bezavarhat az XML deklaráció?

Marcell · 2006. Szep. 9. (Szo), 20.58
Minden oldalamat úgy szoktam kezdeni, hogy
<?xml version="1.0" encoding="iso-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">
Ezzel párhuzamosan szeretnék IE-ben padding értéket megadni az IMG elemeknek. Ezt eddig csak úgy tudtam elérni, hogy kivettem az első XML deklarálós sort, mert ezzel együtt nem megy. plusszban még az oldal renderelés is másik módba kapcsol - ezt miért teszi?

Az általánosabb kérdésem pedig az volna, hogy kell-e egyáltalán az oldalba ilyen XML-es sor (vmikor régen mintha azt olvastam volna, hogy jó ha van), és ha igen, akkor ezzel együtt hogyan lehet paddingot használni az IE-ben IMG elemre? Nem sokat értek a fejlécekehez és jó lenne vmi pontosabb infó.
 
1

IE bug

toxin · 2006. Szep. 9. (Szo), 21.38
Explorer Windows special: the xml prolog

In Explorer 6 Windows, Microsoft implemented one extra rule: if a doctype that triggers strict mode is preceded by an xml prolog, the page shows in quirks mode. This was done to allow web developers to achieve valid pages (which require a doctype) but nonetheless stay in quirks mode.

This is the xml prolog. You should put it on the very first line of your document, before the doctype.

<?xml version="1.0" encoding="iso-8859-1"?>

Note that this behaviour has been removed from Explorer 7

http://www.quirksmode.org/css/quirksmode.html

IE7-ben már javították, szerintem nem kell, de validáld le lapodat http://validator.w3.org/ -ban , vagy nézd fx alatt Html Validator-ral bejelez-e


üdv t
2

valid

Marcell · 2006. Szep. 9. (Szo), 21.49
Mindegyik ahol ezt használtam, valid.
3

IE-ben standard módhoz nem szabad

Rici · 2006. Szep. 9. (Szo), 22.02
Az Internet Explorer 6-os verziója csak akkor kapcsol "standard kompatibilis" módba, hogyha közvetlenül a doctype-pal kezdődik a szöveg. Ha XML deklaráció van előtte, akkor ez már nem érvényes, hiába van utána doctype, marad quirks módban.

IE 7-ben akkor is figyelni fogja a doctype-ot, hogyha van előtte xml verzió deklaráció.

Amúgy weblapok esetén nem érdemes nagy jelentőséget tulajdonítani ennek az xml deklaráció dolognak, mivel használni nem használja a böngésző, az xml szabvány szerint pedig nem is kötelező megadni. Viszont arra figyelj, hogyha nem adod meg, és Byte Order Mark sincs a fájl elején, akkor egy xml feldolgozó számára a dokumentum kódolása utf-8 lesz alapértelmezésben, mert egy xml feldolgozó nem fog törődni azzal, hogy esetleg van egy meta tag is, mivel a tagek jelentésével nem foglalkozik. Viszont a jelenlegi böngészők nem xml feldolgozóként működnek. Legfeljebb valamilyen automatizált feldolgozásnál vagy AJAX kérések kiszolgálásánál van jelentősége, de akkor meg nincs szükség IE kompatibilitás trükközésre.
4

nem kell. opcionális.

wiktor · 2006. Szep. 9. (Szo), 22.08
With or without ?xml prolog?

XHTML 1.0 says nothing about the prolog, so this means we look at XML. According to XML 1.0, the <?xml version="1.0" encoding="UTF-8"?> XML prolog is optional. This is clear both from the examples in Section 2.8 and also by the fact that production [22] in the grammar, the "prolog", begins "XMLDecl?", where the "?" means 0 or 1 instances thereof.

http://tantek.com/XHTML/Test/minimal.html

XHTML 1.1 explicitly states that the XML declaration is not required in all XML documents and goes on to state that XHTML document authors are strongly encouraged to use XML declarations in all their documents. A strong encouragement is however, not a requirement and therefore the ?xml prolog is optional in XHTML 1.1 documents.

http://tantek.com/XHTML/Test/minimal11.html

Magyarán, nem kötelező sem az 1.0-nál, sem az 1.1-nél. Használható, de speciel én ezen a IE6-os standard/quirksmode kapcsolón kívül az égvilágon semmi gyakorlati jelentőségét nem tapasztaltam. Se előnyét, se hátrányát.