Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Publikation von XML-Daten mit XSQL Pages. © Prof. T. Kudraß, HTWK Leipzig Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten auf der Basis."—  Präsentation transkript:

1 Publikation von XML-Daten mit XSQL Pages

2 © 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

3 © 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

4 © 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

5 © 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 jdbc:oracle:thin:@localhost:1521:mydb oracle.jdbc.driver.OracleDriver... xuser jdbc:oracle:thin:@localhost:1521:mydb oracle.jdbc.driver.OracleDriver...

6 © 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

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

8 © 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

9 © 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

10 © 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)

11 © 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.: http://localhost/xsql/demo/emp.xsql?find=A&sort=SAL find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE %{@find}% ORDER BY {@sort} find=% sort=ENAME null-indicator=yes> SELECT * FROM EMP WHERE ENAME LIKE %{@find}% ORDER BY {@sort}

12 © 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

13 © 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

14 © 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: my_package.my_procedure({@dname}); my_package.my_procedure({@dname}); BEGIN INSERT INTO dept (deptno,dname)VALUES ({@dept},{@dname}); my_package.my_procedure ({@dname}); END; BEGIN INSERT INTO dept (deptno,dname)VALUES ({@dept},{@dname}); my_package.my_procedure ({@dname}); END;

15 © 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 mask={@format}/> <xsql:action handler=JavaDate xmlns:xsql=urn:oracle-xsql format=dd.MM.yyyy mask={@format}/> 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

16 © 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); }

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

18 © 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=http://www.news.com/source

19 © 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)); }

20 © 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

21 © 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 –

22 © 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

23 © Prof. T. Kudraß, HTWK Leipzig Kompatible Servlet Engines Oracle Internet Application Server, ab 8i Apache 1.3.9 mit JServ 1.0 und 1.1 Apache 1.3.9 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) 1.0.1 Web Server


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

Ähnliche Präsentationen


Google-Anzeigen