2009-07-19 15 views
4

Nach meinem Verständnis, weder XHTML (1.0, 1.1) noch XHTML 5 benötigt eine DTD. Wenn das wahr ist, wie wird ein Browser zwischen den beiden unterscheiden?Wie unterscheidet ein Browser zwischen XHTML 1.0 und XHTML 5?

Ich kann nur annehmen, dass, wenn die Browser-Hersteller (X) HTML 5 unterstützen, alle XHTML unter XHTML 5 Regeln interpretiert werden (unter der Annahme, dass XHTML 5 eine Obermenge von XHTML 1.0 ist). Wird es so funktionieren?

Antwort

2

Es gibt kein XHTML 5. Derzeit gibt es HTML 4.01 und XHTML 1.0. There will be no XHTML 2.0. Es wird nur HTML 5 geben. HTML 5 ist kein XML-Standard (dh ein HTML 5-Dokument ist kein XML-Dokument).

Vielleicht sehen Sie sich HTML 5 + XML = XHTML 5. Ich denke, Sie können HTML 5 als XML ausdrücken, aber soweit ich weiß, ist das nicht Standard. Genauer gesagt ist dies nur eine Serialisierungsmethode für den Dokumentbaum anstelle eines Standards. Um dieses Problem zu lösen, werfen Sie einen Blick auf HTML 5 and XHTML 5 - one vocabulary, two serializations. Schon aus dem Titel sagt es "ein Vokabular, zwei Serialisierungen". Und Conversation With X/HTML 5 Team:

Die XHTML 5 Spezifikation sagt, dass "im Allgemeinen, Autoren von dem Versuch entmutigt sind XML zu verwenden, auf das Web". Warum schreiben Sie eine XML-Spezifikation wie XHTML 5 und raten dann Autoren davon ab? Warum nicht einfach Unterstützung für XML (XHTML 5)?

Einige Leute werden XML mit HTML 5 verwenden, was auch immer wir tun. Es ist ein einfaches , was zu tun - XML ​​eine Metasprache ist zur Beschreibung Baumstrukturen, HTML 5 ist eine Baumstruktur, ist es offensichtlich, dass XML verwendet werden kann HTML beschreiben 5.en Das Problem ist, dass, wenn wir nicht spezifizieren Sie es, dann denkt jeder es ist offensichtlich und geht voraus und macht es wird es in einem etwas anderen Weise tun, und wir werden einen Interoperabilitätsalbtraum haben. Also statt beißen wir die Kugel und definieren, wie es funktionieren muss, wenn die Leute es tun.

XHTML 1.0 war ein Standard. Es unterscheidet sich von HTML 4. XHTML 5, wenn man es so nennen kann, ist nichts anderes, als HTML 5-Dokumente in XML-Form darzustellen.

+4

Sie liegen falsch. XHTML5 ist Teil der HTML 5-Spezifikation. Siehe http://www.w3.org/TR/html5/introduction.html#html-vs-xhtml –

+2

Das ist nicht ganz korrekt. Es gibt eine XML-Serialisierungsmethode für HTML5 und trotz XML-spezifischer Funktionen (wie Namespaces) ist es * der HTML5-Standard. Der Standard geht so weit zu sagen, dass die Verwendung von XML stark abgeraten wird und wirklich nur eingeschlossen wird, weil einige Leute es trotzdem tun werden. – cletus

+1

Ich sehe was du meinst. w3 erwähnt nur HTML 5 + XML als Serialisierungsmethode (http://www.w3.org/TR/2008/WD-html5-diff-20080122/#syntax), also HTML 5 und "XHTML 5" oder HTML 5 + XML sind die gleichen Sprachen, nur mit zwei Serialisierungsmethoden. Ich denke, dass meine Frage immer noch relevant ist. – Abignale

2

Browser nicht. Die Elemente existieren im selben Namespace und haben die gleiche Bedeutung, außer wenn die WHATWG entschieden hat, sie zu ändern, wie zum Beispiel das b-Element —, in dem sich Browser nur durchwursteln müssen.

+0

Nicht sicher, was Sie damit meinen. Browser interessieren sich nicht für die Bedeutung von Elementen, sondern nur für deren Verarbeitung. Der HTML 5-Entwurf behält die Rückwärtskompatibilität für Browser bei der Verarbeitung bei, die geänderte Semantik wirkt sich nur auf Tools aus, die versuchen, aus dem Markup eine Bedeutung zu extrahieren. AFAIK die Semantik der Elemente in HTML 5 sind jedoch enger als die von HTML 4, so dass das ultimative Ergebnis für jedes semantische Extraktionswerkzeug sein wird, dass die HTML 4-Regeln immer noch gelten, da sie nicht in der Lage sind zu sagen, wann die engere Bedeutung gilt. – Alohci

-1

Es wäre möglich, durch DOCTYPE zu unterscheiden (was für HTML5 und XHTML 1.x anders ist), aber seine Anwesenheit ist in XHTML5 ausdrücklich nicht zwingend; und Element-Namespace ist identisch. Also, im Allgemeinen gibt es keinen guten Weg, sie zu unterscheiden. Wenn Sie tragbares XHTML5 schreiben möchten, ist die Bereitstellung von DOCTYPE die beste Wahl.

+0

Der Doctype ist optional für XHTML-Familiendokumente (es muss so sein, dass Sie Namespaces sinnvoll mischen können). – Quentin

+0

Ich habe speziell geschrieben, dass DOCTYPE optional (nicht obligatorisch) in meiner Antwort ist. Mein Punkt ist jedoch, dass, wenn Sie _do_ schreiben (und Sie haben eine Option als _content author_), die Chancen gut sind, dass der Browser es als Indikator für XHTML5 behandelt. –

+0

Browser haben Doctypes in der Vergangenheit keine Beachtung geschenkt (außer als Intelligenztest, um festzustellen, ob sie den Quirks- oder Standards-Modus verwenden sollten), ich sehe das nicht anders. – Quentin

3

Von http://hsivonen.iki.fi/xhtml2-html5-q-and-a/:

Wenn ich jede Doctype für XHTML5 verwenden können, wie können Browser sagen, XHTML 1.0 und XHTML5 auseinander?

Sie können nicht und sie müssen nicht. Ein Benutzeragent, der XHTML5 implementiert, wird von Entwurf entsprechend Eingaben verarbeitet, die als XHTML 1.0 ordnungsgemäß erstellt werden.