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="xpf_for">
<refmeta>
<refentrytitle>for</refentrytitle>
<refmiscinfo>XPATH</refmiscinfo>
</refmeta>
<refnamediv>
<refname>for</refname>
<refpurpose>Repeats some calculation for every item of a given sequence</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="xpf_syn_for">
<funcprototype id="xpf_proto_for">
<funcdef>any <function>for</function></funcdef>
<paramdef><parameter>varname</parameter> string</paramdef>
<paramdef><parameter>source_set</parameter> sequence</paramdef>
<paramdef><parameter>mapping_expn</parameter> any</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="xpf_desc_for"><title>Description</title>
<para>
The function creates a temporary local variable, whose name is specified by
<parameter>varname</parameter> argument.
Then, for every item of <parameter>source_set</parameter> sequence it
calculates the value of <parameter>mapping_expn</parameter> expression
having set the created variable to that "current" item.
It returns the "flattened" sequence of values returned by
<parameter>mapping_expn</parameter> in the same order as they are calculated.
"Flattened" means that if <parameter>mapping_expn</parameter>
returns an sequence, items of this sequence will be added into the end of
resulting sequence, one by one, instead of adding one item of type "sequence".
</para>
<para>
The temporary variable is destroyed on return.
</para>
<para>
This function is used in the implementation of
"FOR" control operator in XQUERY,
so you will probably use that operator in XQUERY expressions, not the function.
This function may be useful in XPATH expressions and in XSLT stylesheets.
It is not a part of library of standard XQUERY 1.0 functions.
</para>
</refsect1>
<refsect1 id="xpf_params_for"><title>Parameters</title>
<refsect2><title>varname</title>
<para>Name of temporary variable</para></refsect2>
<refsect2><title>source_set</title>
<para>Sequence of items; every item will cause one call of <parameter>mapping_expn</parameter></para></refsect2>
<refsect2><title>mapping_expn</title>
<para>An expression which should be calculated for items of <parameter>source_set</parameter>.</para></refsect2>
</refsect1>
<refsect1 id="xpf_ret_for"><title>Return Types</title><para>Sequence</para></refsect1>
<refsect1 id="xpf_examples_for"><title>Examples</title>
<example id="xpf_ex_for"><title></title>
<para>These two expressions are equivalent,
but first may be used in any XPATH while second is written in XQUERY syntax</para>
<screen>
for('itm', /bid/item, 0.20 * $itm/price)
FOR $itm IN /bid/item RETURN 0.20 * $bid_item/price
</screen>
</example>
</refsect1>
<refsect1 id="xpf_seealso_for"><title>See Also</title>
<para><link linkend="xpf_let">let()</link></para>
<para><link linkend="xpf_some">some()</link></para>
<para><link linkend="xpf_every">every()</link></para>
</refsect1>
</refentry>
|