Re: XML import with DTD

From: Roy Walter <walt(at)brookhouse(dot)co(dot)uk>
To: artacus(at)comcast(dot)net
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: XML import with DTD
Date: 2009-07-11 08:16:31
Message-ID: 4A584A5F.5020104@brookhouse.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

It's not an xpath problem it's an XML import problem. Sorry if I wasn't
clear.

Consider the following example queries. This one works fine:

INSERT INTO wms_collection (docxml) VALUES (XMLPARSE(content(
'<?xml version="1.0" encoding="ISO-8859-1"?>
<shop>
<product>Shoes</product>
</shop>')))

This one does not:

INSERT INTO wms_collection (docxml) VALUES (XMLPARSE(content(
'<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE publicwhip
[
<!ENTITY ndash "&#8211;">
<!ENTITY mdash "&#8212;">
]>
<shop>
<product>Shoes</product>
</shop>')))

Both are valid XML but the second query fails as follows:

ERROR: invalid XML content
DETAIL: Entity: line 2: parser error : StartTag: invalid element name
<!DOCTYPE publicwhip
^
Entity: line 4: parser error : StartTag: invalid element name
<!ENTITY ndash "&#8211;">
^
Entity: line 5: parser error : StartTag: invalid element name
<!ENTITY mdash "&#8212;">

-- Roy

artacus(at)comcast(dot)net wrote:
> Post a snippet of the xml and xpath you are trying to use.
>
>
> Scott
>
> ----- Original Message -----
> From: "Roy Walter" <walt(at)brookhouse(dot)co(dot)uk>
> To: pgsql-general(at)postgresql(dot)org
> Sent: Friday, July 10, 2009 7:49:00 AM GMT -08:00 US/Canada Pacific
> Subject: [GENERAL] XML import with DTD
>
> Hi
>
> I'm trying to use the XPath functionality of Postgres.
>
> I can populate a text field (unparsed) with XML data but as far as I
> can see the xpath() function [now] only works on the xml data type.
>
> When I try to populate a text field with XML data containing a DTD,
> however, the parser chokes. If I strip the DTD the parser chokes on
> undefined entities which are defined in the DTD.
>
> (I switched the app' to from MySQL to Postgres because while MySQL
> works it returns matches in undelimited form which is next to useless
> if, for example, you return multiple attributes from a node.)
>
> Does anyone know of a solution to this problem?
>
> Windows 2000 Server
> Postgres 8.4
>
> Regards
> Roy Walter
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.5.387 / Virus Database: 270.13.9/2229 - Release Date: 07/10/09 07:05:00
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alban Hertroys 2009-07-11 09:35:06 Re: Best practices to WorkFlow design?
Previous Message Dennis Gearon 2009-07-11 07:21:39 Date Time Arithmetic Speed