Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2.
-
Upload
matthias-baecker -
Category
Documents
-
view
218 -
download
0
Transcript of Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 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
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, 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
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
Installation (3)
• Das Servlet neu starten mit dem shutdown und startup Befehl
• nun ist Cocoon unter http://localhost:8080/cocoon/ 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.:
<?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>
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>
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>
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>
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>
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>
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>
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>
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>
Sitemap (10) -pipelines