File: XMLType.extract.xml

package info (click to toggle)
virtuoso-opensource 7.2.5.1%2Bdfsg1-0.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 285,240 kB
  • sloc: ansic: 641,220; sql: 490,413; xml: 269,570; java: 83,893; javascript: 79,900; cpp: 36,927; sh: 31,653; cs: 25,702; php: 12,690; yacc: 10,227; lex: 7,601; makefile: 7,129; jsp: 4,523; awk: 1,697; perl: 1,013; ruby: 1,003; python: 326
file content (92 lines) | stat: -rw-r--r-- 4,112 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 -  
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -  
 -  Copyright (C) 1998-2018 OpenLink Software
 -  
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -  
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -  
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -  
 -  
-->
<refentry id="fn_XMLType.extract">
  <refmeta>
    <refentrytitle>XMLType.extract</refentrytitle>
    <refmiscinfo>xml</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>XMLType.extract</refname>
    <refpurpose>Evaluates given XPATH expression.</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <funcsynopsis id="fsyn_XMLType.extract">
      <funcprototype id="fproto_XMLType.extract">
        <funcdef><function>XMLType.extract</function></funcdef>
	<paramdef>in <parameter>xpath_expn</parameter> varchar</paramdef>
	<paramdef><optional>in <parameter>namespace_map</parameter> varchar</optional></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
  <refsect1 id="desc_XMLType.extract">
    <title>Description</title>
    <para>The member function calculates the given XPATH expression <parameter>xpath_expn</parameter> using
    the XML entity of the instance as a context node. If a <parameter>namespace_map</parameter> parameter
    is given then the function adds namespace declarations from this parameter into the beginning of
    <parameter>xpath_expn</parameter> before the evaluation.
    The function returns the first result of the XPATH evaluation or NULL if there are no results.
    If the result is an XML entity then it is converted into a non-schema based instance of XMLType.</para>
  </refsect1>
  <refsect1 id="params_XMLType.extract">
    <title>Parameters</title>
    <refsect2><title>xpath_expn</title>
      <para>A text of XPATH expression to evaluate.</para>
    </refsect2>
    <refsect2><title>namespace_map</title>
      <para>A string that is a list of namespace prefix declarations delimited by whitespace characters.
If the <parameter>xpath_expn</parameter> expression also contains a list of declarations then these two
lists are concatenated.</para>
    </refsect2>
  </refsect1>
  <refsect1 id="ret_XMLType.extract"><title>Return Types</title>
    <para>The function returns a non-schema based XMLType instance, NULL or a value of any other type</para>
  </refsect1>
  <refsect1 id="examples_XMLType.extract">
    <title>Examples</title>
    <example id="ex_XMLType.extract"><title>A table with an XMLType column</title>
      <para>This populates a table with XML data and then selects 'ename' element from the appropriate record.</para>
      <screen><![CDATA[
create table TEST_XMLS  (I integer primary key, XMLVAL XMLType);
insert into TEST_XMLS  values (1, XMLType('<emp><empno>221</empno><ename>John</ename></emp>'));
insert into TEST_XMLS  values (2, XMLType('<po><pono>331</pono><poname>PO_1</poname></po>'));
insert into TEST_XMLS  values (3, XMLType('<oil-rig id="14a" water="0.413"/><oil-rig id="14b" water="0.402"/>'));
select e.XMLVAL.extract ('//ename').getCLobVal() as ENAME
  from TEST_XMLS  as e
  where e.XMLVAL.existsNode('/emp/empno')
ENAME
NVARCHAR
_______________________________________________________________________________

<ename>John</ename>

1 Rows. -- 00000 msec.
]]>
</screen>
    </example>
  </refsect1>
  <refsect1 id="seealso_XMLType.extract">
    <title>See Also</title>
    <para><link linkend="fn_XMLType.existsNode"><function>XMLType.existsNode()</function></link></para>
  </refsect1>
</refentry>