rfc: changing documentation about xpath

Started by Denis I. Polukarovover 15 years ago3 messages
#1Denis I. Polukarov
d.polukarov@gpt.ru

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&#39;
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&#39;
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&#39;
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

#2Andrew Dunstan
andrew@dunslane.net
In reply to: Denis I. Polukarov (#1)
Re: rfc: changing documentation about xpath

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

#3Nikolay Samokhvalov
samokhvalov@gmail.com
In reply to: Andrew Dunstan (#2)
Re: rfc: changing documentation about xpath

On Thu, Jun 3, 2010 at 16:02, Andrew Dunstan <andrew@dunslane.net> wrote:

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.

<http://www.postgresql.org/mailpref/pgsql-hackers&gt;

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.