Seminar: XML für Fortgeschrittene Referent: Katrin Apel

Slides:



Advertisements
Ähnliche Präsentationen
Martin Köllner XMLCompany XML-Datenbanken Xindice als Datenquelle einer Website im Zusammenspiel mit Cocoon und authentic TM.
Advertisements

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Daten- und Informationsdienste
Eine Page von Fachinformatikern für Fachinformatiker
Druck / Ausgaben unter LSF
FI Knowledge Base Eine Page von Fachinformatikern für Fachinformatiker.
Internet-Datenbanken
Internetzugriff mit Strings und Streams
K OMPLEXPRAKTIKU M M ULTIMEDIATECHNI K II S O S E 2009 AMACONT vs. COCOON Serverumgebung für aspektorientierte, adaptive Webanwendungen AMACONT COCOON.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
XML - Aufbau und Struktur - mit Einsatz im B2B
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.
Einführung XML XML Einführung Andreas Leicht.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
XDoclet ETIS SS05.
Java Server Pages Implementierung eines Web-Service-Clients Pea 13: Maik Opitz, Martin Melle, Philipp Hake.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
© data2type 2005, 1 Publishing mit XML Einsatz von XSL für das multimediale, automatisierte Publishing.
Tobias Högel & Dennis Böck,
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
COCOON. Cocoon ist in erster Linie ein XML-Publishing System. eine oder mehreren XML-Dokument(en) & dem zugehörigen XSL- Dokument(en) ein beliebiges.
Systementwicklungsprojekt:
SEP Halgurt Mustafa Ali Can Önder Marius Morawski Matthias Seidl Themen: Integration von RDQL und OWQL innerhalb des Apache Cocoon Frameworks Semantische.
Coccon das Web-XML-Publishing System Thomas Haller.
Martin Köllner XMLCompany Cocoon XMLCompany Apache Cocoon Web Publishing Framework.
Learning By Doing Thema 1: Dynamische Webseiten und Online Datenbanken (Jarka Arnold) Thema 2: Simulationen, Sound, Schnittstellen (Aegidius Plüss) Thema.
Client-Server Modell Advanced IT Basics Nicolas Frings.
Seminar Internet - Technologie
Die .NET Common Language Runtime
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Grundlagen: Client-Server-Modell
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
XSL und XSLT1 eXstensible Stylesheet Language und eXstensible Stylesheet Language Transformation.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
XML IV: Cocoon 2.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Java Server Pages Sergej Keterling
Demolsky Markus Hiebler Thomas Pindhofer Walter
XML (Extensible Markup Language)
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a XML EXTENSIBLE MARKUP LANGUAGE.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
XML1 XML-Motivation HTML definiert nur einen bestimmten Dokumenttyp Viele Web-Technologien benötigen eine allgemeinere Sprache zur Dokumentstrukturierung.
Datenanbindung in Webapplikationen
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Client-Server-Modell
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Datenbanken im Web 1.
Java und XML Kurzvortrag von Tim Steffens und Andreas Klein Cocoon 2.
1 Einführung TOMCAT Entwicklung Technischer Informationssysteme SS 2003 Florian Müller.
Stefan Metzlaff1 Cocoon Stefan Metzlaff
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
29.Januar 2007 – 1Vorlesung Elektronisches Publizieren: Publishing Framework Cocoon Architektur von Publikationssystemen — Cocoon — Anne Brüggemann-Klein.
 Präsentation transkript:

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

Gliederung Motivation Cocoon Basics Einsatz in der Wirtschaft Fazit Literatur

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

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

Gliederung Motivation Cocoon Basics Einsatz in der Wirtschaft Fazit Literatur

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

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

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

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

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

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

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>

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>

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

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

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

Extensible Server Pages (XSP) <?xml version=“1.0“ encoding=“ISO-8859-1?“> <xsp:page language=“java“ xmlns:xsp=„http://apache.org/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>

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

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

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

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>

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“>

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 ...

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>

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>

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

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“/> ...

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>

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

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>

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>

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

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

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

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

Fazit - Nachteile Nachteile Einarbeitungszeit Performanz Verwendung von XSL Design leidet

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

Literatur Cocoon Homepage Cocoon Tutorial Artikel bei XML.com 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 (O‘Reilly)