13.07.2015 Aufrufe

HTML & CSS

HTML & CSS

HTML & CSS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Reader zum MOOC"Web-Engineering"Kapitel 4 & 5: <strong>HTML</strong> & <strong>CSS</strong>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


InhaltArtikel<strong>HTML</strong> 1Auszeichnungssprache 1Hypertext Markup Language 4Extensible Markup Language 12Extensible Hypertext Markup Language 21WYSIWYG 29WYSIWYM 31Markdown 32LyX 35Zeichenkodierung 37Zeichensatz 40Unicode 42UTF-8 51Multipurpose Internet Mail Extensions 57Lynx (Browser) 62<strong>CSS</strong> 64Cascading Style Sheets 64Logische Auszeichnungen 76Physische Auszeichnungen 76Quirks-Modus 77Reset-Stylesheet 78QuellennachweiseQuelle(n) und Bearbeiter des/der Artikel(s) 80Quelle(n), Lizenz(en) und Autor(en) des Bildes 82ArtikellizenzenLizenz 83


1Auszeichnungssprache<strong>HTML</strong>Eine Auszeichnungssprache (englisch markup language, ML) dient zur Beschreibung des Inhalts einesDokumentenformates und teilweise zur Beschreibung des Verfahrens, welches zur Bearbeitung dieser Daten benötigtwird. Ursprünglich dienten die Auszeichnungen im Text als Anweisungen für die Setzer im Drucksatz, mit derWeiterentwicklung in der Typografie für digitale Texte wurden daraus jedoch komplexe Sprachen.GeschichteDie Strukturmerkmale eines Textes können durch Schriftauszeichnung wie Hervorhebungen in Fett- oderKursivschrift, Fußnoten, Literaturhinweise, Absätze, Überschriften „erkannt“ werden. Notiert wurden derartigeStrukturen früher durch sogenannte Textauszeichnungen (markup), die ursprünglich – handschriftlich auf einemManuskript eingetragen – Formatierungsanweisungen für den Schriftsetzer waren.FunktionsweiseBei 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, inder 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 dieMöglichkeit, Sonderzeichen zu beschreiben, meist mit Hilfe einer numerischen Zuweisung (Unicode) oder durchBenennung, zum Beispiel \mu für µ in LaTeX und in <strong>HTML</strong> &micro;.BeispieleVergleichstabelleBeispiel für … Darstellungsbeispiel <strong>HTML</strong> LaTeX WikitextÜberschriftÜberschriftÜberschrift \section{Überschrift} = Überschrift =Aufzählung • Punkt 1• Punkt 2• Punkt 3Punkt 1Punkt 2Punkt 3\begin{itemize}\item Punkt 1\item Punkt 2\item Punkt 3\end{itemize}* Punkt 1* Punkt 2* Punkt 3fetten Text fett fett \textbf{fett} '''fett'''kursiven Text kursiv kursiv \textit{kursiv} ''kursiv''


Auszeichnungssprache 2Unterscheidung und AbgrenzungBei den Auszeichnungssprachen wird heute grob unterschieden in Sprachen zur reinen Beschreibung, DescriptiveMarkup Language (DML) und in prozedurale Auszeichnungssprachen, Procedural Markup Language (PML).Mit den reinen Beschreibungssprachen werden die Informationen beschrieben, also die physische und logischeStruktur eines Dokumentes (neudeutsch: Layout) und die Semantik der Elemente, im Gegensatz zu den prozeduralenAuszeichnungssprachen, welche die Darstellung der Dokumente – unter anderem auf dem Bildschirm, imWebbrowser oder für Drucker – beschreiben. [1]Descriptive Markup LanguageZu den reinen Beschreibungssprachen gehören unter anderem die in SGML oder XML definierten Sprachen <strong>HTML</strong>,DocBook, TEI, MathML, WML, XAML und SVG.Lightweight Markup LanguageUm Dokumente (z. B. in Wiki, Blogs, Foren) manuell erstellen und lesen zu können, werden vereinfachteAuszeichnungssprachen 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 <strong>HTML</strong>oder X<strong>HTML</strong> serverseitig umgewandelt.Klassische Auszeichnungssprachen, die möglichst viele und genaue Details darstellen können, werden meistmaschinell durch Skriptsprachen erzeugt und müssen nicht unbedingt von Menschen direkt verwendet werdenkönnen. Müssen aber Inhalte von Menschen manuell geschrieben oder sogar gelesen werden, so können dieseentweder 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. <strong>HTML</strong> Seite, sondern wenige nicht benutzteZeichenfolgen (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 TrennzeichenSo ist ein Sternchen (*) am Anfang einer Zeile ein Listenpunkt und wird erst beim Kompilieren als typografischesAufzählungszeichen dargestellt. Diese Schreibweise ist gegenüber nativem <strong>HTML</strong>(text) kürzer. Allerdings ist diese Methode nicht ganz eindeutig, denn eine andereFunktion des Sternchens zur Kennzeichnung einer Fußnote kollidiert hier. Andere Funktionen innerhalb einervereinfachten Auszeichnungssprache verursachen so Fehler. In manchen vereinfachten Auszeichnungssprachenbeginnt 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 auchweitere Funktionen erfüllt werden• Hyperlinks• Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zurKategorisierung.• mit Transklusionen Teile anderer Dokumente durch einen Verweis einzuschließen.Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen (z. B. Readme oderE-Mails) zur Darstellung von Hervorherbungen wie Kursiv oder Fett verwendet, ohne dass diese weiterumgewandelt werden. Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicherSoftware gebildet, es gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind.


Auszeichnungssprache 3• um in Wikis an Hypertexten zusammenzuarbeiten, gibt es unterschiedlichen Wikitext, aber auch den Versucheiner 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ürPerl oder Javadoc für Java)• Markdown, Textile, AsciiDoc und reStructuredText konzentrieren sich auf jeweils andere Vorgehensweisen.Procedural Markup LanguageDie darstellenden Seitenbeschreibungssprachen wie das Textsatzsystem TeX und dessen Makropakete LaTeX oderConTeXt, kann man weitläufigst zu den Auszeichnungssprachen zählen. Hier werden jedoch sowohl Eigenschaftender reinen Beschreibungssprachen sowie der prozeduralen Auszeichnungssprachen verwendet, wie das auch bei denSeitenbeschreibungssprachen für PDF und PostScript der Fall ist.ProgrammierspracheDie Abgrenzung ist zum Teil jedoch auch sehr schwierig, da beispielsweise bei der Sprache PostScript auchEigenschaften von Programmiersprachen verwendet werden. Zur Darstellung einer Lissajous-Figur in Postscriptmüssen so z. B. nicht alle Kanten der Grafik in einer Segmentliste enthalten sein, da diese auch anhand einesprogrammierten Algorithmus zur Laufzeit erzeugt werden können. Das Ziel ist jedoch eine beschreibendeDatenauszeichnung, allerdings wird diese unter Umständen erst zur Laufzeit aus einer prozeduralen Vorstufedynamisch erzeugt. Die Abgrenzung zu Programmiersprachen wird in diesem Fall fließend, denn wie diese besitzenauch alle Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik, was aber noch keinehinreichenden Bedingungen sind zur Definition einer Programmiersprache. Eine Programmiersprache unterscheidetsich 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. html) – Eintragbei ITWissen.info


Hypertext Markup Language 4Hypertext Markup Language<strong>HTML</strong> (Hypertext Markup Language)Dateiendung:MIME-Type:Entwickelt von:.html, .htmtext/htmlWorld Wide Web ConsortiumAktuelle Version: 4.01Art:Erweitert zu:Standard(s):Website:AuszeichnungsspracheX<strong>HTML</strong>, <strong>HTML</strong>5ISO/IEC 15445; W3C <strong>HTML</strong> 4.01, [1] W3C <strong>HTML</strong> 3.2 [2]www.w3.org/html [3]Die Hypertext Markup Language (engl. ‚Hypertext-Auszeichnungssprache‘), abgekürzt <strong>HTML</strong>, ist einetextbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks inDokumenten. <strong>HTML</strong>-Dokumente sind die Grundlage des World Wide Web und werden von einem Webbrowserdargestellt. Neben den vom Browser angezeigten Inhalten einer Webseite enthält <strong>HTML</strong> zusätzliche Angaben inForm von Metainformationen, die z. B. über die im Text verwendete Sprache oder den Autor Auskunft geben oderden Inhalt des Textes zusammenfassen.Die Auszeichnungssprache wird vom World Wide Web Consortium (W3C) und der Web Hypertext ApplicationTechnology Working Group (WHATWG) weiterentwickelt. Aktuell trägt <strong>HTML</strong> die Versionsnummer 4.01.<strong>HTML</strong>5 des W3C bzw. der „<strong>HTML</strong> Living Standard“ der WHATWG befindet sich in der Entwicklung, wird jedochschon von vielen aktuellen Layout-Engines unterstützt. Parallel existiert die Extensible Hypertext Markup Language(X<strong>HTML</strong>).EntstehungVor der Entwicklung des World Wide Web und dessen Bestandteilen, zu denen auch <strong>HTML</strong> gehört, war es nichtmöglich, Informationen auf digitalem Weg einfach, schnell und strukturiert zwischen mehreren Personenauszutauschen. Man benötigte neben Übertragungsprotokollen auch eine einfach zu verstehendeTextauszeichnungssprache. Genau hier lag der Ansatzpunkt von <strong>HTML</strong>. Um Forschungsergebnisse mit anderenMitarbeitern der Europäischen Organisation für Kernforschung (CERN) zu teilen und von den beiden Standorten inFrankreich und in der Schweiz aus zugänglich zu machen, entstand 1989 am CERN ein Projekt, welches sich mit derLösung dieser Aufgabe beschäftigte. Am 3. November 1992 erschien die erste Version der <strong>HTML</strong>-Spezifikation.


Hypertext Markup Language 5SyntaxDem Text wird durch Auszeichnungen (englisch markup) von Textteilen eine Struktur verliehen. Die Auszeichnungerfolgt durch SGML-Elemente. Die meisten dieser <strong>HTML</strong>-Elemente werden durch ein Tag-Paar markiert, das heißtdurch einen Starttag und einen Endtag. Ein Starttag beginnt immer mit dem Zeichen wird der Starttag geschlossen. Ein Endtag besteht aus den Zeichen . Die zusammengehörenden Start- und Endtags bilden zusammen mitdem dazwischenliegenden Inhalt ein Element allgemeiner SGML-Spezifikation. Diese Elemente lassen sich nachRegeln, 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ßundKleinschreibung keine Rolle (z. B. , , ). Zum Vergleich: In X<strong>HTML</strong> sind diese Regeln strengerverfasst.Neben Elementen mit Start- und Endtag gibt es in <strong>HTML</strong> auch inhaltsleere Elemente, wie etwa Zeilenumbrüche(br) oder Bilder (img).Eine Textzeile,die hier fortgesetzt wird.Es geht in <strong>HTML</strong> um beschreibende (englisch descriptive), nicht um verfahrens- (englisch procedural) unddarstellungsorientierte (englisch presentational) Textauszeichnung, auch wenn sich <strong>HTML</strong> in früheren Versionendafür verwenden ließ. <strong>HTML</strong>-Elemente sind keine Angaben zur Präsentation, die dem Webbrowser mitteilen, wie erden Text visuell zu formatieren hat. Vielmehr sind Elemente eine strukturierende Auszeichnung, mit der sichTextbereichen 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-Umgebungab. Denn obwohl <strong>HTML</strong>-Dokumente in der Regel auf Computerbildschirmen dargestellt werden, können sie auchauf anderen Medien ausgegeben werden, etwa auf Papier oder mittels Sprachausgabe. <strong>CSS</strong>-Formatvorlagen eignensich dazu, um auf die Präsentation eines <strong>HTML</strong>-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 6Das Einlesen des Quelltextes sowie das Verarbeiten der vorhandenen Informationen wird in der Fachsprache auchals Parsen bezeichnet, und die Aufbereitung für das Ausgabemedium als Rendern. Die Sprache <strong>HTML</strong> 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 besagtzwar, dass eine Überschrift folgt, nicht aber, in welcher Schriftgröße oder Schriftschnitt diese darzustellen ist – hierhaben sich nur gewisse übliche Standardeinstellungen eingebürgert, die aber nicht Teil der <strong>HTML</strong>-Spezifikationsind.Sprachtyp<strong>HTML</strong> ist eine Auszeichnungssprache und wird als solche auch nicht programmiert, sondern schlicht geschrieben.Ein ähnliches Konzept (logische Beschreibung) wie hinter <strong>HTML</strong> steht hinter dem Satzsystem TeX/LaTeX, das imUnterschied zu <strong>HTML</strong> jedoch auf die Ausgabe per Drucker auf Papier zielt.Versionen<strong>HTML</strong> wurde am 13. März 1989 von Tim Berners-Lee am CERN in Genf festgelegt. [5]• <strong>HTML</strong> (ohne Versionsnummer, 3. November 1992): Die Urversion, die sich nur an Text orientierte. [6]• <strong>HTML</strong> (ohne Versionsnummer, 30. April 1993): Zu Text kommt neben Attributen wie fette oder kursiveDarstellung die Bildintegration dazu.• <strong>HTML</strong>+ (November 1993) Geplante Erweiterungen, die in spätere Versionen einflossen, aber nie als <strong>HTML</strong>+verabschiedet wurden. [7]• <strong>HTML</strong> 2.0 (November 1995): Die mit RFC 1866 definierte Version führt u. a. Formulartechnik ein. Der Statusdieses Standards ist „HISTORIC“. Auch die Vorgänger sind veraltet.• <strong>HTML</strong> 3.0: Die Version erscheint nicht, weil sie mit der Einführung des Netscape-Browsers in der Version 3bereits vor der Veröffentlichung veraltet ist.• <strong>HTML</strong> 3.2 (14. Januar 1997): Neu in dieser Version sind zahlreiche Features wie Tabellen, Textfluss um Bilder,Einbindung von Applets.• <strong>HTML</strong> 4.0 (18. Dezember 1997): Mit dieser Version werden Stylesheets, Skripte und Frames eingeführt. Aucheine Trennung in Strict, Frameset und Transitional erfolgt. Am 24. April 1998 erscheint eine leicht korrigierteVersion dieses Standards.• <strong>HTML</strong> 4.01 (24. Dezember 1999): Ersetzt <strong>HTML</strong> 4.0 mit vielen kleineren Korrekturen.• X<strong>HTML</strong> 1.0 (26. Januar 2000): Eine Neuformulierung von <strong>HTML</strong> 4.01 mit Hilfe von XML. Am 1. August 2002erscheint eine überarbeitete Version.• X<strong>HTML</strong> 1.1 (31. Mai 2001): Nachdem X<strong>HTML</strong> in Module aufgeteilt wurde, wird mit X<strong>HTML</strong> 1.1 eine strikteVersion definiert, bei der die mit <strong>HTML</strong> 4 eingeführten Varianten Frameset und Transitional entfallen.• X<strong>HTML</strong> 2.0 (closed, [8] 26. Juli 2006): Diese Version sollte nicht mehr auf <strong>HTML</strong> 4.01 basieren und einige neueElemente einführen, so z. B. für Navigationslisten. Die Trennung von Auszeichnung und Stil sollte indieser Version vollendet werden. – Das W3C hat die Arbeiten an X<strong>HTML</strong> 2.0 im Sommer 2009 zu Gunsten von<strong>HTML</strong>5 eingestellt. [9][10]• <strong>HTML</strong>5 (Working Draft, [11] 23. April 2009): <strong>HTML</strong>5 schafft auf Basis von <strong>HTML</strong> 4.01 und X<strong>HTML</strong> 1.0 einneues Vokabular. Die zu <strong>HTML</strong> gehörende DOM-Spezifikation wird ebenfalls überarbeitet und erweitert.


Hypertext Markup Language 7<strong>HTML</strong>-StrukturAllgemeine StrukturEin <strong>HTML</strong>-Dokument besteht aus drei Bereichen:1. der Dokumenttypdeklaration (Doctype) ganz am Anfang der Datei, die die verwendete Dokumenttypdefinition(DTD) angibt, z. B. <strong>HTML</strong> 4.01 Strict,2. dem <strong>HTML</strong>-Kopf (HEAD), der hauptsächlich technische oder dokumentarische Informationen enthält, dieüblicherweise nicht im Anzeigebereich des Browsers dargestellt werden3. dem <strong>HTML</strong>-Körper (BODY), der jene Informationen enthält, die gewöhnlicherweise im Anzeigebereich desBrowsers zu sehen sind.Somit sieht die Grundstruktur einer Webseite wie folgt aus:Titel der WebseiteInhalt der Webseite<strong>HTML</strong>-KopfIm Kopf können sieben verschiedene Elemente verwendet werden:titlebezeichnet den Titel der Seite, der von den meisten Browsern in der Titelleiste angezeigt wird.metakann vielfältige Metadaten enthalten. Siehe Meta-Element.basegibt entweder eine Basis-URI oder einen Basisframe an.linkdient zur Angabe von logischen Beziehungen zu anderen Ressourcen. Wird am häufigsten zur Einbindung vonStylesheets benutzt.scriptbindet Code in einer bestimmten Skriptsprache ein, hauptsächlich JavaScript.styleenthält Stilinformationen, hauptsächlich <strong>CSS</strong>-Deklarationen.objectbindet eine externe Datei ein. Browser dürfen solche Objekte im Dokumentkopf nicht darstellen.


Hypertext Markup Language 8<strong>HTML</strong>-Körper<strong>HTML</strong> unterscheidet zwischen Block- und Inline-Elementen. Der wesentliche Unterschied ist, dass erstere in derAusgabe einen eigenen Block erzeugen, in dem der Inhalt untergebracht wird, während die Inline-Elemente denTextfluss nicht unterbrechen. Vereinfacht gesprochen haben Block-Elemente immer ihre eigene Zeile. Mithilfe von<strong>CSS</strong> ist es jedoch möglich, Block-Elemente wie ein Inline-Element darzustellen und umgekehrt. Zudem lassen sichalle Elemente via <strong>CSS</strong> auch als inline-block auszeichnen, mit dem Ergebnis, dass ein solches Element sowohlEigenschaften eines Block-Elementes als auch eines Inline-Elementes besitzt.Eine Überschrift erster Ordnung wird so ausgezeichnet:Überschrifth1 steht für Heading 1, zeichnet also eine Überschrift der ersten (und in <strong>HTML</strong> höchsten) Gliederungsstufe aus.Weiter möglich sind h2 bis h6, Überschriften zweiter bis sechster Gliederungsstufe.Ein Hyperlink:Dies ist ein Verweis auf example.comHyperlinks sind Verweise auf andere Ressourcen, meistens ebenfalls <strong>HTML</strong>-Dokumente, die üblicherweise imBrowser durch Klick verfolgt werden können. Dieser Link könnte so gerendert werden: Dies ist ein Verweis aufexample.com [12] Ebenso ist an diesem Beispiel zu sehen, dass das Link-Element ein Inline-Element ist und keineneue Zeile beginnt.Zur Logik stehen zum Beispiel die Elemente strong oder em bereit, mit denen sich stark hervorgehobener oderbetonter Text auszeichnen lässt. Per Voreinstellung (lt. W3C-Empfehlung) werden strong- und em-Elementedurch Fettschrift beziehungsweise kursive Schrift gerendert.Die Strukturbeschreibung des Textes, wie sie die obigen Beispiele veranschaulichen, vereinfacht es, das Renderndem Betrachter anzupassen, um etwa Text einem Sehbehinderten vorzulesen oder als Braille auszugeben.<strong>HTML</strong>-VariantenBeim Entwurf der letzten <strong>HTML</strong>-Version 4 sollte der Tatsache, dass in vielen <strong>HTML</strong>-Dokumenten noch Elementeund Attribute zur Präsentation eingesetzt werden, Rechnung getragen werden. Das Ergebnis waren schließlich dreiVarianten:StrictDiese DTD umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attributezur Beeinflussung der Präsentation, unter anderem die Elemente font, center und u sowie Attribute wiebgcolor, align und target. Deren Rolle sollen in Strict-Dokumenten Stylesheets übernehmen. Text undnicht-blockbildende Elemente innerhalb der Elemente body, form, blockquote und noscript müssen sichgrundsätzlich innerhalb eines Container-Elements befinden, zum Beispiel in einem p-Element.


Hypertext Markup Language 9TransitionalDie Transitional-Variante enthält noch ältere Elemente und Attribute, die auch physische Textauszeichnungermöglichen. Durch diese DTD soll Webautoren, die noch nicht logische Strukturierung und Präsentationvoneinander trennen, die Möglichkeit gegeben werden, standardkonformes <strong>HTML</strong> zu schreiben. Gleichzeitig soll siesicherstellen, dass bestehende Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden können.FramesetDiese Variante enthält zusätzlich zu allen Elementen der Transitional-Variante noch die Elemente für die Erzeugungvon Framesets.Zusatztechniken und WeiterentwicklungenCascading Style SheetsIm Laufe der Jahre ist <strong>HTML</strong> 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 vonStruktur und Layout (besser: Präsentation) wurde durch die Definition von Cascading Style Sheets (<strong>CSS</strong>)vorgenommen. So soll das Aussehen bzw. die Darstellung des Dokuments in einer separaten Datei, dem sogenanntenStylesheet, festgelegt werden. Dies verbessert die Anpassungsfähigkeit des Layouts an das jeweilige Ausgabegerätund an spezielle Bedürfnisse der Benutzer, beispielsweise eine spezielle Darstellung für Sehbehinderte. Heutzutageist die <strong>CSS</strong>-Unterstützung der Browser ausreichend, um damit eine anspruchsvolle Gestaltung zu realisieren.Dynamisches <strong>HTML</strong>Schon sehr früh in der Geschichte von <strong>HTML</strong> wurden Zusatztechniken erfunden, die es ermöglichen,<strong>HTML</strong>-Dokumente während der Anzeige im Browser dynamisch zu verändern. Die gebräuchlichste ist JavaScript.Man spricht bei solchen interaktiven Dokumenten von dynamischem <strong>HTML</strong>. Diese Techniken wurden vonverschiedenen Browser-Herstellern, allen voran Microsoft und Netscape, unabhängig voneinander entwickelt. Dahergab es erhebliche Probleme bei der Umsetzung der Techniken zwischen den verschiedenen Browsern. Mittlerweileinterpretieren alle verbreiteten JavaScript-fähigen Browser das Document Object Model (DOM). Dadurch ist esmöglich, in allen Browsern lauffähige Skripte zu schreiben. Es gibt jedoch noch immer Differenzen bei derUnterstützung des DOM-Standards.XMLVersion <strong>HTML</strong> 4.01 der <strong>HTML</strong>-Empfehlung wurde in der Metasprache XML neu formuliert. Das darausentstandene X<strong>HTML</strong> 1.0 genügt den im Vergleich zu SGML strengeren syntaktischen Regeln von XML, ist aber inseinen drei DTD-Varianten semantisch mit der jeweils entsprechenden DTD-Variante von <strong>HTML</strong> 4.01 identisch.X<strong>HTML</strong> wird im Rahmen des <strong>HTML</strong>5 Standards weiter entwickelt.AjaxMit 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 geringerenDatenaufkommens wird zum einen eine schnellere Webserver-Antwort ermöglicht, und zum anderen lassen sichReaktionsweisen von Desktop-Anwendungen simulieren.


Hypertext Markup Language 10Unterschiedliche Darstellung und Interpretation von <strong>HTML</strong>-Dokumenten<strong>HTML</strong> 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 Browseranbieterbestimmbar. Eine Ausnahme stellen die als deprecated markierten, präsentationsbezogenen Elemente dar.Literatur• Stefan Münz, Wolfgang Nefzger: <strong>HTML</strong> Handbuch. Franzis-Verlag, Poing 2005, ISBN 3-7723-6654-6.• Stefan Mintert (Hrsg.): X<strong>HTML</strong>, <strong>CSS</strong> & 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 – <strong>HTML</strong>, <strong>CSS</strong>, JavaScript, PHP, Perl, MySQL, SVGund Newsfeeds, mit CD. Galileo Press, Bonn 2004, ISBN 3-89842-557-6.• Elisabeth Robson & Eric Freeman: <strong>HTML</strong> und <strong>CSS</strong> von Kopf bis Fuß, O'Reilly, Köln 2012, ISBN978-3-86899-934-1Weblinks• Einige Notizen zum Ursprung von <strong>HTML</strong> [14] (englisch)• Webpräsenz des Standardisierungsgremiums W3C [15] – Spezifikationen und Neuigkeiten (englisch)Tutorials• SELF<strong>HTML</strong> [16] – Ausführliches Tutorial und Dokumentation, die sich mit der Erstellung von Webseiten befasst.• jendryschik.de: Einführung in X<strong>HTML</strong>, <strong>CSS</strong> und Webdesign [17]Validierung• Checkliste für Webstandards [18]• W3C-Validator [19] zur Überprüfung der syntaktischen Richtigkeit eines <strong>HTML</strong>-Dokuments (englisch)• Verschiedene nützliche Testwerkzeuge [20] , Site Check [21] (englisch)• WDG Validator [22] zur Überprüfung einer kompletten WebseiteStandards• edition W3C.de [23] Die W3C-Spezifikationen in deutscher Übersetzung und Kommentierung• <strong>HTML</strong>-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 <strong>HTML</strong> 4.01[2] http:/ / www. w3. org/ TR/ REC-html32-19970114 W3C <strong>HTML</strong> 3.2[3] http:/ / www. w3. org/ html/[4] SGML and <strong>HTML</strong> 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] <strong>HTML</strong>, Urversion (http:// www. w3. org/ History/ 19921103-hypertext/ hypertext/ WWW/ MarkUp/ MarkUp. html)[7] A Review of the <strong>HTML</strong>+ Document Format, David Raggett (http:// www. w3. org/ MarkUp/ htmlplus_paper/ htmlplus. html)[8] X<strong>HTML</strong> 2.0, W3C Working Draft (http:// www. w3. org/ TR/ xhtml2/ )[9] Heise-Meldung vom 3. Juli 2009: X<strong>HTML</strong> 2 wird eingestellt (http:// www. heise. de/ newsticker/ X<strong>HTML</strong>-2-wird-eingestellt--/ meldung/141514)[10] Meldung des W3C zur Einstellung der Entwicklung von X<strong>HTML</strong> 2 (http:// www. w3. org/ News/ 2009#item119)[11] <strong>HTML</strong>5, W3C Working Draft (http:// www. w3. org/ TR/ html5/ )[12] http:/ / example. com/


Hypertext Markup Language 11[13] <strong>HTML</strong> 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:// d-nb. info/ gnd/ 4373477-7)


Extensible Markup Language 12Extensible Markup LanguageExtensible Markup LanguageDateiendung:MIME-Type:Magische Zahl:.xmlapplication/xml, text/xml (deprecated)3C 3F 78 6D 6C hex


Extensible Markup Language 13FachbegriffeElementWichtigste Struktureinheit einer XML-Anwendung ist das Element. Der Name eines XML-Elements kannweitgehend frei gewählt werden. Elemente können weitere Elemente, Text- und andere Knoten – ggfs. auchvermischt – enthalten. Elemente sind die Träger der Information in einem XML-Dokument, unabhängig davon, obes sich um Text, Bilder usw. handelt.WohlgeformtheitEin 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 Elementbezeichnet, z. B. in X<strong>HTML</strong>.• 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 sieaus nur einem Auszeichner bestehen, der mit /> abschließt (z. B. ).• Die Beginn- und End-Auszeichner sind ebenentreu-paarig verschachtelt. Das bedeutet, dass alle Elementegeschlossen werden müssen, bevor die End-Auszeichner des entsprechenden Elternelements oder dieBeginn-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 einXML-Dokument als gültig (oder englisch valid), wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthältund das durch die Grammatik beschriebene Format einhält.ParserProgramme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen, nennt manXML-Parser. Prüft der Parser die Gültigkeit, so ist er ein validierender Parser.Aufbau eines XML-DokumentsBeispiel einer XML-DateiWikipedia StädteverzeichnisGenfGenf ist der Sitz von ...Köln


Extensible Markup Language 14Kö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 zurEinbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (&#Dezimalzahl; oder&#xHexadezimalzahl;).• Eine XML-Deklaration wird optional verwendet, um XML-Version, Zeichenkodierung und Verarbeitbarkeit ohneDokumenttypdefinition zu spezifizieren.• Eine Dokumenttypdefinition wird optional verwendet, um Entitäten sowie den erlaubten logischen Aufbau zuspezifizieren.Logischer AufbauDer 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 ArtMeta-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 diesesDokumentelements können weitere Elemente verschachtelt werden. Weiterhin kann durch Angabe eines namespace(XML-Namensraum) sichergestellt werden, dass bei Überschneidungen mit XML-Daten eines anderen Vokabularskeine Doppeldeutigkeiten entstehen.Zur Spezifikation des logischen Aufbaus werden die Dokumenttypdefinitionen durch das umfangreichereXML-Schema abgelöst, welches keine Möglichkeit zur Definition von Entitäten, jedoch einen adäquaten Ersatzdafür besitzt. Verarbeitungsanweisungen werden in der Praxis meist eingesetzt, um in XML-DokumentenVerarbeitungsanweisungen in anderen Sprachen einzubauen. Ein Beispiel dafür ist PHP, dessenVerarbeitungsanweisungen 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 eingebautenXML-Parsers direkt darstellen. Dies geschieht z. B. in Verbindung mit einem Stylesheet. Diese Transformation kanndie Daten in ein komplett anderes Format umwandeln, das Zielformat muss nicht einmal XML sein.


Extensible Markup Language 15Klassifizierung von XML-DokumentenXML-Dokumente lassen sich anhand ihres beabsichtigten Gebrauchs und ihres Strukturierungsgrads indokumentzentrierte und datenzentrierte Dokumente unterteilen. Die Grenze zwischen diesen Dokumentenarten istjedoch fließend. Mischformen können als semistrukturiert bezeichnet werden.• dokumentzentriert: Das Dokument ist an ein Textdokument angelehnt, das für den menschlichen Lesergrößtenteils auch ohne die zusätzliche Metainformation verständlich ist. XML-Elemente werden hauptsächlichzur 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 einemSchema, das Entitäten eines Datenmodells beschreibt und definiert, in welcher Beziehung die Entitätenzueinander stehen, sowie, welche Attribute die Entitäten haben. Das Dokument ist somit stark strukturiert und fürden unmittelbaren menschlichen Gebrauch weniger geeignet.• semistrukturiert: Semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist alsdokumentzentrierte 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 XMLVerarbeitungskriterienGrundsä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 dieAblaufkontrolle des Programms beim Parser liegt. Pull bedeutet, dass die Ablaufkontrolle im Code, der denParser aufruft, implementiert ist.)• Wie erfolgt das Baumstrukturmanagement der XML-Daten: hierarchisch oder verschachtelt?Programmgesteuerter Zugriff auf XML-DokumenteDas Einlesen von XML-Dokumenten erfolgt auf unterster Ebene über eine spezielle Programmkomponente, einenXML-Prozessor, auch XML-Parser genannt. Er stellt ein API zur Verfügung, über das die Anwendung auf dasXML-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 dieeinzelnen Bestandteile der Baumstruktur. DOM erlaubt außer dem Lesen von XML-Dokumenten auch dieManipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesemGrund ist DOM sehr speicherintensiv.• SAX: Ein SAX-API repräsentiert ein XML-Dokument als sequentiellen Datenstrom und ruft für im Standarddefinierte 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 alsauch einen Iterator an. Es ist hoch speichereffizient und ggf. leichter zu programmieren als das SAX-API, da dieAblaufkontrolle 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, sodass 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 XMLSchema 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-BeispieleXML-Parser-APIs sind für verschiedene Programmiersprachen vorhanden, z. B. Java, C, C++, C#, Python, Perl undPHP. Parser-API-Beispiele:• XML::Parser (Perl): Ein XML-Parser für Perl. Ein sehr einfaches API bietet z. B. auch das CPAN-ModulXML::Simple an.• DOM Functions (PHP5): Modul in PHP5, um XML-Dokumente einzulesen; alternativ simpleXML; für PHP4gibt es DOM XML.• StAX (Java): Eine hochgradig speichereffiziente Parserimplementierung (Pull) und gleichzeitig einfach zuprogrammieren. Es werden Cursor- und Iteratorverarbeitungsmodelle angeboten.• JAXB: Data Binding für Java. Beispielsweise kann aus einem XML-Schema die entsprechende Java-Klassegeneriert 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 dieSpeichereffizienz 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 überDOM, SAX, XSLT, XML Schemata und andere zu XML gehörende TechnologienZur Erstellung von XML-Dokumenten gibt es spezielle Programme, sogenannte XML-Editoren. Zur Speicherungund Verwaltung von XML-Dokumenten gibt es ebenfalls spezielle Programme, sogenannte XML-Datenbanken.Transformation und Darstellung von XML-DokumentenEin XML-Dokument kann mittels geeigneter Transformationssprachen wie XSLT oder DSSSL in ein anderesDokument transformiert werden. Oftmals dient die Transformation zur Überführung eines Dokuments aus einerXML-Sprache in eine andere XML-Sprache, beispielsweise zur Transformation nach X<strong>HTML</strong>, um das Dokument ineinem Webbrowser anzuzeigen.SchemasprachenUm die Struktur von XML-Sprachen zu beschreiben, bedient man sich so genannter Schemasprachen. Die zweibekanntesten sind Dokumenttypdefinition und XML Schema.


Extensible Markup Language 17DTD→ Hauptartikel: DokumenttypdefinitionEine Dokumenttypdefinition (DTD) beschreibt die Struktur und Grammatik von XML-Dokumenten. Sie wurdezusammen 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. Daherist es z. B. in DTD nicht möglich, zwischen Texten und Zahlen zu unterscheiden. Ein weiterer Nachteil ist dieTatsache, dass die DTD in einer eigenen Sprache abgefasst werden muss. Außerdem kennt die DTD keineNamensräume.XML Schema/XSD→ Hauptartikel: XML SchemaXML Schema (beziehungsweise XSD für XML-Schema-Definition) ist die moderne Möglichkeit, die Struktur vonXML-Dokumenten zu beschreiben. XML Schema bietet auch die Möglichkeit, den Inhalt von Elementen undAttributen zu beschränken, z. B. auf Zahlen, Datumsangaben oder Texte, z. B. mittels regulärer Ausdrücke. EinSchema ist selbst ein XML-Dokument, welches erlaubt, komplexere (auch inhaltliche) Zusammenhänge zubeschreiben, als dies mit einer formalen DTD möglich ist.Weitere SchemasprachenWeitere Schemasprachen sind Document Structure Description, RELAX NG und Schematron.XML-FamilieInfrastrukturIm Zusammenhang mit XML wurden vom W3-Konsortium auf Basis von XML viele Sprachen definiert, welcheXML-Ausdrücke für häufig benötigte allgemeine Funktionen anbieten wie etwa die Verknüpfung vonXML-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 undRELAX 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 18SprachenWährend XML selbst aus SGML hervorgegangen ist, bedienen sich heute sehr viele formale Sprachen der Syntaxvon XML. So ist XML ein wesentliches Instrument, um – wie es das W3C vorsieht – eine offene, für Mensch undMaschine verständliche Informationslandschaft (semantisches Web) zu schaffen.Auch die bekannte Dokumentsprache <strong>HTML</strong> wurde als „Extensible HyperText Markup Language“ (X<strong>HTML</strong>) imAnschluss an die Version 4.01 in dieses Konzept integriert, so dass ihr nun XML als Definitionsbasis zu Grundeliegt. Vielfacher Grund für den Einsatz von XML ist das zahlreiche Vorhandensein von Parsern und die einfacheSyntax: 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• X<strong>HTML</strong> (XML-konformes <strong>HTML</strong>)• TEI (Text Encoding Initiative)• NITF (News Industry Text Format)• OPML (Outline Processor Markup Language)• OSIS (Open Scripture Information Standard)Grafik• SVG (Vektorgrafiken)• X3D (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 Google 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 19Ingenieurwissenschaften• 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 AktorenWeitereDarüber hinaus existieren XML-Sprachen für Webservices (z. B. SOAP, WSDL und WS-*), für die Einbindung vonJava-Code in XML-Dokumente (XSP), für die Synchronisation von Kalenderdaten SyncML, mathematischeFormeln (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) oderFinanzberichten wie bspw. Jahresabschlüssen (XBRL), in Bereichen der Automobilindustrie (ODX, MSRSW,AUTOSAR-Templates, QDX, JADM, OTX), automatisierter Test z. B. von Schaltkreisen (ATML) überSystembiologie (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 imOpenDocument-Austauschformat (OASIS Open Document Format for Office Applications).Alternative Formate• JSON (JavaScript Object Notation)• YAML (YAML Ain't 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, ISBN3-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, ISBN978-3-8984-2288-8.• Michael Seeboerger-Weichselbaum: Das Einsteigerseminar XML. 2. Auflage. BHV Software, Kaarst 2000, ISBN978-3-8287-1018-4.• Margit Becher: XML : DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM. W3L Verlag, Witten2009, ISBN 978-3-937137-69-8.• Marco Skulschus, Marcus Wiederstein: XML: Standards und Technologien. Comelio Medien, Berlin 2009, ISBN978-3-939701-21-7.


Extensible Markup Language 20Weblinks• 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 21Extensible Hypertext Markup LanguageX<strong>HTML</strong>Dateiendung:MIME-Type:.xhtml, .xhtapplication/xhtml+xml [1]Entwickelt von: World Wide Web ConsortiumArt:Erweitert von:Standard(s):AuszeichnungsspracheXML, <strong>HTML</strong>1.0 (Recommendation) [2] ,1.1 (Recommendation) [3] ,1.1 SE (Working Draft) [4] ,5 (Working Draft) [5] ,2.0 (Working Draft) [6]Der W3C-Standard Extensible HyperText Markup Language (erweiterbare <strong>HTML</strong>; Abkürzung: X<strong>HTML</strong>) isteine textbasierte Auszeichnungssprache zur Strukturierung und semantischen Auszeichnung von Inhalten wieTexten, Bildern und Hyperlinks in Dokumenten. Es ist eine Neuformulierung von <strong>HTML</strong> 4.01 in XML: ImGegensatz zu <strong>HTML</strong>, welche mittels SGML definiert wurde, verwendet X<strong>HTML</strong> die strengere und einfacher zuparsende SGML-Teilmenge XML als Sprachgrundlage. X<strong>HTML</strong>-Dokumente genügen also den Syntaxregeln vonXML.X<strong>HTML</strong> 1.0: Übergang von <strong>HTML</strong> zu X<strong>HTML</strong>X<strong>HTML</strong> 1.0 enthält alle Elemente von <strong>HTML</strong> 4.01, sodass eine Umformung von <strong>HTML</strong>-4.01-konformen Seiten zuX<strong>HTML</strong> 1.0 leicht möglich ist. Ein nicht X<strong>HTML</strong>-fähiger Webbrowser kann X<strong>HTML</strong>-Dokumente unter bestimmtenBedingungen trotzdem richtig darstellen (siehe MIME-Typen und <strong>HTML</strong>-Kompatibilität): er verarbeitet sie alsnormales <strong>HTML</strong>. Dabei wird ausgenutzt, dass die <strong>HTML</strong>-Parser der verbreiteten Browser tolerant gegenüberSyntaxfehlern sind. Diese Fehlertoleranz entstand als Antwort darauf, dass zahlreiche <strong>HTML</strong>-Dokumente im WorldWide Web nicht dem formalen Standard entsprachen und Anwender Browsermeldungen über <strong>HTML</strong>-Syntax-Fehlerals lästig empfinden. Für X<strong>HTML</strong> hingegen gilt die XML-Grundidee des unkomplizierten Datenaustauschs und derproblemlosen automatisierten Verarbeitung. Daher sind Programme, die X<strong>HTML</strong> verarbeiten, nicht mehr derartigtolerant.Neuere X<strong>HTML</strong>-Dokumenttypen enthalten keine Layout-Auszeichnungen mehr. X<strong>HTML</strong> Transitional 1.0 ist derletzte Dokumenttyp, welcher noch Layout-Elemente enthält, wie etwa oder . In modernerenDokumenttypen wie X<strong>HTML</strong> Strict 1.0 sind zwar noch wenige Layout-Elemente enthalten, allerdings nur noch ausGründen der Rückwärtskompatibilität zu den Transitional-Dokumenttypen. In X<strong>HTML</strong> Basic oder X<strong>HTML</strong> 2schließlich sind Layout-Elemente gar nicht mehr enthalten. Für die visuelle Gestaltung von X<strong>HTML</strong>-Elementen soll


Extensible Hypertext Markup Language 22nur noch auf externe <strong>CSS</strong>-Regeln verwiesen werden.X<strong>HTML</strong>-ModularisierungUm die Entwicklung von Sprachen zu ermöglichen, die auf X<strong>HTML</strong> basieren, wurden verwandte undzusammengehörige Elemente in X<strong>HTML</strong> 1.1 in so genannten Modulen zusammengefasst. Basierend auf diesen inDTDs und zukünftig in XML-Schema abgefassten Modulen kann man eigene X<strong>HTML</strong>-Dokumenttypen nach demBaukastenprinzip zusammenstellen und mit anderen XML-basierten Sprachen mischen. Beispielanwendungen derX<strong>HTML</strong>-Modularisierung sind X<strong>HTML</strong> 1.1, X<strong>HTML</strong> Basic sowie die Mischungen mit SMIL (Multimedia), SVG(Vektorgrafik) und MathML (mathematischer Formelsatz). Zum Einbinden allgemeiner Objekte wie zum BeispielMultimedia-Plug-ins gibt es das Objektmodul.VersionenübersichtX<strong>HTML</strong> fasst als Begriff die verschiedenen X<strong>HTML</strong>-Versionen zusammen:• X<strong>HTML</strong> 1.0 stellt die XML-basierte Neuformulierung von <strong>HTML</strong> 4.01 dar. X<strong>HTML</strong> 1.0 erhält die bekanntendrei Dokumenttypen Strict, Transitional und Frameset. X<strong>HTML</strong> 1.0 wurde so angelegt, dass eineRückwärtskompatibilität mit den verbreiteten <strong>HTML</strong>-Browsern möglich ist. Gleichzeitig kann es von neuerenBrowsern gemäß den strengen Regeln verarbeitet werden.• Die aktuelle Version X<strong>HTML</strong> 1.1 trennt sich von den missbilligten Elementen und Attributen der Transitionalundder Frameset-Variante, die direkt die Präsentation des Dokuments beeinflussen. Der Sprachumfang entsprichtsomit weitestgehend X<strong>HTML</strong> 1.0 Strict, hinzu kommen Elemente für Ruby-Erläuterungen. X<strong>HTML</strong> 1.1 ist nichtmit Blick auf die Kompatibilität zu <strong>HTML</strong>-Browsern angelegt.• X<strong>HTML</strong> Basic ist für minimalistische Geräte wie Mobiltelefone und Handhelds ausgelegt, indem nur einigeSprachbestandteile (Module) von X<strong>HTML</strong> verwendet werden. X<strong>HTML</strong> Basic ist die Basis für X<strong>HTML</strong> MobileProfile (siehe WAP 2.0) und für WML 2.0.• Durch die Modularisierung entstanden weitere Misch-Versionen, wie z. B.X<strong>HTML</strong> 1.1 plus MathML plus SVG.• Die Version X<strong>HTML</strong> 2.0, deren Entwicklung zugunsten von <strong>HTML</strong>5 Ende 2009 eingestellt wurde, hätte mit demErbe aus <strong>HTML</strong> 4 gebrochen und sah grundlegende Veränderungen vor.Wichtige Neuerungen wären das vereinfachte uneingeschränkte Notieren von Hyperlinks gewesen, dasvereinfachte Einbinden anderer Medienarten (z. B. Grafiken und Videos), die erweiterten Möglichkeiten, umZugänglichkeit zu gewährleisten, und das ausgereiftere Angeben von Metadaten. Bisherige Kernfunktionen von<strong>HTML</strong> bzw. X<strong>HTML</strong> wären in X<strong>HTML</strong> 2.0 in andere XML-Sprachen ausgelagert worden, namentlich XFormsfür Formulare, XML Events zur Einbindung von Scripten und XFrames für Frames.Die wichtigsten Unterschiede zwischen <strong>HTML</strong> und X<strong>HTML</strong>


Extensible Hypertext Markup Language 23Groß-/Kleinschreibung der ElementundAttributnamenElemente ohne Inhalt, z. B. br<strong>HTML</strong>nicht relevant (z. B. , ,) (von der DTDabhängig)X<strong>HTML</strong>immer klein (nur )entweder leeres Element-Tag(z. B. ) oder mit End-Tag(z. B. )Die Variante wird aus Gründen der KompatibilitätempfohlenStart- oder End-Tag Weglassen teilweise erlaubt immer beide angebenAttributwert in Anführungszeichenangebenboolesche Attribute, z. B. checkedoptional, solange der Attributwertbestimmte Zeichen nicht enthält.immerAttributname als Attributwert angeben, z. B. Außerdem:• Das Start-Tag des Wurzel-Elements html muss immer die Namensraum-Angabe für X<strong>HTML</strong> enthalten:• In X<strong>HTML</strong> 1.1 wurde das lang-Attribut durch das xml:lang-Attribut von XML ersetzt. In X<strong>HTML</strong> 1.0 wirddie Angabe beider Attribute empfohlen, z. B. .• Die Rolle des name-Attributs bei den Elementen a, frame und map übernimmt ab X<strong>HTML</strong> 1.0 dasid-Attribut. Wenn Abwärtskompatibilität erwünscht ist, sollten sowohl das name- als auch das id-Attribut mitgleichem Attributwert notiert und X<strong>HTML</strong> 1.0 Transitional deklariert werden. In X<strong>HTML</strong> 1.1 bzw.X<strong>HTML</strong>-Modularisierung existiert kein name-Attribut mehr für diese Elemente.• Das Attribut name bei den Elementen form und img ist nur noch in X<strong>HTML</strong> 1.0 Transitional vorhanden,nicht in X<strong>HTML</strong> 1.0 Strict und X<strong>HTML</strong> 1.1. Diese Einschränkung ist vor allem beim DOM-Zugriff auf dieElemente relevant.BeispielDies ist der Quelltext eines standardkonformen <strong>HTML</strong>-Dokuments. Das Beispiel ist bewusst so kurz wie möglichgehalten und soll Unterschiede bei der erlaubten Syntax aufzeigen. Auch in <strong>HTML</strong> empfiehlt es sich, allenotwendigen Elemente vollständig zu notieren.BeispielBeispielseiteEin AbsatzNoch einAbsatzListelementListelement


Extensible Hypertext Markup Language 24Das 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 X<strong>HTML</strong> 1.1 könnte folgendermaßen aussehen:BeispielBeispielseiteEin AbsatzNoch einAbsatzListelementListelementDie XML-Deklaration ist optional, wird aber vom W3Cempfohlen, da sie XML-Parsern die Zeichenkodierung des Dokuments mitteilt. Die Zeichenkodierung UTF-8 solltein Großbuchstaben geschrieben werden. [7] Dies widerspricht auf den ersten Blick dem X<strong>HTML</strong>-Grundsatz, alleElemente und Attribute klein zu schreiben. Jedoch handelt es sich um den offiziellen Namen, vergeben von derIANA [8] , den XML-Parser nicht zwingend Case insensitive interpretieren müssen. [9] Wenn die Kodierungsangabefehlt und keine Kodierung im HTTP-Header gesendet wurde, kann der Browser gemäß dem XML-Standard dieKodierung UTF-8 oder UTF-16 verwenden.Die Angabe der XML-Deklaration führt dazu, dass der Internet Explorer 6 und Opera 7.0 bis 7.03 in den sogenannten Quirks-Modus springen, was zu Besonderheiten bei der Verarbeitung der Stylesheets und JavaScriptführt. Aus diesem Grund wird die XML-Deklaration oft weggelassen, wenn das Dokument als text/html andiesen Browser ausgeliefert wird (siehe den folgenden Abschnitt über MIME-Typen).MIME-Typen und <strong>HTML</strong>-KompatibilitätBeim Übertragen von <strong>HTML</strong>- und X<strong>HTML</strong>-Dokumenten finden bestimmte MIME-Typen Verwendung, z. B. in derContent-Type-Kopfzeile bei E-Mail und vor allem bei HTTP:• Für <strong>HTML</strong>-Dokumente ist es gemäß RFC 2854 vorgesehen, sie mit dem MIME-Typ text/html zu senden.• Ein X<strong>HTML</strong>-1.0-Dokument soll normalerweise gemäß RFC 3236 mit dem MIME-Typapplication/xhtml+xml gesendet werden. Wenn sich das Dokument an die Richtlinien derRückwärtskompatibilität hält, kann es gemäß RFC 2854 und dem X<strong>HTML</strong>-1.0-Standard als text/htmlgesendet werden. Aufgrund der mangelnden X<strong>HTML</strong>-Unterstützung der verbreiteten Software kommt derletzteren Option ein besonderer Stellenwert zu.


Extensible Hypertext Markup Language 25• Da für X<strong>HTML</strong> 1.1 keine Kompatibilität mit gewöhnlichen <strong>HTML</strong>-Browsern vorgesehen ist, sollen solcheDokumente gemäß einer W3C-Mitteilung [10] nur als application/xhtml+xml ausgeliefert werden.Dasselbe gilt für die übrigen Abkömmlinge von X<strong>HTML</strong>-Modularisierung, also etwa X<strong>HTML</strong> Basic.Vom MIME-Typ hängt ab, wie die Browser das Dokument verarbeiten. Erst wenn ein X<strong>HTML</strong>-Dokument etwa mitdem Inhaltstyp application/xhtml+xml deklariert wird, setzen X<strong>HTML</strong>-fähige Browser ihre XML-Parserein, durch welche die Vorteile des strengen X<strong>HTML</strong>-Codes, wie etwa die einfache Verarbeitbarkeit, ausgenutztwerden. Wenn dies der Fall ist, kann das Dokument nur dann dargestellt werden, wenn es sich um wohlgeformtesXML 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 diesemMIME-Typ jedoch erst seit Version 7.0 etwas anfangen: Ältere Versionen öffnen einen Download-Dialog, anstattdas Dokument darzustellen. Daher sollte text/html verwendet werden, wenn der Browser nicht ausdrücklich inder Accept-Kopfzeile der Anfrage übermittelt hat, dass er application/xhtml+xml unterstützt. Dies kannserverseitig ermittelt [12] werden, um den passenden MIME-Typ zu senden – wobei man für den Internet Explorer abVersion 7.0 eine Versionsprüfung durchführen müsste, da der IE nach wie vor */* als MIME-Typ sendet.X<strong>HTML</strong> und LayoutMit <strong>HTML</strong> 4 begann das W3C damit, diejenigen Elemente und Attribute, die direkt für die Präsentation desDokuments zuständig waren und keine ausgabe-unabhängige Strukturierung ausdrückten, schrittweise aus <strong>HTML</strong>auszuschließen. Zwar enthält X<strong>HTML</strong> 1.0 genauso wie <strong>HTML</strong> 4 eine Transitional-Variante mit diesen veraltetenSprachbestandteilen. Es hat sich jedoch im modernen Webdesign durchgesetzt, dass die Strict-Variante verwendetwird und die Dokumente konsequent mit <strong>CSS</strong> formatiert werden. Der strukturierte Inhalt und das jeweilige Layoutkönnen dadurch getrennt definiert werden. Mit X<strong>HTML</strong> 1.1 und dem geplanten X<strong>HTML</strong> 2.0 wollte das W3C dieseEntwicklung endgültig abschließen, indem nur noch ausgabe-unabhängige Textauszeichnung erlaubt und das Layoutzwangsläufig mit <strong>CSS</strong> oder ähnlichen Sprachen realisiert werden sollte.ErweiterungenErweiterungen bei <strong>HTML</strong><strong>HTML</strong>-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 nichtzweifelsfrei 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. X<strong>HTML</strong> als XML-Sprache behebt diesenMangel.<strong>HTML</strong> ist eigentlich nicht erweiterbar, übliche Browser gehen aber bei der <strong>HTML</strong>-Verarbeitung folgendermaßenvor:• Auszeichnung durch unbekannte Elemente wird ignoriert.• Bei syntaktischen Fehlern wird versucht, trotzdem einen logischen Elementenbaum zu erzeugen. Es wirdversucht, aus einer nicht-konformen Seite das Beste zu machen, d. h. eine Seite wird auf jeden Fall dargestellt.Damit ist die Verarbeitung von verschiedenen <strong>HTML</strong>-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 <strong>HTML</strong>-3.2-fähigerBrowser beispielsweise das in <strong>HTML</strong> 4.0 eingeführte acronym-Element für Abkürzungen nicht, wird es überlesenund die Abkürzung erscheint in normaler Textformatierung. Dasselbe gilt für browserspezifische Erweiterungen.Das blink-Element ist beispielsweise in keinem <strong>HTML</strong>-Standard enthalten. Einige Browser, ursprünglich nur derNetscape Navigator, stellen den Text dann blinkend dar. Andere Browser stellen den Text wiederum normal dar.


Extensible Hypertext Markup Language 26Erweiterungen bei X<strong>HTML</strong>Im Gegensatz zu <strong>HTML</strong> wurde X<strong>HTML</strong> mit Blick auf die Möglichkeit der Erweiterbarkeit geschaffen. X<strong>HTML</strong>nutzt dazu das Namensraum-Konzept von XML. Eine X<strong>HTML</strong>-Version bildet dabei einen solchen Namensraum.Andere XML-Sprachen wie MathML, SVG und RDF stellen weitere Namensräume dar. In einemX<strong>HTML</strong>-Dokument können nun Elemente aus fremden Namensräumen verwendet werden, indem Sie über dasAttribut xmlns eine entsprechende Namensraum-Angabe erhalten.Ein Beispiel für die Nutzung des Namensraum-Konzeptes zur Erweiterung von X<strong>HTML</strong> ist die Einbettung vonMathML:Dies ist noch ganz normales X<strong>HTML</strong>x1,2=-b&PlusMinus;b2-4&InvisibleTimes;a&InvisibleTimes;c2&InvisibleTimes;a


Extensible Hypertext Markup Language 27...und hier geht X<strong>HTML</strong> weiterEin MathML-fähiger Browser könnte diesen Dokumentausschnitt folgendermaßen darstellen:Dies ist noch ganz normales X<strong>HTML</strong>… und hier geht X<strong>HTML</strong> weiterErweiterungen sind also durch Bildung von neuen Namensräumen möglich, ohne dass die X<strong>HTML</strong>-Standards selbstgeändert werden müssen. Durch die Verwendung von Namensräumen ist ein Konflikt von Elementen gleichenNamens in verschiedenen Erweiterungen ausgeschlossen. Diese können immer eindeutig zugeordnet und zumBeispiel über das DOM mit der Kennung des Namensraums angesprochen werden. Die infolge derX<strong>HTML</strong>-Modularisierung entstandenen erweiterten X<strong>HTML</strong>-Versionen bauen auf diesem Konzept auf.Durch das Entstehen solcher Erweiterungen tritt eine ähnliche Situation wie bei <strong>HTML</strong>-Erweiterungen ein, dennnicht alle Browser unterstützen die eingebundenen Erweiterungen wie zum Beispiel SVG. Der Browser hat folgendeMöglichkeiten, mit Elementen aus unbekannten Namensräumen umzugehen:• Er kann die Auszeichnung durch solche Elemente ignorieren und die Textinhalte einfach darstellen (wie bei<strong>HTML</strong>).• 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/WeblinksX<strong>HTML</strong> betreffende SpezifikationenX<strong>HTML</strong> selbst• <strong>HTML</strong> 4.01 (http:// www. w3. org/ TR/ html401/ ) ( deutsche Übersetzung (http:// www. edition-w3c. de/ TR/html4))• X<strong>HTML</strong> 1.0 (http:// www. w3. org/ TR/ xhtml1/ ) ( deutsche Übersetzung (http:// www. edition-w3c. de/ TR/xhtml1))• Modularization of X<strong>HTML</strong> (http:// www. w3. org/ TR/ xhtml-modularization/ ) ( deutsche Übersetzung (http://www. edition-w3c. de/ TR/ xhtml-modularization))Abkömmlinge der X<strong>HTML</strong>-Modularisierung


Extensible Hypertext Markup Language 28• X<strong>HTML</strong> 1.1 (http:// www. w3. org/ TR/ xhtml11/ ) ( deutsche Übersetzung (http:// www. edition-w3c. de/ TR/xhtml11))• X<strong>HTML</strong> Basic (http:// www. w3. org/ TR/ xhtml-basic/ ) ( deutsche Übersetzung (http:// www.schumacher-netz. de/ TR/ 2000/ REC-xhtml-basic-20001219-de. html))• An X<strong>HTML</strong> + MathML + SVG Profile (http:// www. w3. org/ TR/ X<strong>HTML</strong>plusMathMLplusSVG/ )• X<strong>HTML</strong> + RDFa (http:// www. w3. org/ TR/ rdfa-syntax/ )• X<strong>HTML</strong>+SMIL Profile (http:// www. w3. org/ TR/ X<strong>HTML</strong>plusSMIL/ )• X<strong>HTML</strong> 2.0 (http:// www. w3. org/ TR/ xhtml2/ )Grundlagen für X<strong>HTML</strong>• 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))X<strong>HTML</strong>-Einführungen und -Werkzeuge• Selfhtml• Einführung in X<strong>HTML</strong>, <strong>CSS</strong> und Webdesign (http:// jendryschik. de/ wsdev/ einfuehrung/ )• Fachartikel im T3N Magazin (http:// www. yeebase. com/ fileadmin/ t3n/ archiv/ 06-01/ t3n_06-01_xhtml2. pdf)X<strong>HTML</strong>2: Vom XML-Hype zur Anwendung (PDF-Datei; 252 kB)• X<strong>HTML</strong>-Überblick von Jens Meiert (http:// meiert. com/ de/ releases/ 20040212/ )• <strong>HTML</strong> and X<strong>HTML</strong> Frequently Answered Questions (http:// www. w3. org/ MarkUp/ 2004/ xhtml-faq. html)• X<strong>HTML</strong> 1.0 Schema Validator (http:// schneegans. de/ sv/ ) zur Überprüfung der Syntax einesX<strong>HTML</strong>-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 29WYSIWYGWYSIWYG [ˈwɪziwɪg] die Abkürzung, oder genauer das Akronym, fürden Grundgedanken „What You See Is What You Get“ (englisch für„Was du siehst, ist [das,] was du bekommst.“) – auch alsEchtbilddarstellung bekannt. [1] Bei echtem WYSIWYG wird einDokument 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 imZusammenhang mit Computer-Drucksatz-Systemen(Desktoppublishing) und Textverarbeitungsprogrammen verwendet.Geschichte und weitere EinzelheitenDas erste in der Praxis verwendbare und auf dem Markt erhältlicheGerät war der Satz-Gestaltungs-Terminal (SGT), eine Entwicklung derösterreichischen Firma Grafotron unter ihrem Chefentwickler HannesSchöllauf. Der SGT konnte eine direkt auf einem Bildschirm grafischrichtig erstellte Seite in Satzkommandos einer Linotype CRTronicoderLinotronic-Fotosetzmaschine umwandeln. Damit war man in derLage, ohne Satzkommandos hergestellte Seiten zu belichten. Der SGThat damit das spätere Desktop-Publishing vorweggenommen.Satz-Gestaltungs-TerminalIn den 1990ern wurde der Begriff WYSIWYG durch zahlreicheProgramme aufgeweicht, bei denen das ausgegebene Dokument nurnoch so ähnlich aussieht wie während der Bearbeitung. Insbesonderebei <strong>HTML</strong>-Editoren ist die Bezeichnung streng genommen nichtkorrekt, da die Ausgabe einer <strong>HTML</strong>-Seite vom verwendeten Browserund dessen Voreinstellungen sowie eventuell den installiertenSystemschriften abhängt und deshalb von Betrachter zu Betrachterstark variieren kann.„Echtes“ WYSIWYG setzt auf modernen Rechnern die Einrichtungeines PostScript-verträglichen Treibers und die Verwendung vonEin WYSIWYG-EditorPostScript- oder wenigstens TrueType-Schriften voraus. In der Zeit derHausrechner (Homecomputer) wurde eine ähnliche Gestaltungstreue erreicht, indem die Bildschirmanzeige in derursprünglichen Auflösung an den Drucker gesendet wurde, wie es das Beispiel des Sinclair-Druckersveranschaulicht.WYSIWYG wird neben den von Programmierern genutzten Editoren auch bei Redaktionssystemen undContent-Management-Systemen angewendet, um Redakteuren das Editieren von Webseiten auch ohne<strong>HTML</strong>-Kenntnisse zu ermöglichen.Oft gibt es aber Umsetzungsschwierigkeiten zwischen geschriebenem Text und Darstellung, daher wird alternativeine vereinfachte Auszeichnungssprache eingesetzt.


WYSIWYG 30AnmerkungenDer Begriff entstand während der späten 1970er am Xerox Palo Alto Research Center, als der ersteWYSIWYG-Editor, Bravo, auf dem Alto von Charles Simonyi entwickelt wurde. Der Bildschirm des Alto war in derLage, eine ganze Seite Text darzustellen und diese auf den damals ersten Laserdruckern auszudrucken. Für dieDarstellung von Text auf dem Bildschirm wurden 72-PPI-Zeichensätze verwendet. Der Druck erfolgte jedoch mit300 DPI. Dadurch kam es zu Abweichungen zwischen der Darstellung auf dem Bildschirm und dem Ausdruck – einProblem, das bis heute besteht. Die Forscher am Xerox Palo Alto Research Center benutzten mit WYSIWYG eineAbkürzung für ein damals populäres Schlagwort, das von Geraldine, einer Figur aus der The Flip Wilson Show, insLeben gerufen wurde: „What you see is what you get!“.Das Apple-Macintosh-System war damals so konzipiert, dass die Auflösung den Bildschirmen und Matrixdruckernvon Apple entsprach. Bildschirme verfügten über eine Auflösung von 72 PPI. Die Drucker arbeiteten mit einerAuflösung von 144 DPI. So konnte die Ausgabe von Programmen wie MacWrite und MacPaint durch Verdoppelunggut an die Auflösung der Drucker angepasst werden. WYSIWYG war somit einfach möglich. Mit der Einführungder Laserdrucker verschwand auch das echte WYSIWYG, weil die Auflösung nicht mehr dem doppelten Wert derBildschirmauflö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, wiespäter einmal ihre Bühne aussehen wird. Viele Lichtpulte (Mischpulte die man zur Lichtsteuerung nutzt) arbeiten aufsekundärer Ebene mit WYSIWYG, d. h. der Beleuchtungstechniker sieht auf dem Monitor, was seine Lampen beimnächsten Knopfdruck tun werden.Bekannte WYSIWYG-Editoren für Internetseiten sind z. B. Dreamweaver, GoLive, Microsoft Expression Web,NetObjects Fusion, Quanta Plus, <strong>HTML</strong>Area, KompoZer (ehemals Nvu), TinyMCE und CKeditor. Siehe hierzuauch <strong>HTML</strong>-Editor.Spezielle Programme zur Darstellung von Postscript und PDF am Bildschirm sind Display PostScript und Quartz.Ähnliche AkronymeWYSIWYMWhat You See Is What You Mean – („Was du siehst, ist, was du meinst“) bezieht sich auf Textverarbeitungenbei denen der Benutzer primär nur den Zweck einer Formatierung angibt (z. B. Überschrift) und nicht imDetail verwendete Schriften etc. festlegt. Die endgültige Formatierung wird dann wie beiWYSIWYAF-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 seinerFormatierung bezwecken wollte. Ein Beispiel für eine solche Textverarbeitung ist LyX.WYCIWYGWhat You Cache Is What You Get – („Was du zwischenspeicherst, ist, was du bekommst“) – What YouCreate Is What You Get oder What You Click Is What You Get („Was du erstellst/anklickst, ist, was dubekommst“)WYSIWYAFWhat You See Is What You Asked For – („Was du siehst, ist, worum du gebeten hast“) bezieht sich aufProgramme bei denen die Definition des typographischen Satzes von Hand mit Hilfe einer Makrospracheerfolgt. Dies ist zum Beispiel bei LaTeX oder Troff der Fall. Das System zeigt an, was der Benutzerspezifiziert – im Wesentlichen auch eine Aussage für: „Wer Müll eingibt erhält Müll zurück“ (garbage in,garbage out).WYSIWYS


WYSIWYG 31What You See Is What You Sign – („Was du siehst, ist, was du unterzeichnest“) Wird im Zusammenhang mitTrusted Computing verwendet. Es bedeutet, dass man nur dann eine Software verwenden kann, wenn mandafür einen legalen Vertrag hat.WYSIAYGWhat You See Is All You Get – („Was du siehst, ist alles, was du bekommst“) unterstreicht dieEinschränkungen von WYSIWYG. Es betrifft vor allem fortgeschrittene Benutzer, die an die Grenzen solcherSysteme stoßen. Früher teilweise im Bereich nichtpostscriptfähiger Layoutsysteme bei Verwendung vonBitmap-Schriften (siehe Desktoppublishing) verwendet.WYSIWYNWhat You See Is What You Need – („Was du siehst, ist, was du brauchst“) bezieht sich auf Programme, diesich nicht durch die Zusammensetzung von Modulen definieren, sondern durch ein tiefgreifendesUser/Rechtemanagement nur die Teile der Software sichtbar machen, die der User braucht.WYSIWYPWhat You See Is What You Print – („Was du siehst, ist, was du druckst“) nennt sich ein Verfahren in derheutigen Druckvorstufe, um etwaige Fehler oder Abweichungen beim Rendern der PDF-Druckvorlagen zuvermeiden.Einzelnachweise[1] Neuer Wikipedia-Editor für alle (http:/ / www. heise. de/ newsticker/ meldung/ Neuer-Wikipedia-Editor-fuer-alle-1925045. html) – Artikelbei Heise online, vom (Abgerufen am: )WYSIWYMWYSIWYM ist die Abkürzung für das Prinzip „What You See Is What You Mean“ (engl. für „Was du siehst, ist, wasdu meinst“). Seltener ist die Bezeichnung WYGIWYM „What You Get Is What You Mean“ („Was du bekommst, ist[das,] was du meinst“).AllgemeinWYSIWYM 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 WhatYou Get“) die endgültige Ausgabe des Dokuments, z. B. in Form eines PDFs oder DVI.Diese Art von Formatierung wird dann angewendet, wenn man die Details der Formatierung einem vorgefertigtenStylesheet überlassen möchte. Dies macht die Formatierung des Gesamtdokuments wesentlich konsequenter undansprechender. Weiterhin wird der Benutzer von Formatierungsaufgaben und anderen klassischen Problemen dermeisten 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.VorteileWYSIWYM-Bearbeitung wird bevorzugt, wenn viele oder komplexe Dokumente in ihren Einzelbestandteilenbearbeitet werden sollen. Durch diese Trennung kann in den Bereichen Daten, Logik und Layout arbeitsteiligvorgegangen werden. Beispielsweise können die inhaltlichen Daten vom Autor in XML strukturiert werden,während eine andere Person in XSL/XSL-FO und <strong>CSS</strong> mit der Anordnung und Formatierung des Dokuments befasstist. 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 32XSL-Stylesheet kann etwa auf verschiedene XML-Dokumente angewendet werden, während ein XML-Dokumentohne inhaltliche Veränderung mit verschiedenen Stylesheets für unterschiedliche Ausgabemedien formatiert werdenkann. Dies ist ein klarer Vorteil gegenüber WYSIWYG-Editoren, bei denen Daten, Logik und Layout untrennbarmiteinander verbunden sind.NachteileNachteilig an diesem Prinzip ist, dass der Benutzer zumeist gezwungen ist, vorausschauend zu arbeiten, und daherdas Programm besser beherrschen muss. Ein Vorgehen nach der Versuch-und-Irrtum-Methode ist so gut wieausgeschlossen. Systeme nach der WYSIWYM-Methode sind außerdem häufig ungeeignet, wenn sehr vieleungewöhnliche, vom Benutzer selbst definierte Formatierungen verwendet werden sollen. In der Regel ist dann derZeitaufwand für die nötigen Einstellungen beim alternativen WYSIWYG-System geringer.AnwendungenEin Programm, welches auf dem Prinzip WYSIWYM aufbaut, ist das LaTeX-Frontend LyX. Ein anderes Beispiel istetwa das DocBook-Projekt, wo die Inhalte in XML strukturiert werden und die Formatierung über XSL(T) realisiertwird. Auch Auszeichnungssprachen (wie etwa (X)<strong>HTML</strong> 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 injüngster Zeit versucht, die Vorteile der beiden Systeme zu vereinigen und beide Sichtweisen anzubieten. DieseEntwicklung findet vor allem im Bereich der XML- und XSL-Editoren statt, wo neben der klassischenQuelltext-Bearbeitung auch das Editieren in formatierter Ansicht möglich ist. (z.B. Altova XMLspy, oXygen oderdas VEX-Plugin für Eclipse)MarkdownMarkdown 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. AlsAuszeichnungselemente wurden daher vor allem Auszeichnungsarten verwendet, die in Plaintext und E-Mails üblichsind. 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 X<strong>HTML</strong> um. DieReferenzimplementierung in Perl steht unter einer BSD-artigen Lizenz. Weiter sind inzwischen Implementierungenin 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.AuszeichnungsbeispieleFür die Auszeichnung von Text verwendet Markdown vor allem Satzzeichen und gestattet in einigen Fällen mehreregleichwertige Methoden. Zeichen, die für gewöhnlich als Formatbefehle verstanden werden, können mit einemumgekehrten Schrägstrich (Backslash) maskiert (übergangen) werden. So wird beispielsweise ein Sternsymbol(„Asterisk“, „*“) am Zeilenbeginn als Aufzählungszeichen interpretiert; will man wirklich ein Sternchen, leitet manes mit einem Backslash ein: „\*“.Autoren können bei Bedarf für komplexere Auszeichnungen X<strong>HTML</strong>-Blockelemente verwenden. Diese Elementewerden von der Konvertierungssoftware ohne Änderung in das Zieldokument übernommen. Dadurch ist es möglich,Bereiche des Dokuments in gewöhnlichem X<strong>HTML</strong> zu formatieren.


Markdown 33TextgestaltungAusgangsformNormaler Text wird so dargestellt wie eingegeben.Eine Leerzeile erzeugt einen Absatz.Zwei oder mehr Leerzeichen am Ende der Zeileerzeugen einen Zeilenumbruch.*Kursiv*, **Fett** und ***Fett kursiv*** bzw._Kursiv_, __Fett__ und ___Fett kursiv___Markiert Text als `Quelltext`* Ein Punkt in einer ungeordneten Liste* Ein weiterer Punkt in einer ungeordneten Liste* Ein Unterpunkt, um vier Leerzeichen eingerückt* Statt * funktionieren auch + oder -8. Ein Punkt in einer geordneten Liste1. Ein weiterer Punkt, wobei keine Reihenfolge zubeachten ist, sondern nur beliebig und auch doppelteZiffern1. weiterer PunktZielformNormaler Text wird so dargestellt wie eingegeben.Eine Leerzeile erzeugt einen Absatz.Zwei oder mehr Leerzeichen am Ende der Zeileerzeugen einen Zeilenumbruch.Kursiv, Fett und Fett kursiv bzw.Kursiv, Fett und Fett kursivMarkiert Text als Quelltext• Ein Punkt in einer ungeordneten Liste• Ein weiterer Punkt in einer ungeordneten Liste• Ein Unterpunkt, um vier Leerzeichen eingerückt• Statt * funktionieren auch + oder -1. Ein Punkt in einer geordneten Liste2. Ein weiterer Punkt, wobei keine Reihenfolge zu beachtenist, sondern nur beliebig und auch doppelte Ziffern3. weiterer Punkt<strong>HTML</strong>-Überschriften werden erzeugt, indem man die Zeile mit Doppelkreuzen beginnt – ihre Anzahl gibt die Ebene der gewünschten Überschriftan.# Überschrift in Ebene 1#### Überschrift in Ebene 4Überschrift in Ebene 1Überschrift in Ebene 4Für die ersten zwei Ebenen ist auch eine alternative Schreibweise möglich:Überschrift in Ebene 1======================Überschrift in Ebene 2----------------------Überschrift in Ebene 1Überschrift in Ebene 2> Dieses Zitat wird in ein <strong>HTML</strong>-Blockquote-Elementgepackt.[Beschriftung des Hyperlinks](http://de.wikipedia.org/"Titel, der beim Überfahren mit der Maus angezeigtwird")![Alternativtext](Bild-URL "Bildtitel hier")Dieses Zitat wird in ein<strong>HTML</strong>-Blockquote-Element gepackt.Beschriftung des Hyperlinks [5]Bindet ein Bild von der Quelle Bild-URL ein.WeiterentwicklungenEs gibt mehrere Erweiterungen und Weiterentwicklungen von Markdown, die die eingeschränkten Möglichkeitenerweitern.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-<strong>HTML</strong>.Markdown Extrabietet vor allem Inline-<strong>HTML</strong> und wiederum Markdown innerhalb von <strong>HTML</strong> Blöcken, Tabellen,Definitionslisten, Abkürzungen, Fußnoten, Sprungmarken für Überschriften.


Markdown 34Pandoc Markdownermöglicht das Überführen von Markdown in einige andere Formate, inklusive LaTeX und PDF. Außerdemerweitert es Markdown um Syntax für einfache und gerasterte Tabellen, Definitionslisten, automatischeReferenzen 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, welcheMarkdown ähnelt und oft irrtümlich mit Markdown assoziiert wird. Die Syntax ist aber die von Textile.GitHub Flavored Markdownermöglicht das Rendern zu <strong>HTML</strong> direkt auf dem Webdienst GitHub. Es erweitert die Syntax umCode-Blöcke und Referenzen auf Benutzerprofile, Changesets und Tickets.Stack Overflow Flavored Markdownwird auf Stack Overflow verwendet und erweitert die Syntax um Tags, Spoilers und Syntax Highlighting fürCode. 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. Juni2013 (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 am16. 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ürEntwickler• Notepag.es (http:// notepag. es/ ) - Online-Editor mit Live-Vorschau


LyX 35LyXLyXEntwicklerLorem Ipsum mit LyX 1.6.5BasisdatenLyX-TeamAktuelle Version 2.0.6 (9. Mai 2013)BetriebssystemLinux, Mac OS X, Windows, UnixProgrammiersprache C++KategorieLizenzDeutschsprachigDTPGPLJa (mehrsprachig)www.lyx.org [1]LyX ist ein grafisches Textverarbeitungssystem,das zur Ausgabe das Textsatzsystem LaTeX nutzt.Es kombiniert eine anschauliche grafischeBenutzeroberfläche mit typografisch hochwertigerAusgabe.Besonderheiten von LyXDie Benutzeroberfläche sieht auf den ersten Blickähnlich aus wie bei anderen grafischenTextverarbeitungssystemen wie OpenOffice.orgWriter oder Microsoft Word. Das Konzeptunterscheidet sich jedoch erheblich.Mit LyX gesetzter Blindtext


LyX 36Trennung von Texterfassung und SatzBei LyX erfolgt die Formatierung des Dokuments erst bei der Ausgabe. Zunächst wird der Text ohne Formatierungerfasst. Dabei teilt der Benutzer dem System mit, welche Funktion wie Überschrift, Titel, oder Normaler Text er imfertig formatierten Dokument einnehmen soll. Zur Ausgabe wird die Makrosprache LaTeX des TextsatzprogrammsTeX eingesetzt. Deshalb gewährleistet LyX qualitativ höchstwertigen Satz. Zusätzlich besondere Stärken liegen inder Darstellung mathematischer Formeln und der Verwaltung von Fußnoten und Stichwortverzeichnissen.Darstellung beim EditierenBeim Editieren des Dokuments ist die Ansicht optimiert für die Darstellung am Bildschirm. Ähnlich wie bei <strong>HTML</strong>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 gedruckteErgebnis nimmt.Eingabe über Tastatur oder über MausFü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 undautomatisch in eine passende grafische Darstellung umgesetzt.Nicht erkannte Befehle werden bei der Ausgabe unverändert an LaTeX weitergegeben. Auf diese Weise ist esmöglich, sämtliche Möglichkeiten von LaTeX zu nutzen. Im Editierfenster werden diese Befehle in roter Schriftangezeigt. Diese Anzeige läuft dem Projektziel entgegen, im Editierfenster keine Befehle anzuzeigen. Darausentwickelte sich projekt-intern, halb scherzhaft, die Bezeichnung Evil Red Text, böser roter Text, abgekürzt ERT. [2]EntwicklungLyX wurde 1995 vom damaligen Informatikstudenten Matthias Ettrich im Rahmen seiner Studienarbeit mit demGUI-Toolkit Motif entwickelt. Als er nach Beendigung der Studienarbeit im Internet nach Mitstreitern suchte, umLyX gemeinsam weiterzuentwickeln, musste er feststellen, dass nur wenige Erfahrungen oder Zugang zu Motifhatten. Daher suchte er nach einem neuen, freien GUI-Toolkit. Die Wahl fiel schließlich auf das Toolkit XForms. Inspäteren Jahren wurde das GUI Independence Framework eingeführt, um zu erreichen, dass neben XForms auchnoch weitere GUI-Toolkits (Qt, Gtk) verwendet werden können. In aktuellen Versionen wird nur noch dasGUI-Toolkit Qt unterstützt.Literatur• David Kastrup: „LaTeX und WYSIWYG? preview-latex unter Emacs und andere Ansätze“. In: Die TeXnischeKomödie. Nr. 4/2002 [3] (PDF; 2,3 MB). S. 10–26, 15ff. (englisch: Revisiting WYSIWYG paradigms for authoringLaTeX [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 37Einzelnachweise[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. deZeichenkodierungEine Zeichenkodierung (englisch Character encoding, kurz Encoding) erlaubt die eindeutige Zuordnung vonSchriftzeichen (Buchstaben oder Ziffern) und Symbolen innerhalb eines Zeichensatzes. In der ElektronischenDatenverarbeitung werden Zeichen über einen Zahlenwert kodiert und eignen sich damit für Übertragungen oderSpeicherungen. Der deutsche Umlaut Ü wird zum Beispiel im ISO-8859-1-Zeichensatz mit dem Dezimalwert 220kodiert. Im EBCDIC-Zeichensatz kodiert der Wert 220 die geschweifte Klammer }. Zur richtigen Darstellung einesZeichens 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 Codesdie Gefahr von Verwechslungen steigt.GeschichteDie Anfänge dieser Technik liegen in der Antike. Zum Beispiel informierte Agamemnon seine Truppen von einemSchiff aus mit dem Licht eines Feuers darüber, dass er die Invasion Trojas starten wollte. Bekannt sind fernerRauchzeichen 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. SirWalter Raleigh erfand für die Verständigung seines Geschwaders auf der Südamerikafahrt 1617 eine Art Vorläuferder Flaggencodierung.1648 schließlich war es Englands späterer König James II., der das erste Signalflaggensystem in der britischenMarine einführte.Nach der Erfindung der Telegrafie benötigte man auch hier eine Zeichenkodierung. Aus den ursprünglichen Ideendes 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 vonJean-Maurice-Émile Baudot 1870 entwickelten 5er-Code-Alphabet für seinen Synchrontelegraphen, demBaudot-Code, dessen Prinzip noch heute verwendet wird.


Zeichenkodierung 38Computer und DatenaustauschMit der Entwicklung des Computers begann die Umsetzung der im Grunde schon seit dem Baudot-Codeverwendeten binären Zeichenkodierung in Bit-Folgen, bzw. intern meist in verschiedene elektrische Spannungswerteals Unterscheidungskriterium, ganz analog zu der bisher zur Unterscheidung der Signalwerte genutzten Tonhöheoder 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 (AmericanStandards Association) definiert, um eine Vereinheitlichung der Zeichenkodierung zu erreichen. Obwohl IBM an derDefinition mitgearbeitet hatte, führte man 1964 einen eigenen 8-Bit-Zeichencode EBCDIC ein. Beide finden bisheute in der Computertechnik Verwendung.Da für viele Sprachen jeweils unterschiedliche diakritische Zeichen benötigt werden, mit denen Buchstaben deslateinischen Alphabets modifiziert werden, gibt es für viele Sprachgruppen jeweils eigene Zeichensätze. Die ISO hatmit der Normenreihe ISO 8859 Zeichenkodierungen für alle europäischen Sprachen (einschließlich Türkisch) undArabisch, Hebräisch sowie Thai standardisiert.Das Unicode Consortium schließlich veröffentlichte 1991 eine erste Fassung des gleichnamigen Standards, der essich zum Ziel gesetzt hat, alle Zeichen aller Sprachen in Codeform zu definieren. Unicode ist gleichzeitig dieinternationale Norm ISO 10646.Bevor ein Text elektronisch verarbeitet wird, muss der verwendete Zeichensatz und die Zeichenkodierung festgelegtwerden. Dazu dienen beispielsweise folgende Angaben:• Definition des Zeichensatzes in einer <strong>HTML</strong>-Seite• Definition des Zeichensatzes in den Kopfzeilen (Headern) einer E-Mail oder eines HTTP-PaketsContent-Type: text/plain; charset="ISO-8859-1"Grafische DarstellungDas Vorhandensein von Software für Zeichenkodierung und -dekodierung garantiert noch nicht die richtigeDarstellung auf dem Computerbildschirm. Zu diesem Zweck muss auch eine Schriftart verfügbar sein, die dieZeichen des Zeichensatzes enthält.Differenzierung der Begriffe durch Einführung des UnicodesMit Einführung des Unicodes und der damit verbundenen Notwendigkeit, Zeichen durch mehr als ein Bytedarzustellen, wurden genauere Begriffe notwendig. Derzeit werden im Deutschen die Begriffe Zeichensatz, Code,Kodierung, encoding manchmal synonym, manchmal differenzierend verwendet. Im Englischen existieren bereitsklare 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 denSchriftzeichen in S und einer Codemenge M (endliche Teilmenge der natürlichen Zahlen). Die Menge M heißt auchcodespace, 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 zugeordnetesZeichen aus S bezeichnet. Texte werden durch die Codepunkte ihrer Schriftzeichen dargestellt, also als Sequenz vonZahlen aus M.Als nächstes muss man festlegen, wie die Codepunkte im Rechner dargestellt werden. Mit encoding form (characterencoding form, cef) oder encoding scheme (character encoding scheme, ces) (keine gute Übersetzung ins Deutsche


Zeichenkodierung 39bekannt), 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 einfachenFällen gibt es nicht mehr als 256 = 2 8 Codepunkte, so dass man jeden Codepunkt in einem Byte speichern kann, wiees 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 verwendetman z. B. UTF-16, wo die Codepunkte 0 bis 2 16 -1 in zwei und alle größeren in vier Byte abgespeichert werden. Manunterscheidet hier UTF-16BE (big-endian) und UTF-16LE (little-endian), die sich in der Reihenfolge der Bytes ineiner code unit unterscheiden.Beim UTF-32 verwendet man immer vier Byte für jeden Codepunkt, und UTF-8 verwendet je nach Codepunkt einoder mehrere Bytes: die Codepunkte 0 bis 127 werden in einem einzigen Byte gespeichert, so dass diese Darstellungbei 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 undPunycode. 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 (byte ordermark) vorangestellt (0xEF,0xBB,0xBF bei UTF-8; 0xFF, 0xFE bei UTF-16LE; 0xFE, 0xFF bei UTF-16BE).Ein Glyph ist eine grafische Darstellung eines einzelnen Schriftzeichens.Beispiel: Das chinesische Schriftzeichen für Berg, shan, 山 hat im Unicode den Codepunkt U+5C71 = 山 undbenö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 dreiUnicode-encodings UTF-8, UTF-16BE oder UTF-16LE gespeichert sind, was den Umgang mit Texten wesentlicherleichtert.Literatur• Jacques André: Caractères numériques: introduction. In: Cahiers GUTenberg. Bd. 26, Mai 1997, ISSN1257-2217 [1] , S. 5–44, (in französischer Sprache).• Yannis Haralambous: Fonts & 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, ISBN3-930023-04-0 (in englischer Sprache).


Zeichenkodierung 40Weblinks• Joel Spolsky: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicodeand 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. phpZeichensatzUnter 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, Piktogrammeverschiedener Art oder Steuerzeichen (unsichtbare Zeichen). Ein Zeichensatz ist weniger als ein Zeichencode, derzusätzlich noch eine definierte Nummerierung der Zeichen des Zeichensatzes enthalten muss. Insoweit sind dieunten aufgeführten Beispiele wie ASCII streng genommen schon ein Zeichencode. In der Informationstechnikbenötigt man neben dem definierten Zeichensatz auch die Nummerierung der Schriftzeichen und damit einenZeichencode. In Zeiten des Internet müssen die verwendeten Zeichencodes international genormt sein, umreibungslosen 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 Schriftartbzw. Satz (engl. Font), die Regeln der Zeichensetzung Schriftsatz.Zeichensätze in wissenschaftlichen FormalismenTypische Zeichensätze sind etwa:• Einheitenzeichen der Einheiten von physikalischen Größen• Formelzeichen und mathematische SymboleZeichensätze für ComputersystemeTraditionell in der Informatik bekannte Zeichenkodierungen sind der ASCII- und der EBCDIC-Code. Letzterer hatallerdings stark an Bedeutung verloren. Zunehmend in den Vordergrund getreten sind Zeichensätze mit internationalnotwendigen Zeichen, die über das Englische hinausgehen, z. B. diesbezügliche Zeichensätze gemäß ANSI undinsbesondere der international anerkannte Standard Unicode.


Zeichensatz 41Name Einführung Bit Codepoints darstellbare Zeichen Normen erster EinsatzASCII 1963 7 128 95 ANSI X3.4-1968 Fernschreiber Teletype ASR-33EBCDIC 1964 8 256 93 bis 192 IBM-GroßrechnerUnicode 1991 21 1.114.112 110.182 (Unicode 6.2) ISO 10646 Xerox, AppleEin Teil der Zeichen eines Zeichensatzes sind die darstellbaren Zeichen. Ihre Anzahl ist geringer als die Zahl derinsgesamt im Zeichensatz vorgesehenen Zeichen, da ein Teil des Zeichenvorrates für andere Zwecke, zum Beispielals nicht-druckbare Steuerzeichen verwendet wird.Den Teil der Computerhardware, der die Zeichen auf einem Bildschirm oder auch einem Plotter sichtbar werdenlä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 Sprachensowie 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• Windows Glyph List 4Nationale Varianten• ARMSCII – Armenisch• Big5 – Zeichensatz für traditionelle chinesische Schriftzeichen (Taiwan, 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-R – Russisch• KOI8-U – Ukrainisch• Shift-JIS, auch SJIS – Japanisch, entworfen von Microsoft• TIS-620 – Thailändisch, ähnlich ISO 8859-11 (1990)• TSCII – Tamil• VISCII – VietnamesischSiehe auch: Normungsorganisation und Mojibake


Zeichensatz 42Literatur• 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 ViewCA, 2011, ISBN 978-1-936213-01-6• Richard Gillam: Unicode Demystified, a practical programmer’s guide to the encoding standard. AddisonWesley, Boston MA 2003, ISBN 0-201-70052-2Weblinks• schoenitzer.de [2] - Grundwissen und Umgang mit Encodings• Joel Spolsky: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicodeand Character Sets (No Excuses!) [2] 8. Oktober 2003Quellennachweise[1] http:/ / www. unicode. org/ versions/ Unicode6. 0. 0/[2] http:/ / www. schoenitzer. de/ encoding. htmlUnicodeUnicode (Aussprachen: am. Englisch [ˈjuːnikoʊd], brit. Englisch[ˈjuːnikəʊd], deutsch [ˈjuːnikoːt]) ist ein internationaler Standard, indem langfristig für jedes sinntragende Schriftzeichen oder Textelementaller bekannten Schriftkulturen und Zeichensysteme ein digitaler Codefestgelegt wird. Ziel ist es, die Verwendung unterschiedlicher undinkompatibler Kodierungen in verschiedenen Ländern oderKulturkreisen zu beseitigen. Unicode wird ständig um Zeichen weitererSchriftsysteme ergänzt.ISO 10646 ist die von ISO verwendete, praktisch bedeutungsgleicheBezeichnung des Unicode-Zeichensatzes; er wird dort als UniversalCharacter Set (UCS) bezeichnet.Logo von UnicodeGeschichteHerkömmliche Computer-Zeichensätze umfassen nur einen begrenzten Vorrat an Zeichen, bei westlichenZeichenkodierungen liegt diese Grenze meistens bei 128 (7 Bit) Codepositionen – wie bei dem sehr bekanntenASCII-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-BitISO-Zeichensätzen als Schrift- und Sonderzeichen darstellbar. Diese Zeichenkodierungen erlauben die gleichzeitigeDarstellung nur weniger Sprachen im selben Text, wenn man sich nicht damit behilft, in einem Text verschiedeneSchriften mit unterschiedlichen Zeichensätzen zu verwenden. Das behinderte den internationalen Datenaustausch inden 1980er und 1990er Jahren erheblich.


Unicode 43ISO 2022 [1] war ein erster Versuch, mehrere Sprachen mit nur einer Zeichenkodierung darstellen zu können. DieKodierung benutzt Escapesequenzen, um zwischen verschiedenen Zeichensätzen (z. B. zwischen Latin-1 undLatin-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. Dieser16-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.g. in the union of allnewspapers and magazines printed in the world in 1988), whose number is undoubtedly far below 2 14 =16,384. Beyond those modern-use characters, all others may be defined to be obsolete or rare, these arebetter candidates for private-use registration than for congesting the public list of generally-usefulUnicodes.”„Unicode stellt einen höheren Anspruch darauf, die Verwendbarkeit für die Zukunft sicherzustellen, alsvergangene Altertümlichkeiten zu erhalten. Unicode zielt in erster Linie auf alle Zeichen, die inmodernen Texten veröffentlicht werden (etwa in allen Zeitungen und Zeitschriften der Welt des Jahres1988), deren Anzahl zweifelsfrei weit unter 2 14 = 16.384 liegt. Weitere Zeichen, die über diese heutigenZeichen hinausgehen, können als veraltet oder selten erachtet werden, diese sollten besser über einenprivaten 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-Standardsveröffentlicht, die damals nur die europäischen, nahöstlichen und indischen Schriften kodierte. [5] Erst acht Monatespäter, nachdem die Han-Vereinheitlichung abgeschlossen war, erschien Version 1.0.1, die erstmals ostasiatischeZeichen kodierte. Mit der Veröffentlichung von Unicode 2.0 im Juli 1996 wurde der Standard von ursprünglich65.536 auf die heutigen 1.114.112 Codepunkte, von U+0000 bis U+10FFFF erweitert.VersionenVersion Datum Schriftsysteme Zeichen Erweiterungen1.0.0 [6] Oktober199124 7.161 erste Version1.0.1 [7] Juni 1992 25 28.359 CJK-Schriftzeichen1.1 [8] Juni 1993 24 34.233 zusätzliche koreanische Silbenzeichen, Entfernung der tibetischen Schrift aus dem Standard2.0 [9] Juli 1996 25 38.950 neuer Unicodeblock für Hangeul-Silbenzeichen, Wiedereinführung der tibetischen Schrift2.1 [10] Mai 1998 25 38.952 Eurozeichen sowie ein Objektersetzungszeichen3.0 [11] September199938 49.259 Syrisches Alphabet, Thaana-Alphabet, singhalesische Schrift, birmanische Schrift, äthiopischeSchrift, Cherokee-Alphabet, Cree-Schrift, Ogham, Runen, Khmer-Schrift, mongolische Schrift,Brailleschrift, Yi, zusätzliche CJK-Schriftzeichen3.1 [12] März 2001 41 94.205 Altitalisches Alphabet, gotisches Alphabet, Deseret-Alphabet, Notenschrift, weitereCJK-Schriftzeichen3.2 [13] März 2002 45 95.221 Baybayin, Hanunó'o, Buid-Schrift, Tagbanuwa-Schrift4.0 [14] April 2003 52 96.447 Limbu-Schrift, Tai Nüa, Linearschrift B, ugaritische Schrift, Shaw-Alphabet, Osmaniya-Schrift,kyprische Schrift4.1 [15] März 2005 59 97.720 Koptische Schrift (als eigenständig vom griechischen Alphabet), Tai Lü, Lontara, glagolitischeSchrift, Nuschuri, Tifinagh-Schrift, Sylheti Nagari, Persische Keilschrift, Kharoshthi-Schrift


Unicode 445.0 [16] Juli 2006 64 99.089 N’Ko, balinesische Schrift, Phagpa-Schrift, phönizische Schrift, Keilschrift5.1 [17] 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 Schrift5.2 [18] Oktober20096.0 [19] Oktober20106.1 [20] Januar20126.2 [21] September20126.3 [22] September201390 107.361 Samaritanische Schrift, Lanna-Schrift, Fraser-Alphabet, Bamun-Schrift, javanische Schrift,Tai-Viet-Schrift, Meitei-Mayek, aramäische Schrift, altsüdarabische Schrift, avestische Schrift,parthische Schrift, Pahlavi-Schrift, Orchon-Runen, Kaithi-Schrift, ägyptische Hieroglyphen,zusätzliche CJK-Schriftzeichen93 109.242 Batak-Schrift, Brahmi-Schrift, mandäische Schrift, Emoji100 110.181 Meroitische Schrift, Sora-Sompeng, Chakma-Schrift, Sharada-Schrift, Takri-Schrift,Pollard-Schrift100 110.182 Währungszeichen der türkischen Lira100 110.187 5 weitere bidirektionale Steuerzeichen mit Änderungen des Unicode-Bidi-Algorithmus,Variantenselektoren für CJK-Kompatibilitätsideogramme, verbesserter hebräischerWortumbruch und CJK-ZeilenumbruchInhalt des StandardsDas Unicode-Konsortium stellt mehrere Dokumente zur Unterstützung von Unicode bereit. Neben dem eigentlichenZeichensatz sind dies des Weiteren auch andere Dokumente, die zwar nicht zwingend notwendig, aber dennochhilfreich zur Interpretation des Unicode-Standards sind.GliederungSiehe auch: Liste der UnicodeblöckeIm Gegensatz zu früherenZeichenkodierungen, die meist nur einbestimmtes Schriftsystem kodierten, istes das Ziel von Unicode, alle inGebrauch befindlichen Schriftsystemeund Zeichen zu kodieren. [23] DerZeichenumfang ist dazu in 17 Ebenen(englisch planes) gegliedert, welchejeweils 2 16 = 65.536 Zeichenumfassen. Sechs dieser Ebenen werdenbereits verwendet, die restlichen sindfür spätere Nutzung reserviert:• Die Basic Multilingual Plane(BMP; deutsch MehrsprachigeGrafische Darstellung der Basic Multilingual PlaneBasis-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). DerBlock ist stark fragmentiert und weitgehend belegt, sodass neu zu codierende Schriftsysteme hier keinen Platzmehr finden. Der Zugriff auf andere Ebenen als der BMP ist in manchen Programmen noch nicht oder nureingeschrä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 45Ansammlungen 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 BMPkeinen 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 benutztwerden, dazu zählen unter anderem auch die Chữ nôm, die früher in Vietnam benutzt wurden. Sollte diese Ebenedafü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 alsPlane 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 Plane16), stehen als privat nutzbare Bereiche (PUA) zur Verfügung. Sie werden teilweise auch als Private UsePlanes [25] (PUP) bezeichnet.Innerhalb dieser Ebenen werden zusammengehörende Zeichen in Blöcken (engl. blocks) zusammengefasst. Meistbehandelt ein Unicodeblock ein Schriftsystem, aus historischen Gründen hat sich allerdings ein gewisses Maß anFragmentierung eingestellt. Oft wurden später noch Zeichen hinzugefügt und in anderen Blöcken als Ergänzunguntergebracht.Codepunkte und ZeichenJedes im Unicode-Standard codierte elementare Zeichen ist einem Codepunkt (engl. code points) zugeordnet. Diesewerden üblicherweise hexadezimal (mindestens vierstellig, d. h. ggf. mit führenden Nullen) und mit einemvorangestellten 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 Verwendungzur Zeichenkodierung nicht zu:• 2048 Codepunkte im Bereich U+D800 … U+DFFF werden als Teile von Surrogate-Paaren im KodierungsschemaUTF-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 undnicht 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ächlichzugewiesenen Codepunkte ist jedoch deutlich niedriger; eine Übersicht, wieviele Codepunkte in den verschiedenenVersionen jeweils zugewiesen sind und wofür sie genutzt werden, bieten die Tabellen D-2 und D-3 im Anhang D desUnicode-Standards [25]PUA (“Private Use Area”, privat nutzbarer Bereich)→ Hauptartikel: Private Use AreaSpezielle Bereiche sind für private Nutzung reserviert, d. h. in diesen werden niemals Codepunkte für in Unicodestandardisierten Zeichen zugewiesen. Diese können für privat definierte Zeichen verwendet werden, die zwischenden Erzeugern und Verwendern der Texte, die sie enthalten, individuell abgesprochen sein müssen. Diese Bereichesind:• in der BMP: U+E000 … U+F8FF• in anderen Ebenen: U+F0000 … U+FFFFD und U+100000 … U+10FFFDEs haben sich für verschiedene Anwendungen spezielle Konventionen entwickelt, die speziell für den PUA-Bereichder BMP Zeichenbelegungen vorgeben. Zum einen finden sich hier häufig precomposed characters aus


Unicode 46Grundzeichen und diakritischen Zeichen, da in vielen (speziell älteren) Software-Anwendungen nicht davonausgegangen werden kann, dass solche Zeichen gemäß den Unicode-Regeln bei Eingabe als Folge aus Grundzeichenund diakritischem Zeichen korrekt dargestellt werden. Zum anderen finden sich Zeichen, die nicht den Regeln füreine Aufnahme in Unicode entsprechen, oder deren Beantragung zur Aufnahme in Unicode aus anderen Gründenerfolglos war oder unterblieb. So findet sich in vielen Fonts auf der Position U+F000 ein Hersteller-Logo (Logoswerden in Unicode prinzipiell nicht codiert).Bedeutende Quellen für PUA-Zeichen sind:• MUFI (Medieval Unicode Font Initiative)• SIL PUA für Sonderbuchstaben diverser Minderheitensprachen weltweit• Languagegeek für indigene Sprachen Nordamerikas• ConScript für erfundene Schriftsysteme wie KlingonischKodierungNeben dem eigentlichen Zeichensatz sind auch eine Reihe von Zeichenkodierungen definiert, die denUnicode-Zeichensatz implementieren und die benutzt werden können, um den vollen Zugriff auf alleUnicode-Zeichen zu haben. Sie werden Unicode Transformation Format (kurz UTF) genannt; am weitestenverbreitet sind zum einen UTF-16, das sich als interne Zeichendarstellung einiger Betriebssysteme (Windows [27] , OSX) und Softwareentwicklungs-Frameworks (Java [28] , .NET [29] ) etabliert hat, zum anderen UTF-8, das ebenfalls inBetriebssystemen (GNU/Linux, Unix) sowie in verschiedenen Internetdiensten (E-Mail, WWW) eine große Rollespielt. Basierend auf dem proprietären EBCDIC-Format von IBM-Großrechnern ist die UTF-EBCDIC-Kodierungdefiniert. Punycode dient dazu, Domainnamen mit Nicht-ASCII-Zeichen zu kodieren. Mit dem StandardCompression Scheme for Unicode existiert ein Kodierungsformat, das die Texte gleichzeitig komprimiert. WeitereFormate zur Kodierung von Unicode-Zeichen sind u. a. CESU-8 und GB 18030.NormalisierungViele Zeichen, die im Unicode-Standard enthalten sind, sind sogenannte Kompatibilitätszeichen, die ausUnicode-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 einemkombinierenden Trema (horizontaler Doppelpunkt) dargestellt werden können. Bei der Unicode-Normalisierungwerden die Kompatibilitätszeichen automatisch durch die in Unicode vorgesehenen Sequenzen ersetzt. Dieserleichtert die Verarbeitung von Unicode-Texten erheblich, da so nur eine mögliche Kombination für ein bestimmtesZeichen steht, und nicht mehrere verschiedene.SortierungFür viele Schriftsysteme sind die Zeichen in Unicode nicht in einer Reihenfolge codiert, die einer bei denAnwendern dieses Schriftsystems üblichen Sortierung entspricht. Deshalb kann bei einer Sortierung z. B. in einerDatenbankanwendung üblicherweise nicht die Reihenfolge der Codepunkte verwendet werden. Außerdem sind dieSortierungen in vielen Schriftsystemen von komplexen, kontextabhängigen Regelungen geprägt. Hier definiert derUnicode Collation Algorithm, wie Zeichenfolgen innerhalb eines bestimmten Schriftsystems oder auchschriftsystemübergreifend sortiert werden können.In vielen Fällen ist jedoch die tatsächlich anzuwendende Reihenfolge von anderen Faktoren (z. B. der verwendetenSprache) abhängig (z. B. sortiert „ä“ im Deutschen anwendungsabhängig wie „ae“ oder „a“, im Schwedischen jedochhinter „z“ und „å“), sodass der Unicode-Sortierungsalgorithmus dann anzuwenden ist, wenn die Sortierung nicht vonspezielleren Rahmenbedingungen bestimmt wird.


Unicode 47NormierungsinstitutionenDas gemeinnützige Unicode-Konsortium wurde 1991 gegründet und ist für den Industriestandard Unicodeverantwortlich. Von der ISO (Internationale Organisation für Normung) wird in Zusammenarbeit mit IEC dieinternationale Norm ISO 10646 herausgegeben. Beide Institutionen arbeiten eng zusammen. Seit 1993 sind Unicodeund ISO 10646 bezüglich der Zeichenkodierung praktisch identisch. Während ISO 10646 lediglich die eigentlicheZeichenkodierung festlegt, gehört zum Unicode ein umfassendes Regelwerk, das unter anderem für alle Zeichenweitere zur konkreten Anwendung wichtige Eigenschaften (sogenannte Properties) eindeutig festlegt wieSortierreihenfolge, 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 Codebereichauf 17 Ebenen, darstellbar mit 21 Bit, beschränkt wurde. [31]KodierungskriterienGegenüber anderen Normen gibt es bei Unicode die Besonderheit, dass einmal kodierte Zeichen niemals wiederentfernt werden, um die Langlebigkeit digitaler Daten zu gewährleisten. [32] Sollte sich die Normierung einesZeichens nachträglich als Fehler erweisen, wird allenfalls von seiner Verwendung abgeraten. Daher bedarf dieAufnahme 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 grafischeDarstellung (Glyphen) dieser Zeichen, die von Schriftart zu Schriftart extrem unterschiedlich ausfallen kann, beimlateinischen Alphabet etwa in Form der Antiqua, Fraktur, der irischen Schrift oder der verschiedenenHandschriften. [33] Für Glyphenvarianten, deren Normierung als sinnvoll und notwendig nachgewiesen wird, sinddabei allerdings vorsorglich 256 „Variation Selectors“ reserviert, die ggf. dem eigentlichen Code nachgestellt werdenkönnen. In vielen Schriftsystemen können Zeichen außerdem je nach Position unterschiedliche Formen annehmenoder Ligaturen bilden. Von Ausnahmen abgesehen (z. B. Arabisch) werden solche Varianten ebenfalls nicht in denUnicode-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, etwadie Glyphen А, В, Е, K, М, Н, О, Р, Т und Х, die – mit zum Teil unterschiedlicher Bedeutung – sowohl imlateinischen als auch im griechischen und kyrillischen Alphabet vorkommen.In Grenzfällen wird hart um die Entscheidung gerungen, ob es sich um Glyphenvarianten oder tatsächlichunterschiedliche, einer eigenen Kodierung würdige Zeichen (Grapheme) handelt. Beispielsweise sind nicht wenigeFachleute der Meinung, man könne das phönizische Alphabet als Glyphenvarianten des hebräischen Alphabetsbetrachten, da der gesamte Zeichenvorrat des Phönizischen dort eindeutige Entsprechungen hat und auch beideSprachen 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 Jahrhundertendie Formen vieler gleichbedeutender Schriftzeichen auseinanderentwickelt. Dennoch teilen sich diesprachspezifischen Glyphen dieselben Codes im Unicode (mit Ausnahme einiger Zeichen ausKompatibilitätsgründen). In der Praxis werden hier überwiegend sprachspezifische Schriftarten verwendet, wodurchder Platzbedarf der Schriften zusammen hoch ist. Die einheitliche Kodierung der CJK-Schriftzeichen (HanUnification) war eine der wichtigsten und umfangreichsten Vorarbeiten für die Entwicklung von Unicode. Besondersin Japan ist sie durchaus umstritten.Als der Grundstein für Unicode gelegt wurde, musste berücksichtigt werden, dass bereits eine Vielzahlunterschiedlicher Kodierungen im Einsatz waren. Unicode-basierte Systeme sollten herkömmlich kodierte Daten mitgeringem Aufwand handhaben können. Dazu wurde für die unteren 256 Zeichen die weit verbreitete ISO8859-1-Kodierung (Latin1) ebenso wie die Kodierungsarten verschiedener nationaler Normen beibehalten, z. B.


Unicode 48TIS-620 für Thailändisch (fast identisch mit ISO 8859-11) oder ISCII für indische Schriften, die in derursprünglichen Reihenfolge lediglich in höhere Bereiche verschoben wurden.Jedes Zeichen maßgeblicher überkommener Kodierungen wurde in den Standard übernommen, auch wenn es dennormalerweise 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 übrigenverfügt auch heute noch ein großer Teil der Software nicht über die Möglichkeit, Zeichen mit Diakritika ordentlichzusammenzusetzen. Die exakte Festlegung von äquivalenten Kodierungen ist Teil des zum Unicode gehörendenumfangreichen 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 wieThai, 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 unsichtbareZeichen, die nur unter bestimmten Umständen ausgewertet werden sollen, etwa der Combining Grapheme Joiner.Darstellung auf dem ComputerEingabemethodenUnter Windows (ab Windows 2000) kann in einigen Programmen (genauer in RichEdit-Feldern) der Code dezimalals Alt+ (bei eingeschaltetem Num-Lock) auf dem numerischen Tastaturfeld eingegebenwerden. Dabei ist jedoch zu beachten, dass Zeichennummern kleiner als 1000 um eine führende Null zu ergänzensind (z. B. Alt+0234 für Codepoint 234 10[ê]). Diese Maßnahme ist notwendig, da die (immer noch in Windowsverfügbare) Eingabemethode Alt+ bereits inMS-DOS-Zeiten genutzt wurde, um die Zeichen der Codepage 850 (v. a. bei früheren MS-DOS-Versionen auchCodepage 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 Zeichensanzuzeigen. [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 auszusuchenund in den Text einzufügen. Das Programm ermöglicht auch, für häufiger benötigte Zeichen Makros festzulegen, diedann mit einer Tastenkombination abgerufen werden können.Bei Apple-Computern muss die Unicode-Hex-Tastenbelegung aktiviert werden. Danach wird der Code beigedrückter Alt-Taste eingegeben. [36]<strong>HTML</strong> und XML unterstützen Unicode mit Zeichencodes, die unabhängig vom eingestellten Zeichensatz dasUnicode-Zeichen darstellen. Die Notation lautet &#0000; für dezimale Notation bzw. &#x0000; fürhexadezimale Notation, wobei das 0000 die Unicode-Nummer des Zeichens darstellt. Für bestimmte Zeichen sindauch benannte Zeichen (engl. named entities) definiert, so z. B. stellt &auml; das ä dar, [37] das gilt allerdings nurfür <strong>HTML</strong>; XML und das davon abgeleitete X<strong>HTML</strong> definieren benannte Notationen nur für die Zeichen, die beinormalem Gebrauch als Teile der Auszeichnungssprache interpretiert würden, also < als &lt;, > als &gt;, & als<strong>&amp</strong>; und " als &quot;.GTK+, Qt und alle darauf basierenden Programme und Umgebungen (wie beispielsweise die DesktopumgebungGNOME) unterstützen die Eingabe über die Kombination Strg+Umschalttaste bzw. in neueren VersionenStrg+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 manerkennen kann, was zum Unicode gehört. Nach einem Druck der Leer- oder Eingabetaste erscheint dann das


Unicode 49entsprechende Zeichen.Im Texteditor Vim können Unicode-Zeichen mit Strg+v, gefolgt von der Taste u und dem Unicode inhexadezimaler Form, eingegeben werden.ZeichentabelleSeit Windows NT 4.0 ist das Programm charmap.exe, genannt Zeichentabelle, in Windows integriert. Mit diesemProgramm ist über eine grafische Benutzeroberfläche möglich, Unicode-Zeichen einzufügen. Außerdem bietet es einEingabefeld 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 denUnicode-Zeichensatz auf dem Bildschirm dar und bieten zusätzliche Informationen zu den einzelnen Zeichen.SchriftartenOb das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob dieverwendete Schriftart eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschteZeichennummer) 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), dersich 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 Schriftbedeutet also nicht, dass der komplette Zeichensatz enthalten ist, sondern lediglich, dass die darin enthaltenenZeichen normgerecht kodiert sind. Die derzeit umfangreichste Schrift ist die in drei Dateien aufgeteilte SharewareCode2000 bis Code2002 von James Kass. Auch diese bildet jedoch nicht jedes Unicode-Zeichen ab. In derPublikation »decodeunicode«, die alle Zeichen vorstellt, werden insgesamt 66 Fonts genannt, aus denen dieZeichentabellen zusammengesetzt sind.KritikUnicode wird vor allem von Wissenschaftlern und in ostasiatischen Ländern scharf kritisiert. Einer der bekanntestenKritikpunkte ist die Han-Vereinheitlichung, aus ostasiatischer Sicht werden bei diesem Vorgehen Schriftzeichenverschiedener nicht verwandter Sprachen vereinigt. Unter anderem wird kritisiert, dass antike Texte in Unicodeaufgrund der Vereinheitlichung ähnlicher CJK-Schriftzeichen nicht originalgetreu wiedergegeben werdenkönnen. [38] Aufgrund dessen wurden in Japan zahlreiche Alternativen zu Unicode wie etwa der Mojikyō-Standardentwickelt.Die Kodierung der thailändischen Schrift wird teilweise kritisiert, weil sie anders als alle anderen Schriftsysteme inUnicode nicht auf logischer, sondern auf visueller Reihenfolge basiert, was unter anderem die Sortierungthailändischer Wörter erheblich erschwert. Die Unicode-Kodierung basiert auf dem thailändischen StandardTIS-620, der ebenfalls die visuelle Reihenfolge verwendet. [39] Umgekehrt wird die Kodierung der anderen indischenSchriften manchmal als „zu kompliziert“ bezeichnet, vor allem von Vertretern der Tamil-Schrift. Das Modell vonseparaten Konsonanten- und Vokalzeichen, welches Unicode vom indischen Standard ISCII adoptiert hat [40] , wirdvon jenen abgelehnt, die lieber separate Codepunkte für alle möglichen Konsonant-Vokal-Verbindungenbevorzugen. [41] Die Regierung der Volksrepublik China machte einen ähnlichen Vorschlag, die tibetische Schrift alsSilbenfolgen anstelle als einzelne Konsonanten und Vokale zu kodieren. [42]


Unicode 50Literatur• Johannes Bergerhausen, Siri Poarangan: decodeunicode: Die Schriftzeichen der Welt. Hermann Schmidt, Mainz2011, 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, MountainView 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 <strong>HTML</strong>-Kompendium SELF<strong>HTML</strong> [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 dieCore-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.3unverä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 <strong>HTML</strong> 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. htmUTF-8UTF-8 (Abk. für 8-Bit UCS Transformation Format, wobei UCS wiederum Universal Character Set abkürzt) ist dieam weitesten verbreitete Kodierung für Unicode-Zeichen (Unicode und UCS sind praktisch identisch). DieKodierung wurde im September 1992 von Ken Thompson und Rob Pike bei Arbeiten an dem Plan 9-Betriebssystemfestgelegt. Die Kodierung wurde zunächst im Rahmen von X/Open als FSS-UTF (filesystem safe UTF inAbgrenzung zu UTF-1, das diese Eigenschaft nicht hat) bezeichnet, in den Folgejahren erfolgte im Rahmen derStandardisierung 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 einemByte 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ächtigungbearbeiten lassen, was einen der Gründe für den Status als De-facto-Standard-Zeichenkodierung des Internets unddamit verbundener Dokumenttypen darstellt.In anderen Sprachen ist der Speicherbedarf in Byte pro Zeichen größer: Bereits die deutschen Umlaute erfordernzwei Byte; kyrillische, fernöstliche und Sprachen aus dem afrikanischen Raum belegen bis zu 4 Byte je Zeichen. Dadie Verarbeitung von UTF-8 als Multibyte-Zeichenfolge wegen der notwendigen Analyse jedes Bytes im Vergleichzu Zeichenkodierungen mit fester Byteanzahl je Zeichen mehr Rechenaufwand und für bestimmte Sprachen auchmehr Speicherplatz erfordert, werden abhängig vom Einsatzszenario auch andere UTF-Kodierungen zur Abbildungvon UNICODE-Zeichensätzen verwendet: Microsoft Windows als meistgenutztes Desktop-Betriebssystemverwendet intern als Kompromiss zwischen UTF-8 und UTF-32 etwa UTF-16 Little Endian.


UTF-8 52AllgemeinesBei der UTF-8-Kodierung wird jedem Unicode-Zeichen eine speziell kodierte Zeichenkette variabler Längezugeordnet. Dabei unterstützt UTF-8 Zeichenketten bis zu einer Länge von vier Byte, auf die sich – wie bei allenUTF-Formaten – alle Unicode-Zeichen abbilden lassen.UTF-8 hat eine zentrale Bedeutung als globale Zeichenkodierung im Internet. Die Internet Engineering Task Forceverlangt von allen neuen Internetkommunikationsprotokollen, dass die Zeichenkodierung deklariert wird und dassUTF-8 eine der unterstützten Kodierungen ist. Das Internet Mail Consortium (IMC) empfiehlt, dass alleE-Mail-Programme UTF-8 darstellen und senden können. [2] Im Jahr 2008 wurde diese Empfehlung allerdings immernoch nicht global befolgt.Auch bei der in Webbrowsern angewendeten Auszeichnungssprache <strong>HTML</strong> setzt sich UTF-8 zur Darstellungsprachspezifischer Zeichen zunehmend durch und ersetzt dabei die vorher genutzten <strong>HTML</strong>-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 üblichen7-Bit-Zeichenkonstanten)• Relativ kompakt, besonders bei europäischen Zeichen, etwas weniger bei (bspw.) chinesischen Zeichen inhöheren Kodepositionen, häufig deutlich kompakter als UTF-16 (Windows)• Sortierbarkeit bleibt erhalten, zwei UTF-8-Zeichenketten sortieren genauso wie zwei unkodierteUnicode-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)NormungUTF-8 ist von der IETF, dem Unicode Consortium und der ISO gegenwärtig identisch definiert in denNormdokumenten:• 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 53KodierungUnicode-Zeichen mit den Werten aus dem Bereich von 0 bis 127 (0 bis 7F hexadezimal) werden in derUTF-8-Kodierung als ein Byte mit dem gleichen Wert wiedergegeben. Daher sind alle Daten, für die ausschließlichechte 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(hexadezimal)UTF-8-Kodierung (binär) Bemerkungen Möglichkeiten(theoretisch)0000 0000 – 0000 007F 0xxxxxxx In diesem Bereich (128 Zeichen) entspricht UTF-8genau dem ASCII-Code: Das höchste Bit ist 0, dierestliche 7-Bit-Kombination ist das ASCII-Zeichen.2 7 1280000 0080 – 0000 07FF 110xxxxx 10xxxxxx Das erste Byte beginnt immer mit 11, die folgendenBytes mit 10. Die xxxxx stehen für die Bits desUnicode-Zeichenwerts. Dabei wird das0000 0800 – 0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx0001 0000 – 0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxxniederwertigste Bit des Zeichenwerts auf das rechtex im letzten Byte abgebildet, die höherwertigen Bitsfortschreitend von rechts nach links. Die Anzahl derEinsen vor der ersten 0 im ersten Byte ist gleich derGesamtzahl der Bytes für das Zeichen. (InKlammern jeweils die theoretisch maximalmöglichen.)2 11 − 2 7(2 11 )2 16 − 2 11(2 16 )2 20(2 21 )1920(2048)63.488(65.536)1.048.576(2.097.152)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. Diegesamte Codefolge wäre dann 2 (7*6) = 2 42 = 4.398.046.511.104 Zeichen). Real definiert wurde ursprünglich eineFolge aus einem ersten Byte mit bis zu 1111110x und somit fünf Folge-Bytes der Form 10xxxxxx, also zusammensechs Byte mit insgesamt 31 Bit für den enthaltenen Unicode-Wert. In seiner Verwendung als UTF-Kodierung ist eraber auf den gemeinsamen Coderaum aller Unicode-Kodierungen beschränkt, also von 0 bis 0010 FFFF (1.114.112Möglichkeiten) und weist maximal vier Bytes lange Byteketten auf. Der damit verfügbare Wertebereich für denZeichencode wird letztlich nicht vollständig benutzt. Entsprechend lange Bytefolgen und große Werte gelten heuteals 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 istund die ersten 128 Unicode-Zeichen den ASCII-Zeichen entsprechen. Damit sind alle ASCII-Zeichenkettenautomatisch aufwärtskompatibel zu UTF-8.• Ist das höchste Bit des ersten Bytes 1, handelt es sich um ein Mehrbytezeichen, also ein Unicode-Zeichen miteiner Zeichennummer größer als 127.• Sind die höchsten beiden Bits eines Bytes 11, handelt es sich um das Startbyte eines Mehrbytezeichens, sind sie10, um ein Folgebyte.• Die lexikalische Ordnung nach Bytewerten entspricht der lexikalischen Ordnung nach Zeichennummern, dahö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 alsMehrbyte-Zeichen kodierten Unicode-Zeichens an. Anders interpretiert, die Anzahl der 1-Bits links des höchsten0-Bits entspricht der Anzahl an Folgebytes plus eins, z. B. 1110xxxx 10xxxxxx 10xxxxxx = drei Bits vor demhöchsten 0-Bit = drei Bytes insgesamt, zwei Bits nach dem höchsten 1-Bit vor dem höchsten 0-Bit = zweiFolgebytes.• Startbytes (0… oder 11…) und Folgebytes (10…) lassen sich eindeutig voneinander unterscheiden. Somit kannein Bytestrom auch in der Mitte gelesen werden, ohne dass es Probleme mit der Dekodierung gibt, was


UTF-8 54insbesondere 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 voneinanderunterschieden sind, ist ein Vorteil der UTF-8 Kodierung. Bei Kodierungen ohne diese Eigenschaft ist das Leseneines 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 01100001oder fälschlich als 11000001 10100001). Jedoch ist nur die jeweils kürzestmögliche Kodierung erlaubt. DieserUmstand hat mehrfach zu Problemen geführt, indem Programme bei ungültigen Kodierungen abstürzen, diese alsgü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ützendeClient 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 jedochausgeschlossen worden, da es in Unicode keine korrespondierenden Zeichen gibt und ISO 10646 in seinemmöglichen Zeichenumfang an Unicode angeglichen wurde.• Für alle auf dem lateinischen Alphabet basierenden Schriften ist UTF-8 eine besonders platzsparende Methodezur Abbildung von Unicode-Zeichen.• Die Unicodebereiche U+D800–U+DBFF und U+DC00–U+DFFF sind ausdrücklich keine Zeichen, sonderndienen nur in UTF-16 zur Kodierung von Zeichen außerhalb der Basic Multilingual Plane, sie wurden früher alsLow und High surrogates bezeichnet. Folglich sind Bytefolgen, die diesen Bereichen entsprechen, kein gültigesUTF-8. Zum Beispiel wird U+10400 in UTF-16 als D801,DC00 dargestellt, sollte in UTF-8 aber als F0,90,90,80und nicht als ED,A0,81,ED,B0,80 ausgedrückt werden. Java unterstützt dies seit der Version 1.5. [4] Aufgrund derweiten Verbreitung der falschen Kodierung, insbesondere auch in Datenbanken, wurde diese Kodierungnachträ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 256Möglichkeiten zusammengefasst und deren Verwendung bzw. Gültigkeit angegeben. Bytes in roten Zeilen sindunzulässig, grün beschreibt zulässige Bytes, welche unmittelbar ein Zeichen darstellen. In blau sind jene Wertehinterlegt, welche den Start einer Sequenz von zwei oder mehr Byte beginnen und als Sequenz mit den Bytes ausorange hinterlegten Zeilen fortgesetzt werden.UTF-8 WertebereichBedeutungBinär Hexadezimal Dezimal00000000–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ässig11000010–11011111 C2–DF 194–223 Start einer 2 Byte langen Sequenz11100000–11101111 E0–EF 224–239 Start einer 3 Byte langen Sequenz11110000–11110100 F0–F4 240–244 Start einer 4 Byte langen Sequenz (Inklusive der ungültigen Codebereiche von 110000 bis13FFFF)11110101–11110111 F5–F7 245–247 Ungültig nach RFC 3629: Start einer 4 Byte langen Sequenz für Codebereich über 14000011111000–11111011 F8–FB 248–251 Ungültig nach RFC 3629: Start einer 5 Byte langen Sequenz11111100–11111101 FC–FD 252–253 Ungültig nach RFC 3629: Start einer 6 Byte langen Sequenz


UTF-8 5511111110–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 …F0… NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US2… SP [[Ausrufezeichen ]] " # $ % & ' ( ) * + , - . /3… 0 1 2 3 4 5 6 7 8 9 : ; < = > ?4… @ A B C D E F G H I J K L M N O5… P Q R S T U V W X Y Z [ \ ] ^ _6… ` a b c d e f g h i j k l m n o7… p q r s t u v w x y z { | } ~ DEL8… Zweites, drittes oder viertes Byte einer Bytesequenz.9…A…B…C…D…E…Start einer 2 Byte langen Sequenz.Start einer 2 Byte langen Sequenz.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 …FIn folgender Tabelle sind einige Kodierungsbeispiele für UTF-8 angegeben:Beispiele für UTF-8 KodierungenZeichen Unicode Unicode binär UTF-8 binär UTF-8hexadezimalBuchstabe y U+0079 00000000 01111001 01111001 79Buchstabe ä U+00E4 00000000 11100100 11000011 10100100 C3 A4Zeichen für eingetrageneMarke ®U+00AE 00000000 10101110 11000010 10101110 C2 AEEurozeichen € U+20AC 00100000 10101100 11100010 10000010 10101100 E2 82 ACViolinschlüssel U+1D11E 00000001 11010001 00011110 11110000 10011101 1000010010011110F0 9D 84 9EDas 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 Schriftartendiese neuen Unicode-Bereiche noch nicht enthalten, können die dort enthaltenen Zeichen auf vielen Plattformennicht korrekt dargestellt werden. Stattdessen wird ein Ersatzzeichen dargestellt, welches als Platzhalter dient.


UTF-8 56Byte Order MarkObwohl bei UTF-8 aufgrund der Art der Kodierung grundsätzlich nicht das Problem unterschiedlicherBytereihenfolgen 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 derBytesequenz EF BB BF, die in nicht UTF-8-fähigen Texteditoren und Browsern meist alsISO-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/ kermit/ utf8. html)• Anteilige Benutzung der Zeichenkodierungen auf Webseiten (http:// w3techs. com/ technologies/ overview/character_encoding/ all)• Unicode-Datenbank in <strong>HTML</strong> (http:// www. sql-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 mitZusatzinformationen und benannten <strong>HTML</strong>-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 57Multipurpose Internet Mail ExtensionsDie Multipurpose Internet Mail Extensions (MIME) sind Erweiterungen des Internetstandards RFC 822, der dasDatenformat 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 (etwabei Mail-Anhängen). Sie wurden in RFC 2045, RFC 2046, RFC 2047, RFC 2048 und RFC 2049 definiert. RFC 2048wurde 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 wieetwa HTTP sowie bei Desktop-Umgebungen wie KDE, Gnome, Xfce oder Aqua.Allgemeine BeschreibungMIME ermöglicht es, zwischen Sender und Empfänger Informationen über den Typ der übermittelten Datenauszutauschen (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 sowievon Nicht-Text-Dokumenten wie Bildern, Sprache und Video in textbasierten Übertragungssystemen wie E-Mailoder Usenet ermöglichen. Die Nicht-Text-Elemente werden beim Versender kodiert und beim Empfänger wiederdekodiert.Die Kodierung von Nicht-7-Bit-ASCII-Zeichen erfolgt häufig mittels Quoted-Printable-Kodierung, Binärdatenhingegen werden üblicherweise Base64-kodiert. Bei dieser Kodierungsweise erhöht sich die Gesamtgröße derangehängten Dateien um 33–36 % (Erklärung s. Base64). Aus 752 KiB werden 1 MiB (1024 KiB) und aus 1 MiBwerden 1393 KiB. Alternativ ist es für Textdaten mittels Content-Transfer-Encoding: 8bit auchmöglich, die nicht-ASCII-Zeichen direkt zu übertragen (die Kodierung muss dabei angegeben sein, z. B. UTF-8 oderISO-8859-15 für deutsche Texte).Bei der Verwendung in anderen Protokollen wie etwa HTTP kann auch die Transport-Kodierung binaryverwendet werden, bei der beliebige Bytes direkt verschickt werden können, ohne spezielle Kodierung – bei E-Mailsist dies nicht erlaubt.Es gibt eine Erweiterung dieses Standards namens S/MIME (Secure MIME), der auch das Verschlüsseln und digitaleSignieren 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 festgelegtist):MIME-Version: 1.0Content-Type: multipart/mixed; boundary=frontierThis is a message with multiple parts in MIME format.--frontierContent-Type: text/plainThis is the body of the message.--frontierContent-Type: application/octet-streamContent-Transfer-Encoding: base64


Multipurpose Internet Mail Extensions 58PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg=--frontier--Details der SpezifikationMIME Part 1 – Format of Internet Message BodiesDieser erste Teil der Spezifikationen, RFC 2045, führt grundlegende zusätzliche Felder im Kopf von E-Mails ein:1. MIME-Version2. Content-type3. Content-Transfer-EncodingDas Content-Transfer-Encoding gibt an, ob die Übertragung nach Internetstandard RFC 6152 erfolgen soll, diesstattgefunden hat, oder eine Kodierung für Internetstandard RFC 822 erfolgt ist, die beim Empfänger wiederrü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 erfolgtWas kein Text ist, erfordert auf jeden Fall Kodierung, die dann grundsätzlich nach Base64 erfolgt. Nichts weiter alsbeliebigen Text enthaltende E-Mails bedürfen hingegen keiner Umformung:BeispielFrom: To: Subject: Umlaute dank MIMEMIME-Version: 1.0Content-type: text/plain; charset=iso-8859-15Content-Transfer-Encoding: 8bitWären die drei zusätzlichen Kopfzeilen nicht, würde diese Zeile nicht leserlich sein.MIME Part 2 – Media TypesDieser zweite Teil der Spezifikationen, RFC 2046, definiert für das Feld Content-type Haupttypen und Untertypenvon Inhalten:textAls Parameter dieses Haupttyps ist die Angabe eines Zeichensatzes vorgesehen. Als Untertyp ist einfacher Text ohneFormatierung vordefiniert:• text/plain


Multipurpose Internet Mail Extensions 59imageAls Untertyp für Bilder ist JPEG vordefiniert:• image/jpegaudioAls Untertyp für Ton ist der Codec des ISDN vordefiniert:• audio/basicvideoAls Untertyp für Filme ist MPEG vordefiniert:• video/mpegapplicationDieser Haupttyp ist für Daten von Anwendungsprogrammen vorgesehen. Vordefiniert sind zwei Untertypen:• application/octet-streamDieser Untertyp soll zum Speichern der Daten führen und ausdrücklich nicht zum Starten einesAnwendungsprogramms.• application/postscriptDieser Untertyp soll zum Drucken der Daten führen.multipartDieser Haupttyp ist für Kombinationen mehrerer Inhalte vorgesehen. Vordefiniert sind fünf Untertypen:• multipart/mixedDieser Untertyp ist für Zusammenstellungen in einer bestimmten Reihenfolge vorgesehen.• multipart/alternativeDieser Untertyp ist für gleiche Inhalte in unterschiedlichen Formaten vorgesehen, von denen nur daspassendste präsentiert werden soll. Typischerweise ist eines der Formate ein vordefinierter Untertyp derMIME.• multipart/digestDieser Untertyp ist dazu vorgesehen, eine Übersicht der Inhalte zu liefern.• multipart/parallelDieser Untertyp ist für Systeme vorgesehen, die alle Typen von Inhalten zugleich präsentieren können.• multipart/relatedDieser Untertyp ist separat in RFC 2387 definiert und zur Kombination mehrerer Inhalte vorgesehen, die nurzusammen Sinn ergeben. Die in RFC 2557 definierte MIME Encapsulation of Aggregate Documents bautdarauf auf. Sie war die Konsequenz aus dem Umstand, dass Hypertext Markup Language kein Standard fürMIME werden konnte. Zudem wurde der Begriff Internet Media Type und schließlich der BegriffX<strong>HTML</strong> Media Type für Ausrichtung auf das Hypertext Transfer Protocol statt auf das Simple Mail TransferProtocol geprägt.


Multipurpose Internet Mail Extensions 60messageDieser Haupttyp ist zur Handhabung anderer E-Mails vorgesehen. Vordefiniert sind drei Untertypen:• message/rfc822Dieser Untertyp ist dazu vorgesehen, mehrere herkömmliche E-Mails aufzunehmen.• message/partialDieser Untertyp ist dazu vorgesehen, eine große E-Mail in mehrere Teile zu zerlegen, diese nacheinander zuversenden und sie automatisch wieder zusammenzusetzen.• message/external-bodyDieser Untertyp ist dazu vorgesehen, nur eine Verknüpfung zu einer anderen E-Mail zu enthalten.MIME Part 3 – Header Extensions for Non-ASCII TextDieser dritte Teil der Spezifikationen hebt auch für den Betreff und andere Felder im Kopf von E-Mails dieBeschränkung auf den englischen Zeichensatz auf.MIME Part 4 – Registration ProceduresDieser vierte Teil der Spezifikationen, mittlerweile RFC 4289, beschreibt die Registrierung zusätzlicherErweiterungen bei der Internet Assigned Numbers Authority. Die dort registrierten Media Types sind vielfältig undumfassen auch ausdrücklich überholte und missbilligte. Schon 1994 wurden Registrierungen ohne Berücksichtigungder MIME akzeptiert. Seit 1995 ist die gesamte Registrierung nur noch Best Current Practice. Ende 2005 wurde dieRegistrierung von Media Types aus der Spezifikation der MIME herausgenommen, um verbreitetenMissverständnissen entgegenzuwirken. Wie sich ein registrierter Media Type zu MIME verhält, erschließt sich nuraus den Spezifikationen.MIME Part 5 – Conformance Criteria and ExamplesDieser 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üsselungRFC 1847 definiert Verschlüsselung und elektronische Signatur mittels MIME grundlegend. Zwei zusätzliche MediaTypes sind dafür vorgesehen:• multipart/signed• multipart/encryptedDie in RFC 5751 definierten Secure/Multipurpose Internet Mail Extensions setzen Cryptographic Message Syntaxdarauf auf.Die in RFC 2015 definierte MIME Security with Pretty Good Privacy setzt stattdessen Pretty Good Privacy auf.


Multipurpose Internet Mail Extensions 61Spezifikationen• 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 forNon-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 ExamplesEinzelnachweise


Lynx (Browser) 62Lynx (Browser)LynxEntwicklerWikipedia in LynxBasisdatenThomas DickeyAktuelle Version 2.8.7 (rel.2)(21. Juni 2010)BetriebssystemKategorieLizenzUNIX, Windows 95 aufwärts, uvm.WebbrowserGPLDeutschsprachig jalynx.isc.org [1]Lynx ist ein textbasierter Webbrowser, der unter Unix entwickelt wurde, inzwischen aber für fast alleBetriebssysteme 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 zuden Browsern mit der längsten Entwicklungsgeschichte. Bevor das Programm an das World Wide Web und dessenProtokoll http angepasst wurde, war Lynx ein Client für ein proprietäres Hypertextprotokoll. Dabei wurden Elementevon 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 dargestelltund ü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 verweissensitiveGrafiken (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“. Siewerden oft zur Recherche verwendet, da sie Webseiten auf den Text reduzieren.Beliebt ist auch die Möglichkeit, Lynx als <strong>HTML</strong>-Interpreter in Shell-Skripten zu nutzen, um bestimmte Webseitenautomatisiert zu durchsuchen. Lynx findet auch Verwendung als Bestandteil von Webcrawlern. Beispielsweisekönnen mit Lynx Skripte aufgezeichnet werden, die dann anschließend angepasst und erneut abgespielt werdenkönnen.Lynx eignet sich gut, um Internetseiten auf ihre Lesbarkeit mittels Braillezeile oder Screenreader zu überprüfen, wieblinde Menschen sie verwenden.


Lynx (Browser) 63Weblinks• 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


64Cascading Style Sheets<strong>CSS</strong>Cascading Style Sheets (<strong>CSS</strong>)Dateiendung:MIME-Type:.csstext/cssEntwickelt von: World Wide Web ConsortiumArt:Standard(s):Stylesheet-SpracheLevel 1 (Recommendation) [1]Level 2 (Recommendation) [2]Level 2 Revision 1 (Recommendation) [3]Cascading Style Sheets (englische Aussprache [kæsˌkeɪdɪŋˈstaɪlʃiːts]; für stufenförmige oder (hintereinander)geschachtelte Gestaltungsvorlagen), kurz <strong>CSS</strong> genannt, ist eine deklarative Sprache für Stilvorlagen (engl.stylesheets) von strukturierten Dokumenten. Sie wird vor allem zusammen mit <strong>HTML</strong> und XML (zum Beispiel beiSVG) eingesetzt.Grundidee beim Entwurf von <strong>CSS</strong> war es, mittels <strong>HTML</strong> oder XML nur die inhaltliche Untergliederung einesDokumentes und die Bedeutung seiner Teile zu beschreiben, während mittels <strong>CSS</strong> weitgehend unabhängig davon diekonkrete Darstellung (Farben, Layout, Schrifteigenschaften usw.) der Teile festgelegt wird. Elemente einesDokumentes können z. B. aufgrund ihres Elementnamens (z. B. alle Linkelemente), ihrer ID oder auch aufgrundihrer Position in diesem Dokument (z. B. alle Bildelemente innerhalb von Linkelementen) identifiziert werden.Mithilfe von <strong>CSS</strong>-Regeln können deshalb für jedes Element die konkreten Werte für bestimmte Darstellungsattributefestgelegt 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 <strong>CSS</strong> ein Vererbungsmodell fürAuszeichnungsattribute – deshalb cascading – das die Anzahl nötiger Definitionen vermindert. <strong>CSS</strong> ermöglichtallenfalls auch die diskretionäre Auszeichnung von Teilen eines Dokuments.Mit <strong>CSS</strong> ist es möglich, für verschiedene Ausgabemedien (Bildschirm, Papier, Projektion, Sprache) unterschiedlicheDarstellungen vorzugeben. Das ist nützlich, um zum Beispiel Hyperlinks beim Drucken extra aufzuführen oder fürGeräte mit geringerer Auflösung (zum Beispiel PDAs oder Mobiltelefone) die Anzeige mit Rücksicht auf diegeringere Seitenbreite und -höhe anzupassen.Neben verschiedenen Möglichkeiten, Farben und Schriften einzustellen, erlaubt <strong>CSS</strong> auch, Elemente detaillierter zugestalten, frei zu positionieren oder mit <strong>CSS</strong> 3 zu animieren.<strong>CSS</strong> gilt heute als die Standard-Stylesheetsprache für Webseiten. Die früher üblichen <strong>HTML</strong>-Elemente wie font odercenter sind als deprecated (missbilligt) gekennzeichnet, das heißt, sie sollen in Zukunft aus dem <strong>HTML</strong>-Standard


Cascading Style Sheets 65entfernt werden. [4] Grund ist eine Ausgliederung der designtechnischen Angaben aus dem reinen <strong>HTML</strong>-Quelltext,der im Rahmen des Markups nur die Struktur einer Seite wiedergibt, jedoch keine Hinweise auf Optik undGestaltung gibt.Geschichte und VersionenAnfängeDer erste Vorschlag für Web-Stylesheets kam 1993 auf, mehrere weitere folgten bis 1995. Cascading Style Sheets(<strong>CSS</strong>), wie sie aktuell bekannt sind, wurden 1994 von Håkon Wium Lie vorgeschlagen. Bert Bos arbeitete zu dieserZeit an der Implementierung eines Browsers namens Argo, der seine eigene Stylesheet-Sprache benutzte. Die beidenentschieden sich, zusammenzuarbeiten und <strong>CSS</strong> zu entwickeln.Es gab zu dieser Zeit auch andere Sprachen mit dem gleichen Ziel, die Erfinder von <strong>CSS</strong> brachten aber als erste dieIdee auf, Regeln zu definieren, die über mehrere Stylesheets hinweg vererbt werden konnten.Nach der Präsentation von <strong>CSS</strong> durch Lie auf der Konferenz „Mosaic and the Web“ in Chicago 1994, und später mitBos 1995 wurde das World Wide Web Consortium (W3C) auf <strong>CSS</strong> aufmerksam. Lie und Bos arbeiteten mit anderenMitgliedern in diesem Rahmen an <strong>CSS</strong> weiter. Im Dezember 1996 wurde dann die <strong>CSS</strong> Level 1 Recommendationpubliziert. Diesen Normierungsvorschlag befolgen die aktuellen Browser mittlerweile fast vollständig.<strong>CSS</strong>2 und 2.1<strong>CSS</strong> Level 2 (<strong>CSS</strong>2) wurde im Mai 1998 veröffentlicht. Bis heute (Stand: Januar 2010) wird diese Empfehlung vonkeinem verbreiteten Browser vollständig implementiert. Manche Browser setzen den größten Teil von <strong>CSS</strong>2 korrektum, andere hingegen bieten nur eine mangelhafte Unterstützung von wenigen Teiltechniken. Bei der Verwendung imWeb ergeben sich daher oft Schwierigkeiten.Seit 2002 arbeitete das W3C an einer Zwischenversion <strong>CSS</strong> Level 2 Revision 1 (<strong>CSS</strong>2.1), die die Erfahrungen mit<strong>CSS</strong>2 berücksichtigt, Unstimmigkeiten korrigiert und diejenigen Teiltechniken streicht, die bisher in verschiedenenBrowsern nicht korrekt implementiert wurden. Am 7. Juni 2011 wurde <strong>CSS</strong>2.1 als Recommendation veröffentlicht.<strong>CSS</strong>2.1 bringt selbst keine grundlegend neuen Fähigkeiten mit sich.<strong>CSS</strong>3Seit 2000 ist <strong>CSS</strong> Level 3 in der Entwicklung. Hier werden die Entwicklungen weiter vorangetrieben, die bereits mit<strong>CSS</strong>2 begonnen wurden. <strong>CSS</strong>3 wird im Gegensatz zu den Vorgängern modular aufgebaut sein, womit einzelneTeiltechniken (beispielsweise Steuerung der Sprachausgabe oder Selektoren) in eigenen Versionsschritten entwickeltwerden können. So nähert sich <strong>CSS</strong> bei seinen Fähigkeiten mehr dem etablierten DSSSL (für SGML) an und wirdwohl auch in Zukunft noch eine Alternative zu XML-basierten Stylesheet-Sprachen wie XSL-FO sein. Derzeitveröffentlichte und breit unterstützte Standards sind unter anderem <strong>CSS</strong> Color Level 3, <strong>CSS</strong> Namespaces, SelectorsLevel 3 und Media Queries. Neben diesen Modulen stehen weitere Elemente zur Diskussion, etwa ein Layout-Moduloder verschiedene Grafikfilter. [5] Moderne Browser unterstützen jedoch schon viele <strong>CSS</strong>3-Module, die noch nichtdurch das W3C standardisiert sind. [6]NachfolgerIm Frühjahr 2012 gab es mehrere Berichte, das W3C arbeite an einem Nachfolger von <strong>CSS</strong>3. Dieser solltenaturgemäß unter der Bezeichnung <strong>CSS</strong>4 veröffentlicht werden und unter anderem die Selektoren nochmalsleistungsfähiger machen und gleichzeitig vereinfachen. Im September 2012 haben Vertreter der entsprechendenArbeitsgruppe des W3C jedoch klargestellt, dass es <strong>CSS</strong>4 nicht geben wird: "There will never be a <strong>CSS</strong>4." Vielmehrsoll die künftige Entwicklung des Standards in Form einer schrittweisen Aktualisierung der Module von <strong>CSS</strong>3


Cascading Style Sheets 66geschehen.SyntaxDer Aufbau von <strong>CSS</strong>-RegelnSelektor [, Selektor2, …]{Eigenschaft-1: Wert-1;…Eigenschaft-n: Wert-n[;]}/* Kommentar *//* In eckigen Klammern stehen optionale Angaben */Eine <strong>CSS</strong>-Regel gibt an, dass für durch sie festgelegte Teile eines Dokuments eine bestimmte, ebenfalls in ihrangegebene Eigenschaftskombination gelten soll. Sie wird geschrieben als eine kommagetrennte Liste vonSelektoren ("Für diese Typen von Teilen … "), gefolgt von einer in geschweiften Klammern stehenden,semikolongetrennten Liste von Eigenschafts-Deklarationen (" … nimm alle diese Eigenschaften!"); nach der letztenEigenschafts-Deklaration ist ein abschließendes Semikolon erlaubt. Eine Eigenschafts-Deklaration besteht aus derenNamen und der Angabe, welchen Wert sie annehmen soll; diese Name-Wert-Paare werden ihrerseits durch einenDoppelpunkt getrennt.Um diese Teile einer Regel herum ist Weißraum frei verwendbar; häufig schreibt man den Doppelpunkt ohneZwischenraum hinter den Eigenschaftsnamen, jede Eigenschaftsdeklaration auf eigener Zeile und schließt auch dieletzte 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 Übersichtaller Selektoren, mit denen Elemente (meist <strong>HTML</strong>-Elemente) ausgewählt werden können.SelektorenEin Selektor nennt die Bedingungen, die auf ein Element zutreffen müssen, damit der nachfolgende Satz an<strong>CSS</strong>-Deklarationen mit seinen Darstellungsvorgaben auf das Element angewendet wird. Solche Bedingungenbeschreiben unzweideutig, welche Eigenschaften (Typ, Klasse, ID, Attribut oder Attributwert) Elemente habenmüssen oder in welchem Kontext sie im Dokument stehen müssen (Existenz eines bestimmten übergeordnetenElementes 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ührteinfache SelektoreninDefinitionErläuterung* Selektiert jedes Element <strong>CSS</strong>2E Selektiert jedes Element vom Typ E <strong>CSS</strong>1Universal selector [7] Der Universalselektor [8]Type selectors [9] Der Typselektor [10].c Selektiert jedes Element der Klasse c (analog[class~='c'])<strong>CSS</strong>1Class selectors [11] Der Klassenselektor [12]#myid Selektiert das Element mit der ID „myid“. <strong>CSS</strong>1ID selectors [13] Der ID-Selektor [14]


Cascading Style Sheets 67[foo]Selektiert Elemente, deren „foo“-Attribut gesetztist (unabhängig vom Wert)<strong>CSS</strong>2Attribute selectors [15] Attributpräsenz [16][foo=bar]Selektiert Elemente, deren „foo“-Attribut mit demWert „bar“ gesetzt ist<strong>CSS</strong>2Attributwerte [17][foo~=bar]Selektiert Elemente, deren „foo“-Attribut das Wort„bar“ enthält (also beispielsweise „bar“ oder auch„bar quz“ aber nicht „barquz“)<strong>CSS</strong>2[foo|=bar]Selektiert Elemente, deren „foo“-Attribut exakt dieZeichenfolge „bar“ ist oder mit der Zeichenfolge„bar-“ beginnt<strong>CSS</strong>2[foo^=bar]Selektiert Elemente, deren „foo“-Attribut mit derZeichenfolge „bar“ beginnt<strong>CSS</strong>3Substring matchingattribute selectors [18] Teilübereinstimmungen [19][foo$=bar]Selektiert Elemente, deren „foo“-Attribut mit derZeichenfolge „bar“ endet<strong>CSS</strong>3[foo*=bar]Selektiert Elemente, deren „foo“-Attribut dieZeichenfolge „bar“ enthält<strong>CSS</strong>3KombinatorenE FSelektiert alle Elemente F, die Nachfahren einesElements E sind<strong>CSS</strong>1Descendant selectors[20]Der Nachfahrenselektor [21]E > FSelektiert alle Elemente F, die ein Kind einesElements E sind<strong>CSS</strong>2Child selectors [22] Der Kindselektor [23]E ~ FSelektiert alle Elemente F, die einen Vorgänger Eauf gleicher Ebene haben<strong>CSS</strong>3General siblingcombinator [24] Der Geschwisterselektor [25]E + FSelektiert alle Elemente F, die einen direktenVorgänger E auf gleicher Ebene haben<strong>CSS</strong>2Adjacent siblingcombinator [26] Der Nachbarselektor [27]Pseudoklassen:link Selektiert unbesuchte Verweise <strong>CSS</strong>1:visited Selektiert bereits besuchte Verweise <strong>CSS</strong>1:active Selektiert das Element, das gerade angeklickt ist <strong>CSS</strong>1:hoverSelektiert das Element, über dem sich der <strong>CSS</strong>2Mauszeiger befindetThe link pseudo-classes[28]The dynamicpseudo-classes [30]Die Pseudoklassen :link und:visited [29]Die Pseudoklassen :hover,:active und :focus [31]:focusSelektiert das Element, das den Fokus (z. B. durchdie Tabulatortaste) erhalten hat<strong>CSS</strong>2:lang()Selektiert Elemente, deren Sprache über dasAttribut „lang“ festgelegt wurde<strong>CSS</strong>2The languagepseudo-class [32] Die Pseudoklasse :lang() [33]:targetSelektiert das Element, das Ziel des gerade ebenangeklickten Verweises ist<strong>CSS</strong>3The target pseudo-class[34]Die Pseudoklasse :target [35]:enabled:disabledSelektiert Elemente in Benutzeroberflächen, dieauswählbar sindSelektiert Elemente in Benutzeroberflächen, diegesperrt sind<strong>CSS</strong>3<strong>CSS</strong>3The :enabled and:disabled pseudo-classes[36]Die Pseudoklassen :enabled,:disabled und :checked [37]:checkedSelektiert Elemente von Benutzeroberflächen, dieangewählt sind<strong>CSS</strong>3The :checkedpseudo-class [38]:not(foo) Selektiert Elemente, für die „foo“ nicht zutrifft <strong>CSS</strong>3The negationpseudo-class [39] Die Pseudoklasse :not() [40]


Cascading Style Sheets 68strukturelle Pseudoklassen:first-childSelektiert Elemente, die das erste Kind ihresElternelementes sind<strong>CSS</strong>2:first-child pseudo-class[41]Die Pseudoklasse :first-child[42]:last-childSelektiert Elemente, die das letzte Kind ihresElternelementes sind<strong>CSS</strong>3:last-child pseudo-class[43]Die Pseudoklasse :last-child[44]:nth-child(...)Selektiert Elemente, die beispielsweise das n-teKind ihres Elternelementes sind<strong>CSS</strong>3:nth-child() pseudo-class[45]Die Pseudoklasse :nth-child()[46]:nth-last-child(...)Selektiert Elemente, die beispielsweise das n-teKind ihres Elternelementes sind, Zählung beginntvon hinten<strong>CSS</strong>3:nth-last-child()pseudo-class [47]Die Pseudoklasse:nth-last-child() [48]:only-childSelektiert Elemente, die das einzige Kind ihresElternelementes sind<strong>CSS</strong>3:only-child pseudo-class[49]Die Pseudoklasse :only-child[50]:first-of-typeSelektiert Elemente, die das erste Element diesesTyps ihres Elternelementes sind<strong>CSS</strong>3:first-of-typepseudo-class [51]Die Pseudoklasse :first-of-type[52]:last-of-typeSelektiert Elemente, die das letzte Element diesesTyps ihres Elternelementes sind<strong>CSS</strong>3:first-of-typepseudo-class [53]Die Pseudoklasse :last-of-type[54]:nth-of-type(...)Selektiert Elemente, die beispielsweise das n-teElement dieses Typs ihres Elternelementes sind<strong>CSS</strong>3:nth-of-type()pseudo-class [55]Die Pseudoklasse :nth-of-type()[56]:nth-last-of-type(...) Selektiert Elemente, die beispielsweise das n-teElement dieses Typs ihres Elternelementes sind,Zählung beginnt von hinten<strong>CSS</strong>3:nth-last-of-type()pseudo-class [57]Die Pseudoklasse:nth-last-of-type() [58]:only-of-typeSelektiert Elemente, die das einzige Elementdieses Typs ihres Elternelementes sind<strong>CSS</strong>3:only-of-typepseudo-class [59]Die Pseudoklasse :only-of-type[60]:root Selektiert das Wurzelelement <strong>CSS</strong>3:empty Selektiert Elemente, die keine Kinder haben <strong>CSS</strong>3:root pseudo-class [61] Die Pseudoklasse :root [62]:empty pseudo-class [63] Die Pseudoklasse :empty [64]Pseudoelemente::first-line Selektiert die erste Zeile des formatierten Textes <strong>CSS</strong>1The ::first-linepseudo-element [65]Das Pseudoelement ::first-line[66]::first-letterSelektiert das erste Zeichen des formatiertenTextes<strong>CSS</strong>1The ::first-letterpseudo-element [67]Das Pseudoelement ::first-letter[68]foo::beforeErzeugt und selektiert ein Element vor einemElement „foo“<strong>CSS</strong>2The ::before and ::afterpseudo-elements [69]Die Pseudoelemente ::beforeund ::after [70]foo::afterErzeugt und selektiert ein Element nach einemElement „foo“<strong>CSS</strong>2


Cascading Style Sheets 69Beispiel<strong>CSS</strong>:Das <strong>CSS</strong>-Box-Modellp.info {font-family: arial, sans-serif;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: ": ";}<strong>HTML</strong>:HinweisSie 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 <strong>CSS</strong>-kompatiblen Browser wie folgt dargestellt:


Cascading Style Sheets 70Hier werden die Deklarationen allen p-Elementen zugewiesen, die das class-Attribut mit dem Wert infobesitzen. Würde man das p im Selektor weglassen, würden alle Elemente der Klasse info betroffen sein, beimWeglassen des .info alle p-Elemente. span-Elemente innerhalb solcher Absätze werden in Fettschriftdargestellt; der Doppelpunkt wird als Pseudoelement erzeugt.Ein wichtiges Prinzip von <strong>CSS</strong> ist die Vererbung der Eigenschaftswerte an untergeordnete Elemente und dieKombination verschiedener Stylesheets (Kaskadeneffekt). Diese können dabei aus verschiedenen Quellen stammen:vom Autor des Stylesheets, dem Browser (User Agent) oder dem Benutzer.<strong>CSS</strong>-HacksEine Anwendung von <strong>CSS</strong>-Syntax bei der Gestaltung von Weblayouts sind sogenannte <strong>CSS</strong>-Hacks. Sie werdenbenutzt, um Unterschiede bei der Darstellung von Weblayouts in verschiedenen Browsern auszugleichen oder<strong>CSS</strong>-Anweisungen für bestimmte Webbrowser gesondert zuzuweisen oder auszuschließen. Der Begriff Hackbezeichnet dabei nichtstandardisierte <strong>CSS</strong>-Befehle, mit denen die Interpretationsschwäche eines Webbrowsersausgenutzt wird, der diese Anweisungen entweder interpretiert oder ignoriert. Damit können Schwachstellen vonWebbrowsern ausgeglichen werden, um möglichst in jedem Webbrowser das gleiche Ergebnis angezeigt zubekommen.Ein <strong>CSS</strong>-Hack kombiniert z. B. fehlerhaft angegebene Selektoren in Kombination mit zusätzlichen Zeichen oderenthält Anweisungen, die bestimmte Webbrowser nicht kennen. Ein bekanntes Beispiel für einen <strong>CSS</strong>-Hack ist dersogenannte Star-<strong>HTML</strong>-Hack. Das *-Zeichen dient als Universal-Selektor und ist vor dem Selektor html sinnlos.<strong>CSS</strong>-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 derInternet Explorer vor Version 7 interpretiert auch die zweite Zeile und färbt die Absätze rot, obwohl keinEltern-Element besitzt, auf das * zutreffen könnte.Kombination mit <strong>HTML</strong> oder X<strong>HTML</strong>Am häufigsten wird <strong>CSS</strong> mit <strong>HTML</strong> oder X<strong>HTML</strong> kombiniert. Dies kann an mehreren Orten geschehen, hier einigeBeispiele:• Als externes Stylesheet für eine (X)<strong>HTML</strong>-Datei (link-Element)• Als externes Stylesheet für eine X<strong>HTML</strong>-Datei (xml-stylesheet-Verarbeitungsanweisung)• Als internes Stylesheet in einer (X)<strong>HTML</strong>-Datei (style-Element)Dokument mit Formatierungenbody { color: purple; background-color: #d8da3d }


Cascading Style Sheets 71• Innerhalb von (X)<strong>HTML</strong>-Tags (style-Attribut)TextDie Einbindung als externes Stylesheet ist dabei die am häufigsten verwendete Methode. Sie bietet den Vorteil, dassfür mehrere Dokumente, die denselben Regelsatz benutzen, das Stylesheet nur einmal heruntergeladen werden muss.Auch vermeidet man so sich wiederholenden Code. <strong>CSS</strong> selbst ermöglicht durch die @import-Regel das Einbindenvon weiteren externen Stylesheets.Beispiel@import url(url_des_stylesheets);Es gibt drei Varianten Stylesheets mittels eines link-Elements einzubinden, die sich darin unterscheiden, wiezwingend 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 <strong>HTML</strong>-Dokument verknüpft, muss der Benutzer ausdrücklich wählen dieses zuverwenden. 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 "alternatestylesheet" nur in Verbindung mit einem anderen fest eingebundenen verwendet werden, damit es auch nur eineechte Alternative ist.Medienspezifische StylesheetsEs ist auch möglich, für verschiedene Medien verschiedene Stylesheets einzubinden, um zum Beispiel dieGestaltung beim Drucken oder auf Handy-Displays zu regulieren. Diesen Zweck erfüllt das Attribut media. Indieses Attribut werden die Parameter notiert, die für dieses Stylesheet gelten sollen.


Cascading Style Sheets 72ParameterBedeutungallStylesheet gilt für alle Ausgabegerätespeech (<strong>CSS</strong>2: aural) aurale Ausgabegeräte (z. B. Screenreader)brailleembossedhandheldprintprojectionscreenttytvBlindenschriftfähige AusgabegeräteBlindenschriftfähige DruckerHandhelds (Palmtops, PDAs, WinCE-Geräte)DruckerVideo-Beamer, Overhead-ProjektorenBildschirmeAusgabegeräte mit feststehenden Zeichentypen (z. B. Fernschreiber, Terminals oder auch ältere Mobiltelefone)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 <strong>CSS</strong>3 eingeführt wurde und das Prinzip desMedientyps in <strong>CSS</strong>2 erweitert. Anstatt starr zu definieren, welches Medium das Zielmedium ist, können mit MediaQueries die Eigenschaften des aktuellen Gerätes direkt abgefragt werden. Verfügbare Geräteeigenschaften sind zumBeispiel:• Breite und Höhe des Browserfensters• Breite und Höhe des Gerätes• Orientierung (Quer- oder Hochformat)• BildschirmauflösungVor allem im Bereich der mobilen Webprogrammierung werden Media Queries bereits jetzt häufig eingesetzt, umdie Webseite ideal an das aktuell verwendete Gerät anzupassen.Im folgenden Beispiel werden Elemente mit <strong>CSS</strong>-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 1025Pixel ist. In diesem Fall ändern sich die Eigenschaften, die vorher allgemein definiert wurden bzw. gelten zusätzlicheEigenschaften.#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 <strong>CSS</strong>-Techniken. 3. Auflage. Galileo Computing, Bonn 2012, ISBN978-3-8362-1695-1 (Detailreiche und anspruchsvolle Erklärung von <strong>CSS</strong>-Interna).• Michael Jendryschik: Einführung in X<strong>HTML</strong>, <strong>CSS</strong> und Webdesign. Addison-Wesley, München 2007, ISBN978-3-8273-2477-1 (Standardkonforme, moderne und barrierefreie Websites erstellen).• Kai Laborenz: <strong>CSS</strong> Praxis. 3. Auflage. Galileo Computing, Bonn 2005, ISBN 3-89842-577-0 (Grundlagen undReferenz, Praxisbeispiele, Tipps und Tricks, Barrierefreies Webdesign mit <strong>CSS</strong>).• Bettina K. Lechner, Bernhard Stockmann: <strong>CSS</strong> pur – Ultimative Weblösungen mit Stil. Addison Wesley,München 2009, ISBN 978-3-8273-2781-9 (Moderne <strong>CSS</strong>-Techniken: kompakter Grundlagenteil, 3Website-Prototypen mit Detailerklärungen).• Florence Maurice: Jetzt lerne ich <strong>CSS</strong>3. Markt+Technik, München 2012, ISBN 978-3-8272-4745-2 (Einführungin <strong>CSS</strong> und ausgewählte Techniken aus <strong>CSS</strong>3).• Florence Maurice: <strong>CSS</strong>3: Die neuen Features für fortgeschrittene Webdesigner. dpunkt, München 2013, ISBN978-3864901188 (Neuerungen in <strong>CSS</strong>3).• Jens Meiert: Webdesign mit <strong>CSS</strong>. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-712-6 (Methodik bei Arbeit mit<strong>CSS</strong>, Praxisbeispiele).• Peter Müller: Little boxes. Webseiten gestalten mit <strong>CSS</strong>. Grundlagen. Markt+Technik, München 2007, ISBN978-3-8272-4224-2 (aktualisierte, erweiterte Ausgabe).• Christopher Schmitt: <strong>CSS</strong> Kochbuch. 2. Auflage. O’Reilly, 2007, ISBN 978-3-89721-492-7 (Grundlagen undBeispiele zu <strong>CSS</strong>).• Heiko Stiegert: <strong>CSS</strong>-Design – Die Tutorials für Einsteiger. 1. Auflage. Galileo Design, Bonn 2008, ISBN978-3-8362-1155-0 (über 30 praxisnahe Tutorials, inkl. 4 Exkursen zum Thema <strong>CSS</strong>).• Heiko Stiegert: Modernes Webdesign mit <strong>CSS</strong>: Schritt für Schritt zur perfekten Website. 1. Auflage. GalileoDesign, Bonn 2011, ISBN 978-3-8362-1666-1 (über 20 praxisnahe Tutorials).• Dirk Jesse: <strong>CSS</strong>-Layouts. 2. Auflage. Galileo Design, Bonn 2008, ISBN 978-3-8362-1135-2 (Grundlagen,Praxiseinsatz und Integration).


Cascading Style Sheets 74Weblinks• W3C: Cascading Style Sheets [71] (englisch)• <strong>CSS</strong>-2-Spezifikation [72] – deutsche Übersetzung der Spezifikation• Doktorarbeit von Håkon Wium Lie [73] – Geschichte, alternative Formate, Designgrundsätze von <strong>CSS</strong> (englisch)• SELF<strong>HTML</strong> [74] – Ausführliche Darstellung, Verwendung zusammen mit <strong>HTML</strong>. Download möglich.• <strong>CSS</strong>-Tutorial [75] für einen kurzen Einstieg in <strong>CSS</strong>• Browserkompatibilität [76] – Ausführliche Tabelle zur Unterstützung von <strong>CSS</strong>-Eigenschaften und Selektorengängiger WebbrowserEinzelnachweise[1] http:/ / www. w3. org/ TR/ <strong>CSS</strong>1[2] http:/ / www. w3. org/ TR/ <strong>CSS</strong>2/[3] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/[4] SELF<strong>HTML</strong> (http:// de. selfhtml. org/ html/ text/ schrift. htm#art_groesse_farbe), Kompendium zu <strong>HTML</strong> und <strong>CSS</strong>, deutsch[5] w3.org: <strong>CSS</strong> Current Work (http:// www. w3. org/ Style/ <strong>CSS</strong>/ current-work)[6] caniuse.com: Vergleich von <strong>CSS</strong>3-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/ <strong>CSS</strong>21/ selector. html#universal-selector[8] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Universalselektor[9] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#type-selectors[10] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Typselektor[11] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#class-html[12] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Klassenselektor[13] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#id-selectors[14] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ ID-selektor[15] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#attribute-selectors[16] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Attributselektor/ Pr%C3%A4senz[17] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Attributselektor/ Wert[18] http:/ / www. w3. org/ TR/ css3-selectors/ #attribute-substrings[19] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Attributselektor/ Teil%C3%BCbereinstimmung[20] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#descendant-selectors[21] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Kombinator/ Nachfahrenselektor[22] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#child-selectors[23] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Kombinator/ Kindselektor[24] http:/ / www. w3. org/ TR/ css3-selectors/ #general-sibling-combinators[25] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Kombinator/ Geschwisterselektor[26] http:/ / www. w3. org/ TR/ css3-selectors/ #adjacent-sibling-combinators[27] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Kombinator/ Nachbarselektor[28] http:/ / www. w3. org/ TR/ <strong>CSS</strong>2/ selector. html#link-pseudo-classes[29] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ link,_visited[30] http:/ / www. w3. org/ TR/ <strong>CSS</strong>2/ selector. html#dynamic-pseudo-classes[31] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ hover,_active,_focus[32] http:/ / www. w3. org/ TR/ <strong>CSS</strong>2/ selector. html#lang[33] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ lang[34] http:/ / www. w3. org/ TR/ css3-selectors/ #target-pseudo[35] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ target[36] http:/ / www. w3. org/ TR/ css3-selectors/ #enableddisabled[37] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ not[41] http:/ / www. w3. org/ TR/ <strong>CSS</strong>21/ selector. html#first-child[42] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ first-child[43] http:/ / www. w3. org/ TR/ css3-selectors/ #last-child-pseudo[44] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-child[47] http:/ / www. w3. org/ TR/ css3-selectors/ #nth-last-child-pseudo[48] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ nth-last-child[49] http:/ / www. w3. org/ TR/ css3-selectors/ #only-child-pseudo[50] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ only-child[51] http:/ / www. w3. org/ TR/ css3-selectors/ #first-of-type-pseudo[52] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ 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/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ only-of-type[61] http:/ / www. w3. org/ TR/ css3-selectors/ #root-pseudo[62] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ root[63] http:/ / www. w3. org/ TR/ css3-selectors/ #empty-pseudo[64] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoklasse/ strukturelle_Pseudoklasse/ empty[65] http:/ / www. w3. org/ TR/ css3-selectors/ #first-line[66] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoelement/ first-line[67] http:/ / www. w3. org/ TR/ css3-selectors/ #first-letter[68] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoelement/ first-letter[69] http:/ / www. w3. org/ TR/ css3-selectors/ #gen-content[70] http:/ / wiki. selfhtml. org/ wiki/ <strong>CSS</strong>/ Selektoren/ Pseudoelement/ before,_after[71] http:/ / www. w3. org/ Style/ <strong>CSS</strong>/[72] http:/ / www. edition-w3c. de/ TR/ REC-<strong>CSS</strong>2[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 76Logische AuszeichnungenLogische Auszeichnungen in <strong>HTML</strong> 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. ImGegensatz 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 Textanstatt als Zitat direkt kursiv kennzeichnen. In anderen Ländern versteht man unter Zitaten aber nur unterstrichenenText. In solchen Fällen werden weniger die physischen Auszeichnungen angewendet, sondern mehr die logischen.Weblinks• Logische Auszeichnungen im Text [1] – Seite bei Self<strong>HTML</strong>Quellennachweise[1] http:/ / de. selfhtml. org/ html/ text/ logisch. htmPhysische AuszeichnungenPhysische Auszeichnungen legen in <strong>HTML</strong> 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 – imGegensatz zu logischen Auszeichnungen – unflexibel sind und der Betrachter wenig Einfluss auf die Erscheinunghat.Wenn z. B. ein Text als zitiert kenntlich gemacht werden soll, so hat man die Möglichkeit, diesen kursiv zumarkieren. Man selbst erkennt kursive Texte sofort als Zitat. Es kann aber auch sein, dass in anderen Regionen derWelt Zitate nur unterstrichen erkannt werden. In den vielen Fällen ist es aber nicht von Bedeutung, ob man logischeAuszeichnungen oder physische Auszeichnungen verwendet.Weblinks• Physische Auszeichnungen im Text [1] – Seite bei Self<strong>HTML</strong>Quellennachweise[1] http:/ / de. selfhtml. org/ html/ text/ physisch. htm


Quirks-Modus 77Quirks-ModusDer 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 WebbrowsernDie wichtigsten Quirks-Modi finden sich in den aktuellen Webbrowsern. Diese sollen die Abwärtskompatibilität zuWebsites sicherstellen, die veralteten oder ungültigen <strong>HTML</strong>- oder <strong>CSS</strong>-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 derQuirks-Modus vor allem deshalb, weil nur wenige Websites sich an die W3C-Standards halten: Viele Seiten sind fürden Internet Explorer oder auch einen älteren Netscape Navigator entwickelt. Diese Browser interpretieren dieStandards teilweise fehlerhaft. Moderne Browser, die die aktuellen Standards unterstützen, würden diese Seiten zwarkorrekt, aber nicht wie gewünscht anzeigen. Durch den Quirks-Modus ist es häufig möglich, auch diese eigentlichfehlerhaften Seiten anzuzeigen.Alle modernen Browser richten den Darstellungsmodus nach der Dokumenttypdefinition (Doctype) im<strong>HTML</strong>-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 gestaltetenX<strong>HTML</strong>-Dokumenten deren Dokumenttypdefinition nicht an und wechselt in den Quirks-Modus. SolcheDokumente enthalten in der ersten Zeile die XML-Deklaration mit elementaren Angaben zum verwendetenZeichensatz, statt, wie vom Browser irrtümlich erwartet, die Dokumenttypdefinition. Dadurch können dieseDokumente fehlerhaft dargestellt werden.Der Quirks-Modus ist das Gegenstück zum Standardkonformen Modus. Einige Browser verfügen außerdem übereinen Almost Standard Modus, der sich im Wesentlichen an den Standards orientiert, jedoch einige Fehler mitbesonders schweren Auswirkungen simuliert.


Quirks-Modus 78Quirks-Modi in weiteren ProgrammenDer Turbo Assembler hatte einen Quirks-Modus, in dem Bugs des verbreiteten MASM von Microsoft simuliertwurden.Einzelnachweise[1] http:/ / blogs. technet. com/ b/ sieben/ archive/ 2010/ 11/ 29/ kompatibilit-228-tsmodi-in-internet-explorer-9. aspxWeblinks• Quirks-Modus & <strong>CSS</strong>-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• <strong>HTML</strong>, <strong>CSS</strong>, 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-StylesheetEin Reset-Stylesheet (oder auch: <strong>CSS</strong> Reset) ist eine Sammlung von Stylesheet-Definitionen, die Formatierungen für<strong>HTML</strong>-Elemente vereinheitlichen oder zurücksetzen.DefinitionEin <strong>CSS</strong>-Reset ist abzugrenzen von einem <strong>CSS</strong>-Framework. Ein Reset-Stylesheet hat lediglich die Aufgabe,Basisformatierungen zurückzusetzen, ohne dem Benutzer eine API bereitzustellen. Oftmals sind <strong>CSS</strong>-Resets Teileeines <strong>CSS</strong>-Frameworks.ProblematikJeder Browser hat unterschiedliche Standardeinstellungen für sämtliche <strong>HTML</strong>-Elemente. So ist etwa die Farbe fürLinktexte im Internet Explorer 7 eine andere als die im Internet Explorer 8. [1] Auch Abstandsdefinitionen oderTextformatierungen können sich je nach Browser unterschiedlich auswirken: Der Abstand eines Paragraph-Elementsunterscheidet sich im Internet Explorer beispielsweise vom Mozilla Firefox. Wenn ein Entwickler nun für einElement keine eigenen Styleangaben definiert hat, so benutzt der jeweilige Browser sein Basisstylesheet. Dies kannunvorhergesehene Auswirkungen auf das Gesamtlayout zur Folge haben, welche besonders bei pixelgenauenDesigns weitreichende Folgen haben können.


Reset-Stylesheet 79Das Zurücksetzen der Stylesheet-DefinitionenEtwa 2004 wurden erste sogenannte Stylesheet-Resets veröffentlicht [2] , welche sich auf das Zurücksetzen derAbstandsangaben beschränkten:* {}padding:0;margin:0;Dieses Verfahren wurde von verschiedenen Entwicklern nach und nach verfeinert, so dass nur ausgewählte undsinnvolle Elemente auf grundlegende Angaben zurückgesetzt wurden.Bekannte Stylesheet-Resets• Ein bekanntes <strong>CSS</strong>-Reset ist Teil von Yahoo! User Interface (YUI) [3]• Eric Meyers <strong>CSS</strong> Reset ist ebenfalls sehr bekannt und setzt nahezu jedes Element auf einen unformatiertenZustand [4]• normalize.css setzt <strong>HTML</strong>-5-Elemente browserübergreifend auf Standardwerte zurück und wird von etabliertenWebseiten genutzt [5]VorteileMit der Hilfe eines Stylesheet-Resets haben Entwickler die volle Kontrolle über das Aussehen und diePositionierung der <strong>HTML</strong>-Elemente innerhalb des Markups. Im Idealfall sieht die erstellte Webseite in jedemBrowser exakt identisch aus.Nachteile• Viele <strong>CSS</strong>-Resets entfernen jede Formatierung eines <strong>HTML</strong>-Elements. So hat beispielsweise selbst dasstrong-Element, welches hervorgehobenen bzw. fettgedruckten Text auszeichnet, in Form und Farbe oft keinenUnterschied mehr zum Rest des Textes. Der Entwickler muss sich also um jeden designrelevanten Parameterseines <strong>HTML</strong>-Codes kümmern.• Je nach Umfang eines Resets entsteht eine höhere Ladezeit, da die bestehende Stylesheet-Datei entwedererweitert oder die Ressource zusätzlich geladen werden muss.Weblinks• Übersicht über verschiedene <strong>CSS</strong>-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) 80Quelle(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 imGarten, 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 BearbeitungenHypertext 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, CurtisNewton, 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, HamburgerHydra, 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äusWander, 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 BearbeitungenExtensible 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 ds, 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 BearbeitungenExtensible Hypertext Markup Language Quelle: http://de.wikipedia.org/w/index.php?oldid=119132980 Bearbeiter: -EyMa-, A Ruprecht, ASM, Adri42, Ahoerstemeier, Aiko, Aka, AndreasLippold, 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, StefanMajewsky, 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 BearbeitungenWYSIWYG 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, MaximilianSommer, 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 BearbeitungenWYSIWYM Quelle: http://de.wikipedia.org/w/index.php?oldid=116840370 Bearbeiter: 0g1o2i3k4e5n6, AWak3N, DaBrian, Elwikipedista, ErikDunsing, Fleasoft, Frut, HaukeZuehl, HelmutZenz, 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 BearbeitungenMarkdown 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 BearbeitungenLyX 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 BearbeitungenZeichenkodierung 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 BearbeitungenZeichensatz 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) 81Bä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 BearbeitungenUnicode 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 atwiki, 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örgKnappen, 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 BearbeitungenUTF-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, UweGille, Vlado, Warp, Wdwd, Wisterer, Wst, XZise, Ziegenmilch, Zxb, pop-mu-12-2-dialup-48.freesurf.ch, °, 182 anonyme BearbeitungenMultipurpose 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 BearbeitungenLynx (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 BearbeitungenCascading 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, BernardLadenthin, 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, MichaelKü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, StefanBreunig, 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 BearbeitungenLogische Auszeichnungen Quelle: http://de.wikipedia.org/w/index.php?oldid=108066613 Bearbeiter: Bahnmoeller, Chaddy, DtLS2012, Mst, Silberchen, Spuk968, T§, UlrichJ, 4 anonymeBearbeitungenPhysische Auszeichnungen Quelle: http://de.wikipedia.org/w/index.php?oldid=108066606 Bearbeiter: Bahnmoeller, Chaddy, DtLS2012, Jörg Knappen, Leit, Mst, Silberchen, T§, UlrichJ, 2anonyme BearbeitungenQuirks-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 anonymeBearbeitungenReset-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 82Quelle(n), Lizenz(en) und Autor(en) des BildesDatei:<strong>HTML</strong>.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:<strong>HTML</strong>.svg Lizenz: Creative Commons Attribution-Sharealike 2.5 Bearbeiter: en:User:DreftymacDatei: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:X<strong>HTML</strong>.svg Quelle: http://de.wikipedia.org/w/index.php?title=Datei:X<strong>HTML</strong>.svg Lizenz: Creative Commons Attribution-Sharealike 2.5 Bearbeiter: en:User:DreftymacDatei:SGT Satz-Gestaltungs-Terminal.JPG Quelle: http://de.wikipedia.org/w/index.php?title=Datei:SGT_Satz-Gestaltungs-Terminal.JPG Lizenz: Creative Commons Attribution-Sharealike3.0 Germany Bearbeiter: Hannes SchöllaufDatei:Ooowysiwyg.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Ooowysiwyg.png Lizenz: Creative Commons Attribution-ShareAlike 3.0 Unported Bearbeiter: nummer9Datei: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, ShookeDatei:LyX_loremipsum.png Quelle: http://de.wikipedia.org/w/index.php?title=Datei:LyX_loremipsum.png Lizenz: Creative Commons Attribution-Sharealike 3.0 Bearbeiter: KaiMartinDatei: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:KaiMartinDatei: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/Originaluploaded 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 undwird 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 derVersionsgeschichte 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 RochaDatei:Boxmodell-detail.gif Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Boxmodell-detail.gif Lizenz: Creative Commons Zero Bearbeiter: Matthias ApselDatei:Absatz_mit_<strong>CSS</strong>_gestaltet.gif Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Absatz_mit_<strong>CSS</strong>_gestaltet.gif Lizenz: Public domain Bearbeiter: Benutzer: Günther M. Apsel


Lizenz 83LizenzWichtiger Hinweis zu den LizenzenDie 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 Autorenlisteerscheinen. 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 - DeedDiese "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 anfertigenZu 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 diedaraufhin 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änkungDie „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 selbstentfaltet keine juristische Wirkung und erscheint im eigentlichen Lizenzvertrag nicht.GNU Free Documentation LicenseVersion 1.2, November 2002Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USAEveryone is permitted to copy and distribute verbatim copiesof this license document, but changing it is not allowed.0. PREAMBLEThe 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 freesoftware.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 thisLicense 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 orreference.1. APPLICABILITY AND DEFINITIONSThis 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-freelicense, 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 licenseif 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 ofhistorical 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 abovedefinition 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 aBack-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 editorsor (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 totext 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 notTransparent 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, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple <strong>HTML</strong>,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 <strong>HTML</strong>, 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 titlepage 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 sectionname 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" accordingto 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 regardsdisclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.2. VERBATIM COPYINGYou 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 reproducedin 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 mayaccept 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 QUANTITYIf 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 thatcarry, 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 covermust 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 Documentand 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 acomputer-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 latteroption, 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 timeyou 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. MODIFICATIONSYou 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 roleof 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 usethe 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 principalauthors, 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. Thesemay 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 giventherein.• 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 asinvariant. 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 organizationas 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 ofBack-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 areacting 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 DOCUMENTSYou 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 ofthe 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 thetitle 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 ofInvariant Sections in the license notice of the combined work.


Lizenz 84In 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 DOCUMENTSYou 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 regardingverbatim copying of that document.7. AGGREGATION WITH INDEPENDENT WORKSA 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 compilationis 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 notthemselves 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 bracket theDocument 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. TRANSLATIONTranslation 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 anyWarranty 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 ofthis 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. TERMINATIONYou 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 terminateyour 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 LICENSEThe 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 newproblems 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 andconditions 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 versionever published (not as a draft) by the Free Software Foundation.ADDENDUM: How to use this License for your documentsTo 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 documentunder the terms of the GNU Free Documentation License, Version 1.2or 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 theFront-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 freesoftware.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!