13.07.2015 Aufrufe

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

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

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4. Rahmenbedingungen <strong>ein</strong>er ImplementierungAnstatt dem pfadorientierten XPath verwendet fxt <strong>ein</strong>en ganz anderen <strong>Ansatz</strong>: fxgrep [3], das aufregulären Ausdrücken für Bäume basiert.Abbildung 4.2 zeigt das XSLT-Beispiel aus Abbildung 4.1 als Transformations-<strong>Spezifikation</strong> für fxt./*//section/title/""defaultABBILDUNG 4.2.: Beispiel für Transformationen in fxt4.3.1.3. HaXmlHaXml [25] implementiert zwei gr<strong>und</strong>legend unterschiedliche Ansätze, mit denen XML-Dokument<strong>ein</strong> der funktionalen Programmiersprache Haskell bearbeitet werden können. Der <strong>ein</strong>e stellt <strong>ein</strong>e Bibliothekvon Funktionen <strong>zur</strong> Verfügung, mit der alle möglichen XML-Dokumente selektiert, generiert<strong>und</strong> transformiert werden können. Der andere implementiert <strong>ein</strong>e Umgebung, in der aus <strong>ein</strong>er vorhandenenDTD Definitionen für Haskell-Datentypen abgeleitet <strong>und</strong> Funktionen <strong>zur</strong> Verfügung gestelltwerden, die die XML-Dokumente, die der DTD entsprechen, als typisierte Werte <strong>ein</strong>lesen <strong>und</strong> schreiben.Hier soll nur der erste <strong>Ansatz</strong> betrachtet werden. Der zweite ist zwar außer Frage sehr mächtig, allerdingsfehlt ihm – naturgemäß – jede Möglichkeit, gesondert Transformationen deklarativ zu definieren.Wenn im folgenden von HaXml gesprochen wird, ist damit immer der erste <strong>Ansatz</strong> gem<strong>ein</strong>t.HaXml ist nicht wie XSLT oder fxt regelbasiert, sondern besitzt <strong>ein</strong> Konzept, das auf Filtern <strong>und</strong>Kombinatoren (combinators) basiert.An Filtern gibt es sogenannte predicate and selection filters, das sind Filter, die Inhalte des XML-Quelldokuments annehmen <strong>und</strong> bestimmte Inhalte davon <strong>zur</strong>ückliefern, <strong>und</strong> construction filters, dassind Filter, die Inhalte annehmen <strong>und</strong> daraus Teile des XML-Zieldokuments erzeugen (wie z.B. Elemente,Attribute oder Textinhalte).Predicate filters sind z.B. keep, der jeden Inhalt <strong>ein</strong>fach durchreicht, tag , der nur dasElement mit dem Namen <strong>zur</strong>ückliefert oder txt, der nur den Textinhalt <strong>ein</strong>es Elements<strong>zur</strong>ückgibt. Construction filters sind z.B. mkElem, der <strong>ein</strong> Element erzeugt oder replaceAttrs,der Attribute <strong>ein</strong>es Elements ersetzt.Mit den Kombinatoren werden mehrere Filter verknüpft. Der <strong>ein</strong>fachste ist ’o’, die sogenannte irishcomposition, bei dem der auf der linken Seite stehende Filter auf die Ergebnisse des auf der rechtenSeite stehenden angewandt wird.46

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!