<<

Reader zum MOOC "Web-Engineering" Kapitel 4 & 5: HTML & CSS

Die PDF-Datei wurde mit Hilfe des Open-Source-Werkzeugs „mwlib“ erstellt. Für weitere Informationen siehe http://code.pediapress.com/ PDF generated at: Fri, 08 Nov 2013 10:43:49 UTC Inhalt

Artikel

HTML 1 Auszeichnungssprache 1 Hypertext 4 Extensible Markup Language 12 Extensible Hypertext Markup Language 21 WYSIWYG 29 WYSIWYM 31 32 LyX 35 Zeichenkodierung 37 Zeichensatz 40 42 UTF-8 51 Multipurpose Mail Extensions 57 Lynx (Browser) 62

CSS 64 Cascading Style Sheets 64 Logische Auszeichnungen 76 Physische Auszeichnungen 76 Quirks-Modus 77 Reset-Stylesheet 78 Quellennachweise Quelle() und Bearbeiter des/der Artikel() 80 Quelle(n), Lizenz(en) und Autor(en) des Bildes 82 Artikellizenzen Lizenz 83 1

HTML

Auszeichnungssprache

Eine Auszeichnungssprache (englisch markup language, ML) dient zur Beschreibung des Inhalts eines Dokumentenformates und teilweise zur Beschreibung des Verfahrens, welches zur Bearbeitung dieser Daten benötigt wird. Ursprünglich dienten die Auszeichnungen im Text als Anweisungen für die Setzer im Drucksatz, mit der Weiterentwicklung in der Typografie für digitale Texte wurden daraus jedoch komplexe Sprachen.

Geschichte Die Strukturmerkmale eines Textes können durch Schriftauszeichnung wie Hervorhebungen in Fett- oder Kursivschrift, Fußnoten, Literaturhinweise, Absätze, Überschriften „erkannt“ werden. Notiert wurden derartige Strukturen früher durch sogenannte Textauszeichnungen (markup), die ursprünglich – handschriftlich auf einem Manuskript eingetragen – Formatierungsanweisungen für den Schriftsetzer waren.

Funktionsweise Bei Auszeichnungssprachen werden die Eigenschaften, Zugehörigkeiten und Verfahren von bestimmten Wörtern, Sätzen und Abschnitten (Auszeichnungselemente) eines Textes oder einer Datenmenge beschrieben und zugeteilt, in der Regel indem sie mit Auszeichnungselementen – auch Tags genannt – markiert werden. Die Quelltexte werden in der Regel in ASCII oder Unicode, meist UTF-8, verfasst. Oft bietet die Sprache auch die Möglichkeit, Sonderzeichen zu beschreiben, meist mit Hilfe einer numerischen Zuweisung (Unicode) oder durch Benennung, zum Beispiel \mu für µ in LaTeX und in HTML µ.

Beispiele

Vergleichstabelle

Beispiel für … Darstellungsbeispiel HTML LaTeX Wikitext Überschrift Überschrift

Überschrift

\section{Überschrift} = Überschrift = Aufzählung • Punkt 1
    \begin{itemize} * Punkt 1 • Punkt 2
  • Punkt 1
  • \item Punkt 1 * Punkt 2 • Punkt 3
  • Punkt 2
  • \item Punkt 2 * Punkt 3
  • Punkt 3
  • \item Punkt 3
\end{itemize}

fetten Text fett fett \textbf{fett} '''fett'''

kursiven Text kursiv kursiv \textit{kursiv} ''kursiv'' Auszeichnungssprache 2

Unterscheidung und Abgrenzung Bei den Auszeichnungssprachen wird heute grob unterschieden in Sprachen zur reinen Beschreibung, Descriptive Markup Language (DML) und in prozedurale Auszeichnungssprachen, Procedural Markup Language (PML). Mit den reinen Beschreibungssprachen werden die Informationen beschrieben, also die physische und logische Struktur eines Dokumentes (neudeutsch: Layout) und die Semantik der Elemente, im Gegensatz zu den prozeduralen Auszeichnungssprachen, welche die Darstellung der Dokumente – unter anderem auf dem Bildschirm, im Webbrowser oder für Drucker – beschreiben.[1]

Descriptive Markup Language Zu den reinen Beschreibungssprachen gehören unter anderem die in SGML oder XML definierten Sprachen HTML, DocBook, TEI, MathML, WML, XAML und SVG.

Lightweight Markup Language Um Dokumente (. B. in , Blogs, Foren) manuell erstellen und lesen zu können, werden vereinfachte Auszeichnungssprachen verwendet. Die Syntax konzentriert sich auf einfacher zu merkende und kürzere Elemente. Meist werden Dokumente für die endgültige Darstellung in eine gewöhnliche Auszeichnungssprache wie HTML oder XHTML serverseitig umgewandelt. Klassische Auszeichnungssprachen, die möglichst viele und genaue Details darstellen können, werden meist maschinell durch Skriptsprachen erzeugt und müssen nicht unbedingt von Menschen direkt verwendet werden können. Müssen aber Inhalte von Menschen manuell geschrieben oder sogar gelesen werden, so können diese entweder mit WYSIWYG grafisch aufbereitet oder direkt durch einfache Auszeichnungssprachen dargestellt werden. Im Gegensatz zu WYSIWYG muss der Text zum Schreiben und Lesen nicht bearbeitet werden. Vereinfachte Auszeichnungssprachen nutzen im Unterschied zu klassischen • keine ausführlichen Tags wie z. B. HTML Seite, sondern wenige nicht benutzte Zeichenfolgen (zum Beispiel [[Seite]]), um die Lesbarkeit zu erhöhen • wenn möglich keinen zwingenden Abschluss wie bei SGML-Elementen durch schliessende Tags • dafür Nutzung von Zeilenumbruch oder Leerzeichen als Trennzeichen So ist ein Sternchen (*) am Anfang einer Zeile ein Listenpunkt und wird erst beim Kompilieren als typografisches Aufzählungszeichen dargestellt. Diese Schreibweise ist gegenüber nativem HTML (

  • text
) kürzer. Allerdings ist diese Methode nicht ganz eindeutig, denn eine andere Funktion des Sternchens zur Kennzeichnung einer Fußnote kollidiert hier. Andere Funktionen innerhalb einer vereinfachten Auszeichnungssprache verursachen so Fehler. In manchen vereinfachten Auszeichnungssprachen beginnt ein fett geschriebener Text mit dem Sternchen (ich rufe *laut* um Hilfe), was am Zeilenanfang (*Laut* rufe ich um Hilfe) mit der Darstellung für einen Listeneintrag kollidieren wird. Neben reinen logischen Auszeichnung wie Überschriften und reinen Schriftauszeichnung wie fett können auch weitere Funktionen erfüllt werden • Hyperlinks • Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zur Kategorisierung. • mit Transklusionen Teile anderer Dokumente durch einen Verweis einzuschließen. Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen (z. B. Readme oder -Mails) zur Darstellung von Hervorherbungen wie Kursiv oder Fett verwendet, ohne dass diese weiter umgewandelt werden. Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicher gebildet, gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind. Auszeichnungssprache 3

• um in an Hypertexten zusammenzuarbeiten, gibt es unterschiedlichen Wikitext, aber auch den Versuch einer Standardisierung mit Creole • in Foren hat sich der BBCode etabliert • für den Emacs gibt es Org-mode • zur Einbettung von strukturierter Dokumentation in Computerprogramme, (Plain Old Documentation (POD) für oder Javadoc für Java) • Markdown, Textile, AsciiDoc und reStructuredText konzentrieren sich auf jeweils andere Vorgehensweisen.

Procedural Markup Language Die darstellenden Seitenbeschreibungssprachen wie das Textsatzsystem TeX und dessen Makropakete LaTeX oder ConTeXt, kann man weitläufigst zu den Auszeichnungssprachen zählen. Hier werden jedoch sowohl Eigenschaften der reinen Beschreibungssprachen sowie der prozeduralen Auszeichnungssprachen verwendet, wie das auch bei den Seitenbeschreibungssprachen für PDF und PostScript der Fall ist.

Programmiersprache Die Abgrenzung ist zum Teil jedoch auch sehr schwierig, da beispielsweise bei der Sprache PostScript auch Eigenschaften von Programmiersprachen verwendet werden. Zur Darstellung einer Lissajous-Figur in Postscript müssen so z. B. nicht alle Kanten der Grafik in einer Segmentliste enthalten sein, da diese auch anhand eines programmierten Algorithmus zur Laufzeit erzeugt werden können. Das Ziel ist jedoch eine beschreibende Datenauszeichnung, allerdings wird diese unter Umständen erst zur Laufzeit aus einer prozeduralen Vorstufe dynamisch erzeugt. Die Abgrenzung zu Programmiersprachen wird in diesem Fall fließend, denn wie diese besitzen auch alle Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik, was aber noch keine hinreichenden Bedingungen sind zur Definition einer Programmiersprache. Eine Programmiersprache unterscheidet sich von einer reinen Auszeichnungssprache durch die Elemente von Sequenz, Iteration und Auswahl.

Einzelnachweise

[1] DML (descriptive markup language) (http:/ / www. itwissen. info/ definition/ lexikon/ descriptive-markup-language-DML. ) – Eintrag bei ITWissen.info Hypertext Markup Language 4

Hypertext Markup Language

HTML (Hypertext Markup Language)

Dateiendung: .html, .htm MIME-Type: text/html Entwickelt von: Consortium Aktuelle Version: 4.01 Art: Auszeichnungssprache Erweitert zu: XHTML, HTML5

[1] [2] Standard(s): ISO/IEC 15445; W3C HTML 4.01, W3C HTML 3.2

[3] Website: www.w3.org/html

Die Hypertext Markup Language (engl. ‚Hypertext-Auszeichnungssprache‘), abgekürzt HTML, ist eine textbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. HTML-Dokumente sind die Grundlage des World Wide Web und werden von einem Webbrowser dargestellt. Neben den vom Browser angezeigten Inhalten einer Webseite enthält HTML zusätzliche Angaben in Form von Metainformationen, die z. B. über die im Text verwendete Sprache oder den Autor Auskunft geben oder den Inhalt des Textes zusammenfassen. Die Auszeichnungssprache wird vom World Wide Web Consortium (W3C) und der Web Hypertext Application Technology Working Group (WHATWG) weiterentwickelt. Aktuell trägt HTML die Versionsnummer 4.01. HTML5 des W3C bzw. der „HTML Living Standard“ der WHATWG befindet sich in der Entwicklung, wird jedoch schon von vielen aktuellen Layout-Engines unterstützt. Parallel existiert die Extensible Hypertext Markup Language (XHTML).

Entstehung Vor der Entwicklung des World Wide Web und dessen Bestandteilen, zu denen auch HTML gehört, war es nicht möglich, Informationen auf digitalem Weg einfach, schnell und strukturiert zwischen mehreren Personen auszutauschen. Man benötigte neben Übertragungsprotokollen auch eine einfach zu verstehende Textauszeichnungssprache. Genau hier lag der Ansatzpunkt von HTML. Um Forschungsergebnisse mit anderen Mitarbeitern der Europäischen Organisation für Kernforschung (CERN) zu teilen und von den beiden Standorten in Frankreich und in der Schweiz aus zugänglich zu machen, entstand 1989 am CERN ein Projekt, welches sich mit der Lösung dieser Aufgabe beschäftigte. Am 3. November 1992 erschien die erste Version der HTML-Spezifikation. Hypertext Markup Language 5

Syntax Dem Text wird durch Auszeichnungen (englisch markup) von Textteilen eine Struktur verliehen. Die Auszeichnung erfolgt durch SGML-Elemente. Die meisten dieser HTML-Elemente werden durch ein Tag-Paar markiert, das heißt durch einen Starttag und einen Endtag. Ein Starttag beginnt immer mit dem Zeichen <. Es folgt der Elementname (z. B. p für einen Absatz oder h1 für eine Überschrift erster Ordnung) und optional eine Liste seiner Attribute (z. B. class="warning"). Mit einem > wird der Starttag geschlossen. Ein Endtag besteht aus den Zeichen . Die zusammengehörenden Start- und Endtags bilden zusammen mit dem dazwischenliegenden Inhalt ein Element allgemeiner SGML-Spezifikation. Diese Elemente lassen sich nach Regeln, die in einer Dokumenttypdefinition (DTD) angegeben sind, verschachteln:

Ein Textabsatz, der ein betontes Wort enthält.

Bestimmte Elemente müssen nicht explizit notiert werden. Bei einigen Elementen darf gemäß der SGML-Regel „OMITTAG“[4] der Endtag fehlen (z. B.

oder ). Zudem spielt bei Element- und Attributnamen Groß- und Kleinschreibung keine Rolle (z. B.
    ,
      ,
        ). Zum Vergleich: In XHTML sind diese Regeln strenger verfasst. Neben Elementen mit Start- und Endtag gibt es in HTML auch inhaltsleere Elemente, wie etwa Zeilenumbrüche (br) oder Bilder (img). Eine Textzeile,
        die hier fortgesetzt wird. E-Mail

        Es geht in HTML um beschreibende (englisch descriptive), nicht um verfahrens- (englisch procedural) und darstellungsorientierte (englisch presentational) Textauszeichnung, auch wenn sich HTML in früheren Versionen dafür verwenden ließ. HTML-Elemente sind keine Angaben zur Präsentation, die dem Webbrowser mitteilen, wie er den Text visuell zu formatieren hat. Vielmehr sind Elemente eine strukturierende Auszeichnung, mit der sich Textbereichen eine Bedeutung zuordnen lässt, z. B.

        für eine Überschrift,

        für einen Textabsatz und

        für betonten Text. Wie diese Bedeutung letztlich dem Benutzer vermittelt wird (im Falle einer Überschrift z. B. durch vergrößerte, fette Schrift), ist zunächst dem Webbrowser überlassen und hängt von der Ausgabe-Umgebung ab. Denn obwohl HTML-Dokumente in der Regel auf Computerbildschirmen dargestellt werden, können sie auch auf anderen Medien ausgegeben werden, etwa auf Papier oder mittels Sprachausgabe. CSS-Formatvorlagen eignen sich dazu, um auf die Präsentation eines HTML-Dokuments in verschiedenen Medien Einfluss zu nehmen. Daher gelten Elemente und Attribute zur Präsentation wie

        ,

        und noshade als missbilligt (englisch deprecated) und sollten nach allgemeiner Auffassung vermieden werden. Hypertext Markup Language 6

        Das Einlesen des Quelltextes sowie das Verarbeiten der vorhandenen Informationen wird in der Fachsprache auch als Parsen bezeichnet, und die Aufbereitung für das Ausgabemedium als Rendern. Die Sprache HTML beschreibt, wie der Browser (oder ein anderes Programm, wie z. B. ein Text-Editor) die Auszeichnungen des Textes zu „verstehen“ hat, nicht, wie er sie dann in der Darstellung umsetzt. So besagt

        zwar, dass eine Überschrift folgt, nicht aber, in welcher Schriftgröße oder Schriftschnitt diese darzustellen ist – hier haben sich nur gewisse übliche Standardeinstellungen eingebürgert, die aber nicht Teil der HTML-Spezifikation sind.

        Sprachtyp HTML ist eine Auszeichnungssprache und wird als solche auch nicht programmiert, sondern schlicht geschrieben. Ein ähnliches Konzept (logische Beschreibung) wie hinter HTML steht hinter dem Satzsystem TeX/LaTeX, das im Unterschied zu HTML jedoch auf die Ausgabe per Drucker auf Papier zielt.

        Versionen HTML wurde am 13. März 1989 von Tim Berners-Lee am CERN in Genf festgelegt.[5] • HTML (ohne Versionsnummer, 3. November 1992): Die Urversion, die sich nur an Text orientierte.[6] • HTML (ohne Versionsnummer, 30. April 1993): Zu Text kommt neben Attributen wie fette oder kursive Darstellung die Bildintegration dazu. • HTML+ (November 1993) Geplante Erweiterungen, die in spätere Versionen einflossen, aber nie als HTML+ verabschiedet wurden.[7] • HTML 2.0 (November 1995): Die mit RFC 1866 definierte Version führt u. a. Formulartechnik ein. Der Status dieses Standards ist „HISTORIC“. Auch die Vorgänger sind veraltet. • HTML 3.0: Die Version erscheint nicht, weil sie mit der Einführung des Netscape-Browsers in der Version 3 bereits vor der Veröffentlichung veraltet ist. • HTML 3.2 (14. Januar 1997): Neu in dieser Version sind zahlreiche Features wie Tabellen, Textfluss um Bilder, Einbindung von Applets. • HTML 4.0 (18. Dezember 1997): Mit dieser Version werden Stylesheets, Skripte und Frames eingeführt. Auch eine Trennung in Strict, Frameset und Transitional erfolgt. Am 24. April 1998 erscheint eine leicht korrigierte Version dieses Standards. • HTML 4.01 (24. Dezember 1999): Ersetzt HTML 4.0 mit vielen kleineren Korrekturen. • XHTML 1.0 (26. Januar 2000): Eine Neuformulierung von HTML 4.01 mit Hilfe von XML. Am 1. August 2002 erscheint eine überarbeitete Version. • XHTML 1.1 (31. Mai 2001): Nachdem XHTML in Module aufgeteilt wurde, wird mit XHTML 1.1 eine strikte Version definiert, bei der die mit HTML 4 eingeführten Varianten Frameset und Transitional entfallen. • XHTML 2.0 (closed,[8] 26. Juli 2006): Diese Version sollte nicht mehr auf HTML 4.01 basieren und einige neue Elemente einführen, so z. B. für Navigationslisten. Die Trennung von Auszeichnung und Stil sollte in dieser Version vollendet werden. – Das W3C hat die Arbeiten an XHTML 2.0 im Sommer 2009 zu Gunsten von HTML5 eingestellt.[9][10] • HTML5 (Working Draft,[11] 23. April 2009): HTML5 schafft auf Basis von HTML 4.01 und XHTML 1.0 ein neues Vokabular. Die zu HTML gehörende DOM-Spezifikation wird ebenfalls überarbeitet und erweitert. Hypertext Markup Language 7

        HTML-Struktur

        Allgemeine Struktur Ein HTML-Dokument besteht aus drei Bereichen: 1. der Dokumenttypdeklaration (Doctype) ganz am Anfang der Datei, die die verwendete Dokumenttypdefinition (DTD) angibt, z. B. HTML 4.01 Strict, 2. dem HTML-Kopf (HEAD), der hauptsächlich technische oder dokumentarische Informationen enthält, die üblicherweise nicht im Anzeigebereich des Browsers dargestellt werden 3. dem HTML-Körper (BODY), der jene Informationen enthält, die gewöhnlicherweise im Anzeigebereich des Browsers zu sehen sind. Somit sieht die Grundstruktur einer Webseite wie folgt aus:

        Titel der Webseite

        Inhalt der Webseite

        HTML-Kopf Im Kopf können sieben verschiedene Elemente verwendet werden: title bezeichnet den Titel der Seite, der von den meisten Browsern in der Titelleiste angezeigt wird. meta kann vielfältige Metadaten enthalten. Siehe Meta-Element. base gibt entweder eine Basis-URI oder einen Basisframe an. link dient zur Angabe von logischen Beziehungen zu anderen Ressourcen. Wird am häufigsten zur Einbindung von Stylesheets benutzt. bindet Code in einer bestimmten Skriptsprache ein, hauptsächlich JavaScript. style enthält Stilinformationen, hauptsächlich CSS-Deklarationen. object bindet eine externe Datei ein. Browser dürfen solche Objekte im Dokumentkopf nicht darstellen. Hypertext Markup Language 8

        HTML-Körper HTML unterscheidet zwischen Block- und Inline-Elementen. Der wesentliche Unterschied ist, dass erstere in der Ausgabe einen eigenen Block erzeugen, in dem der Inhalt untergebracht wird, während die Inline-Elemente den Textfluss nicht unterbrechen. Vereinfacht gesprochen haben Block-Elemente immer ihre eigene Zeile. Mithilfe von CSS ist es jedoch möglich, Block-Elemente wie ein Inline-Element darzustellen und umgekehrt. Zudem lassen sich alle Elemente via CSS auch als inline-block auszeichnen, mit dem Ergebnis, dass ein solches Element sowohl Eigenschaften eines Block-Elementes als auch eines Inline-Elementes besitzt. Eine Überschrift erster Ordnung wird so ausgezeichnet:

        Überschrift

        h1 steht für Heading 1, zeichnet also eine Überschrift der ersten (und in HTML höchsten) Gliederungsstufe aus. Weiter möglich sind h2 bis h6, Überschriften zweiter bis sechster Gliederungsstufe. Ein Hyperlink: Dies ist ein Verweis auf example.com

        Hyperlinks sind Verweise auf andere Ressourcen, meistens ebenfalls HTML-Dokumente, die üblicherweise im Browser durch Klick verfolgt werden können. Dieser Link könnte so gerendert werden: Dies ist ein Verweis auf example.com [12] Ebenso ist an diesem Beispiel zu sehen, dass das Link-Element ein Inline-Element ist und keine neue Zeile beginnt. Zur Logik stehen zum Beispiel die Elemente strong oder em bereit, mit denen sich stark hervorgehobener oder betonter Text auszeichnen lässt. Per Voreinstellung (lt. W3C-Empfehlung) werden strong- und em-Elemente durch Fettschrift beziehungsweise kursive Schrift gerendert. Die Strukturbeschreibung des Textes, wie sie die obigen Beispiele veranschaulichen, vereinfacht es, das Rendern dem Betrachter anzupassen, um etwa Text einem Sehbehinderten vorzulesen oder als auszugeben.

        HTML-Varianten Beim Entwurf der letzten HTML-Version 4 sollte der Tatsache, dass in vielen HTML-Dokumenten noch Elemente und Attribute zur Präsentation eingesetzt werden, Rechnung getragen werden. Das Ergebnis waren schließlich drei Varianten:

        Strict Diese DTD umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der Präsentation, unter anderem die Elemente font, center und u sowie Attribute wie bgcolor, align und target. Deren Rolle sollen in Strict-Dokumenten Stylesheets übernehmen. Text und nicht-blockbildende Elemente innerhalb der Elemente body, form, blockquote und noscript müssen sich grundsätzlich innerhalb eines Container-Elements befinden, zum Beispiel in einem p-Element. Hypertext Markup Language 9

        Transitional Die Transitional-Variante enthält noch ältere Elemente und Attribute, die auch physische Textauszeichnung ermöglichen. Durch diese DTD soll Webautoren, die noch nicht logische Strukturierung und Präsentation voneinander trennen, die Möglichkeit gegeben werden, standardkonformes HTML zu schreiben. Gleichzeitig soll sie sicherstellen, dass bestehende Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden können.

        Frameset Diese Variante enthält zusätzlich zu allen Elementen der Transitional-Variante noch die Elemente für die Erzeugung von Framesets.

        Zusatztechniken und Weiterentwicklungen

        Cascading Style Sheets Im Laufe der Jahre ist HTML um Elemente erweitert worden, die sich mit der Gestaltung des Dokuments befassen, was der ursprünglichen Idee der Systemunabhängigkeit entgegenlief. Eine Rückbesinnung auf die Trennung von Struktur und Layout (besser: Präsentation) wurde durch die Definition von Cascading Style Sheets (CSS) vorgenommen. So soll das Aussehen bzw. die Darstellung des Dokuments in einer separaten Datei, dem sogenannten Stylesheet, festgelegt werden. Dies verbessert die Anpassungsfähigkeit des Layouts an das jeweilige Ausgabegerät und an spezielle Bedürfnisse der Benutzer, beispielsweise eine spezielle Darstellung für Sehbehinderte. Heutzutage ist die CSS-Unterstützung der Browser ausreichend, um damit eine anspruchsvolle Gestaltung zu realisieren.

        Dynamisches HTML Schon sehr früh in der Geschichte von HTML wurden Zusatztechniken erfunden, die es ermöglichen, HTML-Dokumente während der Anzeige im Browser dynamisch zu verändern. Die gebräuchlichste ist JavaScript. Man spricht bei solchen interaktiven Dokumenten von dynamischem HTML. Diese Techniken wurden von verschiedenen Browser-Herstellern, allen voran Microsoft und Netscape, unabhängig voneinander entwickelt. Daher gab es erhebliche Probleme bei der Umsetzung der Techniken zwischen den verschiedenen Browsern. Mittlerweile interpretieren alle verbreiteten JavaScript-fähigen Browser das Document Object Model (DOM). Dadurch ist es möglich, in allen Browsern lauffähige Skripte zu schreiben. Es gibt jedoch noch immer Differenzen bei der Unterstützung des DOM-Standards.

        XML Version HTML 4.01 der HTML-Empfehlung wurde in der Metasprache XML neu formuliert. Das daraus entstandene XHTML 1.0 genügt den im Vergleich zu SGML strengeren syntaktischen Regeln von XML, ist aber in seinen drei DTD-Varianten semantisch mit der jeweils entsprechenden DTD-Variante von HTML 4.01 identisch. XHTML wird im Rahmen des HTML5 Standards weiter entwickelt.

        Ajax Mit der Ajax-Technologie ist es mittels JavaScript möglich, einzelne bereits geladene Webbrowser-Inhalte gezielt zu ändern und nachzuladen, ohne dass die Webseite komplett neu geladen werden muss. Wegen des geringeren Datenaufkommens wird zum einen eine schnellere Webserver-Antwort ermöglicht, und zum anderen lassen sich Reaktionsweisen von Desktop-Anwendungen simulieren. Hypertext Markup Language 10

        Unterschiedliche Darstellung und Interpretation von HTML-Dokumenten HTML dient als Auszeichnungssprache dazu, einen Text semantisch zu strukturieren, nicht aber zu formatieren.[13] Die Darstellung ist kein Teil der entsprechenden Spezifikationen und ist somit willkürlich vom Browseranbieter bestimmbar. Eine Ausnahme stellen die als deprecated markierten, präsentationsbezogenen Elemente dar.

        Literatur • Stefan Münz, Wolfgang Nefzger: HTML Handbuch. Franzis-Verlag, Poing 2005, ISBN 3-7723-6654-6. • Stefan Mintert (Hrsg.): XHTML, CSS & Co. Die W3C-Spezifikationen für das Web-Publishing. Addison-Wesley, München 2003, ISBN 3-8273-1872-6. • Mark Lubkowitz: Webseiten programmieren und gestalten – HTML, CSS, JavaScript, PHP, Perl, MySQL, SVG und Newsfeeds, mit CD. Galileo Press, Bonn 2004, ISBN 3-89842-557-6. • Elisabeth Robson & Eric Freeman: HTML und CSS von Kopf bis Fuß, 'Reilly, Köln 2012, ISBN 978-3-86899-934-1

        Weblinks • Einige Notizen zum Ursprung von HTML [14] (englisch) • Webpräsenz des Standardisierungsgremiums W3C [15] – Spezifikationen und Neuigkeiten (englisch)

        Tutorials • SELFHTML [16] – Ausführliches Tutorial und Dokumentation, die sich mit der Erstellung von Webseiten befasst. • jendryschik.de: Einführung in XHTML, CSS und Webdesign [17]

        Validierung • Checkliste für Webstandards [18] • W3C-Validator [19] zur Überprüfung der syntaktischen Richtigkeit eines HTML-Dokuments (englisch) • Verschiedene nützliche Testwerkzeuge [20], Site Check [21] (englisch) • WDG Validator [22] zur Überprüfung einer kompletten Webseite

        Standards • edition W3C.de [23] Die W3C-Spezifikationen in deutscher Übersetzung und Kommentierung • HTML-Standards: 2.0 [24], 3.2 [25], 4.0 [26], 4.01 [27] (englisch)

        Einzelnachweise

        [1] http:/ / www. w3. org/ TR/ 1999/ REC-html401-19991224/ W3C HTML 4.01

        [2] http:/ / www. w3. org/ TR/ REC-html32-19970114 W3C HTML 3.2

        [3] http:/ / www. w3. org/ html/

        [4] SGML and HTML Explained; Chapter 9 Tag Minimization; 9.2 Tag omission (http:/ / www. is-thought. co. uk/ book/ sgml-9. htm#OMITTAG) (englisch)

        [5] Information Management: A Proposal, Tim Berners-Lee, 1989 (http:/ / www. w3. org/ History/ 1989/ proposal. html)

        [6] HTML, Urversion (http:/ / www. w3. org/ History/ 19921103-hypertext/ hypertext/ WWW/ MarkUp/ MarkUp. html)

        [7] A Review of the HTML+ Document Format, David Raggett (http:/ / www. w3. org/ MarkUp/ htmlplus_paper/ htmlplus. html)

        [8] XHTML 2.0, W3C Working Draft (http:/ / www. w3. org/ TR/ xhtml2/ )

        [9] Heise-Meldung vom 3. Juli 2009: XHTML 2 wird eingestellt (http:/ / www. heise. de/ newsticker/ XHTML-2-wird-eingestellt--/ meldung/ 141514)

        [10] Meldung des W3C zur Einstellung der Entwicklung von XHTML 2 (http:/ / www. w3. org/ News/ 2009#item119)

        [11] HTML5, W3C Working Draft (http:/ / www. w3. org/ TR/ html5/ )

        [12] http:/ / example. com/ Hypertext Markup Language 11

        [13] HTML als Auszeichnungsprache (http:/ / de. selfhtml. org/ intro/ technologien/ html. htm#auszeichnungssprache)

        [14] http:/ / www. w3. org/ MarkUp/ historical

        [15] http:/ / www. w3. org/ MarkUp/

        [16] http:/ / de. selfhtml. org/

        [17] http:/ / jendryschik. de/ wsdev/ einfuehrung/

        [18] http:/ / www. lingo4u. de/ article/ checklist

        [19] http:/ / validator. w3. org/

        [20] http:/ / uitest. com/ de/ analysis/

        [21] http:/ / uitest. com/ en/ check/

        [22] http:/ / www. htmlhelp. com/ tools/ validator/

        [23] http:/ / www. edition-w3c. de/

        [24] http:/ / www. w3. org/ TR/ WD-html2/

        [25] http:/ / www. w3. org/ TR/ REC-html32

        [26] http:/ / www. w3. org/ TR/ 1998/ REC-html40-19980424/

        [27] http:/ / www. w3. org/ TR/ html4/

        Normdaten (Sachbegriff): GND: 4373477-7 (http:/ / -nb. info/ gnd/ 4373477-7) Extensible Markup Language 12

        Extensible Markup Language

        Extensible Markup Language

        Dateiendung: . MIME-Type: application/xml, text/xml (deprecated)

        Magische Zahl: 3C 3F 78 6D 6C hex

        [1] Website: 1.0 (Fifth Edition) [2] 1.1 (Second Edition)

        Die Extensible Markup Language (engl. „erweiterbare Auszeichnungssprache“), abgekürzt XML, ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdateien. XML wird u. a. für den plattform- und implementationsunabhängigen Austausch von Daten zwischen Computersystemen eingesetzt, insbesondere über das Internet. Die vom World Wide Web Consortium (W3C) herausgegebene XML-Spezifikation (Recommendation, erste Ausgabe vom 10. Februar 1998, aktuell ist die fünfte Ausgabe vom 26. November 2008) definiert eine Metasprache, auf deren Basis durch strukturelle und inhaltliche Einschränkungen anwendungsspezifische Sprachen definiert werden. Diese Einschränkungen werden durch Schemasprachen wie DTD oder XML Schema ausgedrückt. Beispiele für XML-Sprachen sind: RSS, MathML, GraphML, XHTML, XAML, Scalable Vector Graphics (SVG), GPX, aber auch XML-Schema. Ein XML-Dokument besteht aus Textzeichen, im einfachsten Fall in ASCII-Kodierung, und ist damit menschenlesbar. Binärdaten enthält es per Definition nicht. Extensible Markup Language 13

        Fachbegriffe

        Element Wichtigste Struktureinheit einer XML-Anwendung ist das Element. Der Name eines XML-Elements kann weitgehend frei gewählt werden. Elemente können weitere Elemente, Text- und andere Knoten – ggfs. auch vermischt – enthalten. Elemente sind die Träger der Information in einem XML-Dokument, unabhängig davon, ob es sich um Text, Bilder usw. handelt.

        Wohlgeformtheit Ein XML-Dokument heißt „wohlgeformt“ (oder englisch well-formed), wenn es alle XML-Regeln einhält. Beispielhaft seien hier folgende genannt: • Das Dokument besitzt genau ein Wurzelelement. Als Wurzelelement wird dabei das jeweils äußerste Element bezeichnet, z. B. in XHTML. • Alle Elemente mit Inhalt besitzen einen Beginn- und einen End-Auszeichner (-Tag) (z. B. Eintrag 1). Elemente ohne Inhalt können auch in sich geschlossen sein, wenn sie aus nur einem Auszeichner bestehen, der mit /> abschließt (z. B. ). • Die Beginn- und End-Auszeichner sind ebenentreu-paarig verschachtelt. Das bedeutet, dass alle Elemente geschlossen werden müssen, bevor die End-Auszeichner des entsprechenden Elternelements oder die Beginn-Auszeichner eines Geschwisterelements erscheinen. • Ein Element darf nicht mehrere Attribute mit demselben Namen besitzen. • Attributeigenschaften müssen in Anführungszeichen stehen. • Die Beginn- und End-Auszeichner beachten die Groß- und Kleinschreibung (z. B. ist nicht gültig).

        Gültigkeit (Validität) Soll XML für den Datenaustausch verwendet werden, ist es von Vorteil, wenn das Format mittels einer Grammatik (z. B. einer Dokumenttypdefinition oder eines XML-Schemas) definiert ist. Der Standard definiert ein XML-Dokument als gültig (oder englisch valid), wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format einhält.

        Parser Programme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen, nennt man XML-Parser. Prüft der Parser die Gültigkeit, so ist er ein validierender Parser.

        Aufbau eines XML-Dokuments Beispiel einer XML-Datei

        Wikipedia Städteverzeichnis Genf Genf ist der Sitz von ... Köln Extensible Markup Language 14

        Köln ist eine Stadt, die ...

        XML-Dokumente besitzen einen physischen und einen logischen Aufbau.

        Physischer Aufbau • Entitäten. Die erste Entität ist die Hauptdatei des XML-Dokuments. Weitere mögliche Entitäten sind über • Entitätenreferenzen (&name; für das Dokument bzw. %name; für die Dokumenttypdefinition) eingebundene Zeichenketten, eventuell auch ganze Dateien, sowie Referenzen auf Zeichenentitäten zur Einbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (&#Dezimalzahl; oder &#xHexadezimalzahl;). • Eine XML-Deklaration wird optional verwendet, um XML-Version, Zeichenkodierung und Verarbeitbarkeit ohne Dokumenttypdefinition zu spezifizieren. • Eine Dokumenttypdefinition wird optional verwendet, um Entitäten sowie den erlaubten logischen Aufbau zu spezifizieren.

        Logischer Aufbau Der logische Aufbau entspricht einer Baumstruktur und ist damit hierarchisch organisiert. Als Baumknoten gibt es: • Elemente, deren physische Auszeichnung mittels • einem passenden Paar aus Start-Tag () und End-Tag () oder • einem Empty-Element-Tag () erfolgen kann, • Attribute als bei einem Start-Tag oder Empty-Element-Tag geschriebene Schlüsselwort-Werte-Paare (Attribut-Name="Attribut-Wert") für Zusatz-Informationen über Elemente (eine Art Meta-Information), • Verarbeitungsanweisungen (, engl. Processing Instruction), • Kommentare (), und • Text, der als normaler Text oder in Form eines CDATA-Abschnittes () auftreten kann. Ein XML-Dokument muss genau ein Element auf der obersten Ebene enthalten. Unterhalb dieses Dokumentelements können weitere Elemente verschachtelt werden. Weiterhin kann durch Angabe eines namespace (XML-Namensraum) sichergestellt werden, dass bei Überschneidungen mit XML-Daten eines anderen Vokabulars keine Doppeldeutigkeiten entstehen. Zur Spezifikation des logischen Aufbaus werden die Dokumenttypdefinitionen durch das umfangreichere XML-Schema abgelöst, welches keine Möglichkeit zur Definition von Entitäten, jedoch einen adäquaten Ersatz dafür besitzt. Verarbeitungsanweisungen werden in der Praxis meist eingesetzt, um in XML-Dokumenten Verarbeitungsanweisungen in anderen Sprachen einzubauen. Ein Beispiel dafür ist PHP, dessen Verarbeitungsanweisungen in XML-Dokumente mit einer PHP-Verarbeitungsanweisung, z. B. , eingebaut werden können. Einige Web-Browser, darunter Internet Explorer (MSXML engine), Mozilla Firefox und Netscape Navigator (TransforMiiX engine), Opera (native engine) und Safari, können XML-Dokumente mit Hilfe eines eingebauten XML-Parsers direkt darstellen. Dies geschieht z. B. in Verbindung mit einem Stylesheet. Diese Transformation kann die Daten in ein komplett anderes Format umwandeln, das Zielformat muss nicht einmal XML sein. Extensible Markup Language 15

        Klassifizierung von XML-Dokumenten XML-Dokumente lassen sich anhand ihres beabsichtigten Gebrauchs und ihres Strukturierungsgrads in dokumentzentrierte und datenzentrierte Dokumente unterteilen. Die Grenze zwischen diesen Dokumentenarten ist jedoch fließend. Mischformen können als semistrukturiert bezeichnet werden. • dokumentzentriert: Das Dokument ist an ein Textdokument angelehnt, das für den menschlichen Leser größtenteils auch ohne die zusätzliche Metainformation verständlich ist. XML-Elemente werden hauptsächlich zur semantischen Markierung von Passagen des Dokuments genutzt, das Dokument ist nur schwach strukturiert. Aufgrund der schwachen Strukturierung ist eine maschinelle Verarbeitung schwierig. • datenzentriert: Das Dokument ist hauptsächlich für die maschinelle Verarbeitung bestimmt. Es folgt einem Schema, das Entitäten eines Datenmodells beschreibt und definiert, in welcher Beziehung die Entitäten zueinander stehen, sowie, welche Attribute die Entitäten haben. Das Dokument ist somit stark strukturiert und für den unmittelbaren menschlichen Gebrauch weniger geeignet. • semistrukturiert: Semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist als dokumentzentrierte Dokumente, aber schwächer als datenzentrierte Dokumente. Es ist typisch für datenzentrierte XML-Dokumente, dass Elemente entweder Elementinhalt oder Textinhalt haben. Der sogenannte gemischte Inhalt (mixed content), bei dem Elemente sowohl Text als auch Kindelemente enthalten, ist für die anderen XML-Dokumente typisch.

        Verarbeitung von XML

        Verarbeitungskriterien Grundsätzlich sind drei Aspekte beim Zugriff auf ein XML-Dokument von Bedeutung: • Wie erfolgt der Zugriff auf die XML-Datei: sequenziell oder wahlfrei? • Wie ist der Ablauf beim Zugriff auf die XML-Daten gestaltet: „Push“ oder „Pull“? (Push bedeutet, dass die Ablaufkontrolle des Programms beim Parser liegt. Pull bedeutet, dass die Ablaufkontrolle im Code, der den Parser aufruft, implementiert ist.) • Wie erfolgt das Baumstrukturmanagement der XML-Daten: hierarchisch oder verschachtelt?

        Programmgesteuerter Zugriff auf XML-Dokumente Das Einlesen von XML-Dokumenten erfolgt auf unterster Ebene über eine spezielle Programmkomponente, einen XML-Prozessor, auch XML-Parser genannt. Er stellt ein API zur Verfügung, über das die Anwendung auf das XML-Dokument zugreift. Die XML-Prozessoren unterstützen dabei drei grundlegende Verarbeitungsmodelle. • DOM: Ein DOM-API repräsentiert ein XML-Dokument als Baumstruktur und gewährt wahlfreien Zugriff auf die einzelnen Bestandteile der Baumstruktur. DOM erlaubt außer dem Lesen von XML-Dokumenten auch die Manipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesem Grund ist DOM sehr speicherintensiv. • SAX: Ein SAX-API repräsentiert ein XML-Dokument als sequentiellen Datenstrom und ruft für im Standard definierte Ereignisse vorgegebene Rückruffunktionen (callback function) auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Rückruffunktionen registrieren und auf diese Weise die XML-Daten auswerten. • Pull-API: Ein XML-Pull-API verarbeitet Daten sequenziell und bietet sowohl ereignisbasierte Verarbeitung als auch einen Iterator an. Es ist hoch speichereffizient und ggf. leichter zu programmieren als das SAX-API, da die Ablaufkontrolle beim Programm und nicht beim Parser liegt. Weitere Verarbeitungsmodelle: Extensible Markup Language 16

        • Data Binding: Diese Möglichkeit stellt XML-Daten als Datenstruktur direkt für einen Programmzugriff bereit. Die XML-Daten werden per Unmarshalling direkt in z. B. Objekte gewandelt. • Nicht extrahierendes XML-API: Die Daten werden auf Byte-Ebene sehr effizient verarbeitet. Oftmals greift der Anwendungscode nicht direkt auf die Parser-API zu. Stattdessen wird XML weiter gekapselt, so dass der Anwendungscode mit nativen Objekten / Datenstrukturen arbeitet, welche sich auf XML abstützen. Beispiele für solche Zugriffsschichten sind JAXB in Java, der Data Binding Wizard in Delphi oder das XML Schema Definition Toolkit in .Net. Die Umwandlung von Objekten in XML ist üblicherweise bidirektional möglich. Diese Umwandlung wird als Serialisierung oder Marshalling bezeichnet.

        XML-Parser-API-Beispiele XML-Parser-APIs sind für verschiedene Programmiersprachen vorhanden, z. B. Java, , C++, C#, Python, Perl und PHP. Parser-API-Beispiele: • XML::Parser (Perl): Ein XML-Parser für Perl. Ein sehr einfaches API bietet z. B. auch das CPAN-Modul XML::Simple an. • DOM Functions (PHP5): Modul in PHP5, um XML-Dokumente einzulesen; alternativ simpleXML; für PHP4 gibt es DOM XML. • StAX (Java): Eine hochgradig speichereffiziente Parserimplementierung (Pull) und gleichzeitig einfach zu programmieren. Es werden Cursor- und Iteratorverarbeitungsmodelle angeboten. • JAXB: Data Binding für Java. Beispielsweise kann aus einem XML-Schema die entsprechende Java-Klasse generiert werden und umgekehrt. • Apache XMLBeans Java Data Binding Framework, kann bereits mit Java 1.4.2 verwendet werden • Xerces: Ein validierender XML-Parser für C++, Java und Perl für eine große Anzahl an Plattformen. • ElementTree iterparse [3]: Ein Parser-API für Python, die über Teilbäume iteriert. Es kombiniert die Speichereffizienz eines Pull-Parsers mit der Einfachheit eines DOM-Parsers. • VTD-XML: Beispiel für ein nicht extrahierendes XML-API. • MSXML: Microsoft XML Core Services, die Microsoft XML Softwarebibliothek für XML-Unterstützung über DOM, SAX, XSLT, XML Schemata und andere zu XML gehörende Technologien Zur Erstellung von XML-Dokumenten gibt es spezielle Programme, sogenannte XML-Editoren. Zur Speicherung und Verwaltung von XML-Dokumenten gibt es ebenfalls spezielle Programme, sogenannte XML-Datenbanken.

        Transformation und Darstellung von XML-Dokumenten Ein XML-Dokument kann mittels geeigneter Transformationssprachen wie XSLT oder DSSSL in ein anderes Dokument transformiert werden. Oftmals dient die Transformation zur Überführung eines Dokuments aus einer XML-Sprache in eine andere XML-Sprache, beispielsweise zur Transformation nach XHTML, um das Dokument in einem Webbrowser anzuzeigen.

        Schemasprachen Um die Struktur von XML-Sprachen zu beschreiben, bedient man sich so genannter Schemasprachen. Die zwei bekanntesten sind Dokumenttypdefinition und XML Schema. Extensible Markup Language 17

        DTD → Hauptartikel: Dokumenttypdefinition Eine Dokumenttypdefinition (DTD) beschreibt die Struktur und Grammatik von XML-Dokumenten. Sie wurde zusammen mit XML standardisiert, zu einem Zeitpunkt, an dem XML noch hauptsächlich für „narrative documents“ („erzählende Dokumente“, also Zeitungsartikel, Bücher, …) gedacht war, weniger als Datenaustauschformat. Daher ist es z. B. in DTD nicht möglich, zwischen Texten und Zahlen zu unterscheiden. Ein weiterer Nachteil ist die Tatsache, dass die DTD in einer eigenen Sprache abgefasst werden muss. Außerdem kennt die DTD keine Namensräume.

        XML Schema/XSD → Hauptartikel: XML Schema XML Schema (beziehungsweise XSD für XML-Schema-Definition) ist die moderne Möglichkeit, die Struktur von XML-Dokumenten zu beschreiben. XML Schema bietet auch die Möglichkeit, den Inhalt von Elementen und Attributen zu beschränken, z. B. auf Zahlen, Datumsangaben oder Texte, z. B. mittels regulärer Ausdrücke. Ein Schema ist selbst ein XML-Dokument, welches erlaubt, komplexere (auch inhaltliche) Zusammenhänge zu beschreiben, als dies mit einer formalen DTD möglich ist.

        Weitere Schemasprachen Weitere Schemasprachen sind Document Structure Description, RELAX NG und Schematron.

        XML-Familie

        Infrastruktur Im Zusammenhang mit XML wurden vom W3-Konsortium auf Basis von XML viele Sprachen definiert, welche XML-Ausdrücke für häufig benötigte allgemeine Funktionen anbieten wie etwa die Verknüpfung von XML-Dokumenten. Zahlreiche XML-Sprachen nutzen diese Grundbausteine. • Transformation von XML-Dokumenten: XSLT, STX • Adressierung von Teilen eines XML-Baumes: XPath • Verknüpfung von XML-Ressourcen: XPointer, XLink und XInclude • Selektion von Daten aus einem XML-Datensatz: XQuery • Datenmanipulation in einem XML-Datensatz: XUpdate • Abfassen von elektronischen Formularen: XForms • Definition von XML-Datenstrukturen: XML Schema (= XSD, XML Schema Definition Language), DTD und RELAX NG • Signatur und Verschlüsselung von XML-Knoten: XML Signature und XML-Encryption • Aussagen zum formellen Informationsgehalt: XML Infoset • Formatierte Darstellung von XML-Daten: XSL-FO • Definition zum Methoden- bzw. Funktionsaufruf durch verteilte Systeme: XML-RPC • Standardisierte Attribute: XML Base und ID (DTD) • XML-basierte deklarative Programmiersprache: MXML Extensible Markup Language 18

        Sprachen Während XML selbst aus SGML hervorgegangen ist, bedienen sich heute sehr viele formale Sprachen der Syntax von XML. So ist XML ein wesentliches Instrument, um – wie es das W3C vorsieht – eine offene, für Mensch und Maschine verständliche Informationslandschaft (semantisches Web) zu schaffen. Auch die bekannte Dokumentsprache HTML wurde als „Extensible HyperText Markup Language“ (XHTML) im Anschluss an die Version 4.01 in dieses Konzept integriert, so dass ihr nun XML als Definitionsbasis zu Grunde liegt. Vielfacher Grund für den Einsatz von XML ist das zahlreiche Vorhandensein von Parsern und die einfache Syntax: die Definition von SGML umfasst 500 Seiten, jene von XML nur 26. Die folgenden Listen stellen einige dieser XML-Sprachen dar.

        Text • XSL-FO (Textformatierung) • DocBook • DITA • XHTML (XML-konformes HTML) • TEI () • NITF (News Industry Text Format) • OPML (Outline Processor Markup Language) • OSIS (Open Scripture Information Standard)

        Grafik • SVG (Vektorgrafiken) • (3D-Modellierungssprache) • Collada (Austauschformat für Daten zwischen verschiedenen 3D-Programmen)

        Geodaten • Geography Markup Language (GML) • GPS Exchange Format (GPX): XML für GPS-Daten • Keyhole Markup Language (KML): Koordinaten-Spezifikation für Earth • City Geography Markup Language (CityGML) • OpenStreetMap (OSM)

        Multimedia • MusicXML (Notendaten, aufgeschriebene Musik) • SMIL (zeitsynchronisierte, multimediale Inhalte) • MPEG-7 (MPEG-7 Metadaten) • Laszlo (LZX)

        Sicherheit • Security Assertion Markup Language (sicherheitsbezogene Informationen beschreiben und übertragen) • XML Signature (XML-Schreibweise für digitale Signaturen) • XML Encryption Extensible Markup Language 19

        Ingenieurwissenschaften • AutomationML, ein Format zur Speicherung von Anlagenplanungsdaten • CAEX, ein Format zur Speicherung hierarchischer Objektinformationen • GSDML, ein Format zur Beschreibung von Automatisierungsgeräten, die mit Profinet kommunizieren können • IODD, ein Format zur Beschreibung von Sensoren und Aktoren

        Weitere Darüber hinaus existieren XML-Sprachen für Webservices (z. B. SOAP, WSDL und WS-*), für die Einbindung von Java-Code in XML-Dokumente (XSP), für die Synchronisation von Kalenderdaten SyncML, mathematische Formeln (MathML), Repräsentation von Graphen (GraphML), Verfahren im Bereich des Semantischen Webs (RDF, OWL, Topic Maps, UOML), Service Provisioning (SPML), den Austausch von Nachrichten (XMPP) oder Finanzberichten wie bspw. Jahresabschlüssen (XBRL), in Bereichen der Automobilindustrie (ODX, MSRSW, AUTOSAR-Templates, QDX, JADM, OTX), automatisierter Test z. B. von Schaltkreisen (ATML) über Systembiologie (SBML) sowie Landwirtschaft (AgroXML) bis zum Verlagswesen (ONIX) oder Chemie (CIDX) und viele weitere mehr. Eine Zusammenfassung von XML-Sprachen für Office-Anwendungen findet sich im OpenDocument-Austauschformat (OASIS Open Document Format for Office Applications).

        Alternative Formate • JSON (JavaScript Object Notation) • YAML (YAML Ain' Markup Language)

        Literatur • Elliotte Rusty Harold: Die XML Bibel. 2. Auflage. mitp, 2002, ISBN 978-3-8266-0821-6. • Stefan Mintert: XML & Co. Die W3C-Spezifikationen für Dokumenten- und Datenarchitektur. Addison-Wesley, München, ISBN 3827318440. • Christine Kränzler: XML/XSL - ... für professionelle Einsteiger . für Buch und Web. Markt+Technik, München/Germany 2002, ISBN 978-3-8272-6339-1. • Henning Lobin: Informationsmodellierung in XML und SGML. Springer, Berlin/Germany 2000, ISBN 3-540-65356-2. • Erik T. Ray: Einführung in XML. O’Reilly, 2004, ISBN 3-8972-1286-2. • Helmut Vonhoegen: Einstieg in XML. Aktuelle Standards: XML Schema, XSL, XLink. 7. Auflage. Galileo Press, 2013, ISBN 978-3-8362-2620-2. • Frank Bitzer: XML im Unternehmen. Briefing fürs IT-Management. Galileo Press, Bonn 2002, ISBN 978-3-8984-2288-8. • Michael Seeboerger-Weichselbaum: Das Einsteigerseminar XML. 2. Auflage. BHV Software, Kaarst 2000, ISBN 978-3-8287-1018-4. • Margit Becher: XML : DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM. W3L Verlag, Witten 2009, ISBN 978-3-937137-69-8. • Marco Skulschus, Marcus Wiederstein: XML: Standards und Technologien. Comelio Medien, Berlin 2009, ISBN 978-3-939701-21-7. Extensible Markup Language 20

        Weblinks • World Wide Web Consortium über XML [4] (englisch), edition-w3c.de – Deutsche Übersetzungen zu XML u. a. [23] • Links zum Thema XML [5] im Open Directory Project • Infos zu diversen XML-Technologien wie XSLT, XPath, Schematron, XProc, WordML, XSL-FO [6]

        Einzelnachweise

        [1] http:/ / www. w3. org/ TR/ 2008/ REC-xml-20081126/

        [2] http:/ / www. w3. org/ TR/ 2006/ REC-xml11-20060816/

        [3] http:/ / effbot. org/ zone/ element-iterparse. htm

        [4] http:/ / www. w3. org/ XML

        [5] http:/ / www. dmoz. org/ World/ Deutsch/ Computer/ Datenformate/ Markup_Languages/ XML/

        [6] http:/ / www. data2type. de/ xml-xslt-xslfo/

        Normdaten (Sachbegriff): GND: 4501553-3 (http:/ / d-nb. info/ gnd/ 4501553-3) Extensible Hypertext Markup Language 21

        Extensible Hypertext Markup Language

        XHTML

        Dateiendung: ., .xht

        MIME-Type: application/xhtml+xml[1]

        Entwickelt von: World Wide Web Consortium Art: Auszeichnungssprache Erweitert von: XML, HTML

        [2] Standard(s): 1.0 (Recommendation) , [3] 1.1 (Recommendation) , [4] 1.1 SE (Working Draft) , [5] 5 (Working Draft) , [6] 2.0 (Working Draft)

        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.

        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 etwa oder . 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 Extensible Hypertext Markup Language 22

        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 so genannten 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 zum Beispiel Multimedia-Plug-ins gibt es das Objektmodul.

        Versionenübersicht XHTML fasst als Begriff die verschiedenen XHTML-Versionen zusammen: • XHTML 1.0 stellt die XML-basierte Neuformulierung von HTML 4.01 dar. XHTML 1.0 erhält die bekannten drei Dokumenttypen Strict, Transitional und Frameset. 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 Version XHTML 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ür Ruby-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 wie Mobiltelefone und Handhelds ausgelegt, indem nur einige Sprachbestandteile (Module) von XHTML verwendet werden. XHTML Basic ist die Basis für XHTML Mobile Profile (siehe WAP 2.0) und für WML 2.0. • Durch die Modularisierung entstanden weitere Misch-Versionen, wie z. B. XHTML 1.1 plus MathML plus SVG. • Die Version XHTML 2.0, deren Entwicklung zugunsten von HTML5 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 von Hyperlinks gewesen, das vereinfachte Einbinden anderer Medienarten (z. B. Grafiken und Videos), die erweiterten Möglichkeiten, um Zugänglichkeit zu gewährleisten, und das ausgereiftere Angeben von Metadaten. Bisherige Kernfunktionen von HTML bzw. XHTML wären in XHTML 2.0 in andere XML-Sprachen ausgelagert worden, namentlich XForms für Formulare, XML Events zur Einbindung von Scripten und XFrames für Frames.

        Die wichtigsten Unterschiede zwischen HTML und XHTML Extensible Hypertext Markup Language 23

        HTML XHTML

        Groß-/Kleinschreibung der Element- nicht relevant (z. B.
        ,
        , immer klein (nur
        ) und Attributnamen
        )

        Elemente ohne Inhalt, z. B. br
        (von der DTD entweder leeres Element-Tag abhängig) (z. B.
        ) oder mit End-Tag (z. B.

        ) Die Variante
        wird aus Gründen der Kompatibilität empfohlen

        Start- oder End-Tag Weglassen teilweise erlaubt immer beide angeben

        Attributwert in Anführungszeichen optional, solange der Attributwert immer angeben bestimmte Zeichen nicht enthält.

        boolesche Attribute, z. B. checked type="radio" checked="checked" />

        Außerdem: • Das Start-Tag des Wurzel-Elements html muss immer die Namensraum-Angabe für XHTML enthalten: • In XHTML 1.1 wurde das lang-Attribut durch das xml:lang-Attribut von XML ersetzt. In XHTML 1.0 wird die Angabe beider Attribute empfohlen, z. B. . • Die Rolle des name-Attributs bei den Elementen a, frame und map übernimmt ab XHTML 1.0 das id-Attribut. Wenn Abwärtskompatibilität erwünscht ist, sollten sowohl das name- als auch das id-Attribut mit gleichem Attributwert notiert und XHTML 1.0 Transitional deklariert werden. In XHTML 1.1 bzw. XHTML-Modularisierung existiert kein name-Attribut mehr für diese Elemente. • Das Attribut name bei den Elementen form und img ist nur noch in XHTML 1.0 Transitional vorhanden, nicht in XHTML 1.0 Strict und XHTML 1.1. Diese Einschränkung ist vor allem beim DOM-Zugriff auf die Elemente relevant.

        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. Auch in HTML empfiehlt es sich, alle notwendigen Elemente vollständig zu notieren.

        Beispiel

        Beispielseite

        Ein Absatz

        Noch ein
        Absatz

        1. Listelement
        2. Listelement

        Bildmotiv Extensible Hypertext Markup Language 24

        Das html-Element wurde komplett 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:

        Beispiel

        Beispielseite

        Ein Absatz

        Noch ein
        Absatz

        1. Listelement
        2. Listelement

        Bildmotiv

        Die XML-Deklaration 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.[7] 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[8], den XML-Parser nicht zwingend Case insensitive interpretieren müssen.[9] 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 so genannten 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: • Für HTML-Dokumente ist es gemäß RFC 2854 vorgesehen, sie mit dem MIME-Typ text/html zu senden. • Ein XHTML-1.0-Dokument soll normalerweise gemäß RFC 3236 mit dem MIME-Typ application/xhtml+xml gesendet werden. Wenn sich das Dokument an die Richtlinien der Rückwärtskompatibilität hält, kann es gemäß RFC 2854 und dem XHTML-1.0-Standard als text/html gesendet werden. Aufgrund der mangelnden XHTML-Unterstützung der verbreiteten Software kommt der letzteren Option ein besonderer Stellenwert zu. Extensible Hypertext Markup Language 25

        • Da für XHTML 1.1 keine Kompatibilität mit gewöhnlichen HTML-Browsern vorgesehen ist, sollen solche Dokumente gemäß einer W3C-Mitteilung [10] nur als application/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 Inhaltstyp application/xhtml+xml deklariert wird, setzen XHTML-fähige Browser ihre XML-Parser ein, durch welche die Vorteile des strengen XHTML-Codes, wie etwa 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 [11], darunter Mozilla, Mozilla Firefox, Netscape Navigator, Opera und Safari, unterstützen den MIME-Typ application/xhtml+xml. Der weit verbreitete Internet Explorer kann mit diesem MIME-Typ jedoch erst seit 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. Dies kann serverseitig ermittelt [12] 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.

        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.
        für einen Zeilenumbruch) oder ein optionales End-Tag (wie

        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. . 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ührte -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. Extensible Hypertext Markup Language 26

        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. Ein Beispiel für die Nutzung des Namensraum-Konzeptes zur Erweiterung von XHTML ist die Einbettung von MathML:

        Dies ist noch ganz normales XHTML

        x 1,2 = - b ± b 2 - 4 a c 2 a Extensible Hypertext Markup Language 27

        ...und hier geht XHTML weiter

        Ein MathML-fähiger Browser könnte diesen Dokumentausschnitt folgendermaßen darstellen: Dies ist noch ganz normales XHTML

        … 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 zum Beispiel 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 komplett ignorieren. • Er kann versuchen, aus dem Web ein Plug-in für die Erweiterung zu laden und die Seite dann korrekt darstellen.

        Einzelnachweise [1] RFC 3236

        [2] http:/ / www. w3. org/ TR/ xhtml1/

        [3] http:/ / www. w3. org/ TR/ 2001/ REC-xhtml11-20010531/

        [4] http:/ / www. w3. org/ TR/ xhtml11/

        [5] http:/ / www. w3. org/ TR/ html5/

        [6] http:/ / www. w3. org/ TR/ xhtml2/

        [7] http:/ / blog. codingoutloud. com/ 2009/ 04/ 08/ is-utf-8-case-sensitive-in-xml-declaration/

        [8] http:/ / www. iana. org/ assignments/ character-sets

        [9] http:/ / www. w3. org/ TR/ 2006/ REC-xml-20060816/ #charencoding

        [10] http:/ / www. w3. org/ TR/ xhtml-media-types/

        [11] http:/ / www. w3. org/ People/ mimasa/ test/ xhtml/ media-types/ results

        [12] http:/ / meiert. com/ de/ releases/ 20041004/

        Weblinks

        XHTML betreffende Spezifikationen XHTML selbst

        • HTML 4.01 (http:/ / www. w3. org/ TR/ html401/ ) ( deutsche Übersetzung (http:/ / www. edition-w3c. de/ TR/ html4))

        • XHTML 1.0 (http:/ / www. w3. org/ TR/ xhtml1/ ) ( deutsche Übersetzung (http:/ / www. edition-w3c. de/ TR/ xhtml1))

        • Modularization of XHTML (http:/ / www. w3. org/ TR/ xhtml-modularization/ ) ( deutsche Übersetzung (http:/ /

        www. edition-w3c. de/ TR/ xhtml-modularization)) Abkömmlinge der XHTML-Modularisierung Extensible Hypertext Markup Language 28

        • XHTML 1.1 (http:/ / www. w3. org/ TR/ xhtml11/ ) ( deutsche Übersetzung (http:/ / www. edition-w3c. de/ TR/ xhtml11))

        • XHTML Basic (http:/ / www. w3. org/ TR/ xhtml-basic/ ) ( deutsche Übersetzung (http:/ / www.

        schumacher-netz. de/ TR/ 2000/ REC-xhtml--20001219-de. html))

        • An XHTML + MathML + SVG Profile (http:/ / www. w3. org/ TR/ XHTMLplusMathMLplusSVG/ )

        • XHTML + RDFa (http:/ / www. w3. org/ TR/ rdfa-syntax/ )

        • XHTML+SMIL Profile (http:/ / www. w3. org/ TR/ XHTMLplusSMIL/ )

        • XHTML 2.0 (http:/ / www. w3. org/ TR/ xhtml2/ ) Grundlagen für XHTML

        • XML (http:/ / www. w3. org/ TR/ REC-xml) ( deutsche Übersetzung (http:/ / www. edition-w3c. de/ TR/ REC-xml))

        • XML Namespaces (http:/ / www. w3. org/ TR/ REC-xml-names/ ) ( deutsche Übersetzung (http:/ / www.

        schumacher-netz. de/ TR/ 1999/ REC-xml-names-19990114-de. html))

        XHTML-Einführungen und -Werkzeuge • Selfhtml

        • Einführung in XHTML, CSS und Webdesign (http:/ / jendryschik. de/ wsdev/ einfuehrung/ )

        • Fachartikel im T3N Magazin (http:/ / www. yeebase. com/ fileadmin/ t3n/ archiv/ 06-01/ t3n_06-01_xhtml2. ) XHTML2: Vom XML-Hype zur Anwendung (PDF-Datei; 252 kB)

        • XHTML-Überblick von Jens Meiert (http:/ / meiert. com/ de/ releases/ 20040212/ )

        • HTML and XHTML Frequently Answered Questions (http:/ / www. w3. org/ MarkUp/ 2004/ xhtml-faq. html)

        • XHTML 1.0 Schema Validator (http:/ / schneegans. de/ sv/ ) zur Überprüfung der Syntax eines XHTML-Dokuments (englisch)

        • W3C Markup Validation Service (http:/ / validator. w3. org/ ), ebenfalls zur Prüfung auf syntaktische Fehler (englisch)

        Normdaten (Sachbegriff): GND: 4600114-1 (http:/ / d-nb. info/ gnd/ 4600114-1) WYSIWYG 29

        WYSIWYG

        WYSIWYG [ˈwɪziwɪg] die Abkürzung, oder genauer das Akronym, für den Grundgedanken „What You See Is What You Get“ (englisch für „Was du siehst, ist [das,] was du bekommst.“) – auch als Echtbilddarstellung bekannt.[1] Bei echtem WYSIWYG wird ein Dokument während der Bearbeitung am Bildschirm genauso angezeigt, wie es bei der Ausgabe über ein anderes Gerät, z. B. einem Drucker, aussieht. Der Begriff wurde zuerst Anfang der 1980er im Zusammenhang mit Computer-Drucksatz-Systemen (Desktoppublishing) und Textverarbeitungsprogrammen verwendet.

        Geschichte und weitere Einzelheiten

        Das erste in der Praxis verwendbare und auf dem Markt erhältliche Gerät war der Satz-Gestaltungs-Terminal (SGT), eine Entwicklung der österreichischen Firma Grafotron unter ihrem Chefentwickler Hannes Schöllauf. Der SGT konnte eine direkt auf einem Bildschirm grafisch Satz-Gestaltungs-Terminal richtig erstellte Seite in Satzkommandos einer Linotype CRTronic- oder Linotronic-Fotosetzmaschine umwandeln. Damit war man in der Lage, ohne Satzkommandos hergestellte Seiten zu belichten. Der SGT hat damit das spätere Desktop-Publishing vorweggenommen.

        In den 1990ern wurde der Begriff WYSIWYG durch zahlreiche Programme aufgeweicht, bei denen das ausgegebene Dokument nur noch so ähnlich aussieht wie während der Bearbeitung. Insbesondere bei HTML-Editoren ist die Bezeichnung streng genommen nicht korrekt, da die Ausgabe einer HTML-Seite vom verwendeten Browser und dessen Voreinstellungen sowie eventuell den installierten Systemschriften abhängt und deshalb von Betrachter zu Betrachter stark variieren kann.

        „Echtes“ WYSIWYG setzt auf modernen Rechnern die Einrichtung eines PostScript-verträglichen Treibers und die Verwendung von Ein WYSIWYG-Editor PostScript- oder wenigstens TrueType-Schriften voraus. In der Zeit der Hausrechner (Homecomputer) wurde eine ähnliche Gestaltungstreue erreicht, indem die Bildschirmanzeige in der ursprünglichen Auflösung an den Drucker gesendet wurde, wie es das Beispiel des Sinclair-Druckers veranschaulicht.

        WYSIWYG wird neben den von Programmierern genutzten Editoren auch bei Redaktionssystemen und Content-Management-Systemen angewendet, um Redakteuren das Editieren von Webseiten auch ohne HTML-Kenntnisse zu ermöglichen. Oft gibt es aber Umsetzungsschwierigkeiten zwischen geschriebenem Text und Darstellung, daher wird alternativ eine vereinfachte Auszeichnungssprache eingesetzt. WYSIWYG 30

        Anmerkungen Der Begriff entstand während der späten 1970er am Xerox Palo Alto Research Center, als der erste WYSIWYG-Editor, Bravo, auf dem Alto von Charles Simonyi entwickelt wurde. Der Bildschirm des Alto war in der Lage, eine ganze Seite Text darzustellen und diese auf den damals ersten Laserdruckern auszudrucken. Für die Darstellung von Text auf dem Bildschirm wurden 72-PPI-Zeichensätze verwendet. Der Druck erfolgte jedoch mit 300 DPI. Dadurch kam es zu Abweichungen zwischen der Darstellung auf dem Bildschirm und dem Ausdruck – ein Problem, das bis heute besteht. Die Forscher am Xerox Palo Alto Research Center benutzten mit WYSIWYG eine Abkürzung für ein damals populäres Schlagwort, das von Geraldine, einer Figur aus der The Flip Wilson Show, ins Leben gerufen wurde: „What you see is what you get!“. Das Apple-Macintosh-System war damals so konzipiert, dass die Auflösung den Bildschirmen und Matrixdruckern von Apple entsprach. Bildschirme verfügten über eine Auflösung von 72 PPI. Die Drucker arbeiteten mit einer Auflösung von 144 DPI. So konnte die Ausgabe von Programmen wie MacWrite und MacPaint durch Verdoppelung gut an die Auflösung der Drucker angepasst werden. WYSIWYG war somit einfach möglich. Mit der Einführung der Laserdrucker verschwand auch das echte WYSIWYG, weil die Auflösung nicht mehr dem doppelten Wert der Bildschirmauflösung entsprach. WYSIWYG heißt aber auch ein Programm, welches zum Lichtdesign genutzt wird. Alle namhaften Produktionen, aber auch kleinere Veranstaltungstechnikfirmen, verwenden WYSIWYG, um ihren Kunden zu demonstrieren, wie später einmal ihre Bühne aussehen wird. Viele Lichtpulte (Mischpulte die man zur Lichtsteuerung nutzt) arbeiten auf sekundärer Ebene mit WYSIWYG, d. h. der Beleuchtungstechniker sieht auf dem Monitor, was seine Lampen beim nächsten Knopfdruck tun werden. Bekannte WYSIWYG-Editoren für Internetseiten sind z. B. Dreamweaver, GoLive, Microsoft Expression Web, NetObjects Fusion, Quanta Plus, HTMLArea, KompoZer (ehemals Nvu), TinyMCE und CKeditor. Siehe hierzu auch HTML-Editor. Spezielle Programme zur Darstellung von Postscript und PDF am Bildschirm sind Display PostScript und Quartz.

        Ähnliche Akronyme WYSIWYM What You See Is What You Mean – („Was du siehst, ist, was du meinst“) bezieht sich auf Textverarbeitungen bei denen der Benutzer primär nur den Zweck einer Formatierung angibt (z. B. Überschrift) und nicht im Detail verwendete Schriften etc. festlegt. Die endgültige Formatierung wird dann wie bei WYSIWYAF-Formatierungen erst beim Umwandeln des Dokuments in ein Endformat (z. B. PDF oder DVI) gemacht. Am Bildschirm ist während der Eingabe für den Benutzer nur in etwa erkennbar, was er mit seiner Formatierung bezwecken wollte. Ein Beispiel für eine solche Textverarbeitung ist LyX. WYCIWYG What You Cache Is What You Get – („Was du zwischenspeicherst, ist, was du bekommst“) – What You Create Is What You Get oder What You Click Is What You Get („Was du erstellst/anklickst, ist, was du bekommst“) WYSIWYAF What You See Is What You Asked For – („Was du siehst, ist, worum du gebeten hast“) bezieht sich auf Programme bei denen die Definition des typographischen Satzes von Hand mit Hilfe einer Makrosprache erfolgt. Dies ist zum Beispiel bei LaTeX oder der Fall. Das System zeigt an, was der Benutzer spezifiziert – im Wesentlichen auch eine Aussage für: „Wer Müll eingibt erhält Müll zurück“ (garbage in, garbage out). WYSIWYS WYSIWYG 31

        What You See Is What You Sign – („Was du siehst, ist, was du unterzeichnest“) Wird im Zusammenhang mit Trusted Computing verwendet. Es bedeutet, dass man nur dann eine Software verwenden kann, wenn man dafür einen legalen Vertrag hat. WYSIAYG What You See Is All You Get – („Was du siehst, ist alles, was du bekommst“) unterstreicht die Einschränkungen von WYSIWYG. Es betrifft vor allem fortgeschrittene Benutzer, die an die Grenzen solcher Systeme stoßen. Früher teilweise im Bereich nichtpostscriptfähiger Layoutsysteme bei Verwendung von Bitmap-Schriften (siehe Desktoppublishing) verwendet. WYSIWYN What You See Is What You Need – („Was du siehst, ist, was du brauchst“) bezieht sich auf Programme, die sich nicht durch die Zusammensetzung von Modulen definieren, sondern durch ein tiefgreifendes User/Rechtemanagement nur die Teile der Software sichtbar machen, die der User braucht. WYSIWYP What You See Is What You Print – („Was du siehst, ist, was du druckst“) nennt sich ein Verfahren in der heutigen Druckvorstufe, um etwaige Fehler oder Abweichungen beim Rendern der PDF-Druckvorlagen zu vermeiden.

        Einzelnachweise

        [1] Neuer Wikipedia-Editor für alle (http:/ / www. heise. de/ newsticker/ meldung/ Neuer-Wikipedia-Editor-fuer-alle-1925045. html) – Artikel bei Heise online, vom (Abgerufen am: )

        WYSIWYM

        WYSIWYM ist die Abkürzung für das Prinzip „What You See Is What You Mean“ (engl. für „Was du siehst, ist, was du meinst“). Seltener ist die Bezeichnung WYGIWYM „What You Get Is What You Mean“ („Was du bekommst, ist [das,] was du meinst“).

        Allgemein WYSIWYM stellt den Text am Bildschirm so dar, dass hervorgeht, welchen Zweck eine Formatierung erfüllen soll, z. B. Kapitelüberschrift, Aufzählung, Liste. Im Gegensatz dazu veranschaulicht WYSIWYG („What You See Is What You Get“) die endgültige Ausgabe des Dokuments, z. B. in Form eines oder DVI. Diese Art von Formatierung wird dann angewendet, wenn man die Details der Formatierung einem vorgefertigten Stylesheet überlassen möchte. Dies macht die Formatierung des Gesamtdokuments wesentlich konsequenter und ansprechender. Weiterhin wird der Benutzer von Formatierungsaufgaben und anderen klassischen Problemen der meisten WYSIWYG-Umgebungen, z. B. springende Absätze, fehlerhafte oder springende Formatierungen, Instabilität usw. entlastet. Er kann sich somit gänzlich auf das Erstellen des Inhaltes konzentrieren.

        Vorteile WYSIWYM-Bearbeitung wird bevorzugt, wenn viele oder komplexe Dokumente in ihren Einzelbestandteilen bearbeitet werden sollen. Durch diese Trennung kann in den Bereichen Daten, Logik und Layout arbeitsteilig vorgegangen werden. Beispielsweise können die inhaltlichen Daten vom Autor in XML strukturiert werden, während eine andere Person in XSL/XSL-FO und CSS mit der Anordnung und Formatierung des Dokuments befasst ist. Da die Quelltexte häufig in Plaintext-Formaten geschrieben werden, sind sie besser der Versionskontrolle (z.B. SVN) zugänglich. Durch die Aufspaltung werden die einzelnen Komponenten auch besser wiederverwendbar. Ein WYSIWYM 32

        XSL-Stylesheet kann etwa auf verschiedene XML-Dokumente angewendet werden, während ein XML-Dokument ohne inhaltliche Veränderung mit verschiedenen Stylesheets für unterschiedliche Ausgabemedien formatiert werden kann. Dies ist ein klarer Vorteil gegenüber WYSIWYG-Editoren, bei denen Daten, Logik und Layout untrennbar miteinander verbunden sind.

        Nachteile Nachteilig an diesem Prinzip ist, dass der Benutzer zumeist gezwungen ist, vorausschauend zu arbeiten, und daher das Programm besser beherrschen muss. Ein Vorgehen nach der Versuch-und-Irrtum-Methode ist so gut wie ausgeschlossen. Systeme nach der WYSIWYM-Methode sind außerdem häufig ungeeignet, wenn sehr viele ungewöhnliche, vom Benutzer selbst definierte Formatierungen verwendet werden sollen. In der Regel ist dann der Zeitaufwand für die nötigen Einstellungen beim alternativen WYSIWYG-System geringer.

        Anwendungen Ein Programm, welches auf dem Prinzip WYSIWYM aufbaut, ist das LaTeX-Frontend LyX. Ein anderes Beispiel ist etwa das DocBook-Projekt, wo die Inhalte in XML strukturiert werden und die Formatierung über XSL(T) realisiert wird. Auch Auszeichnungssprachen (wie etwa ()HTML oder MediaWiki-Markup) stellen im weitesten Sinne – wenn man von Auszeichnungen, die direkt das Layout beeinflussen, absieht – WYSIWYM dar. Während in der Vergangenheit WYSIWYG und WYSIWYM niemals in einem Editor zu finden waren, wird in jüngster Zeit versucht, die Vorteile der beiden Systeme zu vereinigen und beide Sichtweisen anzubieten. Diese Entwicklung findet vor allem im Bereich der XML- und XSL-Editoren statt, wo neben der klassischen Quelltext-Bearbeitung auch das Editieren in formatierter Ansicht möglich ist. (z.B. Altova XMLspy, oXygen oder das VEX-Plugin für Eclipse)

        Markdown

        Markdown ist eine vereinfachte Auszeichnungssprache, die von John Gruber und Aaron Swartz entworfen wurde. Ein Ziel von Markdown ist, dass schon die Ausgangsform ohne weitere Konvertierung leicht lesbar ist. Als Auszeichnungselemente wurden daher vor allem Auszeichnungsarten verwendet, die in Plaintext und E-Mails üblich sind. Auch andere Auszeichnungssprachen mit ähnlichen Zielen zur Lesbarkeit – wie reStructuredText oder Textile – hatten Einfluss auf die Syntax. Die Markdown-Konvertierungssoftware wandelt Text in gültiges und W3C-konformes XHTML um. Die Referenzimplementierung in Perl steht unter einer BSD-artigen Lizenz. Weiter sind inzwischen Implementierungen in den gängigsten Programmiersprachen wie C (z. B.[1]), PHP (z. B. [2]), Python (z. B. [3]) oder JavaScript (z. B. [4]) verfügbar. Als Auszeichnungssprache wird Markdown in Content-Management-Systemen verwendet.

        Auszeichnungsbeispiele Für die Auszeichnung von Text verwendet Markdown vor allem Satzzeichen und gestattet in einigen Fällen mehrere gleichwertige Methoden. Zeichen, die für gewöhnlich als Formatbefehle verstanden werden, können mit einem umgekehrten Schrägstrich () maskiert (übergangen) werden. So wird beispielsweise ein Sternsymbol („“, „*“) am Zeilenbeginn als Aufzählungszeichen interpretiert; will man wirklich ein Sternchen, leitet man es mit einem Backslash ein: „\*“. Autoren können bei Bedarf für komplexere Auszeichnungen XHTML-Blockelemente verwenden. Diese Elemente werden von der Konvertierungssoftware ohne Änderung in das Zieldokument übernommen. Dadurch ist es möglich, Bereiche des Dokuments in gewöhnlichem XHTML zu formatieren. Markdown 33

        Textgestaltung

        Ausgangsform Zielform

        Normaler Text wird so dargestellt wie eingegeben. Normaler Text wird so dargestellt wie eingegeben. Eine Leerzeile erzeugt einen Absatz. Eine Leerzeile erzeugt einen Absatz.

        Zwei oder mehr Leerzeichen am Ende der Zeile Zwei oder mehr Leerzeichen am Ende der Zeile erzeugen einen Zeilenumbruch. erzeugen einen Zeilenumbruch.

        *Kursiv*, **Fett** und ***Fett kursiv*** bzw. Kursiv, Fett und Fett kursiv bzw. _Kursiv_, __Fett__ und ___Fett kursiv___ Kursiv, Fett und Fett kursiv

        Markiert Text als `Quelltext` Markiert Text als Quelltext

        * Ein Punkt in einer ungeordneten Liste • Ein Punkt in einer ungeordneten Liste * Ein weiterer Punkt in einer ungeordneten Liste • Ein weiterer Punkt in einer ungeordneten Liste * Ein Unterpunkt, um vier Leerzeichen eingerückt • Ein Unterpunkt, um vier Leerzeichen eingerückt * Statt * funktionieren auch + oder - • Statt * funktionieren auch + oder -

        8. Ein Punkt in einer geordneten Liste 1. Ein Punkt in einer geordneten Liste 1. Ein weiterer Punkt, wobei keine Reihenfolge zu 2. Ein weiterer Punkt, wobei keine Reihenfolge zu beachten beachten ist, sondern nur beliebig und auch doppelte ist, sondern nur beliebig und auch doppelte Ziffern Ziffern 3. weiterer Punkt 1. weiterer Punkt

        HTML-Überschriften werden erzeugt, indem man die Zeile mit Doppelkreuzen beginnt – ihre Anzahl gibt die Ebene der gewünschten Überschrift an.

        # Überschrift in Ebene 1 #### Überschrift in Ebene 4 Überschrift in Ebene 1 Überschrift in Ebene 4 Für die ersten zwei Ebenen ist auch eine alternative Schreibweise möglich:

        Überschrift in Ebene 1 ======Überschrift in Ebene 1 Überschrift in Ebene 2 Überschrift in Ebene 2 ------

        > Dieses Zitat wird in ein HTML-Blockquote-Element Dieses Zitat wird in ein gepackt. HTML-Blockquote-Element gepackt.

        [Beschriftung des Hyperlinks](http://de.wikipedia.org/ [5] Beschriftung des Hyperlinks "Titel, der beim Überfahren mit der Maus angezeigt wird")

        ![Alternativtext](Bild-URL "Bildtitel hier") Bindet ein Bild von der Quelle Bild-URL ein.

        Weiterentwicklungen Es gibt mehrere Erweiterungen und Weiterentwicklungen von Markdown, die die eingeschränkten Möglichkeiten erweitern. Im Oktober 2012 wurde eine Standardisierung von Markdown angeregt. MultiMarkdown (MMD) ermöglicht zusätzlich den Export nach LaTeX, PDF und erweitert die Syntax um Fußnoten, Tabellen, Glossare, Zitate, Metadaten (wie Titel, Autor, Datum) und Inline-HTML. Markdown Extra bietet vor allem Inline-HTML und wiederum Markdown innerhalb von HTML Blöcken, Tabellen, Definitionslisten, Abkürzungen, Fußnoten, Sprungmarken für Überschriften. Markdown 34

        Pandoc Markdown ermöglicht das Überführen von Markdown in einige andere Formate, inklusive LaTeX und PDF. Außerdem erweitert es Markdown um Syntax für einfache und gerasterte Tabellen, Definitionslisten, automatische Referenzen für Beispiele, Sprungmarken für Überschriften, automatische Titelseiten, durchgestrichenen Text, Hoch- und Tief-Stellung, Mathematikmodus für alle Ausgabeformate, eingebettetes TeX, Bildunterschriften, Fußnoten und Quellenangaben mit Bibliographie nach CSL. Google+ "Markdown" Google+ verwendet zum Auszeichnen von kursivem, fettem und durchgestrichenem Text eine Syntax, welche Markdown ähnelt und oft irrtümlich mit Markdown assoziiert wird. Die Syntax ist aber die von Textile. GitHub Flavored Markdown ermöglicht das Rendern zu HTML direkt auf dem Webdienst GitHub. Es erweitert die Syntax um Code-Blöcke und Referenzen auf Benutzerprofile, Changesets und Tickets. Stack Overflow Flavored Markdown wird auf Stack Overflow verwendet und erweitert die Syntax um Tags, Spoilers und für Code. Es existiert eine Open-Source-Implementierung namens MarkdownSharp.

        Quellen

        [1] Vicent Martí: Sundown. (https:/ / github. com/ vmg/ sundown/ ) Am 29. November 2012 (https:/ / github. com/ vmg/ sundown/ commit/ 37728fb2d7137ff7c37d0a474cb827a8d6d846d8) als hinfällig bezeichnet. Abgerufen am 16. Juni 2013 (englisch).

        [2] Michel Fortin: PHP Markdown. (http:/ / michelf. com/ projects/ php-markdown/ ) Version 1.3 vom 11. April 2013. Abgerufen am 16. Juni 2013 (englisch).

        [3] Python Software Foundation: Markdown. (https:/ / pypi. python. org/ pypi/ Markdown) Version 2.3.1 vom 22. März 2013. Abgerufen am 16. Juni 2013 (englisch).

        [4] John Fraser, Corey Innis, u.a.: Showdown. (https:/ / github. com/ coreyti/ showdown). Version 0.3.1 vom 2. November 2012. Abgerufen am 16. Juni 2013 (englisch).

        [5] http:/ / de. wikipedia. org/

        Weblinks

        • Website von John Gruber (http:/ / daringfireball. net/ projects/ markdown/ ) mit ausführlichen Informationen

        • Deutsche Übersetzung der Syntax (http:/ / markdown. de/ syntax/ )

        • Markdown-Testreihe (http:/ / six. pairlist. net/ pipermail/ markdown-discuss/ 2004-December/ 000909. html) für Entwickler

        • Notepag.es (http:/ / notepag. es/ ) - Online-Editor mit Live-Vorschau LyX 35

        LyX

        LyX

        Lorem Ipsum mit LyX 1.6.5 Basisdaten Entwickler LyX-Team Aktuelle Version 2.0.6 (9. Mai 2013) Betriebssystem Linux, Mac X, Windows, Programmiersprache C++ Kategorie DTP Lizenz GPL Deutschsprachig Ja (mehrsprachig)

        [1] www.lyx.org

        LyX ist ein grafisches Textverarbeitungssystem, das zur Ausgabe das Textsatzsystem LaTeX nutzt. Es kombiniert eine anschauliche grafische Benutzeroberfläche mit typografisch hochwertiger Ausgabe.

        Besonderheiten von LyX

        Die Benutzeroberfläche sieht auf den ersten Blick ähnlich aus wie bei anderen grafischen Textverarbeitungssystemen wie OpenOffice.org Writer oder Microsoft Word. Das Konzept unterscheidet sich jedoch erheblich.

        Mit LyX gesetzter Blindtext LyX 36

        Trennung von Texterfassung und Satz Bei LyX erfolgt die Formatierung des Dokuments erst bei der Ausgabe. Zunächst wird der Text ohne Formatierung erfasst. Dabei teilt der Benutzer dem System mit, welche Funktion wie Überschrift, Titel, oder Normaler Text er im fertig formatierten Dokument einnehmen soll. Zur Ausgabe wird die Makrosprache LaTeX des Textsatzprogramms TeX eingesetzt. Deshalb gewährleistet LyX qualitativ höchstwertigen Satz. Zusätzlich besondere Stärken liegen in der Darstellung mathematischer Formeln und der Verwaltung von Fußnoten und Stichwortverzeichnissen.

        Darstellung beim Editieren Beim Editieren des Dokuments ist die Ansicht optimiert für die Darstellung am Bildschirm. Ähnlich wie bei HTML orientiert sich die Länge der Zeilen an der Breite des Fensters und ein Seitenumbruch erfolgt nicht am Bildschirm. Für strukturelle Elemente des Dokuments verfolgt LyX eine Strategie des WYSIWYM. Strukturelle Elemente wie Überschriften oder Aufzählungen werden so formatiert, dass sie als solche erkennbar sind, jedoch nicht notwendigerweise so, wie sie im gedruckten Dokument erscheinen. So kann zum Beispiel für die Überschriften eine für den Bildschirm optimierte Schrift gewählt werden, ohne dass das Einfluss auf das gedruckte Ergebnis nimmt.

        Eingabe über Tastatur oder über Maus Für die Erfassung des Dokuments stehen bei den meisten Elementen sowohl ein grafischer Zugang über die Maus, als auch einer über die Tastatur zur Verfügung. Insbesondere werden viele Befehle der LaTeX-Syntax erkannt und automatisch in eine passende grafische Darstellung umgesetzt. Nicht erkannte Befehle werden bei der Ausgabe unverändert an LaTeX weitergegeben. Auf diese Weise ist es möglich, sämtliche Möglichkeiten von LaTeX zu nutzen. Im Editierfenster werden diese Befehle in roter Schrift angezeigt. Diese Anzeige läuft dem Projektziel entgegen, im Editierfenster keine Befehle anzuzeigen. Daraus entwickelte sich projekt-intern, halb scherzhaft, die Bezeichnung Evil Red Text, böser roter Text, abgekürzt ERT.[2]

        Entwicklung LyX wurde 1995 vom damaligen Informatikstudenten Matthias Ettrich im Rahmen seiner Studienarbeit mit dem GUI-Toolkit Motif entwickelt. Als er nach Beendigung der Studienarbeit im Internet nach Mitstreitern suchte, um LyX gemeinsam weiterzuentwickeln, musste er feststellen, dass nur wenige Erfahrungen oder Zugang zu Motif hatten. Daher suchte er nach einem neuen, freien GUI-Toolkit. Die Wahl fiel schließlich auf das Toolkit XForms. In späteren Jahren wurde das GUI Independence Framework eingeführt, um zu erreichen, dass neben XForms auch noch weitere GUI-Toolkits (Qt, Gtk) verwendet werden können. In aktuellen Versionen wird nur noch das GUI-Toolkit Qt unterstützt.

        Literatur • David Kastrup: „LaTeX und WYSIWYG? preview- unter Emacs und andere Ansätze“. In: Die TeXnische Komödie. Nr. 4/2002 [3] (PDF; 2,3 MB). S. 10–26, 15ff. (englisch: Revisiting WYSIWYG paradigms for authoring LaTeX [4]; PDF; 210 kB).

        Weblinks • Offizielle Projektseite von LyX [5] • Wiki [6] (englisch) • eComStation- und OS/2-Portierung [7] (englisch) • LyX-Vorlagen für die Diplomarbeit [8] LyX 37

        Einzelnachweise

        [1] http:/ / www. lyx. org/

        [2] What is Evil Red Text? (http:/ / wiki. lyx. org/ FAQ/ ERT#toc1), Erklärung des Begriffs ERT.

        [3] http:/ / www. dante. de/ DTK/ Ausgaben/ komoedie20024. pdf

        [4] http:/ / preview-latex. sourceforge. net/ wysiwyg-draft. pdf

        [5] http:/ / www. lyx. org/ WebDe. Home

        [6] http:/ / wiki. lyx. org/

        [7] http:/ / www. smedley. info/ os2ports/ index. php?page=lyx

        [8] http:/ / www. thesis-template. de

        Zeichenkodierung

        Eine Zeichenkodierung (englisch , kurz Encoding) erlaubt die eindeutige Zuordnung von Schriftzeichen (Buchstaben oder Ziffern) und Symbolen innerhalb eines Zeichensatzes. In der Elektronischen Datenverarbeitung werden Zeichen über einen Zahlenwert kodiert und eignen sich damit für Übertragungen oder Speicherungen. Der deutsche Umlaut Ü wird zum Beispiel im ISO-8859-1-Zeichensatz mit dem Dezimalwert 220 kodiert. Im EBCDIC-Zeichensatz kodiert der Wert 220 die geschweifte Klammer }. Zur richtigen Darstellung eines Zeichens muss also die Zeichenkodierung bekannt sein; der Zahlenwert allein reicht nicht aus. Zahlenwerte aus Zeichenkodierungen lassen sich auf verschiedene Art transportieren, zum Beispiel durch optische, akustische oder elektrische Signale, in aller Regel durch Abfolgen von • langem und kurzem Signal (bspw. bei Morsezeichen), • hohem und tiefem Ton (bspw. akustische Übertragung bei Faxgeräten), • hoher und niedriger Spannung (bspw. bei der elektronischen Datenspeicherung). Binäre Systeme hatten seit jeher eine besondere Bedeutung, da mit steigender Anzahl der Basiselemente des Codes die Gefahr von Verwechslungen steigt.

        Geschichte Die Anfänge dieser Technik liegen in der Antike. Zum Beispiel informierte Agamemnon seine Truppen von einem Schiff aus mit dem Licht eines Feuers darüber, dass er die Invasion Trojas starten wollte. Bekannt sind ferner Rauchzeichen bei den Indianern oder Nachrichtenübermittlung durch Trommelzeichen in Afrika. Insbesondere zur Verständigung von Schiffsverbänden in der Nautik wurden die Techniken später verfeinert. Sir Walter Raleigh erfand für die Verständigung seines Geschwaders auf der Südamerikafahrt 1617 eine Art Vorläufer der Flaggencodierung. 1648 schließlich war es Englands späterer König James II., der das erste Signalflaggensystem in der britischen Marine einführte. Nach der Erfindung der Telegrafie benötigte man auch hier eine Zeichenkodierung. Aus den ursprünglichen Ideen des Engländers Alfred Brain entstanden 1837 der originale Morsecode und 1844 der modifizierte Morsecode. Das CCITT (Comité Consultatif International Telegraphique et Telephonique) war schließlich die erste Institution, die einen standardisierten Zeichensatz definierte. Dabei basierte dieser Zeichensatz auf einem von Jean-Maurice-Émile Baudot 1870 entwickelten 5er-Code- für seinen Synchrontelegraphen, dem Baudot-Code, dessen Prinzip noch heute verwendet wird. Zeichenkodierung 38

        Computer und Datenaustausch Mit der Entwicklung des Computers begann die Umsetzung der im Grunde schon seit dem Baudot-Code verwendeten binären Zeichenkodierung in Bit-Folgen, bzw. intern meist in verschiedene elektrische Spannungswerte als Unterscheidungskriterium, ganz analog zu der bisher zur Unterscheidung der Signalwerte genutzten Tonhöhe oder Signaldauer. Um diesen Bit-Folgen darstellbare Zeichen zuzuordnen, mussten Übersetzungstabellen, sogenannte Zeichensätze, engl. Charsets, festgelegt werden. 1963 wurde eine erste 7-Bit-Version des ASCII-Codes durch die ASA (American Standards Association) definiert, um eine Vereinheitlichung der Zeichenkodierung zu erreichen. Obwohl IBM an der Definition mitgearbeitet hatte, führte man 1964 einen eigenen 8-Bit-Zeichencode EBCDIC ein. Beide finden bis heute in der Computertechnik Verwendung. Da für viele Sprachen jeweils unterschiedliche diakritische Zeichen benötigt werden, mit denen Buchstaben des lateinischen modifiziert werden, gibt es für viele Sprachgruppen jeweils eigene Zeichensätze. Die ISO hat mit der Normenreihe ISO 8859 Zeichenkodierungen für alle europäischen Sprachen (einschließlich Türkisch) und Arabisch, Hebräisch sowie Thai standardisiert. Das schließlich veröffentlichte 1991 eine erste Fassung des gleichnamigen Standards, der es sich zum Ziel gesetzt hat, alle Zeichen aller Sprachen in Codeform zu definieren. Unicode ist gleichzeitig die internationale Norm ISO 10646. Bevor ein Text elektronisch verarbeitet wird, muss der verwendete Zeichensatz und die Zeichenkodierung festgelegt werden. Dazu dienen beispielsweise folgende Angaben: • Definition des Zeichensatzes in einer HTML-Seite

        • Definition des Zeichensatzes in den Kopfzeilen (Headern) einer E-Mail oder eines HTTP-Pakets Content-Type: text/plain; charset="ISO-8859-1"

        Grafische Darstellung Das Vorhandensein von Software für Zeichenkodierung und -dekodierung garantiert noch nicht die richtige Darstellung auf dem Computerbildschirm. Zu diesem Zweck muss auch eine Schriftart verfügbar sein, die die Zeichen des Zeichensatzes enthält.

        Differenzierung der Begriffe durch Einführung des Unicodes Mit Einführung des Unicodes und der damit verbundenen Notwendigkeit, Zeichen durch mehr als ein Byte darzustellen, wurden genauere Begriffe notwendig. Derzeit werden im Deutschen die Begriffe Zeichensatz, Code, Kodierung, encoding manchmal synonym, manchmal differenzierend verwendet. Im Englischen existieren bereits klare Differenzierungen: Ein Zeichensatz (character set oder character repertoire) ist eine Menge S verschiedener Schriftzeichen. Ein Zeichencode (ccs, coded character set) ist ein Zeichensatz S mit einer injektiven Abbildung zwischen den Schriftzeichen in S und einer Codemenge (endliche Teilmenge der natürlichen Zahlen). Die Menge M heißt auch codespace, und die Mengen S und M zusammen mit der Abbildung von S auf M bezeichnet man auch als codepage. Ein Codepunkt (codepoint oder encoded character) ist ein Element der Codemenge M, das sein zugeordnetes Zeichen aus S bezeichnet. Texte werden durch die Codepunkte ihrer Schriftzeichen dargestellt, also als Sequenz von Zahlen aus M. Als nächstes muss man festlegen, wie die Codepunkte im Rechner dargestellt werden. Mit encoding form (character encoding form, cef) oder encoding scheme (character encoding scheme, ces) (keine gute Übersetzung ins Deutsche Zeichenkodierung 39

        bekannt), bezeichnet man eine Methode, jeden Codepunkt als Folge von einem oder mehreren Bytes auszudrücken. Eine solche Bytefolge, die einen Codepunkt und damit ein Zeichen darstellt, nennt man code unit. In einfachen Fällen gibt es nicht mehr als 256 = 28 Codepunkte, so dass man jeden Codepunkt in einem Byte speichern kann, wie es auch häufig geschieht, z. B. bei Verwendung eines der in ISO 8859 definierten Zeichencodes. Bei Verwendung von Unicode ist das nicht mehr möglich, da S weit mehr als 256 Zeichen enthält. Hier verwendet man z. B. UTF-16, wo die Codepunkte 0 bis 216-1 in zwei und alle größeren in vier Byte abgespeichert werden. Man unterscheidet hier UTF-16BE (big-endian) und UTF-16LE (little-endian), die sich in der Reihenfolge der Bytes in einer code unit unterscheiden. Beim UTF-32 verwendet man immer vier Byte für jeden Codepunkt, und UTF-8 verwendet je nach Codepunkt ein oder mehrere Bytes: die Codepunkte 0 bis 127 werden in einem einzigen Byte gespeichert, so dass diese Darstellung bei den meisten englischen und europäischen Texten platzsparend ist, den die Zeichen mit diesen Codepunkten (Zeichen des ASCII) kommen mit Abstand am häufigsten vor. Weitere Verfahren sind etwa: SCSU, BOCU und Punycode. Komplexe Schemes können zwischen mehreren Varianten wechseln (ISO/IEC 2022). Um die Reihenfolge der Bytes in einer code unit unmissverständlich anzugeben, wird oft eine BOM () vorangestellt (0xEF,0xBB,0xBF bei UTF-8; 0xFF, 0xFE bei UTF-16LE; 0xFE, 0xFF bei UTF-16BE). Ein ist eine grafische Darstellung eines einzelnen Schriftzeichens. Beispiel: Das chinesische Schriftzeichen für Berg, shan, 山 hat im Unicode den Codepunkt U+5C71 = 山 und benötigt zur Darstellung 15 Bit. Mit UTF-16 als cef wird es als eine code unit abgelegt. Mit ces bigendian steht 5C, 71 im Speicher, mit littleendian 71, 5C. Mit UTF-8 stehen die drei units E5, B1, B1 im Speicher. Das Glyph ist 山 . Zur Erleichterung für den verwirrten Leser sei noch angemerkt, dass die weitaus meisten Texte in einer der drei Unicode-encodings UTF-8, UTF-16BE oder UTF-16LE gespeichert sind, was den Umgang mit Texten wesentlich erleichtert.

        Literatur • Jacques André: Caractères numériques: introduction. In: Cahiers GUTenberg. Bd. 26, Mai 1997, ISSN 1257-2217 [1], S. 5–44, (in französischer Sprache). • Yannis Haralambous: & encodings. From Unicode to advanced typography and everything in between. Übersetzt von P. Scott Horne. O'Reilly, Beijing u. a. 2007, ISBN 978-0-596-10242-5 (in englischer Sprache). • Peter Karow: Digitale Schriften. Darstellung und Formate. 2. verbesserte Auflage. Springer, Berlin u. a. 1992, ISBN 3-540-54917-X. • Mai-Linh Thi Truong, Jürgen Siebert, Erik Spiekermann (Hrsg.): FontBook. Digital Typeface Compendium (= FontBook 4). 4. überarbeitete und erweiterte Auflage. FSI FontShop International, Berlin 2006, ISBN 3-930023-04-0 (in englischer Sprache). Zeichenkodierung 40

        Weblinks • Joel Spolsky: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) [2] • Character Set Converter [3] – Windowsprogramm zum Konvertieren von Zeichensätzen.

        Quellennachweise

        [1] http:/ / dispatch. opac. d-nb. de/ DB=1. 1/ CMD?ACT=SRCHA& IKT=8& TRM=1257-2217

        [2] http:/ / www. joelonsoftware. com/ articles/ Unicode. html

        [3] http:/ / www. kalytta. com/ tools. php

        Zeichensatz

        Unter einem Zeichensatz versteht man einen Vorrat an Elementen (Zeichen) zur Darstellung von Sachverhalten. Solche Elemente können unter anderem die Buchstaben eines Alphabetes, Ziffern, aber auch andere Symbole sein, etwa die Sonderzeichen, die Zeichen der Lautumschrift des IPA-Codes oder der Brailleschrift, Piktogramme verschiedener Art oder Steuerzeichen (unsichtbare Zeichen). Ein Zeichensatz ist weniger als ein Zeichencode, der zusätzlich noch eine definierte Nummerierung der Zeichen des Zeichensatzes enthalten muss. Insoweit sind die unten aufgeführten Beispiele wie ASCII streng genommen schon ein Zeichencode. In der Informationstechnik benötigt man neben dem definierten Zeichensatz auch die Nummerierung der Schriftzeichen und damit einen Zeichencode. In Zeiten des Internet müssen die verwendeten Zeichencodes international genormt sein, um reibungslosen Datenaustausch zu gewährleisten. Dieser Druck reduziert die frühere Vielfalt der Zeichencodes enorm. Die grafische Ausgestaltung eines Zeichens heißt Schriftzeichen oder Glyph, die des ganzen Zeichensatzes Schriftart bzw. Satz (engl. Font), die Regeln der Zeichensetzung Schriftsatz.

        Zeichensätze in wissenschaftlichen Formalismen Typische Zeichensätze sind etwa: • Einheitenzeichen der Einheiten von physikalischen Größen • Formelzeichen und mathematische Symbole

        Zeichensätze für Computersysteme Traditionell in der Informatik bekannte Zeichenkodierungen sind der ASCII- und der EBCDIC-Code. Letzterer hat allerdings stark an Bedeutung verloren. Zunehmend in den Vordergrund getreten sind Zeichensätze mit international notwendigen Zeichen, die über das Englische hinausgehen, z. B. diesbezügliche Zeichensätze gemäß ANSI und insbesondere der international anerkannte Standard Unicode. Zeichensatz 41

        Name Einführung Bit Codepoints darstellbare Zeichen Normen erster Einsatz

        ASCII 1963 7 128 95 ANSI X3.4-1968 Fernschreiber Teletype ASR-33

        EBCDIC 1964 8 256 93 bis 192 IBM-Großrechner

        Unicode 1991 21 1.114.112 110.182 (Unicode 6.2) ISO 10646 Xerox, Apple

        Ein Teil der Zeichen eines Zeichensatzes sind die darstellbaren Zeichen. Ihre Anzahl ist geringer als die Zahl der insgesamt im Zeichensatz vorgesehenen Zeichen, da ein Teil des Zeichenvorrates für andere Zwecke, zum Beispiel als nicht-druckbare Steuerzeichen verwendet wird. Den Teil der Computerhardware, der die Zeichen auf einem Bildschirm oder auch einem Plotter sichtbar werden lässt, nennt man Zeichengenerator.

        Internationale Zeichensätze • ASCII – Einer der ältesten Computer-Zeichensätze (1963) • ISO 646 – Definiert nationale ASCII-Varianten in 7 Bit-Kodierung (1972) • ISO/IEC 8859-Familie – Mit 15 verschiedenen Zeichenkodierungen zur Abdeckung aller europäischen Sprachen sowie arabisch, hebräisch, thailändisch und türkisch (1986) • Unicode und ISO/IEC 10646 – Der internationale Standard, auf dem fast alle modernen Computer basieren (1991)

        Zeichensätze von Computerfirmen • EBCDIC, von IBM entwickelter Zeichensatz (1964) • Macintosh Roman, MacCyrillic und andere proprietäre Zeichensätze für Apple-Mac-Computer vor Mac OS X, welches Unicode verwendet • PETSCII, der Zeichensatz der 8-Bit-Commodore-Computer • Windows- und DOS-Codepages, z. B. Windows-1252 und MS-DOS Codepage 437, Codepage 850 •

        Nationale Varianten • ARMSCII – Armenisch • – Zeichensatz für traditionelle chinesische Schriftzeichen (, Auslandschinesen) • DIN 66003 – Deutsch, nationale Variante von ISO 646 (1974) • EUC (Extended UNIX Coding) – Mehrere ostasiatische Sprachen • GEOSTD – Georgisch • Guojia Biaozhun (GB) – Zeichensatz für vereinfachte chinesische Schriftzeichen • HKSCS – Ein Standard aus Hongkong für kantonesisch (1999) • ISCII – Alle indischen Sprachen • KOI8- – Russisch • KOI8-U – Ukrainisch • Shift-JIS, auch SJIS – Japanisch, entworfen von Microsoft • TIS-620 – Thailändisch, ähnlich ISO 8859-11 (1990) • TSCII – Tamil • VISCII – Vietnamesisch Siehe auch: Normungsorganisation und Zeichensatz 42

        Literatur • Johannes Bergerhausen, Siri Poarangan: decodeunicode: Die Schriftzeichen der Welt Hermann Schmidt, Mainz, 2011, ISBN 978-3874398138 • The Unicode Consortium: The Unicode Standard, Version 6.0.0 [1]. The Unicode Consortium, Mountain View CA, 2011, ISBN 978-1-936213-01-6 • Richard Gillam: Unicode Demystified, a practical programmer’s guide to the encoding standard. Addison Wesley, Boston MA 2003, ISBN 0-201-70052-2

        Weblinks • schoenitzer.de [2] - Grundwissen und Umgang mit Encodings • Joel Spolsky: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) [2] 8. Oktober 2003

        Quellennachweise

        [1] http:/ / www. unicode. org/ versions/ Unicode6. 0. 0/

        [2] http:/ / www. schoenitzer. de/ encoding. html

        Unicode

        Unicode (Aussprachen: am. Englisch [ˈjuːnikoʊd], brit. Englisch [ˈjuːnikəʊd], deutsch [ˈjuːnikoːt]) ist ein internationaler Standard, in dem langfristig für jedes sinntragende Schriftzeichen oder Textelement aller bekannten Schriftkulturen und Zeichensysteme ein digitaler Code festgelegt wird. Ziel ist es, die Verwendung unterschiedlicher und inkompatibler Kodierungen in verschiedenen Ländern oder Kulturkreisen zu beseitigen. Unicode wird ständig um Zeichen weiterer Schriftsysteme ergänzt.

        ISO 10646 ist die von ISO verwendete, praktisch bedeutungsgleiche Bezeichnung des Unicode-Zeichensatzes; er wird dort als Universal Character Set (UCS) bezeichnet. Logo von Unicode

        Geschichte Herkömmliche Computer-Zeichensätze umfassen nur einen begrenzten Vorrat an Zeichen, bei westlichen Zeichenkodierungen liegt diese Grenze meistens bei 128 (7 Bit) Codepositionen – wie bei dem sehr bekannten ASCII-Standard – oder 256 (8 Bit) Positionen, wie z. B. bei ISO 8859-1 (auch als Latin-1 bekannt) oder EBCDIC. Davon sind nach Abzug der Steuerzeichen 95 Elemente bei ASCII und 191 Elemente bei den 8-Bit ISO-Zeichensätzen als Schrift- und Sonderzeichen darstellbar. Diese Zeichenkodierungen erlauben die gleichzeitige Darstellung nur weniger Sprachen im selben Text, wenn man sich nicht damit behilft, in einem Text verschiedene Schriften mit unterschiedlichen Zeichensätzen zu verwenden. Das behinderte den internationalen Datenaustausch in den 1980er und 1990er Jahren erheblich. Unicode 43

        ISO 2022[1] war ein erster Versuch, mehrere Sprachen mit nur einer Zeichenkodierung darstellen zu können. Die Kodierung benutzt Escapesequenzen, um zwischen verschiedenen Zeichensätzen (z. B. zwischen Latin-1 und Latin-2) wechseln zu können. Das System setzte sich jedoch nur in Ostasien durch.[2] Joseph D. Becker von Xerox schrieb 1988 den ersten Entwurf für einen universalen Zeichensatz. Dieser 16-Bit-Zeichensatz sollte nach den ursprünglichen Plänen lediglich die Zeichen moderner Sprachen kodieren: “Unicode gives higher priority to ensuring utility for the future than to preserving past antiquities. Unicode aims in the first instance at the characters published in modern text (e.. in the union of all newspapers and magazines printed in the world in 1988), whose number is undoubtedly far below 214 = 16,384. Beyond those modern-use characters, all others may be defined to be obsolete or rare, these are better candidates for private-use registration than for congesting the public list of generally-useful Unicodes.” „Unicode stellt einen höheren Anspruch darauf, die Verwendbarkeit für die Zukunft sicherzustellen, als vergangene Altertümlichkeiten zu erhalten. Unicode zielt in erster Linie auf alle Zeichen, die in modernen Texten veröffentlicht werden (etwa in allen Zeitungen und Zeitschriften der Welt des Jahres 1988), deren Anzahl zweifelsfrei weit unter 214 = 16.384 liegt. Weitere Zeichen, die über diese heutigen Zeichen hinausgehen, können als veraltet oder selten erachtet werden, diese sollten besser über einen privaten Modus registriert werden, statt die öffentliche Liste der allgemein nützlichen Unicodes zu überfüllen.“ – Joseph D. Becker[3] Im Oktober 1991[4] wurde nach mehrjähriger Entwicklungszeit die Version 1.0.0 des Unicode-Standards veröffentlicht, die damals nur die europäischen, nahöstlichen und indischen Schriften kodierte.[5] Erst acht Monate später, nachdem die Han-Vereinheitlichung abgeschlossen war, erschien Version 1.0.1, die erstmals ostasiatische Zeichen kodierte. Mit der Veröffentlichung von Unicode 2.0 im Juli 1996 wurde der Standard von ursprünglich 65.536 auf die heutigen 1.114.112 Codepunkte, von U+0000 bis U+10FFFF erweitert.

        Versionen

        Version Datum Schriftsysteme Zeichen Erweiterungen

        [6] 1.0.0 Oktober 24 7.161 erste Version 1991

        [7] 1.0.1 Juni 1992 25 28.359 CJK-Schriftzeichen

        [8] 1.1 Juni 1993 24 34.233 zusätzliche koreanische Silbenzeichen, Entfernung der tibetischen Schrift aus dem Standard

        [9] 2.0 Juli 1996 25 38.950 neuer Unicodeblock für Hangeul-Silbenzeichen, Wiedereinführung der tibetischen Schrift

        [10] 2.1 Mai 1998 25 38.952 Eurozeichen sowie ein Objektersetzungszeichen

        [11] 3.0 September 38 49.259 Syrisches Alphabet, -Alphabet, singhalesische Schrift, birmanische Schrift, äthiopische 1999 Schrift, Cherokee-Alphabet, Cree-Schrift, , Runen, Khmer-Schrift, mongolische Schrift, Brailleschrift, Yi, zusätzliche CJK-Schriftzeichen

        [12] 3.1 März 2001 41 94.205 Altitalisches Alphabet, gotisches Alphabet, -Alphabet, Notenschrift, weitere CJK-Schriftzeichen

        [13] 3.2 März 2002 45 95.221 , Hanunó'o, Buid-Schrift, Tagbanuwa-Schrift

        [14] Limbu-Schrift, Tai Nüa, Linearschrift B, ugaritische Schrift, Shaw-Alphabet, Osmaniya-Schrift, 4.0 April 2003 52 96.447 kyprische Schrift

        [15] 4.1 März 2005 59 97.720 Koptische Schrift (als eigenständig vom griechischen Alphabet), Tai Lü, Lontara, glagolitische Schrift, Nuschuri, -Schrift, Sylheti Nagari, Persische Keilschrift, Kharoshthi-Schrift Unicode 44

        [16] 5.0 Juli 2006 64 99.089 N’Ko, balinesische Schrift, Phagpa-Schrift, phönizische Schrift, Keilschrift

        [17] 5.1 April 2008 75 100.713 Sundanesische Schrift, Lepcha-Schrift, Ol Chiki, Vai-Schrift, Saurashtri-Schrift, Kayah Li, Rejang-Schrift, Cham-Schrift, lykische Schrift, karische Schrift, lydische Schrift

        [18] 5.2 Oktober 90 107.361 Samaritanische Schrift, Lanna-Schrift, Fraser-Alphabet, Bamun-Schrift, javanische Schrift, 2009 Tai-Viet-Schrift, Meitei-Mayek, aramäische Schrift, altsüdarabische Schrift, avestische Schrift, parthische Schrift, Pahlavi-Schrift, Orchon-Runen, -Schrift, ägyptische Hieroglyphen, zusätzliche CJK-Schriftzeichen

        [19] 6.0 Oktober 93 109.242 Batak-Schrift, Brahmi-Schrift, mandäische Schrift, 2010

        [20] 6.1 Januar 100 110.181 Meroitische Schrift, Sora-Sompeng, Chakma-Schrift, Sharada-Schrift, Takri-Schrift, 2012 Pollard-Schrift

        [21] 6.2 September 100 110.182 Währungszeichen der türkischen Lira 2012

        [22] 6.3 September 100 110.187 5 weitere bidirektionale Steuerzeichen mit Änderungen des Unicode-Bidi-Algorithmus, 2013 Variantenselektoren für CJK-Kompatibilitätsideogramme, verbesserter hebräischer Wortumbruch und CJK-Zeilenumbruch

        Inhalt des Standards Das Unicode-Konsortium stellt mehrere Dokumente zur Unterstützung von Unicode bereit. Neben dem eigentlichen Zeichensatz sind dies des Weiteren auch andere Dokumente, die zwar nicht zwingend notwendig, aber dennoch hilfreich zur Interpretation des Unicode-Standards sind.

        Gliederung Siehe auch: Liste der Unicodeblöcke Im Gegensatz zu früheren Zeichenkodierungen, die meist nur ein bestimmtes Schriftsystem kodierten, ist es das Ziel von Unicode, alle in Gebrauch befindlichen Schriftsysteme und Zeichen zu kodieren.[23] Der Zeichenumfang ist dazu in 17 Ebenen (englisch planes) gegliedert, welche jeweils 216 = 65.536 Zeichen umfassen. Sechs dieser Ebenen werden bereits verwendet, die restlichen sind für spätere Nutzung reserviert:

        • Die Basic Multilingual Grafische Darstellung der Basic Multilingual Plane (BMP; deutsch Mehrsprachige Basis-Ebene, auch als Plane 0 bezeichnet) enthält hauptsächlich Schriftsysteme, die aktuell in Gebrauch sind, Satzzeichen und Symbole, Kontrollzeichen und Surrogate-Paare, und einen privat nutzbaren Bereich (PUA). Der Block ist stark fragmentiert und weitgehend belegt, sodass neu zu codierende Schriftsysteme hier keinen Platz mehr finden. Der Zugriff auf andere Ebenen als der BMP ist in manchen Programmen noch nicht oder nur eingeschränkt möglich. • Die Supplementary Multilingual Plane (SMP; dt. Ergänzende mehrsprachige Ebene, auch als Plane 1 bezeichnet) wurde mit Unicode 3.1 eingeführt. Sie enthält vor allem historische Schriftsysteme, aber auch größere Unicode 45

        Ansammlungen an Zeichen, die selten in Gebrauch sind, wie z. B. Domino- und Mahjonggsteine und Emoji. Mittlerweile werden auch Schriftsysteme in der SMP codiert, die noch in Benutzung sind, aber in der BMP keinen Platz mehr finden. • Die Supplementary Ideographic Plane (SIP; dt. Ergänzende ideographische Ebene, auch als Plane 2 bezeichnet), die ebenfalls mit Unicode 3.1 eingeführt wurde, enthält ausschließlich CJK-Schriftzeichen, die selten benutzt werden, dazu zählen unter anderem auch die Chữ nôm, die früher in Vietnam benutzt wurden. Sollte diese Ebene dafür nicht ausreichen, ist Plane 3 für weitere CJK-Schriftzeichen reserviert.[24] • Die Supplementary Special-purpose Plane (SSP; dt. Ergänzende Ebene für spezielle Verwendungen, auch als Plane 14 bezeichnet) enthält einige wenige Kontrollzeichen zur Sprachmarkierung. • Die letzten beiden Ebenen, jeweils Supplementary Private Use Area-A und -B (PUA; auch Plane 15 und Plane 16), stehen als privat nutzbare Bereiche (PUA) zur Verfügung. Sie werden teilweise auch als Private Use Planes[25] (PUP) bezeichnet. Innerhalb dieser Ebenen werden zusammengehörende Zeichen in Blöcken (engl. blocks) zusammengefasst. Meist behandelt ein Unicodeblock ein Schriftsystem, aus historischen Gründen hat sich allerdings ein gewisses Maß an Fragmentierung eingestellt. Oft wurden später noch Zeichen hinzugefügt und in anderen Blöcken als Ergänzung untergebracht.

        Codepunkte und Zeichen Jedes im Unicode-Standard codierte elementare Zeichen ist einem Codepunkt (engl. code points) zugeordnet. Diese werden üblicherweise hexadezimal (mindestens vierstellig, d. h. ggf. mit führenden Nullen) und mit einem vorangestellten U+ dargestellt, z. B. U+00DF für das ß.[26] Der gesamte von Unicode-Standard beschriebene Bereich umfasst 1.114.112 Codepunkte (U+0000 … U+10FFFF, 17 Ebenen zu je 2^16, d. h. 65536 Zeichen). Davon lässt der Standard jedoch für einige Bereiche die Verwendung zur Zeichenkodierung nicht zu: • 2048 Codepunkte im Bereich U+D800 … U+DFFF werden als Teile von Surrogate-Paaren im Kodierungsschema UTF-16 zur Darstellung von Codepunkten oberhalb der BMP (also im Bereich U+10000 … U+10FFFF) verwendet und stehen deshalb nicht selbst als Codepunkt für einzelne Zeichen zur Verfügung. • 66 Codepunkte, 32 im Bereich U+FDD0 … U+FDEF sowie je 2 am Ende jeder der 17 Ebenen (also U+FFFE … U+FFFF, U+1FFFE … U+1FFFF, …, U+10FFFE … U+10FFFF) sind für process-internal uses reserviert und nicht für die Verwendung als einzelne Zeichen vorgesehen. Somit stehen für die Zeichencodierung insgesamt 1.111.998 Codepunkte zur Verfügung. Die Anzahl der tatsächlich zugewiesenen Codepunkte ist jedoch deutlich niedriger; eine Übersicht, wieviele Codepunkte in den verschiedenen Versionen jeweils zugewiesen sind und wofür sie genutzt werden, bieten die Tabellen D-2 und D-3 im Anhang D des Unicode-Standards[25]

        PUA (“Private Use Area”, privat nutzbarer Bereich) → Hauptartikel: Private Use Area Spezielle Bereiche sind für private Nutzung reserviert, d. h. in diesen werden niemals Codepunkte für in Unicode standardisierten Zeichen zugewiesen. Diese können für privat definierte Zeichen verwendet werden, die zwischen den Erzeugern und Verwendern der Texte, die sie enthalten, individuell abgesprochen sein müssen. Diese Bereiche sind: • in der BMP: U+E000 … U+F8FF • in anderen Ebenen: U+F0000 … U+FFFFD und U+100000 … U+10FFFD Es haben sich für verschiedene Anwendungen spezielle Konventionen entwickelt, die speziell für den PUA-Bereich der BMP Zeichenbelegungen vorgeben. Zum einen finden sich hier häufig precomposed characters aus Unicode 46

        Grundzeichen und diakritischen Zeichen, da in vielen (speziell älteren) Software-Anwendungen nicht davon ausgegangen werden kann, dass solche Zeichen gemäß den Unicode-Regeln bei Eingabe als Folge aus Grundzeichen und diakritischem Zeichen korrekt dargestellt werden. Zum anderen finden sich Zeichen, die nicht den Regeln für eine Aufnahme in Unicode entsprechen, oder deren Beantragung zur Aufnahme in Unicode aus anderen Gründen erfolglos war oder unterblieb. So findet sich in vielen Fonts auf der Position U+F000 ein Hersteller-Logo (Logos werden in Unicode prinzipiell nicht codiert). Bedeutende Quellen für PUA-Zeichen sind: • MUFI (Medieval Initiative) • SIL PUA für Sonderbuchstaben diverser Minderheitensprachen weltweit • Languagegeek für indigene Sprachen Nordamerikas • ConScript für erfundene Schriftsysteme wie Klingonisch

        Kodierung Neben dem eigentlichen Zeichensatz sind auch eine Reihe von Zeichenkodierungen definiert, die den Unicode-Zeichensatz implementieren und die benutzt werden können, um den vollen Zugriff auf alle Unicode-Zeichen zu haben. Sie werden Unicode Transformation Format (kurz UTF) genannt; am weitesten verbreitet sind zum einen UTF-16, das sich als interne Zeichendarstellung einiger Betriebssysteme (Windows[27], OS X) und Softwareentwicklungs-Frameworks (Java[28], .NET[29]) etabliert hat, zum anderen UTF-8, das ebenfalls in Betriebssystemen (GNU/Linux, Unix) sowie in verschiedenen Internetdiensten (E-Mail, WWW) eine große Rolle spielt. Basierend auf dem proprietären EBCDIC-Format von IBM-Großrechnern ist die UTF-EBCDIC-Kodierung definiert. Punycode dient dazu, Domainnamen mit Nicht-ASCII-Zeichen zu kodieren. Mit dem Standard Compression Scheme for Unicode existiert ein Kodierungsformat, das die Texte gleichzeitig komprimiert. Weitere Formate zur Kodierung von Unicode-Zeichen sind u. a. CESU-8 und GB 18030.

        Normalisierung Viele Zeichen, die im Unicode-Standard enthalten sind, sind sogenannte Kompatibilitätszeichen, die aus Unicode-Sicht bereits mit anderen in Unicode kodierten Zeichen bzw. Zeichensequenzen dargestellt werden können, so z. B. die deutschen Umlaute, die theoretisch mit einer Sequenz aus dem Basisbuchstaben und einem kombinierenden Trema (horizontaler Doppelpunkt) dargestellt werden können. Bei der Unicode-Normalisierung werden die Kompatibilitätszeichen automatisch durch die in Unicode vorgesehenen Sequenzen ersetzt. Dies erleichtert die Verarbeitung von Unicode-Texten erheblich, da so nur eine mögliche Kombination für ein bestimmtes Zeichen steht, und nicht mehrere verschiedene.

        Sortierung Für viele Schriftsysteme sind die Zeichen in Unicode nicht in einer Reihenfolge codiert, die einer bei den Anwendern dieses Schriftsystems üblichen Sortierung entspricht. Deshalb kann bei einer Sortierung z. B. in einer Datenbankanwendung üblicherweise nicht die Reihenfolge der Codepunkte verwendet werden. Außerdem sind die Sortierungen in vielen Schriftsystemen von komplexen, kontextabhängigen Regelungen geprägt. Hier definiert der Unicode Collation Algorithm, wie Zeichenfolgen innerhalb eines bestimmten Schriftsystems oder auch schriftsystemübergreifend sortiert werden können. In vielen Fällen ist jedoch die tatsächlich anzuwendende Reihenfolge von anderen Faktoren (z. B. der verwendeten Sprache) abhängig (z. B. sortiert „ä“ im Deutschen anwendungsabhängig wie „ae“ oder „a“, im Schwedischen jedoch hinter „z“ und „å“), sodass der Unicode-Sortierungsalgorithmus dann anzuwenden ist, wenn die Sortierung nicht von spezielleren Rahmenbedingungen bestimmt wird. Unicode 47

        Normierungsinstitutionen Das gemeinnützige Unicode-Konsortium wurde 1991 gegründet und ist für den Industriestandard Unicode verantwortlich. Von der ISO (Internationale Organisation für Normung) wird in Zusammenarbeit mit IEC die internationale Norm ISO 10646 herausgegeben. Beide Institutionen arbeiten eng zusammen. Seit 1993 sind Unicode und ISO 10646 bezüglich der Zeichenkodierung praktisch identisch. Während ISO 10646 lediglich die eigentliche Zeichenkodierung festlegt, gehört zum Unicode ein umfassendes Regelwerk, das unter anderem für alle Zeichen weitere zur konkreten Anwendung wichtige Eigenschaften (sogenannte Properties) eindeutig festlegt wie Sortierreihenfolge, Leserichtung und Regeln für das Kombinieren von Zeichen.[30] Seit einiger Zeit entspricht der Codeumfang von ISO 10646 exakt dem von Unicode, da auch dort der Codebereich auf 17 Ebenen, darstellbar mit 21 Bit, beschränkt wurde.[31]

        Kodierungskriterien Gegenüber anderen Normen gibt es bei Unicode die Besonderheit, dass einmal kodierte Zeichen niemals wieder entfernt werden, um die Langlebigkeit digitaler Daten zu gewährleisten.[32] Sollte sich die Normierung eines Zeichens nachträglich als Fehler erweisen, wird allenfalls von seiner Verwendung abgeraten. Daher bedarf die Aufnahme eines Zeichens in den Standard einer äußerst sorgfältigen Prüfung, die sich über Jahre hinziehen kann. Im Unicode werden lediglich „abstrakte Zeichen“ (englisch: characters) kodiert, nicht dagegen die grafische Darstellung (Glyphen) dieser Zeichen, die von Schriftart zu Schriftart extrem unterschiedlich ausfallen kann, beim lateinischen Alphabet etwa in Form der Antiqua, , der irischen Schrift oder der verschiedenen Handschriften.[33] Für Glyphenvarianten, deren Normierung als sinnvoll und notwendig nachgewiesen wird, sind dabei allerdings vorsorglich 256 „Variation Selectors“ reserviert, die ggf. dem eigentlichen Code nachgestellt werden können. In vielen Schriftsystemen können Zeichen außerdem je nach Position unterschiedliche Formen annehmen oder Ligaturen bilden. Von Ausnahmen abgesehen (z. B. Arabisch) werden solche Varianten ebenfalls nicht in den Unicode-Standard übernommen, sondern es wird eine sogenannte Smartfont-Technik wie OpenType vorausgesetzt, die die Formen angemessen ersetzen kann. Andererseits werden identische Glyphen, wenn sie verschiedene Bedeutungen haben, auch mehrfach kodiert, etwa die Glyphen А, В, Е, , М, Н, О, Р, Т und Х, die – mit zum Teil unterschiedlicher Bedeutung – sowohl im lateinischen als auch im griechischen und kyrillischen Alphabet vorkommen. In Grenzfällen wird hart um die Entscheidung gerungen, ob es sich um Glyphenvarianten oder tatsächlich unterschiedliche, einer eigenen Kodierung würdige Zeichen () handelt. Beispielsweise sind nicht wenige Fachleute der Meinung, man könne das phönizische Alphabet als Glyphenvarianten des hebräischen Alphabets betrachten, da der gesamte Zeichenvorrat des Phönizischen dort eindeutige Entsprechungen hat und auch beide Sprachen sehr eng miteinander verwandt sind. Letztlich durchgesetzt hat sich allerdings schließlich die Auffassung, es handele sich um separate Zeichensysteme, in der Unicode-Terminologie „scripts“ genannt.[34] Anders verhält es sich bei CJK (Chinesisch, Japanisch und Koreanisch): Hier haben sich in den letzten Jahrhunderten die Formen vieler gleichbedeutender Schriftzeichen auseinanderentwickelt. Dennoch teilen sich die sprachspezifischen Glyphen dieselben Codes im Unicode (mit Ausnahme einiger Zeichen aus Kompatibilitätsgründen). In der Praxis werden hier überwiegend sprachspezifische Schriftarten verwendet, wodurch der Platzbedarf der Schriften zusammen hoch ist. Die einheitliche Kodierung der CJK-Schriftzeichen () war eine der wichtigsten und umfangreichsten Vorarbeiten für die Entwicklung von Unicode. Besonders in Japan ist sie durchaus umstritten. Als der Grundstein für Unicode gelegt wurde, musste berücksichtigt werden, dass bereits eine Vielzahl unterschiedlicher Kodierungen im Einsatz waren. Unicode-basierte Systeme sollten herkömmlich kodierte Daten mit geringem Aufwand handhaben können. Dazu wurde für die unteren 256 Zeichen die weit verbreitete ISO 8859-1-Kodierung (Latin1) ebenso wie die Kodierungsarten verschiedener nationaler Normen beibehalten, z. B. Unicode 48

        TIS-620 für Thailändisch (fast identisch mit ISO 8859-11) oder ISCII für indische Schriften, die in der ursprünglichen Reihenfolge lediglich in höhere Bereiche verschoben wurden. Jedes Zeichen maßgeblicher überkommener Kodierungen wurde in den Standard übernommen, auch wenn es den normalerweise angelegten Maßstäben nicht gerecht wird. Hierbei handelt es sich zu einem großen Teil um Zeichen, die aus zwei oder mehr Zeichen zusammengesetzt sind, wie Buchstaben mit diakritischen Zeichen. Im übrigen verfügt auch heute noch ein großer Teil der Software nicht über die Möglichkeit, Zeichen mit Diakritika ordentlich zusammenzusetzen. Die exakte Festlegung von äquivalenten Kodierungen ist Teil des zum Unicode gehörenden umfangreichen Regelwerks. Darüber hinaus gibt es viele Unicode-Zeichen, denen keine Glyphe zugeordnet ist und die trotzdem als „characters“ behandelt werden. So sind neben Steuerzeichen wie dem Tabulator (U+0009), dem Zeilenvorschub (U+000A) usw. allein 19 verschiedene Zeichen explizit als Leerzeichen definiert, sogar solche ohne Breite, die u. a. für Sprachen wie Thai, die ohne Wortzwischenraum geschrieben werden, als Worttrenner eingesetzt werden. Für bidirektionalen Text, z. B. Arabisch mit Lateinisch, sind sieben Formatierungszeichen kodiert. Darüber hinaus gibt es weitere unsichtbare Zeichen, die nur unter bestimmten Umständen ausgewertet werden sollen, etwa der Combining Grapheme Joiner.

        Darstellung auf dem Computer

        Eingabemethoden Unter Windows (ab Windows 2000) kann in einigen Programmen (genauer in RichEdit-Feldern) der Code dezimal als Alt+ (bei eingeschaltetem Num-Lock) auf dem numerischen Tastaturfeld eingegeben werden. Dabei ist jedoch zu beachten, dass Zeichennummern kleiner als 1000 um eine führende Null zu ergänzen sind (z. B. Alt+0234 für Codepoint 234 [ê]). Diese Maßnahme ist notwendig, da die (immer noch in Windows 10 verfügbare) Eingabemethode Alt+ bereits in MS-DOS-Zeiten genutzt wurde, um die Zeichen der Codepage 850 (. a. bei früheren MS-DOS-Versionen auch Codepage 437) einzugeben. Siehe auch: Alt-Code. Unter Microsoft Office (ab Office XP) kann Unicode auch hexadezimal eingegeben werden, indem im Dokument oder U+ eingetippt wird und anschließend die Tastenkombination Alt+c gedrückt wird. Diese Tastenkombination kann auch benutzt werden, um den Code des vor dem Cursor stehenden Zeichens anzuzeigen.[35] Eine alternative Möglichkeit, welche auch in älteren Versionen funktioniert, ist, mit „Einfügen“ – „Sonderzeichen“ eine Tabelle mit Unicode-Zeichen aufzurufen, darin mit dem Cursor ein gewünschtes auszusuchen und in den Text einzufügen. Das Programm ermöglicht auch, für häufiger benötigte Zeichen Makros festzulegen, die dann mit einer Tastenkombination abgerufen werden können. Bei Apple-Computern muss die Unicode-Hex-Tastenbelegung aktiviert werden. Danach wird der Code bei gedrückter Alt-Taste eingegeben.[36] HTML und XML unterstützen Unicode mit Zeichencodes, die unabhängig vom eingestellten Zeichensatz das Unicode-Zeichen darstellen. Die Notation lautet � für dezimale Notation bzw. � für hexadezimale Notation, wobei das 0000 die Unicode-Nummer des Zeichens darstellt. Für bestimmte Zeichen sind auch benannte Zeichen (engl. named entities) definiert, so z. B. stellt ä das ä dar,[37] das gilt allerdings nur für HTML; XML und das davon abgeleitete XHTML definieren benannte Notationen nur für die Zeichen, die bei normalem Gebrauch als Teile der Auszeichnungssprache interpretiert würden, also < als <, > als >, & als & und " als ". GTK+, Qt und alle darauf basierenden Programme und Umgebungen (wie beispielsweise die Desktopumgebung GNOME) unterstützen die Eingabe über die Kombination Strg+Umschalttaste bzw. in neueren Versionen Strg+U bzw. Strg+Umschalttaste+u. Nach dem Drücken der Tasten erscheint ein unterstrichenes kleines u. Danach kann der Unicode in hexadezimaler Form eingegeben werden und wird auch unterstrichen, damit man erkennen kann, was zum Unicode gehört. Nach einem Druck der Leer- oder Eingabetaste erscheint dann das Unicode 49

        entsprechende Zeichen. Im Texteditor Vim können Unicode-Zeichen mit Strg+v, gefolgt von der Taste u und dem Unicode in hexadezimaler Form, eingegeben werden.

        Zeichentabelle Seit Windows NT 4.0 ist das Programm charmap.exe, genannt Zeichentabelle, in Windows integriert. Mit diesem Programm ist über eine grafische Benutzeroberfläche möglich, Unicode-Zeichen einzufügen. Außerdem bietet es ein Eingabefeld für den Hexadezimalcode. Unter Mac OS X steht unter Einfügen → Sonderzeichen ebenfalls eine systemweite Zeichenpalette bereit. Die freien Programme gucharmap (für Windows und Linux/UNIX) und kcharselect (für Linux/UNIX) stellen den Unicode-Zeichensatz auf dem Bildschirm dar und bieten zusätzliche Informationen zu den einzelnen Zeichen.

        Schriftarten Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschte Zeichennummer) enthält. Oftmals, z. B. unter Windows, wird, falls die verwendete Schrift ein Zeichen nicht enthält, nach Möglichkeit ein Zeichen aus einer anderen Schrift eingefügt. Mittlerweile hat der Coderaum von Unicode/ISO einen Umfang angenommen (mehr als 100.000 Schriftzeichen), der sich nicht mehr vollständig in einer Schriftdatei unterbringen lässt. Die heute gängigsten Schriftdateiformate, TrueType und OpenType, können maximal 65.536 Glyphen enthalten. Unicode/ISO-Konformität einer Schrift bedeutet also nicht, dass der komplette Zeichensatz enthalten ist, sondern lediglich, dass die darin enthaltenen Zeichen normgerecht kodiert sind. Die derzeit umfangreichste Schrift ist die in drei Dateien aufgeteilte Shareware bis Code2002 von James Kass. Auch diese bildet jedoch nicht jedes Unicode-Zeichen ab. In der Publikation »decodeunicode«, die alle Zeichen vorstellt, werden insgesamt 66 Fonts genannt, aus denen die Zeichentabellen zusammengesetzt sind.

        Kritik Unicode wird vor allem von Wissenschaftlern und in ostasiatischen Ländern scharf kritisiert. Einer der bekanntesten Kritikpunkte ist die Han-Vereinheitlichung, aus ostasiatischer Sicht werden bei diesem Vorgehen Schriftzeichen verschiedener nicht verwandter Sprachen vereinigt. Unter anderem wird kritisiert, dass antike Texte in Unicode aufgrund der Vereinheitlichung ähnlicher CJK-Schriftzeichen nicht originalgetreu wiedergegeben werden können.[38] Aufgrund dessen wurden in Japan zahlreiche Alternativen zu Unicode wie etwa der Mojikyō-Standard entwickelt. Die Kodierung der thailändischen Schrift wird teilweise kritisiert, weil sie anders als alle anderen Schriftsysteme in Unicode nicht auf logischer, sondern auf visueller Reihenfolge basiert, was unter anderem die Sortierung thailändischer Wörter erheblich erschwert. Die Unicode-Kodierung basiert auf dem thailändischen Standard TIS-620, der ebenfalls die visuelle Reihenfolge verwendet.[39] Umgekehrt wird die Kodierung der anderen indischen Schriften manchmal als „zu kompliziert“ bezeichnet, vor allem von Vertretern der Tamil-Schrift. Das Modell von separaten Konsonanten- und Vokalzeichen, welches Unicode vom indischen Standard ISCII adoptiert hat[40], wird von jenen abgelehnt, die lieber separate Codepunkte für alle möglichen Konsonant-Vokal-Verbindungen bevorzugen.[41] Die Regierung der Volksrepublik China machte einen ähnlichen Vorschlag, die tibetische Schrift als Silbenfolgen anstelle als einzelne Konsonanten und Vokale zu kodieren.[42] Unicode 50

        Literatur • Johannes Bergerhausen, Siri Poarangan: decodeunicode: Die Schriftzeichen der Welt. Hermann Schmidt, Mainz 2011, ISBN 978-3-87439-813-8. Alle 109.242 Unicode-Zeichen in einem Buch. • Julie D. Allen: The Unicode Standard, version 6.0. The Unicode Consortium. The Unicode Consortium, Mountain View 2011, ISBN 9781936213016 (Online-Version [1]). • Richard Gillam: Unicode Demystified: a practical programmer’s guide to the encoding standard. Addison-Wesley, Boston 2003, ISBN 0201700522.

        Weblinks • Offizielle Website des Unicode Consortium [43] (englisch) • Das Unicode-System – Beschreibung im HTML-Kompendium SELFHTML [44] • Imperia-Unicode-Howto – Allgemeinverständliche, deutschsprachige Einführung in Unicode [45] • UniSearcher [46] – Suchen von Unicodes • Shapecatcher [47] grafische Unicode Zeichensuche (englisch) • Unicode — The Movie [48] Alle 109.242 Unicode-Zeichen in einem Film • Unicode-Fontviewer (Freeware) [49] • Ausführliche Auflistung aller Unicode-Eingabemethoden für Windows (englisch) [50]

        Einzelnachweise

        [1] Dieser Standard ist identisch zu ECMA 35 (http:/ / www. ecma-international. org/ publications/ files/ ECMA-ST/ Ecma-035. pdf) (PDF; 304 kB), einem Standard von Ecma International.

        [2] Internationalisation and the Web (http:/ / www. ariadne. ac. uk/ issue9/ trenches/ )

        [3] Unicode 88 – Joseph D. Becker, Ph.D. – August 29, 1988, Seite 5 (http:/ / www. unicode. org/ history/ unicode88. pdf) (PDF; 2,9 MB)

        [4] History of Unicode Release and Publication Dates (http:/ / www. unicode. org/ history/ publicationdates. html)

        [5] Chronology of Unicode Version 1.0 (http:/ / www. unicode. org/ history/ versionone. html)

        [6] UnicodeData.txt (1.0.0) (http:/ / www. unicode. org/ Public/ reconstructed/ 1. 0. 0/ UnicodeData. txt)

        [7] UnicodeData.txt (1.0.1) (http:/ / www. unicode. org/ Public/ reconstructed/ 1. 0. 1/ UnicodeData. txt)

        [8] UnicodeData.txt (1.1) (http:/ / www. unicode. org/ Public/ 1. 1-Update/ UnicodeData-1. 1. 5. txt)

        [9] UnicodeData.txt (2.0) (http:/ / www. unicode. org/ Public/ 2. 0-Update/ UnicodeData-2. 0. 14. txt)

        [10] UTR #8: The Unicode Standard®, Version 2.1 (http:/ / www. unicode. org/ reports/ tr8/ tr8-3. html)

        [11] Unicode 3.0.0 (http:/ / www. unicode. org/ versions/ Unicode3. 0. 0/ )

        [12] UAX #27: Unicode 3.1 (http:/ / www. unicode. org/ reports/ tr27/ tr27-4. html)

        [13] UTR #28: Unicode 3.2 (http:/ / www. unicode. org/ reports/ tr28/ tr28-3. html)

        [14] Unicode 4.0.0 (http:/ / www. unicode. org/ versions/ Unicode4. 0. 0/ )

        [15] Unicode 4.1.0 (http:/ / www. unicode. org/ versions/ Unicode4. 1. 0/ )

        [16] Unicode 5.0.0 (http:/ / www. unicode. org/ versions/ Unicode5. 0. 0/ )

        [17] Unicode 5.1.0 (http:/ / www. unicode. org/ versions/ Unicode5. 1. 0/ )

        [18] Unicode 5.2.0 (http:/ / www. unicode. org/ versions/ Unicode5. 2. 0/ )

        [19] Unicode 6.0.0 (http:/ / www. unicode. org/ versions/ Unicode6. 0. 0/ )

        [20] Unicode 6.1.0 (http:/ / www. unicode. org/ versions/ Unicode6. 1. 0/ )

        [21] Unicode 6.2.0 (http:/ / www. unicode. org/ versions/ Unicode6. 2. 0/ )

        [22] Unicode 6.3.0 (http:/ / www. unicode. org/ versions/ Unicode6. 3. 0/ )

        [23] What is Unicode? (http:/ / www. unicode. org/ standard/ WhatIsUnicode. html)

        [24] Roadmap to the SIP (http:/ / www. unicode. org/ roadmaps/ sip/ )

        [25] Unicode 6.3 Kapitel 2.8, Seite 34, erster Absatz (http:/ / www. unicode. org/ versions/ Unicode6. 2. 0/ ch02. pdf#page=29) (da die Core-Spezifikation für Version 6.3 nicht verändert und auch nicht neu veröffentlicht wurde, gelten die Dateien von Version 6.2 für 6.3 unverändert weiter.) [26] The Unicode Standard, S. 21f

        [27] Character Sets (http:/ / msdn. microsoft. com/ en-us/ library/ dd317743(VS. 85). aspx)

        [28] Internationalization FAQ (http:/ / java. sun. com/ javase/ technologies/ core/ basic/ intl/ faq. jsp#text-representation|Java)

        [29] Unicode in the .NET Framework (http:/ / msdn. microsoft. com/ en-us/ library/ 9b1s4yhz. aspx)

        [30] FAQ – Unicode and ISO 10646 (http:/ / unicode. org/ faq/ unicode_iso. html) [31] The Unicode Standard, S. 573 Unicode 51

        [32] Unicode Character Encoding Stability Policy (http:/ / www. unicode. org/ policies/ stability_policy. html)

        [33] Unicode Technical Report #17 – Character Encoding Model (http:/ / www. unicode. org/ reports/ tr17/ )

        [34] Response to the revised “Final proposal for encoding the Phoenician script in the UCS” (L2/04-141R2) (http:/ / www. qaya. org/ academic/

        hebrew/ Phoenician. html)

        [35] Tastenkombinationen für internationale Zeichen (http:/ / office. microsoft. com/ de-ch/ support/

        tastenkombinationen-fur-internationale-zeichen-HP001230378. aspx?CTT=1)

        [36] Unicode unter Mac OS X – apfelwiki.de (http:/ / www. apfelwiki. de/ Main/ Unicode#sMain. Unicode_2), abgerufen am 27. April 2013

        [37] Character entity references in HTML 4 (http:/ / www. w3. org/ TR/ REC-html40/ sgml/ entities. html)

        [38] Han Unification in Unicode - Otfried Cheong, October 12, 1999 (http:/ / tclab. kaist. ac. kr/ ~otfried/ Mule/ unihan. html) [39] The Unicode Standard, S. 350 [40] The Unicode Standard, S. 268

        [41] Evolution of the 16 Bit Encoding Scheme for Tamil (http:/ / www. kanithamizh. in/ 16-bit-encoding. htm)

        [42] BabelStone: Precomposed Tibetan Part 1 : BrdaRten (http:/ / babelstone. blogspot. com/ 2006/ 09/ precomposed-tibetan-part-1-brdarten. html)

        [43] http:/ / www. unicode. org/

        [44] http:/ / de. selfhtml. org/ inter/ unicode. htm

        [45] http:/ / let. imperia. org/ howto/ de/ unicode/

        [46] http:/ / www. isthisthingon. org/ unicode/ index. php

        [47] http:/ / shapecatcher. com

        [48] http:/ / vimeo. com/ 48858289

        [49] http:/ / www. babelstone. co. uk/ Software/ BabelMap. html

        [50] http:/ / www. fileformat. info/ tip/ microsoft/ enter_unicode. htm

        UTF-8

        UTF-8 (Abk. für 8-Bit UCS Transformation Format, wobei UCS wiederum Universal Character Set abkürzt) ist die am weitesten verbreitete Kodierung für Unicode-Zeichen (Unicode und UCS sind praktisch identisch). Die Kodierung wurde im September 1992 von Ken Thompson und Rob Pike bei Arbeiten an dem Plan 9-Betriebssystem festgelegt. Die Kodierung wurde zunächst im Rahmen von X/Open als FSS-UTF (filesystem safe UTF in Abgrenzung zu UTF-1, das diese Eigenschaft nicht hat) bezeichnet, in den Folgejahren erfolgte im Rahmen der Standardisierung die Umbenennung auf die heute übliche Bezeichnung UTF-8.[1] UTF-8 ist in den ersten 128 Zeichen (Indizes 0–127) deckungsgleich mit ASCII und eignet sich mit i.d.R. nur einem Byte Speicherbedarf für Zeichen vieler westlicher Sprachen besonders für die Kodierung englischsprachiger Texte, die sich im Regelfall ohne Modifikation daher sogar mit nicht-UTF-8-fähigen Texteditoren ohne Beeinträchtigung bearbeiten lassen, was einen der Gründe für den Status als De-facto-Standard-Zeichenkodierung des und damit verbundener Dokumenttypen darstellt. In anderen Sprachen ist der Speicherbedarf in Byte pro Zeichen größer: Bereits die deutschen Umlaute erfordern zwei Byte; kyrillische, fernöstliche und Sprachen aus dem afrikanischen Raum belegen bis zu 4 Byte je Zeichen. Da die Verarbeitung von UTF-8 als Multibyte-Zeichenfolge wegen der notwendigen Analyse jedes Bytes im Vergleich zu Zeichenkodierungen mit fester Byteanzahl je Zeichen mehr Rechenaufwand und für bestimmte Sprachen auch mehr Speicherplatz erfordert, werden abhängig vom Einsatzszenario auch andere UTF-Kodierungen zur Abbildung von UNICODE-Zeichensätzen verwendet: als meistgenutztes Desktop-Betriebssystem verwendet intern als Kompromiss zwischen UTF-8 und UTF-32 etwa UTF-16 Little Endian. UTF-8 52

        Allgemeines Bei der UTF-8-Kodierung wird jedem Unicode-Zeichen eine speziell kodierte Zeichenkette variabler Länge zugeordnet. Dabei unterstützt UTF-8 Zeichenketten bis zu einer Länge von vier Byte, auf die sich – wie bei allen UTF-Formaten – alle Unicode-Zeichen abbilden lassen. UTF-8 hat eine zentrale Bedeutung als globale Zeichenkodierung im Internet. Die Internet Engineering Task Force verlangt von allen neuen Internetkommunikationsprotokollen, dass die Zeichenkodierung deklariert wird und dass UTF-8 eine der unterstützten Kodierungen ist. Das Internet Mail Consortium (IMC) empfiehlt, dass alle E-Mail-Programme UTF-8 darstellen und senden können.[2] Im Jahr 2008 wurde diese Empfehlung allerdings immer noch nicht global befolgt. Auch bei der in Webbrowsern angewendeten Auszeichnungssprache HTML setzt sich UTF-8 zur Darstellung sprachspezifischer Zeichen zunehmend durch und ersetzt dabei die vorher genutzten HTML-Entitäten.[3]

        Eigenschaften • Multi-Byte-Zeichenkodierung (MBCS) ähnlich CP950/CP936/CP932(chinesisch/japanisch), aber ohne die (damals wichtige und nützliche) Eigenschaft, dass doppelt breit dargestellte Zeichen zwei Bytes lang sind • 7-Bit-ASCII ist gleichzeitig UTF-8 und hochgradig kompatibel zu bisherigen 8-Bit-Zeichensätzen • Trail-Bytes sind niemals 7-Bit-ASCII-Zeichen (ermöglicht Verarbeitung und Parsen mit üblichen 7-Bit-Zeichenkonstanten) • Relativ kompakt, besonders bei europäischen Zeichen, etwas weniger bei (bspw.) chinesischen Zeichen in höheren Kodepositionen, häufig deutlich kompakter als UTF-16 (Windows) • Sortierbarkeit bleibt erhalten, zwei UTF-8-Zeichenketten sortieren genauso wie zwei unkodierte Unicode-Zeichenketten • In beiden Richtungen durchsuchbar (bei bisherigen MBCS nicht der Fall) • Einfache Transkodierungsfunktion (zudem leicht hardware-implementierbar) • Reichlich Kodierungs-Reserve (falls sich am Unicode-Standard doch noch etwas ändert)

        Normung UTF-8 ist von der IETF, dem Unicode Consortium und der ISO gegenwärtig identisch definiert in den Normdokumenten: • RFC 3629 / STD 63 (2003) • The Unicode Standard, Version 4.0, §3.9–§3.10 (2003) • ISO/IEC 10646-1:2000 Annex D (2000) Diese lösen ältere, teilweise abweichende Definitionen ab, die teilweise noch von älterer Software benutzt werden: • ISO/IEC 10646-1:1993 Amendment 2 / Annex R (1996) • The Unicode Standard, Version 2.0, Appendix A (1996) • RFC 2044 (1996) • RFC 2279 (1998) • The Unicode Standard, Version 3.0, §2.3 (2000) und Corrigendum #1: UTF-8 Shortest Form (2000) • Unicode Standard Annex #27: Unicode 3.1 (2001) UTF-8 53

        Kodierung Unicode-Zeichen mit den Werten aus dem Bereich von 0 bis 127 (0 bis 7F hexadezimal) werden in der UTF-8-Kodierung als ein Byte mit dem gleichen Wert wiedergegeben. Daher sind alle Daten, für die ausschließlich echte ASCII-Zeichen verwendet werden, in beiden Darstellungen identisch. Unicode-Zeichen größer als 127 werden in der UTF-8-Kodierung zu Byteketten der Länge zwei bis vier kodiert.

        Unicode-Bereich UTF-8-Kodierung (binär) Bemerkungen Möglichkeiten (hexadezimal) (theoretisch)

        0000 0000 – 0000 007F 0xxxxxxx In diesem Bereich (128 Zeichen) entspricht UTF-8 27 128 genau dem ASCII-Code: Das höchste Bit ist 0, die restliche 7-Bit-Kombination ist das ASCII-Zeichen.

        0000 0080 – 0000 07FF 110xxxxx 10xxxxxx Das erste Byte beginnt immer mit 11, die folgenden 211 − 27 1920 Bytes mit 10. Die xxxxx stehen für die Bits des (211) (2048) Unicode-Zeichenwerts. Dabei wird das niederwertigste Bit des Zeichenwerts auf das rechte 0000 0800 – 0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx 16 11 63.488 x im letzten Byte abgebildet, die höherwertigen Bits 2 − 2 16 (65.536) fortschreitend von rechts nach links. Die Anzahl der (2 ) Einsen vor der ersten 0 im ersten Byte ist gleich der 0001 0000 – 0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx Gesamtzahl der Bytes für das Zeichen. (In 220 1.048.576 Klammern jeweils die theoretisch maximal (221) (2.097.152) möglichen.)

        Der Algorithmus lässt theoretisch bis zu acht Bytes lange Byteketten und dadurch über vier Billionen Zeichen zu. Die letzte Stufe enthielte als erstes Byte 11111111 und danach sieben Folge-Bytes mit jeweils sechs Nutz-Bits. Die gesamte Codefolge wäre dann 2(7*6) = 242 = 4.398.046.511.104 Zeichen). Real definiert wurde ursprünglich eine Folge aus einem ersten Byte mit bis zu 1111110x und somit fünf Folge-Bytes der Form 10xxxxxx, also zusammen sechs Byte mit insgesamt 31 Bit für den enthaltenen Unicode-Wert. In seiner Verwendung als UTF-Kodierung ist er aber auf den gemeinsamen Coderaum aller Unicode-Kodierungen beschränkt, also von 0 bis 0010 FFFF (1.114.112 Möglichkeiten) und weist maximal vier Bytes lange Byteketten auf. Der damit verfügbare Wertebereich für den Zeichencode wird letztlich nicht vollständig benutzt. Entsprechend lange Bytefolgen und große Werte gelten heute als unzulässige Codes und sind entsprechend zu behandeln. Das erste Byte eines UTF-8-kodierten Zeichens nennt man dabei Start-Byte, weitere Bytes heißen Folge-Bytes. Start-Bytes beginnen also immer mit 0 oder 11, Folge-Bytes immer mit 10. • Ist das höchste Bit des ersten Bytes 0, handelt es sich um ein ASCII-Zeichen, da ASCII eine 7-Bit-Kodierung ist und die ersten 128 Unicode-Zeichen den ASCII-Zeichen entsprechen. Damit sind alle ASCII-Zeichenketten automatisch aufwärtskompatibel zu UTF-8. • Ist das höchste Bit des ersten Bytes 1, handelt es sich um ein Mehrbytezeichen, also ein Unicode-Zeichen mit einer Zeichennummer größer als 127. • Sind die höchsten beiden Bits eines Bytes 11, handelt es sich um das Startbyte eines Mehrbytezeichens, sind sie 10, um ein Folgebyte. • Die lexikalische Ordnung nach Bytewerten entspricht der lexikalischen Ordnung nach Zeichennummern, da höhere Zeichennummern mit entsprechend mehr 1-Bits im Start-Byte kodiert werden. • Bei den Startbytes von Mehrbyte-Zeichen gibt die Anzahl der höchsten 1-Bits die gesamte Bytezahl des als Mehrbyte-Zeichen kodierten Unicode-Zeichens an. Anders interpretiert, die Anzahl der 1-Bits links des höchsten 0-Bits entspricht der Anzahl an Folgebytes plus eins, z. B. 1110xxxx 10xxxxxx 10xxxxxx = drei Bits vor dem höchsten 0-Bit = drei Bytes insgesamt, zwei Bits nach dem höchsten 1-Bit vor dem höchsten 0-Bit = zwei Folgebytes. • Startbytes (0… oder 11…) und Folgebytes (10…) lassen sich eindeutig voneinander unterscheiden. Somit kann ein Bytestrom auch in der Mitte gelesen werden, ohne dass es Probleme mit der Dekodierung gibt, was UTF-8 54

        insbesondere bei der Wiederherstellung defekter Daten wichtig ist. Bytes beginnend mit 10 werden einfach übersprungen, bis 0… oder 11… erkannt wird. Dass Startbytes und Folgebytes eindeutig voneinander unterschieden sind, ist ein Vorteil der UTF-8 Kodierung. Bei Kodierungen ohne diese Eigenschaft ist das Lesen eines Datenstroms, dessen Beginn unbekannt ist, unter Umständen nicht möglich. Zu beachten: • Das gleiche Zeichen kann theoretisch auf verschiedene Weise kodiert werden (Zum Beispiel „a“ als 01100001 oder fälschlich als 11000001 10100001). Jedoch ist nur die jeweils kürzestmögliche Kodierung erlaubt. Dieser Umstand hat mehrfach zu Problemen geführt, indem Programme bei ungültigen Kodierungen abstürzen, diese als gültig interpretieren oder einfach ignorieren. Die Kombinationen der letzten beiden Verhaltensweisen führte z. B. zu Firewalls, die gefährliche Inhalte auf Grund der ungültigen Kodierung nicht erkennen, der zu schützende Client diese Kodierungen jedoch als gültig interpretiert und dadurch gefährdet ist. • Bei mehreren Bytes für ein Zeichen werden die Bits bündig angeordnet – das niedrigste Bit (least significant bit) des Unicode-Zeichens steht also immer im niedrigsten Bit des letzten UTF-8-Bytes. • Ursprünglich gab es auch Kodierungen mit mehr als vier Oktetten (bis zu sechs), diese sind jedoch ausgeschlossen worden, da es in Unicode keine korrespondierenden Zeichen gibt und ISO 10646 in seinem möglichen Zeichenumfang an Unicode angeglichen wurde. • Für alle auf dem lateinischen Alphabet basierenden Schriften ist UTF-8 eine besonders platzsparende Methode zur Abbildung von Unicode-Zeichen. • Die Unicodebereiche U+D800–U+DBFF und U+DC00–U+DFFF sind ausdrücklich keine Zeichen, sondern dienen nur in UTF-16 zur Kodierung von Zeichen außerhalb der Basic Multilingual Plane, sie wurden früher als Low und High surrogates bezeichnet. Folglich sind Bytefolgen, die diesen Bereichen entsprechen, kein gültiges UTF-8. Zum Beispiel wird U+10400 in UTF-16 als D801,DC00 dargestellt, sollte in UTF-8 aber als F0,90,90,80 und nicht als ED,A0,81,ED,B0,80 ausgedrückt werden. Java unterstützt dies seit der Version 1.5.[4] Aufgrund der weiten Verbreitung der falschen Kodierung, insbesondere auch in Datenbanken, wurde diese Kodierung nachträglich als CESU-8 normiert. • In UTF-8, UTF-16 und UTF-32 ist der gesamte Wertebereich von Unicode kodiert. Durch die Kodierungsregel von UTF-8 sind bestimmte Bytes nicht zulässig. In nachfolgender Tabelle sind alle 256 Möglichkeiten zusammengefasst und deren Verwendung bzw. Gültigkeit angegeben. Bytes in roten Zeilen sind unzulässig, grün beschreibt zulässige Bytes, welche unmittelbar ein Zeichen darstellen. In blau sind jene Werte hinterlegt, welche den Start einer Sequenz von zwei oder mehr Byte beginnen und als Sequenz mit den Bytes aus orange hinterlegten Zeilen fortgesetzt werden.

        UTF-8 Wertebereich Bedeutung

        Binär Hexadezimal Dezimal

        00000000–01111111 00–7F 0–127 Ein-Byte lange Zeichen, deckungsgleich mit US-ASCII.

        10000000–10111111 80–BF 128–191 Zweites, drittes oder viertes Byte einer Bytesequenz.

        11000000–11000001 C0–C1 192–193 Start einer 2 Byte langen Sequenz, welche den Codebereich aus 0 bis 127 abbildet, unzulässig

        11000010–11011111 C2–DF 194–223 Start einer 2 Byte langen Sequenz

        11100000–11101111 E0–EF 224–239 Start einer 3 Byte langen Sequenz

        11110000–11110100 F0–F4 240–244 Start einer 4 Byte langen Sequenz (Inklusive der ungültigen Codebereiche von 110000 bis 13FFFF)

        11110101–11110111 F5–F7 245–247 Ungültig nach RFC 3629: Start einer 4 Byte langen Sequenz für Codebereich über 140000

        11111000–11111011 F8–FB 248–251 Ungültig nach RFC 3629: Start einer 5 Byte langen Sequenz

        11111100–11111101 FC–FD 252–253 Ungültig nach RFC 3629: Start einer 6 Byte langen Sequenz UTF-8 55

        11111110–11111111 FE–FF 254–255 Ungültig. In der ursprünglichen UTF-8-Spezifikation nicht definiert.

        Code …0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …

        0… NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

        1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

        2… SP [[Ausrufezeichen ]] " # $ % & ' ( ) * + , - . /

        3… 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

        4… @ A B C D E F G H I K M N O

        5… P R S T U V X Z [ \ ] ^ _

        6… ` a b c d e f g h i j k l m n o

        7… p q r s t u v w x y z { | } ~ DEL

        8… Zweites, drittes oder viertes Byte einer Bytesequenz.

        9…

        A…

        B…

        C… Start einer 2 Byte langen Sequenz.

        D… Start einer 2 Byte langen Sequenz.

        E… Start einer 3 Byte langen Sequenz.

        F… Start einer 4 Byte langen Sequenz.

        …0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …F

        In folgender Tabelle sind einige Kodierungsbeispiele für UTF-8 angegeben:

        Beispiele für UTF-8 Kodierungen

        Zeichen Unicode Unicode binär UTF-8 binär UTF-8 hexadezimal

        Buchstabe y U+0079 00000000 01111001 01111001 79

        Buchstabe ä U+00E4 00000000 11100100 11000011 10100100 C3 A4

        Zeichen für eingetragene U+00AE 00000000 10101110 11000010 10101110 C2 AE Marke ®

        Eurozeichen € U+20AC 00100000 10101100 11100010 10000010 10101100 E2 82 AC

        Violinschlüssel U+1D11E 00000001 11010001 00011110 11110000 10011101 10000100 F0 9D 84 9E 10011110

        Das letzte Beispiel liegt außerhalb des ursprünglich in Unicode (unter Version 2.0) enthaltenen Codebereiches (16 Bit), der in der aktuellen Unicode-Version als BMP-Bereich (Ebene 0) enthalten ist. Da derzeit viele Schriftarten diese neuen Unicode-Bereiche noch nicht enthalten, können die dort enthaltenen Zeichen auf vielen Plattformen nicht korrekt dargestellt werden. Stattdessen wird ein Ersatzzeichen dargestellt, welches als Platzhalter dient. UTF-8 56

        Byte Order Mark Obwohl bei UTF-8 aufgrund der Art der Kodierung grundsätzlich nicht das Problem unterschiedlicher Bytereihenfolgen auftreten kann, fügen einige Programme eine Byte Order Mark (BOM, deutsch Bytereihenfolge-Markierung) am Dateianfang von UTF-8-Dateien ein. Die BOM besteht aus der Bytesequenz EF BB BF, die in nicht UTF-8-fähigen Texteditoren und Browsern meist als ISO-8859-1-Zeichenfolge  erscheint und für Kompatibilitätsprobleme verantwortlich sein kann.

        Quellen [1] RFC 3629, Kapitel 1 (Introduction), engl.

        [2] Using International Characters in Internet Mail (http:/ / www. imc. org/ mail-i18n. html) (englisch) – Seite beim Internet Mail Consortium, vom 1. August 1998 (abgerufen am: 12. Juli 2012)

        [3] Usage of character encodings for websites (http:/ / w3techs. com/ technologies/ overview/ character_encoding/ all/ ) (englisch) – Übersichtsseite bei W3Techs, Stand: 14. März 2012 (abgerufen am: 12. Juli 2012)

        [4] Supplementary Characters in the Java Platform (http:/ / java. sun. com/ developer/ technicalArticles/ Intl/ Supplementary/ )

        Weblinks • RFC 3629 – UTF-8, a transformation format of ISO 10646 (englisch)

        • utf8(7) (http:/ / linux. die. net/ man/ 7/ utf8) – Linux-Manpage (deutsch)

        • UTF-8 and Unicode FAQ for Unix/Linux (Häufige Fragen zu UTF-8 und Unicode für Unix/Linux) (http:/ / www.

        cl. cam. ac. uk/ ~mgk25/ unicode. html) (englisch)

        • Anmerkungen zur Geschichte des UTF-8 (http:/ / www. cl. cam. ac. uk/ ~mgk25/ ucs/ utf-8-history. txt)

        • Ein UTF-8-Beispiel (http:/ / www. columbia. edu/ / utf8. html)

        • Anteilige Benutzung der Zeichenkodierungen auf Webseiten (http:/ / w3techs. com/ technologies/ overview/

        character_encoding/ all)

        • Unicode-Datenbank in HTML (http:/ / www. -und-xml. de/ unicode-database/ )

        • UTF-8-Check mit PHP (http:/ / floern. com/ webscripting/ is-utf8-auf-utf-8-prüfen)

        • UTF-8-Codetabelle mit Unicode-Zeichen (http:/ / www. utf8-zeichentabelle. de/ unicode-utf8-table.

        pl?number=1024& htmlent=1) – UTF-8-Kodierung aller Unicode-Positionen aus der BMP mit Zusatzinformationen und benannten HTML-Entitäten

        • JavaScript zur Kodierung von Zeichenfolgen in 7-Bit-ASCII, Unicode und UTF-8 (http:/ / www. unibw. de/ etti6/

        pawelczak/ lehre/ GDI/ beispiel-ucs-utf8) Multipurpose Internet Mail Extensions 57

        Multipurpose Internet Mail Extensions

        Die Multipurpose Internet Mail Extensions (MIME) sind Erweiterungen des Internetstandards RFC 822, der das Datenformat von E-Mails definiert. Dieser sieht nur den American Standard Code for Information Interchange (ASCII) vor. Die MIME schaffen Kompatibilität für zusätzliche Zeichen wie Umlaute sowie für Multimedia (etwa bei Mail-Anhängen). Sie wurden in RFC 2045, RFC 2046, RFC 2047, RFC 2048 und RFC 2049 definiert. RFC 2048 wurde von der Internet Engineering Task Force nur als Best Current Practice eingestuft. Darüber hinaus findet MIME Anwendung bei der Deklaration von Inhalten in verschiedenen Internetprotokollen wie etwa HTTP sowie bei Desktop-Umgebungen wie KDE, Gnome, Xfce oder Aqua.

        Allgemeine Beschreibung MIME ermöglicht es, zwischen Sender und Empfänger Informationen über den Typ der übermittelten Daten auszutauschen (Content-Type-Feld, Internet Media Type) und gleichzeitig eine für den verwendeten Übertragungsweg sichere Zeichenkodierung (Content-Transfer-Encoding) festzulegen. Es sind mehrere Kodierungsmethoden spezifiziert, die die Übertragung von Nicht-ASCII-Zeichen in Texten sowie von Nicht-Text-Dokumenten wie Bildern, Sprache und Video in textbasierten Übertragungssystemen wie E-Mail oder Usenet ermöglichen. Die Nicht-Text-Elemente werden beim Versender kodiert und beim Empfänger wieder dekodiert. Die Kodierung von Nicht-7-Bit-ASCII-Zeichen erfolgt häufig mittels Quoted-Printable-Kodierung, Binärdaten hingegen werden üblicherweise Base64-kodiert. Bei dieser Kodierungsweise erhöht sich die Gesamtgröße der angehängten Dateien um 33–36 % (Erklärung s. Base64). Aus 752 KiB werden 1 MiB (1024 KiB) und aus 1 MiB werden 1393 KiB. Alternativ ist es für Textdaten mittels Content-Transfer-Encoding: 8bit auch möglich, die nicht-ASCII-Zeichen direkt zu übertragen (die Kodierung muss dabei angegeben sein, z. B. UTF-8 oder ISO-8859-15 für deutsche Texte). Bei der Verwendung in anderen Protokollen wie etwa HTTP kann auch die Transport-Kodierung binary verwendet werden, bei der beliebige Bytes direkt verschickt werden können, ohne spezielle Kodierung – bei E-Mails ist dies nicht erlaubt. Es gibt eine Erweiterung dieses Standards namens S/MIME (Secure MIME), der auch das Verschlüsseln und digitale Signieren von Nachrichten erlaubt. Außerdem existiert mit PGP/MIME (beschrieben in RFC 2015 und RFC 3156) auch eine PGP-kompatible Erweiterung für sicheren Datenaustausch. Eine Multipart-Message enthält mehrere Bodyparts, die durch eine Grenzlinie (boundary) abgegrenzt werden. Beispiel für eine einfache Multipart-Message (mit einem verkürzten boundary, das hier als frontier festgelegt ist):

        MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=frontier

        This is a message with multiple parts in MIME format. --frontier Content-Type: text/plain

        This is the body of the message. --frontier Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Multipurpose Internet Mail Extensions 58

        PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg= --frontier--

        Details der Spezifikation

        MIME Part 1 – Format of Internet Message Bodies Dieser erste Teil der Spezifikationen, RFC 2045, führt grundlegende zusätzliche Felder im Kopf von E-Mails ein: 1. MIME-Version 2. Content-type 3. Content-Transfer-Encoding Das Content-Transfer-Encoding gibt an, ob die Übertragung nach Internetstandard RFC 6152 erfolgen soll, dies stattgefunden hat, oder eine Kodierung für Internetstandard RFC 822 erfolgt ist, die beim Empfänger wieder rückgängig gemacht werden muss: • 8bit – Übertragung mittels Extended SMTP • quoted-printable – Kodierung nicht dem ASCII entsprechender Zeichen ist erfolgt • Base64 – Kodierung nach ISO 646 ist erfolgt Was kein Text ist, erfordert auf jeden Fall Kodierung, die dann grundsätzlich nach Base64 erfolgt. Nichts weiter als beliebigen Text enthaltende E-Mails bedürfen hingegen keiner Umformung:

        Beispiel From: To: Subject: Umlaute dank MIME MIME-Version: 1.0 Content-type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit

        Wären die drei zusätzlichen Kopfzeilen nicht, würde diese Zeile nicht leserlich sein.

        MIME Part 2 – Media Types Dieser zweite Teil der Spezifikationen, RFC 2046, definiert für das Feld Content-type Haupttypen und Untertypen von Inhalten:

        text Als Parameter dieses Haupttyps ist die Angabe eines Zeichensatzes vorgesehen. Als Untertyp ist einfacher Text ohne Formatierung vordefiniert: • text/plain Multipurpose Internet Mail Extensions 59

        image Als Untertyp für Bilder ist JPEG vordefiniert: • image/jpeg

        audio Als Untertyp für Ton ist der Codec des ISDN vordefiniert: • audio/basic

        video Als Untertyp für Filme ist MPEG vordefiniert: • video/mpeg

        application Dieser Haupttyp ist für Daten von Anwendungsprogrammen vorgesehen. Vordefiniert sind zwei Untertypen: • application/octet-stream Dieser Untertyp soll zum Speichern der Daten führen und ausdrücklich nicht zum Starten eines Anwendungsprogramms. • application/postscript Dieser Untertyp soll zum Drucken der Daten führen.

        multipart Dieser Haupttyp ist für Kombinationen mehrerer Inhalte vorgesehen. Vordefiniert sind fünf Untertypen: • multipart/mixed Dieser Untertyp ist für Zusammenstellungen in einer bestimmten Reihenfolge vorgesehen. • multipart/alternative Dieser Untertyp ist für gleiche Inhalte in unterschiedlichen Formaten vorgesehen, von denen nur das passendste präsentiert werden soll. Typischerweise ist eines der Formate ein vordefinierter Untertyp der MIME. • multipart/digest Dieser Untertyp ist dazu vorgesehen, eine Übersicht der Inhalte zu liefern. • multipart/parallel Dieser Untertyp ist für Systeme vorgesehen, die alle Typen von Inhalten zugleich präsentieren können. • multipart/related Dieser Untertyp ist separat in RFC 2387 definiert und zur Kombination mehrerer Inhalte vorgesehen, die nur zusammen Sinn ergeben. Die in RFC 2557 definierte MIME Encapsulation of Aggregate Documents baut darauf auf. Sie war die Konsequenz aus dem Umstand, dass Hypertext Markup Language kein Standard für MIME werden konnte. Zudem wurde der Begriff Internet Media Type und schließlich der Begriff XHTML Media Type für Ausrichtung auf das Hypertext Transfer Protocol statt auf das Simple Mail Transfer Protocol geprägt. Multipurpose Internet Mail Extensions 60

        message Dieser Haupttyp ist zur Handhabung anderer E-Mails vorgesehen. Vordefiniert sind drei Untertypen: • message/rfc822 Dieser Untertyp ist dazu vorgesehen, mehrere herkömmliche E-Mails aufzunehmen. • message/partial Dieser Untertyp ist dazu vorgesehen, eine große E-Mail in mehrere Teile zu zerlegen, diese nacheinander zu versenden und sie automatisch wieder zusammenzusetzen. • message/external-body Dieser Untertyp ist dazu vorgesehen, nur eine Verknüpfung zu einer anderen E-Mail zu enthalten.

        MIME Part 3 – Header Extensions for Non-ASCII Text Dieser dritte Teil der Spezifikationen hebt auch für den Betreff und andere Felder im Kopf von E-Mails die Beschränkung auf den englischen Zeichensatz auf.

        MIME Part 4 – Registration Procedures Dieser vierte Teil der Spezifikationen, mittlerweile RFC 4289, beschreibt die Registrierung zusätzlicher Erweiterungen bei der Internet Assigned Numbers Authority. Die dort registrierten Media Types sind vielfältig und umfassen auch ausdrücklich überholte und missbilligte. Schon 1994 wurden Registrierungen ohne Berücksichtigung der MIME akzeptiert. Seit 1995 ist die gesamte Registrierung nur noch Best Current Practice. Ende 2005 wurde die Registrierung von Media Types aus der Spezifikation der MIME herausgenommen, um verbreiteten Missverständnissen entgegenzuwirken. Wie sich ein registrierter Media Type zu MIME verhält, erschließt sich nur aus den Spezifikationen.

        MIME Part 5 – Conformance Criteria and Examples Dieser fünfte Teil der Spezifikationen, RFC 2049, legt Mindestanforderungen an E-Mail-Programme fest: • Obligatorische zusätzliche Kopfzeile jeder erstellten E-Mail: MIME-Version: 1.0 • Senden aller nicht RFC 822 entsprechenden E-Mails mit Kodierungen und Kopfzeilen der MIME. • Melden von Zeichensätzen der ISO 8859 in empfangenen E-Mails. • Erkennen und Darstellen des Inhaltstyps message/rfc822. • Weitgehendes Erkennen und Darstellen des Inhaltstyps multipart. • Verarbeiten aller nicht erkannten Inhaltstypen als Inhaltstyp octet-stream.

        Verschlüsselung RFC 1847 definiert Verschlüsselung und elektronische Signatur mittels MIME grundlegend. Zwei zusätzliche Media Types sind dafür vorgesehen: • multipart/signed • multipart/encrypted Die in RFC 5751 definierten Secure/Multipurpose Internet Mail Extensions setzen Cryptographic Message Syntax darauf auf. Die in RFC 2015 definierte MIME Security with Pretty Good Privacy setzt stattdessen Pretty Good Privacy auf. Multipurpose Internet Mail Extensions 61

        Spezifikationen • RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies • RFC 2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types • RFC 2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text • RFC 2048 Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures • RFC 2049 Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples

        Einzelnachweise Lynx (Browser) 62

        Lynx (Browser)

        Lynx

        Wikipedia in Lynx Basisdaten Entwickler Thomas Dickey Aktuelle Version 2.8.7 (rel.2) (21. Juni 2010) Betriebssystem UNIX, Windows 95 aufwärts, uvm. Kategorie Webbrowser Lizenz GPL Deutschsprachig ja

        [1] lynx.isc.org

        Lynx ist ein textbasierter Webbrowser, der unter Unix entwickelt wurde, inzwischen aber für fast alle Betriebssysteme verfügbar ist. Er eignet sich unter anderem für den Einsatz an reinen Text-Terminals ohne Maus. Der Browser wurde um 1992 an der University of Kansas entwickelt, ist heute noch verbreitet und zählt damit zu den Browsern mit der längsten Entwicklungsgeschichte. Bevor das Programm an das World Wide Web und dessen Protokoll http angepasst wurde, war Lynx ein Client für ein proprietäres Hypertextprotokoll. Dabei wurden Elemente von Gopher verwendet. Lynx wurde 1995 unter der Freie-Software-Lizenz GPL veröffentlicht. In aktuellen Versionen erscheinen anstelle von Grafiken deren Alternativtexte im „alt“-Attribut des „img“-Elements (soweit vorhanden) oder ihre Dateinamen. Wahlweise können Grafiken auch als Links dargestellt und über ein externes Programm betrachtet werden. Frames erscheinen als eine Reihe einzeln anwählbarer Links, zusammen mit dem Text des „noframes“-Elements. Lynx unterstützt auch Cookies, clientseitige verweissensitive Grafiken (imagemap) und Maus-Bedienung, Tabellen allerdings nur eingeschränkt und JavaScript überhaupt nicht. Textbrowser sind im Vergleich zu ihren grafikbasierten Konkurrenten sehr schnell und gelten als „absturzsicher“. Sie werden oft zur Recherche verwendet, da sie Webseiten auf den Text reduzieren. Beliebt ist auch die Möglichkeit, Lynx als HTML-Interpreter in Shell-Skripten zu nutzen, um bestimmte Webseiten automatisiert zu durchsuchen. Lynx findet auch Verwendung als Bestandteil von Webcrawlern. Beispielsweise können mit Lynx Skripte aufgezeichnet werden, die dann anschließend angepasst und erneut abgespielt werden können. Lynx eignet sich gut, um Internetseiten auf ihre Lesbarkeit mittels Braillezeile oder Screenreader zu überprüfen, wie blinde Menschen sie verwenden. Lynx (Browser) 63

        Weblinks • Offizielle Seite [1] • Die Entstehungsgeschichte des Programms [2] (englisch)

        Quellennachweise

        [1] http:/ / lynx. isc. org/

        [2] http:/ / people. cc. ku. edu/ ~grobe/ early-lynx. html 64

        CSS

        Cascading Style Sheets

        Cascading Style Sheets (CSS)

        Dateiendung: .css MIME-Type: text/css Entwickelt von: World Wide Web Consortium Art: Stylesheet-Sprache

        [1] Standard(s): Level 1 (Recommendation) [2] Level 2 (Recommendation) [3] Level 2 Revision 1 (Recommendation)

        Cascading Style Sheets (englische Aussprache [kæsˌkeɪdɪŋˈstaɪlʃiːts]; für stufenförmige oder (hintereinander) geschachtelte Gestaltungsvorlagen), kurz CSS genannt, ist eine deklarative Sprache für Stilvorlagen (engl. stylesheets) von strukturierten Dokumenten. Sie wird vor allem zusammen mit HTML und XML (zum Beispiel bei SVG) eingesetzt. Grundidee beim Entwurf von CSS war es, mittels HTML oder XML nur die inhaltliche Untergliederung eines Dokumentes und die Bedeutung seiner Teile zu beschreiben, während mittels CSS weitgehend unabhängig davon die konkrete Darstellung (Farben, Layout, Schrifteigenschaften usw.) der Teile festgelegt wird. Elemente eines Dokumentes können z. B. aufgrund ihres Elementnamens (z. B. alle Linkelemente), ihrer ID oder auch aufgrund ihrer Position in diesem Dokument (z. B. alle Bildelemente innerhalb von Linkelementen) identifiziert werden. Mithilfe von CSS-Regeln können deshalb für jedes Element die konkreten Werte für bestimmte Darstellungsattribute festgelegt werden. Diese Festlegungen können an zentraler Stelle erfolgen, ggf. sogar in einem separaten Dokument, was ihre Wiederverwendung für andere Dokumente erleichtert. Daneben enthält CSS ein Vererbungsmodell für Auszeichnungsattribute – deshalb cascading – das die Anzahl nötiger Definitionen vermindert. CSS ermöglicht allenfalls auch die diskretionäre Auszeichnung von Teilen eines Dokuments. Mit CSS ist es möglich, für verschiedene Ausgabemedien (Bildschirm, Papier, Projektion, Sprache) unterschiedliche Darstellungen vorzugeben. Das ist nützlich, um zum Beispiel Hyperlinks beim Drucken extra aufzuführen oder für Geräte mit geringerer Auflösung (zum Beispiel PDAs oder Mobiltelefone) die Anzeige mit Rücksicht auf die geringere Seitenbreite und -höhe anzupassen. Neben verschiedenen Möglichkeiten, Farben und Schriften einzustellen, erlaubt CSS auch, Elemente detaillierter zu gestalten, frei zu positionieren oder mit CSS 3 zu animieren. CSS gilt heute als die Standard-Stylesheetsprache für Webseiten. Die früher üblichen HTML-Elemente wie font oder center sind als deprecated (missbilligt) gekennzeichnet, das heißt, sie sollen in Zukunft aus dem HTML-Standard Cascading Style Sheets 65

        entfernt werden.[4] Grund ist eine Ausgliederung der designtechnischen Angaben aus dem reinen HTML-Quelltext, der im Rahmen des Markups nur die Struktur einer Seite wiedergibt, jedoch keine Hinweise auf Optik und Gestaltung gibt.

        Geschichte und Versionen

        Anfänge Der erste Vorschlag für Web-Stylesheets kam 1993 auf, mehrere weitere folgten bis 1995. Cascading Style Sheets (CSS), wie sie aktuell bekannt sind, wurden 1994 von Håkon Wium Lie vorgeschlagen. Bert Bos arbeitete zu dieser Zeit an der Implementierung eines Browsers namens Argo, der seine eigene Stylesheet-Sprache benutzte. Die beiden entschieden sich, zusammenzuarbeiten und CSS zu entwickeln. Es gab zu dieser Zeit auch andere Sprachen mit dem gleichen Ziel, die Erfinder von CSS brachten aber als erste die Idee auf, Regeln zu definieren, die über mehrere Stylesheets hinweg vererbt werden konnten. Nach der Präsentation von CSS durch Lie auf der Konferenz „Mosaic and the Web“ in Chicago 1994, und später mit Bos 1995 wurde das World Wide Web Consortium (W3C) auf CSS aufmerksam. Lie und Bos arbeiteten mit anderen Mitgliedern in diesem Rahmen an CSS weiter. Im Dezember 1996 wurde dann die CSS Level 1 Recommendation publiziert. Diesen Normierungsvorschlag befolgen die aktuellen Browser mittlerweile fast vollständig.

        CSS2 und 2.1 CSS Level 2 (CSS2) wurde im Mai 1998 veröffentlicht. Bis heute (Stand: Januar 2010) wird diese Empfehlung von keinem verbreiteten Browser vollständig implementiert. Manche Browser setzen den größten Teil von CSS2 korrekt um, andere hingegen bieten nur eine mangelhafte Unterstützung von wenigen Teiltechniken. Bei der Verwendung im Web ergeben sich daher oft Schwierigkeiten. Seit 2002 arbeitete das W3C an einer Zwischenversion CSS Level 2 Revision 1 (CSS2.1), die die Erfahrungen mit CSS2 berücksichtigt, Unstimmigkeiten korrigiert und diejenigen Teiltechniken streicht, die bisher in verschiedenen Browsern nicht korrekt implementiert wurden. Am 7. Juni 2011 wurde CSS2.1 als Recommendation veröffentlicht. CSS2.1 bringt selbst keine grundlegend neuen Fähigkeiten mit sich.

        CSS3 Seit 2000 ist CSS Level 3 in der Entwicklung. Hier werden die Entwicklungen weiter vorangetrieben, die bereits mit CSS2 begonnen wurden. CSS3 wird im Gegensatz zu den Vorgängern modular aufgebaut sein, womit einzelne Teiltechniken (beispielsweise Steuerung der Sprachausgabe oder Selektoren) in eigenen Versionsschritten entwickelt werden können. So nähert sich CSS bei seinen Fähigkeiten mehr dem etablierten DSSSL (für SGML) an und wird wohl auch in Zukunft noch eine Alternative zu XML-basierten Stylesheet-Sprachen wie XSL-FO sein. Derzeit veröffentlichte und breit unterstützte Standards sind unter anderem CSS Color Level 3, CSS Namespaces, Selectors Level 3 und Media Queries. Neben diesen Modulen stehen weitere Elemente zur Diskussion, etwa ein Layout-Modul oder verschiedene Grafikfilter.[5] Moderne Browser unterstützen jedoch schon viele CSS3-Module, die noch nicht durch das W3C standardisiert sind.[6]

        Nachfolger Im Frühjahr 2012 gab es mehrere Berichte, das W3C arbeite an einem Nachfolger von CSS3. Dieser sollte naturgemäß unter der Bezeichnung CSS4 veröffentlicht werden und unter anderem die Selektoren nochmals leistungsfähiger machen und gleichzeitig vereinfachen. Im September 2012 haben Vertreter der entsprechenden Arbeitsgruppe des W3C jedoch klargestellt, dass es CSS4 nicht geben wird: "There will never be a CSS4." Vielmehr soll die künftige Entwicklung des Standards in Form einer schrittweisen Aktualisierung der Module von CSS3 Cascading Style Sheets 66

        geschehen.

        Syntax

        Der Aufbau von CSS-Regeln Selektor [, Selektor2, …] { Eigenschaft-1: Wert-1; … Eigenschaft-n: Wert-n[;] } /* Kommentar */

        /* In eckigen Klammern stehen optionale Angaben */ Eine CSS-Regel gibt an, dass für durch sie festgelegte Teile eines Dokuments eine bestimmte, ebenfalls in ihr angegebene Eigenschaftskombination gelten soll. Sie wird geschrieben als eine kommagetrennte Liste von Selektoren ("Für diese Typen von Teilen … "), gefolgt von einer in geschweiften Klammern stehenden, semikolongetrennten Liste von Eigenschafts-Deklarationen (" … nimm alle diese Eigenschaften!"); nach der letzten Eigenschafts-Deklaration ist ein abschließendes Semikolon erlaubt. Eine Eigenschafts-Deklaration besteht aus deren Namen und der Angabe, welchen Wert sie annehmen soll; diese Name-Wert-Paare werden ihrerseits durch einen Doppelpunkt getrennt. Um diese Teile einer Regel herum ist Weißraum frei verwendbar; häufig schreibt man den Doppelpunkt ohne Zwischenraum hinter den Eigenschaftsnamen, jede Eigenschaftsdeklaration auf eigener Zeile und schließt auch die letzte Eigenschaft mit einem Semikolon – so kommt es zu weniger Syntaxfehlern bei Änderungen. Ein Stylesheet darf beliebig viele solcher Regeln enthalten. Die folgende Tabelle enthält eine vollständige Übersicht aller Selektoren, mit denen Elemente (meist HTML-Elemente) ausgewählt werden können.

        Selektoren Ein Selektor nennt die Bedingungen, die auf ein Element zutreffen müssen, damit der nachfolgende Satz an CSS-Deklarationen mit seinen Darstellungsvorgaben auf das Element angewendet wird. Solche Bedingungen beschreiben unzweideutig, welche Eigenschaften (Typ, Klasse, ID, Attribut oder Attributwert) Elemente haben müssen oder in welchem Kontext sie im Dokument stehen müssen (Existenz eines bestimmten übergeordneten Elementes oder eines Vorgängerelementes bestimmten Typs), damit die Darstellungsvorgaben für sie gelten sollen. In einem Selektor können mehrere Auswahlkriterien verknüpft sein.

        Muster Bedeutung Eingeführt Definition Erläuterung in

        einfache Selektoren

        [7] [8] * Selektiert jedes Element CSS2 Universal selector Der Universalselektor

        [9] [10] E Selektiert jedes Element vom Typ E CSS1 Type selectors Der Typselektor

        [11] [12] .c Selektiert jedes Element der Klasse c (analog CSS1 Class selectors Der Klassenselektor [class~='c'])

        [13] [14] #myid Selektiert das Element mit der ID „myid“. CSS1 ID selectors Der ID-Selektor Cascading Style Sheets 67

        [15] [16] [foo] Selektiert Elemente, deren „foo“-Attribut gesetzt CSS2 Attribute selectors Attributpräsenz ist (unabhängig vom Wert)

        [17] [foo=bar] Selektiert Elemente, deren „foo“-Attribut mit dem CSS2 Attributwerte Wert „bar“ gesetzt ist

        [foo~=bar] Selektiert Elemente, deren „foo“-Attribut das Wort CSS2 „bar“ enthält (also beispielsweise „bar“ oder auch „bar quz“ aber nicht „barquz“)

        [foo|=bar] Selektiert Elemente, deren „foo“-Attribut exakt die CSS2 Zeichenfolge „bar“ ist oder mit der Zeichenfolge „bar-“ beginnt

        [19] [foo^=bar] Selektiert Elemente, deren „foo“-Attribut mit der CSS3 Substring matching Teilübereinstimmungen [18] Zeichenfolge „bar“ beginnt attribute selectors [foo$=bar] Selektiert Elemente, deren „foo“-Attribut mit der CSS3 Zeichenfolge „bar“ endet

        [foo*=bar] Selektiert Elemente, deren „foo“-Attribut die CSS3 Zeichenfolge „bar“ enthält

        Kombinatoren

        [21] E F Selektiert alle Elemente F, die Nachfahren eines CSS1 Descendant selectors Der Nachfahrenselektor Elements E sind [20]

        [22] [23] E > F Selektiert alle Elemente F, die ein Kind eines CSS2 Child selectors Der Kindselektor Elements E sind

        [25] E ~ F Selektiert alle Elemente F, die einen Vorgänger E CSS3 General sibling Der Geschwisterselektor [24] auf gleicher Ebene haben combinator

        [27] E + F Selektiert alle Elemente F, die einen direkten CSS2 Adjacent sibling Der Nachbarselektor [26] Vorgänger E auf gleicher Ebene haben combinator

        Pseudoklassen

        :link Selektiert unbesuchte Verweise CSS1 The link pseudo-classes Die Pseudoklassen :link und [28] [29] :visited Selektiert bereits besuchte Verweise CSS1 :visited

        :active Selektiert das Element, das gerade angeklickt ist CSS1 The dynamic Die Pseudoklassen :hover, [30] [31] :hover Selektiert das Element, über dem sich der CSS2 pseudo-classes :active und :focus Mauszeiger befindet

        :focus Selektiert das Element, das den Fokus (z. B. durch CSS2 die Tabulatortaste) erhalten hat

        [33] :lang() Selektiert Elemente, deren Sprache über das CSS2 The language Die Pseudoklasse :lang() [32] Attribut „lang“ festgelegt wurde pseudo-class

        [35] :target Selektiert das Element, das Ziel des gerade eben CSS3 The target pseudo-class Die Pseudoklasse :target angeklickten Verweises ist [34]

        :enabled Selektiert Elemente in Benutzeroberflächen, die CSS3 The :enabled and Die Pseudoklassen :enabled, [37] auswählbar sind :disabled pseudo-classes :disabled und :checked [36] :disabled Selektiert Elemente in Benutzeroberflächen, die CSS3 gesperrt sind

        :checked Selektiert Elemente von Benutzeroberflächen, die CSS3 The :checked [38] angewählt sind pseudo-class

        [40] :not(foo) Selektiert Elemente, für die „foo“ nicht zutrifft CSS3 The negation Die Pseudoklasse :not() [39] pseudo-class Cascading Style Sheets 68

        strukturelle Pseudoklassen

        :first-child Selektiert Elemente, die das erste Kind ihres CSS2 :first-child pseudo-class Die Pseudoklasse :first-child Elternelementes sind [41] [42]

        :last-child Selektiert Elemente, die das letzte Kind ihres CSS3 :last-child pseudo-class Die Pseudoklasse :last-child Elternelementes sind [43] [44]

        :nth-child(...) Selektiert Elemente, die beispielsweise das n-te CSS3 :nth-child() pseudo-class Die Pseudoklasse :nth-child() Kind ihres Elternelementes sind [45] [46]

        :nth-last-child(...) Selektiert Elemente, die beispielsweise das n-te CSS3 :nth-last-child() Die Pseudoklasse [47] [48] Kind ihres Elternelementes sind, Zählung beginnt pseudo-class :nth-last-child() von hinten

        :only-child Selektiert Elemente, die das einzige Kind ihres CSS3 :only-child pseudo-class Die Pseudoklasse :only-child Elternelementes sind [49] [50]

        :first-of-type Selektiert Elemente, die das erste Element dieses CSS3 :first-of-type Die Pseudoklasse :first-of-type [51] [52] Typs ihres Elternelementes sind pseudo-class

        :last-of-type Selektiert Elemente, die das letzte Element dieses CSS3 :first-of-type Die Pseudoklasse :last-of-type [53] [54] Typs ihres Elternelementes sind pseudo-class

        :nth-of-type(...) Selektiert Elemente, die beispielsweise das n-te CSS3 :nth-of-type() Die Pseudoklasse :nth-of-type() [55] [56] Element dieses Typs ihres Elternelementes sind pseudo-class

        :nth-last-of-type(...) Selektiert Elemente, die beispielsweise das n-te CSS3 :nth-last-of-type() Die Pseudoklasse [57] [58] Element dieses Typs ihres Elternelementes sind, pseudo-class :nth-last-of-type() Zählung beginnt von hinten

        :only-of-type Selektiert Elemente, die das einzige Element CSS3 :only-of-type Die Pseudoklasse :only-of-type [59] [60] dieses Typs ihres Elternelementes sind pseudo-class

        [61] [62] :root Selektiert das Wurzelelement CSS3 :root pseudo-class Die Pseudoklasse :root

        [63] [64] :empty Selektiert Elemente, die keine Kinder haben CSS3 :empty pseudo-class Die Pseudoklasse :empty

        Pseudoelemente

        ::first-line Selektiert die erste Zeile des formatierten Textes CSS1 The ::first-line Das Pseudoelement ::first-line [65] [66] pseudo-element

        ::first-letter Selektiert das erste Zeichen des formatierten CSS1 The ::first-letter Das Pseudoelement ::first-letter [67] [68] Textes pseudo-element

        foo::before CSS2 Erzeugt und selektiert ein Element vor einem The ::before and ::after Die Pseudoelemente ::before [69] [70] Element „foo“ pseudo-elements und ::after foo::after Erzeugt und selektiert ein Element nach einem CSS2 Element „foo“ Cascading Style Sheets 69

        Beispiel

        CSS:

        Das CSS-Box-Modell

        p.info { font-family: arial, sans-; line-height: 150%; margin-left: 2em; padding: 1em; border: 3px solid red; background-color: #f89; display: inline-block; } p.info span { font-weight: bold; } p.info span::after { content: ": "; }

        HTML:

        Hinweis Sie haben sich erfolgreich angemeldet.

        Die p-Tags machen den dazwischen stehenden Text zu einem Absatz. Da ihm die Klasse „info“ zugewiesen wird, wird er von einem CSS-kompatiblen Browser wie folgt dargestellt: Cascading Style Sheets 70

        Hier werden die Deklarationen allen p-Elementen zugewiesen, die das class-Attribut mit dem Wert info besitzen. Würde man das p im Selektor weglassen, würden alle Elemente der Klasse info betroffen sein, beim Weglassen des .info alle p-Elemente. span-Elemente innerhalb solcher Absätze werden in Fettschrift dargestellt; der Doppelpunkt wird als Pseudoelement erzeugt. Ein wichtiges Prinzip von CSS ist die Vererbung der Eigenschaftswerte an untergeordnete Elemente und die Kombination verschiedener Stylesheets (Kaskadeneffekt). Diese können dabei aus verschiedenen Quellen stammen: vom Autor des Stylesheets, dem Browser (User Agent) oder dem Benutzer.

        CSS-Hacks Eine Anwendung von CSS-Syntax bei der Gestaltung von Weblayouts sind sogenannte CSS-Hacks. Sie werden benutzt, um Unterschiede bei der Darstellung von Weblayouts in verschiedenen Browsern auszugleichen oder CSS-Anweisungen für bestimmte Webbrowser gesondert zuzuweisen oder auszuschließen. Der Begriff Hack bezeichnet dabei nichtstandardisierte CSS-Befehle, mit denen die Interpretationsschwäche eines Webbrowsers ausgenutzt wird, der diese Anweisungen entweder interpretiert oder ignoriert. Damit können Schwachstellen von Webbrowsern ausgeglichen werden, um möglichst in jedem Webbrowser das gleiche Ergebnis angezeigt zu bekommen. Ein CSS-Hack kombiniert z. B. fehlerhaft angegebene Selektoren in Kombination mit zusätzlichen Zeichen oder enthält Anweisungen, die bestimmte Webbrowser nicht kennen. Ein bekanntes Beispiel für einen CSS-Hack ist der sogenannte Star-HTML-Hack. Das *-Zeichen dient als Universal-Selektor und ist vor dem Selektor html sinnlos. CSS-Code-Beispiel: p { background-color: blue; } * html p { background-color: red; }

        In diesem Fall würden zunächst alle Browser die p-Elemente mit einem blauen Hintergrund darstellen. Lediglich der Internet Explorer vor Version 7 interpretiert auch die zweite Zeile und färbt die Absätze rot, obwohl kein Eltern-Element besitzt, auf das * zutreffen könnte.

        Kombination mit HTML oder XHTML Am häufigsten wird CSS mit HTML oder XHTML kombiniert. Dies kann an mehreren Orten geschehen, hier einige Beispiele: • Als externes Stylesheet für eine (X)HTML-Datei (link-Element)

        • Als externes Stylesheet für eine XHTML-Datei (xml-stylesheet-Verarbeitungsanweisung)

        • Als internes Stylesheet in einer (X)HTML-Datei (style-Element) Dokument mit Formatierungen

        • Innerhalb von (X)HTML-Tags (style-Attribut) Text

        Die Einbindung als externes Stylesheet ist dabei die am häufigsten verwendete Methode. Sie bietet den Vorteil, dass für mehrere Dokumente, die denselben Regelsatz benutzen, das Stylesheet nur einmal heruntergeladen werden muss. Auch vermeidet man so sich wiederholenden Code. CSS selbst ermöglicht durch die @import-Regel das Einbinden von weiteren externen Stylesheets. Beispiel

        Es gibt drei Varianten Stylesheets mittels eines link-Elements einzubinden, die sich darin unterscheiden, wie zwingend die Stylesheets berücksichtigt werden: Dauerhafte Stylesheets (persistent)

        Wenn man ein Stylesheet so einbindet, wird es auf jeden Fall verwendet. Bevorzugte Stylesheets (preferred)

        Sollte man diese Einbindung verwenden, wird das Stylesheet verwendet, bis der Benutzer ein anderes auswählt. Alternative Stylesheets (alternate)

        Wird das Stylesheet so mit dem HTML-Dokument verknüpft, muss der Benutzer ausdrücklich wählen dieses zu verwenden. Das wirkt sich in den meisten Browsern aus (z. B. Internet Explorer, Firefox, Opera und Konqueror). Somit wird diese Funktion von den meist benutzten Browsern implementiert. Außerdem sollte ein "alternate stylesheet" nur in Verbindung mit einem anderen fest eingebundenen verwendet werden, damit es auch nur eine echte Alternative ist.

        Medienspezifische Stylesheets Es ist auch möglich, für verschiedene Medien verschiedene Stylesheets einzubinden, um zum Beispiel die Gestaltung beim Drucken oder auf Handy-Displays zu regulieren. Diesen Zweck erfüllt das Attribut media. In dieses Attribut werden die Parameter notiert, die für dieses Stylesheet gelten sollen. Cascading Style Sheets 72

        Parameter Bedeutung

        all Stylesheet gilt für alle Ausgabegeräte

        speech (CSS2: aural) aurale Ausgabegeräte (z. B. Screenreader)

        braille Blindenschriftfähige Ausgabegeräte

        embossed Blindenschriftfähige Drucker

        handheld Handhelds (Palmtops, PDAs, WinCE-Geräte)

        print Drucker

        projection Video-Beamer, Overhead-Projektoren

        screen Bildschirme

        tty Ausgabegeräte mit feststehenden Zeichentypen (z. B. Fernschreiber, Terminals oder auch ältere Mobiltelefone)

        tv TV-Geräte

        @media print { body { color: black; background-color: white; } h1 { font-size: 14pt; } .navigation { display: none; } }

        Eigenschaftsspezifische Stylesheets (Media Queries) Bei Media Queries handelt es sich um ein Konzept, welches mit CSS3 eingeführt wurde und das Prinzip des Medientyps in CSS2 erweitert. Anstatt starr zu definieren, welches Medium das Zielmedium ist, können mit Media Queries die Eigenschaften des aktuellen Gerätes direkt abgefragt werden. Verfügbare Geräteeigenschaften sind zum Beispiel: • Breite und Höhe des Browserfensters • Breite und Höhe des Gerätes • Orientierung (Quer- oder Hochformat) • Bildschirmauflösung Vor allem im Bereich der mobilen Webprogrammierung werden Media Queries bereits jetzt häufig eingesetzt, um die Webseite ideal an das aktuell verwendete Gerät anzupassen. Im folgenden Beispiel werden Elemente mit CSS-Regeln versehen. Diese Regeln gelten für das gesamte Dokument. Anschließend wird eine Media Query eingesetzt, die greift, sobald die Breite des Browserfensters kleiner als 1025 Pixel ist. In diesem Fall ändern sich die Eigenschaften, die vorher allgemein definiert wurden bzw. gelten zusätzliche Eigenschaften. #inhalt { width: 800px; } Cascading Style Sheets 73

        @media screen and (max-width: 1024px) { #inhalt { width: 600px; }

        aside { display: none; } }

        Literatur • Ingo Chao, Corina Rudel: Fortgeschrittene CSS-Techniken. 3. Auflage. Galileo Computing, Bonn 2012, ISBN 978-3-8362-1695-1 (Detailreiche und anspruchsvolle Erklärung von CSS-Interna). • Michael Jendryschik: Einführung in XHTML, CSS und Webdesign. Addison-Wesley, München 2007, ISBN 978-3-8273-2477-1 (Standardkonforme, moderne und barrierefreie Websites erstellen). • Kai Laborenz: CSS Praxis. 3. Auflage. Galileo Computing, Bonn 2005, ISBN 3-89842-577-0 (Grundlagen und Referenz, Praxisbeispiele, Tipps und Tricks, Barrierefreies Webdesign mit CSS). • Bettina K. Lechner, Bernhard Stockmann: CSS pur – Ultimative Weblösungen mit Stil. Addison Wesley, München 2009, ISBN 978-3-8273-2781-9 (Moderne CSS-Techniken: kompakter Grundlagenteil, 3 Website-Prototypen mit Detailerklärungen). • Florence Maurice: Jetzt lerne ich CSS3. Markt+Technik, München 2012, ISBN 978-3-8272-4745-2 (Einführung in CSS und ausgewählte Techniken aus CSS3). • Florence Maurice: CSS3: Die neuen Features für fortgeschrittene Webdesigner. dpunkt, München 2013, ISBN 978-3864901188 (Neuerungen in CSS3). • Jens Meiert: Webdesign mit CSS. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-712-6 (Methodik bei Arbeit mit CSS, Praxisbeispiele). • Peter Müller: Little boxes. Webseiten gestalten mit CSS. Grundlagen. Markt+Technik, München 2007, ISBN 978-3-8272-4224-2 (aktualisierte, erweiterte Ausgabe). • Christopher Schmitt: CSS Kochbuch. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-492-7 (Grundlagen und Beispiele zu CSS). • Heiko Stiegert: CSS-Design – Die Tutorials für Einsteiger. 1. Auflage. Galileo Design, Bonn 2008, ISBN 978-3-8362-1155-0 (über 30 praxisnahe Tutorials, inkl. 4 Exkursen zum Thema CSS). • Heiko Stiegert: Modernes Webdesign mit CSS: Schritt für Schritt zur perfekten Website. 1. Auflage. Galileo Design, Bonn 2011, ISBN 978-3-8362-1666-1 (über 20 praxisnahe Tutorials). • Dirk Jesse: CSS-Layouts. 2. Auflage. Galileo Design, Bonn 2008, ISBN 978-3-8362-1135-2 (Grundlagen, Praxiseinsatz und Integration). Cascading Style Sheets 74

        Weblinks • W3C: Cascading Style Sheets [71] (englisch) • CSS-2-Spezifikation [72] – deutsche Übersetzung der Spezifikation • Doktorarbeit von Håkon Wium Lie [73] – Geschichte, alternative Formate, Designgrundsätze von CSS (englisch) • SELFHTML [74] – Ausführliche Darstellung, Verwendung zusammen mit HTML. Download möglich. • CSS-Tutorial [75] für einen kurzen Einstieg in CSS • Browserkompatibilität [76] – Ausführliche Tabelle zur Unterstützung von CSS-Eigenschaften und Selektoren gängiger Webbrowser

        Einzelnachweise

        [1] http:/ / www. w3. org/ TR/ CSS1

        [2] http:/ / www. w3. org/ TR/ CSS2/

        [3] http:/ / www. w3. org/ TR/ CSS21/

        [4] SELFHTML (http:/ / de. selfhtml. org/ html/ text/ schrift. htm#art_groesse_farbe), Kompendium zu HTML und CSS, deutsch

        [5] w3.org: CSS Current Work (http:/ / www. w3. org/ Style/ CSS/ current-work)

        [6] caniuse.com: Vergleich von CSS3-Unterstützung aktueller Browser, abgerufen am 10. Mai 2012 (http:/ / caniuse. com/ #compare=ie+

        9,firefox+ 12,chrome+ 18,safari+ 5. 1,opera+ 11. 6)

        [7] http:/ / www. w3. org/ TR/ CSS21/ selector. html#universal-selector

        [8] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Universalselektor

        [9] http:/ / www. w3. org/ TR/ CSS21/ selector. html#type-selectors

        [10] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Typselektor

        [11] http:/ / www. w3. org/ TR/ CSS21/ selector. html#class-html

        [12] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Klassenselektor

        [13] http:/ / www. w3. org/ TR/ CSS21/ selector. html#id-selectors

        [14] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ ID-selektor

        [15] http:/ / www. w3. org/ TR/ CSS21/ selector. html#attribute-selectors

        [16] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Attributselektor/ Pr%C3%A4senz

        [17] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Attributselektor/ Wert

        [18] http:/ / www. w3. org/ TR/ css3-selectors/ #attribute-substrings

        [19] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Attributselektor/ Teil%C3%BCbereinstimmung

        [20] http:/ / www. w3. org/ TR/ CSS21/ selector. html#descendant-selectors

        [21] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Kombinator/ Nachfahrenselektor

        [22] http:/ / www. w3. org/ TR/ CSS21/ selector. html#child-selectors

        [23] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Kombinator/ Kindselektor

        [24] http:/ / www. w3. org/ TR/ css3-selectors/ #general-sibling-combinators

        [25] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Kombinator/ Geschwisterselektor

        [26] http:/ / www. w3. org/ TR/ css3-selectors/ #adjacent-sibling-combinators

        [27] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Kombinator/ Nachbarselektor

        [28] http:/ / www. w3. org/ TR/ CSS2/ selector. html#link-pseudo-classes

        [29] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ link,_visited

        [30] http:/ / www. w3. org/ TR/ CSS2/ selector. html#dynamic-pseudo-classes

        [31] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ hover,_active,_focus

        [32] http:/ / www. w3. org/ TR/ CSS2/ selector. html#lang

        [33] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ lang

        [34] http:/ / www. w3. org/ TR/ css3-selectors/ #target-pseudo

        [35] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ target

        [36] http:/ / www. w3. org/ TR/ css3-selectors/ #enableddisabled

        [37] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ disabled,_enabled,_checked

        [38] http:/ / www. w3. org/ TR/ css3-selectors/ #checked

        [39] http:/ / www. w3. org/ TR/ css3-selectors/ #negation

        [40] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ not

        [41] http:/ / www. w3. org/ TR/ CSS21/ selector. html#first-child

        [42] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ first-child

        [43] http:/ / www. w3. org/ TR/ css3-selectors/ #last-child-pseudo

        [44] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ last-child Cascading Style Sheets 75

        [45] http:/ / www. w3. org/ TR/ css3-selectors/ #nth-child-pseudo

        [46] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-child

        [47] http:/ / www. w3. org/ TR/ css3-selectors/ #nth-last-child-pseudo

        [48] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-last-child

        [49] http:/ / www. w3. org/ TR/ css3-selectors/ #only-child-pseudo

        [50] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ only-child

        [51] http:/ / www. w3. org/ TR/ css3-selectors/ #first-of-type-pseudo

        [52] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ first-of-type

        [53] http:/ / www. w3. org/ TR/ css3-selectors/ #last-of-type-pseudo

        [54] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ last-of-type

        [55] http:/ / www. w3. org/ TR/ css3-selectors/ #nth-of-type-pseudo

        [56] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-of-type

        [57] http:/ / www. w3. org/ TR/ css3-selectors/ #nth-last-of-type-pseudo

        [58] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-last-of-type

        [59] http:/ / www. w3. org/ TR/ css3-selectors/ #only-of-type-pseudo

        [60] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ only-of-type

        [61] http:/ / www. w3. org/ TR/ css3-selectors/ #root-pseudo

        [62] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ root

        [63] http:/ / www. w3. org/ TR/ css3-selectors/ #empty-pseudo

        [64] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ empty

        [65] http:/ / www. w3. org/ TR/ css3-selectors/ #first-line

        [66] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoelement/ first-line

        [67] http:/ / www. w3. org/ TR/ css3-selectors/ #first-letter

        [68] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoelement/ first-letter

        [69] http:/ / www. w3. org/ TR/ css3-selectors/ #gen-content

        [70] http:/ / wiki. selfhtml. org/ wiki/ CSS/ Selektoren/ Pseudoelement/ before,_after

        [71] http:/ / www. w3. org/ Style/ CSS/

        [72] http:/ / www. edition-w3c. de/ TR/ REC-CSS2

        [73] http:/ / people. opera. com/ howcome/ 2006/ phd/

        [74] http:/ / de. selfhtml. org/ css/

        [75] http:/ / de. html. net/ tutorials/ css/

        [76] http:/ / caniuse. com/

        Normdaten (Sachbegriff): GND: 4467617-7 (http:/ / d-nb. info/ gnd/ 4467617-7) Logische Auszeichnungen 76

        Logische Auszeichnungen

        Logische Auszeichnungen in HTML legen die Bedeutung des Textes fest. Sie können hier einen Textabschnitt z. B. als Zitat, Abkürzung oder Überschrift kennzeichnen. Dabei wird nichts über das Aussehen der Zeichen angegeben. Das Erscheinen ist von Benutzer zu Benutzer unterschiedlich und kann von jedem selbst eingestellt werden. Im Gegensatz zu den physischen Auszeichnungen sind sie flexibel und variieren oft. Beispiel: In Deutschland erkennt man Zitate sofort, wenn sie kursiv geschrieben sind. Hier könnte man den Text anstatt als Zitat direkt kursiv kennzeichnen. In anderen Ländern versteht man unter Zitaten aber nur unterstrichenen Text. In solchen Fällen werden weniger die physischen Auszeichnungen angewendet, sondern mehr die logischen.

        Weblinks • Logische Auszeichnungen im Text [1] – Seite bei SelfHTML

        Quellennachweise

        [1] http:/ / de. selfhtml. org/ html/ text/ logisch. htm

        Physische Auszeichnungen

        Physische Auszeichnungen legen in HTML die Erscheinungsform der Zeichen fest und sehen bei jedem Benutzer ähnlich aus. Hierbei wird nichts über die Bedeutung der Zeichen angegeben. Sie haben den Nachteil, dass sie – im Gegensatz zu logischen Auszeichnungen – unflexibel sind und der Betrachter wenig Einfluss auf die Erscheinung hat. Wenn z. B. ein Text als zitiert kenntlich gemacht werden soll, so hat man die Möglichkeit, diesen kursiv zu markieren. Man selbst erkennt kursive Texte sofort als Zitat. Es kann aber auch sein, dass in anderen Regionen der Welt Zitate nur unterstrichen erkannt werden. In den vielen Fällen ist es aber nicht von Bedeutung, ob man logische Auszeichnungen oder physische Auszeichnungen verwendet.

        Weblinks • Physische Auszeichnungen im Text [1] – Seite bei SelfHTML

        Quellennachweise

        [1] http:/ / de. selfhtml. org/ html/ text/ physisch. htm Quirks-Modus 77

        Quirks-Modus

        Der Quirks-Modus (von englisch „quirk“ = Eigenart, Macke) ist ein Betriebsmodus in verschiedenen Programmen, der Fehler früherer Versionen oder vergleichbarer Programme simuliert, um Kompatibilität zu gewährleisten.

        Quirks-Modi in Webbrowsern Die wichtigsten Quirks-Modi finden sich in den aktuellen Webbrowsern. Diese sollen die Abwärtskompatibilität zu Websites sicherstellen, die veralteten oder ungültigen HTML- oder CSS-Code verwenden. Dabei werden u. a. Darstellungsfehler älterer Browserversionen simuliert, damit das Layout dieser Webseiten nicht zerstört wird. Beispielsweise simuliert der Internet Explorer 9 im Quirksmodus einen Internet Explorer 5.[1] Notwendig ist der Quirks-Modus vor allem deshalb, weil nur wenige Websites sich an die W3C-Standards halten: Viele Seiten sind für den Internet Explorer oder auch einen älteren Netscape Navigator entwickelt. Diese Browser interpretieren die Standards teilweise fehlerhaft. Moderne Browser, die die aktuellen Standards unterstützen, würden diese Seiten zwar korrekt, aber nicht wie gewünscht anzeigen. Durch den Quirks-Modus ist es häufig möglich, auch diese eigentlich fehlerhaften Seiten anzuzeigen. Alle modernen Browser richten den Darstellungsmodus nach der Dokumenttypdefinition (Doctype) im HTML-Quellcode aus. Fehlt die Doctype-Angabe, wird der Quirks-Modus verwendet. Unter anderen bewirken folgende Dokumenttypdefinitionen, dass eine Seite mittels standardkonformem Modus (Strict) angezeigt wird:

        Microsofts Internet Explorer erkennt in der Version 6 bei streng nach den Regeln des W3C gestalteten XHTML-Dokumenten deren Dokumenttypdefinition nicht an und wechselt in den Quirks-Modus. Solche Dokumente enthalten in der ersten Zeile die XML-Deklaration mit elementaren Angaben zum verwendeten Zeichensatz, statt, wie vom Browser irrtümlich erwartet, die Dokumenttypdefinition. Dadurch können diese Dokumente fehlerhaft dargestellt werden. Der Quirks-Modus ist das Gegenstück zum Standardkonformen Modus. Einige Browser verfügen außerdem über einen Almost Standard Modus, der sich im Wesentlichen an den Standards orientiert, jedoch einige Fehler mit besonders schweren Auswirkungen simuliert. Quirks-Modus 78

        Quirks-Modi in weiteren Programmen Der Turbo Assembler hatte einen Quirks-Modus, in dem Bugs des verbreiteten MASM von Microsoft simuliert wurden.

        Einzelnachweise

        [1] http:/ / blogs. technet. com/ b/ sieben/ archive/ 2010/ 11/ 29/ kompatibilit-228-tsmodi-in-internet-explorer-9. aspx

        Weblinks

        • Quirks-Modus & CSS-Erweiterungen in Internet Explorer 6 (http:/ / msdn. microsoft. com/ de-de/ library/

        bb250395. aspx) im MSDN

        • Standardeinstellung: Standards: Was Bedeutet das? (http:/ / msdn. microsoft. com/ de-de/ library/ cc817575. aspx) im MSDN

        • HTML, CSS, Kompatibilität, Meta-Tag im Internet Explorer 8 (http:/ / msdn. microsoft. com/ de-de/ ie/ default. aspx) im Internet Explorer Develope Center im MSDN

        • Quirks-Modus bei Browsern mit der Gecko-Engine (Mozilla, Firefox) (https:/ / developer. mozilla. org/ en/ Mozilla_Quirks_Mode_Behavior) (Englisch)

        • Quirks-Modus bei Opera (http:/ / www. opera. com/ docs/ specs/ doctype/ ) (Englisch)

        • www.quirksmode.org (http:/ / www. quirksmode. org/ ) (Englisch)

        Reset-Stylesheet

        Ein Reset-Stylesheet (oder auch: CSS Reset) ist eine Sammlung von Stylesheet-Definitionen, die Formatierungen für HTML-Elemente vereinheitlichen oder zurücksetzen.

        Definition Ein CSS-Reset ist abzugrenzen von einem CSS-Framework. Ein Reset-Stylesheet hat lediglich die Aufgabe, Basisformatierungen zurückzusetzen, ohne dem Benutzer eine API bereitzustellen. Oftmals sind CSS-Resets Teile eines CSS-Frameworks.

        Problematik Jeder Browser hat unterschiedliche Standardeinstellungen für sämtliche HTML-Elemente. So ist etwa die Farbe für Linktexte im Internet Explorer 7 eine andere als die im Internet Explorer 8.[1] Auch Abstandsdefinitionen oder Textformatierungen können sich je nach Browser unterschiedlich auswirken: Der Abstand eines Paragraph-Elements unterscheidet sich im Internet Explorer beispielsweise vom Mozilla Firefox. Wenn ein Entwickler nun für ein Element keine eigenen Styleangaben definiert hat, so benutzt der jeweilige Browser sein Basisstylesheet. Dies kann unvorhergesehene Auswirkungen auf das Gesamtlayout zur Folge haben, welche besonders bei pixelgenauen Designs weitreichende Folgen haben können. Reset-Stylesheet 79

        Das Zurücksetzen der Stylesheet-Definitionen Etwa 2004 wurden erste sogenannte Stylesheet-Resets veröffentlicht[2], welche sich auf das Zurücksetzen der Abstandsangaben beschränkten: * { padding:0; margin:0; }

        Dieses Verfahren wurde von verschiedenen Entwicklern nach und nach verfeinert, so dass nur ausgewählte und sinnvolle Elemente auf grundlegende Angaben zurückgesetzt wurden.

        Bekannte Stylesheet-Resets • Ein bekanntes CSS-Reset ist Teil von Yahoo! User Interface (YUI)[3] • Eric Meyers CSS Reset ist ebenfalls sehr bekannt und setzt nahezu jedes Element auf einen unformatierten Zustand[4] • normalize.css setzt HTML-5-Elemente browserübergreifend auf Standardwerte zurück und wird von etablierten Webseiten genutzt[5]

        Vorteile Mit der Hilfe eines Stylesheet-Resets haben Entwickler die volle Kontrolle über das Aussehen und die Positionierung der HTML-Elemente innerhalb des Markups. Im Idealfall sieht die erstellte Webseite in jedem Browser exakt identisch aus.

        Nachteile • Viele CSS-Resets entfernen jede Formatierung eines HTML-Elements. So hat beispielsweise selbst das strong-Element, welches hervorgehobenen bzw. fettgedruckten Text auszeichnet, in Form und Farbe oft keinen Unterschied mehr zum Rest des Textes. Der Entwickler muss sich also um jeden designrelevanten Parameter seines HTML-Codes kümmern. • Je nach Umfang eines Resets entsteht eine höhere Ladezeit, da die bestehende Stylesheet-Datei entweder erweitert oder die Ressource zusätzlich geladen werden muss.

        Weblinks • Übersicht über verschiedene CSS-Resets (englisch) [6]

        Einzelnachweise

        [1] http:/ / www. iecss. com/

        [2] http:/ / sixrevisions. com/ css/ the-history-of-css-resets/

        [3] http:/ / yuilibrary. com/ yui/ docs/ cssreset/

        [4] http:/ / perishablepress. com/ press/ 2007/ 10/ 23/ a-killer-collection-of-global-css-reset-styles/

        [5] normalize.css Projektseite (http:/ / necolas. github. com/ normalize. css/ )

        [6] http:/ / perishablepress. com/ press/ 2007/ 10/ 23/ a-killer-collection-of-global-css-reset-styles/ Quelle(n) und Bearbeiter des/der Artikel(s) 80

        Quelle(n) und Bearbeiter des/der Artikel(s)

        Auszeichnungssprache Quelle: http://de.wikipedia.org/w/index.php?oldid=124020558 Bearbeiter: 192.168.O.1, 4342, 4pf3154f7, Aka, Alnilam, Archiv, Arne List, Asb, Bihlerin, Bin im Garten, Blubbalutsch, Borislav, Cactus26, Canarris, Caulfield, ChristophDemmer, CircleSmiler, Der Spion, Dev-jc-vb, Diba, Duesentrieb, Dundak, Elch2, FBE2005, Fish-guts, Fleasoft, Guillermo, HHK, Heinte, Horst Gräbner, Howwi, Iwoelbern, Jkdecker, John Doe, Joni2, Kako, Karl-Henner, Knochen, Koala, Lichtkind, Lupussy, Maikel, Nachtgestalt, Nightfly85, Nils-Hero, Nina, Ollio, Omit, Pemu, Peter200, Pietz, Pittimann, Polluks, PsY.cHo, Qub, Quirin, Robb, Schlurcher, Southpark, Spuk968, Stefan Kühn, SteffenB, Suit, TheReincarnator, Thornard, TomK32, Trustable, Tsor, VanGore, W!B:, Wiegels, Wimmerm, Wortverdreher, Xavax, Zeno Gantner, 66 anonyme Bearbeitungen

        Hypertext Markup Language Quelle: http://de.wikipedia.org/w/index.php?oldid=124025633 Bearbeiter: $traight-$hoota, 208.209.186.195.dial.bluewin.ch, 24-online, A.Savin, APPER, AcE, Achim Raschka, Adri42, Adrian Lange, Aetas volat., Aka, Akl, Alauda, Alnilam, An-d, Andreas 06, Andreas Lippold, Ar291, Arittner, Arne1979, Asb, Astrofreund, Atenarus, Avoided, BLueFiSH.as, Bad-reg, Bademeister2008, Bahnmoeller, Balû, Battlestar, Ben-Zin, Bene*, BesondereUmstaende, Beyer, Bin im Garten, Björn Klippstein, Boonekamp, Boshomi, Bur, Carbidfischer, Castel, Cfaerber, Chesk, ChrisHamburg, Christian Günther, Ckuehnel, Cocyhok, Codc, Complex, Conny, Conversion script, Corona Australis, CppAmateur, Crissov, Curtis Newton, D, DF5GO, Dandelo, Danny8247, Darkking3, Darkone, Dazzafact, Denis Barthel, Der fette mo, Der.Traeumer, DerGraueWolf, DerHerrMigo, DerHexer, Dersven, Diba, Diddi, Dnaber, Dodo von den Bergen, Dominic Z., Dominik, DonKult, Drummerboy, DuffBear230, E7, Eiferer, El, Elian, Emdee, Englandfan, Entlinkt, ErikDunsing, Erschaffung, Euphoriceyes, Evershagen, FBE2005, Farbenpracht, Farino, Fecchi, Felix Stember, Fgb, Fish-guts, Flo 1, Flups, Fomafix, Fristu, Fritzbruno, Frosty79, Fsswsb, Fstoertz, Fullhouse, GDK, Gamse, Garnichtsoeinfach, Geos, Gerhardvalentin, Gmhofmann, Gnu1742, Godfather46245, Gohnarch, Gorlingor, Gr0sshirn, Guety, Guillermo, Gulp, Günther M. Apsel, HHK, Hafenbar, Halbarath, Hallojansohn, Hamburger Hydra, HannesH, HardDisk, Hardenacke, Harry8, Head, Helium4, Hephaion, Hermannthomas, Herr Th., Hgulf, Hhoffmann, High Contrast, Hoo man, Horst Gräbner, Howwi, Hsivonen, HubPfalz, Hubertl, Hubi, IGEL, Ice Hawk123456, Igelball, Inkowik, Inza, J.-H. Janßen, JMK4189, JakobVoss, Jan Czarnowski, Jan Luca, JanKG, Jaybee, Jcr, Jens Meiert, Jergen, Jivee Blau, Jo26, Jobu0101, Jonny7, Jpp, JuergenL, Julian, Justus Brücke, Kai.pedia, Kam Solusar, Karen74, Karl-Henner, Keichwa, Kgfleischmann, Kh4711, Kibert, Kingpepe, Kleiner satan, Krawi, Krd, Kubieziel, Kurt Jansson, LKD, LZ6387, Labant, Liberaler Humanist, Libro, Lifelight, Limasign, Liscow, Logograph, Longamp, Loruenser, Louis Bafrance, Lupussy, Luxo, M.L, Maggot, Magnummandel, Magnus Manske, MainFrame, Malki1211, Manfred Sauke, Manuel Strehl, Marcus Cyron, Marius der Tipper, Marsupilami, Martin-vogel, Matt1971, Matthias488, Matthäus Wander, Matze6587, Maveric149, Meisenfrei, Melancholie, Melue, Memowe, Menphrad, Meph666, Mh26, Michaelsy, Michail, Mickiboy, Mijobe, Mijozi, Mike bzh, Mikenolte, Miss-fantastic, Mk85, Mms, Mnh, Molily, Monsterxxl, Mpcube, Mps, Mst, Myr, Napa, Nations114, Nd, Neil Hilist, Nephelin, Netspy, NeuerName2010, Nick-less, Nico Düsing, Nightflyer, Nikkis, Noamik, Nockel12, Nolispanmo, Oceancetaceen, OecherAlemanne, Ot, Padyx, Pajz, ParaDox, PaterMcFly, PatriceNeff, Patrick 1901, Pavelmann, PeeCee, Peter200, Peterlustig, Pfalzfrank, Philipendula, PhilippWeissenbacher, Pinguin.tk, Pittimann, Plasmagunman, Polarlys, Prajuritbs, Prof le, Progman, PsY.cHo, Quirin, Randolph33, Rdennis, Reclus, Regi51, Ri st, Richardigel, Riptor, Rmcharb, RolandIllig, RolfS, Rtc, Rufous, Ryneld, S.K., S.m.a.s.h, SHZ.de, Sargoth, Schlonk, Schnargel, Schnulli00, Schwallex, Scooter, Sebastian.Dietrich, Seewolf, Shellexecute run, Sidel, Sinn, Smial, Sonyx18, Sprezzatura, Spuk968, Stalefish, Stefan Knauf, Stefan Kühn, Stefan64, Steffen, Stern, Steschke, Suit, Sulm.sials, Sumpfkind mit sahne, SymTec ltd., Sypholux, Sysrq, T. Schmidbauer, TableSitter, Tacado, TheIgel69, TheK, TheRealPlextor, Thomas Schultz, ThomasSalvador, Thomaswm, Thorstenkloehn, Tiersendung, Timk70, Tinz, TobbiM, Tobi199595, Tobiask, Toka, TomK32, Tomsan69, Toolinfy, Traroth, Traute Meyer, Treaki, Trockennasenaffe, Truswalu, Ttbya, T§, Tönjes, Umweltschützen, Unsterblicher, Urbanus, V.R.S., VanGore, Vanger, Victor--H, Volker E., W!B:, WAH, Webkid, WeißNix, Weltall, WikiNick, Wikinger77, Wissen99, Wnme, Wurblzap, XRay, Xato, YMS, YourEyesOnly, Zenit, Zeno Gantner, Zuse, p3EE04572.dip.t-dialin.net, pD9009816.dip.t-dialin.net, 718 anonyme Bearbeitungen

        Extensible Markup Language Quelle: http://de.wikipedia.org/w/index.php?oldid=123407566 Bearbeiter: $traight-$hoota, 08-15, 130.60.153.xxx, 149.158.186.195.dial.bluewin.ch, 24-online, ABeam, AMADme, AWak3N, Acetobacter, AchimP, Aka, Akkarin, Alauda, Alfnuss, AmaG, Andre Engels, Andreas Lippold, Andrejb, Anhi, ArgusM, Arittner, Armin P., Arty, Baghira ol, Balû, Baumpython, Ben-Zin, BeneHeß, Benji, Bernburgerin, Bernd vdB, BernhardWeichel, Bildungsbürger, Blakharaz, Blaubahn, Blux, Bombenleger, Boshomi, Brion VIBBER, BrokenBrain, Bronger, BuSchu, CSonic, Christian Grothe, ChristianErtl, ChristianHujer, ChristophDemmer, Church of emacs, Conversion script, Crazy1880, Cyper, D, Daboss, Darkking3, Das Ed, Datenschutz2007, Denisfiedler, Derwatz, Detlef Lindenthal, Devastating Dan, Diba, Dingo, Dnaber, Doc z, Dudy001, Duze, E^(nix), Ecsi, Edoe, Eiferer, Elch2, Ephraim33, Eschenmoser, FBE2005, Fabian Bieker, Feliz, Felser, Ferdinand24, Filip Dalüge, Finex, Fire, Flash1984, Florian1477, Fomafix, Fritz, Fschoenm, FutureCrash, Gary Luck, GeorgSimon, Ghghg, Gohnarch, Grand-Duc, Guillermo, HHK, HaeB, Harald Spiegel, Head, Helmut Vonhoegen, HenHei, Herojoker, Hieronymus A., Holger1259, Holgerjakobs, Hoo man, Horst Gräbner, Howwi, IC, IGEL, IP-Sichter, Igelball, Ilja Lorek, Is it now?, Iste Praetor, J.Ammon, JAF, JEinwag, Jaenicke.c, JakobVoss, Jan Giesen, Jb 42, Jed, Jivee Blau, Jobu0101, Jpp, JuTa, Justus Brücke, Jxr, Jürgen Regel, Kajk, Kako, Kaneiderdaniel, Karl-Henner, Kdwnv, Kfen, Kiker99, Klaus Jesper, Kurt Jansson, Ködermaus, Langec, Lehmi, Leon22, Leuband, Lex parsimoniae, LogoX, Lollo74, Lyric, Ma-Lik, MainFrame, MalteAhrens, Manuel Strehl, Marcoskulschus, Marioj, Markus.oehler, Marti7D3, Martin Aggel, Martin-vogel, Masteraccurate, Matthäus Wander, Media lib, Menphrad, Michael z, MikeTheGuru, Misburg3014, Mn, Molily, Montauk, Moritz Becker, Mosmas, Mps, Mrs. Norris III, Mtx500, Mudd1, Mz75, N23.4, Nd, Nerd, Netnet, Netspy, Neustradamus, Nico Düsing, Nicog, Nightflyer, NilsIsrael, Norro, OWeh, Ohno, OliD, OpenImmoAdmin, Ormek, PM3, Patrick Hanft, Paxml, PeeCee, Pemu, Peter200, PeterGerstbach, Peterlustig, PhilippWeissenbacher, Pietz, Pittimann, Pjacobi, Polarlys, Polartysken, PsY.cHo, Pwagenblast, Qhx, Quaxe, Quirin, Rama, Ranunculus, Raymond, Reclus, Rene Mas, Richardigel, RicoD, RokerHRO, RolandIllig, Rolf acker, Roxedl, SHZ.de, Saehrimnir, Schlesinger, Scoder, Sebastian.Dietrich, SebastianWagner, Septembermorgen, Simonsais, Sinn, Sir Anguilla, Smoe, Sommerstoffel, Spinnefix, Staro1, Steevie, Stefan Kühn, Stefan Majewsky, Steffen, Stephanbim, Stern, Stf, Tambora, Themole, Thire, Thomas Forster, Thomas W., Thomas Willerich, Thomy der Genuss, Thüringer, Timothy da Thy, TobbiM, Tolukra, TomK32, Tomtux, Traroth, Trublu, Trustable, Tschäfer, Tsor, Tuxman, Tönjes, Ucucha, Udm, Ulrich.fuchs, Ulrichf, Uncopy, Unukorno, Urbanplay, Vanger, Verwüstung, Vinci, Vintagesound, Vlado, Vog, W , Walter v. Stanzfeld, Weisbrod, Wie der Name schon sagt, Wiki-observer, WikiNick, Willglov, Wondigoma, Wst, Xls, YMS, Yooshi, YvonneM, Zefram, Zeno Gantner, ZweiBein, ZweiOhren, Århus, 510 anonyme Bearbeitungen

        Extensible Hypertext Markup Language Quelle: http://de.wikipedia.org/w/index.php?oldid=119132980 Bearbeiter: -EyMa-, A Ruprecht, ASM, Adri42, Ahoerstemeier, Aiko, Aka, Andreas Lippold, AydinC, Bachsau, Balû, Bdk, Berntie, Birger Fricke, Blubbalutsch, Boshomi, Brazzy, Bronger, Canarris, CenturioST, Chriki, ChristianErtl, ChristianHujer, ChristophDemmer, CommiM, Crux, D, D235, Danniolo, Darkking3, Derpiet, Dret, EMatt, Elian, Empon, Emu, ErikDunsing, FFrenzel, Finex, FischX, Flominator, Fomafix, Fristu, FutureCrash, Geckopedia, Guillermo, Günther M. Apsel, HHK, HenHei, Henno, Hogler, Howwi, Hubi, IGEL, Irmgard, JCS, Jcr, Jens Meiert, Jivee Blau, Jobu0101, Joni2, Julben, Kaneiderdaniel, Karl-Henner, Koethnig, Langec, Lesbar, Liscow, Logograph, Longo, Manuel Strehl, Markobr, Martin-vogel, Matthäus Wander, Memolus, Menphrad, Mh26, Michail, Molily, Monsieurbecker, Mps, Mx2000, Netspy, Nitefly85, Olei, Peter200, PointedEars, PsY.cHo, Ri st, Richardigel, RolandIllig, STBR, Sbeyer, ShithappensbyTuE, Simplicius, Speck-Made, Spuk968, Staro1, Stauba, Stefan Kühn, Stefan Majewsky, Steffen, Suit, T. Schmidbauer, TheK, Till.niermann, TobbiM, Tobias1983, Tolentino, Traroth, Tubo, Ulrich.fuchs, Uncopy, Unukorno, V.R.S., Vanger, Verbund, Wondigoma, Workshop220609, Zxb, °, 131 anonyme Bearbeitungen

        WYSIWYG Quelle: http://de.wikipedia.org/w/index.php?oldid=122683584 Bearbeiter: ALE!, Abaumg, Aka, Andre Engels, Arbol01, Avatar, BRotondi, Ben-Zin, Biktora, Boshomi, ChristophDemmer, Codc, Conversion script, CyRoXX, Dandelo, Darkone, DeLuxInc, Demoeconomist, Der Rabe Ralf, DerDuden, Diba, Dolos, Dundak, Fgb, Fleasoft, Florian Adler, Flups, FutureCrash, GNosis, Gail, Garnichtsoeinfach, Geitost, Georf, HAL Neuntausend, He3nry, Heinte, Helmut Zenz, Hildegund, Inner.glow, Jed, Jobu0101, Johnny Yen, Josue007, Jpp, Jurgra, KMJ, KaiMartin, Karl.Kirst, Kiker99, King, LKD, Lassekliemann, Leshonai, Lirum Larum, Magnummandel, Magnus, Magnus Manske, MarZilein, Marcl1984, MarkusHagenlocher, Maximilian Sommer, Mijobe, Miloù, Mr.RR, Musik-chris, NaHSO4, NacowY, Nehtefa, Nightwish62, Nummer9, O.Koslowski, Ocrho, Okatjerute, Palica, Papa1234, PeeCee, Peregrine981, Plaicy, Poc, PsY.cHo, Pöt, Qhx, Qualle, Quasimodo, Roberta F., Rochvellon, Sabata, Schöllauf, Seewolf, Serpens, Siehe-auch-Löscher, Speck-Made, Srbauer, Stechlin, Suriyaa Kudo, The0bone, TheK, Thgoiter, Thomas Willerich, Thorsten54, Thosch66, Tiago, Tohma, Trustable, Tsor, Tullius, VanGore, Vierge Marie, WiESi, Wikinger08, Wnme, Wolfgang Noichl, XXX, Zeno Gantner, p3EE04572.dip.t-dialin.net, Über-Blick, Ĝù, 146 anonyme Bearbeitungen

        WYSIWYM Quelle: http://de.wikipedia.org/w/index.php?oldid=116840370 Bearbeiter: 0g1o2i3k4e5n6, AWak3N, DaBrian, Elwikipedista, ErikDunsing, Fleasoft, Frut, HaukeZuehl, Helmut Zenz, Jed, Kai-Hendrik, KillNoise, Libro, Lirum Larum, Manesse2, Michail, Oleg89, PartnerSweeny, Peterlustig, Raymond, Reaper35, Rohieb, Sarge Baldy, Sechmet, Sparti, Speck-Made, Srbauer, Terabyte, Thomas Fernstein, Wikra, Wimmerm, Zeno Gantner, 13 anonyme Bearbeitungen

        Markdown Quelle: http://de.wikipedia.org/w/index.php?oldid=123956039 Bearbeiter: 2003:46:50D:E000:307B:8328:5BFC:8E25, 2A01:1E8:E100:1F9:0:0:0:2, Aka, Aschmidt, BKSlink, BastianVenthur, Bengtlueers, Benzen, Ber, Eipa, Flohuels, Flowerfairy, Frakturfreund, INM, Karl432, Knoff, LKD, Lalü, Lapidar, Mr N, Norro, OnkelMongo, Pandora85, Pc-world, Pe-sa, Polarlys, Rhorbas, STBR, Seth Cohen, Simon04, Sinuhe20, TMg, Tinne, Tubo, Uncopy, VanGore, Vigilius, YMS, Zapyon, 16 anonyme Bearbeitungen

        LyX Quelle: http://de.wikipedia.org/w/index.php?oldid=118400757 Bearbeiter: Aka, Aliosos, Aschmidt, Benji, Bigfoot, Bodhi-Baum, Callidior, Chriki, Crazy1880, Curtis Newton, Daswaldhorn, Deepnightblue, Demod, Den fjättrade ankan, Dirk Bindmann, Domwass, Donovaly, Ein anderer Name, F.flo, Flattervieh, Gehkadl, Geitost, Ghghg, Gronau, Gsälzbär, HenrikGebauer, JasN, Jörg Knappen, KaiMartin, Laetterman, Lord van Tasm, LutzPrechelt, Markus7503, Muck31, Nachbarnebenan, Nb, Phiarc, Polarlys, Raphael Frey, Roteweste, Saehrimnir, Safe at Work, Sebástian San Diego, Septembermorgen, Seraphie, Stefan Schultz, Stefanf74, Sven423, The-viewer, Tiltec, Tohma, Tolentino, Tuxman, WIKIdesigner, Weissbier, Wirbelstrom2k4, Wolfgang1018, YMS, Zapyon, 67 anonyme Bearbeitungen

        Zeichenkodierung Quelle: http://de.wikipedia.org/w/index.php?oldid=121224676 Bearbeiter: Aka, Aries, Bent, Brf, ChristophDemmer, Crissov, Darkmoon2008, Diba, Diesterne, Feutre, Flominator, Fomafix, FotoFux, IZazen, Jed, Jirret, Karl-Henner, Lektorat Cogito, Leo141, Liberatus, MFM, Megatherium, Melancholie, Mezzofortist, Mgehrmann, MichaelSchoenitzer, Molily, Morgentau, Mwka, Pitlane02, Pjacobi, RPI, Ri st, Roterraecher, Schnargel, Softie, Stern, The Evil IP address, Ulm, W!B:, Weialawaga, Woches, Wst, Zahnradzacken, 38 anonyme Bearbeitungen

        Zeichensatz Quelle: http://de.wikipedia.org/w/index.php?oldid=122763158 Bearbeiter: A.Savin, Aries, BK, Benji, Bent, Brf, Centic, Chris Kaese, ChristophDemmer, Crazy1880, Der Hakawati, Der.Traeumer, Drahreg01, ErikDunsing, Fasy, Felix Stember, Feutre, Flominator, FotoFux, Gerd Fahrenhorst, Hawedere, Head, Ingochina, Kkoehne, Klaus100, Lax, Liliana-60, M Huhn, Markus Quelle(n) und Bearbeiter des/der Artikel(s) 81

        Bärlocher, MichaelSchoenitzer, Netspy, Peter200, PeterFrankfurt, PhilipErdös, Revvar, Rieke Hain, RokerHRO, RolfS, Roterraecher, Sbeyer, Stefan64, Steffen, Talaris, Timokl, Ulm, Uwe Gille, VÖRBY, W!B:, Weialawaga, Zahnradzacken, °, 26 anonyme Bearbeitungen

        Unicode Quelle: http://de.wikipedia.org/w/index.php?oldid=123926658 Bearbeiter: 08-15, 24karamea, 9xl, A.Savin, Aka, Alauda, Alnilam, Anachron, Andre Engels, AndreasB, Andrew at wiki, Anhi, Antonsusi, Armin P., Asb, Asgar, BK, Balham Bongos, Benatrevqre, Benji, Berlin-Jurist, BertholdWagner, Björn Hagemann, Brion VIBBER, Buncic, CHRiSNEW, Cactus26, Carminox, Cem.topcu, Chris Kaese, Chrislb, Christian B. 1969, Christian Günther, Christian Sakowski, ChristianHujer, Christoph D, ChristophDemmer, Cjcv, Conny, Conversion script, Corrigo, Crissov, Cäsium137, D, D0ktorz, DaBrian, Dan-yell, Darkweasel, Debilski, Der Hakawati, DerAnalyst, DerSchnüffler, Dors, Dralon, Dudy001, Eagle, Edithor, Edoe, Ein anderer Name, ElRaki, Euku, Eynre, F. Saerdna, FBE2005, FalconL, Fawkes77, Feutre, Fgb, Flingeflung, Flominator, Fomafix, Fredo 93, Fristu, FutureCrash, Fuzzy, GFJ, GGShinobi, Gamgee, Gerald-mann, Gerhardvalentin, Gijones23, GottschallCh, Graphe, Guety, Gyoergi, HAL Neuntausend, HALsixsixsix, HaeB, Hannes Röst, Hans Eo, Hashar, HeRoLE, Head, Heinovh, HenHei, Henward, Herbert Lehner, Hgulf, Himuralibima, Hokanomono, Hokuzai, Holger I., Hubertl, IGEL, IP-Sichter, IZazen, Ianusius, Itu, JPense, JakobVoss, Jan G, JensFalk, Jirret, Jochen2707, Jpp, Jörg Knappen, Kaktus, Karl-Henner, Karl432, Kku, Kla4tanz, Knusperj, Koethnig, Kristjan, Kubieziel, Kucharek, Kuebi, Kurt Jansson, Lehrig, Leider, Leipnizkeks, Lemmi04, Lemzwerg, Leo141, LiliCharlie, Liliana-60, Lucarelli, Lustiger seth, Löschfix, MFM, Magipulus, Mamue81, Marcel083, Marcus Cyron, Marcus Schätzle, Markus Mueller, Martin-vogel, Mathias Schindler, McKaot, Media lib, MegA, Megatherium, Metzi3, MichaelSchoenitzer, Michail, Midodatus, Miglincit, Mikue, MovGP0, Mps, Mrcomputer, Musik-chris, My name, Naddy, Nainoa, NeumonD, Nina, Numbo3, Ocrho, Odin, Oefe, Ohauahauaha, Olaf Studt, Ondundozonananandana, Oracle of Truth, Ot, PanchoS, ParaDox, Parvati, Peter200, PeterZF, PhillipH, Phoks, Phst, Pit, Pjacobi, Plasmagunman, Plauz, Poxy, Preiselbeere, Progman, Q. Wertz, Qniemiec, R.Schuster, RAFPeterM, RGR, Ralf Muschall, Rayx, Rdb, RealMerlin, Regi51, Res0lution, RokerHRO, Rolf acker, RonaldH, S.K., STBR, Sarang, Schandi, Schnargel, Schnark, Schwarzm, Shakademus, Shepard, Sikilai, Simplicius, Skriptor, Sollbruchstelle, Speifensender, Spektr, Sprachpfleger, Spuk968, Stefan Kühn, Stefan2, Stefanf74, Stefano Picco, Steg, Suchenwi, Sukraj-T, Sven423, Tentakel, Terfili, Thwrz, Thüringer, Ticketautomat, Tillmo, Tim Pritlove, Traroth, Trofobi, Trustable, Tönjes, Udo.bellack, Ulm, Vintagesound, Volker Alexander, W like wiki, W!B:, WaltR, Wesener, Wiegels, Wikiroe, Wikisteno, WissensDürster, Wnme, Wolfgang Schmidle, Wst, Wuffel,

        Wurzeldrei, X8, XZise, Yaan, Ykarsunke, Zaungast, Zenit, Ziegelstein, Zxb, °, ペ ー タ ー , 379 anonyme Bearbeitungen

        UTF-8 Quelle: http://de.wikipedia.org/w/index.php?oldid=123237933 Bearbeiter: 2A02:718:0:8000:382B:389F:28D1:1517, A*-search, A.Savin, Acky69, Aka, Alexander.stohr, Alfie66, Amano1, Andrew-k, Androl, Anhi, Antonsusi, Asdert, Benji, BerndEckenfels, Bodo Thiesen, Brion VIBBER, BuSchu, Bugert, Buncic, C.Löser, Carſten, Ce, ChristianErtl, ChristianHujer, Cologinux, Complex, Conversion script, Crissov, Drahreg01, Dreaven3, Drzed, EModul, Ecki, Edoe, Fany, Fgb, Floern, Fomafix, Forscher56, Froggy, Ftak, Geof, Giftmischer, Giftpflanze, Gunlimited, HaeB, Hannes Hirzel, Havoc, HenHei, IGEL, IP-Sichter, IZazen, Itu, Jan G, Janriokrause, Jirret, Joli Tambour, Joni2, JonnyJD, Jpp, Justus Brücke, Jörg Knappen, Kai Petzke, Karl-Henner, Keichwa, Kingruedi, Kleiner Frosch, Knorxx, Kruemelmo, Kubrick, Kuli, Lars Scheithauer, Laza, LivingShadow, LorettaVS, Lysathor, Maribert, Matthäus Wander, Media lib, Mikue, Molily, Mvb, Naddy, Nightflyer, Paul Ebermann, Peisi, Peter Walt A., Peterbittner, Pit, Pjacobi, Poxy, Professor Hastig, RedNifre, Revolus, RokerHRO, S, Sannaj, Schewek, Schwalbe, Schweikhardt, Screened, Se4598, Shepard, SteffenvonHalenbach, Stingray0481, Stw, Suchenwi, Sven423, Temistokles, ThKraft, TheK, Till.niermann, Trustable, Tschild, Tulkas, Ulm, Uwe Gille, Vlado, Warp, Wdwd, Wisterer, Wst, XZise, Ziegenmilch, Zxb, pop-mu-12-2-dialup-48.freesurf.ch, °, 182 anonyme Bearbeitungen

        Multipurpose Internet Mail Extensions Quelle: http://de.wikipedia.org/w/index.php?oldid=120271658 Bearbeiter: Abenteurer Morane, Aka, Andreasklug, Arittner, Avron, BK, BNutzer, Baxerus, Bernard Ladenthin, Birger Fricke, Blaubahn, Bleep, Bochum-Linden, Carol.Christiansen, ChristianNeumann, Crissov, D, DaryaVP, Dbenzhuser, Dein Freund der Baum, Diesterne, Dk4ever, Dominic Z., ElRaki, Fomafix, Frank Schulenburg, GNosis, Giftmischer, Gunk, Gurt, HaeB, Hardy Linke, Head, Hytrion, Jailbird, Jensel, Jergen, Jivee Blau, Klemen Kocjancic, Kookaburra, Learny, Lex parsimoniae, Liberal Freemason, LosHawlos, MARK, Manuel Strehl, MaraBeaNubia, Maynard, Mh26, Michael Kümmling, Mnh, Mwka, Mømø, Neuga, Nikolaus, Nimmich, Nowic, Numbo3, O.Koslowski, PSIplus, PaterMcFly, Paul Ebermann, PeterFrankfurt, Quirin, RAFPeterM, RanuKanu, Salgar, Seewolf, Sleske, Soulmerge, Speck-Made, Swatchy, Telekommann, The.Modificator, Thomas Tunsch, Thomas-fahle, Thomei08, Tofra, Traroth, Ucc, WerWil, Zahnstein, Zaxxon, Zinnmann, Zxb, 80 anonyme Bearbeitungen

        Lynx (Browser) Quelle: http://de.wikipedia.org/w/index.php?oldid=116714056 Bearbeiter: .eXotech, APPER, Adaxl, Avatar, Bhaak, Defchris, Diddi, Dominik, Eke, Elwood j blues, ErikDunsing, Fab, Flattervieh, Fomafix, Fossa, Fritz, Gardini, Gorp, Grossenhayn, Hashar, Head, Herr Th., Hoo man, Itangast, JasN, Jobu0101, Karl-Henner, Krawi, Levin, Lynax, Marcel601, Marcokrings, Melancholie, MichiK, Mikue, Mino, Mps, Mr. Anderson, MrFixit, Nd, Nerd, NickK, Paddy, PatriceNeff, Phoenix8590, Queck, Rbrausse, Robert Weemeyer, Rolf acker, Schewek, Snipermatze, Speck-Made, Stargaming, Stern, Suricata, Textor, Thoken, Thomei08, Toka, Tonitrus, Triebtäter, WD, Weede, Xayax, 31 anonyme Bearbeitungen

        Cascading Style Sheets Quelle: http://de.wikipedia.org/w/index.php?oldid=123723063 Bearbeiter: 182.132.186.195.dial.bluewin.ch, 24-online, APPER, Achim Raschka, Adri42, Adrian Lange, Aetas volat., Aftereight, Aka, Amay82, Anatolpanom, Andre Engels, Atamari, Atari-Frosch, Augiasstallputzer, BRotondi, Bachsau, Bagok, Baird's Tapir, Balû, Ben-Zin, Benefix, Bernard Ladenthin, Bernd Rieke, BishkekRocks, Björn Klippstein, Blaufisch, Boredom2, Boshomi, Brodkey65, Bsmuc64, ChrisHamburg, ChristianErtl, ChristophDemmer, Ckeen, Cljk, Cocoeye, Complex, Conversion script, CosmoKramer, Crazy1880, Creak, Crissov, Cvn65, Dachris, Darkking3, Darth NormaN, Der.Traeumer, DerHexer, Diba, Didym, DieMaustanzt, Dnaber, Dolphin, Dominic Z., DrHippert, Dubby, Eilmeldung, Eiseleda, Empro2, FBE2005, FGodard, FH109, Felix König, Fippe, Flo 1, Flo2154, FloTimm, Fomafix, FranzR, FranzStuerzer, Garnichtsoeinfach, Genjo, Gfis, Gidoca, Giovannino, Gniesgnatz, Gnu1742, Goonmedia, Gorgsenegger, Graphikus, Gunk, Günther M. Apsel, HHK, Halfproud, HannesH, HeLping, Heinte, Helfmann, Hermannthomas, Hgulf, Hoarst, Hoo man, Hornjoserbscez, Hyperion86, Inkowik, Iste Praetor, J. 'mach' wust, JD, Janhenriegon, Jens Meiert, Jensoweber, Jnandreae, JoR, Jonesey, Joni2, Jpp, Juesch, JulianPeD, Juncensis, Justin.w, K.obermann, KL47, KMic, Kaneiderdaniel, Karl-Henner, Kerbel, Kh4711, Kku, Klaeren, Knochen, Koelnerbinchen, Krd, Kristjan, Kthar, Kuroi-ryu, Langec, Lars Beck, Lehmi, Lichtkind, Limasign, Liscow, Lucky strike, MFM, Manfred Bungart, Manuae, Manuel Strehl, Marcus Schätzle, Martin1978, Maxb88, Meckerer, Meph666, Michael Kümmling, Michelvoss, Mijobe, Mme Mimimi, Molily, MrStamper, Mschlindwein, Musik-chris, Neil Hilist, Netspy, Nightfly85, Nightflyer, Noddy93, Nrieck, Oceco, Olei, PaoloPriotto, ParaDox, Parzi, PatriceNeff, Patrick G., PeeCee, PerfektesChaos, Peter Walt A., Peter200, Pittimann, Placebo111, Plasmagunman, PsY.cHo, Pups5545, Rdb, Reclus, Regi51, Reinhard Kraasch, Richardigel, Romanhinze, Saibo, Schlurcher, Schmei, Schnirring, Schwallex, Seewolf, Seschreiber, Seth Cohen, Shamrock7, Silvicola, Simonsais, Simpson-fan, Sinn, Splayn, StYxXx, Stefan Breunig, Stefan Majewsky, Steffen, Stern, Suit, T. Schmidbauer, Telcontar, Th.Binder, TheHacker, TheK, Thire, Thomas Kaschwig, Timk70, TobbiM, TobiasHerp, Tobiask, TomK32, Toxilly, Traroth, Traute Meyer, Traxer, Troubleshooting, Tsor, Tuxman, Tönjes, Umweltschützen, Uncopy, Unkenmann, Ute Erb, Vanger, Vanlenderius, Video2005, Vinci, Volker E., Vulture, Westiandi, WikiNick, Wolle212, Wruedt, Wst, YourEyesOnly, Yurik, Zeno Gantner, Zirkunow, 410 anonyme Bearbeitungen

        Logische Auszeichnungen Quelle: http://de.wikipedia.org/w/index.php?oldid=108066613 Bearbeiter: Bahnmoeller, Chaddy, DtLS2012, Mst, Silberchen, Spuk968, T§, UlrichJ, 4 anonyme Bearbeitungen

        Physische Auszeichnungen Quelle: http://de.wikipedia.org/w/index.php?oldid=108066606 Bearbeiter: Bahnmoeller, Chaddy, DtLS2012, Jörg Knappen, Leit, Mst, Silberchen, T§, UlrichJ, 2 anonyme Bearbeitungen

        Quirks-Modus Quelle: http://de.wikipedia.org/w/index.php?oldid=116926821 Bearbeiter: Aka, Amidasu, CGWPhysiker, Fomafix, Friedels-home.com, Günther M. Apsel, HaThoRator, Ibanez92, Jjeka, JuTa, Körnerbrötchen, Molily, Nightfly85, Paul Vorbach, Pionic, Quelbs, Rskop, Scavenger86, Seth Cohen, Speck-Made, Suit, Theghaz, Tlustulimu, Trustable, 12 anonyme Bearbeitungen

        Reset-Stylesheet Quelle: http://de.wikipedia.org/w/index.php?oldid=121011028 Bearbeiter: Nightfly85, Siegfried von Brilon, Trustable, 1 anonyme Bearbeitungen Quelle(n), Lizenz(en) und Autor(en) des Bildes 82

        Quelle(n), Lizenz(en) und Autor(en) des Bildes

        Datei:HTML.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:HTML.svg Lizenz: Creative Commons Attribution-Sharealike 2.5 Bearbeiter: en:User:Dreftymac Datei:XML (de).svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:XML_(de).svg Lizenz: Creative Commons Attribution-Sharealike 2.5 Bearbeiter: User: Datei:XHTML.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:XHTML.svg Lizenz: Creative Commons Attribution-Sharealike 2.5 Bearbeiter: en:User:Dreftymac Datei:SGT Satz-Gestaltungs-Terminal.JPG Quelle: http://de.wikipedia.org/w/index.php?title=Datei:SGT_Satz-Gestaltungs-Terminal.JPG Lizenz: Creative Commons Attribution-Sharealike 3.0 Germany Bearbeiter: Hannes Schöllauf Datei:Ooowysiwyg.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Ooowysiwyg.png Lizenz: Creative Commons Attribution-ShareAlike 3.0 Unported Bearbeiter: nummer9 Datei:Lyx logo.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Lyx_logo.png Lizenz: GNU General Public License Bearbeiter: Den fjättrade ankan, PS2801, Shooke Datei:LyX_loremipsum.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:LyX_loremipsum.png Lizenz: Creative Commons Attribution-Sharealike 3.0 Bearbeiter: KaiMartin Datei:LyX_loremipsum_pdf.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:LyX_loremipsum_pdf.png Lizenz: Creative Commons Attribution-Sharealike 3.0 Bearbeiter: KaiMartin Datei:Unicode logo.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Unicode_logo.svg Lizenz: Public Domain Bearbeiter: unbekannt (Transfered by muff cabbage/Original uploaded by Benji) Datei:Roadmap to Unicode BMP de.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Roadmap_to_Unicode_BMP_de.svg Lizenz: Public Domain Bearbeiter: Saric (deutsche Übersetzung von Prince Kassad) Datei:Lynx_Browser_2.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Lynx_Browser_2.png Lizenz: GNU Free Documentation License Bearbeiter: Lynx ist freie Software und wird von vielen Personen mitentwickelt. Siehe http://lynx.browser.org/ für Details. Der Wikipedia-Artikel wurde von diversen Autoren der deutschen Wikipedia erstellt. Details sind der Versionsgeschichte zu entnehmen.. Datei:Class-header-css3.jpg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Class-header-css3.jpg Lizenz: Creative Commons Attribution 3.0 Bearbeiter: Zeno Rocha Datei:Boxmodell-detail.gif Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Boxmodell-detail.gif Lizenz: Creative Commons Zero Bearbeiter: Matthias Apsel Datei:Absatz_mit_CSS_gestaltet.gif Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Absatz_mit_CSS_gestaltet.gif Lizenz: Public domain Bearbeiter: Benutzer: Günther M. Apsel Lizenz 83

        Lizenz

        Wichtiger Hinweis zu den Lizenzen Die nachfolgenden Lizenzen bezieht sich auf den Artikeltext. Im Artikel gezeigte Bilder und Grafiken können unter einer anderen Lizenz stehen sowie von Autoren erstellt worden sein, die nicht in der Autorenliste erscheinen. Durch eine noch vorhandene technische Einschränkung werden die Lizenzinformationen für Bilder und Grafiken daher nicht angezeigt. An der Behebung dieser Einschränkung wird gearbeitet. Das PDF ist daher nur für den privaten Gebrauch bestimmt. Eine Weiterverbreitung kann eine Urheberrechtsverletzung bedeuten. Creative Commons Attribution-ShareAlike 3.0 Unported - Deed

        Diese "Commons Deed" ist lediglich eine vereinfachte Zusammenfassung des rechtsverbindlichen Lizenzvertrages (http:/ / de. wikipedia. org/ wiki/ Wikipedia:Lizenzbestimmungen_Commons_Attribution-ShareAlike_3. 0_Unported) in allgemeinverständlicher Sprache. Sie dürfen: • das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen • Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen Zu den folgenden Bedingungen: • Namensnennung — Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. • Weitergabe unter gleichen Bedingungen — Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten, abwandeln oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses Lizenzvertrages identisch, vergleichbar oder kompatibel sind. Wobei gilt: • Verzichtserklärung — Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten. • Sonstige Rechte — Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte: • Die gesetzlichen Schranken des Urheberrechts und sonstigen Befugnisse zur privaten Nutzung; • Das Urheberpersönlichkeitsrecht des Rechteinhabers; • Rechte anderer Personen, entweder am Lizenzgegenstand selber oder bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.

        • Hinweis — Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen mitteilen, die für dieses Werk gelten. Am einfachsten ist es, an entsprechender Stelle einen Link auf http:/ / creativecommons. org/ licenses/

        by-sa/ 3. 0/ deed. de einzubinden.

        Haftungsbeschränkung Die „Commons Deed“ ist kein Lizenzvertrag. Sie ist lediglich ein Referenztext, der den zugrundeliegenden Lizenzvertrag übersichtlich und in allgemeinverständlicher Sprache, aber auch stark vereinfacht wiedergibt. Die Deed selbst entfaltet keine juristische Wirkung und erscheint im eigentlichen Lizenzvertrag nicht.

        GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: • A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. • B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. • C. State on the Title page the name of the publisher of the Modified Version, as the publisher. • D. Preserve all the copyright notices of the Document. • E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. • F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. • G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. • H. Include an unaltered copy of this License. • I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. • J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. • K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. • L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. • M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. • N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. • O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. Lizenz 84

        In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new

        problems or concerns. See http:/ / www. gnu. org/ copyleft/ . Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.