Обсуждение: More clearly on XML namespaces inside xpath function

Поиск
Список
Период
Сортировка

More clearly on XML namespaces inside xpath function

От
Nikolay Samokhvalov
Дата:
Explain how to deal with XML namespaces inside the "xpath" function (especially about "default" namespaces, what is really unclear at first glance).


Index: func.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.516
diff -u -r1.516 func.sgml
--- func.sgml 3 Jun 2010 14:40:42 -0000 1.516
+++ func.sgml 4 Jun 2010 09:48:44 -0000
@@ -8596,8 +8596,11 @@
     mappings.  This array should be a two-dimensional array with the
     length of the second axis being equal to 2 (i.e., it should be an
     array of arrays, each of which consists of exactly 2 elements).
-    The first element of each array entry is the namespace name, the
-    second the namespace URI.
+    The first element of each array entry is the namespace name (alias), the
+    second the namespace URI. It is not required that aliases provided in
+    this array are the same that those being used in the XML document itself (in
+    other words, both in the XML document and in the <function>xpath</function>
+    function context, aliases are <emphasis>local</>).
    </para>
 
    <para>
@@ -8612,6 +8615,19 @@
 (1 row)
 ]]></screen>
    </para>
+   
+   <para>
+    How to deal with default (anonymous) namespaces:
+<screen><![CDATA[
+SELECT xpath('//mydefns:b/text()', '<a xmlns="http://example.com"><b>test</b></a>', 
+             ARRAY[ARRAY['mydefns', 'http://example.com']]);
+
+ xpath  
+--------
+ {test}
+(1 row)
+]]></screen>
+   </para>
   </sect2>
 
   <sect2 id="functions-xml-mapping">

Re: More clearly on XML namespaces inside xpath function

От
Bruce Momjian
Дата:
Thanks, applied.

---------------------------------------------------------------------------

Nikolay Samokhvalov wrote:
> Explain how to deal with XML namespaces inside the "xpath" function
> (especially about "default" namespaces, what is really unclear at first
> glance).
>
>
> Index: func.sgml
> ===================================================================
> RCS file: /projects/cvsroot/pgsql/doc/src/sgml/func.sgml,v
> retrieving revision 1.516
> diff -u -r1.516 func.sgml
> --- func.sgml 3 Jun 2010 14:40:42 -0000 1.516
> +++ func.sgml 4 Jun 2010 09:48:44 -0000
> @@ -8596,8 +8596,11 @@
>      mappings.  This array should be a two-dimensional array with the
>      length of the second axis being equal to 2 (i.e., it should be an
>      array of arrays, each of which consists of exactly 2 elements).
> -    The first element of each array entry is the namespace name, the
> -    second the namespace URI.
> +    The first element of each array entry is the namespace name (alias),
> the
> +    second the namespace URI. It is not required that aliases provided in
> +    this array are the same that those being used in the XML document
> itself (in
> +    other words, both in the XML document and in the
> <function>xpath</function>
> +    function context, aliases are <emphasis>local</>).
>     </para>
>
>     <para>
> @@ -8612,6 +8615,19 @@
>  (1 row)
>  ]]></screen>
>     </para>
> +
> +   <para>
> +    How to deal with default (anonymous) namespaces:
> +<screen><![CDATA[
> +SELECT xpath('//mydefns:b/text()', '<a xmlns="http://example.com
> "><b>test</b></a>',
> +             ARRAY[ARRAY['mydefns', 'http://example.com']]);
> +
> + xpath
> +--------
> + {test}
> +(1 row)
> +]]></screen>
> +   </para>
>    </sect2>
>
>    <sect2 id="functions-xml-mapping">

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + None of us is going to be here forever. +