Computervermittelte Kommunikation

cmclogo.gif

Kapitel 12: OSI-Schicht 6: Presentation Layer -- Datendarstellungsschicht


von Margarete Payer

mailto: payer@hbi-stuttgart.de


Zitierweise / cite as:

Payer, Margarete <1942 -- >: Computervermittelte Kommunikation. -- Kapitel 12: OSI-Schicht 6: Presentation Layer -- Datendarstellungsschicht. -- Fassung vom 23. Juni 1997. -- URL: http://www.payer.de/cmc/cmcs12.htm. -- [Stichwort].

Letzte Überarbeitung: 23. Juni 1997

Anlaß: Lehrveranstaltungen an der HBI Stuttgart

©opyright: Dieser Text steht der Allgemeinheit zur Verfügung. Eine Verwertung in Publikationen, die über übliche Zitate hinausgeht, bedarf der ausdrücklichen Genehmigung der Verfasserin.


Zur Inhaltsübersicht von Margarete Payer: Computervermittelte Kommunikation.


12.0. Übersicht



12.1. Merkmale der Datendarstellungsschicht


Die Datendarstellungsschicht dient dazu, die Daten so darzustellen, wie sie tatsächlich auf der Leitung übertragen werden sollen. Diese Darstellung muß nicht identisch sein mit der Darstellung auf der Anwendungsschicht.

Die Darstellungsschicht ist zuständig für:

Die Darstellungsschicht ist nur für die Syntax (die Darstellung der Daten) zuständig, nicht für die Semantik (d.h. die Bedeutung der Daten). Für die Semantik sind nur die Anwendungen zuständig. Die Darstellungsschicht soll gewährleisten, daß die Anwendungen Syntax-unabhängig miteinander kommunizieren können. Die Protokolle der Darstellungsschicht wandeln also die anwendungsspezifischen Syntaxe in eine gemeinsame Syntax um, sodaß sich die Anwendungen nicht um die Kompatibilität ihrer Syntax zu kümmern brauchen.

Aufgaben der Datendarstellungsschicht:

Funktionen innerhalb der Datendarstellungsschicht:

 


12.2. Protokolle für die Datendarstellungsschicht


OSI Service Definition:
X.216 Presentation service definition
ISO 8822 Connection oriented presentation service definition
OSI Protocol Specification:
X.226 Presentation protocol specification
ISO 8823 Connection oriented presentation protocol specification
ISO 8824: Abstract Syntax Notation 1 (ASN.1)
LAN:
ISO 8822: Connection oriented presentation service definition
ISO 8823: Connection oriented presentation protocol specification
ISO 8824: Abstract syntax notation One (ASN.1)
ISO 8825: Basic encoding rules for ASN.1
Packet-switched data network:
X.216: OSI Presentation service definition note
Public-switched telephone network:
T.50: International reference alphabet -- 7-bit coded character set for information interchange
T.51: Latin based coded character sets for telematic services

12.3. ASN.1 -- Abstract Syntax Notation One


12.3.1. Weiterführende Ressourcen


Eine sehr klare Darstellung von ASN.1 ist in:

Stallings, William: Data and computer communications. -- 4. ed. -- London [u.a.] : Prentice Hall, 1994. -- 875 S. -- ISBN 0-13-326828-4. -- S. 639-672


12.3.2. Merkmale von ASN.1


ISO 8824 (CCITT/ITU X.208) -- Abstract Syntax Notation One (ASN.1)

ISO 8825 (CCITT/ITU X.209) -- Basic Encoding Rules (BER)

ASN.1 bietet eine Grammatik zur Definition von Datenstrukturen sowie Festlegungen zur Umsetzung von Datenstrukturen und Elementen in ein netzeinheitliches Format (Transfer Syntax).

ASN.1 hat sich weitgehend durchgesetzt bei der Entwicklung von OSI-bezogenen Standards und TCP/IP-bezogenen Standards. Man verwendet ASN.1 um das Format von mittels der Protokolle ausgetauschten Daten sowie die disebezüglichen Operationen zu definieren.

Die ASN.1-Umwandlung kann bis zu 80% (!) des CPU-Aufwandes für ein Paket bis zur Applikation hin ausmachen. ASN.1 ist nicht flexibel, sodaß eine Verbesserung durch übliche Techniken der Leistungssteigerung (z.B. Paralellverarbeitung) nicht möglich ist.

ASN.1 ist eine Notation zur Beschreibung


12.3.3. Grundbegriffe von ASN.1


12.3.3.1. Module


Der Grundbaustein einer ASN.1-Spezifikation ist das Modul (module).

ASN.1 kann benutzt werden, um Datenstrukturen zu definieren. Diese Definition geschieht in Form eines benannten Moduls. Der Name des Moduls wird dann zur Bezeichnung der Datenstruktur verwendet.

Struktur eines Modul:

<modulreference> DEFINITIONS::=
BEGIN
 EXPORTS
 IMPORTS
 AssignmentList
END

Erklärung:

modulreference:
Name des Moduls
EXPORTS:
Definitionen, die aus diesem Modul von anderen Modulen übernommen werden können
IMPORTS:
Definitionen, die aus anderen Modulen in dieses Modul übernommen werden sollen
AssignmentList:
Typen-Zuweisungen (type assignments), Wert-Zuweisungen (value assignments), Macrodefinitionen
Typen- und Wert-Zuweisungen haben die Form:

<name>::<description>


12.3.3.2. Darstellungs-Konventionen


ASN.1 types und values werden in einer Programmiersprache-artigen Notation dargestellt. Dabei gelten folgende Regeln:


12.3.3.3. Abstakte Daten-Typen (abstract data types)


Ein type ist eine Menge von Werten (values). Für einige types gibt es eine endliche Anzahl von möglichen Werten, für andere eine unendliche. Ein Wert ist umgekehrt ein Element der type-Menge.


Arten von types:

Types und Werten kann man mit mittels des ASN.1 assignement operators ::= einen Namen zuordnen. Dieser Name kann dann verwendet werden bei der Definition anderer types und Werte.

Jeder ASN.1 type außer CHOICE und ANY hat einen tag (Identifikator). Jeder tag besteht aus einer tag-classe und einer nicht-negativen tag-number.


Tag classes:


Universal types (Auswahl):


12.3.3.4. Beispiel der Definition einer Datenstruktur


Informelle Beschreibung eines persönlichen Datensatzes:

Name: John P Smith

Title: Director
Employee Number: 51
Date of Hire: 17 September 1971
Name of Spouse: Mary T Smith
Number of Children: 2

Child Information:
Name: Ralph T Smith
Date of Birth: 11 November 1957

Child Information:
Name: Susan B Jones
Date of Birth: 17 July 1959


ASN.1 Beschreibung der Struktur des Datensatzes:

PersonelRecord ::= [APPLICATION 0] IMPLICIT SET {
 Name,
 title [0] VisibleString,
 number EmployeeNumber,
 dateOfHire [1] Date,
 nameOfSpouse [2] Name,
 children [3] IMPLICIT SEQUENCE OF ChildInformation DEFAULT {}}

ChildInformation ::= SET {
 Name,
 dateOfBirth [0] Date}

Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
 givenName VisibleString,
 initial VisibleString,
 familyName Visible String }

EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGER

Date ::= [APPLICATION 3] IMPLICIT VisibleString -- YYYYMMDD

ASN.1 Beschreibung des obigen einzelnen Datensatzes (record value):

{ {givenName "John", initial "P", familyName "Smith"},
title "Director"
number51
dateOfHire "19710917"
nameOfSpouse{givenName "Mary", initial "T", familyName "Smith"},
children
{ { {givenName "Ralph", initial "T", familyName "Smith"}
 dateOfBirth "19571111"
 { {givenName "Susan", initial "B", familyName "Jones"}
 dateOfBirth "19590717"}}}

Erklärung im Einzelnen in

Stallings, William: Data and computer communications. -- 4. ed. -- London [u.a.] : Prentice Hall, 1994. -- 875 S. -- ISBN 0-13-326828-4. -- S. 651-653.


12.3.3.5. BER -- Basic Encoding Rules


Die Basic Encoding Rules (BER) geben an, wie man einen ASN.1 value als Oktett-Reihe darstellen kann.

Es gibt drei Dartellungsmethoden. Die Wahl richtet sich nach der Art des value und danach, ob die Länge des value zuvor schon bekannt ist.

Bei jeder dieser Darstellungsmethoden hat die BER-Kodierung drei bzw. vier Teile:


12.4. Formate zum Austausch von Dokumenten


Es gibt viele Versuche, hard- und software-unabhängige Formate für Dokumente zu schaffen und durchzusetzen. Bisher herrscht aber immer noch Chaos, und ohne Umwandlungsprogramme kommt man kaum aus.


12.4.1. ASCII-Text


ASCII-Text kann von fast allen Textbearbeitungsprogrammen verwertet werden. ASCII erlaubt aber keine unterschiedlichen Schriften, Schriftarten, kompliziertere Textformatierungen, Grafiken, Farben.

Weiterführende Ressourcen:

Yahoo Categories:


12.4.2. UNICODE


UNICODE ist ein Standard, der durch eine 16-bit-Kodierung die einheitliche Kodierung aller Zeichensätze derWelt erlaubt.

Die gegenwärtig gültige Fassung des Standards (2.0) unterstützt offiziell die im Folgenden genannten Schriften und Zeichensätze. Die Reihenfolge der Aufzählung entspricht der Abfalge in der Zuteilung der 16-Bit-Codes. Die Links verweisen auf Zeichentafeln mit der Kodierung der einzelnen Zeichen. (Zugriff auf alle Links am 6. 6. 97).


WWW:

Unicode Homepage / Unicode Inc. -- Zugriff am 6. 6. 97. -- [Die Informationsquelle; sehr ergiebig!]


12.4.3. SGML -- Standard Generalized Markup Language


12.4.3.1. Einleitung und Geschichte


SGML -- Standard Generalized Markup Language ist eine Dokument-Definier-Sprache, die den Austausch von Informationen beliebiger Komplexität unabhängig von herstellerspezifischer Soft- und Hardware ermöglichen soll.

SGML ist internationaler ISO-Standard:

ISO 8879 (1986): Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML)

Ausgangspunkt zu SGML in ihrer jetzigen Form war der Paradigmawechsel vom Konzept des Specific Coding (Procedural Markup) zum Konzept des Generic Coding (Descriptive Markup).

Vermutlich geht die Anregung zu diesem Paradigmenwechsel auf William Tunnicliffe zurück, der 1967 bei einer Sitzung des Cannadian Government Printing Office vorschlug, den Informationsgehalt eines Dokumentes von seinem Format zu trennen. Diese und andere Anregungen führten zur Gründung des Generic Coding Projekt innerhalb des Composition Committe der Graphic Communications Association (GCA). In diesem Projekt wurde das GenCode(R)-Konzept entwickelt: man erkannte, daß verschiedene Arten von Dokumenten verschiedene Codes benötigen und, daß man kleinere Dokumente als Elemente in größere Dokumente einbinden könnte.

Es zeigte sich bald, daß der Versuch, ein Generic Coding für alle Dokumententypen zu entwerfen, daran scheitern würde, daß es zu viele verschiedene Dokumententypen mit zu vielen unterschiedlichen Arten von Elementen gibt. Die Lösung fand man darin, daß man SGML nicht als eine Gesamtheit von standardisierten Codes entwarf, sondern als eine Art Programmiersprache, mit der man eine Dokumenten-Typ-Definition (document type definition) (DTD) erstellen konnte. Die DTD kann die Elemente usw. definieren, die man für ein Dokument oder eine Gruppe ähnlicher Dokumente benötigt. Das Vorbild dafür lieferten Programmiersprachen, die es erlauben "primitives" zu definieren, Grundoperationen, die man in einem header file zusammenstellen kann, um Befehle zu definieren, die das Programm dann benutzt.

1980 wurde ein erster Entwurf von SGML veröffentlicht. Im Oktober 1985 wurde ein Draft International Standard veröffentlicht und vom Office of Official Publications of the European Community angenommen. 1986 wurde der endgültige Text, der am CERN ausgearbeitet wurde, von ISO als Standard akzeptiert und in Rekordzeit veröffentlicht.


12.4.3.2. Anwendungen von SGML


12.4.3.2.1. Electronic Manuscript Project (-> Z39.50)


Von 1983 bis 1987 entwickelt. SGML Anwendung zur Herstellung von Büchern, Zeitschriften und Zeitschriftenartikeln. Zweck ist u.a. die Ermöglichung des Manuskriptaustauschs zwischen Autoren und Verlegern. Enthalten sind optionelle Element-Definitionen für komplexe Tabellen und wissenschaftliche Formeln.

An der Entwicklung beteiligt waren u.a.:

Diese Anwendung wurde besonders von den CD-ROM-Verlegern weitgehend angenommen. Als ANSI Z39.50 wurde sie amerikanischer Standard. Zu Z39.50 s. unten.


12.4.3.2.2. Computer-aided Aquisition and Logistic Support (CALS)


CALS ist ein Projekt des U.S. Department of Defense und des U.S. Departement of Commerce zur elektronischen Erwerbung und Verwaltung von technischen Informationen, insbesondere zu Waffensystemen. Der SGML-Teil von Cals wurde seit 1987 entwickelt und wurde 1987 Militär-Standard MIL-M-28001. Ähnliche militärische SGML-Projekte laufen z.B. in Kanada, Schweden, Australien.


12.4.3.2.3. HyTime -- Hypermedia/Time-based Structuring Language


HyTime ist eine Anwendung von SGML für Hypermedia (Hypertext and Multimedia).

HyTime ist ISO-Standard 10744 (1992).

Wegen der rasanten Entwicklungen im Bereich der Hypermedia ist Hytime kein Standard, der alle Aspekte von Hypermedia umfaßt. Hytime standardisiert z.B. nicht bestimmte Datenformate. Hytime standardisiert aber folgende Teilgebiete:

Hytime ist ein Standard für

links to anything, anywhere, at any time

HyTime ist gedacht für Integrated Open Hypermedia (IOH) Anwendungen:

IOH folgt dem bibliographischen Modell des Hyperlinking: mögliche "bibliographische" Verweisungen auf jeden Teil jedes Dokumentes durch eine standardisierte bibliographische Verweisung:


12.4.3.3. Grundzüge von SGML


Jedes Dokument besteht aus:

SGML ist eine Sprache zum Definieren des Markup

SGML ist eine Computer-Sprache: ein Computerprogramm -- ein validating SGML parser -- liest die Definitionen, lernt die daraus folgenden Regeln und wendet sie auf das Dokument an.


12.4.3.3.1. Aufbau eines SGML-Dokumentes



12.4.3.3.2. Zeichensätze


SGML beginnt jeweils mit der Definition eines character set, normalerweise auf der Grundlage von ASCII. Spezialzeichen werden mittels ASCII definiert in entity references. So benötigt man keine im Datenaustausch problematischen ESC-, CTRL- oder ALT-Zeichen.

Beispiel für Definitionen von Sonderzeichen: Umlaute und ß:


12.4.3.3.3. DTD -- Document Type Definition (Dokumenttypdefinition)


Die document type definition (DTD) definiert die Elemente und anderen Konstrukte, die für ein spezifisches Dokument oder eine Gruppe von Dokumenten benötigt werden.

Die Elemente werden in element declarations definiert. Element declarations haben zwei Aufgaben:

Beispiel: Definition des Elementes Kapitel: beginnt mit Kapitelüberschrift, enthält beliebig viele Paragraphen, eventuell auch Zwischenüberschriften:

<!ELEMENT Kapitel (KapTitel, (Para | Zwischentit)+) >

Erklärung:

<!ELEMENT = es folgt eine element declaration

Kapitel = Name des Elementes

( ) = Unterelemente

, = darauf folgend

| = oder

+ = eines oder mehrere

Die Anweisung für SGML-Software lautet also: "Kapitel ist der Name eines Elementes, welches aus einem KapTitel sowie ein oder mehreren Para oder Zwischentit besteht."

Nun müssen die Inhalte (contents) der Unterelemente (subelements) KapTitel, Para, Zwischentit definiert werden. Wenn alle das gleiche content model haben, kann man dies in einer einzigen element definition tun:

<!ELEMENT (KapTitel | Para | Zwischentit) (#PCDATA)>

PCDATA ist ein reservierter Name, der definiert, daß die betreffenden Elemente keine eigenen Unterelemente haben, sondern nur Zeichen enthalten, die zum Inhalt des Dokumentes gehören. PCDATA = parsed character data.

Mit diesen element definitions und den zuvor gegebenen entity references könnte man z.B. folgendes Dokument erstellen:

<Kapitel><KapTit>Katzenweisheit</KapTit>

<Para>Katzen sind &auml;u&szlig;erst kluge Tiere. Sie tun nichts, wovon sie keinen Nutzen f&uuml;r sich einsehen .... </Para>

<Zwischentit>T&uuml;pfli zum Beispiel</Zwischentit>

<Para>T&uuml;pfli ist ein Kater. Sein Vater oder Gro&szlig;vater war vermutlich ein sexuell frustrierter Wildkater, der seine sexuellen Bed&uuml;rfnisse bei einer Hauskatze befriedigte ... </Para>

</Kapitel>

Man kann Elementen Attribute zuordnen. So könnte man z.B. dem Element Para zwei Stufen der Zugänglichkeit zuordnen: topsecret und public:

<!ATTLIST para secrecy (topsec|public) "public">

"public" definiert public als default value: Alle Paragraphen, die nicht ausdrücklich als topsecret gekennzeichnet werden, sind public.

Unser Beispiel könnte dann z.B. so aussehen:

<Kapitel><KapTit>Katzenweisheit</KapTit>

<Para>Katzen sind &auml;u&szlig;erst kluge Tiere. Sie tun nichts, wovon sie keinen Nutzen f&uuml;r sich einsehen .... </Para>

<Zwischentit>T&uuml;pfli zum Beispiel</Zwischentit>

<Para secrecy=topsec>T&uuml;pfli ist ein Kater. Sein Vater oder Gro&szlig;vater war vermutlich ein sexuell frustrierter Wildkater, der seine sexuellen Bed&uuml;rfnisse bei einer Hauskatze befriedigte ... </Para>

</Kapitel>

In diesem Falle würde die Abstammung Tüpflis nur berechtigten Geheimnisträgern zugänglich gemacht.


12.4.3.3.3.1. Syntax der formal markup declarations: Allgemeine Syntax einer formal markup declaration


<!keyword parameter associated_parameters(S)>

Erklärung:

parameter:
Parameter ist immer der Name, der für das betreffende Markup verwendet werden soll
keyword:
Die wichtigsten Keywords sind:

Comment declarations für Anmerkungen und Erklärungen des Produzenten des SGML-Dokumentes, die vom System nicht beachtet werden sollen, haben folgende Syntax:

alleinstehend:
<!-- Text der Anmerkung -->
am Ende innerhalb einer markup declaration:
--Text der Anmerkung--

Innerhalb von associated_parameter können folgende Indikatoren und Verknüpfungszeichen (connectors) vorkommen:

?
optional: das betreffende Element usw. kann nicht oder einmal vorkommen
*
optional und wiederholbar: das betreffende Element usw. kann nicht, einmal oder mehrmals vorkommen
+
notwendig und wiederholbar: das betreffende Element usw. muß mindestens einmal vorkommen
,
sequential: a,b = auf a muß b folgen
a,b? = auf a kann b folgen
&
und: a&b sowohl a ls auch b müssen vorkommen, die Reihenfolge spielt aber keine Rolle, also ab oder ba
|
oder (OR): mindestens eines der so verknüpften Elemente usw. muß vorkommen

12.4.3.3.3.2. ELEMENT declarations


Syntax:

<!ELEMENT element_type minimization content_model>

Erklärung:


12.4.3.3.3.3. ATTLIST declarations


Syntax:

<!ATTLIST element_type attribute_name attribute_value default_value>

Erklärung:

element_type
Name des Elements oder der Elemente, die mit dieser attribute list verknüpft werden sollen
attribute_name
Name für die Attribute, die mit dem Element verknüpft werden
attribute_value
Definition der Werte, die das Attribut annehmen kann. Dies kann sein:
default value
der Default Wert eines attribute kann sein:

12.4.3.3.3.4. General ENTITY declarations


Syntax:

<!ENTITY entity_name "replacement_entity_text">

Entities werden im Dokument durch &entity_name; (z.B. &katzle;) gekennzeichnet.

Wirkung: der Parser ersetzt immer, wenn er auf &entity_name; stößt, dies durch das, was zwischen " " steht.

Eine Entity kann folgende Funktionen haben:

Entities ermöglichen globales Ersetzen und Updating. Entities unterstützen auch Standardisierung, da eine Entity nur an einer Stelle, der entity declaration, definiert und formuliert wird.


12.4.3.3.3.5. Parameter ENTITY declarations


Syntax:

<!ENTITY % entity_name "replacement_entity_text">

Bei Parameter Entities besteht der replacement_entity_text aus associated parameters.

Parameter Entities werden durch %entity_name; gekennzeichnet


12.4.3.3.3.6. NOTATION declarations


Syntax:

<!NOTATION notation_name SYSTEM "system_identifier">

Notations werden benötigt, wenn bei der Verarbeitung von SGMLDokumenten einzelne Daten eine spezielle Behandlung erfordern. Typische Beispiele: mathematische Formeln, Graphiken ...

SYSTEM verbindet Instruktionen usw. mit der Notation:

Die Notation verläuft in folgenden Schritten:

  1. Man identifiziert Typen von data content notation, die benötigt werden, und erklärt sie durch das Keyword NOTATION als vorhanden.

    Beispiel:

    <!NOTATION tex SYSTEM "/usr/bin/tex" --mathematischer Text ist zu bearbeiten mit einem Sub-Programm, das als usr/bin/tex gespeichert ist-->

    <!NOTATION eqn SYSTEM "/usr/bin/eqn" --mathematische Formeln sind zu bearbeiten mit einem Sub-Programm. das als /usr/bin/eqn gespeichert ist-->

  2. Man bestimmt, ob ein Element, das mit einer solchen Notation gekennzeichnet wird SGML data characters enthält oder nonSGML data. Non-SGML data sind z.B. Graphiken, Sounds, Video. Non-SGML data kann man nicht direkt in ein SGML-Dokument einfügen, da sie Zeichen enthalten können, die den Parser zum Absturz oder sonstigen unerwarteten Reaktionen bringen. Deshalb müssen solche data in externen Files enthalten sein, mit denen eine Verknüpfung durch Entities hergestellt wird. Enthält ein notiertes Element nur SGML data characters, dann kann es entweder direkt eingefügt werden, oder als externes Dokument verknüpft werden.

Beispiel für SGML data characters (Weiterführung des obigen Beispiels):

<!ELEMENT math (#PCDATA) --Definition eines Elementes math, das keine weiteren Unterelemente, sondern nur Dokumentdaten (PCDATA) enthält-->
<!ATTLIST math type NOTATION (tex|eqn) #REQUIRED --das Element muß obligatorisch entweder als tex oder eqn erklärt werden-->

Beispiel einer Anwendung dieser Definitionen im Dokument: Es soll der Ausdruck "(3 hoch 4) hoch 10" in mathematischer Notierung dargestellt werden:

<math type="eqn">(3 hoch 4) hoch 10</math>
Der Ausdruck "(3 hoch 4) hoch 10" wird dann mittels der Subroutine dargestellt, die als /usr/bin/eqn gespeichert ist.

Beispiel für non-SGML data:

<!NOTATION pict SYSTEM "pictVIEW" --Verknüpfung von pict mit dem Programm pictVIEW-->
<!ENTITY sysmod SYSTEM "/usr/gfx/sysmodel" NDATA pict>

Erklärung der ENTITY declaration:
Die Entity sysmod befindet sich auf dem System (SYSTEM) als /usr/gfx/sysmodel und ist mit der Notation pict verknüpft, die Daten haben nur innerhalb der durch diese Notation angegebenen Anwendung einen Sinn (NDATA).


12.4.3.3.3.7. Marked Sections


Syntax:

<![status_keyword [text_of_marked_section]]>

Beispiel: zwei Versionen eines Mathematik-Schulbuches sollen von einem File aus hergestellt werden: das für den Lehrer mit den Auflösungen, das für die Schüler ohne Auflösungen.

Die Schüler-Version könnte z.B. folgendermaßen gekennzeichnet werden:

<equation> 2 + 2 = <![IGNORE [4]]><equation>

Nun könnte man Parameter Entity Declarations verwenden:

Für die Schüler Version:

<!ENTITY % teacher "IGNORE" --ignoriere alles, was nur für den Lehrer ist-->
<!ENTITY % student "INCLUDE">

Für die Lehrer-Version:

<!ENTITY % teacher "INCLUDE" --füge alles ein, was nur für Lehrer ist>

Unser obiges Markup kann nun so umgestaltet werden:

<equation> 2 + 2 = <![%teacher; [4]]<equation>

Um die beiden Versionen zu produzieren, muß man also nur die Entity Declaration für %teacher ändern und der Parser tut alles Weitere.


12.4.3.4. Weiterführende Ressourcen


Yahoo Categories:

WWW:

Ressourcen in Printform:

SGML primer
The SGML Primer : SoftQuad's quick reference guide to the essentials of the standard. -- 3. ed. -- Toronto : SoftQuad, 1991. -- 36 S. -- ISBN 1-896172-00-8

Elektronische Medien:

SGML world tour
SoftQuad SGML world tour. -- 1 CD-ROM. -- [Toronto] : SoftQuad, 1994. -- ISBN 1-896172-01-6


12.4.4. PostScript


PostScript ist ein von Adobe entwickeltes Format, das von vielen Softwarepaketen und Betriebssystemen unterstützt wird. PostScript erlaubt, kompliziert formatierte Dokumente mit unterschiedlichen Schriften, Schriftarten, Grafiken, Farben usw. zu definieren. PostScript macht die Files aber sehr groß (z.B. 100 Druckseiten u.U. = 40 Mb (!) PostScript). Auch gibt es durchaus lästige Inkompatibilitäten zwischen PostScript-Files, die mit verschiedenen Programmen erstellt wurden. PostScript wird vor allem zur Druckersteuerung benutzt. Softwarepakete, die PostScript zu Druckerausgabe unterstützen, ermöglichen trotzdem oft nicht eine Bildschirmwiedergabe von PostScript-Dateien. Die Umsetzung einer Postscript-Datei zur Druckausgabe erfolgt innerhalb des Druckers durch einen speziellen Postscript-Interpreter.

Weiterführende Ressourcen:

Yahoo Categories:


12.4.5. Adobe Acrobat


Adobe Acrobat hat ähnliche Features wie PostScript, Acrobat-Files sind aber weniger umfangreich als PostScript-Files. Lange Zeit war der Acrobat Reader nicht kostenlos erhältlich, was der Verbreitung von Adobe Acrobat sehr im Wege stand. Jetzt ist der Adobe Acrobat Reader Freeware.

Weiterführende Ressourcen:

Yahoo Categories:


Zum nächsten Kapitel:
Kapitel 13,1: OSI-Schicht 7: Application Layer -- Anwendungsschicht, Teil 1