# Element (Auszeichnungssprache)

Ein Element ist eine Struktureinheit (Knoten) in einem durch eine Auszeichnungssprache (SGML, XML, HTML, XHTML, HTML5) repräsentierten Informationsbaum. Es besteht aus dem Element-Bezeichner, den Element-Eigenschaften (Attributen) und dem Element-Inhalt. Elemente werden durch Tags repräsentiert.

## Beschreibung

Ein Element dient zum Auszeichnen von Text, um ihm eine Struktur zu geben. Ein Element wird durch einen Tag (‚Etikett, Markierung‘) dargestellt:
Das Element ist hierbei Bezeichner, welches durch den Start-Tag (öffnenden Tag) <Bezeichner> sowie dem End-Tag (schließenden Tag) </Bezeichner> gebildet wird. Der Bezeichner vom Start-Tag und End-Tag muss gleich lauten. Den Inhalt bildet der umschlossene Text:
Der Inhalt kann auch weitere Elemente und Texte enthalten.
Leer-Elemente sind Elemente, die keinen Text und weiteren Elemente enthalten.
In Web-SGML, XML und XHTML können Leer-Elemente mit dem Leer-Tag (engl. Empty Element Tag) gekennzeichnet werden. Der Leer-Tag entspricht in der Syntax einem Start-Tag, welcher mit der Zeichenfolge /> beendet wird.
In SGML und HTML wird ein Leer-Element mit einem Start-Tag gebildet. Nur Elemente
* deren Inhaltsmodell in der DTD mit EMPTY (leer) deklariert ist oder
* deren End-Tags in der DTD als minimierbar (engl. End Tag Minimization) deklariert sind oder
* deren Elemente als mögliche Leer-Elemente zugelassen sind (nur HTML Version 5)
sind als Leer-Elemente zulässig. Der End-Tag wird einfach weggelassen:
Zusätzliche Eigenschaften werden mit Attributen einem Element zugeordnet werden. Die Attribute werden nach dem Element-Bezeichner innerhalb des Start-Tags oder Leer-Tags angegeben.
Ein Attribut besteht aus einer Zuweisung Attributname="Attributwert" (Eigenschaftsname=Eigenschaftswert). Der Attributwert wird in doppelten "..." oder einfachen '...' Anführungszeichen gesetzt.
Mehrere Attribute werden getrennt mit Separatorzeichen (Leerzeichen, Tabulatorzeichen, Zeilenumbrüche) aufgelistet:
In XML, XHTML und HTML (Version 5) müssen die Paare, bestehen aus Zuweisungen von Attributname und Attributwert, stets vollständig angegeben. Die Attributwerte müssen stets in Anführungszeichen gesetzt werden. In SGML und HTML (Version 1 bis 4) ist die vollständige Angabe ebenfalls stets zulässig. Allerdings sind hier, abhängig von der DTD, auch Vereinfachungen möglich.

## Besonderheiten
### SGML

Bei SGML kann mit der Deklaration definiert werden, wie Elemente aussehen sollen (sie müssen nicht notwendigerweise in spitzen Klammern stehen). Ebenso kann die Beachtung der Groß-/Kleinschreibung und das Vorhandensein von Start- bzw. Endtag (Tag-Minimierung) eingestellt werden. Als EMPTY deklarierte Elemente dürfen keinen Endtag haben. Die Darstellung der Attribute kann ebenfalls mit der Deklaration definiert werden. Attribute können z. B. dergestalt minimiert sein, dass nur der Wert des Attributs angegeben wird.

### XML

Bei XML müssen alle geöffneten Elemente auch wieder geschlossen werden. Die Groß-/Kleinschreibung wird stets beachtet. Attribute müssen immer als Name-/Wert-Paar angegeben werden.
Inhaltsleere Elemente können in XML mit dem Leer-Tag, Kennzeichen />, angegeben werden:

### HTML (Version 1 bis 4)

Manche HTML-Elemente müssen nicht explizit geschlossen werden (z. B. <p>). Das liegt daran, dass HTML eine Anwendung von SGML ist, in der Tag-Minimierung aktiviert wird, die in der Dokumenttypdefinition (DTD) festgelegt wird. Ebenso können manche Attribute einfach durch ihren Inhalt angegeben werden.
Leer-Tags werden in folgender Form angegeben:
Die Tag-Minimierung ist aktiviert, d. h. nicht jedes Element muss explizit geschlossen werden:

### XHTML

In XHTML werden Leer-Elemente werden in der XML-Syntax dargestellt:
Eine Tag-Minimierung ist nicht möglich, jedes Element muss explizit geschlossen werden:

### HTML (Version 5)

In HTML5 werden Leer-Elemente werden wie in SGML und HTML (Version 1–4) angegeben:
Für bestimmte Elemente gibt es eine Art Tag-Minimierung wie in SGML. Hier für das Element <li> dargestellt

## Anwendungsbeispiel HTML (Version 4)

HTML benutzt bis Version HTML 4 auch Optimierungen von SGML, die es ermöglichen, Dokumente stark vereinfacht darzustellen (z. B. mit der Optimierung SHORTTAG). So ist z. B. das Folgende ein komplettes, dem Standard entsprechendes HTML-Dokument (Datei), verglichen mit dem kompletten Parse-Baum (vollständige Struktur im Browser):
| HTML-Dokument | vollständiger Parse-Baum |
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>HTML-Beispiel</> <p/Das ist ein Textabsatz./ | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>HTML-Beispiel</title> </head> <body> <p>Das ist ein Textabsatz.</p> </body> </html> |
Hierbei werden implizit folgende Ergänzungen vorgenommen:
* Durch das Öffnen des title-Elements wird das html- sowie head-Element geöffnet.
* Das title-Element wird durch die Zeichenkette </ wieder beendet.
* Durch das Öffnen eines Elements des Textkörpers (body) wird dieser implizit geöffnet und zuvor auch der Kopf (head) geschlossen.
* Das Start-Tag des p-Elements wird durch den ersten Schrägstrich (/) beendet. Der nächste Schrägstrich schließt das p-Element.
* Das Ende des Dokuments beendet den Textkörper sowie das html-Element.