Coccon das Web-XML-Publishing System Thomas Haller
kurzer Umriss des Inhalts 1) Einführung – 1.1) Was ist Cocoon und was kann es? – 1.2) Installation von Cocoon 2) Die Sitemap – 2.1) Pipeline – 2.2) Komponenten Logik Komponenten Bearbeitungs Komponenten – 2.3) Gruppierungen 3) Hello World – Ein Beispiel 4) Content Logic – 4.1) XSP – 4.2) Logicsheets
1.1) Cocoon gehört zur Apache Group Wurde 1998 von Stefano Mazzocchi als Servlet zur XSL-Transformation geschrieben Seit 1999 ist es ein Open Source Projekt der Apache Software Foundation aktuelle Version 2.1.6
1.1) Cocoon als XML-Publishing Framework Erzeugt aus XML-Documenten verschiedenste Ausgabeformate welche an Endgeräten versendet werden Meist genutzt als Dynamischer Webseiten Generator in Servlet Container Vollkommen in Java entwickelt
1.1) Model Viewer Controller Eine strikte Trennung von Logic, Design und Layout ist möglich – ermöglicht verschiedenen Entwicklern getrennt am selben Projekt zu arbeiten – Vereinfacht die Wartung der erstellten Applikationen – schafft gewollte Abstationsebenen Komponentenbasierte Architektur garantiert ein Höchstmaß an Wiederverwendbarkeit
1.2) Installation (*Wird als Source Distribution ausgeliefert*) Herunterladen, Kompilieren (Apache Ant) je nach Servlet-Container kopieren der war- Datei oder des webapp-Verzeichnis in ein bestimmtes Verzeichnis der Engine und neustarten Weil Cocoon ein Servlet ist läuft es auf nahezu jeder Engine und jedem System. Meiste Verbreitung wohl mit Apache Jakarta Tomcat
2) Sitemap - Die Komandozentrale von Cocoon Definiert Komponenten – Die Komponenten führen die eigentlichen Aktionen aus Schaltet die Komponenten hintereinander – in Form von Pipelines Definiert, wann Aktionsketten starten – in Abhängigkeit von URL-Anfragen $CATALINA_HOME/webapps/cocoon/sitemap.xmap (*einbinden von subsitemaps*)
2) Das Grundgerüst der Sitemap fehlt zB.
2.1) Die Pipeline
<map:generate type="file" src="content/Hello_World.xml"/> <map:transform type=xslt src=style/xml2html.xsl>
2.2) Komponenten Hier werden alle Werkzeuge, welche später verwendet werden eindeutig, angegeben
2.2) Logikkomponenten: Matcher, Selektoren, Aktionen (*eintrag in von allen*)
2.2) Bearbeitungskompenenten – Zwischen den Bearbeitungkompon enten werden SAX- Events durchgereicht und bearbeitet.
2.2) Bearbeitungskompenenten
2.3) Gruppierungen Komponenten werden unter einem eindeutigen Namen zusammengefasst Steigert die Übersichtlichkeit
Beispiel fehlt: Grosses Beispiel einer Sitemap
3.1) Ein erstes Beispiel Hello World Erzeugen einer statischen Seite Basisverzeichnis $CATALINA_HOME/webapps/cocoon Dateien – Inhalt:./hello_world/content/hello_world.xml – Layout:./hello_world/style/xml2html.xsl./hello_world/style/xml2pdf.xsl... – Sitemap./hello_world/sitemap.xmap
XML-Beispiel fehlt xmldatei, xsldatei, sitemap
4.1) Content Logic - XSP eXtensible Server Page von Cocoon-Gemeinde entwickelt lange Zeit bevorzugtes Mittel um Logik zu integrieren. Wird in künftigen Versionen zugunsten von Control Flow aus dem Core entfernt
4.1) XSP-Tags Alle xsp-Tags müssen zum Namensraum gehören Tagliste –
XSP-Beispiel fehlt: xsp-datei, style, sitemap
4.2) XSP Logicsheets Logik in ein Logicsheet um sie vom Inhalt zu trennen – Erstellen des Logicsheet – Registrieren in Cocoon Anhand eines Namensraums werden Tags im Content-Document mit jenem im Logicsheet assoziert (anmerkung*xsp wird kompiliert und im speicher gehalten)
logicsheet neue xsp logicsheet xsl eintrag in cocoon.xconf
Ende bei Fragen bitte fragen