ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...
ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ... ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...
3. Präsentations-Erzeugungsprozeß3.4. StyleStyle ist der dritte Abschnitt des Präsentations-Erzeugungsprozesses. Die Daten wurden im vorangegangenenAbschnitt in einen Layoutbaum transformiert, dieser wurde weiter aufbereitet und mit Informationenüber räumlichen Beziehungen seiner Elemente angereichert. Eventuell wurden spezielleLayout-Objekte markiert.Über einen Templatemechanismus können nun einzelne Inhalte der Präsentation, die mit dem Layoutbaumbeschrieben wurden, in Templates eingefügt werden. Die Templates sind bereits in der Zielspracheformuliert, mittels Platzhaltern werden die einzufügenden Inhalte selektiert.In weiteren Transformationen können Style-Informationen hinzugefügt werden.Zuletzt werden generische Ausdrücke aufgelöst und der Layoutbaum serialisiert. Woraus die endgültigePräsentation entsteht.3.4.1. TemplatemechanismusDie Idee, die hinter dem Templatemechanismus steckt, ist folgende: Komplexe Dokumentdefinitionensollen direkt in der jeweiligen Zielsprache implementiert, getestet und vor allem nachträglich leichtangepaßt werden können.Templates sind Präsentationen in den jeweiligen Zielsprachen, die jedoch anstatt von Daten Platzhalterenthalten, die die Schnittstelle zu den Inhalten des Layoutbaums bilden.Warum besteht überhaupt die Notwendigkeit, zur Erstellung von Präsentationen zusätzlich noch einenTemplatemechanismus einzuführen? Zur Erzeugung von Präsentationen wurde ja bereits die KombinationLayout-Klassen, Layoutbeschreibungsbaum und Trenntexte vorgestellt, die prinzipiell schonausreichen würde.Zur Motivation sei folgendes Beispiel gegeben: Möchte man einen aufwendigen tabellarischen Stundenplanausgeben, so reicht es nicht, die entsprechenden Werte aus den Daten einfach in ein entsprechendesTabellenkonstrukt einzufügen und durch passende Trenntexte voneinander abzutrennen.Vielleicht sollen einzelne Spalten eine bestimmte Breite bekommen, die Tabelle gestaucht werden(damit der Stundenplan gerade noch auf eine Seite paßt) oder einmalig ein bestimmter Hinweistexteingeblendet werden. Desweiteren sind in einigen Zielsprachen die Einstellungen für manche Layoutkonstrukterecht komplex, wie z.B. Tabellen in LATEX, so daß die Layoutobjekte nur umständlich alsgenerische Ausdrücke formuliert werden können.Kurz: Es besteht ein Bedarf, Präsentationen vorab – also ohne Daten – testen zu können und vor allemkomplizierte Einstellungen (wie Datei-Header, Tabellendefinitionen usw.) an ihrem Ort der Verwendungdefinieren zu können und nicht in den viel allgemeiner gehaltenen Konstruktionsregeln für dasLayout, wo sich eine kleine Änderung der Einstellungen auf sämtliche Präsentationen auswirkt undnicht nur auf die, in der z.B. eine Tabelle gerade mal etwas kleiner dargestellt werden soll.Der Templatemechanismus ist eine pragmatische Lösung für diesen Bedarf.3.4.1.1. FunktionsweiseDie Vorverarbeitung eines Templates läuft folgendermaßen ab: Das Template wird geparst und in einenTemplate-Baum transformiert. Der Template-Baum entspricht im Grunde einem Layoutbeschrei-36
article¢documentclass[10pt]¡document¢begin¡tabular¢end¡document¢end¡3.4. Stylebungsbaum, nur daß er keine Strukturierungsknoten besitzt, also von der Tiefe 1 ist, und daß er anstattvon Selektoren für die Daten nun Seletoren für Inhalte besitzt.In einem weiteren Schritt werden der Template-Baum und der bisherige Layoutbaum in einen weiterenLayoutbaum transformiert. Die Selektoren für die Inhalte werden dabei durch die entsprechendenInhalte ersetzt. Das Beispiel in Abbildung 3.13 veranschaulicht diese Vorgehensweise.Template (L A TEX)LayoutbaumPräsentation@[OBJECT(Überschrift)]¢section¡tabular¢£¡ |l@¡ hspace¡ 2em¢¤¢ l|¢begin¡hline@[OBJECT(Veranstaltungen)]Überschrift(TEXT)"Veranstaltungen"Veranstaltungen”” ”” ””Veranstaltung”@[NEWROW]” ”@[NEWCOL]” ”@[ENDROW]”. . .Beschreibung”” ”@[NEWLINE]” ””Template-BaumTemplateBenennung”” ” ” ””Titel(TEXT)"Informatik I"Rumpf”” ”, ” ””Block1(TEXT)” docum...begin¡ ...section¡ ”Object1(OBJECT)ÜberschriftBlock2(TEXT)”¢...begin¡hline”Object2(OBJECT)VeranstaltungenBlock3(TEXT)” end¡ t......ument¢ ”Dauer(TEXT)”” ”” ”-stündig”"4"Sitzungen”” ”, ” ””. . . . . .LayoutbaumPräsentationBlock1(TEXT)” docum...begin¡ ...section¡ ”Überschrift(TEXT)"Veranstaltungen"Block2(TEXT)”¢...begin¡hline”Veranstaltungen”” ”” ””Veranstaltung”@[NEWROW]” ”@[NEWCOL]” ”@[ENDROW]”Beschreibung”” ”@[NEWLINE]” ””. . .Block3(TEXT)” end¡ t......ument¢ ”Benennung”” ” ” ””Titel(TEXT)"Informatik I"Dauer(TEXT)”” ”” ”-stündig”"4"Rumpf”” ”, ” ””Sitzungen”” ”, ” ””. . . . . .ABBILDUNG 3.13.: Templatemechanismus3.4.1.2. Auflösung von Objekt-ReferenzenIm vorangegangenen Abschnitt wurde bereits angesprochen, daß die Templates Funktionen enthalten,die die Schnittstelle zu den Inhalten des Layoutbaums bilden. Wie werden diese Inhalte nun referenziert?Dies geschieht über eine eindeutige ID, die jeder Inhalt besitzen kann (diese ID entspricht inder vorliegenden Arbeit dem XML-Attribut ID, das bereits für die Verweise in den Daten verwendetwurde).Diese ID wurde dem Inhalt entweder bereits bei der Datenerfassung hinzugefügt (z.B. eine bestimm-37
- Seite 1: INSTITUT FÜR INFORMATIKLehr- und F
- Seite 5: ZusammenfassungIn dieser Arbeit wur
- Seite 8 und 9: Inhaltsverzeichnis3.2. Daten . . .
- Seite 11 und 12: 1. EinleitungFür die Administratio
- Seite 13 und 14: 1.3. Abgrenzung zu bestehenden Ans
- Seite 15: 1.4. AufbauInteresse sind (Abstrakt
- Seite 18 und 19: 2. Das Datenmodell der Lehrangebots
- Seite 20 und 21: 2. Das Datenmodell der Lehrangebots
- Seite 22 und 23: 2. Das Datenmodell der Lehrangebots
- Seite 24 und 25: 3. Präsentations-Erzeugungsprozeß
- Seite 26 und 27: 3. Präsentations-Erzeugungsprozeß
- Seite 28 und 29: 3. Präsentations-Erzeugungsprozeß
- Seite 30 und 31: 3. Präsentations-Erzeugungsprozeß
- Seite 32 und 33: 3. Präsentations-Erzeugungsprozeß
- Seite 34 und 35: 3. Präsentations-Erzeugungsprozeß
- Seite 36 und 37: 3. Präsentations-Erzeugungsprozeß
- Seite 38 und 39: 3. Präsentations-Erzeugungsprozeß
- Seite 40 und 41: 3. Präsentations-Erzeugungsprozeß
- Seite 44 und 45: 3. Präsentations-Erzeugungsprozeß
- Seite 46 und 47: 3. Präsentations-Erzeugungsprozeß
- Seite 48 und 49: 4. Rahmenbedingungen einer Implemen
- Seite 50 und 51: 4. Rahmenbedingungen einer Implemen
- Seite 52 und 53: 4. Rahmenbedingungen einer Implemen
- Seite 54 und 55: 4. Rahmenbedingungen einer Implemen
- Seite 56 und 57: 4. Rahmenbedingungen einer Implemen
- Seite 58 und 59: 4. Rahmenbedingungen einer Implemen
- Seite 60 und 61: 5. Prototypische Implementierung PE
- Seite 62 und 63: 5. Prototypische Implementierung PE
- Seite 64 und 65: 5. Prototypische Implementierung PE
- Seite 66 und 67: 5. Prototypische Implementierung PE
- Seite 68 und 69: 5. Prototypische Implementierung PE
- Seite 70 und 71: ABBILDUNG 5.6.: Beispiel für PEP
- Seite 72 und 73: ABBILDUNG 5.7.: DTD von PEP ¢¡¤
- Seite 74 und 75: 5. Prototypische Implementierung PE
- Seite 76 und 77: 5. Prototypische Implementierung PE
- Seite 78 und 79: 5. Prototypische Implementierung PE
- Seite 80 und 81: 5. Prototypische Implementierung PE
- Seite 82 und 83: 5. Prototypische Implementierung PE
- Seite 84 und 85: 5. Prototypische Implementierung PE
- Seite 86 und 87: 5. Prototypische Implementierung PE
- Seite 88 und 89: 5. Prototypische Implementierung PE
- Seite 90 und 91: 6. Zusammenfassung und AusblickUm d
3. Präsentations-Erzeugungsprozeß3.4. StyleStyle ist der dritte Abschnitt des Präsentations-Erzeugungsprozesses. Die Daten wurden im vorangegangenenAbschnitt in <strong>ein</strong>en <strong>Layout</strong>baum transformiert, dieser wurde weiter aufbereitet <strong>und</strong> mit Informationenüber räumlichen Beziehungen s<strong>ein</strong>er Elemente angereichert. Eventuell wurden spezielle<strong>Layout</strong>-Objekte markiert.Über <strong>ein</strong>en Templatemechanismus können nun <strong>ein</strong>zelne Inhalte der Präsentation, die mit dem <strong>Layout</strong>baumbeschrieben wurden, in Templates <strong>ein</strong>gefügt werden. Die Templates sind bereits in der Zielspracheformuliert, mittels Platzhaltern werden die <strong>ein</strong>zufügenden Inhalte selektiert.In weiteren Transformationen können Style-Informationen hinzugefügt werden.Zuletzt werden generische Ausdrücke aufgelöst <strong>und</strong> der <strong>Layout</strong>baum serialisiert. Woraus die endgültigePräsentation entsteht.3.4.1. TemplatemechanismusDie Idee, die hinter dem Templatemechanismus steckt, ist folgende: Komplexe Dokumentdefinitionensollen direkt in der jeweiligen Zielsprache implementiert, getestet <strong>und</strong> vor allem nachträglich leichtangepaßt werden können.Templates sind Präsentationen in den jeweiligen Zielsprachen, die jedoch anstatt von Daten Platzhalterenthalten, die die Schnittstelle zu den Inhalten des <strong>Layout</strong>baums bilden.Warum besteht überhaupt die Notwendigkeit, <strong>zur</strong> Erstellung von Präsentationen zusätzlich noch <strong>ein</strong>enTemplatemechanismus <strong>ein</strong>zuführen? Zur Erzeugung von Präsentationen wurde ja bereits die Kombination<strong>Layout</strong>-Klassen, <strong>Layout</strong>beschreibungsbaum <strong>und</strong> Trenntexte vorgestellt, die prinzipiell schonausreichen würde.Zur Motivation sei folgendes Beispiel gegeben: Möchte man <strong>ein</strong>en aufwendigen tabellarischen St<strong>und</strong>enplanausgeben, so reicht es nicht, die entsprechenden Werte aus den Daten <strong>ein</strong>fach in <strong>ein</strong> entsprechendesTabellenkonstrukt <strong>ein</strong>zufügen <strong>und</strong> durch passende Trenntexte von<strong>ein</strong>ander abzutrennen.Vielleicht sollen <strong>ein</strong>zelne Spalten <strong>ein</strong>e bestimmte Breite bekommen, die Tabelle gestaucht werden(damit der St<strong>und</strong>enplan gerade noch auf <strong>ein</strong>e Seite paßt) oder <strong>ein</strong>malig <strong>ein</strong> bestimmter Hinweistext<strong>ein</strong>geblendet werden. Desweiteren sind in <strong>ein</strong>igen Zielsprachen die Einstellungen für manche <strong>Layout</strong>konstrukterecht komplex, wie z.B. Tabellen in LATEX, so daß die <strong>Layout</strong>objekte nur umständlich alsgenerische Ausdrücke formuliert werden können.Kurz: Es besteht <strong>ein</strong> Bedarf, Präsentationen vorab – also ohne Daten – testen zu können <strong>und</strong> vor allemkomplizierte Einstellungen (wie Datei-Header, Tabellendefinitionen usw.) an ihrem Ort der Verwendungdefinieren zu können <strong>und</strong> nicht in den viel allgem<strong>ein</strong>er gehaltenen Konstruktionsregeln für das<strong>Layout</strong>, wo sich <strong>ein</strong>e kl<strong>ein</strong>e Änderung der Einstellungen auf sämtliche Präsentationen auswirkt <strong>und</strong>nicht nur auf die, in der z.B. <strong>ein</strong>e Tabelle gerade mal etwas kl<strong>ein</strong>er dargestellt werden soll.Der Templatemechanismus ist <strong>ein</strong>e pragmatische Lösung für diesen Bedarf.3.4.1.1. FunktionsweiseDie Vorverarbeitung <strong>ein</strong>es Templates läuft folgendermaßen ab: Das Template wird geparst <strong>und</strong> in <strong>ein</strong>enTemplate-Baum transformiert. Der Template-Baum entspricht im Gr<strong>und</strong>e <strong>ein</strong>em <strong>Layout</strong>beschrei-36