source: trunk/tools/designer/data/generate_impl.xsl@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

  • Property svn:eol-style set to native
File size: 50.8 KB
Line 
1<!DOCTYPE xsl:stylesheet [
2 <!ENTITY endl "&#10;">
3]>
4<xsl:stylesheet version="1.0"
5 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6 xmlns:xs="http://www.w3.org/2001/XMLSchema">
7
8 <xsl:output method="text"/>
9
10 <xsl:include href="generate_shared.xsl"/>
11
12<!-- Implementation: constructor -->
13
14 <xsl:template name="ctor-init-attributes">
15 <xsl:param name="node"/>
16 <xsl:for-each select="$node/xs:attribute">
17 <xsl:variable name="camel-case-name">
18 <xsl:call-template name="camel-case">
19 <xsl:with-param name="text" select="@name"/>
20 </xsl:call-template>
21 </xsl:variable>
22 <xsl:text> m_has_attr_</xsl:text>
23 <xsl:value-of select="$camel-case-name"/>
24 <xsl:text> = false;&endl;</xsl:text>
25 <xsl:choose>
26 <xsl:when test="@type = 'xs:integer'">
27 <xsl:text> m_attr_</xsl:text>
28 <xsl:value-of select="$camel-case-name"/>
29 <xsl:text> = 0;&endl;</xsl:text>
30 </xsl:when>
31 <xsl:when test="@type = 'xs:double'">
32 <xsl:text> m_attr_</xsl:text>
33 <xsl:value-of select="$camel-case-name"/>
34 <xsl:text> = 0.0;&endl;</xsl:text>
35 </xsl:when>
36 <xsl:when test="@type = 'xs:float'">
37 <xsl:text> m_attr_</xsl:text>
38 <xsl:value-of select="$camel-case-name"/>
39 <xsl:text> = 0.0;&endl;</xsl:text>
40 </xsl:when>
41 <xsl:when test="@type = 'xs:boolean'">
42 <xsl:text> m_attr_</xsl:text>
43 <xsl:value-of select="$camel-case-name"/>
44 <xsl:text> = false;&endl;</xsl:text>
45 </xsl:when>
46 </xsl:choose>
47 </xsl:for-each>
48 </xsl:template>
49
50 <xsl:template name="ctor-init-child-elements">
51 <xsl:param name="node"/>
52 <xsl:for-each select="$node/xs:element">
53 <xsl:variable name="array" select="@maxOccurs='unbounded'"/>
54 <xsl:if test="not($array)">
55 <xsl:variable name="cpp-type">
56 <xsl:call-template name="xs-type-to-cpp-type">
57 <xsl:with-param name="xs-type" select="@type"/>
58 <xsl:with-param name="array" select="$array"/>
59 </xsl:call-template>
60 </xsl:variable>
61 <xsl:variable name="camel-case-name">
62 <xsl:call-template name="camel-case">
63 <xsl:with-param name="text" select="@name"/>
64 </xsl:call-template>
65 </xsl:variable>
66 <xsl:choose>
67 <xsl:when test="@type = 'xs:integer'">
68 <xsl:text> m_</xsl:text>
69 <xsl:value-of select="$camel-case-name"/>
70 <xsl:text> = 0;&endl;</xsl:text>
71 </xsl:when>
72 <xsl:when test="@type = 'xs:float'">
73 <xsl:text> m_</xsl:text>
74 <xsl:value-of select="$camel-case-name"/>
75 <xsl:text> = 0.0;&endl;</xsl:text>
76 </xsl:when>
77 <xsl:when test="@type = 'xs:boolean'">
78 <xsl:text> m_</xsl:text>
79 <xsl:value-of select="$camel-case-name"/>
80 <xsl:text> = false;&endl;</xsl:text>
81 </xsl:when>
82 <xsl:when test="@type = 'xs:string'"></xsl:when>
83 <xsl:otherwise>
84 <xsl:text> m_</xsl:text>
85 <xsl:value-of select="$camel-case-name"/>
86 <xsl:text> = 0;&endl;</xsl:text>
87 </xsl:otherwise>
88 </xsl:choose>
89 </xsl:if>
90 </xsl:for-each>
91 </xsl:template>
92
93 <xsl:template name="ctor-init-members">
94 <xsl:param name="node"/>
95
96 <xsl:if test="boolean($node/xs:choice)">
97 <xsl:text> m_kind = Unknown;&endl;&endl;</xsl:text>
98 </xsl:if>
99
100 <xsl:if test="not($node/xs:choice)">
101 <xsl:text> m_children = 0;&endl;</xsl:text>
102 </xsl:if>
103
104 <xsl:call-template name="ctor-init-attributes">
105 <xsl:with-param name="node" select="."/>
106 </xsl:call-template>
107
108 <xsl:if test="$node[@mixed='true']">
109 <xsl:text> m_text = QLatin1String("");&endl;</xsl:text>
110 </xsl:if>
111
112 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
113 <xsl:call-template name="ctor-init-child-elements">
114 <xsl:with-param name="node" select="."/>
115 </xsl:call-template>
116 </xsl:for-each>
117 </xsl:template>
118
119 <xsl:template name="ctor-impl">
120 <xsl:param name="node"/>
121 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
122
123 <xsl:value-of select="$name"/>
124 <xsl:text>::</xsl:text>
125 <xsl:value-of select="$name"/>
126 <xsl:text>()&endl;</xsl:text>
127 <xsl:text>{&endl;</xsl:text>
128 <xsl:call-template name="ctor-init-members">
129 <xsl:with-param name="node" select="$node"/>
130 </xsl:call-template>
131 <xsl:text>}&endl;&endl;</xsl:text>
132 </xsl:template>
133
134<!-- Implementation: destructor -->
135
136 <xsl:template name="dtor-delete-members">
137 <xsl:param name="node"/>
138
139 <xsl:for-each select="$node/xs:element">
140 <xsl:variable name="camel-case-name">
141 <xsl:call-template name="camel-case">
142 <xsl:with-param name="text" select="@name"/>
143 </xsl:call-template>
144 </xsl:variable>
145 <xsl:variable name="xs-type-cat">
146 <xsl:call-template name="xs-type-category">
147 <xsl:with-param name="xs-type" select="@type"/>
148 </xsl:call-template>
149 </xsl:variable>
150 <xsl:choose>
151 <xsl:when test="@maxOccurs='unbounded'">
152 <xsl:if test="$xs-type-cat = 'pointer'">
153 <xsl:text> qDeleteAll(m_</xsl:text>
154 <xsl:value-of select="$camel-case-name"/>
155 <xsl:text>);&endl;</xsl:text>
156 </xsl:if>
157 <xsl:text> m_</xsl:text>
158 <xsl:value-of select="$camel-case-name"/>
159 <xsl:text>.clear();&endl;</xsl:text>
160 </xsl:when>
161 <xsl:otherwise>
162 <xsl:if test="$xs-type-cat = 'pointer'">
163 <xsl:text> delete m_</xsl:text>
164 <xsl:value-of select="$camel-case-name"/>
165 <xsl:text>;&endl;</xsl:text>
166 </xsl:if>
167 </xsl:otherwise>
168 </xsl:choose>
169 </xsl:for-each>
170 </xsl:template>
171
172 <xsl:template name="dtor-impl">
173 <xsl:param name="node"/>
174 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
175
176 <xsl:value-of select="$name"/>
177 <xsl:text>::~</xsl:text>
178 <xsl:value-of select="$name"/>
179 <xsl:text>()&endl;</xsl:text>
180 <xsl:text>{&endl;</xsl:text>
181
182 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
183 <xsl:call-template name="dtor-delete-members">
184 <xsl:with-param name="node" select="."/>
185 </xsl:call-template>
186 </xsl:for-each>
187
188 <xsl:text>}&endl;&endl;</xsl:text>
189 </xsl:template>
190
191<!-- Implementation: clear() -->
192
193 <xsl:template name="clear-impl">
194 <xsl:param name="node"/>
195 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
196
197 <xsl:text>void </xsl:text><xsl:value-of select="$name"/>
198 <xsl:text>::clear(bool clear_all)&endl;</xsl:text>
199 <xsl:text>{&endl;</xsl:text>
200
201 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
202 <xsl:call-template name="dtor-delete-members">
203 <xsl:with-param name="node" select="."/>
204 </xsl:call-template>
205 </xsl:for-each>
206
207 <xsl:text>&endl; if (clear_all) {&endl;</xsl:text>
208
209 <xsl:choose>
210 <xsl:when test="$node[@mixed='true']">
211 <xsl:text> m_text = QLatin1String("");&endl;</xsl:text>
212 </xsl:when>
213 <xsl:otherwise>
214 <xsl:text> m_text.clear();&endl;</xsl:text>
215 </xsl:otherwise>
216 </xsl:choose>
217
218 <xsl:call-template name="ctor-init-attributes">
219 <xsl:with-param name="node" select="."/>
220 </xsl:call-template>
221 <xsl:text> }&endl;&endl;</xsl:text>
222
223 <xsl:if test="boolean($node/xs:choice)">
224 <xsl:text> m_kind = Unknown;&endl;&endl;</xsl:text>
225 </xsl:if>
226
227 <xsl:if test="not($node/xs:choice)">
228 <xsl:text> m_children = 0;&endl;</xsl:text>
229 </xsl:if>
230
231 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
232 <xsl:call-template name="ctor-init-child-elements">
233 <xsl:with-param name="node" select="."/>
234 </xsl:call-template>
235 </xsl:for-each>
236
237 <xsl:text>}&endl;&endl;</xsl:text>
238
239 </xsl:template>
240
241 <!-- Format a string constant as QString(QLatin1Char('X')) or QLatin1String("foo"), respectively -->
242 <xsl:template name="string-constant">
243 <xsl:param name="literal"/>
244 <xsl:choose>
245 <xsl:when test="string-length($literal) &lt; 2">
246 <xsl:text>QString(QLatin1Char('</xsl:text>
247 <xsl:value-of select="$literal"/>
248 <xsl:text>'))</xsl:text>
249 </xsl:when>
250 <xsl:otherwise>
251 <xsl:text>QLatin1String("</xsl:text>
252 <xsl:value-of select="$literal"/>
253 <xsl:text>")</xsl:text>
254 </xsl:otherwise>
255 </xsl:choose>
256 </xsl:template>
257
258<!-- Implementation: read(QXmlStreamReader) -->
259
260 <xsl:template name="read-impl-load-attributes">
261 <xsl:param name="node"/>
262
263 <xsl:if test="$node/xs:attribute">
264 <xsl:text>&endl;</xsl:text>
265 <xsl:text> foreach (const QXmlStreamAttribute &amp;attribute, reader.attributes()) {&endl;</xsl:text>
266 <xsl:text> QStringRef name = attribute.name();&endl;</xsl:text>
267
268 <xsl:for-each select="$node/xs:attribute">
269 <xsl:variable name="camel-case-name">
270 <xsl:call-template name="camel-case">
271 <xsl:with-param name="text" select="@name"/>
272 </xsl:call-template>
273 </xsl:variable>
274 <xsl:variable name="cap-name">
275 <xsl:call-template name="cap-first-char">
276 <xsl:with-param name="text" select="$camel-case-name"/>
277 </xsl:call-template>
278 </xsl:variable>
279 <xsl:variable name="qstring-func">
280 <xsl:call-template name="xs-type-from-qstring-func">
281 <xsl:with-param name="xs-type" select="@type"/>
282 <xsl:with-param name="val">
283 <xsl:text>attribute.value().toString()</xsl:text>
284 </xsl:with-param>
285 </xsl:call-template>
286 </xsl:variable>
287
288 <xsl:text> if (name == </xsl:text>
289 <xsl:call-template name="string-constant">
290 <xsl:with-param name="literal" select="@name"/>
291 </xsl:call-template>
292 <xsl:text>) {&endl;</xsl:text>
293 <xsl:text> setAttribute</xsl:text>
294 <xsl:value-of select="$cap-name"/>
295 <xsl:text>(</xsl:text>
296 <xsl:value-of select="$qstring-func"/>
297 <xsl:text>);&endl;</xsl:text>
298 <xsl:text> continue;&endl;</xsl:text>
299 <xsl:text> }&endl;</xsl:text>
300 </xsl:for-each>
301
302 <xsl:text> reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());&endl;</xsl:text>
303 <xsl:text> }&endl;</xsl:text>
304 </xsl:if>
305 </xsl:template>
306
307 <xsl:template name="read-impl-load-child-element">
308 <xsl:param name="node"/>
309
310 <xsl:for-each select="$node/xs:element">
311 <xsl:variable name="camel-case-name">
312 <xsl:call-template name="camel-case">
313 <xsl:with-param name="text" select="@name"/>
314 </xsl:call-template>
315 </xsl:variable>
316
317 <xsl:variable name="cap-name">
318 <xsl:call-template name="cap-first-char">
319 <xsl:with-param name="text" select="$camel-case-name"/>
320 </xsl:call-template>
321 </xsl:variable>
322 <xsl:variable name="xs-type-cat">
323 <xsl:call-template name="xs-type-category">
324 <xsl:with-param name="xs-type" select="@type"/>
325 </xsl:call-template>
326 </xsl:variable>
327 <xsl:variable name="lower-name">
328 <xsl:call-template name="lower-text">
329 <xsl:with-param name="text" select="@name"/>
330 </xsl:call-template>
331 </xsl:variable>
332 <xsl:variable name="array" select="@maxOccurs = 'unbounded'"/>
333
334 <xsl:text> if (tag == </xsl:text>
335 <xsl:call-template name="string-constant">
336 <xsl:with-param name="literal" select="$lower-name"/>
337 </xsl:call-template>
338 <xsl:text>) {&endl;</xsl:text>
339
340 <xsl:choose>
341 <xsl:when test="not($array) and $xs-type-cat = 'value'">
342 <xsl:variable name="qstring-func">
343 <xsl:call-template name="xs-type-from-qstring-func">
344 <xsl:with-param name="xs-type" select="@type"/>
345 <xsl:with-param name="val" select="'reader.readElementText()'"/>
346 </xsl:call-template>
347 </xsl:variable>
348
349 <xsl:text> setElement</xsl:text>
350 <xsl:value-of select="$cap-name"/>
351 <xsl:text>(</xsl:text>
352 <xsl:value-of select="$qstring-func"/>
353 <xsl:text>);&endl;</xsl:text>
354 </xsl:when>
355 <xsl:when test="@maxOccurs='unbounded' and $xs-type-cat = 'value'">
356 <xsl:variable name="qstring-func">
357 <xsl:call-template name="xs-type-from-qstring-func">
358 <xsl:with-param name="xs-type" select="@type"/>
359 <xsl:with-param name="val" select="'reader.readElementText()'"/>
360 </xsl:call-template>
361 </xsl:variable>
362
363 <xsl:text> m_</xsl:text>
364 <xsl:value-of select="$camel-case-name"/>
365 <xsl:text>.append(</xsl:text>
366 <xsl:value-of select="$qstring-func"/>
367 <xsl:text>);&endl;</xsl:text>
368 </xsl:when>
369 <xsl:when test="not(@maxOccurs='unbounded') and $xs-type-cat = 'pointer'">
370 <xsl:text> Dom</xsl:text>
371 <xsl:value-of select="@type"/>
372 <xsl:text> *v = new Dom</xsl:text>
373 <xsl:value-of select="@type"/>
374 <xsl:text>();&endl;</xsl:text>
375 <xsl:text> v->read(reader);&endl;</xsl:text>
376 <xsl:text> setElement</xsl:text>
377 <xsl:value-of select="$cap-name"/>
378 <xsl:text>(v);&endl;</xsl:text>
379 </xsl:when>
380 <xsl:when test="@maxOccurs='unbounded' and $xs-type-cat = 'pointer'">
381 <xsl:text> Dom</xsl:text>
382 <xsl:value-of select="@type"/>
383 <xsl:text> *v = new Dom</xsl:text>
384 <xsl:value-of select="@type"/>
385 <xsl:text>();&endl;</xsl:text>
386 <xsl:text> v->read(reader);&endl;</xsl:text>
387 <xsl:text> m_</xsl:text>
388 <xsl:value-of select="$camel-case-name"/>
389 <xsl:text>.append(v);&endl;</xsl:text>
390 </xsl:when>
391 </xsl:choose>
392 <xsl:text> continue;&endl;</xsl:text>
393 <xsl:text> }&endl;</xsl:text>
394 </xsl:for-each>
395 </xsl:template>
396
397 <xsl:template name="read-impl">
398 <xsl:param name="node"/>
399 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
400
401 <xsl:text>void </xsl:text>
402 <xsl:value-of select="$name"/>
403 <xsl:text>::read(QXmlStreamReader &amp;reader)&endl;</xsl:text>
404
405 <xsl:text>{&endl;</xsl:text>
406
407 <xsl:call-template name="read-impl-load-attributes">
408 <xsl:with-param name="node" select="$node"/>
409 </xsl:call-template>
410
411 <xsl:text>&endl;</xsl:text>
412
413 <xsl:text> for (bool finished = false; !finished &amp;&amp; !reader.hasError();) {&endl;</xsl:text>
414 <xsl:text> switch (reader.readNext()) {&endl;</xsl:text>
415 <xsl:text> case QXmlStreamReader::StartElement : {&endl;</xsl:text>
416 <xsl:text> const QString tag = reader.name().toString().toLower();&endl;</xsl:text>
417
418 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
419 <xsl:call-template name="read-impl-load-child-element">
420 <xsl:with-param name="node" select="."/>
421 </xsl:call-template>
422 </xsl:for-each>
423
424 <xsl:text> reader.raiseError(QLatin1String("Unexpected element ") + tag);&endl;</xsl:text>
425 <xsl:text> }&endl;</xsl:text>
426 <xsl:text> break;&endl;</xsl:text>
427 <xsl:text> case QXmlStreamReader::EndElement :&endl;</xsl:text>
428 <xsl:text> finished = true;&endl;</xsl:text>
429 <xsl:text> break;&endl;</xsl:text>
430 <xsl:text> case QXmlStreamReader::Characters :&endl;</xsl:text>
431 <xsl:text> if (!reader.isWhitespace())&endl;</xsl:text>
432 <xsl:text> m_text.append(reader.text().toString());&endl;</xsl:text>
433 <xsl:text> break;&endl;</xsl:text>
434 <xsl:text> default :&endl;</xsl:text>
435 <xsl:text> break;&endl;</xsl:text>
436
437 <xsl:text> }&endl;</xsl:text>
438 <xsl:text> }&endl;</xsl:text>
439 <xsl:text>}&endl;&endl;</xsl:text>
440 </xsl:template>
441
442<!-- Implementation: read(QDomElement) -->
443
444 <xsl:template name="read-impl-qdom-load-attributes">
445 <xsl:param name="node"/>
446
447 <xsl:if test="$node/xs:attribute">
448 <xsl:text>&endl;</xsl:text>
449
450 <xsl:for-each select="$node/xs:attribute">
451 <xsl:variable name="camel-case-name">
452 <xsl:call-template name="camel-case">
453 <xsl:with-param name="text" select="@name"/>
454 </xsl:call-template>
455 </xsl:variable>
456 <xsl:variable name="cap-name">
457 <xsl:call-template name="cap-first-char">
458 <xsl:with-param name="text" select="$camel-case-name"/>
459 </xsl:call-template>
460 </xsl:variable>
461 <xsl:variable name="qstring-func">
462 <xsl:call-template name="xs-type-from-qstring-func">
463 <xsl:with-param name="xs-type" select="@type"/>
464 <xsl:with-param name="val">
465 <xsl:text>node.attribute(</xsl:text>
466 <xsl:call-template name="string-constant">
467 <xsl:with-param name="literal" select="@name"/>
468 </xsl:call-template>
469 <xsl:text>)</xsl:text>
470 </xsl:with-param>
471 </xsl:call-template>
472 </xsl:variable>
473
474 <xsl:text> if (node.hasAttribute(</xsl:text>
475 <xsl:call-template name="string-constant">
476 <xsl:with-param name="literal" select="@name"/>
477 </xsl:call-template>
478 <xsl:text>))&endl;</xsl:text>
479 <xsl:text> setAttribute</xsl:text>
480 <xsl:value-of select="$cap-name"/>
481 <xsl:text>(</xsl:text>
482 <xsl:value-of select="$qstring-func"/>
483 <xsl:text>);&endl;</xsl:text>
484 </xsl:for-each>
485 </xsl:if>
486 </xsl:template>
487
488 <xsl:template name="read-impl-qdom-load-child-element">
489 <xsl:param name="node"/>
490
491 <xsl:for-each select="$node/xs:element">
492 <xsl:variable name="camel-case-name">
493 <xsl:call-template name="camel-case">
494 <xsl:with-param name="text" select="@name"/>
495 </xsl:call-template>
496 </xsl:variable>
497 <xsl:variable name="cap-name">
498 <xsl:call-template name="cap-first-char">
499 <xsl:with-param name="text" select="$camel-case-name"/>
500 </xsl:call-template>
501 </xsl:variable>
502 <xsl:variable name="xs-type-cat">
503 <xsl:call-template name="xs-type-category">
504 <xsl:with-param name="xs-type" select="@type"/>
505 </xsl:call-template>
506 </xsl:variable>
507 <xsl:variable name="lower-name">
508 <xsl:call-template name="lower-text">
509 <xsl:with-param name="text" select="@name"/>
510 </xsl:call-template>
511 </xsl:variable>
512 <xsl:variable name="array" select="@maxOccurs = 'unbounded'"/>
513
514 <xsl:text> if (tag == </xsl:text>
515 <xsl:call-template name="string-constant">
516 <xsl:with-param name="literal" select="$lower-name"/>
517 </xsl:call-template>
518 <xsl:text>) {&endl;</xsl:text>
519
520 <xsl:choose>
521 <xsl:when test="not($array) and $xs-type-cat = 'value'">
522 <xsl:variable name="qstring-func">
523 <xsl:call-template name="xs-type-from-qstring-func">
524 <xsl:with-param name="xs-type" select="@type"/>
525 <xsl:with-param name="val" select="'e.text()'"/>
526 </xsl:call-template>
527 </xsl:variable>
528
529 <xsl:text> setElement</xsl:text>
530 <xsl:value-of select="$cap-name"/>
531 <xsl:text>(</xsl:text>
532 <xsl:value-of select="$qstring-func"/>
533 <xsl:text>);&endl;</xsl:text>
534 </xsl:when>
535 <xsl:when test="@maxOccurs='unbounded' and $xs-type-cat = 'value'">
536 <xsl:variable name="qstring-func">
537 <xsl:call-template name="xs-type-from-qstring-func">
538 <xsl:with-param name="xs-type" select="@type"/>
539 <xsl:with-param name="val" select="'e.text()'"/>
540 </xsl:call-template>
541 </xsl:variable>
542
543 <xsl:text> m_</xsl:text>
544 <xsl:value-of select="$camel-case-name"/>
545 <xsl:text>.append(</xsl:text>
546 <xsl:value-of select="$qstring-func"/>
547 <xsl:text>);&endl;</xsl:text>
548 </xsl:when>
549 <xsl:when test="not(@maxOccurs='unbounded') and $xs-type-cat = 'pointer'">
550 <xsl:text> Dom</xsl:text>
551 <xsl:value-of select="@type"/>
552 <xsl:text> *v = new Dom</xsl:text>
553 <xsl:value-of select="@type"/>
554 <xsl:text>();&endl;</xsl:text>
555 <xsl:text> v->read(e);&endl;</xsl:text>
556 <xsl:text> setElement</xsl:text>
557 <xsl:value-of select="$cap-name"/>
558 <xsl:text>(v);&endl;</xsl:text>
559 </xsl:when>
560 <xsl:when test="@maxOccurs='unbounded' and $xs-type-cat = 'pointer'">
561 <xsl:text> Dom</xsl:text>
562 <xsl:value-of select="@type"/>
563 <xsl:text> *v = new Dom</xsl:text>
564 <xsl:value-of select="@type"/>
565 <xsl:text>();&endl;</xsl:text>
566 <xsl:text> v->read(e);&endl;</xsl:text>
567 <xsl:text> m_</xsl:text>
568 <xsl:value-of select="$camel-case-name"/>
569 <xsl:text>.append(v);&endl;</xsl:text>
570 </xsl:when>
571 </xsl:choose>
572 <xsl:text> continue;&endl;</xsl:text>
573 <xsl:text> }&endl;</xsl:text>
574 </xsl:for-each>
575 </xsl:template>
576
577 <xsl:template name="read-impl-qdom">
578 <xsl:param name="node"/>
579 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
580
581 <xsl:text>#ifdef QUILOADER_QDOM_READ&endl;</xsl:text>
582
583 <xsl:text>void </xsl:text>
584 <xsl:value-of select="$name"/>
585 <xsl:text>::read(const QDomElement &amp;node)&endl;</xsl:text>
586
587 <xsl:text>{</xsl:text>
588
589 <xsl:call-template name="read-impl-qdom-load-attributes">
590 <xsl:with-param name="node" select="$node"/>
591 </xsl:call-template>
592
593 <xsl:text>&endl;</xsl:text>
594
595 <xsl:text> for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {&endl;</xsl:text>
596 <xsl:text> if (!n.isElement())&endl;</xsl:text>
597 <xsl:text> continue;&endl;</xsl:text>
598 <xsl:text> QDomElement e = n.toElement();&endl;</xsl:text>
599 <xsl:text> QString tag = e.tagName().toLower();&endl;</xsl:text>
600
601 <xsl:for-each select="$node//xs:sequence | $node//xs:choice | $node//xs:all">
602 <xsl:call-template name="read-impl-qdom-load-child-element">
603 <xsl:with-param name="node" select="."/>
604 </xsl:call-template>
605 </xsl:for-each>
606
607 <xsl:text> }&endl;</xsl:text>
608
609 <xsl:choose>
610 <xsl:when test="$node[@mixed='true']">
611 <xsl:text> m_text = QLatin1String("");&endl;</xsl:text>
612 </xsl:when>
613 <xsl:otherwise>
614 <xsl:text> m_text.clear();&endl;</xsl:text>
615 </xsl:otherwise>
616 </xsl:choose>
617
618 <xsl:text> for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {&endl;</xsl:text>
619 <xsl:text> if (child.isText())&endl;</xsl:text>
620 <xsl:text> m_text.append(child.nodeValue());&endl;</xsl:text>
621 <xsl:text> }&endl;</xsl:text>
622
623 <xsl:text>}&endl;</xsl:text>
624 <xsl:text>#endif&endl;</xsl:text>
625 <xsl:text>&endl;</xsl:text>
626 </xsl:template>
627<!-- Implementation: write() -->
628
629 <xsl:template name="write-impl-save-attributes">
630 <xsl:param name="node"/>
631
632 <xsl:for-each select="$node/xs:attribute">
633 <xsl:variable name="camel-case-name">
634 <xsl:call-template name="camel-case">
635 <xsl:with-param name="text" select="@name"/>
636 </xsl:call-template>
637 </xsl:variable>
638 <xsl:variable name="cap-name">
639 <xsl:call-template name="cap-first-char">
640 <xsl:with-param name="text" select="$camel-case-name"/>
641 </xsl:call-template>
642 </xsl:variable>
643 <xsl:variable name="lower-name">
644 <xsl:call-template name="lower-text">
645 <xsl:with-param name="text" select="@name"/>
646 </xsl:call-template>
647 </xsl:variable>
648
649 <xsl:text> if (hasAttribute</xsl:text>
650 <xsl:value-of select="$cap-name"/>
651 <xsl:text>())&endl;</xsl:text>
652 <xsl:text> writer.writeAttribute(</xsl:text>
653 <xsl:call-template name="string-constant">
654 <xsl:with-param name="literal" select="$lower-name"/>
655 </xsl:call-template>
656
657 <xsl:text>, </xsl:text>
658
659 <xsl:call-template name="xs-type-to-qstring-func">
660 <xsl:with-param name="xs-type" select="@type"/>
661 <xsl:with-param name="val" select="concat('attribute', $cap-name, '()')"/>
662 </xsl:call-template>
663
664 <xsl:text>);&endl;&endl;</xsl:text>
665 </xsl:for-each>
666 </xsl:template>
667
668 <xsl:template name="write-impl-save-choice-child-element">
669 <xsl:param name="node"/>
670 <xsl:variable name="have-kind" select="name($node) = 'xs:choice'"/>
671
672 <xsl:text> switch (kind()) {&endl;</xsl:text>
673
674 <xsl:for-each select="$node/xs:element">
675 <xsl:variable name="camel-case-name">
676 <xsl:call-template name="camel-case">
677 <xsl:with-param name="text" select="@name"/>
678 </xsl:call-template>
679 </xsl:variable>
680 <xsl:variable name="cap-name">
681 <xsl:call-template name="cap-first-char">
682 <xsl:with-param name="text" select="$camel-case-name"/>
683 </xsl:call-template>
684 </xsl:variable>
685 <xsl:variable name="lower-name">
686 <xsl:call-template name="lower-text">
687 <xsl:with-param name="text" select="@name"/>
688 </xsl:call-template>
689 </xsl:variable>
690 <xsl:variable name="xs-type-cat">
691 <xsl:call-template name="xs-type-category">
692 <xsl:with-param name="xs-type" select="@type"/>
693 </xsl:call-template>
694 </xsl:variable>
695
696 <xsl:text> case </xsl:text>
697 <xsl:value-of select="$cap-name"/>
698 <xsl:text>: {&endl;</xsl:text>
699 <xsl:choose>
700 <xsl:when test="$xs-type-cat = 'value'">
701 <xsl:variable name="qstring-func">
702 <xsl:call-template name="xs-type-to-qstring-func">
703 <xsl:with-param name="xs-type" select="@type"/>
704 <xsl:with-param name="val" select="concat('element', $cap-name, '()')"/>
705 </xsl:call-template>
706 </xsl:variable>
707
708 <xsl:text> writer.writeTextElement(</xsl:text>
709 <xsl:call-template name="string-constant">
710 <xsl:with-param name="literal" select="$camel-case-name"/>
711 </xsl:call-template>
712 <xsl:text>, </xsl:text>
713 <xsl:value-of select="$qstring-func"/>
714 <xsl:text>);&endl;</xsl:text>
715 </xsl:when>
716 <xsl:when test="$xs-type-cat = 'pointer'">
717 <xsl:variable name="cpp-return-type">
718 <xsl:call-template name="xs-type-to-cpp-return-type">
719 <xsl:with-param name="xs-type" select="@type"/>
720 </xsl:call-template>
721 </xsl:variable>
722
723 <xsl:text> </xsl:text>
724 <xsl:value-of select="$cpp-return-type"/>
725 <xsl:text> v = element</xsl:text>
726 <xsl:value-of select="$cap-name"/>
727 <xsl:text>();&endl;</xsl:text>
728 <xsl:text> if (v != 0) {&endl;</xsl:text>
729 <xsl:text> v->write(writer, </xsl:text>
730 <xsl:call-template name="string-constant">
731 <xsl:with-param name="literal" select="$lower-name"/>
732 </xsl:call-template>
733 <xsl:text>);&endl;</xsl:text>
734 <xsl:text> }&endl;</xsl:text>
735 </xsl:when>
736 </xsl:choose>
737 <xsl:text> break;&endl;</xsl:text>
738 <xsl:text> }&endl;</xsl:text>
739 </xsl:for-each>
740
741 <xsl:text> default:&endl;</xsl:text>
742 <xsl:text> break;&endl;</xsl:text>
743 <xsl:text> }&endl;</xsl:text>
744 </xsl:template>
745
746 <xsl:template name="write-impl-save-sequence-child-element">
747 <xsl:param name="node"/>
748 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
749 <xsl:for-each select="$node/xs:element">
750 <xsl:variable name="camel-case-name">
751 <xsl:call-template name="camel-case">
752 <xsl:with-param name="text" select="@name"/>
753 </xsl:call-template>
754 </xsl:variable>
755 <xsl:variable name="cap-name">
756 <xsl:call-template name="cap-first-char">
757 <xsl:with-param name="text" select="$camel-case-name"/>
758 </xsl:call-template>
759 </xsl:variable>
760 <xsl:variable name="lower-name">
761 <xsl:call-template name="lower-text">
762 <xsl:with-param name="text" select="@name"/>
763 </xsl:call-template>
764 </xsl:variable>
765 <xsl:variable name="xs-type-cat">
766 <xsl:call-template name="xs-type-category">
767 <xsl:with-param name="xs-type" select="@type"/>
768 </xsl:call-template>
769 </xsl:variable>
770 <xsl:variable name="cpp-return-type">
771 <xsl:call-template name="xs-type-to-cpp-return-type">
772 <xsl:with-param name="xs-type" select="@type"/>
773 </xsl:call-template>
774 </xsl:variable>
775
776 <xsl:choose>
777 <xsl:when test="@maxOccurs='unbounded'">
778 <xsl:text> for (int i = 0; i &lt; m_</xsl:text>
779 <xsl:value-of select="$camel-case-name"/>
780 <xsl:text>.size(); ++i) {&endl;</xsl:text>
781 <xsl:text> </xsl:text>
782 <xsl:value-of select="$cpp-return-type"/>
783 <xsl:text> v = m_</xsl:text>
784 <xsl:value-of select="$camel-case-name"/>
785 <xsl:text>[i];&endl;</xsl:text>
786 <xsl:choose>
787 <xsl:when test="$xs-type-cat = 'pointer'">
788 <xsl:text> v->write(writer, </xsl:text>
789 <xsl:call-template name="string-constant">
790 <xsl:with-param name="literal" select="$lower-name"/>
791 </xsl:call-template>
792 <xsl:text>);&endl;</xsl:text>
793 </xsl:when>
794 <xsl:otherwise>
795 <xsl:variable name="qstring-func">
796 <xsl:call-template name="xs-type-to-qstring-func">
797 <xsl:with-param name="xs-type" select="@type"/>
798 <xsl:with-param name="val" select="'v'"/>
799 </xsl:call-template>
800 </xsl:variable>
801
802 <xsl:text> writer.writeTextElement(</xsl:text>
803 <xsl:call-template name="string-constant">
804 <xsl:with-param name="literal" select="$lower-name"/>
805 </xsl:call-template>
806 <xsl:text>, </xsl:text>
807 <xsl:value-of select="$qstring-func"/>
808 <xsl:text>);&endl;</xsl:text>
809 </xsl:otherwise>
810 </xsl:choose>
811 <xsl:text> }&endl;</xsl:text>
812 </xsl:when>
813 <xsl:otherwise>
814 <xsl:text> if (m_children &amp; </xsl:text>
815 <xsl:value-of select="$cap-name"/>
816 <xsl:text>) {&endl;</xsl:text>
817 <xsl:choose>
818 <xsl:when test="$xs-type-cat = 'pointer'">
819 <xsl:text> m_</xsl:text>
820 <xsl:value-of select="$camel-case-name"/>
821 <xsl:text>->write(writer, </xsl:text>
822 <xsl:call-template name="string-constant">
823 <xsl:with-param name="literal" select="$lower-name"/>
824 </xsl:call-template>
825 <xsl:text>);&endl;</xsl:text>
826 </xsl:when>
827 <xsl:otherwise>
828 <xsl:variable name="qstring-func">
829 <xsl:call-template name="xs-type-to-qstring-func">
830 <xsl:with-param name="xs-type" select="@type"/>
831 <xsl:with-param name="val" select="concat('m_', $camel-case-name)"/>
832 </xsl:call-template>
833 </xsl:variable>
834 <xsl:text> writer.writeTextElement(</xsl:text>
835 <xsl:call-template name="string-constant">
836 <xsl:with-param name="literal" select="$lower-name"/>
837 </xsl:call-template>
838 <xsl:text>, </xsl:text>
839 <xsl:value-of select="$qstring-func"/>
840 <xsl:text>);&endl;</xsl:text>
841 </xsl:otherwise>
842 </xsl:choose>
843 <xsl:text> }&endl;&endl;</xsl:text>
844 </xsl:otherwise>
845 </xsl:choose>
846 </xsl:for-each>
847 </xsl:template>
848
849 <xsl:template name="write-impl">
850 <xsl:param name="node"/>
851 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
852 <xsl:variable name="lower-name">
853 <xsl:call-template name="lower-text">
854 <xsl:with-param name="text" select="@name"/>
855 </xsl:call-template>
856 </xsl:variable>
857
858 <xsl:text>void </xsl:text>
859 <xsl:value-of select="$name"/>
860 <xsl:text>::write(QXmlStreamWriter &amp;writer, const QString &amp;tagName) const&endl;</xsl:text>
861 <xsl:text>{&endl;</xsl:text>
862
863 <xsl:text> writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("</xsl:text>
864 <xsl:value-of select="$lower-name"/>
865 <xsl:text>") : tagName.toLower());&endl;&endl;</xsl:text>
866
867 <xsl:call-template name="write-impl-save-attributes">
868 <xsl:with-param name="node" select="$node"/>
869 </xsl:call-template>
870
871 <xsl:for-each select="$node//xs:choice">
872 <xsl:call-template name="write-impl-save-choice-child-element">
873 <xsl:with-param name="node" select="."/>
874 </xsl:call-template>
875 </xsl:for-each>
876
877 <xsl:for-each select="$node//xs:sequence | $node//xs:all">
878 <xsl:call-template name="write-impl-save-sequence-child-element">
879 <xsl:with-param name="node" select="."/>
880 </xsl:call-template>
881 </xsl:for-each>
882
883 <xsl:text> if (!m_text.isEmpty())&endl;</xsl:text>
884 <xsl:text> writer.writeCharacters(m_text);&endl;&endl;</xsl:text>
885
886 <xsl:text> writer.writeEndElement();&endl;</xsl:text>
887 <xsl:text>}&endl;&endl;</xsl:text>
888 </xsl:template>
889
890<!-- Implementation: child element setters -->
891
892 <xsl:template name="child-setter-impl-helper">
893 <xsl:param name="node"/>
894 <xsl:param name="name"/>
895 <xsl:variable name="make-kind-enum" select="name($node)='xs:choice'"/>
896 <xsl:variable name="isChoice" select="name($node)='xs:choice'"/>
897
898 <xsl:for-each select="$node/xs:element">
899 <xsl:variable name="array" select="@maxOccurs = 'unbounded'"/>
900 <xsl:variable name="camel-case-name">
901 <xsl:call-template name="camel-case">
902 <xsl:with-param name="text" select="@name"/>
903 </xsl:call-template>
904 </xsl:variable>
905 <xsl:variable name="cap-name">
906 <xsl:call-template name="cap-first-char">
907 <xsl:with-param name="text" select="$camel-case-name"/>
908 </xsl:call-template>
909 </xsl:variable>
910 <xsl:variable name="return-cpp-type">
911 <xsl:call-template name="xs-type-to-cpp-return-type">
912 <xsl:with-param name="xs-type" select="@type"/>
913 <xsl:with-param name="array" select="$array"/>
914 </xsl:call-template>
915 </xsl:variable>
916 <xsl:variable name="argument-cpp-type">
917 <xsl:call-template name="xs-type-to-cpp-argument-type">
918 <xsl:with-param name="xs-type" select="@type"/>
919 <xsl:with-param name="array" select="$array"/>
920 </xsl:call-template>
921 </xsl:variable>
922 <xsl:variable name="xs-type-cat">
923 <xsl:call-template name="xs-type-category">
924 <xsl:with-param name="xs-type" select="@type"/>
925 <xsl:with-param name="array" select="$array"/>
926 </xsl:call-template>
927 </xsl:variable>
928
929 <xsl:if test="$xs-type-cat = 'pointer'">
930 <xsl:value-of select="$return-cpp-type"/>
931 <xsl:text> </xsl:text>
932 <xsl:value-of select="$name"/>
933 <xsl:text>::takeElement</xsl:text>
934 <xsl:value-of select="$cap-name"/>
935 <xsl:text>() &endl;{&endl;</xsl:text>
936 <xsl:text> </xsl:text>
937 <xsl:value-of select="$return-cpp-type"/>
938 <xsl:text> a = m_</xsl:text>
939 <xsl:value-of select="$camel-case-name"/>
940 <xsl:text>;&endl;</xsl:text>
941 <xsl:text> m_</xsl:text>
942 <xsl:value-of select="$camel-case-name"/>
943 <xsl:text> = 0;&endl;</xsl:text>
944 <xsl:if test="not($isChoice)">
945 <xsl:text> m_children ^= </xsl:text>
946 <xsl:value-of select="$cap-name"/>
947 <xsl:text>;&endl;</xsl:text>
948 </xsl:if>
949 <xsl:text> return a;&endl;</xsl:text>
950 <xsl:text>}&endl;&endl;</xsl:text>
951 </xsl:if>
952
953 <xsl:text>void </xsl:text>
954 <xsl:value-of select="$name"/>
955 <xsl:text>::setElement</xsl:text>
956 <xsl:value-of select="$cap-name"/>
957 <xsl:text>(</xsl:text>
958 <xsl:value-of select="$argument-cpp-type"/>
959 <xsl:text> a)&endl;</xsl:text>
960 <xsl:text>{&endl;</xsl:text>
961 <xsl:choose>
962 <xsl:when test="$make-kind-enum">
963 <xsl:text> clear(false);&endl;</xsl:text>
964 <xsl:text> m_kind = </xsl:text>
965 <xsl:value-of select="$cap-name"/>
966 <xsl:text>;&endl;</xsl:text>
967 </xsl:when>
968 <xsl:when test="$xs-type-cat = 'pointer'">
969 <xsl:text> delete </xsl:text>
970 <xsl:text>m_</xsl:text>
971 <xsl:value-of select="$camel-case-name"/>
972 <xsl:text>;&endl;</xsl:text>
973 </xsl:when>
974 </xsl:choose>
975 <xsl:if test="not($isChoice)">
976 <xsl:text> m_children |= </xsl:text>
977 <xsl:value-of select="$cap-name"/>
978 <xsl:text>;&endl;</xsl:text>
979 </xsl:if>
980 <xsl:text> m_</xsl:text>
981 <xsl:value-of select="$camel-case-name"/>
982 <xsl:text> = a;&endl;</xsl:text>
983 <xsl:text>}&endl;&endl;</xsl:text>
984 </xsl:for-each>
985 </xsl:template>
986
987 <xsl:template name="child-setter-impl">
988 <xsl:param name="node"/>
989 <xsl:variable name="name" select="concat('Dom', $node/@name)"/>
990
991 <xsl:for-each select="$node/xs:sequence | $node/xs:choice | $node/xs:all">
992 <xsl:call-template name="child-setter-impl-helper">
993 <xsl:with-param name="node" select="."/>
994 <xsl:with-param name="name" select="$name"/>
995 </xsl:call-template>
996 </xsl:for-each>
997 </xsl:template>
998
999 <xsl:template name="child-clear-impl">
1000 <xsl:param name="node"/>
1001
1002 <xsl:variable name="name" select="concat('Dom', @name)"/>
1003 <xsl:for-each select="$node/xs:sequence | $node/xs:choice | $node/xs:all">
1004 <xsl:variable name="isChoice" select="name()='xs:choice'"/>
1005 <xsl:variable name="make-child-enum" select="boolean(xs:sequence) and not(@maxOccurs='unbounded')"/>
1006
1007 <xsl:for-each select="xs:element">
1008 <xsl:if test="not($isChoice) and not(@maxOccurs='unbounded')">
1009 <xsl:variable name="camel-case-name">
1010 <xsl:call-template name="camel-case">
1011 <xsl:with-param name="text" select="@name"/>
1012 </xsl:call-template>
1013 </xsl:variable>
1014 <xsl:variable name="cap-name">
1015 <xsl:call-template name="cap-first-char">
1016 <xsl:with-param name="text" select="$camel-case-name"/>
1017 </xsl:call-template>
1018 </xsl:variable>
1019 <xsl:variable name="xs-type-cat">
1020 <xsl:call-template name="xs-type-category">
1021 <xsl:with-param name="xs-type" select="@type"/>
1022 <xsl:with-param name="array" select="@maxOccurs='unbounded'"/>
1023 </xsl:call-template>
1024 </xsl:variable>
1025
1026 <xsl:text>void </xsl:text>
1027 <xsl:value-of select="$name"/>
1028 <xsl:text>::clearElement</xsl:text>
1029 <xsl:value-of select="$cap-name"/>
1030 <xsl:text>()&endl;</xsl:text>
1031 <xsl:text>{&endl;</xsl:text>
1032 <xsl:if test="$xs-type-cat = 'pointer'">
1033 <xsl:text> delete m_</xsl:text>
1034 <xsl:value-of select="$camel-case-name"/>
1035 <xsl:text>;&endl;</xsl:text>
1036 <xsl:text> m_</xsl:text>
1037 <xsl:value-of select="$camel-case-name"/>
1038 <xsl:text> = 0;&endl;</xsl:text>
1039 </xsl:if>
1040 <xsl:text> m_children &amp;= ~</xsl:text>
1041 <xsl:value-of select="$cap-name"/>
1042 <xsl:text>;&endl;</xsl:text>
1043 <xsl:text>}&endl;&endl;</xsl:text>
1044 </xsl:if>
1045 </xsl:for-each>
1046 </xsl:for-each>
1047 </xsl:template>
1048
1049
1050<!-- Implementation -->
1051
1052 <xsl:template name="class-implementation">
1053 <xsl:param name="node"/>
1054
1055 <xsl:call-template name="clear-impl">
1056 <xsl:with-param name="node" select="$node"/>
1057 </xsl:call-template>
1058
1059 <xsl:call-template name="ctor-impl">
1060 <xsl:with-param name="node" select="$node"/>
1061 </xsl:call-template>
1062
1063 <xsl:call-template name="dtor-impl">
1064 <xsl:with-param name="node" select="$node"/>
1065 </xsl:call-template>
1066
1067 <xsl:call-template name="read-impl">
1068 <xsl:with-param name="node" select="$node"/>
1069 </xsl:call-template>
1070
1071 <xsl:call-template name="read-impl-qdom">
1072 <xsl:with-param name="node" select="$node"/>
1073 </xsl:call-template>
1074
1075 <xsl:call-template name="write-impl">
1076 <xsl:with-param name="node" select="$node"/>
1077 </xsl:call-template>
1078
1079 <xsl:call-template name="child-setter-impl">
1080 <xsl:with-param name="node" select="$node"/>
1081 </xsl:call-template>
1082
1083 <xsl:call-template name="child-clear-impl">
1084 <xsl:with-param name="node" select="$node"/>
1085 </xsl:call-template>
1086
1087 </xsl:template>
1088
1089<!-- Root -->
1090
1091 <xsl:template match="xs:schema">
1092
1093<xsl:text>/****************************************************************************
1094**
1095** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
1096** All rights reserved.
1097** Contact: Nokia Corporation ([email protected])
1098**
1099** This file is part of the tools applications of the Qt Toolkit.
1100**
1101** $QT_BEGIN_LICENSE:LGPL$
1102** Commercial Usage
1103** Licensees holding valid Qt Commercial licenses may use this file in
1104** accordance with the Qt Commercial License Agreement provided with the
1105** Software or, alternatively, in accordance with the terms contained in
1106** a written agreement between you and Nokia.
1107**
1108** GNU Lesser General Public License Usage
1109** Alternatively, this file may be used under the terms of the GNU Lesser
1110** General Public License version 2.1 as published by the Free Software
1111** Foundation and appearing in the file LICENSE.LGPL included in the
1112** packaging of this file. Please review the following information to
1113** ensure the GNU Lesser General Public License version 2.1 requirements
1114** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
1115**
1116** In addition, as a special exception, Nokia gives you certain additional
1117** rights. These rights are described in the Nokia Qt LGPL Exception
1118** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
1119**
1120** GNU General Public License Usage
1121** Alternatively, this file may be used under the terms of the GNU
1122** General Public License version 3.0 as published by the Free Software
1123** Foundation and appearing in the file LICENSE.GPL included in the
1124** packaging of this file. Please review the following information to
1125** ensure the GNU General Public License version 3.0 requirements will be
1126** met: http://www.gnu.org/copyleft/gpl.html.
1127**
1128** If you have questions regarding the use of this file, please contact
1129** Nokia at [email protected].
1130** $QT_END_LICENSE$
1131**
1132****************************************************************************/
1133</xsl:text>
1134 <xsl:text>#include "ui4_p.h"&endl;</xsl:text>
1135 <xsl:text>&endl;</xsl:text>
1136 <xsl:text>#ifdef QUILOADER_QDOM_READ&endl;</xsl:text>
1137 <xsl:text>#include &lt;QtXml/QDomElement&gt;&endl;</xsl:text>
1138 <xsl:text>#endif&endl;</xsl:text>
1139 <xsl:text>&endl;</xsl:text>
1140 <xsl:text>QT_BEGIN_NAMESPACE&endl;</xsl:text>
1141
1142 <xsl:text>#ifdef QFORMINTERNAL_NAMESPACE&endl;</xsl:text>
1143 <xsl:text>using namespace QFormInternal;&endl;</xsl:text>
1144 <xsl:text>#endif&endl;</xsl:text>
1145 <xsl:text>&endl;</xsl:text>
1146
1147 <xsl:text>/*******************************************************************************&endl;</xsl:text>
1148 <xsl:text>** Implementations&endl;</xsl:text>
1149 <xsl:text>*/&endl;&endl;</xsl:text>
1150
1151 <xsl:for-each select="xs:complexType">
1152 <xsl:call-template name="class-implementation">
1153 <xsl:with-param name="node" select="."/>
1154 </xsl:call-template>
1155 </xsl:for-each>
1156 <xsl:text>QT_END_NAMESPACE&endl;</xsl:text>
1157
1158 <xsl:text>&endl;</xsl:text>
1159 </xsl:template>
1160
1161</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.