Extensible Hypertext Markup Language - de.LinkFang.org

Extensible Hypertext Markup Language

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)


Beispielhafte Darstellung eines XHTML-Dokuments

Der W3C-Standard Extensible Hypertext Markup Language (erweiterbare HTML; Abkürzung XHTML) ist eine textbasierte Auszeichnungssprache zur Strukturierung und semantischen Auszeichnung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. Es ist eine Neuformulierung von HTML 4.01 in XML: Im Gegensatz zu HTML, welche mittels SGML definiert wurde, verwendet XHTML die strengere und einfacher zu parsende SGML-Teilmenge XML als Sprachgrundlage. XHTML-Dokumente genügen also den Syntaxregeln von XML.

Inhaltsverzeichnis

XHTML 1.0: Übergang von HTML zu XHTML


XHTML 1.0 enthält alle Elemente 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ähiger Webbrowser kann XHTML-Dokumente unter bestimmten Bedingungen trotzdem richtig darstellen (siehe MIME-Typen und HTML-Kompatibilität): er verarbeitet sie als normales HTML. Dabei wird ausgenutzt, dass die HTML-Parser der verbreiteten Browser tolerant gegenüber Syntaxfehlern 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 unkomplizierten Datenaustauschs 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 den Transitional-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 externe CSS-Regeln verwiesen werden.

XHTML-Modularisierung


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 in DTDs und zukünftig in XML 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 mit SMIL (Multimedia), SVG (Vektorgrafik) und MathML (mathematischer Formelsatz). Zum Einbinden allgemeiner Objekte wie Multimedia-Plug-ins gibt es das Objektmodul.

Versionenübersicht


XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen:

Die wichtigsten Unterschiede zwischen HTML und XHTML


HTML XHTML
Groß-/Kleinschreibung der Element- und Attributnamen nicht 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-Tag Weglassen teilweise erlaubt immer beide angeben
Attributwert in Anführungszeichen angeben optional, 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:

Beispiel

Dies ist der Quelltext 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><img src=bild.gif alt="Bildmotiv">
</body>

Das html-Element wurde ganz weggelassen, für das head- bzw. body-Element fehlen End- bzw. Starttag, p- und li-Elemente wurden nicht geschlossen. Das src-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">
<html xmlns="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>
      <img src="bild.gif" alt="Bildmotiv" />
    </p>
 </body>
</html>

Die XML-Deklaration <?xml version="1.0" encoding="UTF-8" ?> ist optional, wird aber vom W3C empfohlen, da sie XML-Parsern die Zeichenkodierung des Dokuments mitteilt. Die Zeichenkodierung UTF-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 der IANA[3], bei dessen Interpretation die XML-Parser die Groß-/Kleinschreibung ignorieren können.[4] Wenn die Kodierungsangabe fehlt und keine Kodierung im HTTP-Header gesendet wurde, kann der Browser gemäß dem XML-Standard die Kodierung UTF-8 oder UTF-16 verwenden.

Die Angabe der XML-Deklaration führt dazu, dass der Internet Explorer 6 und Opera 7.0 bis 7.03 in den sogenannten Quirks-Modus springen, was zu Besonderheiten bei der Verarbeitung der Stylesheets und JavaScript führt. Aus diesem Grund wird die XML-Deklaration oft weggelassen, wenn das Dokument als text/html an diesen Browser ausgeliefert wird (siehe den folgenden Abschnitt über MIME-Typen).

MIME-Typen und HTML-Kompatibilität


Beim Übertragen von HTML- und XHTML-Dokumenten finden bestimmte MIME-Typen Verwendung, z. B. in der Content-Type-Kopfzeile bei E-Mail und vor allem bei HTTP:

Vom MIME-Typ hängt ab, wie die Browser das Dokument verarbeiten. Erst wenn ein XHTML-Dokument etwa mit dem Inhaltstyp application/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 wohlgeformtes XML handelt. Viele aktuelle Browser, darunter Mozilla, Mozilla Firefox, Google Chrome, Opera und Safari, unterstützen den MIME-Typ application/xhtml+xml. Der weit verbreitete Internet 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 sollte text/html verwendet werden, wenn der Browser nicht ausdrücklich in der Accept-Kopfzeile der Anfrage übermittelt hat, dass er application/xhtml+xml unterstützt.[5] 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.[6]

XHTML und Layout


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 mit CSS 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


Erweiterungen bei HTML

HTML-Seiten besitzen als SGML-Sprache zwar eine genau definierte Struktur, die in der Dokumenttypdefinition (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:

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ührte acronym-Element für Abkürzungen nicht, wird es überlesen und die Abkürzung erscheint in normaler Textformatierung. Dasselbe gilt für browserspezifische Erweiterungen. Das blink-Element ist beispielsweise in keinem HTML-Standard enthalten. Einige Browser, ursprünglich nur der Netscape Navigator, stellen den Text dann blinkend dar. Andere Browser stellen den Text wiederum normal dar.

Erweiterungen bei XHTML

Im Gegensatz zu HTML wurde XHTML mit Blick auf die Möglichkeit der Erweiterbarkeit geschaffen. XHTML nutzt dazu das Namensraum-Konzept von XML. Eine XHTML-Version bildet dabei einen solchen Namensraum. Andere XML-Sprachen wie MathML, SVG und RDF stellen weitere Namensräume dar. In einem XHTML-Dokument können nun Elemente aus fremden Namensräumen verwendet werden, indem Sie über das Attribut xmlns 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 von MathML:

<p>Dies ist noch ganz normales XHTML</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <msub>
      <mi>x</mi>
      <mn>1,2</mn>
    </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>...und hier geht XHTML weiter</p>

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

Dies ist noch ganz normales XHTML

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 das DOM 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:

Einzelnachweise


  1. RFC 3236
  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. XHTML media type test – results. w3.org, 9. März 2006, abgerufen am 3. April 2019 (englisch).
  6. Jens Oliver Meiert: XHTML und der richtige MIME-Typ. meiert.com, 5. April 2006, abgerufen am 3. April 2019.

Weblinks


WikibooksWikibooks: Websiteentwicklung: XHTML – Lern- und Lehrmaterialien

XHTML betreffende Spezifikationen

XHTML selbst
Abkömmlinge der XHTML-Modularisierung
Grundlagen für XHTML

XHTML-Einführungen und -Werkzeuge




Kategorien: Web-Entwicklung | HTML | XML-basierte Sprache | XML



Quelle: Wikipedia - https://de.wikipedia.org/wiki/Extensible Hypertext Markup Language (Autoren [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Veränderungen: Alle Bilder und die meisten Designelemente, die mit ihnen in Verbindung stehen, wurden entfernt. Icons wurden teilweise durch FontAwesome-Icons ersetzt. Einige Vorlagen wurden entfernt (wie „Lesenswerter Artikel“, „Exzellenter Artikel“) oder umgeschrieben. CSS-Klassen wurden zum Großteil entfernt oder vereinheitlicht.
Wikipedia spezifische Links, die nicht zu Artikeln oder Kategorien führen (wie „Redlink“, „Bearbeiten-Links“, „Portal-Links“) wurden entfernt. Alle externen Links haben ein zusätzliches FontAwesome Icon erhalten. Neben weiteren kleinen Designanpassungen wurden Media-Container, Karten, Navigationsboxen, gesprochene Versionen & Geo-Mikroformate entfernt.


Stand der Informationen: 19.10.2019 09:29:47 CEST - Wichtiger Hinweis Da die gegebenen Inhalte zum angegebenen Zeitpunkt maschinell von Wikipedia übernommen wurden, war und ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.org nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein oder Fehler in der Darstellung vorliegen, bitten wir Sie darum uns per zu kontaktieren: E-Mail.
Beachten Sie auch : Impressum & Datenschutzerklärung.