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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
<?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_xte_nodebld_final">
<refmeta>
<refentrytitle>xte_nodebld_final</refentrytitle>
<refmiscinfo>xml</refmiscinfo>
</refmeta>
<refnamediv>
<refname>xte_nodebld_final</refname>
<refpurpose>Corrects input vector</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis id="fsyn_xte_nodebld_final">
<funcprototype id="fproto_xte_nodebld_final">
<funcdef><function>xte_nodebld_final</function></funcdef>
<paramdef>inout <parameter>arg</parameter> any</paramdef>
<paramdef><optional>in <parameter>head </parameter>any</optional></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="desc_xte_nodebld_final"><title>Description</title>
<para>
By default this function reduces all last empty items from the first argument and returns it,
but supplied a second argument
it also replaces the first item of the first argument by the second argument,
but does not commit the return.
</para>
</refsect1>
<refsect1 id="xte_nodebld_final"><title>Parameters</title>
<refsect2><title>arg</title>
<para>The vector created by the xte_nodebld_init() and filled by xte_nodebld_acc() function</para>
</refsect2>
<refsect2><title>head</title>
<para>A vector returned by xte_head() function</para>
</refsect2>
</refsect1>
<refsect1 id="errors_xte_nodebld_final">
<title>Errors</title>
<table><title>Errors signalled by <function>xte_nodebld_final</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>22003</errorcode></entry>
<entry><errorcode>SR347</errorcode></entry>
<entry><errorname>Too few arguments for xte_nodebld_final</errorname></entry>
<entry></entry>
</row>
<row>
<entry><errorcode>22003</errorcode></entry>
<entry><errorcode>SR348</errorcode></entry>
<entry><errorname>The first argument of xte_node_nodebld_final is not made by xte_nodebld_init() function</errorname></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</refsect1>
<refsect1 id="xte_nodebld_final"><title>Examples</title>
<example id="ex_xte_nodebld_final"><title>xte_nodebld_final() with a single argument</title>
<para>Before the xte_nodebld_final() call the length of the vector acc is equal to 16, after the call the length is 3.
The vector acc does not correspond to a xml document - there is no a root tag. The result of the xte_nodebld_final()
may be used as argument for xte_node_from_nodebld() to get a vector corresponding to complete xml document.
</para>
<screen>create procedure test1_nodebld()
{
declare acc any;
xte_nodebld_init (acc);
xte_nodebld_acc (acc,'string1', string2');
xte_nodebld_acc(acc, 'string3',xte_node(xte_head ('supplier', 'CompanyName','Seller')));
acc:=xte_nodebld_final(acc);
. . .
}
</screen>
</example>
<example id="ex_xte_nodebld_final"><title>xte_nodebld_final() with two arguments. </title>
<para>The vector acc below is corresponding to the following XML element: </para>
<para><product>string1string2string3</para>
<para> <supplier CompanyName="Seller"></supplier></para>
<para> </product></para>
<screen>create procedure test2_nodebld()
{
declare acc any;
declare "Res" any;
declare "ResLen" integer;
result_names ("ResLen", "Res");
xte_nodebld_init (acc);
xte_nodebld_acc (acc,'string1', 'string2');
xte_nodebld_acc(acc, 'string3',xte_node(xte_head ('supplier', 'CompanyName','Seller')));
xte_nodebld_final(acc, xte_head('product'));
result (length(acc), xml_tree_doc (acc));
}
test_nodebld()
ResLen Res
INTEGER VARCHAR
_______________________________________________________________________________
3 <product>string1string2string3<supplier CompanyName="Seller" /></product>
</screen>
</example>
</refsect1>
<refsect1 id="seealso_xte_nodebld_final"><title>See Also</title>
<para><link linkend="fn_xte_head">xte_head()</link></para>
<para><link linkend="fn_xte_node">xte_node()</link></para>
<para><link linkend="fn_xte_node_from_nodebld">xte_node_from_nodebld()</link></para>
<para><link linkend="fn_xte_nodebld_acc">xte_nodebld_acc()</link></para>
<para><link linkend="fn_xte_nodebld_init">xte_nodebld_init()</link></para>
</refsect1>
</refentry>
|