EXist: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Zeile 5: Zeile 5:


=Leistungsumfang=
=Leistungsumfang=
Die eXist XML-Datenbank bietet folgende Leistungen an:
Die eXist XML-Datenbank bietet eine breite Palette an Leistungen, die zumeist Webstandards umsetzen:


* ''Persitieren'': Optimiert für XML-Dokumente und XML-Daten sowie generell textuelle, multimediale Inhalte
* ''Persitieren'': Optimiert für XML-Dokumente und XML-Daten sowie generell textuelle, multimediale Inhalte
Zeile 12: Zeile 12:
* ''Transformation'': XSLT 1.0 oder XSLT 2.0
* ''Transformation'': XSLT 1.0 oder XSLT 2.0
* ''HTTP-Schnittstellen'': REST, WebDAV, SOAP, XMLRPC, Atom Publishing
* ''HTTP-Schnittstellen'': REST, WebDAV, SOAP, XMLRPC, Atom Publishing
* ''Erweiterungen'': XQuery Funktionsbibliotheken und Erweiterungsmodule
* ''Erweiterungen'': XQuery Funktionsbibliotheken als Erweiterungsmodule


==XQuery Erweiterungen==
==REST-Schnittstelle==
In Form eines Java-Servlets realisiert eXist eine Zugriffsschnittstelle, die sich am ''Representational State Transfer (REST)'' als Architekturstil für Hypermediasysteme anlehnt. Es veröffentlicht darüber den Verzeichnisbaum ihres Speicherbereichs unter einer Basis-URI. Befinden sich Anwendungsdateien z.B. unter dem Datenbankpfad <code>/cms/</code>, so werden sie bei eXist standardmäßig über <code>http://host:port/exist/rest/db/cms/</code> netzwerkweit mit einem HTTP-Client zugreifbar - selbstverständlich mit optionaler HTTP-Authentifizierung. Über die einzelnen HTTP-Methoden lassen sich auf solchen Datenbank-URIs verschiedene Operationen auslösen:


==REST Schnittstelle==
* '''GET''': Bezieht je nach HTTP-Header ''Content-Type'' eine passende Repräsentation des Datenbankobjekts (z.B. ”text/xml”). Übergibt man einen XQuery-Ausdruck als Request-Parameter ''_query'', so wird stattdessen dieser ausgeführt und sein Resultat zurückgegeben.
* '''POST''': Kann im POST-Inhalt eine für die GET-Variante zu lange XQuery enthalten, die in spezielle ''<exist:query>''-Tags einzubetten ist und äquivalent zu ''_query'' behandelt wird.
* '''PUT''': Speichert oder ersetzt ein Dokument als Datenbankobjekt, wobei der HTTP-Header ''Content-Type'' über das gewählte textuelle oder binäre Ablageformat entscheidet.
* '''DELETE''': Entfernt das addressierte Objekt aus der Datenbank, falls existent.
 
Ein Spezialverhalten weisen binär abgelegte XQuery-Dokumente (*.xql) auf, bei denen GET und POST direkt in der Auswertung ihres Inhalts resultieren. Dies erlaubt es über XQuery zusammengestellte Webseiten direkt auszuliefern oder z.B. Formularanfragen aus [[XForms]] zu bedienen.
 
==XQuery-Erweiterungen==
Für die Umsetzung von Websystemen z.B. über die REST-Schnittstelle angesteuerte XQuerys (*.xql) bietet eXist einige nahezu unverzichtbare XQuery-Funktionsbibliotheken an:
 
'''HTTP-Kontextzugriff''': Erlaubt das Auslesen und Manipulieren der im aktuellen HTTP-Kontext befindlichen Informationen.
* ''Request/Response'': Setter & Getter für Header, Parameter, Attribute, Daten, Pfadinformationen, Statuscode und Cookies.
* ''Sessions'': Lebenszyklusverwaltung sowie Setter & Getter für Attribute.
* ''Sonstiges'': URL-Encoding & -Decoding, Redirects sowie Streaming von Binärdaten.
 
'''Utility-Funktionen''': Nützliche Funktionen, die hauptsächlich die dynamische Datengenerierung, effiziente Datenverwaltung und funktionale Programmierung anreichern.
* ''Datenverwaltung'': Einlesen von textuellen und binären Dokumenten, Umwandeln zwischen textuellen und binären Daten, Parsen zu logischem XML-Baum, Serialisierung einer Knotensequenz.
* ''Dynamik & Programmierung'': Dynamische Modulimporte und XQuery-Auswertung, Locking für Knoten, Logging, MD5-Hashing, Zufallsgenerator, Funktionszeiger, Catch für Exceptions.


=Quellen=
=Quellen=

Version vom 2. Juli 2008, 01:15 Uhr

Definition

Das Open-Source Projekt eXist bietet ein in Java implementiertes Datenbank-Management-System (DBMS), welches seine Daten nativ im XML-Datenmodell abspeichert und verwaltet. Es stützt sich ausschließlich auf freie W3C-Standards wie XML Query Language und XML Path Language als Abfragesprachen oder XSLT als Transformationssprache.

Begründet wurde eXist 2000 durch Wolfgang Meier, der dessen Entwicklung seit 2001 auf dem Open-Source-Portal SourceForge.net gemeinschaftlich vorantreibt. Es steht unter der Lizenzierung der GNU Lesser General Public License (LGPL) und ist in diesem Rahmen also auch in kommerziellen Projekten als Datenbank-Backend frei nutzbar.

Leistungsumfang

Die eXist XML-Datenbank bietet eine breite Palette an Leistungen, die zumeist Webstandards umsetzen:

  • Persitieren: Optimiert für XML-Dokumente und XML-Daten sowie generell textuelle, multimediale Inhalte
  • Selektion: XQuery 1.0 oder XPath 2.0
  • Modifikation: XUpdate und Äquivalent zur XQuery Update Facility 1.0
  • Transformation: XSLT 1.0 oder XSLT 2.0
  • HTTP-Schnittstellen: REST, WebDAV, SOAP, XMLRPC, Atom Publishing
  • Erweiterungen: XQuery Funktionsbibliotheken als Erweiterungsmodule

REST-Schnittstelle

In Form eines Java-Servlets realisiert eXist eine Zugriffsschnittstelle, die sich am Representational State Transfer (REST) als Architekturstil für Hypermediasysteme anlehnt. Es veröffentlicht darüber den Verzeichnisbaum ihres Speicherbereichs unter einer Basis-URI. Befinden sich Anwendungsdateien z.B. unter dem Datenbankpfad /cms/, so werden sie bei eXist standardmäßig über http://host:port/exist/rest/db/cms/ netzwerkweit mit einem HTTP-Client zugreifbar - selbstverständlich mit optionaler HTTP-Authentifizierung. Über die einzelnen HTTP-Methoden lassen sich auf solchen Datenbank-URIs verschiedene Operationen auslösen:

  • GET: Bezieht je nach HTTP-Header Content-Type eine passende Repräsentation des Datenbankobjekts (z.B. ”text/xml”). Übergibt man einen XQuery-Ausdruck als Request-Parameter _query, so wird stattdessen dieser ausgeführt und sein Resultat zurückgegeben.
  • POST: Kann im POST-Inhalt eine für die GET-Variante zu lange XQuery enthalten, die in spezielle <exist:query>-Tags einzubetten ist und äquivalent zu _query behandelt wird.
  • PUT: Speichert oder ersetzt ein Dokument als Datenbankobjekt, wobei der HTTP-Header Content-Type über das gewählte textuelle oder binäre Ablageformat entscheidet.
  • DELETE: Entfernt das addressierte Objekt aus der Datenbank, falls existent.

Ein Spezialverhalten weisen binär abgelegte XQuery-Dokumente (*.xql) auf, bei denen GET und POST direkt in der Auswertung ihres Inhalts resultieren. Dies erlaubt es über XQuery zusammengestellte Webseiten direkt auszuliefern oder z.B. Formularanfragen aus XForms zu bedienen.

XQuery-Erweiterungen

Für die Umsetzung von Websystemen z.B. über die REST-Schnittstelle angesteuerte XQuerys (*.xql) bietet eXist einige nahezu unverzichtbare XQuery-Funktionsbibliotheken an:

HTTP-Kontextzugriff: Erlaubt das Auslesen und Manipulieren der im aktuellen HTTP-Kontext befindlichen Informationen.

  • Request/Response: Setter & Getter für Header, Parameter, Attribute, Daten, Pfadinformationen, Statuscode und Cookies.
  • Sessions: Lebenszyklusverwaltung sowie Setter & Getter für Attribute.
  • Sonstiges: URL-Encoding & -Decoding, Redirects sowie Streaming von Binärdaten.

Utility-Funktionen: Nützliche Funktionen, die hauptsächlich die dynamische Datengenerierung, effiziente Datenverwaltung und funktionale Programmierung anreichern.

  • Datenverwaltung: Einlesen von textuellen und binären Dokumenten, Umwandeln zwischen textuellen und binären Daten, Parsen zu logischem XML-Baum, Serialisierung einer Knotensequenz.
  • Dynamik & Programmierung: Dynamische Modulimporte und XQuery-Auswertung, Locking für Knoten, Logging, MD5-Hashing, Zufallsgenerator, Funktionszeiger, Catch für Exceptions.

Quellen