Auszeichnungssprache

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Eine Auszeichnungssprache (englisch markup language) ist eine maschinenlesbare Sprache für die Gliederung und Formatierung von Texten und anderen Daten. Der bekannteste Vertreter ist die Hypertext Markup Language (HTML), die Kernsprache des World Wide Webs.[1]

Mit Auszeichnungssprachen werden Eigenschaften, Zugehörigkeiten und Darstellungsformen von Abschnitten eines Textes (Zeichen, Wörter, Absätze usw. – „Elementen“) oder einer Datenmenge beschrieben. Dies geschieht in der Regel, indem sie mit Tags markiert werden.

Wortherkunft und Geschichte[Bearbeiten]

Der typographische Begriff Auszeichnung kommt aus der Druckersprache. Ursprünglich war damit lediglich die Methode gemeint, Teile eines Textes durch von der Grundschrift abweichende Schriften zu gestalten, z. B. durch andere Schriftgrößen und -arten, aber auch durch Unterstreichen, Sperren oder andere Druckfarben. Für den Schriftsetzer wurden die entsprechenden Stellen früher handschriftlich auf dem zugehörigen Manuskript kenntlich gemacht; auch dies wurde Auszeichnen genannt.[2] Mit der Weiterentwicklung der Typografie für digitale Texte wurden daraus maschinenlesbare Sprachen, und das Konzept wurde auf Fußnoten, Literaturhinweise, Absätze, Überschriften etc. erweitert. Dann wurde der Gedanke der Trennung von Inhalt und Form (ursprünglich ein Schlagwort der Formalen Soziologie) populär, so dass in den Quelltexten für Dokumente Hinweise auf die Formatierung von Textteilen mehr und mehr durch Kennzeichnungen der Art von Information ersetzt wurden, die jeweils mitgeteilt werden sollte. Dies führte zu SGML als internationalem Auszeichnungsstandard (ISO 8879) 1986 und 1998 zur Spezifikation von XML durch das World Wide Web Consortium. XML wurde in den folgenden Jahren auch für andere Zwecke als für die Formatierung von Textdokumenten eingesetzt, etwa für Datenformate („Datenserialisierung“).

Wie ausgezeichneter Text aussieht[Bearbeiten]

Grundzüge[Bearbeiten]

Typische Auszeichnungssprachen kennzeichnen Teile („Elemente“) von Texten oder anderen Daten mit Tags. Die Quelltexte dafür werden mit einem computerlesbaren Zeichensatz verfasst, in der Regel ASCII oder Unicode, meist UTF-8. Oft bietet die Sprache auch die Möglichkeit, Sonderzeichen zu beschreiben, meist mit Hilfe einer numerischen Zuweisung (Unicode) oder durch Benennung (benannte Zeichenentitäten), für „µ“ zum Beispiel \mu in LaTeX und µ in HTML.

Ergebnis und Code in Beispielen[Bearbeiten]

Beispiel für … Darstellungs-
beispiel
HTML LaTeX MediaWiki-Wikitext
Überschrift Abschnitt <h2>Abschnitt</h2> \section{Abschnitt}
==Abschnitt==
Aufzählung
  • Punkt 1
  • Punkt 2
  • Punkt 3

<ul>
<li>Punkt 1
<li>Punkt 2
<li>Punkt 3
</ul>

\begin{itemize}
\item Punkt 1
\item Punkt 2
\item Punkt 3
\end{itemize}

* Punkt 1
* Punkt 2
* Punkt 3

Hyperlink W3C <a href="http://www.w3.org">W3C</a> \href{http://www.w3.org}{W3C} [http://www.w3.org W3C]
fetten Text fett <b>fett</b> \textbf{fett} '''fett'''
kursiven Text kursiv <i>kursiv</i> \textit{kursiv} ''kursiv''

Der Hyperlink mit LaTeX funktioniert nicht allgemein, jedenfalls aber mit dem Zusatzpaket hyperref und bei Erzeugung eines Ergebnisses im PDF-Format.

Beispiele „darstellender“ gegenüber „beschreibender“ Auszeichnung[Bearbeiten]

Fett“ und „kursiv“ in der vorigen Tabelle bedeuten eine bestimmte Darstellung (Formatierung, hier konkret Wahl eines Schriftschnitts), während „Überschrift“ ein semantisches Merkmal ist und im Allgemeinen keine Darstellung etwa als fett festlegt. In Druckwerken werden Überschriften statt durch Fetten auch durch Kapitälchen oder Kursivstellung formatiert. Zu HTML und LaTeX gibt die vorige Tabelle daher für „fett“ und „kursiv“ den Code für die Schriftauszeichnung an;[3] tatsächlich erzeugt die MediaWiki-Software der Wikipedia aus dem Wikitext '''fett''' den HTML-Code <b>fett</b>. Im Gegensatz dazu bietet HTML die semantische Auszeichnung durch strong an, was „Wichtigkeit“ ausdrücken soll,[4] Beispiel:

HTML Ergebnis mit Voreinstellungen
<strong>wichtig!</strong> wichtig!

Das HTML-Element strong wird also normalerweise (in Browser-Voreinstellungen) durch Fetten dargestellt.[5]

Analog zum Verhältnis des HTML-Elements b zum HTML-Element strong ist die Beziehung des HTML-Elements i zu em: Dieses Element steht für „Betonung“, seine voreingestellte Darstellung ist Kursivstellung.[6] In LaTeX gibt es ebenfalls eine „semantische Variante“ \emph der Darstellungsauszeichnung \textit:[7][8]

HTML LaTeX Ergebnis mit Voreinstellungen
<body>
eine <em>Betonung</em>
in normaler Umgebung
</body>
\begin{document}
eine \emph{Betonung}
in normaler Umgebung
\end{document}
eine Betonung in normaler Umgebung

Innerhalb eines kursiv gesetzten Texts aber ist Kursivstellung zur Betonung ungeeignet, LaTeX berücksichtigt das:

HTML Ergebnis mit Voreinstellungen
<i>eine <em>Betonung</em> in kursiver Umgebung</i> eine Betonung in kursiver Umgebung
\textit{eine \emph{Betonung} in kursiver Umgebung} eine Betonung in kursiver Umgebung
LaTeX Ergebnis

Wikitext verhält sich hier in gewisser Weise wie LaTeX; in HTML kann das Verhalten von LaTeX durch die CSS-Deklaration i em { font-style: normal; } (ansatzweise) erzielt werden. Nach HTML5-Spezifikation soll Verschachtelung von em-Elementen verstärkte Betonung ausdrücken[9] (was anscheinend noch kaum implementiert ist). LaTeX hingegen schaltet bei Verschachtelung von \emph nur zwischen Kursiv- und Aufrechtstellung hin und her, so dass beim Lesen dreifache Betonung von einfacher Betonung nicht zu unterscheiden ist. Letztlich sind demnach gebräuchliche und gleichzeitig sinnvolle Implementierungen von „Betonung“ in HTML nur für die einfachsten Fälle und in LaTeX nur für die einfachsten und die zweiteinfachsten Fälle bekannt.

Bei HTML wurde lange angestrebt, darstellende (der Jargon ist in diesem Falle „präsentationale“) Elemente abzuschaffen[10] (HTML4-Varianten „strict“[11] vs. „transitional“). Mit HTML5 soll dieses Ziel erreicht sein,[12] obwohl b und i immer noch vorhanden sind – für Fälle, in denen Fetten bzw. Kursivstellung „dringend erwünscht“ ist. Eine Aufzählung von Fällen, in denen die konkrete Schriftschnittwahl angebracht ist, wird als „semantische Definition“ der beiden Elemente betrachtet.[13]

Innere Systematik – Abstraktionsstufen[Bearbeiten]

„Darstellend“ gegenüber „beschreibend“ – Übersicht[Bearbeiten]

1981 unterschied Charles Goldfarb auf einer Konferenz[14] (der „Lausanne-Konferenz“)[15] und in einem einflussreichen[16] Artikel[17] zwischen prozeduraler (englisch procedural markup) und deskriptiver („beschreibender“, englisch descriptive markup) Auszeichnung von Dokumenten. 1987 wurde präsentational (englisch presentational markup) im Zusammenhang mit WYSIWYG-Textverarbeitung als weitere Art Text auszuzeichnen genannt.[18][19][20] Recht bald[21] wurde „präsentational“ jedoch als mit „prozedural“ synonym (oder als Oberbegriff davon, dazu unten #„Prozedural“ und „präsentational“) verwendet – wir nennen das hier „darstellend“. Letzeres bestimmt die Textformatierung, also etwa die Schriftauszeichnung durch Wahl einer Schriftart, eines Schriftschnitts, des Schriftgrads, einer Schriftfarbe oder einer Unterlegung; auch die Ausrichtung von Text (relative Abstände, absolute Position auf der Seite).[22] Weitere Synonyme wurden später häufiger verwendet:[23]

zu „darstellend“/„präsentational“
visuell, physisch, spezifisch;
zu „deskriptiv“
strukturell, deklarativ, verallgemeinert („generalized“), generisch, inhaltlich, logisch, konzeptuell (englisch conceptual markup),[24] semantisch.

Der Ausdruck generic coding anstelle von descriptive markup stammt von William W. Tunnicliffe. Furuta verwendete 1992 zur Darstellung von Goldfarbs (und Brian Reids, s. u.) Unterscheidung nicht „prozedural“ und „deskriptiv“, sondern „präsentational“ und „generisch“[16] (außerdem separation between content specification and format specification[19] und zu „generisch“ logical structure rather than its physical appearance.)[25] In den Spezifikationen (und Entwürfen) zu HTML 4.0 und HTML 4.01 ist das vorherrschende Gegensatzpaar „präsentational“ (auch presentation elements and attributes)[26] versus „strukturell“[26] (Separate structure and presentation),[27] auch von visual formatting ist die Rede.[22]

Zu Beginn seines Artikels erklärt Goldfarb,[28], das Markup trenne die logischen Elemente voneinander und gebe („typischerweise“ – wohl in Bezug auf das bis dahin bekannte prozedurale Markup) die Verarbeitungsfunktionen („processing functions“) an, die auf diese Elemente angewendet werden sollen.

Popularität beschreibender Auszeichnung (Vorteile, historische Entwicklung)[Bearbeiten]

Goldfarb, William W. Tunnicliffe und Brian Reid empfahlen damals,[16] Dokumente beim Verfassen nur „beschreibend“ auszuzeichnen – z. B. Phrasen und Blöcke nur als „Titel“, „Abschnittsüberschrift“, „Blockzitat“ usw. zu kennzeichnen –, um typografisch hochwertigen Satz auch ohne typografische Fachkenntnisse und Programmierkenntnisse der Verfasser zu ermöglichen, den Darstellungsstil mit geringem Aufwand ändern zu können, nicht auf bestimmte Werksatzanbieter angewiesen zu sein und um automatische Informationsgewinnung zu erleichtern, etwa um beim Durchsuchen von Dokumenten nach Stichwörtern Vorkommnisse in Überschriften stärker zu gewichten. Goldfarb[29] weist etwa darauf hin, dass durch die bloße Kennzeichnung von Wörtern als zu zentrieren die Information verloren geht, ob es sich um eine Überschrift oder die Beschriftung einer Tabelle oder Abbildung handelt. Deskriptive Auszeichnung erleichtert auch die Darstellung in unterschiedlichen Ausgabeformaten/-geräten wie HTML, PDF und Screenreader (Barrierefreiheit, vgl. Accessible Rich Internet Applications).[12] Im Falle von HTML kann die Nutzung präsentationaler Attribute anstelle von Stylesheets auch die HTML-Dateien „aufblähen“. Entsprechend wurde später bei HTML darauf hingearbeitet, nur „strukturelle“ oder „semantische“ Elemente und Attribute anzubieten und die Darstellung völlig in die Cascading Style Sheets auszulagern (Trennung von Inhalt und Form).

William W. Tunnicliffe sprach sich bereits 1967 auf einer Konferenz für die Trennung von Inhalt und Form in der Textverarbeitung aus, was jedoch zunächst geringe Wirkung hatte (immerhin gibt Goldfarb an, davon beeinflusst worden zu sein). 1981 stellte Brian Reid sein Satzsystem Scribe in derselben Sitzung der „Lausanne-Konferenz“ vor, in der Goldfarb seine Ideen vorstellte.[14] Scribes Trennung von Inhalt und Form(atierung) beeindruckte als besonders gut gelungen.[19] In den nächsten Jahren entwickelte Leslie Lamport das Makropaket LaTeX für das TeX-Programm besonders mit der Motivation, ebenfalls Autoren eine deskriptive Auszeichnungssprache anzubieten.[30] 1985 wurde es veröffentlicht. Bereits 1992 war LaTeX für wissenschaftliche Veröffentlichungen sehr populär.[16] In den nächsten Jahren übernahm ein fast rein europäisches Entwicklungsteam die Weiterentwicklung von LaTeX von Lamport und verbesserte seine Flexibilität hinsichtlich Verwendung unterschiedlicher „Stylesheets“ (Makrodefinitionsdateien mit Endungen .sty für „style“ wie bei Lamport und .cls für die Deklaration der „Dokumentenklasse“ mit \documentclass) und hinsichtlich der Verwendung mit nicht-englischen Sprachen, wodurch die Bedeutung von LaTeX noch gesteigert wurde.[31]

Tunnicliffe und Goldfarb führten dagegen die Weiterentwicklung von IBM Generalized Markup Language zu SGML als Grundlage für die Definition rein deskriptiver Auszeichnungssprachen an, woraus später XML entstand, das im Werksatz ebenfalls eine bedeutende Rolle spielt.

Definition als „Sprache“[Bearbeiten]

Eine Auszeichnungssprache sollte eine Sprache sein, die auch maschinenlesbar ist. Dazu müssen jeweils Syntax und Semantik angegeben werden, was in folgenden Fällen zutrifft:

  1. Der Quellcode eines Dokuments ist ein Programm mit Anweisungen einer (domänenspezifischen) Programmiersprache; Syntax und Semantik sind also wie bei anderen Programmiersprachen auch definiert und bilden eine formale Sprache, deren Syntax etwa durch Produktionsregeln (etwa in Backus-Naur-Form). Dies gilt etwa für PostScript, troff und TeX (für dieses auf Token-Ebene nach Expansion von Makros u. a.).[32]
  2. Bei gemäß SGML bzw. XML definierten Auszeichnungssprachen wird jedenfalls die Syntax präzise durch eine Dokumenttypdefinition dargestellt. Unter Umständen gibt das World Wide Web Consortium auch eine (informelle) Semantik an, die aus an Nutzer und Entwickler gerichteten Empfehlungen besteht.

Etwas schwieriger ist es im Fall von TeX und LaTeX, wo durch Makrodefinitionen (hauptsächlich vor dem Einlesen des Codes, der den Inhalt eines Dokuments darstellt) eine sehr umfangreiche „prozedurale“ Sprache (wir greifen etwas vor) entsteht. Durch die Wahl „sprechender“ Makronamen entsteht jedenfalls eine „Illusion“ von rein „deskriptiver“ Auszeichnung. Durch Verschweigen (im Handbuch) oder Verbieten[33] der durchaus verfügbaren Möglichkeiten „prozeduraler“ oder „präsentationaler“ Auszeichnung kann man zu einer „rein deskriptiven“ Auszeichnungssprache gelangen. Auf ähnliche Weise war HTML 4.01 Strict eine durch „Verbieten“ präsentationaler, von Browsern aber weiterhin interpretierter Elemente und Attribute eine rein deskriptive Auszeichnungssprache.

„Prozedural“ und „präsentational“[Bearbeiten]

In einem bedeutenden[16] Aufsatz von 1987[18] wurden neben „prozedural“ und „deskriptiv“ weitere Auszeichnungsarten beschrieben, von denen der XML-Koautor Tim Bray in seinem Blog[20] „präsentational“ übernahm. Gemeint war mit letzterem solches Markup, das von WYSIWYG-Textverarbeitungsprogrammen automatisch in den Dokument-Quellcode eingefügt wurde, wenn Nutzer bestimmte Tastenkombinationen eingaben (genannt wird WordStar). Statt des Quellcodes bekommt der Nutzer aber nur eine Vorschau der Druckausgabe zu sehen. „Präsentational“ hat hierbei offenbar eine andere, speziellere Bedeutung als in den HTML-Spezifikationen, in denen keine Rede von WYSIWYG-Editoren ist. Eine Gemeinsamkeit besteht aber darin, dass der Auszeichnungscode knapper ist als der für „auffällig prozedurales Markup“ in folgendem Sinne ist:

In dem von Goldfarb[28] angegebenen Beispiel geht einer Liste, wie sie etwa in HTML mit <ol> eingeleitet wird, folgender Code voraus:

.tb 4
.of 4
.sk 1

Die ersten beiden Zeilen stellen dabei Wertzuweisungen für Parameter dar, die den hängenden Einzug des folgenden Absatzes steuern, die dritte Zeile erzeugt dessen vertikalen Abstand zum vorhergehenden Absatz. Die dabei verwendete Auszeichnungssprache ist das (troff-ähnliche) SCRIPT. Es handelt sich offenbar um einen Teil eines Computerprogramms in einer imperativen Programmiersprache. <ol> in HTML ist kürzer und verzichtet auf Details der Formatierung. Das Beispiel ist allerdings nur dazu geeignet, Goldfarbs Vorstellung von „prozeduraler Auszeichnung“ anzudeuten, und illustriert nur den Unterschied zur „deskriptiven Auszeichnung“.

Bray illustriert „prozedurales Markup“ mit den PostScript-Befehlen gsave und grestore.[34] Diese beiden Befehle verhalten sich zueinander wie \begingroup und \endgroup in TeX.[35][36] Die Anweisung \begingroup bewirkt, dass bei jeder folgenden Parameterwertänderung der vorige Parameterwert in einem Stapelspeicher abgelegt wird. Der entsprechende Befehl \endgroup stellt die Parameterwerte vor dem entsprechenden \begingroup wieder her. Beide Befehle haben keine unmittelbare Auswirkung auf die Formatierung, die Wirkung hängt vielmehr davon ab, die Werte welcher Parameter zwischen ihnen geändert werden.

In PostScript gibt es außerdem den Befehl selectfont, der an den LaTeX-Befehl \selectfont erinnert:[37]

 %!
 /Courier
 20 selectfont
 72 500 moveto
 (Hallo Welt!) show
 showpage

Insgesamt legen die vorigen Beobachtungen folgendes Beispiel nahe:

Kursivstellung mit HTML und LaTeX, letzteres mit high-level- gegenüber low-level-Befehlen
Darstellung HTML LaTeX high-level LaTeX mit \begingroup LaTeX mit { statt \begingroup
kursiv gesetzt
<body>
<i>kursiv</i> 
gesetzt
</body>
\begin{document}
\textit{kursiv}
gesetzt
\end{document}
\begin{document}
\begingroup
\fontshape{it}\selectfont
kursiv\/\endgroup\ 
gesetzt
\end{document}
\begin{document}
{\fontshape{it}\selectfont
 kursiv\/} gesetzt
\end{document}

Die beiden low-level-Beispiele rechts kommen dem sehr nahe, wie LaTeX den high-level-Befehl \textit tatsächlich umsetzt. \endgroup gesetzt würde in „kursivgesetzt“ resultieren, daher wird \endgroup\ verwendet. Die Notwendigkeit dieses Tricks vermeidet man im rechten Beispiel, wo die geschweiften Klammern die Befehle \begingroup und \endgroup vertreten, während sie nach \textit nur dessen Anwendungsbereich angeben. Der Befehl \/ verhindert, dass durch die Rechtsneigung des „v“ der Abstand zwischen „kursiv“ und „gesetzt“ optisch zu eng ausfällt (sogenannte Kursivkorrektur).

In allen vier Beispielen liegt eine darstellende Auszeichnung vor, die den Schriftschnitt variiert. Einer der Nachteile prozeduraler Auszeichnung, die Goldfarb nennt,[38] soll darin bestehen, dass es die Beherrschung einer Vielzahl von Programmierbefehlen erfordert, als Beispiel nennt er ausdrücklich Knuths TeX. Die Kursivkorrektur ist auch eine typografische Feinheit, deren Notwendigkeit bei der Nutzung von TeX für Autoren nicht selbstverständlich ist. Der LaTeX-Befehl \textit erspart dem Anwender die Kenntnis einiger low-level-Befehle und der Kursivkorrektur. Das i-Element ist ebenso einfach zu beherrschen. Goldfarbs hier angesprochener Kritikpunkt richtet sich (im Unterschied zu anderen) offenbar nicht gegen jede darstellende Auszeichnung, sondern nur gegen programmiersprachenartige Auszeichnung wie in den beiden Beispielen rechts und gegen PostScript-Befehle weiter oben.

Im Falle des HTML-Beispiels erscheint die Bezeichnung der Auszeichnung durch <i> und </i> als „prozedural“ auch unpassend. Während in den „umständlichen“ Beispielen einzelne Befehle an den Textprozessor gerichtet werden (Goldfarb: „processing functions“),[28] die erst durch ihre Kombination die gewünschte Darstellung erreichen, stellt das i-Element nur eine abstrakte Schnittstelle zum Webbrowser dar, dessen prozedurale Verarbeitung des linken Beispiels für Verfasser von HTML-Dokumenten gar nicht zugänglich ist. Der Unterschied ähnelt dem zwischen imperativer Programmierung („echt prozedural“ in den rechten Beispielen) und deklarativer Programmierung, in der die Algorithmen zum Erreichen eines beschriebenen Zustands (hier: Kursivschrift) nicht explizit genannt werden.

„Prozedurale“ und „deskriptive“ Auszeichnungssprachen[Bearbeiten]

In der Literatur wird auch von „deskriptiven Auszeichnungssprachen“ (englisch descriptive markup languages“)[39] im Gegensatz zu „prozeduralen Auszeichnungssprachen“ (englisch procedural markup languages) gesprochen;[40] wann eine Aussprache „prozedural“ bzw. „deskriptiv“ ist, soll vielleicht im Anschluss an Erläuterungen von „prozeduraler Auszeichnung“ bzw. „deskriptiver Auszeichnung“ selbstverständlich sein. Eine „deskriptive Auszeichnungssprache“ dürfte eine Auszeichnungssprache sein, die weder „prozedurales“ noch „präsentationales“ Markup ermöglicht, also „rein deskriptiv“ ist – wie es die Intention/„Philosophie“[41] von SGML war. Dies trifft auf DocBook und TEI zu. Das Prädikat „prozedurale Auszeichnungssprache“ scheint auf Auszeichnungssprachen zuzutreffen, in denen Wertzuweisungen und andere Ähnlichkeiten mit imperativen Programmiersprachen „unübersehbar“ sind, vielleicht auch auf Auszeichnungssprachen, die Formatierungsanweisungen in eher deklarativer Weise geben, wie HTML (vor HTML5). Jedenfalls könnten PostScript, TeX und troff dazu gezählt werden.[34]

Die vorige Deutung steht allerdings im Widerspruch dazu, dass LaTeX laut Furuta[19] (und dem 1994er LaTeX-Begleiter[42] „in hohem Maße“) eine „generische Markup-Sprache“ sein soll, trotz des darstellenden \textit (mit dem im LaTeX-Begleiter beschriebenen LaTeX 2e) bzw. \it (mit dem 1992 gültigen LaTeX 2.09). Vielleicht ist eine generische (oder deskriptive) Markup-Sprache doch eine Sprache, die neben präsentationalem Markup auch ein „gewisses Maß“ an generischem Markup bietet.

Darstellungsstufen[Bearbeiten]

Auf eine Arbeit von 1988 unter seiner Beteiligung Bezug nehmend, spricht Furuta[43] von drei „Erscheinungsformen“ (representations) eines Dokuments:

  1. einer abstrakten, die durch Bearbeitung mit einem Editor verändert wird (abstract representation),
  2. einer physischen, die aus einer abstrakten durch Formatierung entsteht (physical representation), und
  3. einer Seitenerscheinungsform, die für ein bestimmtes Ausgabegerät erforderlich ist (page representation).

Entsprechend ist der Artikel gegliedert. (Beim Übersetzen muss man unterschiedliche Wörter für presentation und representation finden.)

Durch „darstellendes Markup“ kann man wie oben (beginnend mit Beispiele) besprochen Schriftschnitt, Farben, und Textausrichtung bestimmen, ein entsprechender Abschnitt in den Spezifikationen zu HTML 4.0 und 4.01[22] beschreibt diesen „physischen“ Aspekt einigermaßen umfassend. In HTML5 ist mit dem style-Attribut eine Möglichkeit verblieben, z. B. Schriftschnitte (durch CSS-Code) zu wählen, auch Tabellen bewirken eine „physisch“ einigermaßen strikte Darstellung, die der seitenorientierten Darstellung näher kommt als die Wahl von Schriftschnitten. Auszeichnung dieser Art entspricht dem ursprünglichen, engeren Begriff (Textformatierung bzw. traditionelles Auszeichnen wie am Anfang des Artikels beschrieben).

Was bei solcher Auszeichnung im Allgemeinen nicht bestimmt wird, ist in einem Fließtextabsatz der Zeilenumbruch. Bei einem Wort ab der Mitte eines längeren Absatzes lässt man sich davon „überraschen“, ob es im dargestellten Absatz auf dem Bildschirm oder auf der ausgedruckten Seite eher links oder eher rechts steht oder ob es beim Zeilenumbruch getrennt wird. So ist es auch bei der üblichen Verwendung von LaTeX, ConTeXt und plain TeX. Bei Bedarf kann man (mit etwas fortgeschrittenen Kenntnissen) die Zeilen eines Absatzes manuell fixieren (bei Webseiten mit white-space: nowrap und <br>, bei LaTeX mit \makebox und \linebreak. Häufiger ist man in einzelnen Fällen mit dem automatischen Zeilenumbruch nicht zufrieden und legt einen Zeilenwechsel manuell fest, oder man unterbindet einen Zeilenumbruch innerhalb einer Phrase. Neben dem Zeilenumbruch werden auch die Zeilenabstände typischerweise automatisch bestimmt (sie sollten gleichmäßig sein, etwa bei mathematischen Formeln mit Brüchen müssen sie aber oft größer gewählt werden). TeX trat auch mit der Besonderheit hervor, die Zeichen in mathematischen Formeln in verschiedenen Größen zu setzen und relativ zueinander zu so anzuordnen, dass die Proportionen hohen typografischen Ansprüchen genügen.

Gegenüber Webseiten muss im Drucksatz zusätzlich der Seitenumbruch bestimmt werden. Auch den überlässt man meist dem Satzprogramm und korrigiert das automatische Ergebnis gelegentlich manuell. Bei der Gestaltung der Titelseite eines Buchs überlässt man dagegen „nichts dem Zufall“.

Dateiformate, die alle Zeilenumbrüche in Fließtexten einer Ausgabeseite und auch die exakte Position von Textelementen und Grafiken auf ihr fixieren und festlegen, heißen (oder entsprechen) Seitenbeschreibungssprachen.[44] Solche sind etwa PostScript und PDF von Adobe, das ursprüngliche Ausgabeformat DVI von TeX oder XML Paper Specification von MicroSoft (weitere im Hauptartikel). PDF und DVI kann man allerdings nicht in einem Texteditor betrachten und ändern oder verfassen. In Postscript ist dies möglich, man kann im Prinzip ein Buch in PostScript verfassen und bestimmt dabei ähnlich wie mit der Schreibmaschine die exakten Positionen aller Zeichen auf den einzelnen Seiten. In der Praxis werden PostScript-Dateien eher etwa aus mit LaTeX ausgezeichneten Quelltextdateien erzeugt, indem man die von TeX erzeugte DVI-Datei mit einem weiteren Programm (dvips) in PostScript umwandelt.

Im Allgemeinen versieht also der Verfasser den Text nur mit deskriptivem oder auch „physischem“ Markup (in einem Editor), ohne Zeilen-/Seitenumbrüche festzulegen, diese (und weitere Anordnungsweisen) werden vielmehr automatisch erzeugt und unter Umständen in einer Seitenbeschreibungsdatei abgelegt. Seitenbeschreibungsdateien kann man mit einem Viewer wie Ghostview (Postscript), Adobe Reader (PDF) oder YAP (für DVI unter Windows) bzw. xdvi (für DVI unter Linux – vgl. DVI-Betrachter) als Vorschau am Bildschirm betrachten und ausdrucken lassen. Sie sind auch für den elektronischen Austausch von Dokumenten bzw. ihre Verbreitung gegenüber den Quellformaten vorteilhaft, da sie dem Empfänger das Neuerzeugen der Ansichtsversion des Dokuments (was sogar scheitern kann) ersparen.

Die „Seitenerscheinungsform“ oder „Seitendarstellung“ eines Dokuments muss jedoch nicht als eigene Seitenbeschreibungsdatei vorliegen. Bei manchen „Editoren” kann/konnte man sie „direkt“ am Bildschirm betrachten oder ausdrucken. troff wurde zu ditroff erweitert, das eine eigene Seitenbeschreibungsdatei erzeugen kann, andere Textverarbeitungsprogramme wurden mit der Möglichkeit ausgestattet, PDF zu erzeugen.

Bei Webbrowsern (genauer: HTML-Renderern) und E-Book-Readern wird die Seitendarstellung (der Umbruch von Fließtextabsätzen) schnell an sich ändernde Fensterbreiten angepasst.

Nutzerfreundliche Frontends[Bearbeiten]

Der folgende Absatz bedarf einer Überarbeitung: 1. Was ist eine klassische Auszeichnungssprache? (1b: Ist die Zebra Programming Language eine klassische Auszeichnungsprache? 1c: Sind HTML und XHTML vielleicht die einzigen klassischen Auszeichnungssprachen, um die es hier geht?) 2. Welche werden auch durch Skriptsprachen erzeugt, und zwar durch welche? 3. Was bedeutet der letzte Satz? 4.  auf WYWIWYG-Editoren könnte man vielleicht später noch genauer eingehen, habe da noch was in petto. (Die Fragen werden direkt dem Autor vorgelegt.) Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Klassische Auszeichnungssprachen, die viele Details exakt darstellen können, müssen nicht unbedingt von Menschen direkt verwendet werden können, sondern werden oft maschinell durch Skriptsprachen erzeugt. Müssen aber die Quelltexte manuell geschrieben werden oder für Menschen lesbar sein, so können diese entweder mit WYSIWYG grafisch aufbereitet oder direkt durch einfache Auszeichnungssprachen (s. u.) dargestellt werden. Im Gegensatz zu WYSIWYG muss der Text zum Schreiben und Lesen nicht bearbeitet werden.

Vereinfachte Auszeichnungssprachen[Bearbeiten]

Merkmale[Bearbeiten]

Beiträge Wikis, Blogs, Internetforen werden typischerweise in Webformularfenstern verfasst. Die Gestaltungsmöglichkeiten können dabei sehr begrenzt sein, was einem gepflegten Erscheingsbild der sich ergebenden Seiten zugute kommen kann. Obwohl das Zielformat (in dem die Beiträge den Lesern präsentiert werden) HTML oder XHTML ist, wird HTML-Eingabecode im Formular allenfalls begrenzt akzeptiert (sonst weggefiltert). Das Markup verwendet (von den URLs für Hyperlinks abgesehen) oft nur (ungewöhnliche Kombinationen von) Interpunktionszeichen oder jedenfalls Zeichen, die keine Buchstaben sind; oder wenige HTML-Tags werden verkürzt und entsprechende Elemente nicht geschlossen (ähnlich wie in SGML), etwa

Textile Übersetzung in XHTML Beispieldarstellung
h3. Unterabschnitt <h3>Unterabschnitt</h3> Unterabschnitt

(ähnlich Haml). Dadurch stört das Markup den Lesefluss beim Verfassen des Beitrags im Formularfenster minimal. Für die Darstellung der Dokumente wird dieses Markup dann in die dafür erforderliche komplexere Auszeichnungssprache wie HTML oder XHTML serverseitig umgewandelt, etwa durch Pandoc oder, wie im Falle der Wikipedia, durch die MediaWiki-Software.

Markup-Beispiele mit zwei vereinfachten Auszeichnungssprachen
MediaWiki-Wikitext Markdown so … … oder so: ergibt XHTML Darstellungs-
beispiel
==Abschnitt==
##Abschnitt
<h2>Abschnitt</h2> Abschnitt

* Punkt 1
* Punkt 2
* Punkt 3

- Punkt 1
- Punkt 2
- Punkt 3

* Punkt 1
* Punkt 2
* Punkt 3

<ul>

<li>Punkt 1</li>
<li>Punkt 2</li>
<li>Punkt 3</li>
</ul>

  • Punkt 1
  • Punkt 2
  • Punkt 3
[http://www.w3.org W3C] [http://www.w3.org](W3C) <a href="http://www.w3.org">W3C</a> W3C
'''fett'''
**fett**
__fett__ <b>fett</b> fett
''kursiv'' *kursiv* _kursiv_ <i>kursiv</i> kursiv

Weiter verzichten vereinfachte Auszeichnungssprachen typischerweise auf Nutzung einfacher Codezeilenumbrüche und des Einrückens von Code allein zu dessen Strukturierung (im Sinne der Lesbarkeit und Verständlichkeit); vielmehr beendet etwa im Falle von MediaWiki ein Codezeilenumbruch einen in der Darstellung eingerückten Absatz („hängender Einzug“) einer Liste oder eines Blockzitats. Ein sofort folgendes Sternchen (*) beginnt einen (neuen) Listenpunkt und wird als typografisches Aufzählungszeichen dargestellt. Nachteil dieser Methode sind mögliche Kollisionen mit einer anderen Funktion der entsprechenden Zeichen, die Fehler verursachen können. In Markdown z. B. beginnt ein kursiv geschriebener Text mit dem Sternchen (ich rufe *laut* um Hilfe), was am Zeilenanfang (*laut* rufe ich um Hilfe) mit der Verwendung für einen Listeneintrag kollidieren kann. Eingerückter Code (d. h. dem Codezeilenumbruch folgt mindestens ein Leerzeichen) wird in Wikitext „verbatim“ als „Code“ (ohne Syntaxhighlighting) dargestellt. Weitere und genauere Beispiel bieten die Artikel Wikitext und Markdown sowie die weiteren Artikel in der Kategorie:Vereinfachte Auszeichnungssprache.

Neben rein logischen („deskriptiven“) Auszeichnungen wie Überschriften und reinen Schriftauszeichnungen wie fett können weitere Funktionen erfüllt werden:

  • Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zur Kategorisierung;
  • Transklusionen, um Teile anderer Dokumente durch einen Verweis einzuschließen.

Zwar ist das hauptsächliche Zielformat solcher Sprachen HTML oder XHTML, jedoch können viele von ihnen dank Pandoc (in eingeschränkter Weise) sogar als Frontend für LaTeX und ConTeXt verwendet werden und so letztlich PDF als Zielformat haben, oder sie können so in Textverarbeitungsformate, E-Books und Dokumentationsformate (DocBook, Manpages) umgewandelt werden.

Historische Entwicklung[Bearbeiten]

Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen (z. B. Readme oder E-Mails) zur Darstellung von Hervorhebungen wie Kursiv oder Fett verwendet, ohne dass diese weiter umgewandelt wurden. Besonders ist die Syntax von Markdown – das mit umgewandelt wird – eng an diese historische Praxis angelehnt.

Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicher Software gebildet, es gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind.

Die wohl erste vereinfachte Auszeichnungssprache mit Umwandlung wurde 1994 von Ward Cunninghams entwickelt und 1995 als WikiWikiWeb zusammen mit dem Portland Pattern Repository veröffentlicht, siehe auch Chronologie der Hypertext-Technologien.

Daten[Bearbeiten]

YAML und seine Untermenge JavaScript Object Notation (JSON) sind vereinfachte Auszeichnungssprachen für die Datenserialisierung.

Äußere Systematik: Einordnung als Programmiersprache oder Datenformat[Bearbeiten]

Dateinamenserweiterungen und MIME-Typen
ausgewählter Auszeichnungssprachen
Auszeichnungssprache Dateiendung MIME-Typ
HTML .htm, .html text/html
PostScript .ps application/postscript
Rich Text Format .rtf text/rtf
TeX/LaTeX .tex text/x-tex
XML .xml text/xml

Zur Frage, ob eine Auszeichnungssprache eine Programmiersprache ist oder nicht, oder ob eine bestimmte Auszeichnungssprache wie HTML eine Programmiersprache (eine HTML-Datei ein „Programm“)[45] ist oder nicht,[46] finden sich gegensätzliche Äußerungen. Zu XML erklärte das W3C 2001, es sei keine Programmiersprache, sondern biete Regeln zum Festlegen von Textformaten zur Strukturierung von Daten,[47] also zum Festlegen von Datenformaten (damit steht es nicht allein).[48] Tatsächlich ergab die Entwicklung von SGML zu XML die Möglichkeit, Auszeichnungssprachen zu völlig anderen Zwecken als dem ursprünglichen – der Vorbereitung von Texten – zu nutzen. Beispielsweise wird die Konfiguration des Linux-Fenstermanagers Openbox in einer XML-Datei abgelegt; statt Zeilen der Gestalt key=value wie in den Konfigurationsdateien anderer Programme findet man hier <key>value</key> (vgl. anderes Beispiel), und übergeordnete Elemente wie mouse werden zur Gliederung der ungefähr 900 Zeilen umfassenden Datei verwendet. Es ist ganz und gar nicht beabsichtigt, diese Konfigurationsdatei als „Dokument“ zu „setzen“. Der Artikel XML nennt weitere Beispiele solcher ursprünglich nicht intenderter Anwendungsweisen von XML. Als Datenformat ist die in einer (Dokument‑)Datei verwendete Auszeichnungssprache an den Dateinamenserweiterungen erkennbar (siehe Tabelle). Diejenigen Auszeichnungssprachen, die noch zum Erstellen von Dokumenten gedacht sind (HTML, PostScript, troff, LaTeX, RTF), bilden Dokumentenformate. Binäre Dokumentenformate (.doc, .pdf, das Ausgabeformat DVI von TeX) sind keine Auszeichnungssprachen.

Von den Musterbeispielen prozeduraler Auszeichnungssprachen[34]PostScript, TeX und dem Nachkömmling troff des urzeitlichen RUNOFF (auf das auch Goldfarbs GML aufsetzte) ist bekannt, dass sie Turing-vollständig sind. Insofern können diese beliebig komplexe Algorithmen darstellen und erfüllen so ein wesentliches, allgemein anerkanntes Merkmal von Programmiersprachen. XSLT bildet eine weitere Turing-vollständige Programmiersprache, deren „Befehle“ jedoch wie bei den vorgenannten „Sprachen“ für die Darstellung mit XML „deskriptiv“ ausgezeichneter Dokumente ausgelegt sind und die kurioserweise selbst in einem „XML-Datenformat“ notiert ist.[49] Ebenso ist die in XML notierte Sprache XQuery für XML-Datenbanken Turing-vollständig.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  •  James H. Coombs, Allen H. Renear und Steven J. DeRose: Markup Systems and the Future of Scholarly Text Processing. In: Communications of the ACM. Band 30, Nr. 11, November 1987, ISSN 0001-0782, S. 933–947, doi:10.1145/32206.32209. Vollständige HTML-Fassung, abgerufen am 7. Juli 2015; Scan des Originalartikels (PDF 709 KiB).
  •  Robin Cover: SGML: A Textual Representation for Information Structure. In: Summer Institute of Linguistics, Inc. (Hrsg.): Notes on Computing. Band 16, Nr. 5, September-Oktober 1997 (Volltext als HTML, abgerufen am 27. Juli 2015).
  •  Michael Downes: TeX and LaTeX 2e. In: Notices of the AMS. 49, Nr. 11, Dezember 2002, S. 1384–1391 (PDF-Datei; 822 KiB, abgerufen am 26. Juli 2015).
  •  Richard Furuta: Important papers in the history of document preparation systems: basic sources. In: Electronic Publishing: Origination, Dissemination & Design. Band 5, Nr. 1, John Wiley & Sons, Chichester, UK März 1992, S. 19–44 (Relevante Abschnitte: 4, 5, 6.1, 6.2, PDF-Download von CiteSeerx, abgerufen am 7. Juli 2015).
  •  Charles Goldfarb: A Generalized Approach to Document Markup. In: Proceedings of the ACM SIGPLAN SIGOA Symposium on Text Manipulation (= SIGPLAN Notices. Band 16, Nr. 6). Juni 1981, S. 68–73 (PDF-Download von CiteSeerx, abgerufen am 9. Juli 2015).
  •  Michel Goossens, Frank Mittelbach und Alexander Samarin: Der LaTeX-Begleiter. 1. Auflage. Addison Wesley, Bonn u. a 1994 (Originaltitel: The LaTeX Companion, übersetzt von Claudia Kraft und Rebecca Stiels), ISBN 3-89319-646-3, Abschnitt 1.3 – Generisches Markup – und 1.4 – Die Notwendigkeit des visuellen Markups, S. 7–10 (Motivation von LaTeX durch die Beiträge Goldfarbs und Reids, die auch erläutert werden. Abschnitt 1.3.3 trägt den Titel „Die Trennung von Inhalt und Form“. Bemerkenswerterweise findet sich davon in der zweiten Ausgabe (Mittelbach und Goossens 2004f., s. u.) nur noch Bemerkungen zum Verhältnis von LaTeX zu Reids Scribe (S. 2) und ein Satz am Anfang des zweiten Kapitels, beides in völlig anderer Terminologie.).
  •  Dmitry Kirsanov: Chapter 3: SGML and HTML DTD. Procedural and Descriptive Markup. In: Rick Darnell et al. (Hrsg.): HTML Unleashed. 1. Auflage. sams.net, Indianapolis, IN 1997, ISBN 1575212994, LCCN 97-065136 (HTML-Fassung des Kapitelabschnitts, abgerufen am 23. Juli 2015).
  •  Frank Mittelbach und Michel Goossens, mit Johannes Braams, David Carlisle und Chris Rowley sowie Beiträgen von Christine Detig und Joachim Schrod: The LaTeX Companion, Second Edition. 4., überarbeitete Auflage. Addison-Wesley, Boston, MA u. a. 2005, ISBN 0-201-36299-6, Abschnitt 1.1: A brief history, S. 1–6, LCCN 2003-070810.
  •  Eric Steven Raymond: The Art of Unix Programming. Addison-Wesley Professional Computing Series. Addison-Wesley Professional, Boston 2004, ISBN 0-13-142901-9, Kapitel 8. Minilanguages (u. a. zur Turing-Vollständigkeit einzelner Auszeichnungssprachen, Kapitelanfangsseite der HTML-Version vom 23. September 2003, abgerufen am 13. Juli 2015).

Weblink[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. HTML5 – A vocabulary and associated APIs for HTML and XHTML. W3C Recommendation 28 October 2014. W3C, 28. Oktober 2014, abgerufen am 10. Juni 2015 (englisch): „the core language of the World Wide Web: the Hypertext Markup Language (HTML)“
  2. Meyers enzyklopädisches Lexikon, Mannheim 1971. Band 3, S. 188.
  3. HTML 4.01 Specification – W3C Recommendation. 15.2 Fonts. 24. Dezember 1999, abgerufen am 8. Juli 2015 (englisch).
  4. HTML5 – A vocabulary and associated APIs for HTML and XHTML – W3C Recommendation. 4.5.3 The strong element. 28. Oktober 2014, abgerufen am 30. Juli 2015 (englisch).
  5. HTML <strong> Tag. Default CSS settings. In: www.w3schools.com. Abgerufen am 29. Juli 2015 (englisch).
  6. HTML <em> Tag. Default CSS settings. In: www.w3schools.com. Abgerufen am 29. Juli 2015 (englisch).
  7. Wikibook LaTeX/Fonts#Emphasizing text (englisch)
  8. Mittelbach und Goossens (#Literatur) S. 341ff.
  9. HTML5 – A vocabulary and associated APIs for HTML and XHTML – W3C Recommendation. 4.5.2 The em element. 28. Oktober 2014, abgerufen am 8. Juli 2015 (englisch).
  10. In HTML3.2 vom 14. Januar 1997 war davon noch nichts zu sehen, jedoch war am 17. Dezember 1996 mit CSS1 der Grundstein gelegt worden. Im Arbeitsentwurf für HTML 4.0 vom 8. Juli 1997 wurde dann angekündigt, dass „präsentationale“ Elemente und Attribute nach und nach durch Stylesheets ersetzt werden sollten.
  11. Dokumenttypdefinition
  12. a b HTML5 – A vocabulary and associated APIs for HTML and XHTML – W3C Recommendation. 1.10.1 Presentational markup. 28. Oktober 2014, abgerufen am 8. Juli 2015 (englisch).
  13. HTML5 – A vocabulary and associated APIs for HTML and XHTML – W3C Recommendation. 4.5 Text-level semantics. 28. Oktober 2014, abgerufen am 8. Juli 2015 (englisch).
  14. a b Markup Technologies '98 Conference. Agenda and Schedule - Annotated. In: The CoverPages. 11. Januar 1998, abgerufen am 28. Juli 2015 (englisch).
  15. Furuta (#Literatur) S. 20.
  16. a b c d e Furuta (#Literatur) Abschnitt 4.1
  17. Goldfarb unter #Literatur
  18. a b Coombs, Renear und DeRose (#Literatur)
  19. a b c d Furuta (#Literatur) S. 30.
  20. a b Tim Bray: On Semantics and Markup. Taxonomy of Markup. In: www.tbray.org. 9. April 2003, abgerufen am 28. Juli 2015 (englisch).
  21. Furuta (#Literatur) bereits 1992 (Abschnitt 4.1).
  22. a b c HTML 4.01 Specification – W3C Recommendation. 15 Alignment, font styles, and horizontal rules. 24. Dezember 1999, abgerufen am 8. Juli 2015 (englisch).
  23. Vgl. Cover unter #Literatur
  24. Downes (#Literatur) S. 1368.
  25. Furuta (#Literatur)  19.
  26. a b HTML 4.01 Specification – W3C Recommendation. 2.3.5 Style sheets. 24. Dezember 1999, abgerufen am Juli 2015.
  27. HTML 4.01 Specification – W3C Recommendation. 2.4.1 Separate structure and presentation. 24. Dezember 1999, abgerufen am Juli 2015.
  28. a b c Goldfarb (#Literatur) S. 68
  29. Goldfarb (#Literatur) S. 68.
  30. Goossens/Mittelbach/Samarin 1994 sowie Mittelbach und Goossens 2004 S. 2 (#Literatur).
  31. Mittelbach und Goossens 2004 (#Literatur) S. 2–4.
  32.  Donald E. Knuth: The TeXbook. Illustrations by Duane Bibby. Addison Wesley, Reading, Massachusetts u. a 1984, 1986, ISBN 0-201-13447-0 (Broschur 0-201-13448-9), S. 267ff. (Neben Makros gibt es weitere Expansionskonstrukte wie Konditionale und Auslesen von Registerinhalten, siehe Kapitel 20).
  33. Vgl. das Informationspaket l2tabu.
  34. a b c Tim Bray: On Semantics and Markup. Procedural Markup. 9. April 2003, abgerufen am 28. Juli 2015 (englisch).
  35. Learn Postscript. gsave … grestore. In: wordpress.com. 19. September 2007, abgerufen am 30. Juli 2015 (englisch, Miniprogramm als Beispiel).
  36. David Maxwell: Graphics State PostScript Commands. gsave. In: UBC Math Computing Lab Documentation. University of British Columbia, abgerufen am 30. Juli 2015 (englisch).
  37. Das Beispiel ist eine Mischung aus PostScript#Ein Programmbeispiel und en:PostScript#"Hello world" und wurde mit Ghostscript getestet.
  38. Goldfarb (#Literatur) S. 69
  39. Siehe Cover: SGML unter #Literatur.
  40. Vgl. Cover: SGML unter #Literatur.
  41. Cover unter #Literatur
  42. Goossens/Mittelbach/Samarin 1994 (#Literatur) S. 8
  43. Furuta (#Literatur) S. 25)
  44. Vgl. Furuta (#Literatur) Abschnitt 6.2: Page description languages.
  45. Dmitry Kirsanov (#Literatur): HTML Unleashed. SGML and the HTML DTD. Introduction. 16. Juni 1997, abgerufen am 23. Juli 2015: „SGML [...] think of it as a programming language to build working programs (HTML being one of them) […]“
  46. Jukka Korpela (Technische Universität Tampere): Programs vs. markup. or why HTML authoring is not programming. 16. November 2015, abgerufen am 13. Juli 2014 (englisch).
  47. XML in 10 points. W3C, 13. November 2001, abgerufen am 15. Juli 2014 (englisch): „Note: This document is no longer maintained but is left for historical purposes.“
  48.  Christoph Prevezanos: Technisches Schreiben: Für Informatiker, Akademiker, Techniker und den Berufsalltag. Abschnitt 2.1.5: XML-Umgebungen. Carl Hanser, München 1. Oktober 2013, ISBN 978-3-446-43721-0, S. 13 (E-Book-ISBN 978-3-446-43759-3, eingeschränkte Vorschau in der Google-Buchsuche, abgerufen am 16. Juli 2015). Zitat: „XML ist keine Textverarbeitung, keine Programmiersprache und auch kein konkretes Programm. Stattdessen handelt es sich um eine Auszeichnungssprache, mit der sich Texte strukturieren und die Elemente deklarieren lassen.“
  49.  Stephan Kepser (Universität Tübingen, SFB 441): A Simple Proof for the Turing-Completeness of XSLT and XQuery. In: Extreme Markup Languages 2004® (Montréal, Québec) (= Proceedings of Extreme Markup Languages). (© 2004 Stephan Kepser, HTML-Fassung des Vortragtexts, abgerufen am 19. Juli 2015).