XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

23
XML-Serverpages XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler

Transcript of XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

Page 1: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML-ServerpagesXML-Serverpages

Vortrag im Rahmen des Seminars

XML-Technologien

Tobias Faessler

Page 2: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 2

AusgangslageAusgangslage

Page 3: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 3

XSP – Was ist das?XSP – Was ist das?

• eXtensible Server Pages• XSP ist eine Komponente von Cocoon, mit

der man dynamische Webapplikationen bauen kann.

Page 4: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 4

Was war die Absicht dahinterWas war die Absicht dahinter

• Man wollte es den Webdesigner ermöglichen, dass sie auch mit dynamischen Webinhalten zurecht kommen, ohne sie zu zwingen eine Programmiersprache zu lernen.

• Dieser Ansatz ist auf klare Arbeitsteilung ausgerichtet:– Applikationsentwickler– Inhalt Autor– Präsentationsdesigner

Page 5: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 5

Beispiel 1: AufbauBeispiel 1: Aufbau

XSP

XSLTXML

HTML

Page 6: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 6

Beispiel 1: CodeBeispiel 1: Code

• Beispiel 1• XSP• XSLT

Page 7: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 7

Was ist zu beachtenWas ist zu beachten• XSP-File:

– Page-Tag <xsp:page> als Root-Element jedes XSP-Dokuments.

– Expression-Tag <xsp:expr>– benutzerdefinierte Elemente

• Cocoon: <map:match pattern="beispiel1"> <map:generate type="serverpages"

src="bspVortrag/beispiel1.xsp"/> <map:transform src="bspVortrag/beispiel1.xsl"> <map:parameter name="view-source"

value="bspVortrag/beispiel1.xsp"/> </map:transform> <map:serialize/> </map:match>

Page 8: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 8

Wie unterscheidet sich XSP zu Wie unterscheidet sich XSP zu JSPJSP• XSP kann mit regulären XML-Parsern

überprüft werden.• XSP kann mittels XSLT transformiert werden.• XSP ist keine Programmiersprache.

Page 9: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 9

Beispiel 1 mit ASPBeispiel 1 mit ASP<%seitenTeil = "Dieser Abschnitt wird am Anfang im XSP-File

generiet aber erst am Schluss aufgerufen "seitenTeil = seitenTeil & "Datum:" & Date()%><html> <head> <title>Beispiel1</title> </head>

<body bgcolor="#FFFFFF"> <h1>Beispiel1</h1> <%response.write seitenTeil%> </body></html>

Page 10: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 10

Beispiel 2: XSP mit Logic internBeispiel 2: XSP mit Logic intern

XSLTXML

HTML

XSP & Logic

Page 11: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 11

Beispiel 2: CodeBeispiel 2: Code

• Beispiel 2• XSP• XSLT

Page 12: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 12

Was ist zu beachtenWas ist zu beachten• XSP-File

– <xsp:structure> und <xsp:include> ElementDie dienen dazu zusätzliche Java Klassen in das XSP-File einzubetten.

– Logic-Tag <xsp:logic>Ermöglicht es Java-Code direkt im XSP-File zu integrieren.

– <xsp:expr> Dient dazu den Wert einer Java-Variablen im XSP-File auszugeben.

– <![CDATA[…….]]> Sagt dem XML Parser, dass es sich nicht Um XML handelt.Problem: if (a < b && c > d {…})Lösung2: if (a &lt; b &amp;&amp; c &gt; d {…})

Page 13: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 13

Beispiel 3: DatenbankBeispiel 3: Datenbank

XSP

XSLTXML

HTML

XSP & Logic

Output

Datenbank

Page 14: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 14

Beispiel 3: CodeBeispiel 3: Code

• Beispiel 3• xml_Adressen.mdb (MS Access Datenbank)• XSP• XSLT• CSS

Page 15: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 15

Was ist zu beachtenWas ist zu beachten• XSP-File

– Elemente-Tag <xsp:element> dient zur dynamischen Generierung von Elementen.

– Attribut-Tag <xsp:attribute> dient zur dynamischen Generierung von Attributen.

• Cocoon:– Sitemap Eintrag für das Style-Sheet:

<map:match pattern="css/style.css"> <map:read src="bspVortrag/css/style.css" mime-type="text/css"/> </map:match>

Page 16: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 16

Beispiel 4: externes Logic-sheetBeispiel 4: externes Logic-sheet

XSP

XSLTXML

HTML

LogicSheet

Page 17: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 17

Externes LogicsheetExternes Logicsheet• Externe Logicsheets dienen dazu Programmiercode und XML-

Markup zu trennen.

• Gründe sind: Übersichtlichkeit, Risiko eines Sprachenmix, Wiederverwendbarweit des Sourcecodes

• Ähnlich wie bei der JAVA-API die Klassen, kommen auch hier immer wieder neue Logicsheets hinzu. (request, response, session, cookie, sendmail, …)

http://localhost:8080/cocoon/documents/userdocs/xsp/index.html

Page 18: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 18

Beispiel 4: CodeBeispiel 4: Code

• Beispiel 4• XSP• XSLT

Page 19: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 19

Was ist zu beachtenWas ist zu beachten

• XSP-File– xmlns:util="http://apache.org/xsp/util/2.0„

• Bem: Wir können auch eigene Logicsheets schreiben.

Page 20: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 20

Was läuft im HintergrundWas läuft im Hintergrund• Cocoon generiert aus dem XSP-und dem XSLT-File ein

Java-File.• Die generierten Java-Files sind eine gute Hilfe bei der

Fehlersuche, da Cocoon oft nur die Kompilierfehler, mit Zeilennummer angibt.

• Die Java-Files findet man unter:[Tomcat-HOME]\work\localhost\cocoon\cocoon-files\org\apache\cocoon\www\bspVortrag\beispiel1.java

Page 21: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 21

Beobachtung in der PraxisBeobachtung in der Praxis

• Entwicklung eines Content-Management-Systems.

Verkauf

Art-Team (Photoshop)

Build-Team (XSLT)

Datenbankentwickler: Java-Team oder VB-Team

Projektleiter

Page 22: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 22

VersionenkriegVersionenkrieg• Ich habe gearbeitet mit:• NT 4• Service Pack 6a• Apache Tomcat 4.0.1• Cocoon 2.0.1 (mit Version 2.0.2 gab es

Probleme)• Text-Editor• Tipp: Gelegentlich, das Work-Directory in

Cocoon löschen wirkt wunder.

Page 23: XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.

XML ServerPages 23

LinksLinks

• http://xml.apache.org• http://xml.apache.org/cocoon/index.htm• http://www.w3.org/

• http://ibm.com/developerworks/http://ibm.com/developerworks/• http://localhost:8080/cocoon/documents/

userdocs/xsp/index.html