Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2
Inhalt - Was ist Cocoon ? - Wie funktioniert Cocoon ? - Worauf baut Cocoon auf ? - Installation - Sitemap
Was ist Cocoon ? (1) publishing framework document generator web-basierte serverseitige Anwendung liest XML, HTML etc. gibt das ganze als HTML, PDF (bzw. in jedem benötigtem XML-basiertem Format) aus
Was ist Cocoon ? (2) Trennung von Inhalt, Stil und Logik getrennte Bearbeitung möglich z.B. zum ändern des Layouts muß nur eine Datei geändert werden (und nicht jedes Dokument einzeln ändern)
Wie funktioniert Cocoon? (1) Generator: ließt Dateien ein (SAX) und erzeugt entsprechende Events (XML- Dokumente) Transformer: stilisiert das Dokument (z.B. mit XSLT) Aggregator: fügt Daten zusammen Serializer: erzeugt Ausgabe- Stream in gewünschtem Format
Wie funktioniert Cocoon? (2) Neuerung zu Cocoon 1: Pipelining, nur möglich, da Cocoon 2 Event-basiert ist
Worauf baut Cocoon auf ? (1) Benutzt folgende Technologien XML XML Namespaces XSLT Xpath SQL XSP JAVA
Worauf baut Cocoon auf ? (2) Damit Cocoon lauffähig ist benötigt es: Webbrowser Java Umgebung (z.B. J2SDK=JDK) Server-Umgebung (Servlet, z.B. Jakarta Tomcat 4)
Worauf baut Cocoon auf ? (3) außerdem werden verschiedene Ausgabeformate unterstützt : alle XML-basierten Formate, wie z.B.: HTML / XHTML mit CSS SVG (Scalable Vector Graphics) PDF etc.
Installation (1) Es wird eine funktionierende Java-Entwicklungsumgebung benötigt (z.B. J2SDK von Sun, Umgebungsvariable JAVA_HOME setzen Unix: export JAVA_HOME=/dein/jdk/ Windows: set JAVA_HOME=c:\dein\jdkhttp://java.sun.org Tomcat (am besten 4.0.1) als binary von herunterladen und entpacken. Umgebungsvariable CATALINA_HOME setzen Unix: export CATALINA_HOME=/dein/tomcat/ Windows: set CATALINA_HOME=c:\dein\tomcat
Installation (2) zum testen von Tomcat: startup-Skript ausführen unter tomcat/bin und beim Browser eingeben die Cocoon2-Distribution unter runterladen und entpacken. U m das cocoon war package zu erstellen und in den servlet-container zu installieren, folgendes Datei im Cocoonverzeichnis ausführen: Unix:./build.sh -Dinclude.webapp.libs=yes -Dinstall.war=/dein/tomcat/webapps install Win32:.\build.bat -Dinclude.webapp.libs=yes -Dinstall.war=c:\dein\tomcat\webapps installhttp://xml.apache.org
Installation (3) Das Servlet neu starten mit dem shutdown und startup Befehl nun ist Cocoon unter verfügbar
Sitemap (1) Eine Sitemap beinhaltet Konfigurations-Informationen für die Apache Cocoon engine. Beginnt mit map:sitemap und hat immer einen namespace map. Bsp.:
Sitemap (2) -components Alle components haben folgende Parameter: name und src In diesem Beispiel wird ein -Parameter spezifiziert true
Sitemap (3) -generators Jeder generator hat wiederum name und src. Wenn in einer pipeline (später) kein generator spezifiziert ist, wird der default-generator (hier: parser) benutzt. Generators generieren XML Inhalte durch erzeugung von SAX events und initialisieren den pipeline-Prozess. Verschiedene generator-Typen: -file generator - directory generator - XSP generator - JSP generator - Request generator -... <map:generator name="parser" src="org.apache.cocoon.generator.FileGenerator"/> <map:generator name="xsp" src="org.apache.cocoon.generators.XSPGenerator">...
Sitemap (4) -transformers Jeder transformer hat wiederum name und src. Wenn in einer pipeline (später) kein transformer spezifiziert ist, wird der default-transformer benutzt. Transformers transformieren SAX events in SAX events. Verschiedene transformer-Typen: -XSLT Transformer - Log Transformer - SQL Transformer - I18N Transformer -... <map:transformer name="xslt" src="org.apache.cocoon.transformation.XSLTTransformer"> true <map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer"/>
Sitemap (5) -serializers (1) Jeder serializer hat wiederum name und src. Wenn in einer pipeline (später) kein serializer spezifiziert ist, wird der default-serializer benutzt. Serialisers verwandeln die SAX events in binäre oder character-streams. Verschiedene serializer-Typen: -HTML Serializer - FOP Serializer - Text Serializer - XML Serializer -... <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serializer.HTMLSerializer"> -//W3C//DTD HTML 4.0 Transitional//EN html40/loose.dtd true UTF-8 1
Sitemap (6) -serializers (2) <map:serializer name="wap" mime-type="text/vnd.wap.wml" src="org.apache.cocoon.serializer.XMLSerializer"> -//WAPFORUM//DTD WML 1.1//EN UTF-8 <map:serializer name="svg2jpeg" mime-type="image/jpeg" src="org.apache.cocoon.serializer.SVGSerializer"> <map:serializer name="svg2png" mime-type="image/png" src="org.apache.cocoon.serializer.SVGSerializer">
Sitemap (7) -selectors Jeder selector hat wiederum name und src. Wenn in einer pipeline (später) kein selector spezifiziert ist, wird der default-selector benutzt. Selectors werten einen Boolschen Ausdruck aus. <map:selector name="load" src="org.apache.cocoon.selection.MachineLoadSelector">... <map:selector name="user" src="org.apache.cocoon.selection.AuthenticationSelector">... <map:selector name="browser" src="org.apache.cocoon.selection.BrowserSelectorFactory">...
Sitemap (8) -matchers Jeder matcher hat wiederum name und src. Wenn in einer pipeline (später) kein matcher spezifiziert ist, wird der default-matcher benutzt Matchers mappen Muster auf eine Resource (URI mit bestimmten Muster finden um Anfage auf Pipelines zu legen). Verschiedene matcher-Typen: -wildcard - regexp <map:matcher name="uri-wildcard" src="org.apache.cocoon.matcher.WildcardURIMatcherFactory">... <map:matcher name="uri-regexp" src="org.apache.cocoon.matcher.RegexpURIMatcher">...
Sitemap (9) -actions Actions können Parameter zur Laufzeit verändern. <map:action name="add-employee" src="org.apache.cocoon.acting.DatabaseAddAction"/> <map:action name="locale" src="org.apache.cocoon.acting.LocaleAction"/> <map:action name="request" src="org.apache.cocoon.acting.RequestParamAction"/> <map:action name="form-validator" src="org.apache.cocoon.acting.FormValidatorAction"/>
Sitemap (10) -pipelines