File: xte_nodebld_final.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 (137 lines) | stat: -rw-r--r-- 5,721 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
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>&lt;product&gt;string1string2string3</para>
      <para>     &lt;supplier CompanyName="Seller"&gt;&lt;/supplier&gt;</para>
      <para> &lt;/product&gt;</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           &lt;product&gt;string1string2string3&lt;supplier CompanyName="Seller" /&gt;&lt;/product&gt;
      </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>