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.
quelle
XHTML5 ist ein Synonym für "HTML5 serialisiert als XML".
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!
http://html5.validator.nu/
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.
quelle
HTML5 ist de facto und de jure Standard! XHTML gibt es standardmäßig auch.
HTML5 - Ein Vokabular und zugehörige APIs für HTML und XHTML
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
Verstehen und benutzen
Wie von LF Sikos zusammengefasst
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 ...
FAQ
Kann ich XHTML5 als "2014er Version des XHTML-Standards" verwenden?
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:
Kann ich die (furchtlose!) XHTML5-Serialisierung mit XSLT, XPath usw. verwenden?
Ja, du kannst. Sogar Fragmente serialisieren.
Kann ich XHTML5 validieren?
Ja, aber nicht so schnell und einfach wie die alten DTDs ... Siehe komplexe Validatoren, wie validator.nu
Kann ich XHTML5 als Nicht-Terminal-Ausgabe in einer XSLT-Kette verwenden?
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.
Kann ich bei Verwendung von DOMDocument einer HTML5-Seite eine
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.
quelle
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.
quelle