Thread: rfc: changing documentation about xpath
Hi! I'm to face a problem, and not at once resolve it. When I do: -- // -- test=# SELECT xpath('//domain:name/text()', $$<?xml version='1.0' encoding='UTF-8'?> <epp xmlns='urn:ietf:params:xml:ns:epp-1.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd'><response> <result code='1301'> <msg lang='en-US'>Command completed successfully; ack to dequeue</msg> </result><msgQ count='3' id='114004'> <qDate>2010-06-02T12:35:33.0Z</qDate> <msg lang='en-US'>Transfer Requested.</msg></msgQ> <resData> <domain:trnData xmlns:domain='urn:ietf:params:xml:ns:domain-1.0' xsi:schemaLocation='urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd'> <domain:name>xxx.xx</domain:name> <domain:trStatus>pending</domain:trStatus> <domain:reID>admin</domain:reID> <domain:reDate>2010-06-02T12:35:33.0Z</domain:reDate> <domain:acID>xxx-xx</domain:acID> <domain:acDate>2010-06-07T12:35:33.0Z</domain:acDate> <domain:exDate>2014-05-11T12:52:07.0Z</domain:exDate> </domain:trnData> </resData> <trID> <svTRID>xx-xxx</svTRID> </trID></response> </epp>$$, array[array['domain','urn:ietf:params:xml:ns:domain-1.0']]); xpath -------------{xxx.xx} (1 row) test=# -- // -- worked... and: -- // -- test=# SELECT xpath('//qDate/text()', $$<?xml version='1.0' encoding='UTF-8'?> <epp xmlns='urn:ietf:params:xml:ns:epp-1.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd'><response> <result code='1301'> <msg lang='en-US'>Command completed successfully; ack to dequeue</msg></result><msgQ count='3' id='114004'> <qDate>2010-06-02T12:35:33.0Z</qDate> <msg lang='en-US'>Transfer Requested.</msg></msgQ> <resData> <domain:trnData xmlns:domain='urn:ietf:params:xml:ns:domain-1.0' xsi:schemaLocation='urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd'> <domain:name>xxx.xx</domain:name> <domain:trStatus>pending</domain:trStatus> <domain:reID>admin</domain:reID> <domain:reDate>2010-06-02T12:35:33.0Z</domain:reDate> <domain:acID>xxx-xx</domain:acID> <domain:acDate>2010-06-07T12:35:33.0Z</domain:acDate> <domain:exDate>2014-05-11T12:52:07.0Z</domain:exDate> </domain:trnData> </resData> <trID> <svTRID>xx-xxx</svTRID> </trID></response> </epp>$$);xpath -------{} (1 row) test=# -- // -- not worked. I think that the nuance about default namespaces should add to xpath's doc. This select: -- // -- SELECT xpath('//global:qDate/text()', $$<?xml version='1.0' encoding='UTF-8'?> <epp xmlns='urn:ietf:params:xml:ns:epp-1.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd'><response> <result code='1301'> <msg lang='en-US'>Command completed successfully; ack to dequeue</msg></result><msgQ count='3' id='114004'> <qDate>2010-06-02T12:35:33.0Z</qDate> <msg lang='en-US'>Transfer Requested.</msg></msgQ> <resData> <domain:trnData xmlns:domain='urn:ietf:params:xml:ns:domain-1.0' xsi:schemaLocation='urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd'> <domain:name>xxx.xx</domain:name> <domain:trStatus>pending</domain:trStatus> <domain:reID>admin</domain:reID> <domain:reDate>2010-06-02T12:35:33.0Z</domain:reDate> <domain:acID>xxx-xx</domain:acID> <domain:acDate>2010-06-07T12:35:33.0Z</domain:acDate> <domain:exDate>2014-05-11T12:52:07.0Z</domain:exDate> </domain:trnData> </resData> <trID> <svTRID>xx-xxx</svTRID> </trID></response> </epp>$$, array[array['global', 'urn:ietf:params:xml:ns:epp-1.0']]); xpath --------------------------{2010-06-02T12:35:33.0Z} (1 row) -- // -- work. Thanks to Ёж on www.sql.ru and pgsql-ru-general ... :) -- Best regards, Denis I. Polukarov developer "Garant-Park-Telekom" http://www.gpt.ru
Denis I. Polukarov wrote: > Hi! > > I'm to face a problem, and not at once resolve it. > > [default namespace mapped in xml "xmlns=" attribute requires corresponding mapping in third param of xpath()] It's a tolerably subtle point, and I'm not sure it's really PostgreSQL-specific. But if you think the docs need improvement, then please suggest a patch with the extra wording you think would make things clearer. cheers andrew
On Thu, Jun 3, 2010 at 16:02, Andrew Dunstan <andrew@dunslane.net> wrote:
[default namespace mapped in xml "xmlns=" attribute requires corresponding mapping in third param of xpath()]
Denis I. Polukarov wrote:Hi!
I'm to face a problem, and not at once resolve it.
It's a tolerably subtle point, and I'm not sure it's really PostgreSQL-specific. But if you think the docs need improvement, then please suggest a patch with the extra wording you think would make things clearer.
You are absolutely right, it's not really Postgres-specific, it's XML specific, but every novice using xpath encounters with this unclear point. So, small docs patch is sent to -docs.