Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Extensible Hypertext Markup Language

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet vonXHTML)
XHTML
Beispielhafte Darstellung eines XHTML-Dokuments


Beispielhafte Darstellung eines XHTML-Dokuments

Dateiendung:.xhtml, .xht
MIME-Type:application/xhtml+xml[1]
Entwickelt von:World Wide Web Consortium
Art:Auszeichnungssprache
Erweitert von:XML,HTML
Standard(s):1.0 (Recommendation),

1.1 (Recommendation),
1.1 SE (Working Draft),
5 (Working Draft),
2.0 (Working Draft)

www.w3.org/International/articles/serving-xhtml/index.en.html


Beispielhafte Darstellung eines XHTML-Dokuments

DerW3C-StandardExtensible Hypertext Markup Language (erweiterbareHTML; AbkürzungXHTML) ist eine textbasierteAuszeichnungssprache zur Strukturierung und semantischen Auszeichnung von Inhalten wie Texten, Bildern undHyperlinks in Dokumenten. Es ist eine Neuformulierung von HTML 4.01 inXML. Im Gegensatz zu HTML, welche mittelsSGML definiert wurde, verwendet XHTML die strengere und einfacher zuparsende SGML-Teilmenge XML als Sprachgrundlage. XHTML-Dokumente genügen also den Syntaxregeln von XML.

XHTML 1.0: Übergang von HTML zu XHTML

[Bearbeiten |Quelltext bearbeiten]

XHTML 1.0 enthält alleElemente von HTML 4.01, sodass eine Umformung von HTML-4.01-konformen Seiten zu XHTML 1.0 leicht möglich ist. Ein nicht XHTML-fähigerWebbrowser kann XHTML-Dokumente unter bestimmten Bedingungen trotzdem richtig darstellen (sieheMIME-Typen und HTML-Kompatibilität): er verarbeitet sie als normales HTML. Dabei wird ausgenutzt, dass die HTML-Parser der verbreiteten Browser tolerant gegenüberSyntaxfehlern sind. Diese Fehlertoleranz entstand als Antwort darauf, dass zahlreiche HTML-Dokumente im World Wide Web nicht dem formalen Standard entsprachen und Anwender Browsermeldungen über HTML-Syntax-Fehler als lästig empfinden. Für XHTML hingegen gilt die XML-Grundidee des unkompliziertenDatenaustauschs und der problemlosen automatisierten Verarbeitung. Daher sind Programme, die XHTML verarbeiten, nicht mehr derartig tolerant.

Neuere XHTML-Dokumenttypen enthalten keine Layout-Auszeichnungen mehr. XHTML Transitional 1.0 ist der letzte Dokumenttyp, welcher noch Layout-Elemente enthält, wie<font> oder<b>. In moderneren Dokumenttypen wie XHTML Strict 1.0 sind zwar noch wenige Layout-Elemente enthalten, allerdings nur noch aus Gründen der Rückwärtskompatibilität zu denTransitional-Dokumenttypen. In XHTML Basic oder XHTML 2 schließlich sind Layout-Elemente gar nicht mehr enthalten. Für die visuelle Gestaltung von XHTML-Elementen soll nur noch auf externeCSS-Regeln verwiesen werden.

XHTML-Modularisierung

[Bearbeiten |Quelltext bearbeiten]

Um die Entwicklung von Sprachen zu ermöglichen, die auf XHTML basieren, wurden verwandte und zusammengehörige Elemente in XHTML 1.1 in sogenannten Modulen zusammengefasst. Basierend auf diesen inDTDs und zukünftig inXML Schema abgefassten Modulen kann man eigene XHTML-Dokumenttypen nach dem Baukastenprinzip zusammenstellen und mit anderen XML-basierten Sprachen mischen. Beispielanwendungen der XHTML-Modularisierung sind XHTML 1.1, XHTML Basic sowie die Mischungen mitSMIL (Multimedia),SVG (Vektorgrafik) undMathML (mathematischer Formelsatz). Zum Einbinden allgemeiner Objekte wie Multimedia-Plug-ins gibt es dasObjektmodul.

Versionenübersicht

[Bearbeiten |Quelltext bearbeiten]

XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen:

  • XHTML 1.0 stellt die XML-basierte Neuformulierung vonHTML 4.01 dar. XHTML 1.0 erhält die bekannten drei DokumenttypenStrict,Transitional undFrameset. XHTML 1.0 wurde so angelegt, dass eine Rückwärtskompatibilität mit den verbreiteten HTML-Browsern möglich ist. Gleichzeitig kann es von neueren Browsern gemäß den strengen Regeln verarbeitet werden.
  • Die aktuelle VersionXHTML 1.1 trennt sich von den missbilligten Elementen und Attributen der Transitional- und der Frameset-Variante, die direkt die Präsentation des Dokuments beeinflussen. Der Sprachumfang entspricht somit weitestgehend XHTML 1.0 Strict, hinzu kommen Elemente fürRuby-Erläuterungen. XHTML 1.1 ist nicht mit Blick auf die Kompatibilität zu HTML-Browsern angelegt.
  • XHTML Basic ist für minimalistische Geräte wieMobiltelefone undHandhelds ausgelegt, indem nur einige Sprachbestandteile (Module) von XHTML verwendet werden. XHTML Basic ist die Basis für XHTML Mobile Profile (sieheWAP 2.0) und für WML 2.0.
  • Durch die Modularisierung entstanden weitereMisch-Versionen, wieXHTML 1.1 plus MathML plus SVG.
  • Die VersionXHTML 2.0, deren Entwicklung zugunsten vonHTML5 Ende 2009 eingestellt wurde, hätte mit dem Erbe aus HTML 4 gebrochen und sah grundlegende Veränderungen vor.
    Wichtige Neuerungen wären das vereinfachte uneingeschränkte Notieren vonHyperlinks gewesen, das vereinfachte Einbinden anderer Medienarten (z. B. Grafiken und Videos), die erweiterten Möglichkeiten, umZugänglichkeit zu gewährleisten, und das ausgereiftere Angeben vonMetadaten. Bisherige Kernfunktionen von HTML bzw. XHTML wären in XHTML 2.0 in andere XML-Sprachen ausgelagert worden, namentlichXForms für Formulare,XML Events zur Einbindung vonScripten undXFrames fürFrames.

Die wichtigsten Unterschiede zwischen HTML und XHTML

[Bearbeiten |Quelltext bearbeiten]
HTMLXHTML
Groß-/Kleinschreibung der Element- und Attributnamennicht relevant (z. B.<br>,<Br>,<BR>)immer klein (nur<br/>)
Elemente ohne Inhalt, z. B.br<br> <br/> (von der DTD abhängig)entweder leeres Element-Tag
(z. B.<br/>) oder mit End-Tag
(z. B.<br></br>)

Die Variante<br/> wird aus Gründen der Kompatibilität empfohlen

Start- oder End-TagWeglassen teilweise erlaubtimmer beide angeben
Attributwert in Anführungszeichen angebenoptional, solange der Attributwert bestimmte Zeichen nicht enthält.immer
boolesche Attribute, z. B. checked<input type="radio"checked>Attributname als Attributwert angeben, z. B. <input type="radio" checked="checked"/>

Außerdem:

  • Das Start-Tag des Wurzel-Elementshtml muss immer dieNamensraum-Angabe für XHTML enthalten:<html xmlns="http://www.w3.org/1999/xhtml">
  • In XHTML 1.1 wurde daslang-Attribut durch dasxml:lang-Attribut von XML ersetzt. In XHTML 1.0 wird die Angabe beider Attribute empfohlen, z. B.<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">.
  • Die Rolle desname-Attributs bei den Elementena,frame undmap übernimmt ab XHTML 1.0 dasid-Attribut. Wenn Abwärtskompatibilität erwünscht ist, sollten sowohl dasname- als auch dasid-Attribut mit gleichem Attributwert notiert und XHTML 1.0 übergangsweise deklariert werden. In XHTML 1.1 bzw. XHTML-Modularisierung existiert keinname-Attribut mehr für diese Elemente.
  • Das Attributname bei den Elementenform undimg ist nur noch in XHTML 1.0 übergangsweise vorhanden, nicht in XHTML 1.0 Strict und XHTML 1.1. Diese Einschränkung ist vor allem beimDOM-Zugriff auf die Elemente relevant.

Beispiel

[Bearbeiten |Quelltext bearbeiten]

Dies ist derQuelltext eines standardkonformen HTML-Dokuments. Das Beispiel ist bewusst so kurz wie möglich gehalten und soll Unterschiede bei der erlaubten Syntax aufzeigen. In HTML empfiehlt es sich, alle notwendigen Elemente vollständig zu notieren.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><head><title>Beispiel</title><h1>Beispielseite</h1><p>Ein Absatz<p>Noch ein<br>Absatz<ol><li>Listelement<li>Listelement</ol><p><imgsrc=bild.gifalt="Bildmotiv"></body>

Dashtml-Element wurde ganz weggelassen, für dashead- bzw.body-Element fehlen End- bzw. Starttag,p- undli-Elemente wurden nicht geschlossen. Dassrc-Attribut des Bildes ist ohne Anführungszeichen angegeben.

Das gleiche Dokument als gültiges XHTML 1.1 könnte folgendermaßen aussehen:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="de"><head><title>Beispiel</title></head><body><h1>Beispielseite</h1><p>Ein Absatz</p><p>Noch ein<br/>    Absatz</p><ol><li>Listelement</li><li>Listelement</li></ol><p><imgsrc="bild.gif"alt="Bildmotiv"/></p></body></html>

DieXML-Deklaration<?xml version="1.0" encoding="UTF-8" ?> ist optional, wird aber vomW3C empfohlen, da sie XML-Parsern dieZeichenkodierung des Dokuments mitteilt. Die ZeichenkodierungUTF-8 sollte in Großbuchstaben geschrieben werden.[2] Dies widerspricht auf den ersten Blick dem XHTML-Grundsatz, alle Elemente und Attribute klein zu schreiben. Jedoch handelt es sich um den offiziellen Namen, vergeben von derIANA,[3] bei dessen Interpretation die XML-Parser dieGroß-/Kleinschreibung ignorieren können.[4] Wenn die Kodierungsangabe fehlt und keine Kodierung imHTTP-Header gesendet wurde, kann der Browser gemäß dem XML-Standard die Kodierung UTF-8 oderUTF-16 verwenden.

Die Angabe der XML-Deklaration führt dazu, dass derInternet Explorer 6 undOpera 7.0 bis 7.03 in den sogenanntenQuirks-Modus springen, was zu Besonderheiten bei der Verarbeitung derStylesheets undJavaScript führt. Aus diesem Grund wird die XML-Deklaration oft weggelassen, wenn das Dokument alstext/html an diesen Browser ausgeliefert wird (siehe den folgenden Abschnitt über MIME-Typen).

MIME-Typen und HTML-Kompatibilität

[Bearbeiten |Quelltext bearbeiten]

Beim Übertragen von HTML- und XHTML-Dokumenten finden bestimmteMIME-Typen Verwendung, z. B. in derContent-Type-Kopfzeile beiE-Mail und vor allem beiHTTP:

  • Für HTML-Dokumente ist es gemäß RFC 2854[5] vorgesehen, sie mit dem MIME-Typtext/html zu senden.
  • Ein XHTML-1.0-Dokument soll normalerweise gemäß RFC 3236[1] mit dem MIME-Typapplication/xhtml+xml gesendet werden. Wenn sich das Dokument an die Richtlinien der Rückwärtskompatibilität hält, kann es gemäß RFC 2854[5] und dem XHTML-1.0-Standard alstext/html gesendet werden. Aufgrund der mangelnden XHTML-Unterstützung der verbreiteten Software kommt der letzteren Option ein besonderer Stellenwert zu.
  • Da für XHTML 1.1 keine Kompatibilität mit gewöhnlichen HTML-Browsern vorgesehen ist, sollen solche Dokumente gemäß einerW3C-Mitteilung[6] nur alsapplication/xhtml+xml ausgeliefert werden. Dasselbe gilt für die übrigen Abkömmlinge von XHTML-Modularisierung, also etwa XHTML Basic.

Vom MIME-Typ hängt ab, wie die Browser das Dokument verarbeiten. Erst wenn ein XHTML-Dokument etwa mit dem Inhaltstypapplication/xhtml+xml deklariert wird, setzen XHTML-fähige Browser ihre XML-Parser ein, durch welche die Vorteile des strengen XHTML-Codes, wie die einfache Verarbeitbarkeit, ausgenutzt werden. Wenn dies der Fall ist, kann das Dokument nur dann dargestellt werden, wenn es sich um wohlgeformtesXML handelt. Viele aktuelle Browser, darunterMozilla,Mozilla Firefox,Google Chrome,Opera undSafari, unterstützen den MIME-Typapplication/xhtml+xml. Der weit verbreiteteInternet Explorer kann mit diesem MIME-Typ jedoch erst ab Version 7.0 etwas anfangen: Ältere Versionen öffnen einen Download-Dialog, anstatt das Dokument darzustellen. Daher solltetext/html verwendet werden, wenn der Browser nicht ausdrücklich in derAccept-Kopfzeile der Anfrage übermittelt hat, dass erapplication/xhtml+xml unterstützt.[7] Dies kann serverseitig ermittelt werden, um den passenden MIME-Typ zu senden – wobei man für den Internet Explorer ab Version 7.0 eine Versionsprüfung durchführen müsste, da der IE nach wie vor*/* als MIME-Typ sendet.[8]

XHTML und Layout

[Bearbeiten |Quelltext bearbeiten]

Mit HTML 4 begann das W3C damit, diejenigen Elemente und Attribute, die direkt für die Präsentation des Dokuments zuständig waren und keine Ausgabe-unabhängige Strukturierung ausdrückten, schrittweise aus HTML auszuschließen. Zwar enthält XHTML 1.0 genauso wie HTML 4 eine Transitional-Variante mit diesen veralteten Sprachbestandteilen. Es hat sich jedoch im modernen Webdesign durchgesetzt, dass die Strict-Variante verwendet wird und die Dokumente konsequent mitCSS formatiert werden. Der strukturierte Inhalt und das jeweilige Layout können dadurch getrennt definiert werden. Mit XHTML 1.1 und dem geplanten XHTML 2.0 wollte das W3C diese Entwicklung endgültig abschließen, indem nur noch Ausgabe-unabhängige Textauszeichnung erlaubt und das Layout zwangsläufig mit CSS oder ähnlichen Sprachen realisiert werden sollte.

Erweiterungen

[Bearbeiten |Quelltext bearbeiten]

Erweiterungen bei HTML

[Bearbeiten |Quelltext bearbeiten]

HTML-Seiten besitzen als SGML-Sprache zwar eine genau definierte Struktur, die in derDokumenttypdefinition (DTD) festgelegt ist. Ohne Kenntnis der DTD kann aber die hierarchische Baumstruktur eines Dokuments nicht zweifelsfrei ermittelt werden. Manche Elemente haben keinen End-Tag (wie z. B.<br> für einen Zeilenumbruch) oder ein optionales End-Tag (wie<p> für einen Textabsatz). Nur die DTD bestimmt, welche Elemente dies sind. Kennt der Parser sie nicht, so ist die Dokumenthierarchie mehrdeutig. XHTML als XML-Sprache behebt diesen Mangel.

HTML ist eigentlich nicht erweiterbar, übliche Browser gehen aber bei der HTML-Verarbeitung folgendermaßen vor:

  • Auszeichnung durch unbekannte Elemente wird ignoriert.
  • Bei syntaktischen Fehlern wird versucht, trotzdem einen logischen Elementenbaum zu erzeugen. Es wird versucht, aus einer nicht-konformen Seite das Beste zu machen, d. h. eine Seite wird auf jeden Fall dargestellt.

Damit ist die Verarbeitung von verschiedenen HTML-Versionen möglich. Führt eine Version ein neues Element ein, wird dieses von älteren Browsern einfach ignoriert. Gleiches gilt für Attribute. Kennt ein HTML-3.2-fähiger Browser beispielsweise das in HTML 4.0 eingeführteacronym-Element für Abkürzungen nicht, wird es überlesen und die Abkürzung erscheint in normaler Textformatierung. Dasselbe gilt für browserspezifische Erweiterungen. Dasblink-Element ist beispielsweise in keinem HTML-Standard enthalten. Einige Browser, ursprünglich nur derNetscape Navigator, stellen den Text dann blinkend dar. Andere Browser stellen den Text wiederum normal dar.

Erweiterungen bei XHTML

[Bearbeiten |Quelltext bearbeiten]

Im Gegensatz zu HTML wurde XHTML mit Blick auf die Möglichkeit der Erweiterbarkeit geschaffen. XHTML nutzt dazu dasNamensraum-Konzept von XML. Eine XHTML-Version bildet dabei einen solchen Namensraum. Andere XML-Sprachen wieMathML,SVG undRDF stellen weitere Namensräume dar. In einem XHTML-Dokument können nun Elemente aus fremden Namensräumen verwendet werden, indem sie über das Attributxmlns eine entsprechende Namensraum-Angabe erhalten.Dazu muss ein spezieller Doctype verwendet werden, welcher die Elemente definiert – bei Verwendung von MathML ist es:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN""http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">

Ein Beispiel für die Nutzung des Namensraum-Konzeptes zur Erweiterung von XHTML ist die Einbettung vonMathML:

<p>DiesistnochganznormalesXHTML</p><mathxmlns="http://www.w3.org/1998/Math/MathML"><mrow><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mfrac><mrow><mrow><mo>-</mo><mi>b</mi></mrow><mo>&PlusMinus;</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>-</mo><mrow><mn>4</mn><mo>&InvisibleTimes;</mo><mi>a</mi><mo>&InvisibleTimes;</mo><mi>c</mi></mrow></mrow></msqrt></mrow><mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>a</mi></mrow></mfrac></mrow></math><p>...undhiergehtXHTMLweiter</p>

Ein MathML-fähiger Browser könnte diesen Dokumentausschnitt folgendermaßen darstellen:

Dies ist noch ganz normales XHTML

x1,2=b±b24ac2a{\displaystyle x_{1,2}={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}}

… und hier geht XHTML weiter

Erweiterungen sind also durch Bildung von neuen Namensräumen möglich, ohne dass die XHTML-Standards selbst geändert werden müssen. Durch die Verwendung von Namensräumen ist ein Konflikt von Elementen gleichen Namens in verschiedenen Erweiterungen ausgeschlossen. Diese können immer eindeutig zugeordnet und zum Beispiel über dasDOM mit der Kennung des Namensraums angesprochen werden. Die infolge der XHTML-Modularisierung entstandenen erweiterten XHTML-Versionen bauen auf diesem Konzept auf.

Durch das Entstehen solcher Erweiterungen tritt eine ähnliche Situation wie bei HTML-Erweiterungen ein, denn nicht alle Browser unterstützen die eingebundenen Erweiterungen wie bei SVG. Der Browser hat folgende Möglichkeiten, mit Elementen aus unbekannten Namensräumen umzugehen:

  • Er kann die Auszeichnung durch solche Elemente ignorieren und die Textinhalte einfach darstellen (wie bei HTML).
  • Er kann alle Elemente des unbekannten Namensraums sowie deren Textinhalte ignorieren.
  • Er kann versuchen, aus dem Web einPlug-in für die Erweiterung zu laden, und die Seite dann korrekt darstellen.

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Wikibooks: Websiteentwicklung: XHTML – Lern- und Lehrmaterialien

XHTML betreffende Spezifikationen

[Bearbeiten |Quelltext bearbeiten]

XHTML selbst

Abkömmlinge der XHTML-Modularisierung

Grundlagen für XHTML

XHTML-Einführungen und -Werkzeuge

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. abRFC:3236 –The ‘application/xhtml+xml’ Media Type. Januar 2002 (englisch).
  2. Bill Wilder: Is “UTF-8” case-sensitive in XML declaration? In: blog.codingoutloud.com. Abgerufen am 5. Oktober 2019 (englisch). 
  3. iana.org
  4. w3.org
  5. abRFC:2854 –The ‘text/html’ Media Type. Juni 2000 (englisch).
  6. xhtml-media-typesW3C.
  7. XHTML media type test – results. w3.org, 9. März 2006, abgerufen am 3. April 2019 (englisch). 
  8. Jens Oliver Meiert: XHTML und der richtige MIME-Typ. meiert.com, 5. April 2006, abgerufen am 3. April 2019. 
Standards desWorld Wide Web Consortiums (W3C)
VD
Empfehlungen

ActivityPub |ARIA |Canonical XML |CDF |CSS |DOM |Geolocation API |HTML |HTML5 |InkML |ITS |JSON-LD |MathML |OWL |P3P |PLS |PNG |RDF |RDF-Schema |RIF |SCXML |SISR |SKOS |SMIL |SOAP |SRGS |SSML |SVG |SPARQL |Timed Text |Turtle |VoiceXML |WSDL |XForms |XHTML |XHTML+RDFa |XInclude |XLink |XML |XML Base |XML-Encryption |XML Events |XML Information Set |XML Namespace |XML Schema |XML Signature |XPath |XPointer |XProc |XQuery |XSL |XSL-FO |XSLT(Elemente)

Arbeitsentwürfe
und Kandidaten

CCXML |CURIE |SMIL Timesheets |sXBL |WICD |XFrames |XBL | XHTML+MathML+SVG |XMLHttpRequest

Anmerkungen

XAdES |XFDL |XHTML+SMIL |XUP

Richtlinien

Web Content Accessibility Guidelines |Multimodal Interaction Activity |Markup Validation Service

Initiativen

Web Accessibility Initiative

Normdaten (Sachbegriff):GND:4600114-1 (GND Explorer,lobid,OGND,AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Extensible_Hypertext_Markup_Language&oldid=264031158
Kategorien:

[8]ページ先頭

©2009-2026 Movatter.jp