Björn Höhrmann: /XML Doctype

Beitrag lesen

Folgenden Code erzeugt Dreamweaver MX wenn man ein XHTML Dokument in PHP erstellen will:

<?php echo "<?xml version="1.0" encoding="iso-8859-1"?".">"; ?>
<!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">

[...] wozu ist

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

Das soll die XML-Deklaration ausgeben, der Dreamweaver MX will damit wohl einer groben Unschönheit von PHP entgegenkommen, dass alles, was mit <? beginnt, automatisch als PHP-Code interpretiert wird (solange man es nicht ausschaltet). Das gibt dann

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

aus. Das ist die XML-Deklaration die über die verwendete XML-Version und die verwendete Zeichenkodierung informiert. Beides sollte man angeben, damit das Dokument korrekt verarbeitet werden kann.

<html xmlns="http://www.w3.org/1999/xhtml">

braucht man das? Wofür?

Wofür man das <html>-Element braucht, dürfte dir ja klar sein, das 'xmlns'-"Attribut" ist eine Namensraum-Deklaration. Namensräume werden in XML verwendet, um Elemente verschiedener Sprachen auseinander zu halten. Stell dir beispielsweise vor, eine Sprache verwendet das <title> Element um Adelstitel auszuzeichnen, während es in XHTML den Titel eines Dokuments auszeichnet. Um Mehrdeutigkeiten zu vermeiden gibt es diese Namensräume. Das <title>-Element heisst nicht mehr nur <title>, sondern

[http://www.w3.org/1999/xhtml]title