Folien - bei Wob

Werbung
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 (XMLDokumente)
• Transformer: stilisiert das
Dokument (z.B. mit XSLT)
• Aggregator: fügt Daten
zusammen
• Serializer: erzeugt AusgabeStream 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 src
In diesem Beispiel wird ein <use-store>-Parameter spezifiziert
<map:components>
<map:transformer
name="xslt" src="org.apache.cocoon.transformation.XSLTTransform
er">
<!-- 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</doctypepublic>
<doctype-system>http://www.w3.org/TR/REChtml40/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</doctypesystem>
<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) -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: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) -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: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
Herunterladen