Hallo,
Ich dachte XHTML ist gleich XML.
Im Prinzip ja. Konkret heisst, dass nichts anders, als die Reformatierung von HTML nach einige Regeln von XML.
Eine kleine Erklärung:
http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-1�
Und hierzu zitiere ich wieder selfhtml: "XHTML 1.0 ist nichts anderes als der Versuch, das SGML-basierte HTML 4.0 mit Hilfe von XML "nachzubauen"
Genau.
»»......Ich wäre wirklich sehr dankbar, wenn Du oder sonst jemand mir nochmal etwas auf die Sprünge helfen könnte.
Etwas vereinfacht:
XML ist an sich keine Sprache (also keine wie HTML z.B.). Es gibt in XML keine konkrete Elemente oder Attribute.
Betrachte XML als eine Grammatik, ein Regelwerk, das sagt: "wenn du ein Element schreibst, muss du diese und diese Regel dabei beachten".
Aber XML sagt dir weder wie dein Element benannt werden muss, noch wie es dargestellt werden muss.
HTML dagegen hat konkrte Elemente und Attribute und die Browser haben für HTML eine eingebaute Logik (oder eben Stylesheet), so dass der Browser weiss, wenn ein <h1>-Element kommt, muss er dieses Element so und nicht anderes darstellen. Ebenso beim <img>, da weiss der Browser, dass er ein Bild darzustellen hat.
XHTML kombiniert nur diese zwei Prinzipien.
Also einerseits hat es genu dieselben Elemente und Attribute wie HTML. Es gibt im XHTML keine neuen Elemente etc. Anderseits wendet er die Regel von XML auf diese Elemente an.
D.h. XML sagt: "ein Element muss ein Start-Tag und ein End-Tag haben". War es also noch in HTML möglich ein </p> oder ein </td> wegzulassen, so ist das in XHTML nicht mehr möglich.
Für Browser beutet die Verwendung von XHTML lediglich, dass sie bei der Darstellung der HTML-Elemente in einer XHTML-Seite diese Regel beachten. Nicht mehr.
Bei der Darstellung einer XML-Datei ist es anderes. Da wissen die Browser nicht, wie ein Element dargestellt werden soll, also stellen sie entweder die Baumstruktur der XML-Datei dar, oder den Text-Inhalt der Datei.
Um XML "richtig" dazustellen benötigen die Browser ein Stylesheet. Entweder ein CSS- oder XSLT-Styleheet, wobei XSLT nichts anderes macht, als die Elemente aus dem XML nach HTML zu transformieren.
Wenn du jetzt deine Datei als XML-Datei deklariert:
<?xml version="1.0" encoding="ISO-8859-1"?>
gehen die Browser schon mal davon aus, dass es sich hierbei um eine XML-Datei handelt (deswegen wird auch noch immer empfohlen, dass man die XML-Deklaration aus XHTML-Dokumenten wegläßt).
Und wenn du jetzt auch noch selbsbenannte Elemente verwendets und die Namensraumdeklaration (xmlns="http://www.w3.org/1999/xhtml) wegläßt, ist deine Datei für den Browser wirklich eine XML-Datei. D.h. er kennt nicht mehr die Bedeutung von <img> oder <link>, weil diese in XML keine Bedeutung haben. Sie sind so gut oder so schlecht wie jedes andere beliebige Element.
Dir ist natürlich klar, was du mit <img> oder <link> beabsichtigst, aber so lange du keine Stylesheet in deinem XML (nach XML-Regel!) einbindest, hat der Browser keine Ahnung von dieser Bedeutung.
Das war's auch schon. Wie gesagt, etwas vereinfacht. ;-)
Grüße
Thomas