Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Internet-Datenbanken
Allgemeine Technologien II
Internetzugriff mit Strings und Streams
Java 2 Enterprise Edition (J2EE)
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Internet-Datenbanken Grundlagen des WWW HTML HTTP Web-Anbindung von Datenbanken Servlets JSP JDBC XML Datenmodell Schemabeschreibungssprachen Anfragesprachen.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Java: Grundlagen der Sprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Dynamische Webseiten mit PHP
Dynamische Webseiten Java servlets.
XForms Von Matthias Keck.
Oracle – XSQL in der Anwendung SIG Development (Tools) Oracle & XML Kassel, Thomas Matzke, HTWK Leipzig.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Open Database Connectivity (ODBC). © Prof. T. Kudraß, HTWK Leipzig Open Database Connectivity (ODBC) Idee: – API für eine DBMS, das ein Call-Level-Interface.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Entwicklung von XML-Anwendungen mit ORACLE XSU Oberseminar Datenbanken Andreas Rebs, 01INM.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Speicherung von XML- Dokumenten als Large Objects.
XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der.
XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung MySQL mit PHP
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Systementwicklungsprojekt:
JDBC: JAVA Database Connectivity
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Einführung Servlets/JSPs
Wir bauen uns eine Webapplikation!
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Sesame Florian Mayrhuber
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Programmierprojekt Java Server Pages
Datenanbindung in Webapplikationen
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Datenbankanbindung mit
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Structured Query Language
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Oracle – XSQL in der Anwendung Thomas Matzke, 99IN.
Datenbanken im Web 1.
Benutzerdefinierte Tags
Datenbanken abfragen mit SQL
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
1 JavaServer Pages Stephan Baldes JavaServer Pages Einführung
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
1 © Thales IS GmbH 2002 Thales Information Systems GmbH Im Team für Ihren Erfolg DOAG - Regionaltreffen Hannover Donnerstag, Oracle 9i XML Datenbank.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
 Präsentation transkript:

Publikation von XML-Daten mit XSQL Pages

© Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis von SQL Queries erlaubt Insert-, Update- und Delete-Operationen unterstützt XSL Transformation durch Anwendung von XML Stylesheets, beliebige Zielformate wie z.B. HTML dient als Input für den XSQL Page Processor Trennung der Daten von ihrer Darstellung

© Prof. T. Kudraß, HTWK Leipzig XSQL Page Verarbeitung Bestandteile XSQL Pages – SQL Queries – DML und DDL in XML Tags XSQL Page Processor (in Java) – nimmt XSQL Pages als Input – erzeugt dynamische XML Seiten mit den Ergebnissen der SQL- Queries XSQL Servlet – erlaubt XSQL Page Verarbeitung im Web Erweiterbare Stylesheets – optional während XSQL-Verarbeitung – XSL Transformationen zur Formatierung des Output

© Prof. T. Kudraß, HTWK Leipzig Verarbeitung von XSQL Pages SELECT Hello World AS greeting FROM DUAL SELECT Hello World AS greeting FROM DUAL XSQL Page Input XML Output Hello World Hello World Einführendes Beispiel

© Prof. T. Kudraß, HTWK Leipzig XSQL Queries und Connections XSQL Page erlaubt die Definition von SQL Queries Query ist eingebettet in ein xsql:query Tag Connection-Attribut definiert die Verbindungsinformaiton zur Datenbank Connection Name wird aufgelöst in einer Konfigurationsdatei XSQLConfig.xml (in xsql/lib ) Beispiel xuser oracle.jdbc.driver.OracleDriver... xuser oracle.jdbc.driver.OracleDriver...

© Prof. T. Kudraß, HTWK Leipzig XSQL Page Processor Architektur XSL Stylesheet XSQL Page XML o.a. Formate XSQLConfig Datenbank XSQL Page Processor XSLT XML Parser XML Utility JDBC

© Prof. T. Kudraß, HTWK Leipzig Überblick über XSQL Tags – Ausführung eines beliebigen SQL-Statements und Einfügen Result Set in kanonischem XML-Format – Ausführung eines beliebigen DML-Statements oder anonymen PL/SQL-Blocks – Setze Top-Level-Stylesheet Parameter in XSLT-Stylesheet – value -Attribut oder SQL-Statement als Inhalt – Einfügen XML-Dokument, das in Request gesendet wurde, in DB-Tabelle oder Sicht – Einfügen beliebiges XML-Dokument durch Angabe URL

© Prof. T. Kudraß, HTWK Leipzig Überblick über XSQL Tags (2) Einfügen XML-Fragment in der XSQL-Page: – Namen und Werte aller HTTP-Parameter – Cookies und Session Variable – Einfügen des XML-Outputs einer anderen XSQL-Page – Ausführen eines PL/SQL Stored Procedure, die OWA-Package zur Erzeugung von XML-Inhalt verwendet – Einfügen des XML-Fragments – Aufruf eines benutzerdefinierten Action Handlers (implementiert in Java) – Einfügen der XML-Repräsentation eines Result Sets eines Cursors, der durch eine PL/SQL Stored Functions zurückgeliefert wird

© Prof. T. Kudraß, HTWK Leipzig Überblick über XSQL Tags (3) – Einfügen eines Parameters und seines Wertes als Element in der XSQL Page – Setze HTTP-Session-Parameter, deren Werte über Page Request hinaus erhalten bleiben – Setze Page-Parameter – Genutzt für parametrisierte SQL-Befehle – Setze den Wert von HTTP-Cookie (Alter, Domain) – Einfügen von Parameterwerten in DB-Tabelle oder View – Nutzbar für XML-Dokumente als HTTP-Parameter

© Prof. T. Kudraß, HTWK Leipzig Anpassung von XSQL Queries Attribute für xsql:query : NameBeschreibung rowset-elementElementname für Query-Ergebnis, Default ist, wenn leerer String: Element für Rowset wird unterdrückt row-elementElementname für Zeile max-rowsMaximale Anzahl gewünschter Zeilen, sinnvoll z.B. für Top-N-Queries skip-rowsAnzahl zu überspringender Zeilen vor Rückgabe des Ergebnisses id-attributeAttributname für id-Attribut in jeder Ergebniszeile id-attribute-columnZu nutzender Spaltenname für id-Attribut null-indicator Wenn y oder yes : Nutze null-indicator -Attribut für NULL-Werte (Default: Weglassen des jeweiligen Elements)

© Prof. T. Kudraß, HTWK Leipzig XSQL Query Parameter Beispiel: Deklaration einer parametrisierten Query in einer XSQL Page Die Parameterwerte können in einer URL geliefert werden, z.B.: find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE ORDER BY find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE ORDER BY

© Prof. T. Kudraß, HTWK Leipzig XSQL Tag Attribute für DML Für alle DML-Operationen muß Zieltabelle spezifiziert werden: <xsql:insert-request table=purchase_order transform=order-to-rowset.xsl/> <xsql:insert-request table=purchase_order transform=order-to-rowset.xsl/> Für Update und Delete Angabe eines Key notwendig <xsql:update-request table=dept transform=doc-to-dept.xsl key-columns=deptno/> <xsql:update-request table=dept transform=doc-to-dept.xsl key-columns=deptno/> Angabe eines Stylesheets erforderlich für Umwandlung kanonische / -Struktur

© Prof. T. Kudraß, HTWK Leipzig XSQL Tag Attribute für DML (Beispiel) <xsql:insert-requesttable=newsstory transform=moreover-to-newsstory.xsl/> SELECT id,title,url AS h_url FROM newsstory ORDER BY id DESC <xsql:insert-requesttable=newsstory transform=moreover-to-newsstory.xsl/> SELECT id,title,url AS h_url FROM newsstory ORDER BY id DESC

© Prof. T. Kudraß, HTWK Leipzig Aufruf von Stored Procs aus XSQL Aufruf von Stored Procedures aus XSQL mittels Tag: - Stored Procedures in PL/SQL oder Java - Aufruf von anonymen PL/SQL erlaubt Beispiele: BEGIN INSERT INTO dept (deptno,dname)VALUES my_package.my_procedure END; BEGIN INSERT INTO dept (deptno,dname)VALUES my_package.my_procedure END;

© Prof. T. Kudraß, HTWK Leipzig XSQL Custom Actions (1) Implementierung von benutzerdefinierten Action Handlers mittels xsql:action Tags: <xsql:action handler=JavaDate xmlns:xsql=urn:oracle-xsql format=dd.MM.yyyy <xsql:action handler=JavaDate xmlns:xsql=urn:oracle-xsql format=dd.MM.yyyy Einbeziehung von Business-Logik, z.B.: Aufruf von DB-Sequenzen Formatierung von Daten Manipulation von XML-Dokumenten Klasse JavaDate = Action Handler Attribut mask liefert Parameterwert für Java-Applikation

© Prof. T. Kudraß, HTWK Leipzig XSQL Custom Actions (2) Java-Klasse ist entweder: Implementation des XSQLActionHandler Interface Erweiterung der Basis-Implementationsklasse XSQLActionandlerImpl public class JavaDate extends XSQLActionHandlerImpl { public void handleAction (Node root) { String mask = getAttributeAllowingParm (mask,getActionElement()); String dateValue = null; SimpleDateFormat sdf = new SimpleDataFormat (mask); dateValue = sdf.format (new Date()).toString()); addResultElement (root,CurrentDate,dateValue); } public class JavaDate extends XSQLActionHandlerImpl { public void handleAction (Node root) { String mask = getAttributeAllowingParm (mask,getActionElement()); String dateValue = null; SimpleDateFormat sdf = new SimpleDataFormat (mask); dateValue = sdf.format (new Date()).toString()); addResultElement (root,CurrentDate,dateValue); }

© Prof. T. Kudraß, HTWK Leipzig Aufruf des XSQL Page Processor Kommando- zeile XSQL Page Processor Java- Applikation XSQL- Servlet Java Server Page

© Prof. T. Kudraß, HTWK Leipzig XSQL-Aufruf aus Kommandozeile Beispiel: Fluginformationen aus San Francisco mittels XSQL Command Line Utility abrufen: >xsql airport.xsql airport=sfo xsql-stylesheet=none Abhängig von XSQL-Page werden Aktionen aufgerufen. URL spezifiziert XML-Quelle, die in XSQL-Page eingefügt werden soll >xsql insertnewsstory.xsql posted-xml=

© Prof. T. Kudraß, HTWK Leipzig XSQL-Aufruf aus Java-Programm Verwende oracle.xml.xsql.XSQLRequest() : public static void main (String[] args) throws Exception { // Erzeuge Instanz einer XSQLRequest-Klasse URL pageUrl = new URL(file:///C:/foo/bar.xsql); XSQLRequest req = new XSQLRequest(pageUrl); // Speichere Parameter in Hashtabelle Hashtable params = new Hashtable(3); params.put(param1,value1); params.put(param2,value2); // Verarbeite Seite, übergebe Parameter // Gebe Ergebnis auf Out-Stream aus req.process(params, new PrintWriter(System.out), new PrintWriter(System.err)); } public static void main (String[] args) throws Exception { // Erzeuge Instanz einer XSQLRequest-Klasse URL pageUrl = new URL(file:///C:/foo/bar.xsql); XSQLRequest req = new XSQLRequest(pageUrl); // Speichere Parameter in Hashtabelle Hashtable params = new Hashtable(3); params.put(param1,value1); params.put(param2,value2); // Verarbeite Seite, übergebe Parameter // Gebe Ergebnis auf Out-Stream aus req.process(params, new PrintWriter(System.out), new PrintWriter(System.err)); }

© Prof. T. Kudraß, HTWK Leipzig XSQL Servlet-Umgebung Aufgaben von XSQL Servlets – empfangen web-basierte Requests von Web-Clients – verarbeiten XSQL-Pages – liefern XML an den aufrufenden Client zurück – (optional) transformieren die Information in irgendein anderes Format (z.B. XML, HTML, Text) XSQL Servlets basieren auf Servlet Java-Klassen (Servlet 2.1-Spezifikation) XSQL Page Processor XSQL Servlet Web-Browser Oracle-Datenbank Web Server mit Servlet Engine JDBC http

© Prof. T. Kudraß, HTWK Leipzig XSQL und Java Server Pages (JSP) Java Server Pages – ermöglichen dokumentzentrischen Ansatz zur Entwicklung von dynamischen Web-Content – werden vor Ausführung in Servlets übersetzt JSP Tags zum Aufruf von XSQL-Pages –

© Prof. T. Kudraß, HTWK Leipzig Oracle Servlet Laufzeitumgebung Oracle Servlet Engine (OSE) – komplette Laufzeitumgebung für XSQL Pages und Servlet-Verarbeitung – Konfiguration in Oracle Datenbank (seit 8.1.7) Internet Application Server (iAS) Oracle HTTP-Server (powered by Apache) Oracle Web-to-Go – Single-User Server, vorkonfiguriert für XSQL Pages – zum Entwickeln und Testen von XSQL Pages – unterstützt Servlet 2.1 API – gebündelt mit XSQL Pages und Servlet for Windows

© Prof. T. Kudraß, HTWK Leipzig Kompatible Servlet Engines Oracle Internet Application Server, ab 8i Apache mit JServ 1.0 und 1.1 Apache mit Tomcat 3.1 Servlet Engine Apache Tomcat 3.1 Web Server + Servlet Engine Oracle Lite Web-to-Go Server Oracle 8i Servlet Engine Sun JavaServer Web Development Kit (JSWDK) Web Server