PostgreSQL XML

Hallo, ich bin neue in der Verwendung von PostgreSQL. Ich habe postgressql 8.3 beta auf windows xp pro installiert. Ich habe eine Datenbank erzeugt mit Hilfe von Postgres Commando shell. Mein Ziel ist nur die Behandlung von XML-Dokumente unter Postgresql.
1- XML-Dokument:
ich habe paar XML-Dokumente von Größe(17MB, 54KB, 32MB) auf ein Verzeichnis C:\ Middle.xml, das ich gern in einer Tabelle hinterbringen möchte. Wie werde ich diese XML-Dokumente in Postgres speichern? Welche Typs werde ich bei der Speicherung verwende damit die Abfrage mittels Xpath stattfindet?

ist SQL/XML eine Anfragesprache bzw. Datenmanipulation, die Postgresql unterstüzt?
2- Architektur:

Ich habe das Dokument von PostgreSQL gelesen, ich konnte keine grafische Darstellung von Postgreqsl Architektur sehen, die sich mit die Speicherung von XML-Doku befassen. Gibt es überhaupt so was? Wenn ja wo?
Vielen Dank für ihre Bemühung meine Fragen zu beantworten.
Pamela

Es gibt das die xml2-Erweiterung, die das können sollte. Unter Linux befindet sie sich im Contrib-Verzeichnis im Sourcetree unter xml2. Wo sich das unter windows befindet, weiß ich nicht. Vermutlich kann man es aber im Installer mit installieren.

Gruß Uwe

Hallo Gisman,
Unter windows habe ich in Verzeichnis’\PostgreSQL\8.3-beta3\share\contrib’ folgende Datei: pgxml.sql,uninstall_pgxml.sql. wenn ich z.B. pgxml.sql mit eine SQL fenster abrufe habe ich folgen:
(ist es was du meinst?)


'* $PostgreSQL: pgsql/contrib/xml2/pgxml.sql.in,v 1.11 2007/11/13 04:24:29 momjian Exp $ */
– Adjust this setting to control where the objects get created.
SET search_path = public;
–SQL for XML parser
CREATE OR REPLACE FUNCTION xml_is_well_formed(text) RETURNS bool
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
– deprecated old name for xml_is_well_formed
CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
AS ‘$libdir/pgxml’, ‘xml_is_well_formed’
LANGUAGE C STRICT IMMUTABLE;
CREATE OR REPLACE FUNCTION xml_encode_special_chars(text) RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
CREATE OR REPLACE FUNCTION xpath_string(text,text) RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
CREATE OR REPLACE FUNCTION xpath_nodeset(text,text,text,text) RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
CREATE OR REPLACE FUNCTION xpath_number(text,text) RETURNS float4
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
CREATE OR REPLACE FUNCTION xpath_bool(text,text) RETURNS boolean
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;
– List function
CREATE OR REPLACE FUNCTION xpath_list(text,text,text) RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;

CREATE OR REPLACE FUNCTION xpath_list(text,text) RETURNS text
AS ‘SELECT xpath_list($1,$2,’’,’’)’
LANGUAGE SQL STRICT IMMUTABLE;

– Wrapper functions for nodeset where no tags needed

CREATE OR REPLACE FUNCTION xpath_nodeset(text,text)
RETURNS text
AS ‘SELECT xpath_nodeset($1,$2,’’’’,’’’’)’
LANGUAGE SQL STRICT IMMUTABLE;

CREATE OR REPLACE FUNCTION xpath_nodeset(text,text,text)
RETURNS text
AS ‘SELECT xpath_nodeset($1,$2,’’’’,$3)’
LANGUAGE SQL STRICT IMMUTABLE;
– Table function
CREATE OR REPLACE FUNCTION xpath_table(text,text,text,text,text)
RETURNS setof record
AS ‘$libdir/pgxml’
LANGUAGE C STRICT STABLE;
– XSLT functions
– Delete from here to the end of the file if you are not compiling with
– XSLT support.

CREATE OR REPLACE FUNCTION xslt_process(text,text,text)
RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT VOLATILE;
– the function checks for the correct argument count
CREATE OR REPLACE FUNCTION xslt_process(text,text)
RETURNS text
AS ‘$libdir/pgxml’
LANGUAGE C STRICT IMMUTABLE;

Wen ich z. B. die Funktione xpath_table, or xpath_string verwendet,dann wird immer ein Error on xpath gezeigt.Was mache ich Falsch? Übrigens ich habe XML Date als XML typ gespeichert.

Merci, and CU.

Du scheinst an der richtigen Stelle zu sein. Aber wie man das unter Windows installiert weiß ich nicht, dort sollte aber auch ein Readme zu finden sein. Ich kenn mich selbst auch zu wenig mit XML aus.
Weiter hab ich deine PG-Version 8.3 überlesen (sorry :astonished: ), die sollte XML nativ können, aber da kenn ich mich (noch) garnicht aus.

Gruß Uwe

Hallo,

ich hab gerade etwas in der Pre-Doku zu 8.3 gestöbert. Dabei bin ich auf folgendes gestoßen:

PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: XML Type
PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: XML Functions

Bei den Funktionen steht auch was zu XPath. Da ich aber bis jetzt nur XML-Files und XSL-Files verwende und das noch nicht in Kombination mit einer Datenbank gemacht hab, kann ich dir hierzu leider (noch) weiter nichts schreiben.

cu tb.

Hallo
Danke für die Links. I hatte das schon mal gelesen. Aber wenn ich versuche diese Xpath Funktione zu verwende, habe immer eine Fehlermeldung, die auf xpath zeigt :confused:
CU,
Pamela