XQuery eingesetzt zur Generierung von Webseiten für Vorlesungsmaterialien. Studienarbeit für den integrierten Studiengang Informatik von Falk Eitzen

Größe: px
Ab Seite anzeigen:

Download "XQuery eingesetzt zur Generierung von Webseiten für Vorlesungsmaterialien. Studienarbeit für den integrierten Studiengang Informatik von Falk Eitzen"

Transkript

1 XQuery eingesetzt zur Generierung von Webseiten für Vorlesungsmaterialien Studienarbeit für den integrierten Studiengang Informatik von Falk Eitzen

2

3 Erklärung und Dank Ich versichere, daß ich die vorliegende Studienarbeit ohne fremde Hilfe und ohne Benutzung anderer als den angegebenen Quellen angefertigt habe, und daß die Arbeit in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer Prüfungsleistung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß übernommen wurden, sind als solche gekennzeichnet. An dieser Stelle möchte ich Michael Thies für die hervorragende Betreuung meiner Studienarbeit danken. Paderborn, den 14. Februar 2005 Falk Eitzen

4

5 Inhaltsverzeichnis 1 Einleitung und Aufgabenstellung 1 2 Technologien Das World Wide Web Consortium Die extensible Markup Language XML Die Struktur von XML-Dokumenten Wohlgeformte XML-Dokumente Gültige XML-Dokumente XHTML - Eine XML-Portierung von HTML Die Anfragesprache XQuery Das Datenmodell Das Achsenmodell Die Sprachkonstrukte von XQuery-Skripten Optionale Funktionalität Stand der Entwicklung Die verwendete XQuery Implementierung Weitere XML-Transformationen Verwandte Technologien Konzeption Anforderungsdefinitionen Darstellung des Problembereichs Schema der Software Die XML Eingabedokumente Die Ausgabedokumente Das XQuery Skript Implementierung Entwicklung der Software Implementierung der XML Dokumente Die Document Type Definitions Das Vorlesungsdokument Das Aufgabenblattdokument XQuery Implementierung Verwendete Erweiterungen Selbst erstellte Funktionen Auswertung und Zusammenfassung Dauer der Transformation Erweiterungsmöglichkeiten Bekannte Fehler Ein Anwendungsbeispiel Literaturverzeichnis 29 A Die erstellte Software 31 A.1 Voraussetzungen A.2 Auf der CD enthaltene Daten A.3 Start der Transformation

6 Abbildungsverzeichnis 1 Ablauf einer XQuery Transformation Das XQuery Achsenmodell[1] Ablauf eines FLWOR Ausdrucks.[1] Hierarchie der beiden Eingabedokumenttypen Struktur des Vorlesungsdokuments Struktur des Aufgabenblattdokuments Hierarchie der Ausgabedokumente Programmablaufplan des XQuery Skriptes Ausschnitt eines XML Dokuments für Aufgabenblätter Bildschrimfoto der Druckübersicht Bildschirmfoto eines erstellten Aufgabenblattes

7 1 1 Einleitung und Aufgabenstellung Die extensible Markup Language XML hat in den letzten Jahren seit ihrer Einführung viele Einsatzgebiete erobert. XML wird nicht nur als Grundlage für den Austausch von elektronischen Daten oder als Grundlage für viele Auszeichnungssprachen eingesetzt. Mittlerweile wird XML auch zur Speicherung von strukturierten Daten eingesetzt. Der Vorteil, den XML Dokumente bei der Speicherung von Daten bieten, ist ihre einfache Struktur. Daher sind XML Dokumente leicht von Maschinen zu verarbeiten. Bis zu einem gewissen Grad sind XML Dokumente auch für Menschen lesbar und verständlich. Durch Transformationen ist es möglich, XML Dokumente in Dokumente mit anderer Struktur zu überführen. Dies ist zum Beispiel nötig, wenn Daten auf verschiedenen Geräten dargestellt werden sollen. So können beispielsweise die Seiten zur Bildschirmdarstellung oder Druck verschieden sein, obwohl sie auf denselben Daten basieren. XML Query (kurz XQuery) ist eine noch relativ junge Technologie, die zur Transformation von XML basierten Daten eingesetzt werden kann. Mit XQuery sollen die Wünsche von XML Benutzern nach einer Anfragesprache für XML befriedigt werden. Zur Zeit befindet XQuery sich noch im Standardisierungsverfahren des World Wide Web Consortium. Der Sprache wird aber das Potential zugesichert, sich am Markt durchzusetzen. Viele Anbieter von XML-Software bieten schon Implementierungen von XQuery an. In der Arbeitsgruppe von Prof. Dr. Kastens wird zur Generierung von vorlesungsbegleitenden Webseiten ein weitgehend automatisiertes Softwaresystem verwendet. Bei diesem Softwaresystem werden die Webseiten statisch erstellt. Dies ermöglicht es, die Seiten vor der Veröffentlichung zu testen. Außerdem sollen durch die statische Generierung Fehler, wie sie manchmal in dynamischen Webanwendungen auftreten unterbunden werden. Aufgabe dieser Studienarbeit ist es, anhand eines Teilbereichs der Vorlesungsdokumente zu untersuchen, ob das vorhandene Softwarewerkzeug durch eine XML basierte Lösung ersetzt werden kann. Bei dem zu untersuchenden Teilbereich handelt es sich um die Generierung der Seiten, die für den Übungsbetrieb einer Vorlesung notwendig sind. Der dahinter stehende Gedanke ist, daß wenn die Übungsaufgaben durch ein solches System realisiert werden können, der komplette Webauftritt der Vorlesung mit einem erweiterten System zu bewerkstelligen ist. Die Transformation der XML Dokumente, welche die Daten der Vorlesung und der Übungsblätter speichern, zu den Webdokumenten soll mit Hilfe der neuen Anfragesprache XQuery realisiert werden. Folgende Punkte müssen zur Lösung der Aufgabe realisiert werden: Die Struktur der XML Dokumente, die als Datengrundlage für die Transformation dienen sollen, müssen entwickelt werden. Dazu ist es nötig eine Document Type Definition zu schreiben, nach der sich die Dokumente richten müssen Implementieren eines Skripts in der Sprache XQuery, das die Transformation der XML Dokumente zu den Webdokumenten durchführt. Erstellen von Beispieldokumenten, mit denen eine Transformation durchgeführt und getestet werden kann.

8 2 1 EINLEITUNG UND AUFGABENSTELLUNG Die Vorlesungsmaterialien sollen, wie bei dem momentan eingesetzten System, statisch generiert werden. Dadurch soll es weiterhin möglich sein, die Dokumente vor ihrer Veröffentlichung zu testen.

9 3 2 Technologien In diesem Kapitel sollen die Technologien vorgestellt werden, die in dieser Studienarbeit verwendet oder erwähnt werden. Zu Beginn dieses Kapitels soll kurz die Rolle des World Wide Web Consortium erklärt werden, da dieses Gremium bei der Standardisierung von Technologien für das World Wide Web eine wichtige Rolle spielt. Danach folgen die Erklärungen zu den beiden Sprachen (XML und XQuery), welche Grundlage für diese Studienarbeit sind. Zum Schluß soll noch auf verwandte Technologien eingegangen werden. 2.1 Das World Wide Web Consortium Das World Wide Web Consortium (kurz W3C) ist eine Organisation, die es sich zur Aufgabe gemacht hat, Technologien zu standardisieren und zu fördern, um das Internet möglichst effizient zu nutzen. Das W3C wurde im Oktober 1984 von Tim Berners-Lee am Massachusetts Institute of Technology, Laboratory for Computer Science (MIT/LCS) gegründet. Heute wird das W3C vom MIT/LCS, dem European Research Consortium in Informatics and Mathematics (ERCIM) in Europa und der Keio University Shonan Fujisawa Campus in Japan verwaltet.[8] Das Ziel, das Internet möglichst effizient zu nutzen, versucht das W3C zu erreichen, indem es Empfehlungen (Recommendations) zu den Technologien herausgibt, die im Internet zum Einsatz kommen. Eine solche Empfehlung des W3C kann als Standard gesehen werden, an den sich die Softwarehersteller halten sollen. Auf diese Weise soll verhindert werden, daß es verschiedene Dialekte einer Technologie gibt (wie z.b. bei HTML). Bevor das W3C eine Empfehlung zu einer eingereichten Technologie herausgibt, muß diese folgende Stufen durchlaufen: 1. Notes: Spezifikationen, die von einer Mitgliedsorganisation beim W3C eingereicht werden, werden als Notes bezeichnet. Diese werden vom W3C veröffentlicht, aber nicht unbedingt gebilligt.[2] 2. Working Drafts: Bei Working Drafts handelt es sich um Notes, die beim W3C eingereicht und angenommen wurden. Das W3C bildet eine Arbeitsgruppe, die dann weiter an der eingereichten Spezifikation arbeitet.[2] 3. Recommendations: Bei Recommendations handelt es sich um die Empfehlungen, die vom W3C herausgegeben werden und einem Quasi-Standard entsprechen.[2] Seid der Gründung des W3C wurden über achtzig Empfehlungen herausgegeben. Darunter befinden sich praktisch alle Technologien, die heute und in Zukunft im World Wide Web eingesetzt werden. Unter diesen Technologien befinden sich nicht nur die Sprachen, die im Internet eingesetzt werden wie HTML oder XHTML, sondern auch andere Auszeichnungssprachen wie zum Beispiel XML oder MathML, sowie das Bildformat PNG (Portable Network Graphic).[8]

10 4 2 TECHNOLOGIEN 2.2 Die extensible Markup Language XML Bei der extensible Markup Language XML handelt es sich um eine vom W3C standardisierte Meta-Auszeichnungs-Sprache, die eingesetzt wird, um andere Auszeichnungssprachen (z.b. MathML oder XHTML) zu entwerfen. XML ist eine Teilmenge der komplexen Auszeichnungssprache SGML (Standard Generalized Markup Language). Diese Sprache konnte sich allerdings wegen ihrer Komplexität nicht auf dem Markt durchsetzen. Anders verhält es sich bei XML: XML wird in zunehmenden Maße eingesetzt. Die Anwendungsmöglichkeiten von XML erstrecken sich über die Definition von anderen Auszeichnungssprachen hinaus, bis hin zur Datenspeicherung und Datenaustausch in verteilten Systemen. Ein Programm, das XML-Dokumente verarbeitet, wird XML-Prozessor genannt. Es gibt zwei verschiedene Arten von XML-Prozessoren: validierende und nicht validierende. Ein nicht validierender XML-Prozessor muß nur die Wohlgeformtheit eines ihm übergebenen Dokuments prüfen. Findet er Fehler in dem Dokument, muß er diese Fehler melden. Ein validierender XML-Prozessor muß neben der Wohlgeformtheit auch die Gültigkeit eines Dokuments prüfen. Um die Gültigkeit eines XML-Dokuments zu prüfen, muß eine Document Type Definition gegeben sein. Werden dabei Fehler entdeckt, obwohl das Dokument wohlgeformt ist, so ist es ungültig. In diesem Falle muß der Prozessor den Fehler melden, kann aber die Arbeit gegebenenfalls fortsetzen, und sei es nur um auf weitere Fehler zu prüfen.[2][4] Die Struktur von XML-Dokumenten Da es sich bei XML um eine Teilmenge von SGML handelt, haben auch die Dokumente dieselbe Struktur wie SGML-Dokumente. XML-Dokumente teilen sich in zwei Teile: den Prolog, in dem die XML-Version, Document Type Definitions und Verarbeitungsanweisungen definiert sind, sowie den Teil, der die Daten enthält. Der Datenteil eines XML-Dokuments muß ein Stammelement enthalten. Dieses darf auch leer sein, enthält aber in der Regel weitere Elemente. Das Stammelement, wie alle anderen Elemente auch, beginnt mit einem Anfangstag und endet mit einem Endtag. Zwischen diesen beiden Tags befindet sich der Wert des Elements. Bei dem Wert kann es sich um Zeichendaten oder auch weitere Elemente handeln. Für jedes Element können Attribute definiert werden. Diese werden mit in dem Anfangstag angegeben und haben die Form Attributname = Attributwert. Bei den Namen von Elementen und Attributen wird zwischen Groß- und Kleinschreibung unterschieden. Neben den normalen Tags, die einen Wert enthalten, gibt es auch sogenannte leere Tags. Leere Tags brauchen kein Endtag, sondern werden in sich mit dem Zeichen / am Ende des Tags geschlossen. Durch eine solche Strukturierung wird ein hierarchischer Baum mit dem Stammelement als Wurzel aufgebaut.[2][4]

11 2.3 XHTML - Eine XML-Portierung von HTML Wohlgeformte XML-Dokumente Eine vom W3C geforderte Bedingung für XML-Dokumente ist die der Wohlgeformtheit. Unter der Wohlgeformtheit ist zu verstehen, daß sich das Dokument an die Struktur hält, die vom W3C für XML-Dokumente empfohlen wird. Ein XML-Dokument ist wohlgeformt, wenn es folgende Punkte erfüllt: 1. Der Prolog muß mindestens die Angabe der XML-Version enthalten. Die einzige momentan mögliche Angabe ist hierbei die Version 1.0. Alle anderen Teile, wie z.b. Verarbeitungsanweisungen und DTDs sind optional.[4] 2. Es muß genau ein Wurzelelement geben. Dieses muß auch den Wohlgeformtheitsbedingungen für Elemente genügen.[4] 3. Ein Element ist wohlgeformt, wenn es selbst und seine Kindelemente wohlgeformt ist und seine Struktur der vom W3C herausgegebenen Empfehlung entspricht. Das heißt, daß das Element syntaktisch korrekt ist, die Tags des Elements sich nicht mit denen anderer Elemente überschneiden (korrekte Verschachtelung) und alle (auch leere) Tags ordnungsgemäß geschlossen wurden.[4] Gültige XML-Dokumente Die Definition von Gültigkeit geht noch über die von Wohlgeformtheit hinaus. Eine Voraussetzung für die Gültigkeit eines Dokuments ist seine Wohlgeformtheit. Darüber hinaus muß das Dokument auch noch den in einer Document Type Definition (DTD) oder in einem XML-Schema gegebenen Bedingungen entsprechen. In einer DTD wird die Struktur eines XML-Dokuments angegeben. Dort wird definiert, welche Entitäten und Attribute in einem Dokument enthalten sein müssen, welche können und in welcher Reihenfolge sie auftreten müssen. Weiterhin wird festgelegt, welchen Typ die Entitäten und Attribute haben müssen. Ein XML-Schema geht noch darüber hinaus, indem es Datentypen für die Entitäten und Attribute genauer festlegt und auch benutzerdefinierte Datentypen ermöglicht. Eine DTD kann entweder im Prolog eines XML-Dokuments angegeben werden, oder im Prolog wird auf eine Datei verwiesen, die die DTD enthält. Ein validierender XML-Prozessor wird, wenn er ein mit einer DTD versehenes Dokument liest, die Struktur des Dokuments mit der in der DTD vorgegebenen Struktur vergleichen und Fehler melden. Bekommt ein validierender XML-Prozessor ein Dokument, zu dem es keine DTD gibt, überprüft er nur die Wohlgeformtheit des Dokuments.[4] 2.3 XHTML - Eine XML-Portierung von HTML Die Webseiten, die von der Software dieser Studienarbeit erstellt werden, benutzen XHTML statt HTML, da dies besser zu dem XQuery Datenmodell passt. Bei XHTML handelt es sich um eine XML-konforme Neudefinition von HTML. Da XML-Dokumente sich in ihrer Form an strengere Konventionen halten müssen als HTML-Dokumente, stehen bei XHTML viele Freiheiten, die man bei HTML hatte, nicht mehr zur Verfügung.[5]

12 6 2 TECHNOLOGIEN XHTML-Dokumente müssen wie alle anderen XML-Dokumente wohlgeformt sein. Diese Regel hat Auswirkung auf die Verschachtelung der Elemente. Auch müssen in XHTML alle Tags geschlossen werden, auch die leeren Tags.[5] Alle Elemente und Attributnamen müssen klein geschrieben werden. Das ist notwendig, da XML zwischen Groß- und Kleinschreibung unterscheidet. Bei der Definition von XHTML hat man sich für die Kleinschreibung entschieden.[5] Attributwerte müssen in Anführungszeichen gesetzt werden. Es ist nicht mehr erlaubt, Werte ohne Anführungszeichen anzugeben. Das gilt auch bei der Angabe von numerischen Werten.[5] XML unterstützt keine Attributminimierung. Daher müssen alle Attribute vollständig ausgeschrieben angegeben werden.[5] 2.4 Die Anfragesprache XQuery Schon bald nachdem XML standardisiert wurde und sich als Auszeichnungssprache zum Datenaustausch und auch Datenspeicherung etabliert hatte, wurden Fragen nach einer Anfragesprache für XML gestellt. Daraufhin fing das W3C an, diese Fragen zu prüfen. Hauptsächlich sollte dabei die Frage geklärt werden, ob es überhaupt nötig sei, für XML eine eigene Anfragesprache zu entwickeln, oder ob dies durch eine schon vorhandene Technologie realisiert werden könnte. Eine Sprache, die dafür in Frage gekommen wäre, ist SQL. Es gibt jedoch große Unterschiede zwischen dem relationalen Datenmodell, das von SQL verwendet wird und dem Datenmodell von XML. Daher wurde vom W3C eine eigene Anfragesprache für XML-Dokumente befürwortet. Als Name für diese Anfragesprache wurde XML Query oder kurz XQuery gewählt. XQuery ist eine funktionale Sprache, die speziell für den Zugriff und die Verarbeitung von XML Dokumenten entwickelt wird. Allerdings gibt es in XQuery keine Funktionen höherer Ordnung. XQuery kann eine streng typisierte Programmiersprache sein. In diesem Falle stehen die Datentypen, die in XML definiert sind zur Verfügung. Zusätzlich kann XQuery auch Datentypen aus DTDs oder XML Schemata importieren. Die Entscheidung die strenge Typisierung zu verwenden bleibt dem Benutzer überlassen, vorausgesetzt die XQuery Implementierung unterstützt sie. Ein Vorbild für XQuery ist die Sprache Quilt 1 [10]. Vergleicht man die Sprachkonstrukte beider Sprachen, so stellt man eine große Ähnlichkeit fest. Die Anfragesprache Quilt kann für Anfragen auf XML Dokumenten wie auch für Anfragen auf relationale Datenbanken genutzt werden. In Quilt findet man auch Konzepte von SQL und anderen Datenbankanfragesprachen wieder, die zum Teil auch nach XQuery übernommen wurden.[9] XQuery kann verwendet werden, um XML-Dokumente zu transformieren. Dabei wird ein gegebenes Dokument in eine andere XML-Struktur überführt. Das zu verarbeitende XML-Dokument wird zu diesem Zweck in das XQuery Datenmodell übertragen. In diesem Datenmodell ist es möglich, mit Hilfe des Anfrageteils von XQuery auf die Strukturen und Daten des XML-Dokuments zuzugreifen. 1 Diese Sprache wurde unter anderem von Jonathan Robie, Don Chamberlin und Daniela Florescu mitentwickelt. Alle sind auch Mitglied der XML Query Working Group beim W3C.

13 2.4 Die Anfragesprache XQuery 7 Analog zu SQL werden die Anfragen dabei deklarativ formuliert. Das Datenmodell des Quelldokuments kann nicht verändert werden. Das heißt, es sind keine Änderungen an dem Quelldokument möglich. Das Ergebnis einer XQuery Befehlssequenz ist wieder eine Instanz des XQuery Datenmodells. Die Ergebnisinstanz lässt sich als Dokument ausgeben. Dabei handelt es sich dann wieder um ein XML-Dokument.[1][3] Abbildung 1: Ablauf einer XQuery Transformation Das Datenmodell Wird ein XML-Dokument von einem XQuery Prozessor gelesen, so überprüft dieser das Dokument auf Wohlgeformtheit und eventuell auf Gültigkeit. Danach erstellt er aus dem Dokument eine Instanz des XQuery Datenmodells. Im XQuery Datenmodell spielt die Sequenz eine zentrale Rolle. Alle Funktionen, die XQuery zu Verfügung stellt oder die der Benutzer selbst definiert, arbeiten auf Sequenzen. Eine Sequenz kann aus keinem, einem oder mehreren Einträgen bestehen. In einer Sequenz kann ein Eintrag aus einem atomaren Wert oder aus einem Knoten bestehen. Es ist nicht gefordert, daß es sich bei den Einträgen einer Sequenz um Werte desselben Typs handelt. Bei der Arbeit mit Sequenzen sind zwei Besonderheiten zu beachten: Eine Sequenz die nur einen Eintrag enthält, erscheint nach außen hin als ein atomarer Wert.[1] Die leere Sequenz unterscheidet sich von nichts. Diese Eigenschaft ist zum Beispiel bei Funktionsaufrufen wichtig. Da macht es einen Unterschied, ob man einem Funktionsparameter eine leere Sequenz übergibt, oder ihn nicht angibt.[1] Existiert zu einem XML Dokument ein Schema oder eine DTD, so importiert XQuery die dort definierten Datentypen. Ist solch eine Typinformation nicht verfügbar, so stehen nur die vordefinierten Datentypen zur Verfügung. Bei den vordefinierten Datentypen handelt es sich um eine Anzahl von atomaren Werten, sowie um die sechs Knotentypen.[1]

14 8 2 TECHNOLOGIEN Das Achsenmodell In XQuery kann man ausgehend von einem Element in einem XML-Dokument über Achsen in verschiedener Richtung nach weiteren Elementen suchen. Zu diesem Zweck enthält XQuery die Sprachkomponente XPath2.0.[3] XPath2.0 erlaubt es, eine Suche in einem XML-Dokument entlang von Achsen vorzunehmen. Eine Suche entlang einer solchen Achse kann vorwärts- oder rückwärts gerichtet sein. In XQuery werden Attribute als Knoten behandelt. Daher werden auch Attribute Hilfe von XPath Ausdrücken angesprochen. Zu diesem Zweck steht in XQuery eine besondere Achse zur Verfügung ( attribute:: ) $knoten/attribute::name $knoten/@name Der Ausdruck des Beispiels liefert den Attributknoten des durch $knoten referenzierten Knotens, der den Namen name trägt. Die untere Zeile des Beispiels zeigt die Kurznotation für diese Achse. Abbildung 2 soll den Suchraum der zu Verfügung stehenden Achsen erläutern. In der Abbildung stellt der grau markierte Knoten den momentanen Referenz- Abbildung 2: Das XQuery Achsenmodell[1] knoten dar. Die Kästen zeigen jeweils den Raum an, aus dem die Ergebnisse einer Suche über die entsprechende Achse stammen. Die Achse child:: ist die Standardachse. Somit sind diese beiden Ausdrücke äqui-

15 2.4 Die Anfragesprache XQuery 9 valent. $knoten/child::name $knoten/name Beide Ausdrücke liefern die Kindknoten des Referenzknotens, die den Name name tragen Die Sprachkonstrukte von XQuery-Skripten XQuery Transformationen bestehen im wesentlichen aus sogenannten FLWOR- Ausdrücken. Abbildung 3: Ablauf eines FLWOR Ausdrucks.[1] Die Abkürzung FLWOR steht für for/let-where-order-by-return. Diese Abfolge stellt die typische Abfolge eines XQuery Ausdrucks dar. Im ersten Teil der Sequenz werden die Variablen gebunden (for/let). Die Bindung der Variablen kann dabei durch Prädikate (innerhalb des XPath-Ausdrucks) gefiltert werden (where). Mit Hilfe der order-by Klausel kann danach die Ordnung der gebundenen Sequenz beeinflusst werden. Durch das return Statement wird die Ausgabesequenz erzeugt. Nach dem Abarbeiten des return Statements wird auch die Bindung der Variablen aufgehoben, die in dem zu dem return Statement gehörenden for/let Ausdruck gebunden wurden. Unterschiede zwischen den beiden Möglichkeiten der Variablenbindung: let-klausel: Das Ergebnis der Klausel wird mit allen Werten als Sequenz an die Variable gebunden.[1] for-klausel: Hierbei wird das Ergebnis des Ausdrucks elementweise an die Variablen gebunden. Das darauf folgende Konstrukt wird danach für jedes gebundene Element ausgeführt.[1] Das folgende Beispiel stellt einen kurzen FLWOR-Ausdruck dar: for $aufg in document( Vorlesung.xml )/Vorlesung/descendant::Aufgabenblatt <= current-date() order return erstelle Aufgabensseite($vorl)

16 10 2 TECHNOLOGIEN Das Beispiel lädt das Quelldokument Vorlesung.xml und referenziert den Wurzelknoten. Dann sucht es über die descendant Achse nach allen Knoten vom Typ Aufgabenblatt. Über das where Statement werden nur Knoten in die Ergebnismenge aufgenommen, deren Attribut ausgabe ein Datum kleiner oder gleich dem heutigen enthält. Die Ergebnismenge wird danach sortiert. Für die Knoten, die diese Bedingungen erfüllen, wird danach jeweils die Funktion erstelle Vorlesungsseite aufgerufen. Betrachtet man das Beispiel, so fällt die Ähnlichkeit des Ausdrucks zu SQL- Select Ausdrücken auf, wie sie beim Zugriff auf relationale Datenbanksysteme verwendet werden Optionale Funktionalität Das W3C gesteht den XQuery Implementierungen einige Freiheit in bezug auf optionale Funktionalität zu. Diese Funktionalität wird in der Definition von XQuery gegeben, es wird aber nicht erwartet, daß alle Implementierungen diese Funktionalität unterstützen. Optional ist die Implementierung folgender Teile von XQuery: Schemaimport: Eine XQuery Implementierung, die kein Schemaimport unterstützt, erlaubt nicht die Benutzung der Funktion import schema. Als Konsequenz daraus stehen dann nur die vordefinierten XML Datentypen zur Verfügung, nicht aber die, die XQuery aus einem XML Schema importiert.[1] statische Typprüfung: Eine Typprüfung während der statischen Analyse ist nicht erforderlich. In diesem Falle werden Typfehler erst zur Laufzeit entdeckt.[1] Volle Achsenunterstützung: Es ist nicht erforderlich, das eine XQuery Implementierung eine vollständig Achsenunterstützung bietet. Folgende Achsen können entfallen: ancestor, ancestor-or-self, following, followingsibling, precending und precending-sibling.[1] Module: Werden von einer XQuery Implementierung keine Module unterstützt, so ist die Anweisung import module nicht erlaubt.[1] Pragmas: Ein Pragma ermöglicht es, einem XQuery-Prozessor Verarbeitungshinweise zu geben. Trifft ein XQuery-Prozessor auf ein Pragma, obwohl er keine Pragmas unterstützt, so muß er die Pragmadefinition ignorieren. Pragmas sind nicht in der XQuery-Spezifikation enthalten, es ist jedoch eine Syntax für Pragmas definiert.[1] Zwingende Erweiterungen: Diese Funktionalität ermöglicht es, Erweiterungen von einer XQuery-Implementierung zu fordern. Wird diese Funktionalität nicht unterstützt, so muß der XQuery-Prozessor einen Fehler liefern.[1] Stand der Entwicklung Die Standardisierung von XQuery ist noch nicht abgeschlossen. Es kann noch einige Zeit dauern, bis das W3C eine endgültige Empfehlung herausgibt.

17 2.5 Die verwendete XQuery Implementierung 11 Es gibt allerdings schon viele Implementierungen für XQuery. Teilweise sind diese Implementierungen frei verfügbar, teilweise sind sie Teil kommerzieller Produkte. Die meisten Implementierungen sind allerdings nicht vollständig, fehlerhaft oder veraltet. Dies trifft insbesondere auf die freien Implementierungen zu. In kommerziellen Produkten ist die Unterstützung von XQuery meist schon recht ausgereift. Eine Liste der momentan verfügbaren Implementierungen ist auf den Webseiten des W3C verfügbar.[1][3] 2.5 Die verwendete XQuery Implementierung Ich habe mich für die XQuery Implementierung Qexo 2 entschieden. Qexo ist eine freie XQuery Implementierung, die in dem Kawa Framework 3 von GNU enthalten ist. Der Grund für diese Wahl war, das die Implementierung komplett in Java geschrieben ist, und daher die Unabhängigkeit von der verwendeten Computerplattform garantiert ist. Weiterhin handelt es sich bei dem Kawa Framework um ein freies Produkt, das unter einer modifizierten GPL (Gnu Public License) zur Verfügung gestellt wird. Diese Lizenz erlaubt es, die Software uneingeschränkt weiterzugeben und unter Umständen auch zu verändern. Leider handelt es sich bei Qexo nicht um eine vollständige und aktuelle Implementierung von XQuery. Es fehlen viele Funktionen, die in den Entwürfen für XQuery enthalten sind. Einige wichtige Funktionen, die für diese Studienarbeit notwendig waren, wurden mit Hilfe von Erweiterungen realisiert. Mehr dazu unter Punkt Viele Funktionen funktionieren auch nicht richtig. Manche funktionieren nur mit einfachen Sequenzen. Andere liefern falsche Datentypen. Von den optionalen Funktionalitäten ist nur eine vollständige Achsenfunktionalität realisiert. Alle anderen Teile fehlen. Die Benutzung der order-by Klausel ist in der Qexo Implementierung nicht möglich, da diese Funktion nicht implementiert ist.[6][7] Wie schon gesagt wurde, handelt es sich bei Qexo um eine fehlerhafte, unvollständige Realisierung von XQuery. Für die Aufgabe dieser Studienarbeit reichen die gegebenen Funktionalitäten allerdings aus. Möglicherweise verbessert sich die XQuery Unterstützung in späteren Versionen. 2.6 Weitere XML-Transformationen Bei XSLT handelt es sich um eine vom W3C in einer Empfehlung spezifizierten Sprache, mit der Transformationen auf XML-Dokumenten durchgeführt werden können. XSLT erfordert die Spezifikation der Transformation in XML Notation. Die Elemente in einem XSLT-Dokument werden dabei in einen speziellen Namensraum (xsl) definiert. In einem XSLT-Dokument wird eine Menge von Stylesheets definiert. Diese Stylesheets bestehen aus zwei Teilen: einem Muster, das mit einem Teil des Quellbaums verglichen wird und einem Template, das einen Teil des Ergebnisbaums definiert. Mit XSLT sind alle Arten von Transformationen auf XML Dokumenten möglich. Bei komplexen Daten und Dokumentstrukturen wird die Spezifikation der Transformation in XSLT recht unübersichtlich. Daher ist XSLT eher geeignet, 2 Im Web: 3 Im Web:

18 12 2 TECHNOLOGIEN Transformationen vorzunehmen, bei denen nur kurze Quelldokumente transformiert werden müssen, oder bei denen die Struktur der Zieldokumente denen der Quelldokumente ähnelt. XQuery eignet sich für substantielle Umstrukturierungen besser, da Daten aus verschiedenen XML Quelldokumenten zusammengeführt werden können und die statischen Anteile der Zieldokumente besser lesbar sind. Dadurch können Transformationen in XQuery auch einfacher entwickelt werden. 2.7 Verwandte Technologien Zur Generierung von Webdokumenten können auch andere Technologien eingesetzt werden. Zum einen gibt es die Makro- und Präprozessoren, zum anderen die Sprachen zur Entwicklung dynamischer Webanwendungen. Ein Makroprozessor ist ein Programm, das Zeichenfolgen innerhalb eines Textes durch andere Zeichenfolgen ersetzt. Beispiele sind der in Unix enthaltene Makroprozessor m4 oder der von der Programmiersprache C++ eingesetzte Präprozessor. Momentan werden die Vorlesungsmaterialien mit FunnelWeb generiert. Bei FunnelWeb handelt es sich um ein Literate-Programming Werkzeug. Diese Werkzeuge sollen Programmierer unterstützen, ordentlich dokumentierten Code zu erzeugen. Die Eingaben für FunnelWeb enthalten den Programmcode sowie die Dokumentation des Codes in gemischter Notation. Aus diesen Daten generiert FunnelWeb den Quellcode des Programms und die Dokumentation des Programms in HTML oder TEX.[11] Ein großer Nachteil beim Einsatz von Makroprozessoren zur Generierung von Webdokumenten ist die fehlende strukturelle Überprüfung der Dokumente. Auch der Einarbeitungsaufwand bei der Benutzung von Makroprozessoren spricht gegen den Einsatz bei der Webseitengenerierung. Im Bereich der dynamischen Webanwendungen werden die angeforderten Webdokumente erst zu dem Zeitpunkt erzeugt, zu dem der Benutzer auf die Seite zugreift. Zwei große Vertreter dieser Technologien sind PHP 4 (Hypertext Pre Processor) und ASP 5 (Active Server Pages) von Microsoft. Die meisten Technologien zur Generierung von dynamischen Webanwendungen bieten die Möglichkeit, XML Dokumente zu verarbeiten. Für PHP steht sogar eine XQuery Implementierung zur Verfügung. Dynamische Webanwendungen eignen sich sehr gut für Seiten, die schnellen Änderungen unterworfen sind oder bei denen die Webseiten von Benutzereingaben abhängen. Für den Einsatz zur Generierung von Vorlesungsmaterialien eignen sie sich weniger, da diese Seiten zwar regelmäßig, aber nicht häufig geändert werden. Ausfallsicherheit und Schutz vor unbefugten Zugriffen sind durch statische Webseiten besser gegeben. 4 Im Web: 5 Im Web:

19 13 3 Konzeption Die Struktur der zu erstellenden Software soll in diesem Kapitel erarbeitet werden. Nach der Definition der Anforderungen, die an die Software gestellt werden, wird mit der Modellierung der Daten begonnen, die für die Aufgabe wichtig sind. Bei diesen Daten handelt es sich um die Daten, welche die Vorlesung und die Aufgabenblätter beschreiben. Sie sollen später als XML Dokumente die Grundlage für die Transformation sein. 3.1 Anforderungsdefinitionen Eine Lösung zur Generierung der Webseiten muß gewisse Anforderungen erfüllen, um später effizient in der Praxis eingesetzt werden zu können. Hier soll spezifiziert werden, welche Anforderungen die Software erfüllen muß. Einzelne Eingabedokumente: Die Aufgabenblätter sollen jeweils in einem Eingabedokument definiert werden. Weiterhin soll es ein zentrales Dokument geben, das die Vorlesung repräsentiert. Dieses Dokument verweist auf die darunterliegenden Elemente. Erweiterbarkeit der Eingabedokumente: Neue Aufgabenblätter sollen sich ohne großen Aufwand integrieren lassen. Dasselbe soll für die Erweiterung eines Aufgabenblattes um weitere Aufgaben und Lösungen gelten. Optionale Teile: Teile der Eingabedokumente müssen optional sein, da nicht alle Vorlesungen alle Dokumente zur Verfügung stellen. Ein optionaler Teil der Eingabedokumente soll zum Beispiel die Angabe von Lösungen sein. Schließlich bieten nicht alle Vorlesungen Lösungen zu ihren Aufgabenblättern an. Zeitlich gesteuerte Veröffentlichung: Die Veröffentlichung der Übungsblätter und deren Lösungen muß zeitgesteuert werden. Der Zeitpunkt der Veröffentlichung soll in den Eingabedokumenten festgelegt werden. Zur Aktualisierung ist es dann möglich die Transformation neu durchzuführen. Strukturierung der Ausgabedokumente: Die Ausgabedokumente sollen in einer Verzeichnisstruktur abgelegt werden. Lesbarkeit der Eingabedokumente: Die Eingabedokumente sollen gut lesbar sein. Die Auszeichnung der Dokumente soll selbsterklärend sein. Die Arbeit mit den Eingabedokumenten (Erstellen und Ändern) soll dadurch vereinfacht werden. Erweiterbarkeit der Software: Die Software soll Erweiterungen nicht entgegenwirken. Es soll möglich sein die Software durch weitere Dokumenttypen und Erweiterungen des XQuery Skriptes zu erweitern, um die kompletten Vorlesungsmaterialien zu generieren.

20 14 3 KONZEPTION Document Type Definitions: Durch DTDs soll ermöglicht werden, die Eingabedokumente zu prüfen. Desweiteren lassen sich die Dokumente mit Hilfe von DTDs entwickeln. Sammlung von Druckdokumenten: Es soll möglich sein, die Dokumente zum Druck der Aufgabenblätter sowie der Lösungsblätter mit in die Ausgabedokumente aufzunehmen. Test der erzeugten Dokumente: Die statische Erzeugung der Ausgabedokumente dient dazu, diese vor der Veröffentlichung zu testen. Die Dokumente sollen nach der Transformation getestet werden können. Das heißt sie müssen nach der Transformation richtig strukturiert sein. Auch müssen die Verweise in den Dokumenten passen. Direkter Einsatz auf einem Webserver: Es soll möglich sein, die Ausgabedokumente nach dem Test durch einen Kopiervorgang zu veröffentlichen. Dazu soll das Verzeichnis, in dem die Dokumente abgelegt worden sind mit allen Inhalten auf den Webserver kopiert werden. Verwendbarkeit von XHTML: In den Beschreibungen der Aufgabenblätter, den Aufgaben und Lösungen soll XHTML eingebunden werden können. Dadurch soll ermöglicht werden, Grafiken oder ähnliches in die Aufgabenblätter einzubinden. 3.2 Darstellung des Problembereichs Der Webauftritt einer Vorlesung ist sehr wichtig für die Studierenden. Auf den Webseiten werden Skripte, Aufgabenblätter, deren Lösungen und Informationen zum Ablauf der Vorlesung veröffentlicht. Daraus ergibt sich das Problem, daß relativ häufig Änderungen an den Vorlesungsseiten vorgenommen werden müssen. Die meisten Materialien liegen zu Beginn der Vorlesung vor, sollen aber erst nach und nach veröffentlicht werden. Insbesondere trifft dies auf die veröffentlichten Aufgabenblätter zu. Es ist nicht gewünscht, daß die Lösung der Aufgabenblätter gleichzeitig mit den Aufgabenblättern selbst veröffentlicht wird. Im allgemeinen möchte man die Lösung später präsentieren. Auch sollen zu Beginn der Vorlesung nicht alle Aufgabenblätter öffentlich sein. Sie sollen erst zu den entsprechenden Übungsterminen zur Verfügung stehen. Alle Dokumente, die in dem Webauftritt veröffentlicht werden, haben eine begrenzte Lebenszeit. Diese Lebenszeit beginnt mit der Veröffentlichung der Dokumente und endet mit dem Ende der Vorlesung. Danach können die Dokumente vom Webserver gelöscht oder im Archiv für spätere Semester zur Verfügung gestellt werden. Zu diesem Zeitpunkt sind allerdings keine Änderungen an den Dokumenten mehr erforderlich. 3.3 Schema der Software Die Software muß aus zwei Teilen bestehen. Ein Teil muß das XQuery Skript sein, das die Transformation durchführt. Der andere Teil müssen die XML Eingabedokumente sein, die zur Speicherung der Daten dienen sollen.

21 3.3 Schema der Software Die XML Eingabedokumente Die Eingabedokumente dienen der Datenspeicherung für die Vorlesungs- und Aufgabenblattdaten. Um die Übersichtlichkeit zu bewahren soll es zwei Typen von XML Dokumenten geben. Bei diesen Typen soll es sich um die Vorlesungsdokumente und die Aufgabenblattdokumente handeln. Zu jeder Vorlesung gehört dann genau ein Vorlesungsdokument und beliebig viele Aufgabenblattdokumente. In dem Vorlesungsdokument wird auf die Dokumente verwiesen, in denen die Daten der Aufgabenblätter gespeichert werden. Dadurch ergibt sich die in Abbildung 4 dargestellte Struktur der Eingabedokumente. Im folgenden sollen die beiden Dokumenttypen und ihre Struktur genauer beschrieben werden. Abbildung 4: Hierarchie der beiden Eingabedokumenttypen Das Vorlesungsdokument Das Vorlesungsdokument speichert alle Daten, die zur Generierung des Wurzeldokuments notwendig sind. Weiterhin sind in dem Dokument die Verzeichnisse definiert, in denen die Ausgabedokumente abgelegt werden sollen. Die Struktur des Vorlesungsdokuments wird durch Abbildung 5 verdeutlicht. Abbildung 5: Struktur des Vorlesungsdokuments

22 16 3 KONZEPTION Das Aufgabenblattdokument Ein Aufgabenblattdokument speichert die Daten eines Aufgabenblattes. Diese Daten umfassen unter anderem eine Einleitung, die Aufgabentexte und die Lösungen zu den Aufgaben. Weiterhin sind in dem Dokument Verweise auf die Druckdokumente möglich. Die Druckdokumente werden in die erstellten Webseiten eingebunden und stehen dem Benutzer damit zum Herunterladen zur Verfügung. Bei den Aufgabenblättern sind nicht alle Angaben verpflichtend. Es gibt Vorlesungen, die z.b. keine Lösungen für ihre Aufgaben oder nicht alle Arten von Druckdokumenten zur Verfügung stellen. Daher müssen solche Teile optional sein. Die Struktur eines Aufgabenblattdokuments ist in Abbildung 6 dargestellt. Abbildung 6: Struktur des Aufgabenblattdokuments In den Teilen Einleitung, Beschreibung und Lösung soll es möglich sein, XHTML zu verwenden. Dadurch soll es ermöglicht werden, Grafiken, Code oder Tabellen in die Aufgaben und deren Lösungen einzubinden Die Ausgabedokumente Aus den Eingabedokumenten werden durch den XQuery Skript die Ausgabedokumente generiert. Bei den Ausgabedokumenten handelt es sich um die zu erzeugenden Vorlesungsmaterialien. Auch die Ausgabedokumente sollen hierarchisch strukturiert sein. Das Wurzeldokument stellt dabei die Übersicht der Vorlesung dar. Alle Teile der Vorlesungsmaterialien können von diesem Dokument aus über Verweise erreicht werden. Neben dem Wurzeldokument sollen zwei Übersichtsseiten erzeugt werden: Eine für die Aufgabenblätter und eine für die Druckdokumente. Von diesen Seiten aus soll es möglich sein, die Aufgabenblätter aufzurufen bzw. die Druckdokumente herunter zu laden. Die Hierarchie der Ausgabedokumente wird in Abbildung 7 verdeutlicht.

23 3.3 Schema der Software 17 Abbildung 7: Hierarchie der Ausgabedokumente Das XQuery Skript Das XQuery Skript soll die Transformation der Dokumente übernehmen. Die Transformation soll mit dem zentralen Vorlesungsdokument angestoßen werden. Alle weiteren Dokumente sollen aus dem Dokument heraus referenziert werden. Am Anfang der Transformation soll das Skript das zentrale Vorlesungsdokument lesen und daraus ein Wurzeldokument erzeugen. Dieses Dokument stellt den Einstiegspunkt für Besucher der Webseite dar. Von hier aus führen Verweise zu den Seiten, die im Verlauf der Transformation erstellt werden. Während der Transformation soll das Skript die referenzierten Dokumente für die Aufgabenblätter bearbeiten. Anhand des aktuellen Datums muß entschieden werden, ob das Aufgabenblatt bzw. die Lösung des Blattes veröffentlicht werden soll. Im Falle einer Veröffentlichung muß eine Transformation des Aufgabeblattdokuments durchgeführt werden. Innerhalb des Skriptes soll die Transformation in kleinere Teile zerlegt werden. Daher soll der Skript aus einer Menge von Funktionen bestehen, die jeweils eine Teilaufgabe der Transformation übernehmen. Die Ausgabe der Funktionen stellt jeweils ein XHTML Dokument dar und wird in eine Datei geschrieben.

24 18 3 KONZEPTION

25 19 4 Implementierung Dieses Kapitel erläutert die praktische Umsetzung des in Kapitel 3 beschriebenen Konzepts. Nach einem kurzen Überblick über den Ablauf der Implementierung sollen die XML Dokumente, die Document Type Definitions und das XQuery Skript erklärt werden. In Bezug auf das XQuery Skript wird dabei auch auf die Erweiterungen eingegangen, die nicht Teil der XQuery Sprache sind. 4.1 Entwicklung der Software Die Entwicklung der Software habe ich mit dem Erstellen der XML Dokumente begonnen. Dazu war es nötig, die Daten zu identifizieren, die in den Dokumenten gespeichert werden sollten. Im Moment werden die Webseiten für die Vorlesungsmaterialien mit Hilfe eines Textmakroprozessors erstellt. Die davon erstellten Vorlesungsdokumente lieferten die Basis für meine Datensammlung. Nachdem die Datensammlung abgeschlossen war, habe ich die Daten strukturiert. Auf diese Weise entstand die erste Version der XML Dokumente. Diese Version war noch recht unübersichtlich. Um die Lesbarkeit und Übersichtlichkeit der Dokumente zu verbessern, habe ich einige Entitäten zu Attributen umgewandelt. Ich habe die Attribute danach ihren Entitäten hinzugefügt. Zum Abschluß der Arbeit an den Dokumenten habe ich die Dokumente nochmal überarbeitet, um eventuelle Redundanzen zu beseitigen. Die Document Type Definitions für die beiden erstellten Dokumenttypen habe ich erstellt, nachdem ich die Struktur der XML Dokumente festgelegt hatte. Mit der Fertigstellung der DTDs war die Entwicklung der XML Dokumente abgeschlossen. Das XQuery Skript wurde von mir zum Schluß der Softwareentwicklung implementiert. Als Grundlage für das Skript diente dabei die Struktur der XML Dokumente, auf denen das Skript arbeiten sollte. Abschließend wurde mit Hilfe von Tests die Funktion und das Zusammenspiel des transformierenden Skripts mit den XML Dokumenten überprüft. 4.2 Implementierung der XML Dokumente Wie in dem Konzept beschrieben, wurden zwei Typen von XML Dokumenten erstellt. Der erste Typ speichert die Daten der Vorlesung. Er enthält auch die Verweise auf die Aufgabenblätter. Die Aufgabenblätter werden durch den zweiten Dokumenttyp definiert. Zu beiden Dokumenttypen existiert eine DTD Die Document Type Definitions Die DTDs sollen es dem XQuery Prozessor ermöglichen, die Eingabedokumente auf Gültigkeit zu prüfen. Weiterhin geben sie dem Autor von Dokumenten Hilfestellung, die Dokumente zu erstellen. Er kann sie anhand der DTDs entwickeln und überprüfen. In den DTDs, die zu den beiden Dokumenttypen erstellt wurden, ist die in der Konzeption angegebene Struktur verwirklicht.

26 20 4 IMPLEMENTIERUNG Das Vorlesungsdokument Durch die Transformation wird ein Wurzeldokument index.html erstellt. Dieses Dokument stellt für den Besucher der Webseite den Einstiegspunkt dar. Das Wurzeldokument enthält die wichtigsten Daten der Vorlesung, sowie Verweise auf weitere Teile. Im Falle dieser Software handelt es sich bei den weiteren Teilen nur um die Aufgabenblätter mit ihren Lösungen. Das Datum, an dem das Aufgabenblatt veröffentlicht werden soll, wird in einem Attribut dem Verweis auf das Aufgabenblattdokument zugeordnet. Das Attribut, welches die Veröffentlichung der Lösung steuert, befindet sich in den Aufgabenblattdokumenten. Daher muß ein Aufgabenblattdokument nur durch den XQuery Skript geladen werden, wenn es auch veröffentlicht wird. Abgesehen von den Daten der Vorlesung enthält das Dokument noch Informationen über die Pfade, in denen die Ausgabedokumente abgelegt werden sollen. Dazu gehört einmal der Pfad, in dem das Wurzeldokument erstellt werden soll, sowie die Untererzeichnisse, in denen die Aufgabenblätter, ihre Lösungen und die Druckdokumente erstellt bzw. abgelegt werde sollen. Die Struktur des Vorlesungsdokuments wird im Kapitel 3 in Abbildung 5 dargestellt. Die Implementierung des Dokuments entspricht dem in der Abbildung gezeigten Modell Das Aufgabenblattdokument Die implementierte Dokumentstruktur entspricht genau der Struktur, die in der Konzeption der Software vorgestellt wurde (Kapitel 3, Abbildung 6). Das Dokument speichert die Daten für jeweils ein Aufgabenblatt. In dem Dokument kann auch die Lösung des Blattes gespeichert werden. Analog zu der Veröffentlichung des Aufgabenblattes wird die Veröffentlichung der Lösung gesteuert. Das Attribut, welches die Veröffentlichung der Lösung steuert, befindet sich allerdings nicht im Vorlesungsdokumente, sondern im Aufgabenblattdokument. 4.3 XQuery Implementierung Der XQuery Skript ist der Teil, der die Transformation der XML Dokumente vornimmt. Er wird von dem XQuery Prozessor ausgeführt. Die Transformation wurde in verschiedene Teilaufgaben zerlegt. In dem XQuery Skript wurde für jede dieser Teilaufgaben eine Funktion definiert. Die nötigen Daten werden den Funktionen als Parameter übergeben. Bei der Ausgabe der Funktionen handelt es sich um den Inhalt der XHTML Dokumente. Die Ausgabe wird daher in die entsprechende Datei geschrieben. Die Transformation beginnt mit einem FLWOR Ausdruck. Dieser Ausdruck lädt das zentrale Vorlesungsdokument und bindet es an eine Variable. Das return Statement dieses Ausdrucks besteht aus einer Sequenz, in der die jeweils notwendigen Daten aus dem Dokument extrahiert und an die zuständige Funktion übergeben werden. Der Ablauf der Transformation soll durch Programmablaufplan in Abbildung 8 verdeutlicht werden. Der gezeigte Programmablaufplan gibt nur den groben Ablauf des Skripts wieder. Aus Platzgründen wird auf einen genaueren Plan verzichtet. Die Funktionen des Skripts, die für die Generierung der Aufgabenblatt- und der Druckübersicht

27 4.3 XQuery Implementierung 21 Abbildung 8: Programmablaufplan des XQuery Skriptes verantwortlich sind, greifen natürlich auch auf die Aufgabenblattdokumente zu, da sie Daten aus ihnen benötigen. Desweiteren stellt der Plan keine Verzweigungen dar, wie sie nötig sind, um zu entscheiden, ob ein Aufgabenblatt veröffentlicht wird oder nicht. Das Skript enthält zwei Arten von Code. Die eine Art ist der XQuery Code, der von dem XQuery Prozessor ausgeführt wird. Bei der anderen Art handelt es sich um die statischen Daten der Ausgabedokumente. Durch sie wird das Design der Ausgabedokumente realisiert Verwendete Erweiterungen Das Kawa Framework stellt verschiedene Funktionen bereit, die nicht zu der XQuery Sprache gehören. Bis auf einige Ausnahmen wurde auf die Benutzung solcher Funktionen verzichtet, da die Aufgabe durch XQuery und nicht durch Erweiterungen gelöst werden sollte. Es werden noch vier Erweiterungsfunktionen benutzt: write-to($content, $file) Diese Funktion erstellt oder überschreibt die Datei $file mit dem in $content übergebenen Wert. Die Funktion wird benutzt, um die Ausgabe des XQuery- Prozessors in eine Datei zu schreiben. Soll diese Funktion nicht benutzt werden, könnte man auch den Standardausgabestrom in eine Datei umleiten. Dann wäre es jedoch nicht möglich, mehrere Dateien mit einem Aufruf des XQuery-Scripts zu erzeugen. Auch hätte der Benutzer selbst dafür zu sorgen, daß die erzeugten Dateien die richtigen Namen bekommen, damit die Verweise innerhalb der Dateien zu den erzeugten Dateien und Verzeichnissen passen. create-directory($directory)

28 22 4 IMPLEMENTIERUNG Diese Funktion erstellt das in $directory übergebene Verzeichnis. Die Funktion wird benutzt, um die Verzeichnisse zu erstellen, in denen die erzeugten Dateien abgelegt werden sollen. unescaped-data($string) Funktion, die den in $string übergebenen Wert ausgibt, ohne das dieser vom XML-Interpreter verarbeitet wird. Diese Funktion wird benutzt, um an einigen Stellen der XHTML-Dokumente Daten auszugeben, die keinem Knoten zugeordnet sind (z.b. DOCTYPE). copy-file($quelle,$ziel) Diese Funktion dient dazu, eine Datei von $quelle nach $ziel zu kopieren. Leider ist diese Funktion fehlerhaft. Sie ist zum Kopieren von binären Dateien nicht geeignet, da sie deren Dateistruktur zerstört. Daher wurde diese Funktion durch die selbstgeschriebene Funktion kopieredatei($quelle,$ziel) ersetzt. Die Funktion ist notwendig, um die in den XML-Dokumenten angegebenen Übungsblätter als Dokumente in die Ordner zu kopieren, von denen man sie später auf dem Webserver erreichen soll. Dem Benutzer wird dadurch die Arbeit abgenommen selbst dafür zu sorgen, das die Dokumente in den richtigen Ordnern zur Verfügung stehen Selbst erstellte Funktionen Leider ist die momentan vorliegende Implementierung von XQuery im Kawa Framework (Version ) recht unvollständig. Daher war es nötig einige Funktionen, die Bestandteil der XQuery Sprache sind, selbst zu implementieren. Dabei wurde die Möglichkeit genutzt über Namespaces auf Funktionen des Java Runtime Environments (JRE) zuzugreifen. Abgesehen von der Funktion kopieredatei, die eine fehlerhafte Funktion des Kawa Frameworks ersetzt, bilden diese Funktionen Funktionen nach, die in XQuery zur Verfügung stehen sollten, aber in der aktuellen Implementierung von Qexo nicht zur Verfügung stehen. Unterschiede bestehen lediglich in den zurückgegebenen Datentypen. name($node) Diese Funktion liefert den Namen eines übergebenen Knotens als String. Der gelieferte Name kann dazu verwendet werden, eine transformierte Version des Knotens zu erzeugen, da XQuery selbst keine Möglichkeit bereitstellt, Änderungen an dem Datenmodell vorzunehmen. current-date() Diese Funktion liefert das aktuelle Datum. Das gelieferte Datumsformat ist YYYY-MM-DD. Um dieses Datum zu erzeugen, wird mit Hilfe von Namespaces auf das JRE zugegriffen. Das Ergebnis wird als String zurückgegeben. kopieredatei($quelle,$ziel) Diese Funktion kopiert eine Datei von $quelle nach $ziel. Die beiden Parameter sind dabei die absoluten oder relativen Pfade, an dem sich die Datei befindet oder an den sie kopiert werden soll. Auch diese Funktion wurde mit Hilfe des JRE erstellt. Da Java keine eigene Klasse zum Kopieren von Dateien bereit-

29 4.3 XQuery Implementierung 23 stellt, ruft diese Funktion ein externes Javaprogramm auf, das die Datei kopiert (kopieredatei.class). Die Funktion ist nicht Bestandteil von XQuery.

30 24 4 IMPLEMENTIERUNG

31 25 5 Auswertung und Zusammenfassung Momentan werden in der Arbeitsgruppe von Prof. Dr. Kastens die vorlesungsbegleitenden Unterlagen für das Web mit Hilfe eines Textmakroprozessors statisch erzeugt. Aufgabe dieser Studienarbeit war es, zu untersuchen, ob das momentan eingesetzte System durch eine XML basierte Lösung ersetzt werden kann. Die Transformation der XML Dokumente zu Webdokumenten sollte mit XQuery durchgeführt werden. Die Aufgabe dieser Studienarbeit umfaßte dabei den Teil der Vorlesungsunterlagen, die für den Übungsbetrieb einer Vorlesung nötig sind. Dabei handelt es sich um die Aufgabenblätter, deren Lösungen sowie die Druckdokumente, die den Besuchern der Webseiten zur Verfügung gestellt werden sollen. Die Generierung der Seiten für den Übungsbetrieb einer Vorlesung sollte dabei exemplarisch für die Generierung der gesamten Vorlesungsmaterialien betrachtet werden. Um die Aufgabe zu lösen, mußte das XQuery Skript, das die Transformation der XML Dokumente durchführt, implementiert werden. Weiterhin mußte die Struktur der XML Dokumente entwickelt werden. Bei der Entwicklung der Software stand im Vordergrund, dem Benutzer ein komfortables System zur Generierung von Vorlesungsmaterialien zur Verfügung zu stellen. So wurde zum Beispiel eine zeitgesteuerte Veröffentlichung der Übungsblätter und ihren Lösungen implementiert. Die implementierte Software löst die für diese Studienarbeit gestellte Aufgabe. Durch das XQuery Skript werden die XML Dokumente zu dem geforderten Vorlesungsmaterial transformiert. Die dabei entstehenden Dokumente können, genau wie bei dem momentan eingesetzten System vor der endgültigen Veröffentlichung getestet werden. Für den Einsatz in der Praxis ist die implementierte Software allerdings nur bedingt geeignet. Das liegt daran, daß eben nur ein Teil der Vorlesungsunterlagen generiert wird. Um eine in der Praxis einsetzbare Lösung zu haben, muß die Software noch um die fehlenden Teile erweitert werden. 5.1 Dauer der Transformation Um Aussagen über die Dauer der Transformation zu machen, wurden Tests durchgeführt. Mit Hilfe der Tests sollte ermittelt werden, wie lange eine Transformation unter bestimmten Bedingungen dauert. Bei diesen Tests habe ich zwei Fälle unterschieden. Im ersten Fall handelte es sich um eine reine Transformation. Dabei mußten keine Druckdokumente kopiert werden. Bei dem anderen Fall mußte das Skript zusätzlich zu der reinen Transformation noch die Druckdokumente kopieren. Beide Fälle wurden mit verschieden vielen Aufgabenblättern durchgeführt (2, 20, 200 und 500 Aufgabenblätter). Bei diesen Tests zeigte sich, daß die reine Transformationszeit (ohne kopieren von Druckdokumenten) vernachlässigt werden kann. Selbst die Transformation der 500 Aufgabenblätter brauchte nicht länger als 10 Sekunden. Die Transformation von zwei Aufgabenblättern konnte in ca. 2 Sekunden durchgeführt werden. Anders verhält es sich, wenn nicht nur die Transformation, sondern auch das Kopieren von Druckdokumenten erledigt werden muß. Dann hängt die Gesamtzeit sehr stark von der Anzahl der Aufgabenblätter sowie der Anzahl und Größe der zu kopierenden Dateien ab. In dem Testfall der 500 Aufgabenblätter dauerte die Transformation etwas über 4 Minuten, wobei pro Aufgabenblatt zwei Doku-

32 26 5 AUSWERTUNG UND ZUSAMMENFASSUNG mente kopiert werden mußten. Eine Transformation von wenigen Dokumenten kann allerdings in kurzer Zeit durchgeführt werden. Die lange Zeit, die für das Kopieren der Dateien benötigt wird, läßt sich durch den Aufruf des externen Javaprogramms erklären, welches die Dateien kopiert (siehe 4.3.2). 5.2 Erweiterungsmöglichkeiten Das Konzept der Software und auch die Implementierung sieht eine spätere Erweiterung vor. Eine Erweiterung ist erforderlich, wenn man mit Hilfe von XML und XQuery alle Teile der Vorlesungsmaterialien generieren will. Es sind zwei Arten von Erweiterungen denkbar. Zum einen kann die vorliegende Software für den Übungsbetrieb erweitert werden, zum anderen lassen sich weitere Teile der Vorlesungsmaterialien ergänzen. Das Ergänzen der Software, um auch andere Teile der Materialien zu generieren, gestaltet sich, was die Ergänzung selbst betrifft, sehr einfach. Wie bereits in Kapitel 4 beschrieben, besteht das XQuery Skript aus einer Menge von Funktionen und einem zentralen FLWOR-Ausdruck. Jede der Funktionen ist verantwortlich für die Generierung eines Ausgabedokuments. Das Skript kann einfach um Funktionen ergänzt werden, welche die Generierung von weiteren Teilen der Vorlesungsdokumente realisieren. Um diese Funktion aufzurufen muß dann nur noch der zentrale FLWOR-Ausdruck um den Funktionsaufruf ergänzt werden. Desweiteren ist es nötig, die Strukturen der XML Dokumente zu entwickeln, aus welchen die Funktionen ihre zu verarbeitenden Daten entnehmen sollen. In dem Vorlesungsdokument muß dann nur noch ein Verweis auf die neuen XML Dokumente eingefügt werden. Die andere Art der Erweiterung ist die, vorhandene XML Dokumente um Daten zu erweitern, die in ihnen nicht vorgesehen sind. In diesem Falle müssen die DTDs der Dokumente angepaßt werden, damit sie der neuen Struktur entsprechen. Auch müssen Änderungen an dem XQuery Skript erfolgen, damit dieser auf die neuen Daten zugreifen kann. Diese Art der Erweiterung gestaltet sich etwas schwieriger als erstere, da man in den schon bestehenden Code eingreifen muß, was oft mit mehr Aufwand einhergeht als das Einbinden von neuen Teilen. 5.3 Bekannte Fehler Trotz dessen die Aufgabe durch die implementierte Software gelöst wurde, ist sie doch nicht fehlerfrei. In diesem Abschnitt sollen die bekannten Fehler und ihre Auswirkungen auf das Verhalten der Software erläutert werden. Keine Fehlerbehandlung: Das XQuery Skript enthält keine Fehlerbehandlung. Es werden weder Fehler in den XML Dokumenten, noch Laufzeitfehler behandelt. Fehler in den XML Dokumenten führen später zu Fehlern in den Ausgabedokumenten. Treten Laufzeitfehler auf, so wird die Transformation mit einer Java Ausnahme beendet. In der Definition von XQuery ist eine gewisse Fehlerbehandlung zwar vorgesehen, jedoch wird sie in der momentanen Version von Qexo nicht unterstützt. Keine Validierung der Eingabedokumente Bei Qexo handelt es sich nicht um einen validierenden XQuery Prozes-

33 5.4 Ein Anwendungsbeispiel 27 sor. Daher werden die Eingabedokumente nicht mit Hilfe ihrer DTD auf Gültigkeit überprüft. Dieser Fehler hat keine Auswirkungen auf die Transformation, wenn die Eingabedokumente vor der Transformation durch den Benutzer manuell auf Gültigkeit überprüft wurden. Validierung der XML Dokumente Einige XML Prozessoren, die zur Validierung der XML Dokumente benutzt werden können, akzeptieren keine Dokumente, die Tags enthalten, welche nicht in der DTD angegeben sind. Dies ist eventuell der Fall, wenn XHTML Code mit in den Aufgabenblättern vorhanden ist. Andere Prozessoren (.net XML Parser oder XSV2.6 zum Beispiel) akzeptieren solche Dokumente jedoch. Zeilenumbrüche in den Ausgabedokumenten Die Ausgabedokumente werden ohne Zeilenumbrüche geschrieben. Dies hat zwar keine Auswirkungen auf die Funktionalität der Dokumente, beeinträchtigt jedoch ihre Lesbarkeit. Es wäre möglich gewesen, die Zeilenumbrüche explizit in dem XQuery Skript anzugeben, dadurch wäre aber die Lesbarkeit des Skripts erschwert worden. 5.4 Ein Anwendungsbeispiel Dieser Abschnitt soll die Ergebnisse der XQuery Transformation anhand eines Anwendungsbeispiels vorstellen. Die XML Dokumente, mit denen diese Transformation durchgeführt werden können befinden sich auf der dieser Studienarbeit beiliegenden CD. Die Durchführung der Transformation wird in Anhang A erläutert. Abbildung 9: Ausschnitt eines XML Dokuments für Aufgabenblätter. Die Daten der Vorlesung und der Aufgabenblätter werden sind in den XML

34 28 5 AUSWERTUNG UND ZUSAMMENFASSUNG Dokumenten gespeichert, auf denen die Transformation durchgeführt wird. Abbildung 9 zeigt den Ausschnitt eines der XML Dokumente. Daten aus dem dargestellten Dokument fließen in die Übersicht der Druckdokumente ein. Die angegebenen Druckdokumente werden von dem Skript in das Zielverzeichnis kopiert und in der Übersicht zum Download zur Verfügung gestellt. Aus den Definitionen der Aufgaben entsteht die mit dem Attribut dateiname im Tag Titel spezifizierte Datei. In dieser Datei wird das transformierte Aufgabenblatt abgelegt. Die folgenden Abbildungen zeigen Bildschirmfotos der Ausgabedokumente, wie sie im Webbrowser dargestellt werden. Abbildung 10 zeigt einen Ausschnitt der Druckübersicht, während Abbildung 11 ein Ausschnitt aus einem Aufgabenblatt mit Lösung zeigt. Abbildung 10: Bildschrimfoto der Druckübersicht Abbildung 11: Bildschirmfoto eines erstellten Aufgabenblattes

Projektseminar Texttechnologische Informationsmodellierung

Projektseminar Texttechnologische Informationsmodellierung Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten Transformation von XML-Dokumenten Lernziele Warum kann es sinnvoll sein XML-Dokumente zu transformieren? Wie funktioniert XSLT (Extensible Stylesheet Language Transformations)? Was ist XPath? Was sind

Mehr

Webseite in XML Kurzeinführung

Webseite in XML Kurzeinführung Webseite in XML Kurzeinführung 1. Entwicklung... 1 2. Erste Webpage in XML... 2 2.1 Erstes Beispiel... 2 2.2 Tags definieren... 4 2.3 Kommentare in XML... 5 2.4 XML mittels CSS im Browser ansehen... 5

Mehr

2. Einführung in Datenbanken und XML

2. Einführung in Datenbanken und XML 2. Einführung in Datenbanken und XML Was ist XML? 2. Einführung in Datenbanken und XML XML steht für extensible Markup Language durch das W3C entwickeltes Dokumentenformat einfach, flexibel, von SGML abgeleitet

Mehr

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel XML-QL Querysprachen für XML Zusätzliche Quellen: http://www.w3.org/tr/xquery/ http://www.w3schools.com/xquery/ XML-QL ist eine Querysprache für XML mit folgenden Eigenschaften: Kombiniert die XML-Syntax

Mehr

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de CARL HANSER VERLAG Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5 www.hanser.de 1 1.1 Einleitung... 2 Über dieses Buch... 3 1.2 Für wen ist das Buch gedacht?...

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Übersicht Semistrukturierte Daten Dokumenttypdefinition XML-Schema XML aus Datenbank konstruieren XML in Datenbank speichern Merkmale

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller 25.11.2009. XML als Datenbank Universität zu Köln Informationsverarbeitung WS 2009/10 HS: Dozent: Referentin: 25.11.2009 Datenbanken vs. Markup Prof. Dr. M.Thaller Frauke Schmidt XML als Datenbank Inhalt XML Datenbanken Anforderungen

Mehr

Dynamische Websites mit XML und PHP4

Dynamische Websites mit XML und PHP4 Dynamische Websites mit XML und PHP4 Linuxtag 2002 07.06.2002, Karlsruhe Stephan Schmidt Inhalt der Session Über den Redner Strukturierung von Inhalten Transformation von XML Entwickeln einer XML-Struktur

Mehr

DocBook-Filter für OpenOffice.org

DocBook-Filter für OpenOffice.org OpenOffice.org als Editor für DocBook-XML Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen XML-Projekt (http://xml.openoffice.org) Alle in diesem Dokument

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

XML Extensible Markup Language

XML Extensible Markup Language XML-Praxis XML Extensible Markup Language Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Woher? Wohin? Warum? Bestandteile von XML XML-Dokumente erstellen und bearbeiten XML-Praxis XML Extensible

Mehr

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer Speicherung von XML in (objekt-)relationalen Datenbanken Burkhard Schäfer Übersicht Motivation Anforderungen Ansätze modellorientiert strukturorientiert Zusammenfassung Motivation Warum XML in Datenbanken

Mehr

XML Extensible Markup Language

XML Extensible Markup Language XML-Praxis XML Extensible Markup Language Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Woher? Wohin? Warum? Bestandteile von XML XML-Dokumente erstellen und bearbeiten XML-Praxis XML Extensible

Mehr

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Vorstellung der Diplomarbeit Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN Oberseminar Datenbanken WS 05/06 Diplomand: Oliver Schmidt Betreuer:

Mehr

Design anpassen eine kurze Einführung

Design anpassen eine kurze Einführung Design anpassen eine kurze Einführung Das gesamte Layout von Papoo basiert auf modernen CSS Layouts die vollständig ohne Layout Tabellen funktionieren. Um schnell vorhandene Designs anpassen zu können

Mehr

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee Mathias Heilig email: mathias.heilig@gmx.de Inhalt XSL Übersicht XSL im XML- Umfeld XSLT XPath XSL- FO Was können wir mit XSLT heute machen? Formatierungsprozess XSLT im XML- Formatierungsprozess Transformation

Mehr

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Web-Content-Management-Systeme () dienen dazu, komplexe Websites zu verwalten und den Autoren einzelner Webseiten möglichst

Mehr

Inventarisierung von Exchange Alternativen für die Exchange-Inventarisierung

Inventarisierung von Exchange Alternativen für die Exchange-Inventarisierung Inventarisierung von Exchange Alternativen für die Exchange-Inventarisierung www.docusnap.com TITEL Inventarisierung von Exchange AUTOR Mohr Carsten DATUM 28.10.2015 VERSION 1.0 Die Weitergabe, sowie Vervielfältigung

Mehr

WEBSEITEN ENTWICKELN MIT ASP.NET

WEBSEITEN ENTWICKELN MIT ASP.NET jamal BAYDAOUI WEBSEITEN ENTWICKELN MIT ASP.NET EINE EINFÜHRUNG MIT UMFANGREICHEM BEISPIELPROJEKT ALLE CODES IN VISUAL BASIC UND C# 3.2 Installation 11 Bild 3.2 Der Webplattform-Installer Bild 3.3 IDE-Startbildschirm

Mehr

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery XML-Datenbanken & XQuery Folie 1 XML Digitale Edition XSL-FO XSLT XQuery XML-DB Folie 2 Programm - Ausgewählte Biere verköstigen - Brauereibesichtigung - Anwendung der Hefe erlernen - brauen Folie 3 Telota

Mehr

TYPO3 und TypoScript

TYPO3 und TypoScript TYPO3 und TypoScript Webseiten programmieren, Templates erstellen, Extensions entwickeln von Tobias Hauser, Christian Wenz, Daniel Koch 1. Auflage Hanser München 2005 Verlag C.H. Beck im Internet: www.beck.de

Mehr

Exportieren von Domino-Datenbanken in XML Das Lotus XML Toolkit Abbildung 1 Anwendung des Lotus XML Toolkits Seite 1 von 8

Exportieren von Domino-Datenbanken in XML Das Lotus XML Toolkit Abbildung 1 Anwendung des Lotus XML Toolkits Seite 1 von 8 Exportieren von Domino-Datenbanken in XML Mit Hilfe des seit kurzem in Version 1.0 verfügbaren Lotus XML Toolkits lassen sich nahezu alle Inhalte von Notes-Datenbanken exportieren und importieren. Neben

Mehr

Inhalt. Vorbemerkungen... 1

Inhalt. Vorbemerkungen... 1 Vorbemerkungen...................................................... 1 1 Einleitung........................................................ 9 1.1 Statik und Dynamik............................................

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Streaming Transformations for XML STX

Streaming Transformations for XML STX Streaming Transformations for XML STX Oliver Becker Humboldt Universität zu Berlin wiss. Mitarbeiter am Institut für Informatik, Lehrstuhl für Systemarchitektur obecker@informatik.hu-berlin.de Abstract:

Mehr

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger XML / XSLT Ein Workshop mit [x] cross solution Armin Egginger [x] cross solution Armin Egginger - Zertifizierter FileMaker Entwickler Urheber von CrossCheck Netzwerk von Datenbankprogrammierern Kunden

Mehr

X-Technologien. Ein Überblick. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

X-Technologien. Ein Überblick. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz X-Technologien Ein Überblick Ulrike Henny ulrike.henny@uni-koeln.de X-Technologien Das X-Universum XML im Zentrum Woher kommt XML? Einsatz von XML X-Technologien Datenhaltung Datenzugriff Umwandlung Ausgabe

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Definition der Schnittstelle zur Übertragung der. gemäß Deponieselbstüberwachungsverordnung NRW

Definition der Schnittstelle zur Übertragung der. gemäß Deponieselbstüberwachungsverordnung NRW Jahresberichte gemäß Deponieselbstüberwachungsverordnung NRW Inhaltsverzeichnis... 1 Historie der Änderungen... 2 Einleitung... 2 Rückblick... 2 Auswirkungen der neuen Verordnung... 2 Auslieferung... 2

Mehr

Verteilte Anwendungen. Teil 2: Einführung in XML

Verteilte Anwendungen. Teil 2: Einführung in XML Verteilte Anwendungen Teil 2: Einführung in XML 05.10.15 1 Literatur [2-1] Eckstein, Robert; Casabianca, Michel: XML Kurz und gut. O'Reilly, 2. Auflage, 2003 [2-2] Nussbaumer, Alfred; Mistlbacher, August:

Mehr

Erstellen eines PlugIns

Erstellen eines PlugIns Erstellen eines PlugIns Mai 2013 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Einleitung... 3 1.1 Ablauf... 3 1.2 Weitere Dokumentation... 3 1.3 Wichtige Hinweise... 3 2 Beschreibung...

Mehr

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

Mehr

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis IT-Zertifikat: Daten- und Metadatenstandards Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig I. Was ist XSLT? XSL Transformation (XSLT) ist eine Programmiersprache zur Transformation

Mehr

Das Einsteigerseminar

Das Einsteigerseminar Michael Seeboerger-Weichselbaum Das Einsteigerseminar XML Inhalt Vorwort Einleitung und Ziel des Buches 1 Was ist XML 1.1 HTML 1.2 XML 1.3 XSLT 1.4 XML und HTML - wo sind die Unterschiede? 1.5 Einsatzgebiete

Mehr

xmltex Oder Wie bringt man XML und TeX zusammen? Daniel Radünz

xmltex Oder Wie bringt man XML und TeX zusammen? Daniel Radünz xmltex Oder Wie bringt man XML und TeX zusammen? Daniel Radünz Gliederung XML & xmltex, was ist das? Vom XML Dokument zu LaTeX Das LaTeX Dokument Das XML Dokument Die Konfigurationsdateien Größeres Beispiel

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Einrichtung des Systems...Seite 04 3. Erzeugen eines Backup-Skripts...Seite

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Online-Publishing mit HTML und CSS für Einsteigerinnen

Online-Publishing mit HTML und CSS für Einsteigerinnen mit HTML und CSS für Einsteigerinnen Dipl.-Math. Eva Dyllong Universität Duisburg Dipl.-Math. Maria Oelinger spirito GmbH IF MYT 07-2002 Web-Technologien Überblick HTML und CSS, XML und DTD, JavaScript

Mehr

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Adrian Fülöp (297545) - 1 - Inhaltsverzeichnis: 1. Einführung 2.

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz Transformation von XML-Dokumenten Folie 1 Was ist XSL politisch? XSL ist eine eigene Technik. Zum Publizieren (Transformieren) von Dokumenten. Früher gab es dafür Verlage und Schriftsetzer, um gute Inhalte

Mehr

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1 Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,

Mehr

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms: Webdesigner Handbuch Copyright 2006 crm-now Versionsgeschichte Version 01 2006-08-21 Release Version crm-now c/o im-netz Neue

Mehr

PHP Übungsaufgabe 3 1 / 5. Doing Web Apps. PHP Übungsaufgabe 3

PHP Übungsaufgabe 3 1 / 5. Doing Web Apps. PHP Übungsaufgabe 3 1 / 5 Doing Web Apps PHP Übungsaufgabe 3 Werkzeuge Text-Editor, beispielsweise Notepad++ Webserver mit aktiviertem PHP Modul + MySQL-Datenbank Unterlagen Ziele SelfHTML PHP API Handbuch Alle Dokumente

Mehr

XML Grundlagen Teil I

XML Grundlagen Teil I XML Vorlesung FH Aargau, SS 2006 XML Grundlagen Teil I Erik Wilde 20.3.2006 http://dret.net/lectures/xml-fhnw-ss06/ 20.3.2006 XML Vorlesung FHA SS 2006 1 Übersicht Aufbau von XML XML Dokumenten-Syntax

Mehr

ESB - Elektronischer Service Bericht

ESB - Elektronischer Service Bericht Desk Software & Consulting GmbH ESB - Elektronischer Service Bericht Dokumentation des elektronischen Serviceberichts Matthias Hoffmann 25.04.2012 DESK Software und Consulting GmbH Im Heerfeld 2-4 35713

Mehr

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de.

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de. Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object

Mehr

Datenaustauschformate. Datenaustauschformate - FLV

Datenaustauschformate. Datenaustauschformate - FLV Datenaustauschformate FLV-Dateien CSV-Dateien XML-Dateien Excel-Dateien Access- Backupdateien Günter M. Goetz 108 Datenaustauschformate - FLV Fixed Length Values Repräsentation einer Tabelle als 'Flat-File'

Mehr

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 2. XML 2.1 XML 1.0 und XML Schema Gliederung 1. XML 1.0 2. XML Namespaces: URI, URL und URN 3. XML Schema Literatur: A. Tanenbaum, Computer Networks. E. R. Harold and W.

Mehr

Strukturierung von Inhalten

Strukturierung von Inhalten Strukturierung von Inhalten extensible Markup Language Metasprache erlaubt die Definition eigener Markupsprachen zur Strukturierung von Informationen World Wide Web Consortium (W3C) Standard Basiert auf

Mehr

Funktionen in PHP 1/7

Funktionen in PHP 1/7 Funktionen in PHP 1/7 Vordefinierte Funktionen in PHP oder vom Entwickler geschriebene Funktionen bringen folgende Vorteile: gleiche Vorgänge müssen nur einmal beschrieben und können beliebig oft ausgeführt

Mehr

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8

Kurzanleitung. 29. Februar 2008 2. Oktober 2008 Update. APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Kurzanleitung 29. Februar 2008 2. Oktober 2008 Update APtool-Kurzanleitung-V1_2_DE Seite 1 von 8 Inhalt INHALT... 2 EINFÜHRUNG... 3 VORBEREITUNG... 3 LIZENZIERUNG... 3 PROJEKT LIZENZEN... 4 GENERIERUNG

Mehr

XML Extensible Markup Language

XML Extensible Markup Language XML-Praxis XML Extensible Markup Language Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht Woher? Wohin? Warum? Bestandteile von XML XML-Dokumente erstellen und bearbeiten 2 Was ist XML? Daten sind

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

ASN.1 <-> XML TRANSLATION

ASN.1 <-> XML TRANSLATION ASN.1 XML TRANSLATION Management Verteilter Systeme Patrick Gerdsmeier, Pierre Smits Wintersemester 2003/2004 Lehrstuhl für Systeme Prof. Dr. Kraemer BTU Cottbus ASN.1 XML TRANSLATION Gliederung

Mehr

Entwicklung eines Infotyps (Planung)

Entwicklung eines Infotyps (Planung) Entwicklung eines Infotyps (Planung) HELP.PAXX Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind,

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Angreifbarkeit von Webapplikationen

Angreifbarkeit von Webapplikationen Vortrag über die Risiken und möglichen Sicherheitslücken bei der Entwicklung datenbankgestützter, dynamischer Webseiten Gliederung: Einführung technische Grundlagen Strafbarkeit im Sinne des StGB populäre

Mehr

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C IAC-Programmierung HELP.BCFESITSIACPROG Release 4.6C IAC-Programmierung SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

XML-Datenbanken. Autor: Nan Zhang Veranstaltung: XML in Bioinformatik

XML-Datenbanken. Autor: Nan Zhang Veranstaltung: XML in Bioinformatik XML-Datenbanken Autor: Nan Zhang Veranstaltung: XML in Bioinformatik Übersicht Relationale Datenbanken Definitionen SQL XML-Datenbanken XPath XQuery XML-Datenbanken 2 XML-Datenbanken 3 Aufbau eines DB-Systems

Mehr

XML - Extensible Markup Language. Agenda - Oracle XML DB

XML - Extensible Markup Language. Agenda - Oracle XML DB Architektur und Funktionalitäten der Oracle XML DB - ein Überblick mit ausgewählten praktischen Beispielen - im Rahmen des 17. Workshop Grundlagen von Datenbanken 2005 in Wörlitz Annegret Warnecke Senior

Mehr

Mit dem 'Skeleton' zur eigenen Anwendung

Mit dem 'Skeleton' zur eigenen Anwendung Mit dem 'Skeleton' zur eigenen Anwendung 2015-11-10 by Kathleen Neumann, Wiebke Oeltjen, Robert Stephan Zur Entwicklung einer eigenen MyCoRe-Anwendung stellen wir ein Anwendungsgerüst zur Verfügung, das

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Relationale Datenbanken Kursziele

Relationale Datenbanken Kursziele Relationale Datenbanken Kursziele DB Grundlagen Daten-Modellierung Relationales Modell und DB => Praxis: Mit SQL als Anfragesprache Mit MySQL als DB RDB 1-1 Kursinhalt (Tage) 1. DB Einleitung / Entity-Relationship

Mehr

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001 X-Technologien XML and Friends 9. Juli 2001 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XML SAX DOM XSL XPath XSLT XSL FO Extensible Markup Language Simple API for XML Document Object Model Extensible

Mehr

Einführung in die Skriptsprache PHP

Einführung in die Skriptsprache PHP Einführung in die Skriptsprache PHP 1. Erläuterungen PHP ist ein Interpreter-Programm, das auf dem Server abgelegte Dateien dynamisch, d.h. zur Zeit des Zugriffes, aufbereitet. Zusätzlich zum normalen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an. 3. SPEICHERN DATEIEN SPEICHERN Dateien werden in Word Dokumente genannt. Jede Art von Datei, die Sie auf Ihrem Computer neu erstellen, befindet sich zuerst im Arbeitsspeicher des Rechners. Der Arbeitsspeicher

Mehr

Installationsanleitung

Installationsanleitung Für Gambio GX2 Installation v2.0.12.2 20130402 2013 Gambio GmbH. www.gambio.de 1 Voraussetzungen Systemvoraussetzungen: mindestens 50MB Webspace eine Domain PHP 5.1.2 oder neuer MySQL5 Datenbank GDlib

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Migrationsanleitung von 2.0 auf 2.1

Migrationsanleitung von 2.0 auf 2.1 Die wichtigste Neuerung von 2.0 auf 2.1 aus Sicht der Anwendungs- Migration ist die Verwendung von Maven. Mit Maven holt sich die Anwendung alle notwendigen Bibliotheken in den jeweils angegebenen Versionen

Mehr

SCADA SOFT AG. Technische Fragen zu Wizcon (TFW035): Installation von Apache 1.3.x / 2.0.x

SCADA SOFT AG. Technische Fragen zu Wizcon (TFW035): Installation von Apache 1.3.x / 2.0.x Wiesengasse 20 CH-8222 Beringen TFW035_Installation_von_Apache.doc Tel: +41 52 687 20 20 Fax: +41 52 687 20 29 Technische Fragen zu Wizcon (TFW035): Installation von Apache 1.3.x / 2.0.x Voraussetzung

Mehr

Klausur Datenbanksysteme

Klausur Datenbanksysteme Prüfung Datenbanksysteme, 31.Jan. 2003 S. 1 Klausur Datenbanksysteme Name: Matrikel-Nr.: Studiengang: Aufgabenblatt nicht vor Beginn der Prüfung umdrehen! Prüfer: Prof. Dr. Martin Hulin Dauer: 90 Minuten

Mehr

KM - Knowledge Management. SAP ERP Central Component

KM - Knowledge Management. SAP ERP Central Component KM - Knowledge Management SAP ERP Central Component Release 5.0 Release-Informationen Copyright 2004 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen

Mehr

ProCall 5 Enterprise

ProCall 5 Enterprise ProCall 5 Enterprise Installationsanleitung Upgradeverfahren von ProCall 4+ Enterprise auf ProCall 5 Enterprise ProCall 5 Enterprise Upgrade Seite 1 von 10 Rechtliche Hinweise / Impressum Die Angaben in

Mehr

Migration anhand von Wordpress

Migration anhand von Wordpress Migration anhand von Wordpress 1. Legen Sie eine Datenbank an... 2 1.1. Unterkonto anlegen... 2 2. Übertragen Sie die Dateien mittels FTP... 3 3. Anpassung der Variablen... 4 4. Verbindung zum neuen Server

Mehr

Python CGI-Skripte erstellen

Python CGI-Skripte erstellen Python CGI-Skripte erstellen CGI (Common Gateway Interface)... ist eine Schnittstelle, um Scripte im Web bereitzustellen. ist eine Schnittstelle zwischen einem HTTP-Server und ausführbaren Programmen.

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1. Multimediale Web-Anwendungen JavaScript Einführung MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1 Entstehungsgeschichte: JavaScript 1995 Netscape Communications Corp. (Brendan Eich)

Mehr

Erstellung von Bibliotheken in CoDeSys V3

Erstellung von Bibliotheken in CoDeSys V3 Dokument Version 2.0 3S - Smart Software Solutions GmbH Seite 1 von 10 INHALT 1 EINFÜHRUNG 3 2 BIBLIOTHEKSKONZEPT IM DETAIL 4 2.1 Kategorien von Bibliotheken 4 2.1.1 System 4 2.1.2 Internal 4 2.1.3 Application

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr