File: xpf_xmlview.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 (105 lines) | stat: -rw-r--r-- 3,909 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
93
94
95
96
97
98
99
100
101
102
103
104
105
<?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="xpf_xmlview">
  <refmeta>
    <refentrytitle>xmlview</refentrytitle>
    <refmiscinfo>XPATH</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>xmlview</refname>
    <refpurpose>Returns the xml document corresponding to given XML view </refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <funcsynopsis id="xpf_syn_xmlview">
      <funcprototype id="xpf_proto_xmlview">
        <funcdef><function>xmlview</function></funcdef>
        <paramdef>in <parameter>view_name</parameter> varchar</paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
  <refsect1 id="xpf_desc_xmlview"><title>Description</title>
    <para>
    The function returns the output produced by an XML view as it was a
content of some XML document accessed via document() XPath function.
The result of the function call may be used as input of some path expression
that select interesting parts of the full output of the XML view.
The XQuery engine will translate the XPath expression into SQL statement
in order to avoid redundant data access and to build whole XML tree.
</para>
    <para>This function may be used only in the header of FOR operator of XQuery.
To specify the list of values of a variable, a path expression may be used that
starts with the call of xmlview() function.</para>
  </refsect1>
  <refsect1 id="xpf_param_xmlview"><title>Parameters</title>
    <refsect2><title>view_name</title>
      <para>The name of xml view</para></refsect2>
  </refsect1>

  <refsect1 id="xpf_err_xmlview">
    <title>Errors</title>
    <table><title>Errors signalled by <function>xmlview</function></title>
      <tgroup cols="4">
	<thead>
	  <row>
	    <entry>SQLState</entry><entry>Error Code</entry><entry>Error Text</entry><entry>Description</entry>
	  </row>
	</thead>
	<tbody>
	  <row>
	    <entry><errorcode>37000</errorcode></entry>
	    <entry><errorcode> </errorcode></entry>
	    <entry><errorname>Unknown view name is passed as argument of xmlview()</errorname></entry>
	    <entry> </entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  <para></para>
  </refsect1>
  <refsect1 id="xpf_example_xmlview"><title>Examples</title>
    <example id="xpf_ex_xmlview"><title></title>
      <para>The XQUERY expressions below are queries to the following XML view: </para>
      <screen>
      create xml view "cat" as
      {
        "Demo"."demo"."Categories" c as "category" ("CategoryID", "Description" as "description")
	    {
	          "Demo"."demo"."Products" p as "product"  ("ProductName")
		      on (p."CategoryID" = c."CategoryID")
	    }
      };
      </screen>
      <para>
      The first query returns all products with the attribute ProductName starting with "L".
      The second query returns categories with attribute CategoryID less than 10.
      </para>
      <screen>
for $r in xmlview("cat")//product[@ProductName like "L%"] return $r
for $r in xmlview("cat")/category[@CategoryID&lt;"10"] return $r
      </screen>
    </example>
  </refsect1>

</refentry>