/XML Doctype
Andreas
- html
Hallo!
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">
(nicht ganz, Dreamweaver verwendet XHTML 1.0, aber der Rest ist gleich)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
den Teil kenne ich, das ist ja das was w3.org empfielt, aber wozu ist
<? echo "<?xml version="1.0" encoding="iso-8859-1"?".">"; ?>
und
<html xmlns="http://www.w3.org/1999/xhtml">
braucht man das? Wofür?
Grüße
Andreas
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
Hi!
<?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'?>
Aha, hatte mich gewundert warum das nicht direkt im Dokument steht, klar, wegen <??> ;-)
Aber ist bei XHTML 1.1 die XML-Version 1.0 korrekt? Und hat es Sinn das encoding='iso-8859-1' doppelt vorkommt, nämlich
<?xml version="1.0" encoding="iso-8859-1"?>
und
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
? Sollen die Angaben alle für den Browser sein?
Grüße
Andreas
Hallo
Aber ist bei XHTML 1.1 die XML-Version 1.0 korrekt?
Ja, eine andere XML-Version gibt es bislang nicht.
Und hat es Sinn das encoding='iso-8859-1' doppelt vorkommt
Kompatibilität mit alten Browsern vermutlich.
Die Metaangabe kann man sich aber theoretisch Schenken.
Die Angabe in der XML-Deklaration wäre aber in diesem Fall zwingend notwendig.
Grüße
Daniel
hi
Und hat es Sinn das encoding='iso-8859-1' doppelt vorkommt
Kompatibilität mit alten Browsern vermutlich.
eher "man hat mal gehört, dass es gut sein soll"... Einen praktischen Nutzen hatte diese Angabe nie, ich keine keinen browser, der sie sich auch nur ansieht. Entweder den Charset, den der Server sagt oder selbst irgendwie rausfummeln.
Grüße aus Bleckede
Kai
Hallo
eher "man hat mal gehört, dass es gut sein soll"... Einen praktischen Nutzen hatte diese Angabe nie, ich keine keinen browser, der sie sich auch nur ansieht. Entweder den Charset, den der Server sagt oder selbst irgendwie rausfummeln.
Der Server sollte auch den Zeichensatz angeben, der da steht.
Der Validator meckert sogar, wenn das nicht der Fall ist.
Die Angabe ist wohl eher Informativ, damit man später noch weiß, was man in der Serverconfig angeben muss.
Grüße
Daniel
Und hat es Sinn das encoding='iso-8859-1' doppelt vorkommt
Kompatibilität mit alten Browsern vermutlich.
eher "man hat mal gehört, dass es gut sein soll"... Einen praktischen Nutzen hatte diese Angabe nie, ich keine keinen browser, der sie sich auch nur ansieht.
sprichst du von der XML-Deklaration oder von der meta-Angabe? Du hättest in beiden Fällen Unrecht...
hi
sprichst du von der XML-Deklaration oder von der meta-Angabe? Du hättest in beiden Fällen Unrecht...
der Meta. Wo wird die mal wirklich ausgelesen und nicht nur in der grauen W3C-Theorie..?
Grüße aus Bleckede
Kai
sprichst du von der XML-Deklaration oder von der meta-Angabe? Du hättest in beiden Fällen Unrecht...
der Meta. Wo wird die mal wirklich ausgelesen und nicht nur in der grauen W3C-Theorie..?
Von so ziemlich jedem Browser, von Suchmaschinen und nicht minder anderem Kommunikationsgerät das etwas auf sich hält.
Die Angabe in der XML-Deklaration wäre aber in diesem Fall zwingend notwendig.
Nein, das ist sie nur dann, wenn nicht XML 1.0 verwendet wird (momentan ausgeschlossen) oder die Zeichenkodierung nicht bereits im HTTP-Header (oder einem vergleichbaren Ort, z.B. MIME-Header) angegeben wurde.
Aber ist bei XHTML 1.1 die XML-Version 1.0 korrekt?
Ja, die XML-Version ist vollkommen unabhängig von der XHTML-Version.
Und hat es Sinn das encoding='iso-8859-1' doppelt vorkommt, nämlich
<?xml version="1.0" encoding="iso-8859-1"?>
und
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Jein. Praktisch kann man sich beide Angaben schenken, da der Browser vom Server über die Verwendete Zeichenkodierung informiert werden sollte. Wenn das geschieht, werden die beiden Angaben auch ignoriert. Wenn man keine Möglichkeit hat, die Kodierung dort angeben zu lassen, gibt es für echte XHTML-Benutzeragenten über die XML-Deklararation die Möglichkeit, die Zeichenkodierung genau zu bestimmen, für Benutzeragenten die mit XML nichts anfangen können, ist letztere Angabe gedacht.
? Sollen die Angaben alle für den Browser sein?
Darüber lässt sich streiten, erstere ja, letztere ist eigentlich so konzipiert, dass der Server die Datei einliest, bevor er sie an den Browser schickt, und so die angebene Zeichenkodierung bzw. andere beliebige HTTP-Header als solche ausgibt, praktisch wurde das nicht umgesetzt, daher nutzen die Browser die Angabe.
Hallo Bjorn,
? Sollen die Angaben alle für den Browser sein?
Darüber lässt sich streiten, erstere ja, letztere ist eigentlich so
konzipiert, dass der Server die Datei einliest, bevor er sie an den
Browser schickt, und so die angebene Zeichenkodierung bzw. andere
beliebige HTTP-Header als solche ausgibt, praktisch wurde das nicht
umgesetzt, daher nutzen die Browser die Angabe.
ich mußte bei meinem http_trace einen "sophisticated guess" machen, um
"echte" HTTP-Header von solchen, die durch LWP aufgrund einer solchen
Dokument-Analyse ins Environment gesetzt wurden, zu unterscheiden.
Es gibt also wirklich Leute, die das umsetzen.
Viele Grüße
Michael