Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell

Ähnliche Präsentationen


Präsentation zum Thema: "Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell"—  Präsentation transkript:

1

2 Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Beispiele

3 Was ist cocoon? Cocoon is a powerful framework for XML web publishing which brings a whole new world of abstraction and ease to consolidated web site creation and management based on the XML paradigm and related technologies.

4 Was ist cocoon? XML publishing framework Verwendet XML und XSLT
Separation of Concerns, d. h. Trennung von Inhalt, Logik und Darstellung Datenquellen: Filesysteme, RDBMS, LDAP, native XML Datenbanken, und Netzwerkbasierte Quellen Content Ausgabe in HTML, WML, PDF, SVG, RTF, ...

5 Was ist cocoon? Cocoon ist als Servlet implementiert
Als Teil des Apache XML Projekts integriert cocoon unter anderem Xerces - XML Parser Xalan - XSLT Prozessor FOP – XSL Print Formatter Batik - Scalable Vector Graphics (SVG) Toolkit

6 Was ist cocoon? Cocoon ist extrem erweiterbar. Nahezu alles ist als Komponente realisiert. Leicht können eigene Module geschrieben werden, die mit existierenden Komponenten zusammenarbeiten. Cocoon basiert auf vielen anderen Apache Projekten: Ant, Avalon, Xerces, Xalan, FOP, Batik, Velocity, Regexp. Modularität birgt aber auch Gefahren der Inkompatibilität!

7 SoC – Separation of Concerns
pyramid of contracts Klare Trennung der verschiedenen Arbeitsbereiche in einem Entwicklungsteam Management: Inhalt, Abläufe, Aufbau Content: redaktioneller Teil aller Inhalte Logic: Integration der dynamischen Inhalte Style: Präsentation, look & feel, Grafik Austausch nach bestimmten Regeln möglich, die vom Management gesteuert werden

8 SoC – Separation of Concerns
Beispiel <page> <content> <para>Today is <dynamic:today/> </para> </content> </page> <dynamic:today/> regelt die ‚Logik – Inhalt‘ Beziehung

9 SoC – Separation of Concerns
Content: XML Files, RDBMS, LDAP, native XML Datenbanken, Netzwerkbasierte Quellen, Streams Style: XSL Files Logic: in XSL Files als XSP instructions ... <xsp:logic> // Java Code, SQL, ... String msg = "Hello, world!"; </xsp:logic> ... XSP kann auch in Logicsheets oder in Taglibs definiert und dann in XSL Files als Komponente wiederverwendet werden

10 Pipeline Request nach Muster verarbeiten XML Source generieren
Transformation nach XSL-Vorgaben Evtl. Weitere XML Quellen aggregieren Ausgabe in ein bestimmtes Format request Generator Transformer stylesheet Aggregator Serializer

11 Cocoon intern

12 Sitemap Die Sitemap entält Konfigurationsinformationen für die Cocoon engine Matchers  für URI Patterns Selectors  Unterscheidungen im Pipeline-Ablauf Generators  XML Sources einlesen Transformers  XML Transformationen Serializers  Ausgabeformat definieren Die Sitemap wird zu einer ausführbaren Klasse kompiliert

13 Sitemap - Matcher <map:match pattern="vortrag/**"> <map:mount check-reload="yes"src="vortrag/" uri-prefix="vortrag"/> </map:match> In der main-Sitemap können weitere Sitemaps für Unterprogramme „gemountet“ werden  Baumstruktur der Sitemaps für einfachere Wartung

14 Sitemap – processing pipeline
<map:match pattern="hello.html"> <map:generate src="hello-page.xml"/> <map:transform src="simple-page2html.xsl"/> <map:serialize type="html"/> </map:match> URI pattern hello.html erkennen Aus der Source hello-page.xml xml auslesen Nach den Regeln des XSL stylesheets Transformieren Als html Ausgabe serialisieren

15 Sitemap – Selector <map:match pattern="autoselect">
<map:generate src="hello-page.xml"/> <map:select> <map:when test="wap"> <map:transform src="simple-page2wml.xsl"/> </map:when> <map:when test="explorer"> <map:transform src="simple-page2html.xsl"/> ...

16 Quellen Cocoon Homepage: http://xml.apache.org/cocoon/index.html
Apache XML Project: Cocoon howtos: Cocoon tips:

17


Herunterladen ppt "Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell"

Ähnliche Präsentationen


Google-Anzeigen