ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ... ein generischer Ansatz zur Layout-Spezifikation - Lehr- und ...

13.07.2015 Aufrufe

5. Prototypische Implementierung PEPModes werden von fxt nicht unterstützt, so daß mehrfach vorkommende Selektoren im Layoutbeschreibungsbaumnur mit einigem Aufwand realisierbar wären (iterierte Strukturierungsknoten würdenkeine ganzen Regeln mehr erzeugen dürfen, sondern nur bedingte Blöcke in einer gemeinsamenRegel für jeden Selektor).Der Verweis auf die einzufügenden Daten ist in fxt recht ähnlich wie in XSLT, nur, daß anstatt vonXPath hier fxgrep als Selektionssprache und SML als Sprache zur Berechnung von Ausdrücken verwendetwird. Auch ein ähnlicher Key-Mechanismus ist vorhanden.Allerdings ist das Selektionsprinzip von fxgrep durch seine regulären Ausdrücke auf Bäume um einigesmächtiger und trotzdem besser verständlich als das von XPath.Auch bezieht sich fxgrep immer auf den aktuellen Kontext im Baum und läßt keine Aufwärtsbewegungzu Vorgängern des aktuellen Knotens zu. Dadurch wird die Formulierung von Selektoreneinfacher, allerdings schließt sie eventuell manche Aufgabenstellungen aus, bei denen Knoten auseinem anderen Teilbaum nötig wären. Normalerweise dient hier das Variablenkonzept als Lösung.Bei der Erstellung von Regeln über Regeln sind solche Sonderfälle jedoch nur schwer zu handhaben.Der Zugriff auf Attributwerte erfolgt unter fxt über Ausdrücke, die in SML formuliert werden. DiesesKonzept ist an sich recht mächtig, allerdings tritt bei dem Zugriff auf nicht vorhandene Variablensofort ein Fehlerzustand auf, sodaß immer erst eine Überprüfung stattfinden sollte, ob die Variablevorhanden ist, was die Regeln unnötigerweise aufbläht. Auch ist, die oftmals nötige Typkonvertierungin SML-Typen recht lästig, hier wäre eine automatische Konvertierung sinnvoll gewesen.5.4.2.1. Transformationsanweisungen in fxt zur Generierung von weiterenTransformationsanweisungen in fxt, die den Layoutbaum erzeugenMit den folgenden, in fxt formulierten, Transformationsanweisungen werden aus einem in PEP ¢¡¤£¦¥¨§©definierten Layoutbeschreibungsbaum weitere fxt-Transformationsanweisungen generiert. Mit diesenkann darauf ein entsprechendes XML-Dokument in einen Layoutbaum transformiert werden./*/*default76

5.4. Vergleich der Werkzeuge am Beispiel des Prozessors zur Erzeugung des Layoutbaums//pep:value[@selector]//pep:value[@reference]//pep:value[@expression]//pep:value[""]//pep:value//*[@pep:selector]77

5. Prototypische Implementierung PEPModes werden von fxt nicht unterstützt, so daß mehrfach vorkommende Selektoren im <strong>Layout</strong>beschreibungsbaumnur mit <strong>ein</strong>igem Aufwand realisierbar wären (iterierte Strukturierungsknoten würdenk<strong>ein</strong>e ganzen Regeln mehr erzeugen dürfen, sondern nur bedingte Blöcke in <strong>ein</strong>er gem<strong>ein</strong>samenRegel für jeden Selektor).Der Verweis auf die <strong>ein</strong>zufügenden Daten ist in fxt recht ähnlich wie in XSLT, nur, daß anstatt vonXPath hier fxgrep als Selektionssprache <strong>und</strong> SML als Sprache <strong>zur</strong> Berechnung von Ausdrücken verwendetwird. Auch <strong>ein</strong> ähnlicher Key-Mechanismus ist vorhanden.Allerdings ist das Selektionsprinzip von fxgrep durch s<strong>ein</strong>e regulären Ausdrücke auf Bäume um <strong>ein</strong>igesmächtiger <strong>und</strong> trotzdem besser verständlich als das von XPath.Auch bezieht sich fxgrep immer auf den aktuellen Kontext im Baum <strong>und</strong> läßt k<strong>ein</strong>e Aufwärtsbewegungzu Vorgängern des aktuellen Knotens zu. Dadurch wird die Formulierung von Selektoren<strong>ein</strong>facher, allerdings schließt sie eventuell manche Aufgabenstellungen aus, bei denen Knoten aus<strong>ein</strong>em anderen Teilbaum nötig wären. Normalerweise dient hier das Variablenkonzept als Lösung.Bei der Erstellung von Regeln über Regeln sind solche Sonderfälle jedoch nur schwer zu handhaben.Der Zugriff auf Attributwerte erfolgt unter fxt über Ausdrücke, die in SML formuliert werden. DiesesKonzept ist an sich recht mächtig, allerdings tritt bei dem Zugriff auf nicht vorhandene Variablensofort <strong>ein</strong> Fehlerzustand auf, sodaß immer erst <strong>ein</strong>e Überprüfung stattfinden sollte, ob die Variablevorhanden ist, was die Regeln unnötigerweise aufbläht. Auch ist, die oftmals nötige Typkonvertierungin SML-Typen recht lästig, hier wäre <strong>ein</strong>e automatische Konvertierung sinnvoll gewesen.5.4.2.1. Transformationsanweisungen in fxt <strong>zur</strong> Generierung von weiterenTransformationsanweisungen in fxt, die den <strong>Layout</strong>baum erzeugenMit den folgenden, in fxt formulierten, Transformationsanweisungen werden aus <strong>ein</strong>em in PEP ¢¡¤£¦¥¨§©definierten <strong>Layout</strong>beschreibungsbaum weitere fxt-Transformationsanweisungen generiert. Mit diesenkann darauf <strong>ein</strong> entsprechendes XML-Dokument in <strong>ein</strong>en <strong>Layout</strong>baum transformiert werden./*/*default76

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!