Update copyright year in license headers.
[profile/ivi/qtxmlpatterns.git] / doc / src / snippets / code / doc_src_qtxmlpatterns.qdoc
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the documentation of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:BSD$
10 ** You may use this file under the terms of the BSD license as follows:
11 **
12 ** "Redistribution and use in source and binary forms, with or without
13 ** modification, are permitted provided that the following conditions are
14 ** met:
15 **   * Redistributions of source code must retain the above copyright
16 **     notice, this list of conditions and the following disclaimer.
17 **   * Redistributions in binary form must reproduce the above copyright
18 **     notice, this list of conditions and the following disclaimer in
19 **     the documentation and/or other materials provided with the
20 **     distribution.
21 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
22 **     the names of its contributors may be used to endorse or promote
23 **     products derived from this software without specific prior written
24 **     permission.
25 **
26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40
41
42 void wrapInFunction()
43 {
44
45 //! [2]
46 xmlpatterns myQuery.xq
47 //! [2]
48
49 //! [3]
50 declare namespace c = "http://cookbook/namespace";
51 doc('cookbook.xml')//c:recipe/c:title
52 //! [3]
53
54 //! [4]
55 declare default element namespace "http://cookbook/namespace";
56 doc('cookbook.xml')//recipe/title
57 //! [4]
58
59 //! [5]
60 <title xmlns="http://cookbook/namespace">Quick and Easy Mushroom Soup</title>
61 <title xmlns="http://cookbook/namespace">Cheese on Toast</title>
62 <title xmlns="http://cookbook/namespace">Hard-Boiled Eggs</title>
63 //! [5]
64
65 //! [6]
66 xmlpatterns file.xq
67 //! [6]
68
69 //! [7]
70 doc('cookbook.xml')//@xml:*
71 //! [7]
72
73 //! [8]
74 doc('cookbook.xml')//@*:name
75 //! [8]
76
77 //! [9]
78 declare default element namespace "http://cookbook/namespace";
79 doc('cookbook.xml')/cookbook/@*
80 //! [9]
81
82 //! [10]
83 declare default element namespace "http://cookbook/namespace";
84 doc("cookbook.xml")/cookbook/recipe[title = "Hard-Boiled Eggs"]
85 //! [10]
86
87 //! [11]
88 declare default element namespace "http://cookbook/namespace";
89 doc('cookbook.xml')//method[string-length(.) = 0]
90 //! [11]
91
92 //! [12]
93 declare default element namespace "http://cookbook/namespace";
94 doc('cookbook.xml')//method[string-length() = 0]
95 //! [12]
96
97 //! [13]
98 declare default element namespace "http://cookbook/namespace";
99 doc('cookbook.xml')/cookbook/recipe[2]
100 //! [13]
101
102 //! [14]
103 declare default element namespace "http://cookbook/namespace";
104 doc('cookbook.xml')/cookbook/recipe[position() = 2]
105 //! [14]
106
107 //! [15]
108 declare default element namespace "http://cookbook/namespace";
109 doc('cookbook.xml')/cookbook/recipe[position() > 1]
110 //! [15]
111
112 //! [16]
113 declare default element namespace "http://cookbook/namespace";
114 doc('cookbook.xml')/cookbook/recipe[last()]
115 //! [16]
116
117 //! [17]
118 declare default element namespace "http://cookbook/namespace";
119 doc('cookbook.xml')/cookbook/recipe[last() - 1]
120 //! [17]
121
122 //! [18]
123 doc('cookbook.xml')//recipe
124 //! [18]
125
126 //! [19]
127 doc('cookbook.xml')//recipe/title
128 //! [19]
129
130 //! [20]
131 <recipe/>
132 //! [20]
133
134 //! [21]
135  <html xmlns="http://www.w3.org/1999/xhtml/"
136        xml:id="{doc("other.html")/html/@xml:id}"/>
137 //! [21]
138
139 //! [22]
140 doc('cookbook.xml')/descendant-or-self::element(recipe)/child::element(title)
141 //! [22]
142
143 //! [23]
144 <cookbook>
145 //! [23]
146
147 //! [24]
148 <cookbook xmlns="http://cookbook/namespace">
149 //! [24]
150
151 //! [25]
152 for $i in doc("cookbook.xml")//@xml:*
153 return <p>{$i}</p>
154 //! [25]
155
156 //! [26]
157 for $i in doc("cookbook.xml")//@*:name
158 return <p>{$i}</p>
159 //! [26]
160
161 //! [27]
162 declare default element namespace "http://cookbook/namespace";
163 for $i in doc("cookbook.xml")/cookbook/@*
164 return <p>{$i}</p>
165 //! [27]
166
167 //! [28]
168 <p xml:id="MushroomSoup"/>
169 <p xml:id="CheeseOnToast"/>
170 <p xml:id="HardBoiledEggs"/>
171 //! [28]
172
173 //! [29]
174 <p name="Fresh mushrooms"/>
175 <p name="Garlic"/>
176 <p name="Olive oil"/>
177 <p name="Milk"/>
178 <p name="Water"/>
179 <p name="Cream"/>
180 <p name="Vegetable soup cube"/>
181 <p name="Ground black pepper"/>
182 <p name="Dried parsley"/>
183 <p name="Bread"/>
184 <p name="Cheese"/>
185 <p name="Eggs"/>
186 //! [29]
187
188 //! [30]
189 <p xmlns="http://cookbook/namespace" count="3"/>
190 //! [30]
191
192 //! [31]
193 <method xmlns="http://cookbook/namespace"/>
194 //! [31]
195
196 //! [32]
197 declare default element namespace "http://cookbook/namespace";
198 doc('cookbook.xml')//recipe[string-length(method) = 0]
199 //! [32]
200
201 //! [33]
202 <recipe xmlns="http://cookbook/namespace" xml:id="HardBoiledEggs">
203     <title>Hard-Boiled Eggs</title>
204     <ingredient name="Eggs" quantity="3" unit="eggs"/>
205     <time quantity="3" unit="minutes"/>
206     <method/>
207 </recipe>
208 //! [33]
209
210 //! [34]
211 declare default element namespace "http://cookbook/namespace";
212 doc('cookbook.xml')/cookbook/recipe[method[empty(step)]]
213 //! [34]
214
215 //! [35]
216 declare default element namespace "http://cookbook/namespace";
217 doc('cookbook.xml')/cookbook/recipe[not(normalize-space(method))]
218 //! [35]
219
220 //! [36]
221 <e>{sum((1, 2, 3))}</e>
222 //! [36]
223
224 //! [37]
225 <e>6</e>
226 //! [37]
227
228 //![38]
229 declare variable $insertion := "example";
230 <p class="important {$insertion} obsolete"/>
231 //![38]
232
233 //! [39]
234 <p class="important example obsolete"/>
235 //! [39]
236
237 //! [40]
238 declare default element namespace "http://cookbook/namespace";
239 let $docURI := 'cookbook.xml'
240 return if(doc-available($docURI))
241        then doc($docURI)//recipe/<oppskrift>{./node()}</oppskrift>
242        else <oppskrift>Failed to load {$docURI}</oppskrift>
243 //! [40]
244
245 //! [41]
246 <span>1</span>
247 <span>3</span>
248 <span>5</span>
249 <span>7</span>
250 <span>9</span>
251 <span>b</span>
252 <span>d</span>
253 <span>f</span>
254 //! [41]
255
256 //! [42]
257 <span>1</span>
258 //! [42]
259
260 //! [43]
261 let $doc := doc('doc.txt')
262 return $doc/doc/p[1]/span[1]
263 //! [43]
264
265 //! [44]
266 for $a in doc('doc.txt')/doc/p/span[1]
267 return $a
268 //! [44]
269
270 //! [45]
271 doc('doc.txt')/doc/p/span[1]
272 //! [45]
273
274 //! [46]
275 doc('doc.txt')//p/<p>{span/node()}</p>
276 //! [46]
277
278 //! [47]
279 <p>78</p>
280 <p>9a</p>
281 <p>12</p>
282 <p>bc</p>
283 <p>de</p>
284 <p>34</p>
285 <p>56</p>
286 <p>f0</p>
287 //! [47]
288
289 //! [48]
290 for $a in doc('doc.txt')//p
291  return <p>{$a/span/node()}</p>
292 //! [48]
293
294 //! [49]
295 <p>12</p>
296 <p>34</p>
297 <p>56</p>
298 <p>78</p>
299 <p>9a</p>
300 <p>bc</p>
301 <p>de</p>
302 <p>f0</p>
303 //! [49]
304
305 }
306