Was ist mit XHTML5 passiert?
Diese Seite ist ein Entwurf für xhtml5 und html5? Es gibt also keinen Unterschied zwischen diesen Doktypen?
Was ist mit XHTML5 passiert?
Diese Seite ist ein Entwurf für xhtml5 und html5? Es gibt also keinen Unterschied zwischen diesen Doktypen?
Antworten:
Im Jahr 2012 war zum Zeitpunkt des Schreibens klar, dass W3C beschlossen hat, XHTML für HTML 5 aufzugeben. Diese Entscheidung war aus mehreren Gründen motiviert:
Nur wenige Menschen interessierten sich wirklich für XHTML. Die meisten Websites wurden in einfachem HTML geschrieben.
Noch weniger haben wirklich verstanden, worum es bei XHTML geht und wie man es benutzt. Zu viele Websites, die vorgab, XHTML zu liefern, verwendeten stattdessen falsche Header Content-Type: application/xhtml+xml
.
Selbst wenn Sie vollständig verstehen, was XHTML ist und was die Überschriften sein müssen, ist die Sache wirklich schwierig mit einigen beschissenen Browsern, die den application/xhtml+xml
Inhaltstyp nicht akzeptieren / unterstützen . Dies bedeutete, dass Sie die Kopfzeile je nach Browser ändern mussten.
Der XML-Teil von XHTML verursachte auch einige seltsame Situationen, die die Entwickler lösen mussten. Eine INVALID_STATE_ERR: DOM Exception 11
Meldung wird angezeigt, wenn Sie é
einem Element auf der XHTML-Seite einen Text zuweisen, der HTML-Zeichen (wie ) enthält. Wenn Sie diesen Fehler mit seiner sehr hilfreichen Meldung in einer großen Webanwendung nach dem Ausführen einer AJAX-Anforderung feststellen, wissen Sie nicht, ob JQuery, AJAX oder etwas anderes daran schuld ist.
Das Schreiben von HTML 5-Code bedeutet nicht, dass die Tags überall verwechselt werden. Wenn Sie sich leidenschaftlich für XML und XHTML interessieren, können Sie dennoch HTML 5-Code schreiben, der XML sehr nahe kommt.
In den Anfängen von Mobiltelefonen war XHTML für die mobilen Geräte interessant, die nicht sehr leistungsfähig waren. Das Parsen von XML ist viel einfacher als HTML. Bei Dual-Core-Mobilgeräten spielt es keine Rolle, ob sie gültiges XML oder schmutziges HTML mit vielen Hacks und gemischten Tags analysieren müssen.
Die Spezifikation von Oktober 2014 erwähnt die XHTML-Syntax . Derzeit ist unklar, ob es eine neue XHTML- Sprache gibt (keine Syntax ), und falls ja, wie wird XHTML positioniert sein oder ob der neue XHTML-Standard von den gängigen Browsern übernommen wird.
XHTML5 ist ein Synonym für "HTML5 serialisiert als XML".
Es gibt verschiedene konkrete Syntaxen, die zum Übertragen von Ressourcen verwendet werden können, die diese abstrakte Sprache verwenden, von denen zwei in dieser Spezifikation definiert sind.
...
Die zweite konkrete Syntax ist die XHTML-Syntax, bei der es sich um eine Anwendung von XML handelt. Wenn ein Dokument mit einem XML-MIME-Typ wie application / xhtml + xml übertragen wird, wird es von Webbrowsern als XML-Dokument behandelt und von einem XML-Prozessor analysiert. Die Autoren werden darauf hingewiesen, dass die Verarbeitung für XML und HTML unterschiedlich ist. Insbesondere verhindern selbst geringfügige Syntaxfehler, dass ein als XML bezeichnetes Dokument vollständig gerendert wird, während sie in der HTML-Syntax ignoriert werden. Diese Spezifikation definiert Version 5.0 der XHTML-Syntax, bekannt als "XHTML 5".
Außerdem gibt es hier ein schönes Dokument zum Schreiben von HTML5-Polyglots (Seiten, die sowohl als reguläres HTML5 als auch als XML serialisiert werden können):
http://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5
Und sogar ein Validator!
Heutzutage heißt es selten XHTML5 (und wird wahrscheinlich noch seltener verwendet), da es im Grunde immer noch HTML5 ist, aber es ist immer noch da.
Einfach ausgedrückt: Jede Änderung der HTML5-Spezifikation ist auch eine implizite, entsprechende Änderung von XHTML5.
HTML5 ist de facto und de jure Standard! XHTML gibt es standardmäßig auch.
W3C-Empfehlung 28. Oktober 2014
Der Titel des Standards enthält die Zeichenfolge "und XHTML". Es handelt sich also um eine endgültige Entscheidung von W3C, HTML und XHTML zu einem einzigen Standard zusammenzuführen . und dieser Standard zeigt, wie man eine HTML-Datei in eine XHTML-Datei serialisiert und umgekehrt.
XHTML
Teile und wichtige Hinweise:
application/xhtml+xml
Wie von LF Sikos zusammengefasst
XHTML5 ist die XML-Serialisierung von HTML5. Die Syntax wird durch die HTML5-Spezifikation beschrieben. Man sollte jedoch nicht verwechseln, da XHTML5 eine Anwendung von XML ist. Mit anderen Worten, HTML5 und XHTML5 haben dasselbe Vokabular, aber unterschiedliche Analyseregeln.
HTML5-Dokumente können auch gültige XML-Dokumente sein. Dieses Markup wird oft als "polyglotte" Sprache bezeichnet. Dies ist die Überlappungssprache von Dokumenten, die gleichzeitig HTML5- und XML-Dokumente sind. HTML5- und XHTML5-Serialisierungen sind kompatibel. XHTML5 hat jedoch eine strengere Syntax. Darüber hinaus sind einige Teile von XHTML5 in HTML5 nicht gültig, z. B. Verarbeitungsanweisungen.
Also, streng genommen (und betonte , durch @vaxquis) „XHTML ist nur eine Syntax für XML - Serialisierung“, gibt es keine DTD oder andere Art von XML - Schema .
Einige Leute sagen nicht gerne "XHTML5 ist XHTML". Die Frage muss in eine Mini-FAQ über "Wenn ich es als XHTML verwenden kann" aufgeteilt werden. Dies ist ein WIKI, bitte korrigieren Sie, wenn es ein "Missverständnis" gibt ...
Es gibt einige Probleme bei einer "perfekten und generischen HTML5-zu-XHTML5 / XHTML5-zu-HTML5-Konvertierung". Sie müssen "persönliche Entscheidungen treffen" und Informationen verlieren. Da wird der Kontext unterschiedliche Antworten geben:
Loses Sprechen : JA. Es gibt viele (einfache) Beispiele, bei denen das Mapping perfekt und reversibel ist.
Streng genommen : NEIN. Siehe auch @vaxquis Kommentar unten und alte Antworten auf dieser Seite. Einige typische Probleme:
Ja, du kannst. Sogar Fragmente serialisieren.
Ja, aber nicht so schnell und einfach wie die alten DTDs ... Siehe komplexe Validatoren, wie validator.nu
Ja, du kannst. Lassen Sie uns erklären, was Sie können.
Einige Frameworks, wie Cocoon , verwenden " XSLT-Ketten ". HTML5- und XHTML5-Ausgaben können als "letzte Ausgabe in der Kette" verwendet werden. Natürlich kann HTML5 in Zwischenschritten nicht verwendet werden, da es sich nicht um XML handelt, aber XHTML5 kann verwendet werden.
Das obige Problem der Validierung tritt hier erneut auf: Es gibt keine strengen Konventionen, so dass manchmal weniger Klarheit über die "XHTML-Standardstruktur" besteht. In dieser Situation müssen Sie in "Selbstkonventionen" aufpassen und konsequent sein.
saveXML()
Methode verwenden?Ja. Dies ist eine typische Situation, in der die Serialisierungsempfehlungen verwendet werden. Das XML ist gültig, der XHTML5-Code wird aus dem ursprünglichen HTML5- und DOM-Status zugeordnet. In einigen Strukturen können jedoch einige Informationen verloren gehen, wie oben erläutert.
Ja leider ist XHTML weg.
Hinzufügen eines weiteren Grundes zu MainMas großartiger Antwort:
Als XHTML erstellt wurde, sollte es von WebApps verwendet werden, um strukturierte Inhalte bereitzustellen, die von Nicht-Browser-Software verstanden werden und keine Tag-Soup-HTML-Parser enthalten. Für ScreenReaders ist XHTML immer noch großartig, aber für jede andere Art von Software sind WebServices genau das Richtige und verwenden meistens XML oder JSON. SOAP selbst verfügt über ein eigenes XML-Schema, das einfacher als XHTML und betriebsorientiert ist.
So lange ich weiß, gibt es nicht einmal eine WebApp auf der Welt, die dieselbe HTTP-Nachricht sowohl für Browser als auch für andere Clients bereitstellt. Selbst die REST-Architektur, die die gleiche Darstellung eines Inhalts in mehreren Inhaltstypen basierend auf den Vorlieben des Kunden bereitstellen sollte, wird nicht für die Bereitstellung von XHTML- / Feed-Browsern verwendet.
In Java EE können wir zum Beispiel mit Eclipse eine eindeutige War-Datei bereitstellen, die Servlets + JSPs zum Bereitstellen von HTML sowie Axis2 zum Bereitstellen eines WebService enthält. Es ist einfach einfacher, separate Software für Browser und WebService zu entwickeln, als eine einzigartige, komplexe Software zu haben, die sie alle bedient.
Der Hauptgrund für die Ablehnung von REST ist genau die Komplexität (und es sollte einfach sein!) Der Entwicklung eines Servers, der für jeden Client-Typ den gleichen Inhalt bereitstellt, ohne etwas darüber zu wissen. Und es ist auch schwierig, das Bedürfnis des Webs nach einer schnellen Entwicklung zu bewältigen und eine stabile Definition beizubehalten, die nicht-Browser-Clients nicht zwingt, jedes Mal aktualisiert zu werden, wenn sich ein XHTML ändert.
Auf die gleiche Weise ist es sehr schwierig, einen Nicht-Browser-Client zu entwickeln, der ein XHTML-Dokument analysiert, auch wenn es gültig ist, da all diese XML-Elemente das vom Browser gerenderte Layout strukturieren und keinen Inhalt enthalten sollen.
Wenn sich REST-Anwender bereits über die XML-Komplexität von SOAP beschweren, die viel einfacher ist als ein für einen Browser gedachtes XHTML, stellen Sie sich vor, wie schwierig es ist, XHTML für mehrere Client-Typen, Server und Client-Seite, zu handhaben.
In der Praxis: Verwenden Sie HTML, wenn Sie möchten XML, um WebSites für Browser und jede Art von WebService-Lösung für Nicht-Browser-Clients zu erstellen.
ABER ich denke auch, dass XHTML5 erstellt werden muss. XHTML 1.1 (ok, 1.0, 1.1 ist nicht mehr verwendbar) wird mit HTML5 veraltet und wir benötigen noch einen Validator, der die HTML5-Elemente akzeptiert und die XML-Richtigkeit überprüft.