Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar: XML für Fortgeschrittene Referent: Katrin Apel

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar: XML für Fortgeschrittene Referent: Katrin Apel"—  Präsentation transkript:

1 Seminar: XML für Fortgeschrittene Referent: Katrin Apel
XML Framework: Cocoon Seminar: XML für Fortgeschrittene Referent: Katrin Apel

2 Gliederung Motivation Cocoon Basics Einsatz in der Wirtschaft Fazit
Literatur

3 Motivation Dynamische Generierung von Dokumenten in verschieden Formaten und für verschiedene Clients Definiert den Workflow für XML-Dokument

4 Motivation Trennung von Content, Style, Logik und Management Funktionen Komponentenbasierte Architektur -> Wiederverwendbarkeit Trennt Daten, Layout und Logik (Model View Controller)

5 Gliederung Motivation Cocoon Basics Einsatz in der Wirtschaft Fazit
Literatur

6 Cocoon Basics Was ist Cocoon? Funktionsprinzip
Extensible Server Pages (XSP) Sitemap

7 Was ist Cocoon? XML Publishing Framework Teil des Apache Projekts
Aufsatz für Webserver / Teil einer lokalen Applikation Bestandteile: Servlets XML-Parser XSL-Prozessoren Verwendung auf Servlet-Containern als dynamischer Website Generator Cocoon 1 – Cocoon 2 -> DOM zu SAX, Schneller, weniger Speicherbedarf, Standards komplett umgesetzt Management Funktion -> Sitemap

8 Cocoon Basics Was ist Cocoon? Funktionsprinzip
Extensible Server Pages (XSP) Sitemap

9 Funktionsprinzip - Basismechansimen
Abfertigung basierend auf Matchern und Selektoren Generierung von XML Dokumenten durch Generatoren Transformation von XML Dokumenten durch Transformatoren Aggregation von XML Dokumenten durch Aggregatoren Rendering von XML durch Serializers

10 Funktionsprinzip Pipeline Processing I
Einfachstes Beispiel: Eingabe: gespeichertes XML-Dokument Verarbeitung: XSL Stylesheet Ausgabe: HTML

11 Funktionsprinzip Pipeline Processing II
Verbindung von statischen Daten (file.xml) und dynamisch generierten (Datenbankanfrage) durch in XML eingebettete SQL Statements

12 Eingebettete SQL Statements in XML Datei file.xml
<guest-list> <sql:execute-query> <sql:query> SELECT CONCAT(lastNAME,‘,‘,firstName) as name, age FROM guest WHERE status=ARRIVING; </sql:query> </sql:execute-query> </guest-list>

13 Beispielausgabe des SQL Transformers:
<guest-list> <row-set> <row> <name>Bush, George</name> <age>56</age> </row> <name>Jackson, Michael</name> <age>42</age> <name>Albert Einstein</name> <age>105</age> </row-set> </guest-list>

14 Funktionsprinzip Pipeline Processing III
Verbindung von statischen Daten (file.xml) und dynamisch generierten (Datenbankanfrage, Internetanfrage an Web Service)

15 Cocoon Basics Was ist Cocoon? Funktionsprinzip
Extensible Server Pages (XSP) Sitemap

16 Extensible Server Pages (XSP)
XML Dokument mit integrierter Logik Ähnlich wie Java Server Pages (JSP) XSP-Parser interpretiert Logik-Bestandteile und wandelt sie in Code um Dokument Root Element: <xsp:page> Weitere Tags: <xsp:logic> <xsp:expression> Extra für Cocoon entwickelt JSP erzeugt HTML, XSP erzeugt XML XSP-Seite einfacher aufgebaut als JSP XSP trennt Logik und Daten besser als JSP Weitere Tags: element, attribute, comment

17 Extensible Server Pages (XSP)
<?xml version=“1.0“ encoding=“ISO ?“> <xsp:page language=“java“ xmlns:xsp=„ <xsp:logic> static private int counter=0; private synchronized int count() { return counter++; } </xsp:logic> <page> <p>I have been requested <xsp:expr>count()</xsp:expr> times. </p> </page> </xsp:page>

18 Cocoon Basics Was ist Cocoon? Funktionsprinzip
Extensible Server Pages (XSP) Sitemap

19 Sitemap XML Datei (Sitemap DTD) Um neue Elemente erweiterbar
Enthält Konfigurationsinformationen Liste von Matchern Liste von Generatoren Liste von Transformern Liste von Readern Liste von Serializern Liste von Selektoren Liste von Processing Pipelines mit Match Pattern Sitemap das Herz von Cocoon Sitemap wird beim Start von Cocoon in Java Code umgewandelt Definiert die Pipelines: Welche Dateien werden wie verarbeitet? Selektoren -> if-else Browser, Cookie, Host, Parameter, Request, SessionAttribute Selector

20 Sitemap - Matcher Matcht URI mit einem spezifizierten Pattern, um den Request mit einer bestimmten Processing Pipeline abarbeiten zu können Verschieden Arten von Matchern: Wildcard Matcher (WildcardURIMatcher) Regexp Matcher (RegexpURIMatcher) Nimmt einen Wert entgegen, überprüft anhand eines beliebigen Musters WildcardURIMatcher: Vereinfachung von RegexpURIMatcher Wird von oben nach unten abgearbeitet. Rumpf des ersten passenden Elements wird ausgeführt

21 Sitemap – Matcher II Einträge in die Sitemap für verschiedene Matcher:
<map:matchers default=“wildcard“> <map:matcher name=“wildcard“ factory=“org.apache.cocoon.matching.WildcardURIMatcher“/> <map:matcher name=“regexp“ factory=“org.apache.cocoon.matching.RegexpURIMatcher“/> </map:matchers>

22 Sitemap – Matcher III Beispiel Matcher Eintrag in einer Pipeline:
<map:match pattern=“jsp/*“> <map:generate type=“jsp“ src=“/docs/samples/jsp/{1}.jsp“/> ... </map:match> <map:match pattern=“hello.pdf“>

23 Sitemap - Generatoren Generiert eine XML Struktur aus einer Eingabequelle (Datei, Verzeichnis, Stream,..) Verschiedene Arten von Generators Datei Generator Verzeichnis Generator XSP Generator JSP Generator Request Generator ...

24 Sitemap – Generatoren II
Einträge in der Sitemap für verschiedene Generator <map:generators default=“file“> <map:generator name=“file“ src=“org.apache.cocoon.generation.FileGenerator“ label=“content“/> name=“directory“ src=“org.apache.cocoon.generation.DirectoryGenerator“ name=“serverpages“ src=“org.apache.cocoon.generation.ServerPagesGenerator“ <map:generator name=“request“ src=“org.apache.cocoon.generation.RequestGenerator“/> ... </map:generators>

25 Sitemap – Generators III
Beispiel Generator Eintrag in einer Pipeline: <map:match pattern=“hello.html“> <map:generate src=“docs/samples/hello-page.xml“/> <map:transform src=“stylesheets/page/simple-page2html.xsl“/> <map:serialize type=“html“/> </map:match>

26 Sitemap - Transformer Transformiert eine XML Struktur in eine andere XML Struktur Verschiedene Arten von Transformers XSLT Transformer Log Transformer SQL Transformer ...

27 Sitemap – Transformer II
Einträge in der Sitemap für verschiedene Transformer <map:transformers default=“xslt> <map:transformer name=“xslt“ src=“org.apache.cocoon.transformation.TraxTransformer“> <use-request-parameters>false</use-request-parameters> <use-browser-capabilities-db>false</use-browser- capabilities> </map:transformer> <map:transformer name=“log“ src=“org.apache.cocoon.transformation.LogTransformer“/> ...

28 Sitemap – Transformer III
Beispiel Transformer Eintrag in einer Pipeline: <map:match pattern=“hello.html“ <map:generate src=“docs/samples/hello-page.xml“/> <map:transform src=“stylesheets/page/simple-page2html.xsl“/> <map:serialize type=“html“/> </map:match>

29 Sitemap - Serializer Gibt eine XML Eingabestruktur in einem anderem Format aus Verschieden Arten von Serializern: HTML Serializer FOP Serializer (PDF) Text Serializer XML Serializer

30 Sitemap – Serializer II
Einträge in der Sitemap für verschieden Serializer <map:serializers default=“html“> <map:serializer name=“xml“ mime-type=“text/xml“ src=“org.apache.cocoon.serialization.XMLSerializer“/> <map:serializer name=“html“ mime-type=“text/html“ src=“org.apache.cocoon.serialization.HTMLSerializer“/> <map:serializer name=“fo2pdf“ mime-type=“application/pdf“ src=“org.apache.cocoon.serialization.FOPSerializer“/> ... </map:serializers>

31 Sitemap – Serializer III
Beispiel Serializer Eintrag in einer Pipeline: <map:match pattern=“hello.html“> <map:generate src=“docs/samples/hello-page.xml“/> <map:transform src=“stylesheets/page/simple-page2html.xsl“/> <map:serialize type=“html“/> </map:match>

32 Gliederung Motivation Wie funktioniert Cocoon?
Einsatz in der Wirtschaft Fazit Literatur

33 Einsatz in der Wirtschaft
Einige Beispiele: Reporting System für die Deutsche Bank Internetabfrage der Medizindatenbank von Novartis Enterprise Portal der NASA Diverse Webportale anderer Firmen und Gruppen

34 Gliederung Motivation Wie funktioniert Cocoon?
Einsatz in der Wirtschaft Fazit Literatur

35 Fazit - Vorteile Vorteile Hohe Flexibilität Modularität
Erweiterbarkeit komplett Java und XML basiert Plattformunabhängigkeit Open Source

36 Fazit - Nachteile Nachteile Einarbeitungszeit Performanz
Verwendung von XSL Design leidet

37 Gliederung Motivation Wie funktioniert Cocoon?
Einsatz in der Wirtschaft Fazit Literatur

38 Literatur Cocoon Homepage Cocoon Tutorial Artikel bei XML.com
Cocoon Tutorial Artikel bei XML.com Java & XML (O‘Reilly)


Herunterladen ppt "Seminar: XML für Fortgeschrittene Referent: Katrin Apel"

Ähnliche Präsentationen


Google-Anzeigen