File: xpf_current.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 (82 lines) | stat: -rw-r--r-- 3,397 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
<?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_current">
  <refmeta>
    <refentrytitle>current</refentrytitle>
    <refmiscinfo>XPATH</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>current</refname>
    <refpurpose>Returns a node-set that has the current node as its only member.</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <funcsynopsis id="xpf_syn_current">
      <funcprototype id="xpf_proto_current">
        <funcdef>node-set <function>current</function></funcdef>
	<void/>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
  <refsect1 id="xpf_desc_current"><title>Description</title>
<para>
The function returns a node-set that has the current node as its only member.
For an outermost expression (an expression not occurring within another expression),
the current node is always the same as the context node. For an expression
occurring within another expression, e.g. within predicate in some path,
the current node is the same as the context node of the first step in the path.
</para>
<para>
Please refer XSL standard before the first use of this function,
to understand exact difference between &quot;current&quot; and &quot;context&quot; node.
</para>
<para>
XSLT 1.0 states that it is an error to use the current() function in a XSL &quot;pattern&quot;,
e.g. in &quot;match&quot; attribute of &lt;xsl:key&gt; element, because patterns
have no value assigned for current node assigned processing.
Instead of reporting the error, Virtuoso's XSLT processor uses context node
if current node is not set.
</para>
</refsect1>
  <refsect1 id="xpf_ret_current"><title>Return Types</title><para>Node-set that has exactly one member.</para></refsect1>
  <refsect1 id="xpf_examples_current"><title>Examples</title>
    <example id="xpf_ex_current"><title>Function current() in top-level expression.</title>
      <para>These two elements produce the same result:</para>
      <screen>
&lt;xsl:value-of select=&quot;current()&quot;/&gt;
&lt;xsl:value-of select=&quot;.&quot;/&gt;
      </screen>
    </example>
    <example id="xpf_ex_current"><title>Function current() inside the path.</title>
      <para>
For current node, which is equal to context node of whole &lt;xsl:apply-templates&gt; key,
try to find such item of glossary in the document, that the name of item is equal
to &quot;ref&quot; attribute of current node.
</para>
      <screen>
&lt;xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/&gt;
      </screen>
    </example>
  </refsect1>
</refentry>