XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>

Lists: pgsql-de-allgemein
From: "postgresql(at)grizzlycrm(dot)de" <postgresql(at)grizzlycrm(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-08 07:17:06
Message-ID: 4E686BF2.3070308@grizzlycrm.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Hallo,

ich habe eine Abfrage für einen XML Export erstellt.

Hier die Struktur:

<general_information version="1.0">
<provider>
</provider>
<all_products>
</all_products>
</general_information>

Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
nicht hinbekommen habe ist:

<?xml version="1.0" encoding="utf-8"?>

Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?

Danke + Grüße

Thomas


From: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-08 08:32:00
Message-ID: 20110908083200.GA23715@tux
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

postgresql(at)grizzlycrm(dot)de <postgresql(at)grizzlycrm(dot)de> wrote:

> Hallo,
>
> ich habe eine Abfrage für einen XML Export erstellt.
>
> Hier die Struktur:
>
> <general_information version="1.0">
> <provider>
> </provider>
> <all_products>
> </all_products>
> </general_information>
>
> Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
> was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
> nicht hinbekommen habe ist:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?

Wie sieht Deine Ergebnismenge aus, das ist nur eine Spalte mit dem Text,
oder? Dann mast einfach ein UNION von SELECT '<?xml...>' und Deriner
Query.

Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°


From: Thomas Uzunoff <info(at)grizzlycrm(dot)de>
To: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-08 09:06:04
Message-ID: 4E68857C.5010706@grizzlycrm.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

>> <general_information version="1.0">
>> <provider>
>> </provider>
>> <all_products>
>> </all_products>
>> </general_information>

Obiges ist Teil meiner Ergebnismenge. Das ist auch in einer Spalte. Wenn
ich aber eine SQL davor setze und mit UNION verbinde, kommt Fehlermeldung:

#######################################################################
FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
LINE 8: XMLELEMENT (NAME general_information, xmlattributes('1.0' as...
^
********** Fehler **********
FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
SQL Status:42883
Zeichen:33
#######################################################################

Habe dann gedacht, ich müsste die

SELECT XML 'asdf' as XMLELEMENT

vom Datentyp her anpassen (XML) hat aber auch nicht funktioniert,
Fehlermeldung bleibt die gleiche.

Meine XML Query ist von der Struktur etwa wie folgt:

SELECT
XMLELEMENT (NAME general_information, xmlattributes('1.0' as version)
,XMLELEMENT (NAME .....
,XMLAGG
XMLELEMENT
XMLELEMENT
...
XMLELEMENT
...
FROM
...
WHERE
...
GROUP BY
...

Am 08.09.2011 10:32, schrieb Andreas Kretschmer:
> postgresql(at)grizzlycrm(dot)de<postgresql(at)grizzlycrm(dot)de> wrote:
>
>> Hallo,
>>
>> ich habe eine Abfrage für einen XML Export erstellt.
>>
>> Hier die Struktur:
>>
>> <general_information version="1.0">
>> <provider>
>> </provider>
>> <all_products>
>> </all_products>
>> </general_information>
>>
>> Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
>> was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
>> nicht hinbekommen habe ist:
>>
>> <?xml version="1.0" encoding="utf-8"?>
>>
>> Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?
>
> Wie sieht Deine Ergebnismenge aus, das ist nur eine Spalte mit dem Text,
> oder? Dann mast einfach ein UNION von SELECT '<?xml...>' und Deriner
> Query.
>
>
> Andreas


From: PostgreSQL - Hans-Jürgen Schönig <postgres(at)cybertec(dot)at>
To: Thomas Uzunoff <info(at)grizzlycrm(dot)de>
Cc: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>, pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: [pgsql-de-allgemein] XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-08 12:17:41
Message-ID: 0DFCD922-E7A2-42AF-9DBB-0E30F57A7E57@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

hallo …

du kannst dir den XML operator jederzeit sehr leicht selber machen …

CREATE FUNCTION xml_my_compare(xml, xml) ….

CREATE OPERATOR …

warum gibt es den derzeit nicht? was ist, wenn zwei elemente in einer liste im xml vertauscht sind? soll dann true oder false kommen?
daher kann man den selber definieren, wenns ist (vorwiegend wegen order - string vergleich funkt nicht so wirklich).

lg,

hans

On Sep 8, 2011, at 11:06 AM, Thomas Uzunoff wrote:

> >> <general_information version="1.0">
> >> <provider>
> >> </provider>
> >> <all_products>
> >> </all_products>
> >> </general_information>
>
> Obiges ist Teil meiner Ergebnismenge. Das ist auch in einer Spalte. Wenn ich aber eine SQL davor setze und mit UNION verbinde, kommt Fehlermeldung:
>
> #######################################################################
> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
> LINE 8: XMLELEMENT (NAME general_information, xmlattributes('1.0' as...
> ^
> ********** Fehler **********
> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
> SQL Status:42883
> Zeichen:33
> #######################################################################
>
> Habe dann gedacht, ich müsste die
>
> SELECT XML 'asdf' as XMLELEMENT
>
> vom Datentyp her anpassen (XML) hat aber auch nicht funktioniert, Fehlermeldung bleibt die gleiche.
>
> Meine XML Query ist von der Struktur etwa wie folgt:
>
> SELECT
> XMLELEMENT (NAME general_information, xmlattributes('1.0' as version)
> ,XMLELEMENT (NAME .....
> ,XMLAGG
> XMLELEMENT
> XMLELEMENT
> ...
> XMLELEMENT
> ...
> FROM
> ...
> WHERE
> ...
> GROUP BY
> ...
>
>
>
>
> Am 08.09.2011 10:32, schrieb Andreas Kretschmer:
>> postgresql(at)grizzlycrm(dot)de<postgresql(at)grizzlycrm(dot)de> wrote:
>>
>>> Hallo,
>>>
>>> ich habe eine Abfrage für einen XML Export erstellt.
>>>
>>> Hier die Struktur:
>>>
>>> <general_information version="1.0">
>>> <provider>
>>> </provider>
>>> <all_products>
>>> </all_products>
>>> </general_information>
>>>
>>> Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
>>> was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
>>> nicht hinbekommen habe ist:
>>>
>>> <?xml version="1.0" encoding="utf-8"?>
>>>
>>> Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?
>>
>> Wie sieht Deine Ergebnismenge aus, das ist nur eine Spalte mit dem Text,
>> oder? Dann mast einfach ein UNION von SELECT '<?xml...>' und Deriner
>> Query.
>>
>>
>> Andreas
>
> --
> Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein
>

--
Cybertec Schönig & Schönig GmbH
Gröhrmühlgasse 26
A-2700 Wiener Neustadt, Austria
Web: http://www.postgresql-support.de


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: "postgresql(at)grizzlycrm(dot)de" <postgresql(at)grizzlycrm(dot)de>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-09 09:33:59
Message-ID: 1315560839.27334.4.camel@fsopti579.F-Secure.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

On tor, 2011-09-08 at 09:17 +0200, postgresql(at)grizzlycrm(dot)de wrote:
> <general_information version="1.0">
> <provider>
> </provider>
> <all_products>
> </all_products>
> </general_information>
>
> Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
> was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
> nicht hinbekommen habe ist:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?

Diese XML-Deklaration enthält die Standardwerte und kann daher
weggelassen werden. Deswegen gibt sie PostgreSQL nicht mit aus. Wenn du
sie unbedingt brauchst, dann wandele den XML-Wert nach Text um und
bastele es dir entsprechend zusammen:

=> select xmlelement(name foo);
xmlelement
------------
<foo/>

=> select '<?xml version="1.0" encoding="utf-8"?>' || xmlserialize(content xmlelement(name foo) as text);
?column?
----------------------------------------------
<?xml version="1.0" encoding="utf-8"?><foo/>

Das Ergebnis ist dann aber vom Typ text und nicht mehr xml.

Wenn du es wieder nach xml umwandelst, dann ist die XML-Deklaration
wieder weg:

=> select xmlparse(content '<?xml version="1.0" encoding="utf-8"?>' || xmlserialize(content xmlelement(name foo) as text));
xmlparse
----------
<foo/>

Gemeines Teil. ;-)


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Thomas Uzunoff <info(at)grizzlycrm(dot)de>
Cc: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>, pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-09 09:35:38
Message-ID: 1315560938.27334.5.camel@fsopti579.F-Secure.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

On tor, 2011-09-08 at 11:06 +0200, Thomas Uzunoff wrote:
> Wenn
> ich aber eine SQL davor setze und mit UNION verbinde, kommt
> Fehlermeldung:
>
> #######################################################################
> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
> LINE 8: XMLELEMENT (NAME general_information, xmlattributes('1.0'
> as...
> ^
> ********** Fehler **********
> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
> SQL Status:42883
> Zeichen:33
> #######################################################################

Generall würde an dieser Stelle UNION ALL helfen.


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: "postgresql(at)grizzlycrm(dot)de" <postgresql(at)grizzlycrm(dot)de>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-09 09:45:47
Message-ID: 1315561547.27334.9.camel@fsopti579.F-Secure.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

On tor, 2011-09-08 at 09:17 +0200, postgresql(at)grizzlycrm(dot)de wrote:
> <general_information version="1.0">
> <provider>
> </provider>
> <all_products>
> </all_products>
> </general_information>
>
> Die Ausgabe des Ergebnisses funktioniert auch wunderbar. Das einzige,
> was dem Ergebnis noch vorangestellt werden soll, ich aber immer noch
> nicht hinbekommen habe ist:
>
> <?xml version="1.0" encoding="utf-8"?>
>
> Kann mir jemand sagen, welchen Befehl ich dafür nutzen kann?

Diese XML-Deklaration enthält die Standardwerte und kann daher
weggelassen werden. Deswegen gibt sie PostgreSQL nicht mit aus. Wenn du
sie unbedingt brauchst, dann wandele den XML-Wert nach Text um und
bastele es dir entsprechend zusammen:

=> select xmlelement(name foo);
xmlelement
------------
<foo/>

=> select '<?xml version="1.0" encoding="utf-8"?>' || xmlserialize(content xmlelement(name foo) as text);
?column?
----------------------------------------------
<?xml version="1.0" encoding="utf-8"?><foo/>

Das Ergebnis ist dann aber vom Typ text und nicht mehr xml.

Wenn du es wieder nach xml umwandelst, dann ist die XML-Deklaration
wieder weg:

=> select xmlparse(content '<?xml version="1.0" encoding="utf-8"?>' || xmlserialize(content xmlelement(name foo) as text));
xmlparse
----------
<foo/>

Gemeines Teil. ;-)


From: "postgresql(at)grizzlycrm(dot)de" <postgresql(at)grizzlycrm(dot)de>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-de-allgemein(at)postgresql(dot)org
Cc: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
Subject: Re: XML Export, hinzufügen von: <?xml version="1.0" encoding="utf-8"?>
Date: 2011-09-09 11:01:15
Message-ID: 4E69F1FB.1000604@grizzlycrm.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Danke an alle, die mir weitergeholfen haben. Fast jede Antwort hat dazu
beigetragen, den Export zu vervollständigen.
Danke

Am 09.09.2011 11:35, schrieb Peter Eisentraut:
> On tor, 2011-09-08 at 11:06 +0200, Thomas Uzunoff wrote:
>> Wenn
>> ich aber eine SQL davor setze und mit UNION verbinde, kommt
>> Fehlermeldung:
>>
>> #######################################################################
>> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
>> LINE 8: XMLELEMENT (NAME general_information, xmlattributes('1.0'
>> as...
>> ^
>> ********** Fehler **********
>> FEHLER: konnte keinen Ist-Gleich-Operator für Typ xml ermitteln
>> SQL Status:42883
>> Zeichen:33
>> #######################################################################
>
> Generall würde an dieser Stelle UNION ALL helfen.
>