On Jun17, 2011, at 11:09 , Radosław Smogura wrote:
> 1.
> SELECT (XPATH('/root/*', '<root xmlns:o="http://olacle.com/db"; 
> xmlns:p="http://postgresql.org/db";><o:db><a><b></b></a></o:db><p:db></p:db></root>'));
> Produces:
> "{"<o:db>
>  <a>
>    <b/>
>  </a>
> </o:db>",<p:db/>}"
> In above <b></b> was reduced to <b/> this is different infoset then input, 
> and those notations are differently interpreted e.g. by XML Binding & 
> WebServices. The 1st one will may be mapped to empty string, and 2nd one to 
> to null.

Oh, joy :-(

Does this happen only with my patch applied or also with unpatched HEAD?

> 2.
> SELECT (XPATH('/root/*', '<root xmlns:o="http://olacle.com/db"; 
> xmlns:p="http://postgresql.org/db";><o:db></o:db><p:db></p:db></root>'));
> "{<o:db/>,<p:db/>}"
> In above I missing namespaces.

Hm, that's a hard problem a think. Your problem (1) basically tells us that
ideally we'd return the matching parts of an XML document unmodified. Now,
(2) tells us that isn't to most sensible thing to do either.

> I may take on assignment 1st (fix is simple)

Whats your proposed fix for (1)?

> , but for 2nd I have mixed fillings. I think 2nd should transfer namespaces
> in some way to client.

I don't see how XPATH() can do that without breaking it's API. The only
thing we could do AFAICS is the define a second XPATH evaluation function
which returns a list of namespace declarations (prefix and uri) for every
node.

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

Reply via email to