XML Framework: Cocoon - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

XML Framework: Cocoon

Description:

XML Framework: Cocoon Seminar: XML f r Fortgeschrittene Referent: Katrin Apel – PowerPoint PPT presentation

Number of Views:177
Avg rating:3.0/5.0
Slides: 39
Provided by: Hara103
Category:
Tags: xml | cocoon | framework | html | http

less

Transcript and Presenter's Notes

Title: XML Framework: Cocoon


1
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

4
Motivation
  • Trennung von Content, Style, Logik und Management
    Funktionen

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

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
FunktionsprinzipPipeline Processing I
  • Einfachstes Beispiel
  • Eingabe gespeichertes XML-Dokument
  • Verarbeitung XSL Stylesheet
  • Ausgabe HTML

11
FunktionsprinzipPipeline 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
  • ltguest-listgt
  • ltsqlexecute-querygt
  • ltsqlquerygt
  • SELECT CONCAT(lastNAME,,,firstName) as name,
    age
  • FROM guest WHERE statusARRIVING
  • lt/sqlquerygt
  • lt/sqlexecute-querygt
  • lt/guest-listgt

13
  • Beispielausgabe des SQL Transformers
  • ltguest-listgt
  • ltrow-setgt
  • ltrowgt
  • ltnamegtBush, Georgelt/namegt
  • ltagegt56lt/agegt
  • lt/rowgt
  • ltrowgt
  • ltnamegtJackson, Michaellt/namegt
  • ltagegt42lt/agegt
  • lt/rowgt
  • ltrowgt
  • ltnamegtAlbert Einsteinlt/namegt
  • ltagegt105lt/agegt
  • lt/rowgt
  • lt/row-setgt
  • lt/guest-listgt

14
FunktionsprinzipPipeline 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 ltxsppagegt
  • Weitere Tags ltxsplogicgt ltxspexpressiongt

17
Extensible Server Pages (XSP)
  • lt?xml version1.0 encodingISO-8859-1?gt
  • ltxsppage languagejava xmlnsxsphttp//apache
    .org/xspgt
  • ltxsplogicgt
  • static private int counter0
  • private synchronized int count()
  • return counter
  • lt/xsplogicgt
  • ltpagegt
  • ltpgtI have been requested ltxspexprgtcount()lt/xspex
    prgt times. lt/pgt
  • lt/pagegt
  • lt/xsppagegt

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

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)

21
Sitemap Matcher II
  • Einträge in die Sitemap für verschiedene Matcher
  • ltmapmatchers defaultwildcardgt
  • ltmapmatcher namewildcard factoryorg.apache.
    cocoon.matching.WildcardURIMatcher/gt
  • ltmapmatcher nameregexp factoryorg.apache.co
    coon.matching.RegexpURIMatcher/gt
  • lt/mapmatchersgt

22
Sitemap Matcher III
  • Beispiel Matcher Eintrag in einer Pipeline
  • ltmapmatch patternjsp/gt
  • ltmapgenerate typejsp src/docs/samples/jsp/
    1.jsp/gt
  • ...
  • lt/mapmatchgt
  • ltmapmatch patternhello.pdfgt
  • ...
  • lt/mapmatchgt

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
  • ltmapgenerators defaultfilegt
  • ltmapgenerator
  • namefile
  • srcorg.apache.cocoon.generation.FileGenerator
  • labelcontent/gt
  • ltmapgenerator
  • namedirectory
  • srcorg.apache.cocoon.generation.DirectoryGener
    ator
  • labelcontent/gt
  • ltmapgenerator
  • nameserverpages
  • srcorg.apache.cocoon.generation.ServerPagesGen
    erator
  • labelcontent/gt
  • ltmapgenerator namerequest
  • srcorg.apache.cocoon.generation.RequestGenerat
    or/gt
  • ...
  • lt/mapgeneratorsgt

25
Sitemap Generators III
  • Beispiel Generator Eintrag in einer Pipeline
  • ltmapmatch patternhello.htmlgt
  • ltmapgenerate srcdocs/samples/hello-page.xml/gt
  • ltmaptransform srcstylesheets/page/simple-page2
    html.xsl/gt
  • ltmapserialize typehtml/gt
  • lt/mapmatchgt

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
  • ltmaptransformers defaultxsltgt
  • ltmaptransformer namexslt srcorg.apache.coco
    on.transformation.TraxTransformergt
  • ltuse-request-parametersgtfalselt/use-request-param
    etersgt
  • ltuse-browser-capabilities-dbgtfalselt/use-browser-
    capabilitiesgt
  • lt/maptransformergt
  • ltmaptransformer namelog srcorg.apache.cocoo
    n.transformation.LogTransformer/gt
  • ...
  • lt/maptransformergt

28
Sitemap Transformer III
  • Beispiel Transformer Eintrag in einer Pipeline
  • ltmapmatch patternhello.html
  • ltmapgenerate srcdocs/samples/hello-page.xml/gt
  • ltmaptransform srcstylesheets/page/simple-page2
    html.xsl/gt
  • ltmapserialize typehtml/gt
  • lt/mapmatchgt

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
  • ltmapserializers defaulthtmlgt
  • ltmapserializer namexml
  • mime-typetext/xml
  • srcorg.apache.cocoon.serialization.XMLSerializ
    er/gt
  • ltmapserializer namehtml
  • mime-typetext/html
  • srcorg.apache.cocoon.serialization.HTMLSeriali
    zer/gt
  • ltmapserializer namefo2pdf
  • mime-typeapplication/pdf
  • srcorg.apache.cocoon.serialization.FOPSerializ
    er/gt
  • ...
  • lt/mapserializersgt

31
Sitemap Serializer III
  • Beispiel Serializer Eintrag in einer Pipeline
  • ltmapmatch patternhello.htmlgt
  • ltmapgenerate srcdocs/samples/hello-page.xml/gt
  • ltmaptransform srcstylesheets/page/simple-page2
    html.xsl/gt
  • ltmapserialize typehtml/gt
  • lt/mapmatchgt

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
  • http//cocoon.apache.org
  • Cocoon Tutorial
  • http//www.logabit.com/cocoontutorial.php
  • http//wiki.cocoondev.org/downloads/Cocoon.pdf
  • Artikel bei XML.com
  • http//www.xml.com/pub/a/2002/07/10/cocoon2.html
  • http//www.xml.com/pub/a/2002/07/24/xmlportal.html
  • Java XML (OReilly)
Write a Comment
User Comments (0)
About PowerShow.com