[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pgsql-hackers
Subject:    Re: [HACKERS] XML Issue with DTDs
From:       Florian Pflug <fgp () phlo ! org>
Date:       2013-12-29 23:33:56
Message-ID: 41B1A9EC-029D-4CED-9830-5E7E42CAA960 () phlo ! org
[Download RAW message or body]

On Dec26, 2013, at 21:30 , Florian Pflug <fgp@phlo.org> wrote:
> On Dec23, 2013, at 18:39 , Peter Eisentraut <peter_e@gmx.net> wrote:
>> On 12/19/13, 6:40 PM, Florian Pflug wrote:
>>> The following example fails for XMLOPTION set to DOCUMENT as well as for XMLOPTION set to CONTENT.
>>> 
>>> select xmlconcat(
>>>   xmlparse(document '<!DOCTYPE test [<!ELEMENT test EMPTY>]><test/>'),
>>>   xmlparse(content '<test/>')
>>> )::text::xml;
>> 
>> The SQL standard specifies that DTDs are dropped by xmlconcat.  It's
>> just not implemented.
> 
> OK, cool, I'll try to figure out how to do that with libxml

Hm, I've read through the (draft) SQL/XML 2003 standard, and it seems that
it mandates more processing of DTDs than we currently do. In particular, it
says that attribute default values and custom entities are to be expanded
by xmlparse(). Without doing that, stripping the DTD can change the meaning
of an XML document, or make it not well-formed (in the case of custom
entity definitions). So I think that we unless we implement that, I we have
to raise an error, not silently strip the DTD. 

best regards,
Florian Pflug



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic