Re: XPATH evaluation
От | Florian Pflug |
---|---|
Тема | Re: XPATH evaluation |
Дата | |
Msg-id | AFE4ACB6-893D-4E70-B5C9-847236B3AFCF@phlo.org обсуждение исходный текст |
Ответ на | XPATH evaluation (Radosław Smogura <rsmogura@softperience.eu>) |
Ответы |
Re: XPATH evaluation
Re: XPATH evaluation |
Список | pgsql-hackers |
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 interpretede.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
В списке pgsql-hackers по дате отправления: