22
Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Embed Size (px)

Citation preview

Page 1: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Java und XML

Kurzvortrag

von Tim Steffens und Andreas Klein

Cocoon 2

Page 2: 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

Page 3: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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

Page 4: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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)

Page 5: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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

Page 6: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Wie funktioniert Cocoon? (2)

• Neuerung zu Cocoon 1: Pipelining, nur möglich, da Cocoon 2 Event-basiert ist

Page 7: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Worauf baut Cocoon auf ? (1)

• Benutzt folgende Technologien

• XML

• XML Namespaces

• XSLT

• Xpath

• SQL

• XSP

• JAVA

Page 8: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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)

Page 9: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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.

Page 10: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Installation (1)• Es wird eine funktionierende Java-Entwicklungsumgebung

benötigt (z.B. J2SDK von Sun, http://java.sun.org). Umgebungsvariable JAVA_HOME setzen Unix: export JAVA_HOME=/dein/jdk/ Windows: set JAVA_HOME=c:\dein\jdk

• Tomcat (am besten 4.0.1) als binary von http://jakarta.apache.org herunterladen und entpacken. Umgebungsvariable CATALINA_HOME setzen Unix: export CATALINA_HOME=/dein/tomcat/ Windows: set CATALINA_HOME=c:\dein\tomcat

Page 11: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Installation (2)• zum testen von Tomcat: startup-Skript ausführen unter

tomcat/bin und beim Browser http://localhost:8080/ eingeben

• die Cocoon2-Distribution unter http://xml.apache.org runterladen und entpacken. Um 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 install

Page 12: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Installation (3)

• Das Servlet neu starten mit dem shutdown und startup Befehl

• nun ist Cocoon unter http://localhost:8080/cocoon/ verfügbar

Page 13: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (1)Eine Sitemap beinhaltet Konfigurations-Informationen für die Apache Cocoon engine.

Beginnt mit map:sitemap und hat immer einen namespace map.Bsp.:

<?xml version="1.0"?> <map:sitemap xmlns:map="http://xml.apache.org/cocoon/sitemap/1.0"> <map:components/> <map:views/> <map:resources/> <map:action-sets/> <map:pipelines/> </map:sitemap>

Page 14: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (2) -components

Alle components haben folgende Parameter: name und srcIn diesem Beispiel wird ein <use-store>-Parameter spezifiziert

<map:components> <map:transformer name="xslt" 

src="org.apache.cocoon.transformation.XSLTTransformer"> <!-- This is a parameter to the transformer component --> <use-store>true</use-store>

</map:transformer> </map:components>

Page 15: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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:generators default="parser"> <map:generator name="parser"

src="org.apache.cocoon.generator.FileGenerator"/> <map:generator name="dir" src="MyDirGenerator"/> <map:generator name="xsp"

src="org.apache.cocoon.generators.XSPGenerator"> ... </map:generator></map:generators>

Page 16: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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:transformers default="xslt"> <map:transformer name="xslt"

src="org.apache.cocoon.transformation.XSLTTransformer"> <use-store>true</use-store> </map:transformer> <map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer"/>

</map:transformers>

Page 17: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

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:serializers default="html"> <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serializer.HTMLSerializer"> <doctype-public>-//W3C//DTD HTML 4.0 Transitional//EN</doctype-public> <doctype-system>http://www.w3.org/TR/REC-html40/loose.dtd</doctype-system> <omit-xml-declaration>true</omit-xml-declaration> <encoding>UTF-8</encoding> <indent>1</indent> </map:serializer>

Page 18: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (6) -serializers (2)<map:serializer name="wap" mime-type="text/vnd.wap.wml" src="org.apache.cocoon.serializer.XMLSerializer"> <doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public> <doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system> <encoding>UTF-8</encoding> </map:serializer>

<map:serializer name="svg2jpeg" mime-type="image/jpeg" src="org.apache.cocoon.serializer.SVGSerializer"> <parameter name="background_color" type="color" value="#00FF00"/> </map:serializer>

<map:serializer name="svg2png" mime-type="image/png" src="org.apache.cocoon.serializer.SVGSerializer"> </map:serializer></map:serializers>

Page 19: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (7) -selectorsJeder 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:selectors default="browser"> <map:selector name="load" src="org.apache.cocoon.selection.MachineLoadSelector"> ... </map:selector> <map:selector name="user" src="org.apache.cocoon.selection.AuthenticationSelector"> ... </map:selector> <map:selector name="browser" src="org.apache.cocoon.selection.BrowserSelectorFactory"> ... </map:selector></map:selectors>

Page 20: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (8) -matchersJeder matcher hat wiederum name und src. Wenn in einer pipeline (später) kein matcher spezifiziert ist, wird der default-matcher benutztMatchers mappen Muster auf eine Resource (URI mit bestimmten Muster finden um Anfage auf Pipelines zu legen).Verschiedene matcher-Typen: -wildcard - regexp

<map:matchers default="uri-wildcard"> <map:matcher name="uri-wildcard" src="org.apache.cocoon.matcher.WildcardURIMatcherFactory"> ... </map:matcher>

<map:matcher name="uri-regexp" src="org.apache.cocoon.matcher.RegexpURIMatcher"> ... </map:matcher></map:matchers>

Page 21: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (9) -actions

Actions können Parameter zur Laufzeit verändern.

<map:actions> <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"/></map:actions>

Page 22: Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2

Sitemap (10) -pipelines