Präsentation herunterladen
Veröffentlicht von:Hartwig Wengert Geändert vor über 10 Jahren
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:
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.