summaryrefslogtreecommitdiffstats
path: root/documentation/yocto-project-qs
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/yocto-project-qs')
-rwxr-xr-xdocumentation/yocto-project-qs/figures/building-an-image.pngbin0 -> 14891 bytes
-rw-r--r--documentation/yocto-project-qs/figures/using-a-pre-built-image.pngbin0 -> 12733 bytes
-rw-r--r--documentation/yocto-project-qs/figures/yocto-environment.pngbin0 -> 73095 bytes
-rwxr-xr-xdocumentation/yocto-project-qs/figures/yocto-project-transp.pngbin0 -> 8626 bytes
-rw-r--r--documentation/yocto-project-qs/qs-style.css983
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs-customization.xsl15
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl25
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs-titlepage.xsl3820
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs.xml968
9 files changed, 5811 insertions, 0 deletions
diff --git a/documentation/yocto-project-qs/figures/building-an-image.png b/documentation/yocto-project-qs/figures/building-an-image.png
new file mode 100755
index 0000000000..1fbea5ab00
--- /dev/null
+++ b/documentation/yocto-project-qs/figures/building-an-image.png
Binary files differ
diff --git a/documentation/yocto-project-qs/figures/using-a-pre-built-image.png b/documentation/yocto-project-qs/figures/using-a-pre-built-image.png
new file mode 100644
index 0000000000..b03130d123
--- /dev/null
+++ b/documentation/yocto-project-qs/figures/using-a-pre-built-image.png
Binary files differ
diff --git a/documentation/yocto-project-qs/figures/yocto-environment.png b/documentation/yocto-project-qs/figures/yocto-environment.png
new file mode 100644
index 0000000000..82b7a55a35
--- /dev/null
+++ b/documentation/yocto-project-qs/figures/yocto-environment.png
Binary files differ
diff --git a/documentation/yocto-project-qs/figures/yocto-project-transp.png b/documentation/yocto-project-qs/figures/yocto-project-transp.png
new file mode 100755
index 0000000000..31d2b147fd
--- /dev/null
+++ b/documentation/yocto-project-qs/figures/yocto-project-transp.png
Binary files differ
diff --git a/documentation/yocto-project-qs/qs-style.css b/documentation/yocto-project-qs/qs-style.css
new file mode 100644
index 0000000000..235c85a1ba
--- /dev/null
+++ b/documentation/yocto-project-qs/qs-style.css
@@ -0,0 +1,983 @@
1/*
2 Generic XHTML / DocBook XHTML CSS Stylesheet.
3
4 Browser wrangling and typographic design by
5 Oyvind Kolas / pippin@gimp.org
6
7 Customised for Poky by
8 Matthew Allum / mallum@o-hand.com
9
10 Thanks to:
11 Liam R. E. Quin
12 William Skaggs
13 Jakub Steiner
14
15 Structure
16 ---------
17
18 The stylesheet is divided into the following sections:
19
20 Positioning
21 Margins, paddings, width, font-size, clearing.
22 Decorations
23 Borders, style
24 Colors
25 Colors
26 Graphics
27 Graphical backgrounds
28 Nasty IE tweaks
29 Workarounds needed to make it work in internet explorer,
30 currently makes the stylesheet non validating, but up until
31 this point it is validating.
32 Mozilla extensions
33 Transparency for footer
34 Rounded corners on boxes
35
36*/
37
38
39 /*************** /
40 / Positioning /
41/ ***************/
42
43body {
44 font-family: Verdana, Sans, sans-serif;
45
46 min-width: 640px;
47 width: 80%;
48 margin: 0em auto;
49 padding: 2em 5em 5em 5em;
50 color: #333;
51}
52
53h1,h2,h3,h4,h5,h6,h7 {
54 font-family: Arial, Sans;
55 color: #00557D;
56 clear: both;
57}
58
59h1 {
60 font-size: 2em;
61 text-align: left;
62 padding: 0em 0em 0em 0em;
63 margin: 2em 0em 0em 0em;
64}
65
66h2.subtitle {
67 margin: 0.10em 0em 3.0em 0em;
68 padding: 0em 0em 0em 0em;
69 font-size: 1.8em;
70 padding-left: 20%;
71 font-weight: normal;
72 font-style: italic;
73}
74
75h2 {
76 margin: 2em 0em 0.66em 0em;
77 padding: 0.5em 0em 0em 0em;
78 font-size: 1.5em;
79 font-weight: bold;
80}
81
82h3.subtitle {
83 margin: 0em 0em 1em 0em;
84 padding: 0em 0em 0em 0em;
85 font-size: 142.14%;
86 text-align: right;
87}
88
89h3 {
90 margin: 1em 0em 0.5em 0em;
91 padding: 1em 0em 0em 0em;
92 font-size: 140%;
93 font-weight: bold;
94}
95
96h4 {
97 margin: 1em 0em 0.5em 0em;
98 padding: 1em 0em 0em 0em;
99 font-size: 120%;
100 font-weight: bold;
101}
102
103h5 {
104 margin: 1em 0em 0.5em 0em;
105 padding: 1em 0em 0em 0em;
106 font-size: 110%;
107 font-weight: bold;
108}
109
110h6 {
111 margin: 1em 0em 0em 0em;
112 padding: 1em 0em 0em 0em;
113 font-size: 110%;
114 font-weight: bold;
115}
116
117.authorgroup {
118 background-color: transparent;
119 background-repeat: no-repeat;
120 padding-top: 256px;
121 background-position: top;
122 margin-top: -256px;
123 padding-right: 50px;
124 margin-left: 50px;
125 text-align: center;
126 width: 600px;
127}
128
129h3.author {
130 margin: 0em 0me 0em 0em;
131 padding: 0em 0em 0em 0em;
132 font-weight: normal;
133 font-size: 100%;
134 color: #333;
135 clear: both;
136}
137
138.author tt.email {
139 font-size: 66%;
140}
141
142.titlepage hr {
143 width: 0em;
144 clear: both;
145}
146
147.revhistory {
148 padding-top: 2em;
149 clear: both;
150}
151
152.toc,
153.list-of-tables,
154.list-of-examples,
155.list-of-figures {
156 padding: 1.33em 0em 2.5em 0em;
157 color: #00557D;
158}
159
160.toc p,
161.list-of-tables p,
162.list-of-figures p,
163.list-of-examples p {
164 padding: 0em 0em 0em 0em;
165 padding: 0em 0em 0.3em;
166 margin: 1.5em 0em 0em 0em;
167}
168
169.toc p b,
170.list-of-tables p b,
171.list-of-figures p b,
172.list-of-examples p b{
173 font-size: 100.0%;
174 font-weight: bold;
175}
176
177.toc dl,
178.list-of-tables dl,
179.list-of-figures dl,
180.list-of-examples dl {
181 margin: 0em 0em 0.5em 0em;
182 padding: 0em 0em 0em 0em;
183}
184
185.toc dt {
186 margin: 0em 0em 0em 0em;
187 padding: 0em 0em 0em 0em;
188}
189
190.toc dd {
191 margin: 0em 0em 0em 2.6em;
192 padding: 0em 0em 0em 0em;
193}
194
195div.glossary dl,
196div.variablelist dl {
197}
198
199.glossary dl dt,
200.variablelist dl dt,
201.variablelist dl dt span.term {
202 font-weight: normal;
203 width: 20em;
204 text-align: right;
205}
206
207.variablelist dl dt {
208 margin-top: 0.5em;
209}
210
211.glossary dl dd,
212.variablelist dl dd {
213 margin-top: -1em;
214 margin-left: 25.5em;
215}
216
217.glossary dd p,
218.variablelist dd p {
219 margin-top: 0em;
220 margin-bottom: 1em;
221}
222
223
224div.calloutlist table td {
225 padding: 0em 0em 0em 0em;
226 margin: 0em 0em 0em 0em;
227}
228
229div.calloutlist table td p {
230 margin-top: 0em;
231 margin-bottom: 1em;
232}
233
234div p.copyright {
235 text-align: left;
236}
237
238div.legalnotice p.legalnotice-title {
239 margin-bottom: 0em;
240}
241
242p {
243 line-height: 1.5em;
244 margin-top: 0em;
245
246}
247
248dl {
249 padding-top: 0em;
250}
251
252hr {
253 border: solid 1px;
254}
255
256
257.mediaobject,
258.mediaobjectco {
259 text-align: center;
260}
261
262img {
263 border: none;
264}
265
266ul {
267 padding: 0em 0em 0em 1.5em;
268}
269
270ul li {
271 padding: 0em 0em 0em 0em;
272}
273
274ul li p {
275 text-align: left;
276}
277
278table {
279 width :100%;
280}
281
282th {
283 padding: 0.25em;
284 text-align: left;
285 font-weight: normal;
286 vertical-align: top;
287}
288
289td {
290 padding: 0.25em;
291 vertical-align: top;
292}
293
294p a[id] {
295 margin: 0px;
296 padding: 0px;
297 display: inline;
298 background-image: none;
299}
300
301a {
302 text-decoration: underline;
303 color: #444;
304}
305
306pre {
307 overflow: auto;
308}
309
310a:hover {
311 text-decoration: underline;
312 /*font-weight: bold;*/
313}
314
315/* This style defines how the permalink character
316 appears by itself and when hovered over with
317 the mouse. */
318
319[alt='Permalink'] { color: #eee; }
320[alt='Permalink']:hover { color: black; }
321
322
323div.informalfigure,
324div.informalexample,
325div.informaltable,
326div.figure,
327div.table,
328div.example {
329 margin: 1em 0em;
330 padding: 1em;
331 page-break-inside: avoid;
332}
333
334
335div.informalfigure p.title b,
336div.informalexample p.title b,
337div.informaltable p.title b,
338div.figure p.title b,
339div.example p.title b,
340div.table p.title b{
341 padding-top: 0em;
342 margin-top: 0em;
343 font-size: 100%;
344 font-weight: normal;
345}
346
347.mediaobject .caption,
348.mediaobject .caption p {
349 text-align: center;
350 font-size: 80%;
351 padding-top: 0.5em;
352 padding-bottom: 0.5em;
353}
354
355.epigraph {
356 padding-left: 55%;
357 margin-bottom: 1em;
358}
359
360.epigraph p {
361 text-align: left;
362}
363
364.epigraph .quote {
365 font-style: italic;
366}
367.epigraph .attribution {
368 font-style: normal;
369 text-align: right;
370}
371
372span.application {
373 font-style: italic;
374}
375
376.programlisting {
377 font-family: monospace;
378 font-size: 80%;
379 white-space: pre;
380 margin: 1.33em 0em;
381 padding: 1.33em;
382}
383
384.tip,
385.warning,
386.caution,
387.note {
388 margin-top: 1em;
389 margin-bottom: 1em;
390
391}
392
393/* force full width of table within div */
394.tip table,
395.warning table,
396.caution table,
397.note table {
398 border: none;
399 width: 100%;
400}
401
402
403.tip table th,
404.warning table th,
405.caution table th,
406.note table th {
407 padding: 0.8em 0.0em 0.0em 0.0em;
408 margin : 0em 0em 0em 0em;
409}
410
411.tip p,
412.warning p,
413.caution p,
414.note p {
415 margin-top: 0.5em;
416 margin-bottom: 0.5em;
417 padding-right: 1em;
418 text-align: left;
419}
420
421.acronym {
422 text-transform: uppercase;
423}
424
425b.keycap,
426.keycap {
427 padding: 0.09em 0.3em;
428 margin: 0em;
429}
430
431.itemizedlist li {
432 clear: none;
433}
434
435.filename {
436 font-size: medium;
437 font-family: Courier, monospace;
438}
439
440
441div.navheader, div.heading{
442 position: absolute;
443 left: 0em;
444 top: 0em;
445 width: 100%;
446 background-color: #cdf;
447 width: 100%;
448}
449
450div.navfooter, div.footing{
451 position: fixed;
452 left: 0em;
453 bottom: 0em;
454 background-color: #eee;
455 width: 100%;
456}
457
458
459div.navheader td,
460div.navfooter td {
461 font-size: 66%;
462}
463
464div.navheader table th {
465 /*font-family: Georgia, Times, serif;*/
466 /*font-size: x-large;*/
467 font-size: 80%;
468}
469
470div.navheader table {
471 border-left: 0em;
472 border-right: 0em;
473 border-top: 0em;
474 width: 100%;
475}
476
477div.navfooter table {
478 border-left: 0em;
479 border-right: 0em;
480 border-bottom: 0em;
481 width: 100%;
482}
483
484div.navheader table td a,
485div.navfooter table td a {
486 color: #777;
487 text-decoration: none;
488}
489
490/* normal text in the footer */
491div.navfooter table td {
492 color: black;
493}
494
495div.navheader table td a:visited,
496div.navfooter table td a:visited {
497 color: #444;
498}
499
500
501/* links in header and footer */
502div.navheader table td a:hover,
503div.navfooter table td a:hover {
504 text-decoration: underline;
505 background-color: transparent;
506 color: #33a;
507}
508
509div.navheader hr,
510div.navfooter hr {
511 display: none;
512}
513
514
515.qandaset tr.question td p {
516 margin: 0em 0em 1em 0em;
517 padding: 0em 0em 0em 0em;
518}
519
520.qandaset tr.answer td p {
521 margin: 0em 0em 1em 0em;
522 padding: 0em 0em 0em 0em;
523}
524.answer td {
525 padding-bottom: 1.5em;
526}
527
528.emphasis {
529 font-weight: bold;
530}
531
532
533 /************* /
534 / decorations /
535/ *************/
536
537.titlepage {
538}
539
540.part .title {
541}
542
543.subtitle {
544 border: none;
545}
546
547/*
548h1 {
549 border: none;
550}
551
552h2 {
553 border-top: solid 0.2em;
554 border-bottom: solid 0.06em;
555}
556
557h3 {
558 border-top: 0em;
559 border-bottom: solid 0.06em;
560}
561
562h4 {
563 border: 0em;
564 border-bottom: solid 0.06em;
565}
566
567h5 {
568 border: 0em;
569}
570*/
571
572.programlisting {
573 border: solid 1px;
574}
575
576div.figure,
577div.table,
578div.informalfigure,
579div.informaltable,
580div.informalexample,
581div.example {
582 border: 1px solid;
583}
584
585
586
587.tip,
588.warning,
589.caution,
590.note {
591 border: 1px solid;
592}
593
594.tip table th,
595.warning table th,
596.caution table th,
597.note table th {
598 border-bottom: 1px solid;
599}
600
601.question td {
602 border-top: 1px solid black;
603}
604
605.answer {
606}
607
608
609b.keycap,
610.keycap {
611 border: 1px solid;
612}
613
614
615div.navheader, div.heading{
616 border-bottom: 1px solid;
617}
618
619
620div.navfooter, div.footing{
621 border-top: 1px solid;
622}
623
624 /********* /
625 / colors /
626/ *********/
627
628body {
629 color: #333;
630 background: white;
631}
632
633a {
634 background: transparent;
635}
636
637a:hover {
638 background-color: #dedede;
639}
640
641
642h1,
643h2,
644h3,
645h4,
646h5,
647h6,
648h7,
649h8 {
650 background-color: transparent;
651}
652
653hr {
654 border-color: #aaa;
655}
656
657
658.tip, .warning, .caution, .note {
659 border-color: #fff;
660}
661
662
663.tip table th,
664.warning table th,
665.caution table th,
666.note table th {
667 border-bottom-color: #fff;
668}
669
670
671.warning {
672 background-color: #f0f0f2;
673}
674
675.caution {
676 background-color: #f0f0f2;
677}
678
679.tip {
680 background-color: #f0f0f2;
681}
682
683.note {
684 background-color: #f0f0f2;
685}
686
687.glossary dl dt,
688.variablelist dl dt,
689.variablelist dl dt span.term {
690 color: #044;
691}
692
693div.figure,
694div.table,
695div.example,
696div.informalfigure,
697div.informaltable,
698div.informalexample {
699 border-color: #aaa;
700}
701
702pre.programlisting {
703 color: black;
704 background-color: #fff;
705 border-color: #aaa;
706 border-width: 2px;
707}
708
709.guimenu,
710.guilabel,
711.guimenuitem {
712 background-color: #eee;
713}
714
715
716b.keycap,
717.keycap {
718 background-color: #eee;
719 border-color: #999;
720}
721
722
723div.navheader {
724 border-color: black;
725}
726
727
728div.navfooter {
729 border-color: black;
730}
731
732
733 /*********** /
734 / graphics /
735/ ***********/
736
737/*
738body {
739 background-image: url("images/body_bg.jpg");
740 background-attachment: fixed;
741}
742
743.navheader,
744.note,
745.tip {
746 background-image: url("images/note_bg.jpg");
747 background-attachment: fixed;
748}
749
750.warning,
751.caution {
752 background-image: url("images/warning_bg.jpg");
753 background-attachment: fixed;
754}
755
756.figure,
757.informalfigure,
758.example,
759.informalexample,
760.table,
761.informaltable {
762 background-image: url("images/figure_bg.jpg");
763 background-attachment: fixed;
764}
765
766*/
767h1,
768h2,
769h3,
770h4,
771h5,
772h6,
773h7{
774}
775
776/*
777Example of how to stick an image as part of the title.
778
779div.article .titlepage .title
780{
781 background-image: url("figures/white-on-black.png");
782 background-position: center;
783 background-repeat: repeat-x;
784}
785*/
786
787div.preface .titlepage .title,
788div.colophon .title,
789div.chapter .titlepage .title,
790div.article .titlepage .title
791{
792}
793
794div.section div.section .titlepage .title,
795div.sect2 .titlepage .title {
796 background: none;
797}
798
799
800h1.title {
801 background-color: transparent;
802 background-repeat: no-repeat;
803 height: 256px;
804 text-indent: -9000px;
805 overflow:hidden;
806}
807
808h2.subtitle {
809 background-color: transparent;
810 text-indent: -9000px;
811 overflow:hidden;
812 width: 0px;
813 display: none;
814}
815
816 /*************************************** /
817 / pippin.gimp.org specific alterations /
818/ ***************************************/
819
820/*
821div.heading, div.navheader {
822 color: #777;
823 font-size: 80%;
824 padding: 0;
825 margin: 0;
826 text-align: left;
827 position: absolute;
828 top: 0px;
829 left: 0px;
830 width: 100%;
831 height: 50px;
832 background: url('/gfx/heading_bg.png') transparent;
833 background-repeat: repeat-x;
834 background-attachment: fixed;
835 border: none;
836}
837
838div.heading a {
839 color: #444;
840}
841
842div.footing, div.navfooter {
843 border: none;
844 color: #ddd;
845 font-size: 80%;
846 text-align:right;
847
848 width: 100%;
849 padding-top: 10px;
850 position: absolute;
851 bottom: 0px;
852 left: 0px;
853
854 background: url('/gfx/footing_bg.png') transparent;
855}
856*/
857
858
859
860 /****************** /
861 / nasty ie tweaks /
862/ ******************/
863
864/*
865div.heading, div.navheader {
866 width:expression(document.body.clientWidth + "px");
867}
868
869div.footing, div.navfooter {
870 width:expression(document.body.clientWidth + "px");
871 margin-left:expression("-5em");
872}
873body {
874 padding:expression("4em 5em 0em 5em");
875}
876*/
877
878 /**************************************** /
879 / mozilla vendor specific css extensions /
880/ ****************************************/
881/*
882div.navfooter, div.footing{
883 -moz-opacity: 0.8em;
884}
885
886div.figure,
887div.table,
888div.informalfigure,
889div.informaltable,
890div.informalexample,
891div.example,
892.tip,
893.warning,
894.caution,
895.note {
896 -moz-border-radius: 0.5em;
897}
898
899b.keycap,
900.keycap {
901 -moz-border-radius: 0.3em;
902}
903*/
904
905table tr td table tr td {
906 display: none;
907}
908
909
910hr {
911 display: none;
912}
913
914table {
915 border: 0em;
916}
917
918 .photo {
919 float: right;
920 margin-left: 1.5em;
921 margin-bottom: 1.5em;
922 margin-top: 0em;
923 max-width: 17em;
924 border: 1px solid gray;
925 padding: 3px;
926 background: white;
927}
928 .seperator {
929 padding-top: 2em;
930 clear: both;
931 }
932
933 #validators {
934 margin-top: 5em;
935 text-align: right;
936 color: #777;
937 }
938 @media print {
939 body {
940 font-size: 8pt;
941 }
942 .noprint {
943 display: none;
944 }
945 }
946
947
948.tip,
949.note {
950 background: #f0f0f2;
951 color: #333;
952 padding: 20px;
953 margin: 20px;
954}
955
956.tip h3,
957.note h3 {
958 padding: 0em;
959 margin: 0em;
960 font-size: 2em;
961 font-weight: bold;
962 color: #333;
963}
964
965.tip a,
966.note a {
967 color: #333;
968 text-decoration: underline;
969}
970
971.footnote {
972 font-size: small;
973 color: #333;
974}
975
976/* Changes the announcement text */
977.tip h3,
978.warning h3,
979.caution h3,
980.note h3 {
981 font-size:large;
982 color: #00557D;
983}
diff --git a/documentation/yocto-project-qs/yocto-project-qs-customization.xsl b/documentation/yocto-project-qs/yocto-project-qs-customization.xsl
new file mode 100644
index 0000000000..3dad6b96c5
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs-customization.xsl
@@ -0,0 +1,15 @@
1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
3
4 <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
5 <xsl:import href="yocto-project-qs-titlepage.xsl"/>
6
7 <xsl:include href="../template/permalinks.xsl"/>
8 <xsl:include href="../template/section.title.xsl"/>
9 <xsl:include href="../template/component.title.xsl"/>
10 <xsl:include href="../template/division.title.xsl"/>
11 <xsl:include href="../template/formal.object.heading.xsl"/>
12
13 <xsl:param name="generate.toc" select="'article nop'"></xsl:param>
14 <xsl:param name="html.stylesheet" select="'qs-style.css'" />
15</xsl:stylesheet>
diff --git a/documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl b/documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl
new file mode 100644
index 0000000000..f8f8930f27
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl
@@ -0,0 +1,25 @@
1<?xml version='1.0'?>
2<xsl:stylesheet
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns="http://www.w3.org/1999/xhtml"
5 xmlns:fo="http://www.w3.org/1999/XSL/Format"
6 version="1.0">
7
8 <xsl:import
9 href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
10 <xsl:import href="yocto-project-qs-titlepage.xsl"/>
11
12 <xsl:param name="chunker.output.indent" select="'yes'"/>
13 <xsl:param name="chunk.quietly" select="1"/>
14 <xsl:param name="use.id.as.filename" select="1"/>
15 <xsl:param name="ulink.target" select="'_self'" />
16 <xsl:param name="base.dir" select="'html/yocto-project-qs/'"/>
17 <xsl:param name="chunk.section.depth" select="0"/>
18 <xsl:param name="html.stylesheet" select="'../book.css'"/>
19 <xsl:param name="eclipse.manifest" select="0"/>
20 <xsl:param name="create.plugin.xml" select="0"/>
21 <xsl:param name="suppress.navigation" select="1"/>
22 <xsl:param name="generate.index" select="0"/>
23 <xsl:param name="generate.toc" select="'article nop'"></xsl:param>
24 <xsl:param name="html.stylesheet" select="'style.css'" />
25</xsl:stylesheet>
diff --git a/documentation/yocto-project-qs/yocto-project-qs-titlepage.xsl b/documentation/yocto-project-qs/yocto-project-qs-titlepage.xsl
new file mode 100644
index 0000000000..a435ac77ab
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs-titlepage.xsl
@@ -0,0 +1,3820 @@
1<?xml version="1.0"?>
2
3<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0" exclude-result-prefixes="exsl">
4
5<!-- This stylesheet was created by template/titlepage.xsl-->
6
7<xsl:template name="article.titlepage.recto">
8 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
9 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
10 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/>
11 <xsl:choose>
12 <xsl:when test="articleinfo/title">
13 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
14 </xsl:when>
15 <xsl:when test="artheader/title">
16 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
17 </xsl:when>
18 <xsl:when test="info/title">
19 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/>
20 </xsl:when>
21 <xsl:when test="title">
22 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
23 </xsl:when>
24 </xsl:choose>
25
26 <xsl:choose>
27 <xsl:when test="articleinfo/subtitle">
28 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
29 </xsl:when>
30 <xsl:when test="artheader/subtitle">
31 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
32 </xsl:when>
33 <xsl:when test="info/subtitle">
34 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/>
35 </xsl:when>
36 <xsl:when test="subtitle">
37 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
38 </xsl:when>
39 </xsl:choose>
40
41 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
42 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
43 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/>
44 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
45 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
46 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/>
47 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
48 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
49 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/>
50 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/>
51 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/>
52 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/>
53 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
54 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
55 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/>
56 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
57 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
58 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/>
59 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
60 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
61 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/>
62 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
63 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
64 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/>
65 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
66 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
67 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/>
68 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
69 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
70 <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/>
71</xsl:template>
72
73<xsl:template name="article.titlepage.verso">
74</xsl:template>
75
76<xsl:template name="article.titlepage.separator"><hr/>
77</xsl:template>
78
79<xsl:template name="article.titlepage.before.recto">
80</xsl:template>
81
82<xsl:template name="article.titlepage.before.verso">
83</xsl:template>
84
85<xsl:template name="article.titlepage">
86 <div class="titlepage">
87 <xsl:variable name="recto.content">
88 <xsl:call-template name="article.titlepage.before.recto"/>
89 <xsl:call-template name="article.titlepage.recto"/>
90 </xsl:variable>
91 <xsl:variable name="recto.elements.count">
92 <xsl:choose>
93 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
94 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
95 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
96 <xsl:otherwise>1</xsl:otherwise>
97 </xsl:choose>
98 </xsl:variable>
99 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
100 <div><xsl:copy-of select="$recto.content"/></div>
101 </xsl:if>
102 <xsl:variable name="verso.content">
103 <xsl:call-template name="article.titlepage.before.verso"/>
104 <xsl:call-template name="article.titlepage.verso"/>
105 </xsl:variable>
106 <xsl:variable name="verso.elements.count">
107 <xsl:choose>
108 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
109 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
110 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
111 <xsl:otherwise>1</xsl:otherwise>
112 </xsl:choose>
113 </xsl:variable>
114 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
115 <div><xsl:copy-of select="$verso.content"/></div>
116 </xsl:if>
117 <xsl:call-template name="article.titlepage.separator"/>
118 </div>
119</xsl:template>
120
121<xsl:template match="*" mode="article.titlepage.recto.mode">
122 <!-- if an element isn't found in this mode, -->
123 <!-- try the generic titlepage.mode -->
124 <xsl:apply-templates select="." mode="titlepage.mode"/>
125</xsl:template>
126
127<xsl:template match="*" mode="article.titlepage.verso.mode">
128 <!-- if an element isn't found in this mode, -->
129 <!-- try the generic titlepage.mode -->
130 <xsl:apply-templates select="." mode="titlepage.mode"/>
131</xsl:template>
132
133<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
134<div xsl:use-attribute-sets="article.titlepage.recto.style">
135 <xsl:call-template name="anchor"/>
136 <xsl:apply-templates/>
137<!-- orignally generated content -->
138<!-- <xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> -->
139</div>
140</xsl:template>
141
142<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
143<div xsl:use-attribute-sets="article.titlepage.recto.style">
144<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
145</div>
146</xsl:template>
147
148<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
149<div xsl:use-attribute-sets="article.titlepage.recto.style">
150<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
151</div>
152</xsl:template>
153
154<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
155<div xsl:use-attribute-sets="article.titlepage.recto.style">
156<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
157</div>
158</xsl:template>
159
160<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
161<div xsl:use-attribute-sets="article.titlepage.recto.style">
162<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
163</div>
164</xsl:template>
165
166<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
167<div xsl:use-attribute-sets="article.titlepage.recto.style">
168<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
169</div>
170</xsl:template>
171
172<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode">
173<div xsl:use-attribute-sets="article.titlepage.recto.style">
174<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
175</div>
176</xsl:template>
177
178<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
179<div xsl:use-attribute-sets="article.titlepage.recto.style">
180<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
181</div>
182</xsl:template>
183
184<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
185<div xsl:use-attribute-sets="article.titlepage.recto.style">
186<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
187</div>
188</xsl:template>
189
190<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
191<div xsl:use-attribute-sets="article.titlepage.recto.style">
192<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
193</div>
194</xsl:template>
195
196<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
197<div xsl:use-attribute-sets="article.titlepage.recto.style">
198<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
199</div>
200</xsl:template>
201
202<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
203<div xsl:use-attribute-sets="article.titlepage.recto.style">
204<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
205</div>
206</xsl:template>
207
208<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
209<div xsl:use-attribute-sets="article.titlepage.recto.style">
210<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
211</div>
212</xsl:template>
213
214<xsl:template name="set.titlepage.recto">
215 <xsl:choose>
216 <xsl:when test="setinfo/title">
217 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
218 </xsl:when>
219 <xsl:when test="info/title">
220 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/>
221 </xsl:when>
222 <xsl:when test="title">
223 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
224 </xsl:when>
225 </xsl:choose>
226
227 <xsl:choose>
228 <xsl:when test="setinfo/subtitle">
229 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
230 </xsl:when>
231 <xsl:when test="info/subtitle">
232 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/>
233 </xsl:when>
234 <xsl:when test="subtitle">
235 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
236 </xsl:when>
237 </xsl:choose>
238
239 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
240 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/>
241 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
242 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/>
243 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
244 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/>
245 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/>
246 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/>
247 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
248 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/>
249 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
250 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/>
251 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
252 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/>
253 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
254 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/>
255 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
256 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/>
257 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
258 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/>
259 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
260 <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/>
261</xsl:template>
262
263<xsl:template name="set.titlepage.verso">
264</xsl:template>
265
266<xsl:template name="set.titlepage.separator"><hr/>
267</xsl:template>
268
269<xsl:template name="set.titlepage.before.recto">
270</xsl:template>
271
272<xsl:template name="set.titlepage.before.verso">
273</xsl:template>
274
275<xsl:template name="set.titlepage">
276 <div class="titlepage">
277 <xsl:variable name="recto.content">
278 <xsl:call-template name="set.titlepage.before.recto"/>
279 <xsl:call-template name="set.titlepage.recto"/>
280 </xsl:variable>
281 <xsl:variable name="recto.elements.count">
282 <xsl:choose>
283 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
284 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
285 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
286 <xsl:otherwise>1</xsl:otherwise>
287 </xsl:choose>
288 </xsl:variable>
289 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
290 <div><xsl:copy-of select="$recto.content"/></div>
291 </xsl:if>
292 <xsl:variable name="verso.content">
293 <xsl:call-template name="set.titlepage.before.verso"/>
294 <xsl:call-template name="set.titlepage.verso"/>
295 </xsl:variable>
296 <xsl:variable name="verso.elements.count">
297 <xsl:choose>
298 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
299 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
300 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
301 <xsl:otherwise>1</xsl:otherwise>
302 </xsl:choose>
303 </xsl:variable>
304 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
305 <div><xsl:copy-of select="$verso.content"/></div>
306 </xsl:if>
307 <xsl:call-template name="set.titlepage.separator"/>
308 </div>
309</xsl:template>
310
311<xsl:template match="*" mode="set.titlepage.recto.mode">
312 <!-- if an element isn't found in this mode, -->
313 <!-- try the generic titlepage.mode -->
314 <xsl:apply-templates select="." mode="titlepage.mode"/>
315</xsl:template>
316
317<xsl:template match="*" mode="set.titlepage.verso.mode">
318 <!-- if an element isn't found in this mode, -->
319 <!-- try the generic titlepage.mode -->
320 <xsl:apply-templates select="." mode="titlepage.mode"/>
321</xsl:template>
322
323<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
324<div xsl:use-attribute-sets="set.titlepage.recto.style">
325<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
326</div>
327</xsl:template>
328
329<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
330<div xsl:use-attribute-sets="set.titlepage.recto.style">
331<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
332</div>
333</xsl:template>
334
335<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
336<div xsl:use-attribute-sets="set.titlepage.recto.style">
337<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
338</div>
339</xsl:template>
340
341<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
342<div xsl:use-attribute-sets="set.titlepage.recto.style">
343<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
344</div>
345</xsl:template>
346
347<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
348<div xsl:use-attribute-sets="set.titlepage.recto.style">
349<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
350</div>
351</xsl:template>
352
353<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode">
354<div xsl:use-attribute-sets="set.titlepage.recto.style">
355<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
356</div>
357</xsl:template>
358
359<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
360<div xsl:use-attribute-sets="set.titlepage.recto.style">
361<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
362</div>
363</xsl:template>
364
365<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
366<div xsl:use-attribute-sets="set.titlepage.recto.style">
367<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
368</div>
369</xsl:template>
370
371<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
372<div xsl:use-attribute-sets="set.titlepage.recto.style">
373<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
374</div>
375</xsl:template>
376
377<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
378<div xsl:use-attribute-sets="set.titlepage.recto.style">
379<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
380</div>
381</xsl:template>
382
383<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
384<div xsl:use-attribute-sets="set.titlepage.recto.style">
385<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
386</div>
387</xsl:template>
388
389<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
390<div xsl:use-attribute-sets="set.titlepage.recto.style">
391<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
392</div>
393</xsl:template>
394
395<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
396<div xsl:use-attribute-sets="set.titlepage.recto.style">
397<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
398</div>
399</xsl:template>
400
401<xsl:template name="book.titlepage.recto">
402 <xsl:choose>
403 <xsl:when test="bookinfo/title">
404 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
405 </xsl:when>
406 <xsl:when test="info/title">
407 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
408 </xsl:when>
409 <xsl:when test="title">
410 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
411 </xsl:when>
412 </xsl:choose>
413
414 <xsl:choose>
415 <xsl:when test="bookinfo/subtitle">
416 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
417 </xsl:when>
418 <xsl:when test="info/subtitle">
419 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
420 </xsl:when>
421 <xsl:when test="subtitle">
422 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
423 </xsl:when>
424 </xsl:choose>
425
426 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
427 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/>
428 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
429 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/>
430 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
431 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/>
432 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/>
433 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/>
434 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
435 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/>
436 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
437 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/>
438 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
439 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/>
440 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
441 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/>
442 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
443 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/>
444 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
445 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/>
446 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
447 <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/>
448</xsl:template>
449
450<xsl:template name="book.titlepage.verso">
451</xsl:template>
452
453<xsl:template name="book.titlepage.separator"><hr/>
454</xsl:template>
455
456<xsl:template name="book.titlepage.before.recto">
457</xsl:template>
458
459<xsl:template name="book.titlepage.before.verso">
460</xsl:template>
461
462<xsl:template name="book.titlepage">
463 <div class="titlepage">
464 <xsl:variable name="recto.content">
465 <xsl:call-template name="book.titlepage.before.recto"/>
466 <xsl:call-template name="book.titlepage.recto"/>
467 </xsl:variable>
468 <xsl:variable name="recto.elements.count">
469 <xsl:choose>
470 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
471 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
472 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
473 <xsl:otherwise>1</xsl:otherwise>
474 </xsl:choose>
475 </xsl:variable>
476 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
477 <div><xsl:copy-of select="$recto.content"/></div>
478 </xsl:if>
479 <xsl:variable name="verso.content">
480 <xsl:call-template name="book.titlepage.before.verso"/>
481 <xsl:call-template name="book.titlepage.verso"/>
482 </xsl:variable>
483 <xsl:variable name="verso.elements.count">
484 <xsl:choose>
485 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
486 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
487 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
488 <xsl:otherwise>1</xsl:otherwise>
489 </xsl:choose>
490 </xsl:variable>
491 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
492 <div><xsl:copy-of select="$verso.content"/></div>
493 </xsl:if>
494 <xsl:call-template name="book.titlepage.separator"/>
495 </div>
496</xsl:template>
497
498<xsl:template match="*" mode="book.titlepage.recto.mode">
499 <!-- if an element isn't found in this mode, -->
500 <!-- try the generic titlepage.mode -->
501 <xsl:apply-templates select="." mode="titlepage.mode"/>
502</xsl:template>
503
504<xsl:template match="*" mode="book.titlepage.verso.mode">
505 <!-- if an element isn't found in this mode, -->
506 <!-- try the generic titlepage.mode -->
507 <xsl:apply-templates select="." mode="titlepage.mode"/>
508</xsl:template>
509
510<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
511<div xsl:use-attribute-sets="book.titlepage.recto.style">
512<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
513</div>
514</xsl:template>
515
516<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
517<div xsl:use-attribute-sets="book.titlepage.recto.style">
518<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
519</div>
520</xsl:template>
521
522<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
523<div xsl:use-attribute-sets="book.titlepage.recto.style">
524<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
525</div>
526</xsl:template>
527
528<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
529<div xsl:use-attribute-sets="book.titlepage.recto.style">
530<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
531</div>
532</xsl:template>
533
534<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
535<div xsl:use-attribute-sets="book.titlepage.recto.style">
536<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
537</div>
538</xsl:template>
539
540<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode">
541<div xsl:use-attribute-sets="book.titlepage.recto.style">
542<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
543</div>
544</xsl:template>
545
546<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
547<div xsl:use-attribute-sets="book.titlepage.recto.style">
548<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
549</div>
550</xsl:template>
551
552<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
553<div xsl:use-attribute-sets="book.titlepage.recto.style">
554<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
555</div>
556</xsl:template>
557
558<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
559<div xsl:use-attribute-sets="book.titlepage.recto.style">
560<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
561</div>
562</xsl:template>
563
564<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
565<div xsl:use-attribute-sets="book.titlepage.recto.style">
566<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
567</div>
568</xsl:template>
569
570<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
571<div xsl:use-attribute-sets="book.titlepage.recto.style">
572<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
573</div>
574</xsl:template>
575
576<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
577<div xsl:use-attribute-sets="book.titlepage.recto.style">
578<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
579</div>
580</xsl:template>
581
582<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
583<div xsl:use-attribute-sets="book.titlepage.recto.style">
584<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
585</div>
586</xsl:template>
587
588<xsl:template name="part.titlepage.recto">
589 <div xsl:use-attribute-sets="part.titlepage.recto.style">
590<xsl:call-template name="division.title">
591<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
592</xsl:call-template></div>
593 <xsl:choose>
594 <xsl:when test="partinfo/subtitle">
595 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
596 </xsl:when>
597 <xsl:when test="docinfo/subtitle">
598 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
599 </xsl:when>
600 <xsl:when test="info/subtitle">
601 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/>
602 </xsl:when>
603 <xsl:when test="subtitle">
604 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
605 </xsl:when>
606 </xsl:choose>
607
608 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
609 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
610 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/>
611 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
612 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
613 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/>
614 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
615 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
616 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/>
617 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/>
618 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
619 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/>
620 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
621 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
622 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/>
623 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
624 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
625 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/>
626 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
627 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
628 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/>
629 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
630 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
631 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/>
632 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
633 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
634 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/>
635 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
636 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
637 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/>
638 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
639 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
640 <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/>
641</xsl:template>
642
643<xsl:template name="part.titlepage.verso">
644</xsl:template>
645
646<xsl:template name="part.titlepage.separator">
647</xsl:template>
648
649<xsl:template name="part.titlepage.before.recto">
650</xsl:template>
651
652<xsl:template name="part.titlepage.before.verso">
653</xsl:template>
654
655<xsl:template name="part.titlepage">
656 <div class="titlepage">
657 <xsl:variable name="recto.content">
658 <xsl:call-template name="part.titlepage.before.recto"/>
659 <xsl:call-template name="part.titlepage.recto"/>
660 </xsl:variable>
661 <xsl:variable name="recto.elements.count">
662 <xsl:choose>
663 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
664 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
665 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
666 <xsl:otherwise>1</xsl:otherwise>
667 </xsl:choose>
668 </xsl:variable>
669 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
670 <div><xsl:copy-of select="$recto.content"/></div>
671 </xsl:if>
672 <xsl:variable name="verso.content">
673 <xsl:call-template name="part.titlepage.before.verso"/>
674 <xsl:call-template name="part.titlepage.verso"/>
675 </xsl:variable>
676 <xsl:variable name="verso.elements.count">
677 <xsl:choose>
678 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
679 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
680 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
681 <xsl:otherwise>1</xsl:otherwise>
682 </xsl:choose>
683 </xsl:variable>
684 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
685 <div><xsl:copy-of select="$verso.content"/></div>
686 </xsl:if>
687 <xsl:call-template name="part.titlepage.separator"/>
688 </div>
689</xsl:template>
690
691<xsl:template match="*" mode="part.titlepage.recto.mode">
692 <!-- if an element isn't found in this mode, -->
693 <!-- try the generic titlepage.mode -->
694 <xsl:apply-templates select="." mode="titlepage.mode"/>
695</xsl:template>
696
697<xsl:template match="*" mode="part.titlepage.verso.mode">
698 <!-- if an element isn't found in this mode, -->
699 <!-- try the generic titlepage.mode -->
700 <xsl:apply-templates select="." mode="titlepage.mode"/>
701</xsl:template>
702
703<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
704<div xsl:use-attribute-sets="part.titlepage.recto.style">
705<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
706</div>
707</xsl:template>
708
709<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
710<div xsl:use-attribute-sets="part.titlepage.recto.style">
711<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
712</div>
713</xsl:template>
714
715<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
716<div xsl:use-attribute-sets="part.titlepage.recto.style">
717<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
718</div>
719</xsl:template>
720
721<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
722<div xsl:use-attribute-sets="part.titlepage.recto.style">
723<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
724</div>
725</xsl:template>
726
727<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode">
728<div xsl:use-attribute-sets="part.titlepage.recto.style">
729<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
730</div>
731</xsl:template>
732
733<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
734<div xsl:use-attribute-sets="part.titlepage.recto.style">
735<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
736</div>
737</xsl:template>
738
739<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
740<div xsl:use-attribute-sets="part.titlepage.recto.style">
741<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
742</div>
743</xsl:template>
744
745<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
746<div xsl:use-attribute-sets="part.titlepage.recto.style">
747<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
748</div>
749</xsl:template>
750
751<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
752<div xsl:use-attribute-sets="part.titlepage.recto.style">
753<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
754</div>
755</xsl:template>
756
757<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
758<div xsl:use-attribute-sets="part.titlepage.recto.style">
759<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
760</div>
761</xsl:template>
762
763<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
764<div xsl:use-attribute-sets="part.titlepage.recto.style">
765<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
766</div>
767</xsl:template>
768
769<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
770<div xsl:use-attribute-sets="part.titlepage.recto.style">
771<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
772</div>
773</xsl:template>
774
775<xsl:template name="partintro.titlepage.recto">
776 <xsl:choose>
777 <xsl:when test="partintroinfo/title">
778 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
779 </xsl:when>
780 <xsl:when test="docinfo/title">
781 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
782 </xsl:when>
783 <xsl:when test="info/title">
784 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/>
785 </xsl:when>
786 <xsl:when test="title">
787 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
788 </xsl:when>
789 </xsl:choose>
790
791 <xsl:choose>
792 <xsl:when test="partintroinfo/subtitle">
793 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
794 </xsl:when>
795 <xsl:when test="docinfo/subtitle">
796 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
797 </xsl:when>
798 <xsl:when test="info/subtitle">
799 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/>
800 </xsl:when>
801 <xsl:when test="subtitle">
802 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
803 </xsl:when>
804 </xsl:choose>
805
806 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
807 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
808 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/>
809 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
810 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
811 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/>
812 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
813 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
814 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/>
815 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/>
816 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
817 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/>
818 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
819 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
820 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/>
821 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
822 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
823 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/>
824 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
825 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
826 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/>
827 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
828 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
829 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/>
830 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
831 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
832 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/>
833 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
834 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
835 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/>
836 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
837 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
838 <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/>
839</xsl:template>
840
841<xsl:template name="partintro.titlepage.verso">
842</xsl:template>
843
844<xsl:template name="partintro.titlepage.separator">
845</xsl:template>
846
847<xsl:template name="partintro.titlepage.before.recto">
848</xsl:template>
849
850<xsl:template name="partintro.titlepage.before.verso">
851</xsl:template>
852
853<xsl:template name="partintro.titlepage">
854 <div>
855 <xsl:variable name="recto.content">
856 <xsl:call-template name="partintro.titlepage.before.recto"/>
857 <xsl:call-template name="partintro.titlepage.recto"/>
858 </xsl:variable>
859 <xsl:variable name="recto.elements.count">
860 <xsl:choose>
861 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
862 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
863 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
864 <xsl:otherwise>1</xsl:otherwise>
865 </xsl:choose>
866 </xsl:variable>
867 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
868 <div><xsl:copy-of select="$recto.content"/></div>
869 </xsl:if>
870 <xsl:variable name="verso.content">
871 <xsl:call-template name="partintro.titlepage.before.verso"/>
872 <xsl:call-template name="partintro.titlepage.verso"/>
873 </xsl:variable>
874 <xsl:variable name="verso.elements.count">
875 <xsl:choose>
876 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
877 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
878 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
879 <xsl:otherwise>1</xsl:otherwise>
880 </xsl:choose>
881 </xsl:variable>
882 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
883 <div><xsl:copy-of select="$verso.content"/></div>
884 </xsl:if>
885 <xsl:call-template name="partintro.titlepage.separator"/>
886 </div>
887</xsl:template>
888
889<xsl:template match="*" mode="partintro.titlepage.recto.mode">
890 <!-- if an element isn't found in this mode, -->
891 <!-- try the generic titlepage.mode -->
892 <xsl:apply-templates select="." mode="titlepage.mode"/>
893</xsl:template>
894
895<xsl:template match="*" mode="partintro.titlepage.verso.mode">
896 <!-- if an element isn't found in this mode, -->
897 <!-- try the generic titlepage.mode -->
898 <xsl:apply-templates select="." mode="titlepage.mode"/>
899</xsl:template>
900
901<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
902<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
903<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
904</div>
905</xsl:template>
906
907<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
908<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
909<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
910</div>
911</xsl:template>
912
913<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
914<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
915<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
916</div>
917</xsl:template>
918
919<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
920<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
921<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
922</div>
923</xsl:template>
924
925<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
926<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
927<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
928</div>
929</xsl:template>
930
931<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode">
932<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
933<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
934</div>
935</xsl:template>
936
937<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
938<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
939<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
940</div>
941</xsl:template>
942
943<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
944<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
945<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
946</div>
947</xsl:template>
948
949<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
950<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
951<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
952</div>
953</xsl:template>
954
955<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
956<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
957<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
958</div>
959</xsl:template>
960
961<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
962<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
963<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
964</div>
965</xsl:template>
966
967<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
968<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
969<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
970</div>
971</xsl:template>
972
973<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
974<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
975<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
976</div>
977</xsl:template>
978
979<xsl:template name="reference.titlepage.recto">
980 <xsl:choose>
981 <xsl:when test="referenceinfo/title">
982 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
983 </xsl:when>
984 <xsl:when test="docinfo/title">
985 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
986 </xsl:when>
987 <xsl:when test="info/title">
988 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/>
989 </xsl:when>
990 <xsl:when test="title">
991 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
992 </xsl:when>
993 </xsl:choose>
994
995 <xsl:choose>
996 <xsl:when test="referenceinfo/subtitle">
997 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
998 </xsl:when>
999 <xsl:when test="docinfo/subtitle">
1000 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1001 </xsl:when>
1002 <xsl:when test="info/subtitle">
1003 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/>
1004 </xsl:when>
1005 <xsl:when test="subtitle">
1006 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
1007 </xsl:when>
1008 </xsl:choose>
1009
1010 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
1011 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
1012 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/>
1013 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
1014 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
1015 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/>
1016 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
1017 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
1018 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/>
1019 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/>
1020 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
1021 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/>
1022 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
1023 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
1024 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/>
1025 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
1026 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
1027 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/>
1028 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
1029 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
1030 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/>
1031 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
1032 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
1033 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/>
1034 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
1035 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
1036 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/>
1037 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
1038 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
1039 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/>
1040 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
1041 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
1042 <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/>
1043</xsl:template>
1044
1045<xsl:template name="reference.titlepage.verso">
1046</xsl:template>
1047
1048<xsl:template name="reference.titlepage.separator"><hr/>
1049</xsl:template>
1050
1051<xsl:template name="reference.titlepage.before.recto">
1052</xsl:template>
1053
1054<xsl:template name="reference.titlepage.before.verso">
1055</xsl:template>
1056
1057<xsl:template name="reference.titlepage">
1058 <div class="titlepage">
1059 <xsl:variable name="recto.content">
1060 <xsl:call-template name="reference.titlepage.before.recto"/>
1061 <xsl:call-template name="reference.titlepage.recto"/>
1062 </xsl:variable>
1063 <xsl:variable name="recto.elements.count">
1064 <xsl:choose>
1065 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1066 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1067 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1068 <xsl:otherwise>1</xsl:otherwise>
1069 </xsl:choose>
1070 </xsl:variable>
1071 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1072 <div><xsl:copy-of select="$recto.content"/></div>
1073 </xsl:if>
1074 <xsl:variable name="verso.content">
1075 <xsl:call-template name="reference.titlepage.before.verso"/>
1076 <xsl:call-template name="reference.titlepage.verso"/>
1077 </xsl:variable>
1078 <xsl:variable name="verso.elements.count">
1079 <xsl:choose>
1080 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1081 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1082 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1083 <xsl:otherwise>1</xsl:otherwise>
1084 </xsl:choose>
1085 </xsl:variable>
1086 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1087 <div><xsl:copy-of select="$verso.content"/></div>
1088 </xsl:if>
1089 <xsl:call-template name="reference.titlepage.separator"/>
1090 </div>
1091</xsl:template>
1092
1093<xsl:template match="*" mode="reference.titlepage.recto.mode">
1094 <!-- if an element isn't found in this mode, -->
1095 <!-- try the generic titlepage.mode -->
1096 <xsl:apply-templates select="." mode="titlepage.mode"/>
1097</xsl:template>
1098
1099<xsl:template match="*" mode="reference.titlepage.verso.mode">
1100 <!-- if an element isn't found in this mode, -->
1101 <!-- try the generic titlepage.mode -->
1102 <xsl:apply-templates select="." mode="titlepage.mode"/>
1103</xsl:template>
1104
1105<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
1106<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1107<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1108</div>
1109</xsl:template>
1110
1111<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
1112<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1113<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1114</div>
1115</xsl:template>
1116
1117<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
1118<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1119<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1120</div>
1121</xsl:template>
1122
1123<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
1124<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1125<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1126</div>
1127</xsl:template>
1128
1129<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
1130<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1131<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1132</div>
1133</xsl:template>
1134
1135<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode">
1136<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1137<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1138</div>
1139</xsl:template>
1140
1141<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
1142<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1143<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1144</div>
1145</xsl:template>
1146
1147<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
1148<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1149<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1150</div>
1151</xsl:template>
1152
1153<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
1154<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1155<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1156</div>
1157</xsl:template>
1158
1159<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
1160<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1161<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1162</div>
1163</xsl:template>
1164
1165<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
1166<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1167<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1168</div>
1169</xsl:template>
1170
1171<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
1172<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1173<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1174</div>
1175</xsl:template>
1176
1177<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
1178<div xsl:use-attribute-sets="reference.titlepage.recto.style">
1179<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
1180</div>
1181</xsl:template>
1182
1183<xsl:template name="refentry.titlepage.recto">
1184</xsl:template>
1185
1186<xsl:template name="refentry.titlepage.verso">
1187</xsl:template>
1188
1189<xsl:template name="refentry.titlepage.separator">
1190</xsl:template>
1191
1192<xsl:template name="refentry.titlepage.before.recto">
1193</xsl:template>
1194
1195<xsl:template name="refentry.titlepage.before.verso">
1196</xsl:template>
1197
1198<xsl:template name="refentry.titlepage">
1199 <div class="titlepage">
1200 <xsl:variable name="recto.content">
1201 <xsl:call-template name="refentry.titlepage.before.recto"/>
1202 <xsl:call-template name="refentry.titlepage.recto"/>
1203 </xsl:variable>
1204 <xsl:variable name="recto.elements.count">
1205 <xsl:choose>
1206 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1207 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1208 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1209 <xsl:otherwise>1</xsl:otherwise>
1210 </xsl:choose>
1211 </xsl:variable>
1212 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1213 <div><xsl:copy-of select="$recto.content"/></div>
1214 </xsl:if>
1215 <xsl:variable name="verso.content">
1216 <xsl:call-template name="refentry.titlepage.before.verso"/>
1217 <xsl:call-template name="refentry.titlepage.verso"/>
1218 </xsl:variable>
1219 <xsl:variable name="verso.elements.count">
1220 <xsl:choose>
1221 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1222 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1223 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1224 <xsl:otherwise>1</xsl:otherwise>
1225 </xsl:choose>
1226 </xsl:variable>
1227 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1228 <div><xsl:copy-of select="$verso.content"/></div>
1229 </xsl:if>
1230 <xsl:call-template name="refentry.titlepage.separator"/>
1231 </div>
1232</xsl:template>
1233
1234<xsl:template match="*" mode="refentry.titlepage.recto.mode">
1235 <!-- if an element isn't found in this mode, -->
1236 <!-- try the generic titlepage.mode -->
1237 <xsl:apply-templates select="." mode="titlepage.mode"/>
1238</xsl:template>
1239
1240<xsl:template match="*" mode="refentry.titlepage.verso.mode">
1241 <!-- if an element isn't found in this mode, -->
1242 <!-- try the generic titlepage.mode -->
1243 <xsl:apply-templates select="." mode="titlepage.mode"/>
1244</xsl:template>
1245
1246<xsl:template name="dedication.titlepage.recto">
1247 <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
1248<xsl:call-template name="component.title">
1249<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
1250</xsl:call-template></div>
1251 <xsl:choose>
1252 <xsl:when test="dedicationinfo/subtitle">
1253 <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
1254 </xsl:when>
1255 <xsl:when test="docinfo/subtitle">
1256 <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1257 </xsl:when>
1258 <xsl:when test="info/subtitle">
1259 <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/>
1260 </xsl:when>
1261 <xsl:when test="subtitle">
1262 <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
1263 </xsl:when>
1264 </xsl:choose>
1265
1266</xsl:template>
1267
1268<xsl:template name="dedication.titlepage.verso">
1269</xsl:template>
1270
1271<xsl:template name="dedication.titlepage.separator">
1272</xsl:template>
1273
1274<xsl:template name="dedication.titlepage.before.recto">
1275</xsl:template>
1276
1277<xsl:template name="dedication.titlepage.before.verso">
1278</xsl:template>
1279
1280<xsl:template name="dedication.titlepage">
1281 <div class="titlepage">
1282 <xsl:variable name="recto.content">
1283 <xsl:call-template name="dedication.titlepage.before.recto"/>
1284 <xsl:call-template name="dedication.titlepage.recto"/>
1285 </xsl:variable>
1286 <xsl:variable name="recto.elements.count">
1287 <xsl:choose>
1288 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1289 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1290 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1291 <xsl:otherwise>1</xsl:otherwise>
1292 </xsl:choose>
1293 </xsl:variable>
1294 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1295 <div><xsl:copy-of select="$recto.content"/></div>
1296 </xsl:if>
1297 <xsl:variable name="verso.content">
1298 <xsl:call-template name="dedication.titlepage.before.verso"/>
1299 <xsl:call-template name="dedication.titlepage.verso"/>
1300 </xsl:variable>
1301 <xsl:variable name="verso.elements.count">
1302 <xsl:choose>
1303 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1304 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1305 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1306 <xsl:otherwise>1</xsl:otherwise>
1307 </xsl:choose>
1308 </xsl:variable>
1309 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1310 <div><xsl:copy-of select="$verso.content"/></div>
1311 </xsl:if>
1312 <xsl:call-template name="dedication.titlepage.separator"/>
1313 </div>
1314</xsl:template>
1315
1316<xsl:template match="*" mode="dedication.titlepage.recto.mode">
1317 <!-- if an element isn't found in this mode, -->
1318 <!-- try the generic titlepage.mode -->
1319 <xsl:apply-templates select="." mode="titlepage.mode"/>
1320</xsl:template>
1321
1322<xsl:template match="*" mode="dedication.titlepage.verso.mode">
1323 <!-- if an element isn't found in this mode, -->
1324 <!-- try the generic titlepage.mode -->
1325 <xsl:apply-templates select="." mode="titlepage.mode"/>
1326</xsl:template>
1327
1328<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
1329<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
1330<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
1331</div>
1332</xsl:template>
1333
1334<xsl:template name="acknowledgements.titlepage.recto">
1335 <div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
1336<xsl:call-template name="component.title">
1337<xsl:with-param name="node" select="ancestor-or-self::acknowledgements[1]"/>
1338</xsl:call-template></div>
1339 <xsl:choose>
1340 <xsl:when test="acknowledgementsinfo/subtitle">
1341 <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="acknowledgementsinfo/subtitle"/>
1342 </xsl:when>
1343 <xsl:when test="docinfo/subtitle">
1344 <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1345 </xsl:when>
1346 <xsl:when test="info/subtitle">
1347 <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="info/subtitle"/>
1348 </xsl:when>
1349 <xsl:when test="subtitle">
1350 <xsl:apply-templates mode="acknowledgements.titlepage.recto.auto.mode" select="subtitle"/>
1351 </xsl:when>
1352 </xsl:choose>
1353
1354</xsl:template>
1355
1356<xsl:template name="acknowledgements.titlepage.verso">
1357</xsl:template>
1358
1359<xsl:template name="acknowledgements.titlepage.separator">
1360</xsl:template>
1361
1362<xsl:template name="acknowledgements.titlepage.before.recto">
1363</xsl:template>
1364
1365<xsl:template name="acknowledgements.titlepage.before.verso">
1366</xsl:template>
1367
1368<xsl:template name="acknowledgements.titlepage">
1369 <div class="titlepage">
1370 <xsl:variable name="recto.content">
1371 <xsl:call-template name="acknowledgements.titlepage.before.recto"/>
1372 <xsl:call-template name="acknowledgements.titlepage.recto"/>
1373 </xsl:variable>
1374 <xsl:variable name="recto.elements.count">
1375 <xsl:choose>
1376 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1377 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1378 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1379 <xsl:otherwise>1</xsl:otherwise>
1380 </xsl:choose>
1381 </xsl:variable>
1382 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1383 <div><xsl:copy-of select="$recto.content"/></div>
1384 </xsl:if>
1385 <xsl:variable name="verso.content">
1386 <xsl:call-template name="acknowledgements.titlepage.before.verso"/>
1387 <xsl:call-template name="acknowledgements.titlepage.verso"/>
1388 </xsl:variable>
1389 <xsl:variable name="verso.elements.count">
1390 <xsl:choose>
1391 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1392 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1393 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1394 <xsl:otherwise>1</xsl:otherwise>
1395 </xsl:choose>
1396 </xsl:variable>
1397 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1398 <div><xsl:copy-of select="$verso.content"/></div>
1399 </xsl:if>
1400 <xsl:call-template name="acknowledgements.titlepage.separator"/>
1401 </div>
1402</xsl:template>
1403
1404<xsl:template match="*" mode="acknowledgements.titlepage.recto.mode">
1405 <!-- if an element isn't found in this mode, -->
1406 <!-- try the generic titlepage.mode -->
1407 <xsl:apply-templates select="." mode="titlepage.mode"/>
1408</xsl:template>
1409
1410<xsl:template match="*" mode="acknowledgements.titlepage.verso.mode">
1411 <!-- if an element isn't found in this mode, -->
1412 <!-- try the generic titlepage.mode -->
1413 <xsl:apply-templates select="." mode="titlepage.mode"/>
1414</xsl:template>
1415
1416<xsl:template match="subtitle" mode="acknowledgements.titlepage.recto.auto.mode">
1417<div xsl:use-attribute-sets="acknowledgements.titlepage.recto.style">
1418<xsl:apply-templates select="." mode="acknowledgements.titlepage.recto.mode"/>
1419</div>
1420</xsl:template>
1421
1422<xsl:template name="preface.titlepage.recto">
1423 <xsl:choose>
1424 <xsl:when test="prefaceinfo/title">
1425 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
1426 </xsl:when>
1427 <xsl:when test="docinfo/title">
1428 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
1429 </xsl:when>
1430 <xsl:when test="info/title">
1431 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/>
1432 </xsl:when>
1433 <xsl:when test="title">
1434 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
1435 </xsl:when>
1436 </xsl:choose>
1437
1438 <xsl:choose>
1439 <xsl:when test="prefaceinfo/subtitle">
1440 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
1441 </xsl:when>
1442 <xsl:when test="docinfo/subtitle">
1443 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1444 </xsl:when>
1445 <xsl:when test="info/subtitle">
1446 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/>
1447 </xsl:when>
1448 <xsl:when test="subtitle">
1449 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
1450 </xsl:when>
1451 </xsl:choose>
1452
1453 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
1454 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
1455 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/>
1456 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
1457 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
1458 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/>
1459 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
1460 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
1461 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/>
1462 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/>
1463 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
1464 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/>
1465 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
1466 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
1467 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/>
1468 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
1469 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
1470 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/>
1471 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
1472 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
1473 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/>
1474 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
1475 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
1476 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/>
1477 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
1478 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
1479 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/>
1480 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
1481 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
1482 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/>
1483 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
1484 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
1485 <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/>
1486</xsl:template>
1487
1488<xsl:template name="preface.titlepage.verso">
1489</xsl:template>
1490
1491<xsl:template name="preface.titlepage.separator">
1492</xsl:template>
1493
1494<xsl:template name="preface.titlepage.before.recto">
1495</xsl:template>
1496
1497<xsl:template name="preface.titlepage.before.verso">
1498</xsl:template>
1499
1500<xsl:template name="preface.titlepage">
1501 <div class="titlepage">
1502 <xsl:variable name="recto.content">
1503 <xsl:call-template name="preface.titlepage.before.recto"/>
1504 <xsl:call-template name="preface.titlepage.recto"/>
1505 </xsl:variable>
1506 <xsl:variable name="recto.elements.count">
1507 <xsl:choose>
1508 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1509 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1510 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1511 <xsl:otherwise>1</xsl:otherwise>
1512 </xsl:choose>
1513 </xsl:variable>
1514 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1515 <div><xsl:copy-of select="$recto.content"/></div>
1516 </xsl:if>
1517 <xsl:variable name="verso.content">
1518 <xsl:call-template name="preface.titlepage.before.verso"/>
1519 <xsl:call-template name="preface.titlepage.verso"/>
1520 </xsl:variable>
1521 <xsl:variable name="verso.elements.count">
1522 <xsl:choose>
1523 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1524 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1525 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1526 <xsl:otherwise>1</xsl:otherwise>
1527 </xsl:choose>
1528 </xsl:variable>
1529 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1530 <div><xsl:copy-of select="$verso.content"/></div>
1531 </xsl:if>
1532 <xsl:call-template name="preface.titlepage.separator"/>
1533 </div>
1534</xsl:template>
1535
1536<xsl:template match="*" mode="preface.titlepage.recto.mode">
1537 <!-- if an element isn't found in this mode, -->
1538 <!-- try the generic titlepage.mode -->
1539 <xsl:apply-templates select="." mode="titlepage.mode"/>
1540</xsl:template>
1541
1542<xsl:template match="*" mode="preface.titlepage.verso.mode">
1543 <!-- if an element isn't found in this mode, -->
1544 <!-- try the generic titlepage.mode -->
1545 <xsl:apply-templates select="." mode="titlepage.mode"/>
1546</xsl:template>
1547
1548<xsl:template match="title" mode="preface.titlepage.recto.auto.mode">
1549<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1550<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1551</div>
1552</xsl:template>
1553
1554<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
1555<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1556<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1557</div>
1558</xsl:template>
1559
1560<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
1561<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1562<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1563</div>
1564</xsl:template>
1565
1566<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
1567<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1568<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1569</div>
1570</xsl:template>
1571
1572<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
1573<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1574<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1575</div>
1576</xsl:template>
1577
1578<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode">
1579<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1580<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1581</div>
1582</xsl:template>
1583
1584<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
1585<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1586<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1587</div>
1588</xsl:template>
1589
1590<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
1591<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1592<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1593</div>
1594</xsl:template>
1595
1596<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
1597<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1598<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1599</div>
1600</xsl:template>
1601
1602<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
1603<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1604<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1605</div>
1606</xsl:template>
1607
1608<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
1609<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1610<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1611</div>
1612</xsl:template>
1613
1614<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
1615<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1616<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1617</div>
1618</xsl:template>
1619
1620<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
1621<div xsl:use-attribute-sets="preface.titlepage.recto.style">
1622<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
1623</div>
1624</xsl:template>
1625
1626<xsl:template name="chapter.titlepage.recto">
1627 <xsl:choose>
1628 <xsl:when test="chapterinfo/title">
1629 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
1630 </xsl:when>
1631 <xsl:when test="docinfo/title">
1632 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
1633 </xsl:when>
1634 <xsl:when test="info/title">
1635 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/>
1636 </xsl:when>
1637 <xsl:when test="title">
1638 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
1639 </xsl:when>
1640 </xsl:choose>
1641
1642 <xsl:choose>
1643 <xsl:when test="chapterinfo/subtitle">
1644 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
1645 </xsl:when>
1646 <xsl:when test="docinfo/subtitle">
1647 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1648 </xsl:when>
1649 <xsl:when test="info/subtitle">
1650 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/>
1651 </xsl:when>
1652 <xsl:when test="subtitle">
1653 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
1654 </xsl:when>
1655 </xsl:choose>
1656
1657 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
1658 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
1659 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/>
1660 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
1661 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
1662 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/>
1663 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
1664 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
1665 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/>
1666 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/>
1667 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
1668 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/>
1669 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
1670 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
1671 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/>
1672 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
1673 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
1674 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/>
1675 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
1676 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
1677 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/>
1678 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
1679 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
1680 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/>
1681 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
1682 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
1683 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/>
1684 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
1685 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
1686 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/>
1687 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
1688 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
1689 <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/>
1690</xsl:template>
1691
1692<xsl:template name="chapter.titlepage.verso">
1693</xsl:template>
1694
1695<xsl:template name="chapter.titlepage.separator">
1696</xsl:template>
1697
1698<xsl:template name="chapter.titlepage.before.recto">
1699</xsl:template>
1700
1701<xsl:template name="chapter.titlepage.before.verso">
1702</xsl:template>
1703
1704<xsl:template name="chapter.titlepage">
1705 <div class="titlepage">
1706 <xsl:variable name="recto.content">
1707 <xsl:call-template name="chapter.titlepage.before.recto"/>
1708 <xsl:call-template name="chapter.titlepage.recto"/>
1709 </xsl:variable>
1710 <xsl:variable name="recto.elements.count">
1711 <xsl:choose>
1712 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1713 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1714 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1715 <xsl:otherwise>1</xsl:otherwise>
1716 </xsl:choose>
1717 </xsl:variable>
1718 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1719 <div><xsl:copy-of select="$recto.content"/></div>
1720 </xsl:if>
1721 <xsl:variable name="verso.content">
1722 <xsl:call-template name="chapter.titlepage.before.verso"/>
1723 <xsl:call-template name="chapter.titlepage.verso"/>
1724 </xsl:variable>
1725 <xsl:variable name="verso.elements.count">
1726 <xsl:choose>
1727 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1728 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1729 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1730 <xsl:otherwise>1</xsl:otherwise>
1731 </xsl:choose>
1732 </xsl:variable>
1733 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1734 <div><xsl:copy-of select="$verso.content"/></div>
1735 </xsl:if>
1736 <xsl:call-template name="chapter.titlepage.separator"/>
1737 </div>
1738</xsl:template>
1739
1740<xsl:template match="*" mode="chapter.titlepage.recto.mode">
1741 <!-- if an element isn't found in this mode, -->
1742 <!-- try the generic titlepage.mode -->
1743 <xsl:apply-templates select="." mode="titlepage.mode"/>
1744</xsl:template>
1745
1746<xsl:template match="*" mode="chapter.titlepage.verso.mode">
1747 <!-- if an element isn't found in this mode, -->
1748 <!-- try the generic titlepage.mode -->
1749 <xsl:apply-templates select="." mode="titlepage.mode"/>
1750</xsl:template>
1751
1752<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
1753<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1754<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1755</div>
1756</xsl:template>
1757
1758<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
1759<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1760<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1761</div>
1762</xsl:template>
1763
1764<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
1765<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1766<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1767</div>
1768</xsl:template>
1769
1770<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
1771<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1772<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1773</div>
1774</xsl:template>
1775
1776<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
1777<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1778<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1779</div>
1780</xsl:template>
1781
1782<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode">
1783<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1784<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1785</div>
1786</xsl:template>
1787
1788<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
1789<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1790<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1791</div>
1792</xsl:template>
1793
1794<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
1795<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1796<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1797</div>
1798</xsl:template>
1799
1800<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
1801<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1802<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1803</div>
1804</xsl:template>
1805
1806<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
1807<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1808<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1809</div>
1810</xsl:template>
1811
1812<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
1813<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1814<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1815</div>
1816</xsl:template>
1817
1818<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
1819<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1820<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1821</div>
1822</xsl:template>
1823
1824<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
1825<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
1826<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
1827</div>
1828</xsl:template>
1829
1830<xsl:template name="appendix.titlepage.recto">
1831 <xsl:choose>
1832 <xsl:when test="appendixinfo/title">
1833 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
1834 </xsl:when>
1835 <xsl:when test="docinfo/title">
1836 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
1837 </xsl:when>
1838 <xsl:when test="info/title">
1839 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/>
1840 </xsl:when>
1841 <xsl:when test="title">
1842 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
1843 </xsl:when>
1844 </xsl:choose>
1845
1846 <xsl:choose>
1847 <xsl:when test="appendixinfo/subtitle">
1848 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
1849 </xsl:when>
1850 <xsl:when test="docinfo/subtitle">
1851 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
1852 </xsl:when>
1853 <xsl:when test="info/subtitle">
1854 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/>
1855 </xsl:when>
1856 <xsl:when test="subtitle">
1857 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
1858 </xsl:when>
1859 </xsl:choose>
1860
1861 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
1862 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
1863 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/>
1864 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
1865 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
1866 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/>
1867 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
1868 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
1869 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/>
1870 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/>
1871 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
1872 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/>
1873 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
1874 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
1875 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/>
1876 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
1877 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
1878 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/>
1879 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
1880 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
1881 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/>
1882 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
1883 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
1884 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/>
1885 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
1886 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
1887 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/>
1888 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
1889 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
1890 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/>
1891 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
1892 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
1893 <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/>
1894</xsl:template>
1895
1896<xsl:template name="appendix.titlepage.verso">
1897</xsl:template>
1898
1899<xsl:template name="appendix.titlepage.separator">
1900</xsl:template>
1901
1902<xsl:template name="appendix.titlepage.before.recto">
1903</xsl:template>
1904
1905<xsl:template name="appendix.titlepage.before.verso">
1906</xsl:template>
1907
1908<xsl:template name="appendix.titlepage">
1909 <div class="titlepage">
1910 <xsl:variable name="recto.content">
1911 <xsl:call-template name="appendix.titlepage.before.recto"/>
1912 <xsl:call-template name="appendix.titlepage.recto"/>
1913 </xsl:variable>
1914 <xsl:variable name="recto.elements.count">
1915 <xsl:choose>
1916 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1917 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1918 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
1919 <xsl:otherwise>1</xsl:otherwise>
1920 </xsl:choose>
1921 </xsl:variable>
1922 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
1923 <div><xsl:copy-of select="$recto.content"/></div>
1924 </xsl:if>
1925 <xsl:variable name="verso.content">
1926 <xsl:call-template name="appendix.titlepage.before.verso"/>
1927 <xsl:call-template name="appendix.titlepage.verso"/>
1928 </xsl:variable>
1929 <xsl:variable name="verso.elements.count">
1930 <xsl:choose>
1931 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1932 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
1933 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
1934 <xsl:otherwise>1</xsl:otherwise>
1935 </xsl:choose>
1936 </xsl:variable>
1937 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
1938 <div><xsl:copy-of select="$verso.content"/></div>
1939 </xsl:if>
1940 <xsl:call-template name="appendix.titlepage.separator"/>
1941 </div>
1942</xsl:template>
1943
1944<xsl:template match="*" mode="appendix.titlepage.recto.mode">
1945 <!-- if an element isn't found in this mode, -->
1946 <!-- try the generic titlepage.mode -->
1947 <xsl:apply-templates select="." mode="titlepage.mode"/>
1948</xsl:template>
1949
1950<xsl:template match="*" mode="appendix.titlepage.verso.mode">
1951 <!-- if an element isn't found in this mode, -->
1952 <!-- try the generic titlepage.mode -->
1953 <xsl:apply-templates select="." mode="titlepage.mode"/>
1954</xsl:template>
1955
1956<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
1957<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1958<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1959</div>
1960</xsl:template>
1961
1962<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
1963<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1964<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1965</div>
1966</xsl:template>
1967
1968<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
1969<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1970<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1971</div>
1972</xsl:template>
1973
1974<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
1975<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1976<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1977</div>
1978</xsl:template>
1979
1980<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
1981<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1982<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1983</div>
1984</xsl:template>
1985
1986<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode">
1987<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1988<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1989</div>
1990</xsl:template>
1991
1992<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
1993<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
1994<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
1995</div>
1996</xsl:template>
1997
1998<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
1999<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2000<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2001</div>
2002</xsl:template>
2003
2004<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
2005<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2006<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2007</div>
2008</xsl:template>
2009
2010<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
2011<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2012<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2013</div>
2014</xsl:template>
2015
2016<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
2017<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2018<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2019</div>
2020</xsl:template>
2021
2022<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
2023<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2024<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2025</div>
2026</xsl:template>
2027
2028<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
2029<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
2030<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
2031</div>
2032</xsl:template>
2033
2034<xsl:template name="section.titlepage.recto">
2035 <xsl:choose>
2036 <xsl:when test="sectioninfo/title">
2037 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
2038 </xsl:when>
2039 <xsl:when test="info/title">
2040 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/>
2041 </xsl:when>
2042 <xsl:when test="title">
2043 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
2044 </xsl:when>
2045 </xsl:choose>
2046
2047 <xsl:choose>
2048 <xsl:when test="sectioninfo/subtitle">
2049 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
2050 </xsl:when>
2051 <xsl:when test="info/subtitle">
2052 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/>
2053 </xsl:when>
2054 <xsl:when test="subtitle">
2055 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
2056 </xsl:when>
2057 </xsl:choose>
2058
2059 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
2060 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/>
2061 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
2062 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/>
2063 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
2064 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/>
2065 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/>
2066 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/>
2067 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
2068 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/>
2069 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
2070 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/>
2071 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
2072 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/>
2073 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
2074 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/>
2075 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
2076 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/>
2077 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
2078 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/>
2079 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
2080 <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/>
2081</xsl:template>
2082
2083<xsl:template name="section.titlepage.verso">
2084</xsl:template>
2085
2086<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
2087</xsl:template>
2088
2089<xsl:template name="section.titlepage.before.recto">
2090</xsl:template>
2091
2092<xsl:template name="section.titlepage.before.verso">
2093</xsl:template>
2094
2095<xsl:template name="section.titlepage">
2096 <div class="titlepage">
2097 <xsl:variable name="recto.content">
2098 <xsl:call-template name="section.titlepage.before.recto"/>
2099 <xsl:call-template name="section.titlepage.recto"/>
2100 </xsl:variable>
2101 <xsl:variable name="recto.elements.count">
2102 <xsl:choose>
2103 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2104 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2105 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2106 <xsl:otherwise>1</xsl:otherwise>
2107 </xsl:choose>
2108 </xsl:variable>
2109 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
2110 <div><xsl:copy-of select="$recto.content"/></div>
2111 </xsl:if>
2112 <xsl:variable name="verso.content">
2113 <xsl:call-template name="section.titlepage.before.verso"/>
2114 <xsl:call-template name="section.titlepage.verso"/>
2115 </xsl:variable>
2116 <xsl:variable name="verso.elements.count">
2117 <xsl:choose>
2118 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2119 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2120 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2121 <xsl:otherwise>1</xsl:otherwise>
2122 </xsl:choose>
2123 </xsl:variable>
2124 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
2125 <div><xsl:copy-of select="$verso.content"/></div>
2126 </xsl:if>
2127 <xsl:call-template name="section.titlepage.separator"/>
2128 </div>
2129</xsl:template>
2130
2131<xsl:template match="*" mode="section.titlepage.recto.mode">
2132 <!-- if an element isn't found in this mode, -->
2133 <!-- try the generic titlepage.mode -->
2134 <xsl:apply-templates select="." mode="titlepage.mode"/>
2135</xsl:template>
2136
2137<xsl:template match="*" mode="section.titlepage.verso.mode">
2138 <!-- if an element isn't found in this mode, -->
2139 <!-- try the generic titlepage.mode -->
2140 <xsl:apply-templates select="." mode="titlepage.mode"/>
2141</xsl:template>
2142
2143<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
2144<div xsl:use-attribute-sets="section.titlepage.recto.style">
2145<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2146</div>
2147</xsl:template>
2148
2149<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
2150<div xsl:use-attribute-sets="section.titlepage.recto.style">
2151<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2152</div>
2153</xsl:template>
2154
2155<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
2156<div xsl:use-attribute-sets="section.titlepage.recto.style">
2157<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2158</div>
2159</xsl:template>
2160
2161<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
2162<div xsl:use-attribute-sets="section.titlepage.recto.style">
2163<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2164</div>
2165</xsl:template>
2166
2167<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
2168<div xsl:use-attribute-sets="section.titlepage.recto.style">
2169<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2170</div>
2171</xsl:template>
2172
2173<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode">
2174<div xsl:use-attribute-sets="section.titlepage.recto.style">
2175<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2176</div>
2177</xsl:template>
2178
2179<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
2180<div xsl:use-attribute-sets="section.titlepage.recto.style">
2181<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2182</div>
2183</xsl:template>
2184
2185<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
2186<div xsl:use-attribute-sets="section.titlepage.recto.style">
2187<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2188</div>
2189</xsl:template>
2190
2191<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
2192<div xsl:use-attribute-sets="section.titlepage.recto.style">
2193<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2194</div>
2195</xsl:template>
2196
2197<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
2198<div xsl:use-attribute-sets="section.titlepage.recto.style">
2199<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2200</div>
2201</xsl:template>
2202
2203<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
2204<div xsl:use-attribute-sets="section.titlepage.recto.style">
2205<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2206</div>
2207</xsl:template>
2208
2209<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
2210<div xsl:use-attribute-sets="section.titlepage.recto.style">
2211<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2212</div>
2213</xsl:template>
2214
2215<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
2216<div xsl:use-attribute-sets="section.titlepage.recto.style">
2217<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
2218</div>
2219</xsl:template>
2220
2221<xsl:template name="sect1.titlepage.recto">
2222 <xsl:choose>
2223 <xsl:when test="sect1info/title">
2224 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
2225 </xsl:when>
2226 <xsl:when test="info/title">
2227 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/>
2228 </xsl:when>
2229 <xsl:when test="title">
2230 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
2231 </xsl:when>
2232 </xsl:choose>
2233
2234 <xsl:choose>
2235 <xsl:when test="sect1info/subtitle">
2236 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
2237 </xsl:when>
2238 <xsl:when test="info/subtitle">
2239 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/>
2240 </xsl:when>
2241 <xsl:when test="subtitle">
2242 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
2243 </xsl:when>
2244 </xsl:choose>
2245
2246 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
2247 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/>
2248 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
2249 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/>
2250 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
2251 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/>
2252 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/>
2253 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/>
2254 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
2255 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/>
2256 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
2257 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/>
2258 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
2259 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/>
2260 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
2261 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/>
2262 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
2263 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/>
2264 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
2265 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/>
2266 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
2267 <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/>
2268</xsl:template>
2269
2270<xsl:template name="sect1.titlepage.verso">
2271</xsl:template>
2272
2273<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
2274</xsl:template>
2275
2276<xsl:template name="sect1.titlepage.before.recto">
2277</xsl:template>
2278
2279<xsl:template name="sect1.titlepage.before.verso">
2280</xsl:template>
2281
2282<xsl:template name="sect1.titlepage">
2283 <div class="titlepage">
2284 <xsl:variable name="recto.content">
2285 <xsl:call-template name="sect1.titlepage.before.recto"/>
2286 <xsl:call-template name="sect1.titlepage.recto"/>
2287 </xsl:variable>
2288 <xsl:variable name="recto.elements.count">
2289 <xsl:choose>
2290 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2291 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2292 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2293 <xsl:otherwise>1</xsl:otherwise>
2294 </xsl:choose>
2295 </xsl:variable>
2296 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
2297 <div><xsl:copy-of select="$recto.content"/></div>
2298 </xsl:if>
2299 <xsl:variable name="verso.content">
2300 <xsl:call-template name="sect1.titlepage.before.verso"/>
2301 <xsl:call-template name="sect1.titlepage.verso"/>
2302 </xsl:variable>
2303 <xsl:variable name="verso.elements.count">
2304 <xsl:choose>
2305 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2306 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2307 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2308 <xsl:otherwise>1</xsl:otherwise>
2309 </xsl:choose>
2310 </xsl:variable>
2311 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
2312 <div><xsl:copy-of select="$verso.content"/></div>
2313 </xsl:if>
2314 <xsl:call-template name="sect1.titlepage.separator"/>
2315 </div>
2316</xsl:template>
2317
2318<xsl:template match="*" mode="sect1.titlepage.recto.mode">
2319 <!-- if an element isn't found in this mode, -->
2320 <!-- try the generic titlepage.mode -->
2321 <xsl:apply-templates select="." mode="titlepage.mode"/>
2322</xsl:template>
2323
2324<xsl:template match="*" mode="sect1.titlepage.verso.mode">
2325 <!-- if an element isn't found in this mode, -->
2326 <!-- try the generic titlepage.mode -->
2327 <xsl:apply-templates select="." mode="titlepage.mode"/>
2328</xsl:template>
2329
2330<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
2331<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2332<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2333</div>
2334</xsl:template>
2335
2336<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
2337<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2338<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2339</div>
2340</xsl:template>
2341
2342<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
2343<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2344<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2345</div>
2346</xsl:template>
2347
2348<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
2349<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2350<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2351</div>
2352</xsl:template>
2353
2354<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
2355<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2356<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2357</div>
2358</xsl:template>
2359
2360<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode">
2361<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2362<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2363</div>
2364</xsl:template>
2365
2366<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
2367<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2368<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2369</div>
2370</xsl:template>
2371
2372<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
2373<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2374<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2375</div>
2376</xsl:template>
2377
2378<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
2379<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2380<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2381</div>
2382</xsl:template>
2383
2384<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
2385<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2386<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2387</div>
2388</xsl:template>
2389
2390<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
2391<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2392<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2393</div>
2394</xsl:template>
2395
2396<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
2397<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2398<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2399</div>
2400</xsl:template>
2401
2402<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
2403<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
2404<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
2405</div>
2406</xsl:template>
2407
2408<xsl:template name="sect2.titlepage.recto">
2409 <xsl:choose>
2410 <xsl:when test="sect2info/title">
2411 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
2412 </xsl:when>
2413 <xsl:when test="info/title">
2414 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/>
2415 </xsl:when>
2416 <xsl:when test="title">
2417 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
2418 </xsl:when>
2419 </xsl:choose>
2420
2421 <xsl:choose>
2422 <xsl:when test="sect2info/subtitle">
2423 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
2424 </xsl:when>
2425 <xsl:when test="info/subtitle">
2426 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/>
2427 </xsl:when>
2428 <xsl:when test="subtitle">
2429 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
2430 </xsl:when>
2431 </xsl:choose>
2432
2433 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
2434 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/>
2435 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
2436 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/>
2437 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
2438 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/>
2439 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/>
2440 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/>
2441 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
2442 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/>
2443 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
2444 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/>
2445 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
2446 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/>
2447 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
2448 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/>
2449 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
2450 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/>
2451 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
2452 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/>
2453 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
2454 <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/>
2455</xsl:template>
2456
2457<xsl:template name="sect2.titlepage.verso">
2458</xsl:template>
2459
2460<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
2461</xsl:template>
2462
2463<xsl:template name="sect2.titlepage.before.recto">
2464</xsl:template>
2465
2466<xsl:template name="sect2.titlepage.before.verso">
2467</xsl:template>
2468
2469<xsl:template name="sect2.titlepage">
2470 <div class="titlepage">
2471 <xsl:variable name="recto.content">
2472 <xsl:call-template name="sect2.titlepage.before.recto"/>
2473 <xsl:call-template name="sect2.titlepage.recto"/>
2474 </xsl:variable>
2475 <xsl:variable name="recto.elements.count">
2476 <xsl:choose>
2477 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2478 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2479 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2480 <xsl:otherwise>1</xsl:otherwise>
2481 </xsl:choose>
2482 </xsl:variable>
2483 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
2484 <div><xsl:copy-of select="$recto.content"/></div>
2485 </xsl:if>
2486 <xsl:variable name="verso.content">
2487 <xsl:call-template name="sect2.titlepage.before.verso"/>
2488 <xsl:call-template name="sect2.titlepage.verso"/>
2489 </xsl:variable>
2490 <xsl:variable name="verso.elements.count">
2491 <xsl:choose>
2492 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2493 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2494 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2495 <xsl:otherwise>1</xsl:otherwise>
2496 </xsl:choose>
2497 </xsl:variable>
2498 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
2499 <div><xsl:copy-of select="$verso.content"/></div>
2500 </xsl:if>
2501 <xsl:call-template name="sect2.titlepage.separator"/>
2502 </div>
2503</xsl:template>
2504
2505<xsl:template match="*" mode="sect2.titlepage.recto.mode">
2506 <!-- if an element isn't found in this mode, -->
2507 <!-- try the generic titlepage.mode -->
2508 <xsl:apply-templates select="." mode="titlepage.mode"/>
2509</xsl:template>
2510
2511<xsl:template match="*" mode="sect2.titlepage.verso.mode">
2512 <!-- if an element isn't found in this mode, -->
2513 <!-- try the generic titlepage.mode -->
2514 <xsl:apply-templates select="." mode="titlepage.mode"/>
2515</xsl:template>
2516
2517<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
2518<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2519<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2520</div>
2521</xsl:template>
2522
2523<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
2524<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2525<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2526</div>
2527</xsl:template>
2528
2529<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
2530<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2531<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2532</div>
2533</xsl:template>
2534
2535<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
2536<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2537<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2538</div>
2539</xsl:template>
2540
2541<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
2542<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2543<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2544</div>
2545</xsl:template>
2546
2547<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode">
2548<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2549<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2550</div>
2551</xsl:template>
2552
2553<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
2554<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2555<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2556</div>
2557</xsl:template>
2558
2559<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
2560<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2561<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2562</div>
2563</xsl:template>
2564
2565<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
2566<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2567<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2568</div>
2569</xsl:template>
2570
2571<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
2572<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2573<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2574</div>
2575</xsl:template>
2576
2577<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
2578<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2579<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2580</div>
2581</xsl:template>
2582
2583<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
2584<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2585<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2586</div>
2587</xsl:template>
2588
2589<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
2590<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
2591<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
2592</div>
2593</xsl:template>
2594
2595<xsl:template name="sect3.titlepage.recto">
2596 <xsl:choose>
2597 <xsl:when test="sect3info/title">
2598 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
2599 </xsl:when>
2600 <xsl:when test="info/title">
2601 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/>
2602 </xsl:when>
2603 <xsl:when test="title">
2604 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
2605 </xsl:when>
2606 </xsl:choose>
2607
2608 <xsl:choose>
2609 <xsl:when test="sect3info/subtitle">
2610 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
2611 </xsl:when>
2612 <xsl:when test="info/subtitle">
2613 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/>
2614 </xsl:when>
2615 <xsl:when test="subtitle">
2616 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
2617 </xsl:when>
2618 </xsl:choose>
2619
2620 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
2621 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/>
2622 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
2623 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/>
2624 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
2625 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/>
2626 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/>
2627 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/>
2628 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
2629 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/>
2630 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
2631 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/>
2632 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
2633 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/>
2634 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
2635 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/>
2636 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
2637 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/>
2638 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
2639 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/>
2640 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
2641 <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/>
2642</xsl:template>
2643
2644<xsl:template name="sect3.titlepage.verso">
2645</xsl:template>
2646
2647<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
2648</xsl:template>
2649
2650<xsl:template name="sect3.titlepage.before.recto">
2651</xsl:template>
2652
2653<xsl:template name="sect3.titlepage.before.verso">
2654</xsl:template>
2655
2656<xsl:template name="sect3.titlepage">
2657 <div class="titlepage">
2658 <xsl:variable name="recto.content">
2659 <xsl:call-template name="sect3.titlepage.before.recto"/>
2660 <xsl:call-template name="sect3.titlepage.recto"/>
2661 </xsl:variable>
2662 <xsl:variable name="recto.elements.count">
2663 <xsl:choose>
2664 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2665 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2666 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2667 <xsl:otherwise>1</xsl:otherwise>
2668 </xsl:choose>
2669 </xsl:variable>
2670 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
2671 <div><xsl:copy-of select="$recto.content"/></div>
2672 </xsl:if>
2673 <xsl:variable name="verso.content">
2674 <xsl:call-template name="sect3.titlepage.before.verso"/>
2675 <xsl:call-template name="sect3.titlepage.verso"/>
2676 </xsl:variable>
2677 <xsl:variable name="verso.elements.count">
2678 <xsl:choose>
2679 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2680 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2681 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2682 <xsl:otherwise>1</xsl:otherwise>
2683 </xsl:choose>
2684 </xsl:variable>
2685 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
2686 <div><xsl:copy-of select="$verso.content"/></div>
2687 </xsl:if>
2688 <xsl:call-template name="sect3.titlepage.separator"/>
2689 </div>
2690</xsl:template>
2691
2692<xsl:template match="*" mode="sect3.titlepage.recto.mode">
2693 <!-- if an element isn't found in this mode, -->
2694 <!-- try the generic titlepage.mode -->
2695 <xsl:apply-templates select="." mode="titlepage.mode"/>
2696</xsl:template>
2697
2698<xsl:template match="*" mode="sect3.titlepage.verso.mode">
2699 <!-- if an element isn't found in this mode, -->
2700 <!-- try the generic titlepage.mode -->
2701 <xsl:apply-templates select="." mode="titlepage.mode"/>
2702</xsl:template>
2703
2704<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
2705<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2706<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2707</div>
2708</xsl:template>
2709
2710<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
2711<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2712<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2713</div>
2714</xsl:template>
2715
2716<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
2717<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2718<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2719</div>
2720</xsl:template>
2721
2722<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
2723<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2724<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2725</div>
2726</xsl:template>
2727
2728<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
2729<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2730<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2731</div>
2732</xsl:template>
2733
2734<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode">
2735<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2736<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2737</div>
2738</xsl:template>
2739
2740<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
2741<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2742<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2743</div>
2744</xsl:template>
2745
2746<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
2747<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2748<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2749</div>
2750</xsl:template>
2751
2752<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
2753<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2754<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2755</div>
2756</xsl:template>
2757
2758<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
2759<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2760<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2761</div>
2762</xsl:template>
2763
2764<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
2765<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2766<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2767</div>
2768</xsl:template>
2769
2770<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
2771<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2772<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2773</div>
2774</xsl:template>
2775
2776<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
2777<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
2778<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
2779</div>
2780</xsl:template>
2781
2782<xsl:template name="sect4.titlepage.recto">
2783 <xsl:choose>
2784 <xsl:when test="sect4info/title">
2785 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
2786 </xsl:when>
2787 <xsl:when test="info/title">
2788 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/>
2789 </xsl:when>
2790 <xsl:when test="title">
2791 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
2792 </xsl:when>
2793 </xsl:choose>
2794
2795 <xsl:choose>
2796 <xsl:when test="sect4info/subtitle">
2797 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
2798 </xsl:when>
2799 <xsl:when test="info/subtitle">
2800 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/>
2801 </xsl:when>
2802 <xsl:when test="subtitle">
2803 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
2804 </xsl:when>
2805 </xsl:choose>
2806
2807 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
2808 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/>
2809 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
2810 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/>
2811 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
2812 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/>
2813 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/>
2814 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/>
2815 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
2816 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/>
2817 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
2818 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/>
2819 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
2820 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/>
2821 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
2822 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/>
2823 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
2824 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/>
2825 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
2826 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/>
2827 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
2828 <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/>
2829</xsl:template>
2830
2831<xsl:template name="sect4.titlepage.verso">
2832</xsl:template>
2833
2834<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
2835</xsl:template>
2836
2837<xsl:template name="sect4.titlepage.before.recto">
2838</xsl:template>
2839
2840<xsl:template name="sect4.titlepage.before.verso">
2841</xsl:template>
2842
2843<xsl:template name="sect4.titlepage">
2844 <div class="titlepage">
2845 <xsl:variable name="recto.content">
2846 <xsl:call-template name="sect4.titlepage.before.recto"/>
2847 <xsl:call-template name="sect4.titlepage.recto"/>
2848 </xsl:variable>
2849 <xsl:variable name="recto.elements.count">
2850 <xsl:choose>
2851 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2852 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2853 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
2854 <xsl:otherwise>1</xsl:otherwise>
2855 </xsl:choose>
2856 </xsl:variable>
2857 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
2858 <div><xsl:copy-of select="$recto.content"/></div>
2859 </xsl:if>
2860 <xsl:variable name="verso.content">
2861 <xsl:call-template name="sect4.titlepage.before.verso"/>
2862 <xsl:call-template name="sect4.titlepage.verso"/>
2863 </xsl:variable>
2864 <xsl:variable name="verso.elements.count">
2865 <xsl:choose>
2866 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2867 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
2868 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
2869 <xsl:otherwise>1</xsl:otherwise>
2870 </xsl:choose>
2871 </xsl:variable>
2872 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
2873 <div><xsl:copy-of select="$verso.content"/></div>
2874 </xsl:if>
2875 <xsl:call-template name="sect4.titlepage.separator"/>
2876 </div>
2877</xsl:template>
2878
2879<xsl:template match="*" mode="sect4.titlepage.recto.mode">
2880 <!-- if an element isn't found in this mode, -->
2881 <!-- try the generic titlepage.mode -->
2882 <xsl:apply-templates select="." mode="titlepage.mode"/>
2883</xsl:template>
2884
2885<xsl:template match="*" mode="sect4.titlepage.verso.mode">
2886 <!-- if an element isn't found in this mode, -->
2887 <!-- try the generic titlepage.mode -->
2888 <xsl:apply-templates select="." mode="titlepage.mode"/>
2889</xsl:template>
2890
2891<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
2892<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2893<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2894</div>
2895</xsl:template>
2896
2897<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
2898<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2899<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2900</div>
2901</xsl:template>
2902
2903<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
2904<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2905<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2906</div>
2907</xsl:template>
2908
2909<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
2910<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2911<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2912</div>
2913</xsl:template>
2914
2915<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
2916<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2917<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2918</div>
2919</xsl:template>
2920
2921<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode">
2922<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2923<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2924</div>
2925</xsl:template>
2926
2927<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
2928<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2929<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2930</div>
2931</xsl:template>
2932
2933<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
2934<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2935<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2936</div>
2937</xsl:template>
2938
2939<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
2940<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2941<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2942</div>
2943</xsl:template>
2944
2945<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
2946<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2947<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2948</div>
2949</xsl:template>
2950
2951<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
2952<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2953<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2954</div>
2955</xsl:template>
2956
2957<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
2958<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2959<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2960</div>
2961</xsl:template>
2962
2963<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
2964<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
2965<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
2966</div>
2967</xsl:template>
2968
2969<xsl:template name="sect5.titlepage.recto">
2970 <xsl:choose>
2971 <xsl:when test="sect5info/title">
2972 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
2973 </xsl:when>
2974 <xsl:when test="info/title">
2975 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/>
2976 </xsl:when>
2977 <xsl:when test="title">
2978 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
2979 </xsl:when>
2980 </xsl:choose>
2981
2982 <xsl:choose>
2983 <xsl:when test="sect5info/subtitle">
2984 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
2985 </xsl:when>
2986 <xsl:when test="info/subtitle">
2987 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/>
2988 </xsl:when>
2989 <xsl:when test="subtitle">
2990 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
2991 </xsl:when>
2992 </xsl:choose>
2993
2994 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
2995 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/>
2996 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
2997 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/>
2998 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
2999 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/>
3000 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/>
3001 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/>
3002 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
3003 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/>
3004 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
3005 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/>
3006 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
3007 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/>
3008 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
3009 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/>
3010 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
3011 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/>
3012 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
3013 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/>
3014 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
3015 <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/>
3016</xsl:template>
3017
3018<xsl:template name="sect5.titlepage.verso">
3019</xsl:template>
3020
3021<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
3022</xsl:template>
3023
3024<xsl:template name="sect5.titlepage.before.recto">
3025</xsl:template>
3026
3027<xsl:template name="sect5.titlepage.before.verso">
3028</xsl:template>
3029
3030<xsl:template name="sect5.titlepage">
3031 <div class="titlepage">
3032 <xsl:variable name="recto.content">
3033 <xsl:call-template name="sect5.titlepage.before.recto"/>
3034 <xsl:call-template name="sect5.titlepage.recto"/>
3035 </xsl:variable>
3036 <xsl:variable name="recto.elements.count">
3037 <xsl:choose>
3038 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3039 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3040 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3041 <xsl:otherwise>1</xsl:otherwise>
3042 </xsl:choose>
3043 </xsl:variable>
3044 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3045 <div><xsl:copy-of select="$recto.content"/></div>
3046 </xsl:if>
3047 <xsl:variable name="verso.content">
3048 <xsl:call-template name="sect5.titlepage.before.verso"/>
3049 <xsl:call-template name="sect5.titlepage.verso"/>
3050 </xsl:variable>
3051 <xsl:variable name="verso.elements.count">
3052 <xsl:choose>
3053 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3054 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3055 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3056 <xsl:otherwise>1</xsl:otherwise>
3057 </xsl:choose>
3058 </xsl:variable>
3059 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3060 <div><xsl:copy-of select="$verso.content"/></div>
3061 </xsl:if>
3062 <xsl:call-template name="sect5.titlepage.separator"/>
3063 </div>
3064</xsl:template>
3065
3066<xsl:template match="*" mode="sect5.titlepage.recto.mode">
3067 <!-- if an element isn't found in this mode, -->
3068 <!-- try the generic titlepage.mode -->
3069 <xsl:apply-templates select="." mode="titlepage.mode"/>
3070</xsl:template>
3071
3072<xsl:template match="*" mode="sect5.titlepage.verso.mode">
3073 <!-- if an element isn't found in this mode, -->
3074 <!-- try the generic titlepage.mode -->
3075 <xsl:apply-templates select="." mode="titlepage.mode"/>
3076</xsl:template>
3077
3078<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
3079<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3080<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3081</div>
3082</xsl:template>
3083
3084<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
3085<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3086<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3087</div>
3088</xsl:template>
3089
3090<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
3091<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3092<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3093</div>
3094</xsl:template>
3095
3096<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
3097<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3098<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3099</div>
3100</xsl:template>
3101
3102<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
3103<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3104<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3105</div>
3106</xsl:template>
3107
3108<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode">
3109<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3110<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3111</div>
3112</xsl:template>
3113
3114<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
3115<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3116<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3117</div>
3118</xsl:template>
3119
3120<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
3121<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3122<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3123</div>
3124</xsl:template>
3125
3126<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
3127<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3128<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3129</div>
3130</xsl:template>
3131
3132<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
3133<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3134<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3135</div>
3136</xsl:template>
3137
3138<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
3139<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3140<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3141</div>
3142</xsl:template>
3143
3144<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
3145<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3146<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3147</div>
3148</xsl:template>
3149
3150<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
3151<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
3152<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
3153</div>
3154</xsl:template>
3155
3156<xsl:template name="simplesect.titlepage.recto">
3157 <xsl:choose>
3158 <xsl:when test="simplesectinfo/title">
3159 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
3160 </xsl:when>
3161 <xsl:when test="docinfo/title">
3162 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
3163 </xsl:when>
3164 <xsl:when test="info/title">
3165 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/>
3166 </xsl:when>
3167 <xsl:when test="title">
3168 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
3169 </xsl:when>
3170 </xsl:choose>
3171
3172 <xsl:choose>
3173 <xsl:when test="simplesectinfo/subtitle">
3174 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
3175 </xsl:when>
3176 <xsl:when test="docinfo/subtitle">
3177 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3178 </xsl:when>
3179 <xsl:when test="info/subtitle">
3180 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/>
3181 </xsl:when>
3182 <xsl:when test="subtitle">
3183 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
3184 </xsl:when>
3185 </xsl:choose>
3186
3187 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
3188 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
3189 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/>
3190 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
3191 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
3192 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/>
3193 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
3194 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
3195 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/>
3196 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/>
3197 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/>
3198 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/>
3199 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
3200 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
3201 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/>
3202 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
3203 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
3204 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/>
3205 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
3206 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
3207 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/>
3208 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
3209 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
3210 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/>
3211 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
3212 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
3213 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/>
3214 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
3215 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
3216 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/>
3217 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
3218 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
3219 <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/>
3220</xsl:template>
3221
3222<xsl:template name="simplesect.titlepage.verso">
3223</xsl:template>
3224
3225<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
3226</xsl:template>
3227
3228<xsl:template name="simplesect.titlepage.before.recto">
3229</xsl:template>
3230
3231<xsl:template name="simplesect.titlepage.before.verso">
3232</xsl:template>
3233
3234<xsl:template name="simplesect.titlepage">
3235 <div class="titlepage">
3236 <xsl:variable name="recto.content">
3237 <xsl:call-template name="simplesect.titlepage.before.recto"/>
3238 <xsl:call-template name="simplesect.titlepage.recto"/>
3239 </xsl:variable>
3240 <xsl:variable name="recto.elements.count">
3241 <xsl:choose>
3242 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3243 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3244 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3245 <xsl:otherwise>1</xsl:otherwise>
3246 </xsl:choose>
3247 </xsl:variable>
3248 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3249 <div><xsl:copy-of select="$recto.content"/></div>
3250 </xsl:if>
3251 <xsl:variable name="verso.content">
3252 <xsl:call-template name="simplesect.titlepage.before.verso"/>
3253 <xsl:call-template name="simplesect.titlepage.verso"/>
3254 </xsl:variable>
3255 <xsl:variable name="verso.elements.count">
3256 <xsl:choose>
3257 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3258 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3259 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3260 <xsl:otherwise>1</xsl:otherwise>
3261 </xsl:choose>
3262 </xsl:variable>
3263 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3264 <div><xsl:copy-of select="$verso.content"/></div>
3265 </xsl:if>
3266 <xsl:call-template name="simplesect.titlepage.separator"/>
3267 </div>
3268</xsl:template>
3269
3270<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
3271 <!-- if an element isn't found in this mode, -->
3272 <!-- try the generic titlepage.mode -->
3273 <xsl:apply-templates select="." mode="titlepage.mode"/>
3274</xsl:template>
3275
3276<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
3277 <!-- if an element isn't found in this mode, -->
3278 <!-- try the generic titlepage.mode -->
3279 <xsl:apply-templates select="." mode="titlepage.mode"/>
3280</xsl:template>
3281
3282<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
3283<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3284<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3285</div>
3286</xsl:template>
3287
3288<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
3289<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3290<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3291</div>
3292</xsl:template>
3293
3294<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
3295<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3296<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3297</div>
3298</xsl:template>
3299
3300<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
3301<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3302<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3303</div>
3304</xsl:template>
3305
3306<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
3307<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3308<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3309</div>
3310</xsl:template>
3311
3312<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode">
3313<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3314<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3315</div>
3316</xsl:template>
3317
3318<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
3319<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3320<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3321</div>
3322</xsl:template>
3323
3324<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
3325<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3326<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3327</div>
3328</xsl:template>
3329
3330<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
3331<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3332<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3333</div>
3334</xsl:template>
3335
3336<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
3337<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3338<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3339</div>
3340</xsl:template>
3341
3342<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
3343<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3344<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3345</div>
3346</xsl:template>
3347
3348<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
3349<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3350<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3351</div>
3352</xsl:template>
3353
3354<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
3355<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
3356<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
3357</div>
3358</xsl:template>
3359
3360<xsl:template name="bibliography.titlepage.recto">
3361 <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
3362<xsl:call-template name="component.title">
3363<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
3364</xsl:call-template></div>
3365 <xsl:choose>
3366 <xsl:when test="bibliographyinfo/subtitle">
3367 <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
3368 </xsl:when>
3369 <xsl:when test="docinfo/subtitle">
3370 <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3371 </xsl:when>
3372 <xsl:when test="info/subtitle">
3373 <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/>
3374 </xsl:when>
3375 <xsl:when test="subtitle">
3376 <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
3377 </xsl:when>
3378 </xsl:choose>
3379
3380</xsl:template>
3381
3382<xsl:template name="bibliography.titlepage.verso">
3383</xsl:template>
3384
3385<xsl:template name="bibliography.titlepage.separator">
3386</xsl:template>
3387
3388<xsl:template name="bibliography.titlepage.before.recto">
3389</xsl:template>
3390
3391<xsl:template name="bibliography.titlepage.before.verso">
3392</xsl:template>
3393
3394<xsl:template name="bibliography.titlepage">
3395 <div class="titlepage">
3396 <xsl:variable name="recto.content">
3397 <xsl:call-template name="bibliography.titlepage.before.recto"/>
3398 <xsl:call-template name="bibliography.titlepage.recto"/>
3399 </xsl:variable>
3400 <xsl:variable name="recto.elements.count">
3401 <xsl:choose>
3402 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3403 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3404 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3405 <xsl:otherwise>1</xsl:otherwise>
3406 </xsl:choose>
3407 </xsl:variable>
3408 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3409 <div><xsl:copy-of select="$recto.content"/></div>
3410 </xsl:if>
3411 <xsl:variable name="verso.content">
3412 <xsl:call-template name="bibliography.titlepage.before.verso"/>
3413 <xsl:call-template name="bibliography.titlepage.verso"/>
3414 </xsl:variable>
3415 <xsl:variable name="verso.elements.count">
3416 <xsl:choose>
3417 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3418 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3419 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3420 <xsl:otherwise>1</xsl:otherwise>
3421 </xsl:choose>
3422 </xsl:variable>
3423 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3424 <div><xsl:copy-of select="$verso.content"/></div>
3425 </xsl:if>
3426 <xsl:call-template name="bibliography.titlepage.separator"/>
3427 </div>
3428</xsl:template>
3429
3430<xsl:template match="*" mode="bibliography.titlepage.recto.mode">
3431 <!-- if an element isn't found in this mode, -->
3432 <!-- try the generic titlepage.mode -->
3433 <xsl:apply-templates select="." mode="titlepage.mode"/>
3434</xsl:template>
3435
3436<xsl:template match="*" mode="bibliography.titlepage.verso.mode">
3437 <!-- if an element isn't found in this mode, -->
3438 <!-- try the generic titlepage.mode -->
3439 <xsl:apply-templates select="." mode="titlepage.mode"/>
3440</xsl:template>
3441
3442<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode">
3443<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
3444<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
3445</div>
3446</xsl:template>
3447
3448<xsl:template name="glossary.titlepage.recto">
3449 <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
3450<xsl:call-template name="component.title">
3451<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
3452</xsl:call-template></div>
3453 <xsl:choose>
3454 <xsl:when test="glossaryinfo/subtitle">
3455 <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
3456 </xsl:when>
3457 <xsl:when test="docinfo/subtitle">
3458 <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3459 </xsl:when>
3460 <xsl:when test="info/subtitle">
3461 <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/>
3462 </xsl:when>
3463 <xsl:when test="subtitle">
3464 <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
3465 </xsl:when>
3466 </xsl:choose>
3467
3468</xsl:template>
3469
3470<xsl:template name="glossary.titlepage.verso">
3471</xsl:template>
3472
3473<xsl:template name="glossary.titlepage.separator">
3474</xsl:template>
3475
3476<xsl:template name="glossary.titlepage.before.recto">
3477</xsl:template>
3478
3479<xsl:template name="glossary.titlepage.before.verso">
3480</xsl:template>
3481
3482<xsl:template name="glossary.titlepage">
3483 <div class="titlepage">
3484 <xsl:variable name="recto.content">
3485 <xsl:call-template name="glossary.titlepage.before.recto"/>
3486 <xsl:call-template name="glossary.titlepage.recto"/>
3487 </xsl:variable>
3488 <xsl:variable name="recto.elements.count">
3489 <xsl:choose>
3490 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3491 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3492 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3493 <xsl:otherwise>1</xsl:otherwise>
3494 </xsl:choose>
3495 </xsl:variable>
3496 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3497 <div><xsl:copy-of select="$recto.content"/></div>
3498 </xsl:if>
3499 <xsl:variable name="verso.content">
3500 <xsl:call-template name="glossary.titlepage.before.verso"/>
3501 <xsl:call-template name="glossary.titlepage.verso"/>
3502 </xsl:variable>
3503 <xsl:variable name="verso.elements.count">
3504 <xsl:choose>
3505 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3506 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3507 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3508 <xsl:otherwise>1</xsl:otherwise>
3509 </xsl:choose>
3510 </xsl:variable>
3511 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3512 <div><xsl:copy-of select="$verso.content"/></div>
3513 </xsl:if>
3514 <xsl:call-template name="glossary.titlepage.separator"/>
3515 </div>
3516</xsl:template>
3517
3518<xsl:template match="*" mode="glossary.titlepage.recto.mode">
3519 <!-- if an element isn't found in this mode, -->
3520 <!-- try the generic titlepage.mode -->
3521 <xsl:apply-templates select="." mode="titlepage.mode"/>
3522</xsl:template>
3523
3524<xsl:template match="*" mode="glossary.titlepage.verso.mode">
3525 <!-- if an element isn't found in this mode, -->
3526 <!-- try the generic titlepage.mode -->
3527 <xsl:apply-templates select="." mode="titlepage.mode"/>
3528</xsl:template>
3529
3530<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode">
3531<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
3532<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
3533</div>
3534</xsl:template>
3535
3536<xsl:template name="index.titlepage.recto">
3537 <div xsl:use-attribute-sets="index.titlepage.recto.style">
3538<xsl:call-template name="component.title">
3539<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
3540</xsl:call-template></div>
3541 <xsl:choose>
3542 <xsl:when test="indexinfo/subtitle">
3543 <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
3544 </xsl:when>
3545 <xsl:when test="docinfo/subtitle">
3546 <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3547 </xsl:when>
3548 <xsl:when test="info/subtitle">
3549 <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/>
3550 </xsl:when>
3551 <xsl:when test="subtitle">
3552 <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
3553 </xsl:when>
3554 </xsl:choose>
3555
3556</xsl:template>
3557
3558<xsl:template name="index.titlepage.verso">
3559</xsl:template>
3560
3561<xsl:template name="index.titlepage.separator">
3562</xsl:template>
3563
3564<xsl:template name="index.titlepage.before.recto">
3565</xsl:template>
3566
3567<xsl:template name="index.titlepage.before.verso">
3568</xsl:template>
3569
3570<xsl:template name="index.titlepage">
3571 <div class="titlepage">
3572 <xsl:variable name="recto.content">
3573 <xsl:call-template name="index.titlepage.before.recto"/>
3574 <xsl:call-template name="index.titlepage.recto"/>
3575 </xsl:variable>
3576 <xsl:variable name="recto.elements.count">
3577 <xsl:choose>
3578 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3579 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3580 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3581 <xsl:otherwise>1</xsl:otherwise>
3582 </xsl:choose>
3583 </xsl:variable>
3584 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3585 <div><xsl:copy-of select="$recto.content"/></div>
3586 </xsl:if>
3587 <xsl:variable name="verso.content">
3588 <xsl:call-template name="index.titlepage.before.verso"/>
3589 <xsl:call-template name="index.titlepage.verso"/>
3590 </xsl:variable>
3591 <xsl:variable name="verso.elements.count">
3592 <xsl:choose>
3593 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3594 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3595 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3596 <xsl:otherwise>1</xsl:otherwise>
3597 </xsl:choose>
3598 </xsl:variable>
3599 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3600 <div><xsl:copy-of select="$verso.content"/></div>
3601 </xsl:if>
3602 <xsl:call-template name="index.titlepage.separator"/>
3603 </div>
3604</xsl:template>
3605
3606<xsl:template match="*" mode="index.titlepage.recto.mode">
3607 <!-- if an element isn't found in this mode, -->
3608 <!-- try the generic titlepage.mode -->
3609 <xsl:apply-templates select="." mode="titlepage.mode"/>
3610</xsl:template>
3611
3612<xsl:template match="*" mode="index.titlepage.verso.mode">
3613 <!-- if an element isn't found in this mode, -->
3614 <!-- try the generic titlepage.mode -->
3615 <xsl:apply-templates select="." mode="titlepage.mode"/>
3616</xsl:template>
3617
3618<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode">
3619<div xsl:use-attribute-sets="index.titlepage.recto.style">
3620<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
3621</div>
3622</xsl:template>
3623
3624<xsl:template name="setindex.titlepage.recto">
3625 <div xsl:use-attribute-sets="setindex.titlepage.recto.style">
3626<xsl:call-template name="component.title">
3627<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/>
3628</xsl:call-template></div>
3629 <xsl:choose>
3630 <xsl:when test="setindexinfo/subtitle">
3631 <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/>
3632 </xsl:when>
3633 <xsl:when test="docinfo/subtitle">
3634 <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3635 </xsl:when>
3636 <xsl:when test="info/subtitle">
3637 <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/>
3638 </xsl:when>
3639 <xsl:when test="subtitle">
3640 <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/>
3641 </xsl:when>
3642 </xsl:choose>
3643
3644</xsl:template>
3645
3646<xsl:template name="setindex.titlepage.verso">
3647</xsl:template>
3648
3649<xsl:template name="setindex.titlepage.separator">
3650</xsl:template>
3651
3652<xsl:template name="setindex.titlepage.before.recto">
3653</xsl:template>
3654
3655<xsl:template name="setindex.titlepage.before.verso">
3656</xsl:template>
3657
3658<xsl:template name="setindex.titlepage">
3659 <div class="titlepage">
3660 <xsl:variable name="recto.content">
3661 <xsl:call-template name="setindex.titlepage.before.recto"/>
3662 <xsl:call-template name="setindex.titlepage.recto"/>
3663 </xsl:variable>
3664 <xsl:variable name="recto.elements.count">
3665 <xsl:choose>
3666 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3667 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3668 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3669 <xsl:otherwise>1</xsl:otherwise>
3670 </xsl:choose>
3671 </xsl:variable>
3672 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3673 <div><xsl:copy-of select="$recto.content"/></div>
3674 </xsl:if>
3675 <xsl:variable name="verso.content">
3676 <xsl:call-template name="setindex.titlepage.before.verso"/>
3677 <xsl:call-template name="setindex.titlepage.verso"/>
3678 </xsl:variable>
3679 <xsl:variable name="verso.elements.count">
3680 <xsl:choose>
3681 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3682 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3683 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3684 <xsl:otherwise>1</xsl:otherwise>
3685 </xsl:choose>
3686 </xsl:variable>
3687 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3688 <div><xsl:copy-of select="$verso.content"/></div>
3689 </xsl:if>
3690 <xsl:call-template name="setindex.titlepage.separator"/>
3691 </div>
3692</xsl:template>
3693
3694<xsl:template match="*" mode="setindex.titlepage.recto.mode">
3695 <!-- if an element isn't found in this mode, -->
3696 <!-- try the generic titlepage.mode -->
3697 <xsl:apply-templates select="." mode="titlepage.mode"/>
3698</xsl:template>
3699
3700<xsl:template match="*" mode="setindex.titlepage.verso.mode">
3701 <!-- if an element isn't found in this mode, -->
3702 <!-- try the generic titlepage.mode -->
3703 <xsl:apply-templates select="." mode="titlepage.mode"/>
3704</xsl:template>
3705
3706<xsl:template match="subtitle" mode="setindex.titlepage.recto.auto.mode">
3707<div xsl:use-attribute-sets="setindex.titlepage.recto.style">
3708<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/>
3709</div>
3710</xsl:template>
3711
3712<xsl:template name="sidebar.titlepage.recto">
3713 <xsl:choose>
3714 <xsl:when test="sidebarinfo/title">
3715 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/title"/>
3716 </xsl:when>
3717 <xsl:when test="docinfo/title">
3718 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/title"/>
3719 </xsl:when>
3720 <xsl:when test="info/title">
3721 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/title"/>
3722 </xsl:when>
3723 <xsl:when test="title">
3724 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="title"/>
3725 </xsl:when>
3726 </xsl:choose>
3727
3728 <xsl:choose>
3729 <xsl:when test="sidebarinfo/subtitle">
3730 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="sidebarinfo/subtitle"/>
3731 </xsl:when>
3732 <xsl:when test="docinfo/subtitle">
3733 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
3734 </xsl:when>
3735 <xsl:when test="info/subtitle">
3736 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="info/subtitle"/>
3737 </xsl:when>
3738 <xsl:when test="subtitle">
3739 <xsl:apply-templates mode="sidebar.titlepage.recto.auto.mode" select="subtitle"/>
3740 </xsl:when>
3741 </xsl:choose>
3742
3743</xsl:template>
3744
3745<xsl:template name="sidebar.titlepage.verso">
3746</xsl:template>
3747
3748<xsl:template name="sidebar.titlepage.separator">
3749</xsl:template>
3750
3751<xsl:template name="sidebar.titlepage.before.recto">
3752</xsl:template>
3753
3754<xsl:template name="sidebar.titlepage.before.verso">
3755</xsl:template>
3756
3757<xsl:template name="sidebar.titlepage">
3758 <div class="titlepage">
3759 <xsl:variable name="recto.content">
3760 <xsl:call-template name="sidebar.titlepage.before.recto"/>
3761 <xsl:call-template name="sidebar.titlepage.recto"/>
3762 </xsl:variable>
3763 <xsl:variable name="recto.elements.count">
3764 <xsl:choose>
3765 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3766 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3767 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
3768 <xsl:otherwise>1</xsl:otherwise>
3769 </xsl:choose>
3770 </xsl:variable>
3771 <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count &gt; 0)">
3772 <div><xsl:copy-of select="$recto.content"/></div>
3773 </xsl:if>
3774 <xsl:variable name="verso.content">
3775 <xsl:call-template name="sidebar.titlepage.before.verso"/>
3776 <xsl:call-template name="sidebar.titlepage.verso"/>
3777 </xsl:variable>
3778 <xsl:variable name="verso.elements.count">
3779 <xsl:choose>
3780 <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3781 <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
3782 <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
3783 <xsl:otherwise>1</xsl:otherwise>
3784 </xsl:choose>
3785 </xsl:variable>
3786 <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count &gt; 0)">
3787 <div><xsl:copy-of select="$verso.content"/></div>
3788 </xsl:if>
3789 <xsl:call-template name="sidebar.titlepage.separator"/>
3790 </div>
3791</xsl:template>
3792
3793<xsl:template match="*" mode="sidebar.titlepage.recto.mode">
3794 <!-- if an element isn't found in this mode, -->
3795 <!-- try the generic titlepage.mode -->
3796 <xsl:apply-templates select="." mode="titlepage.mode"/>
3797</xsl:template>
3798
3799<xsl:template match="*" mode="sidebar.titlepage.verso.mode">
3800 <!-- if an element isn't found in this mode, -->
3801 <!-- try the generic titlepage.mode -->
3802 <xsl:apply-templates select="." mode="titlepage.mode"/>
3803</xsl:template>
3804
3805<xsl:template match="title" mode="sidebar.titlepage.recto.auto.mode">
3806<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
3807<xsl:call-template name="formal.object.heading">
3808<xsl:with-param name="object" select="ancestor-or-self::sidebar[1]"/>
3809</xsl:call-template>
3810</div>
3811</xsl:template>
3812
3813<xsl:template match="subtitle" mode="sidebar.titlepage.recto.auto.mode">
3814<div xsl:use-attribute-sets="sidebar.titlepage.recto.style">
3815<xsl:apply-templates select="." mode="sidebar.titlepage.recto.mode"/>
3816</div>
3817</xsl:template>
3818
3819</xsl:stylesheet>
3820
diff --git a/documentation/yocto-project-qs/yocto-project-qs.xml b/documentation/yocto-project-qs/yocto-project-qs.xml
new file mode 100644
index 0000000000..d0f0d113da
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs.xml
@@ -0,0 +1,968 @@
1<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
3[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
4
5<article id='intro'>
6 <articleinfo>
7 <title>Yocto Project Quick Start</title>
8
9 <copyright>
10 <year>&COPYRIGHT_YEAR;</year>
11 <holder>Linux Foundation</holder>
12 </copyright>
13
14 <legalnotice>
15 <para>
16 Permission is granted to copy, distribute and/or modify this document under
17 the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
18 </para>
19 <note>
20 For the latest version of this manual associated with this
21 Yocto Project release, see the
22 <ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink>
23 from the Yocto Project website.
24 </note>
25 </legalnotice>
26
27
28 <abstract>
29 <imagedata fileref="figures/yocto-project-transp.png"
30 width="6in" depth="1in"
31 align="right" scale="25" />
32 </abstract>
33 </articleinfo>
34
35<section id='welcome'>
36 <title>Welcome!</title>
37 <para>
38 Welcome to the Yocto Project!
39 The Yocto Project is an open-source collaboration project focused on
40 embedded Linux developers.
41 Among other things, the Yocto Project uses a build system based on the
42 OpenEmbedded (OE) project, which uses the
43 <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>
44 tool, to construct complete Linux images.
45 The BitBake and OE components are combined together to form
46 <ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink>,
47 a reference build system.
48 </para>
49
50 <para>
51 If you don't have a system that runs Linux and you want to give the Yocto Project a test run,
52 you might consider using the Yocto Project Build Appliance.
53 The Build Appliance allows you to build and boot a custom embedded Linux image with the Yocto
54 Project using a non-Linux development system.
55 See the <ulink url='https://www.yoctoproject.org/tools-resources/projects/build-appliance'>Yocto
56 Project Build Appliance</ulink> for more information.
57 </para>
58
59 <para>
60 On the other hand, if you know all about open-source development, Linux development environments,
61 Git source repositories and the like and you just want some quick information that lets you try out
62 the Yocto Project on your Linux system, skip right to the
63 "<link linkend='super-user'>Super User</link>" section at the end of this quick start.
64 </para>
65
66 <para>
67 For the rest of you, this short document will give you some basic information about the environment and
68 let you experience it in its simplest form.
69 After reading this document, you will have a basic understanding of what the Yocto Project is
70 and how to use some of its core components.
71 This document steps you through a simple example showing you how to build a small image
72 and run it using the Quick EMUlator (QEMU emulator).
73 </para>
74
75 <para>
76 For more detailed information on the Yocto Project, you should check out these resources:
77 <itemizedlist>
78 <listitem><para><emphasis>Website:</emphasis> The <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
79 provides the latest builds, breaking news, full development documentation, and a rich Yocto
80 Project Development Community into which you can tap.
81 </para></listitem>
82 <listitem><para><emphasis>FAQs:</emphasis> Lists commonly asked Yocto Project questions and answers.
83 You can find two FAQs: <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>Yocto Project FAQ</ulink> on
84 a wiki, and the
85 "<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>" chapter in
86 the Yocto Project Reference Manual.
87 </para></listitem>
88 <listitem><para><emphasis>Developer Screencast:</emphasis> The
89 <ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New Developer Screencast Tutorial</ulink>
90 provides a 30-minute video created for users unfamiliar with
91 the Yocto Project but familiar with Linux build systems.
92 While this screencast is somewhat dated, the introductory
93 and fundamental concepts are useful for the beginner.
94 </para></listitem>
95 </itemizedlist>
96 </para>
97</section>
98
99<section id='yp-intro'>
100 <title>Introducing the Yocto Project Development Environment</title>
101 <para>
102 The Yocto Project through the OpenEmbedded build system provides an open source development
103 environment targeting the ARM, MIPS, PowerPC and x86 architectures for a variety of
104 platforms including x86-64 and emulated ones.
105 You can use components from the Yocto Project to design, develop, build, debug, simulate,
106 and test the complete software stack using Linux, the X Window System, GNOME Mobile-based
107 application frameworks, and Qt frameworks.
108 </para>
109
110 <mediaobject>
111 <imageobject>
112 <imagedata fileref="figures/yocto-environment.png"
113 format="PNG" align='center' scalefit='1' width="100%"/>
114 </imageobject>
115 <caption>
116 <para>The Yocto Project Development Environment</para>
117 </caption>
118 </mediaobject>
119
120 <para>
121 Here are some highlights for the Yocto Project:
122 </para>
123
124 <itemizedlist>
125 <listitem>
126 <para>Provides a recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment.</para>
127 </listitem>
128 <listitem>
129 <para>Makes available system components such as X11, GTK+, Qt, Clutter, and SDL
130 (among others) so you can create a rich user experience on devices
131 that have display hardware.
132 For devices that do not have a display or where you wish to use alternative UI
133 frameworks, these components need not be installed.</para>
134 </listitem>
135 <listitem>
136 <para>Creates a focused and stable core compatible with the OpenEmbedded
137 project with which you can easily and reliably build and develop.</para>
138 </listitem>
139 <listitem>
140 <para>Fully supports a wide range of hardware and device emulation through the QEMU
141 Emulator.</para>
142 </listitem>
143 </itemizedlist>
144
145 <para>
146 The Yocto Project can generate images for many kinds of devices.
147 However, the standard example machines target QEMU full-system emulation for x86, x86-64, ARM, MIPS,
148 and PPC-based architectures as well as specific hardware such as the
149 <trademark class='registered'>Intel</trademark> Desktop Board DH55TC.
150 Because an image developed with the Yocto Project can boot inside a QEMU emulator, the
151 development environment works nicely as a test platform for developing embedded software.
152 </para>
153
154 <para>
155 Another important Yocto Project feature is the Sato reference User Interface.
156 This optional GNOME mobile-based UI, which is intended for devices with
157 restricted screen sizes, sits neatly on top of a device using the
158 GNOME Mobile Stack and provides a well-defined user experience.
159 Implemented in its own layer, it makes it clear to developers how they can implement
160 their own user interface on top of a Linux image created with the Yocto Project.
161 </para>
162</section>
163
164<section id='yp-resources'>
165 <title>What You Need and How You Get It</title>
166
167 <para>
168 You need these things to develop projects in the Yocto Project
169 environment:
170 </para>
171
172 <itemizedlist>
173 <listitem><para>
174 A host system with a minimum of 50 Gbytes of free disk space that
175 is running a supported Linux distribution (i.e. recent releases
176 of Fedora, openSUSE, CentOS, Debian, or Ubuntu).
177 If the host system supports multiple cores and threads, you can
178 configure the Yocto Project build system to significantly
179 decrease the time needed to build images.
180 </para></listitem>
181 <listitem><para>
182 Appropriate packages installed on the system you are using for
183 builds.
184 </para></listitem>
185 <listitem><para>
186 A release of the Yocto Project.
187 </para></listitem>
188 </itemizedlist>
189
190 <section id='the-linux-distro'>
191 <title>The Linux Distribution</title>
192
193 <para>
194 The Yocto Project team is continually verifying more and more Linux
195 distributions with each release.
196 In general, if you have the current release minus one of the following
197 distributions you should have no problems.
198 <itemizedlist>
199 <listitem><para>Ubuntu</para></listitem>
200 <listitem><para>Fedora</para></listitem>
201 <listitem><para>openSUSE</para></listitem>
202 <listitem><para>CentOS</para></listitem>
203 <listitem><para>Debian</para></listitem>
204 </itemizedlist>
205 For a more detailed list of distributions that support the Yocto Project,
206 see the
207 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" section
208 in the Yocto Project Reference Manual.
209 </para>
210 <para>
211 The OpenEmbedded build system should be able to run on any modern
212 distribution that has the following versions for Git, tar, and
213 Python.
214 <itemizedlist>
215 <listitem><para>Git 1.7.8 or greater</para></listitem>
216 <listitem><para>tar 1.24 or greater</para></listitem>
217 <listitem><para>Python 2.7.3 or greater excluding Python
218 3.x, which is not supported.</para></listitem>
219 </itemizedlist>
220 Earlier releases of Python are known to not work and the
221 system does not support Python 3 at this time.
222 If your system does not meet any of these three listed
223 version requirements, you can
224 take steps to prepare the system so that you can still use the build
225 system.
226 See the
227 "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
228 section in the Yocto Project Reference Manual for information.
229 </para>
230 <para>
231 This document assumes you are running one of the previously noted
232 distributions on your Linux-based host systems.
233 </para>
234 <note>
235 <para>
236 If you attempt to use a distribution not in the above list,
237 you may or may not have success.
238 Yocto Project releases are tested against the stable Linux
239 distributions listed in the
240 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
241 section of the Yocto Project Reference Manual.
242 If you encounter problems, please go to
243 <ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
244 and submit a bug.
245 We are interested in hearing about your experience.
246 </para>
247 </note>
248 </section>
249
250 <section id='packages'>
251 <title>The Packages</title>
252
253 <para>
254 Packages and package installation vary depending on your development system
255 and on your intent.
256 For example, if you want to build an image that can run
257 on QEMU in graphical mode (a minimal, basic build
258 requirement), then the number of packages is different than if you want to
259 build an image on a headless system or build out the Yocto Project
260 documentation set.
261 Collectively, the number of required packages is large
262 if you want to be able to cover all cases.
263 <note>In general, you need to have root access and then install the
264 required packages.
265 Thus, the commands in the following section may or may not work
266 depending on whether or not your Linux distribution has
267 <filename>sudo</filename> installed.</note>
268 </para>
269
270 <para>
271 The next few sections list, by supported Linux Distributions, the required
272 packages needed to build an image that runs on QEMU in graphical mode
273 (e.g. essential plus graphics support).
274 </para>
275
276 <para>
277 For lists of required packages for other scenarios, see the
278 "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
279 section in the Yocto Project Reference Manual.
280 </para>
281
282 <section id='ubuntu'>
283 <title>Ubuntu and Debian</title>
284
285 <para>
286 The essential and graphical support packages you need for a
287 supported Ubuntu or Debian distribution are shown in the
288 following command:
289 <literallayout class='monospaced'>
290 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
291 </literallayout>
292 </para>
293 </section>
294
295 <section id='fedora'>
296 <title>Fedora</title>
297
298 <para>
299 The essential and graphical packages you need for a supported
300 Fedora distribution are shown in the following command:
301 <literallayout class='monospaced'>
302 $ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
303 </literallayout>
304 </para>
305 </section>
306
307 <section id='opensuse'>
308 <title>OpenSUSE</title>
309
310 <para>
311 The essential and graphical packages you need for a supported
312 OpenSUSE distribution are shown in the following command:
313 <literallayout class='monospaced'>
314 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
315 </literallayout>
316 </para>
317 </section>
318
319 <section id='centos'>
320 <title>CentOS</title>
321
322 <para>
323 The essential and graphical packages you need for a supported
324 CentOS distribution are shown in the following command:
325 <literallayout class='monospaced'>
326 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
327 </literallayout>
328 <note>Depending on the CentOS version you are using, other requirements
329 and dependencies might exist.
330 For details, you should look at the CentOS sections on the
331 <ulink url='https://wiki.yoctoproject.org/wiki/Poky/GettingStarted/Dependencies'>Poky/GettingStarted/Dependencies</ulink>
332 wiki page.</note>
333 </para>
334 </section>
335 </section>
336
337 <section id='releases'>
338 <title>Yocto Project Release</title>
339
340 <para>
341 It is recommended that you get the latest Yocto Project files
342 by setting up (cloning in
343 <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> terms) a local
344 copy of the
345 <filename>poky</filename> Git repository on your host development
346 system.
347 Doing so allows you to contribute back to the Yocto Project project.
348 For information on how to get set up using this method, see the
349 "<ulink url='&YOCTO_DOCS_DEV_URL;#local-yp-release'>Yocto
350 Project Release</ulink>" item in the Yocto Project Development Manual.
351 </para>
352
353 <para>
354 You can also get the Yocto Project Files by downloading
355 Yocto Project releases from the
356 <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>.
357 From the website, you just click "Downloads" in the navigation pane
358 to the left to display all Yocto Project downloads.
359 Current and archived releases are available for download.
360 Nightly and developmental builds are also maintained at
361 <ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
362 However, for this document a released version of Yocto Project is used.
363 </para>
364
365 </section>
366</section>
367
368<section id='test-run'>
369 <title>A Quick Test Run</title>
370
371 <para>
372 Now that you have your system requirements in order, you can give the Yocto Project a try.
373 This section presents some steps that let you do the following:
374 </para>
375
376 <itemizedlist>
377 <listitem>
378 <para>
379 Build an image and run it in the QEMU emulator.
380 </para>
381 </listitem>
382 <listitem>
383 <para>
384 Use a pre-built image and run it in the QEMU emulator.
385 </para>
386 </listitem>
387 </itemizedlist>
388
389 <section id='building-image'>
390 <title>Building an Image</title>
391
392 <para>
393 In the development environment you will need to build an image whenever you change hardware
394 support, add or change system libraries, or add or change services that have dependencies.
395 </para>
396
397 <mediaobject>
398 <imageobject>
399 <imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/>
400 </imageobject>
401 <caption>
402 <para>Building an Image</para>
403 </caption>
404 </mediaobject>
405
406 <para>
407 Use the following commands to build your image.
408 The OpenEmbedded build process creates an entire Linux
409 distribution, including the toolchain, from source.
410 <note><title>Note about Network Proxies</title>
411 <para>
412 By default, the build process searches for source code
413 using a pre-determined order through a set of locations.
414 If you are working behind a firewall and your build system
415 is not set up for proxies, you could encounter problems
416 with the build process when fetching source code (e.g.
417 fetcher failures or Git failures).
418 </para>
419
420 <para>
421 If you do not know your proxy settings, consult your
422 local network infrastructure resources and get that
423 information.
424 A good starting point could also be to check your web
425 browser settings.
426 Finally, you can find more information on using the Yocto
427 Project behind a firewall in the Yocto Project Reference
428 Manual
429 <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
430 and on the
431 "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
432 wiki page.
433 </para>
434 </note>
435 </para>
436
437 <para>
438 <literallayout class='monospaced'>
439 $ git clone &YOCTO_GIT_URL;/git/poky
440 $ cd poky
441 $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
442 $ source &OE_INIT_FILE;
443 </literallayout>
444 </para>
445
446 <tip>
447 <para>
448 To help conserve disk space during builds, you can add the
449 following statement to your project's configuration file,
450 which for this example is
451 <filename>poky/build/conf/local.conf</filename>.
452 Adding this statement deletes the work directory used for
453 building a package once the package is built.
454 <literallayout class='monospaced'>
455 INHERIT += "rm_work"
456 </literallayout>
457 </para>
458 </tip>
459
460 <itemizedlist>
461 <listitem><para>In the previous example, the first command uses
462 <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> to create
463 a local repository named <filename>poky</filename> that is a
464 clone of the upstream Yocto Project
465 <filename>poky</filename> repository.</para></listitem>
466 <listitem><para>The third command checks out a local branch and
467 names it <filename>&DISTRO_NAME;</filename>.
468 The local branch tracks the upstream branch of the same name.
469 Creating your own branch based on the released branch ensures
470 you are using the latest files for that release.
471 </para></listitem>
472 <listitem><para>
473 The final command runs the Yocto Project
474 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
475 environment setup script.
476 Running this script defines OpenEmbedded build environment
477 settings needed to complete the build.
478 The script also creates the
479 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
480 which is <filename>build</filename> in this case and is located
481 in the
482 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
483 After the script runs, your current working directory is set
484 to the Build Directory.
485 Later, when the build completes, the Build Directory contains
486 all the files created during the build.
487 <note>
488 For information on running a memory-resident
489 <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>,
490 see the
491 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
492 setup script.
493 </note></para></listitem>
494 </itemizedlist>
495 <para>
496 Take some time to examine your <filename>local.conf</filename> file
497 in your project's configuration directory, which is found in the Build Directory.
498 The defaults in that file should work fine.
499 However, there are some variables of interest at which you might look.
500 </para>
501
502 <para>
503 By default, the target architecture for the build is <filename>qemux86</filename>,
504 which produces an image that can be used in the QEMU emulator and is targeted at an
505 <trademark class='registered'>Intel</trademark> 32-bit based architecture.
506 To change this default, edit the value of the
507 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
508 variable in the configuration file before launching the build.
509 </para>
510
511 <para>
512 Another couple of variables of interest are the
513 <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink> and the
514 <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> variables.
515 By default, these variables are set to the number of processor
516 cores your build host uses.
517 However, if your build host uses multiple processor cores,
518 you should increase these settings to twice the number of
519 cores used.
520 Doing so can significantly shorten your build time.
521 </para>
522
523 <para>
524 Another consideration before you build is the package manager used when creating
525 the image.
526 By default, the OpenEmbedded build system uses the RPM package manager.
527 You can control this configuration by using the
528 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
529 For additional package manager selection information, see the
530 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package*.bbclass</filename></ulink>"
531 section in the Yocto Project Reference Manual.
532 </para>
533
534 <para>
535 Continue with the following command to build an OS image for the target, which is
536 <filename>core-image-sato</filename> in this example.
537 For information on the <filename>-k</filename> option use the
538 <filename>bitbake --help</filename> command, see the
539 "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
540 section in the Yocto Project Reference Manual, or see the
541 "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
542 section in the BitBake User Manual.
543 <literallayout class='monospaced'>
544 $ bitbake -k core-image-sato
545 </literallayout>
546 <note>
547 BitBake requires Python 2.6 or 2.7. For more information on
548 this requirement, see the
549 "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python</ulink>"
550 section in the Yocto Project Reference Manual.
551 </note>
552 The final command runs the image using the QEMU emulator:
553 <literallayout class='monospaced'>
554 $ runqemu qemux86
555 </literallayout>
556 <note>
557 <para>
558 Depending on the number of processors and cores, the amount
559 of RAM, the speed of your Internet connection and other
560 factors, the build process could take several hours the
561 first time you run it.
562 Subsequent builds run much faster since parts of the build
563 are cached.
564 </para>
565 </note>
566 </para>
567 </section>
568
569 <section id='using-pre-built'>
570 <title>Using Pre-Built Binaries and QEMU</title>
571
572 <para>
573 If hardware, libraries and services are stable, you can get started by using a pre-built binary
574 of the filesystem image, kernel, and toolchain and run it using the QEMU emulator.
575 This scenario is useful for developing application software.
576 </para>
577
578 <mediaobject>
579 <imageobject>
580 <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
581 </imageobject>
582 <caption>
583 <para>Using a Pre-Built Image</para>
584 </caption>
585 </mediaobject>
586
587 <para>
588 For this scenario, you need to do several things:
589 </para>
590
591 <itemizedlist>
592 <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem>
593 <listitem><para>Download the pre-built image that will boot with QEMU.
594 You need to be sure to get the QEMU image that matches your target machine’s
595 architecture (e.g. x86, ARM, etc.).</para></listitem>
596 <listitem><para>Download the filesystem image for your target machine's architecture.
597 </para></listitem>
598 <listitem><para>Set up the environment to emulate the hardware and then start the QEMU emulator.
599 </para></listitem>
600 </itemizedlist>
601
602 <section id='installing-the-toolchain'>
603 <title>Installing the Toolchain</title>
604
605 <para>
606 You can download a tarball installer, which includes the
607 pre-built toolchain, the <filename>runqemu</filename>
608 script, and support files from the appropriate directory under
609 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
610 Toolchains are available for 32-bit and 64-bit x86 development
611 systems from the <filename>i686</filename> and
612 <filename>x86_64</filename> directories, respectively.
613 The toolchains the Yocto Project provides are based off the
614 <filename>core-image-sato</filename> image and contain
615 libraries appropriate for developing against that image.
616 Each type of development system supports five or more target
617 architectures.
618 </para>
619
620 <para>
621 The names of the tarball installer scripts are such that a
622 string representing the host system appears first in the
623 filename and then is immediately followed by a string
624 representing the target architecture.
625 </para>
626
627 <literallayout class='monospaced'>
628 poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
629
630 Where:
631 <replaceable>host_system</replaceable> is a string representing your development system:
632
633 i686 or x86_64.
634
635 <replaceable>image_type</replaceable> is a string representing the image you wish to
636 develop a Software Development Toolkit (SDK) for use against.
637 The Yocto Project builds toolchain installers using the
638 following BitBake command:
639
640 bitbake core-image-sato -c populate_sdk
641
642 <replaceable>arch</replaceable> is a string representing the tuned target architecture:
643
644 i586, x86_64, powerpc, mips, armv7a or armv5te
645
646 <replaceable>release_version</replaceable> is a string representing the release number of the
647 Yocto Project:
648
649 &DISTRO;, &DISTRO;+snapshot
650 </literallayout>
651
652 <para>
653 For example, the following toolchain installer is for a 64-bit
654 development host system and a i586-tuned target architecture
655 based off the SDK for <filename>core-image-sato</filename>:
656 <literallayout class='monospaced'>
657 poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
658 </literallayout>
659 </para>
660
661 <para>
662 Toolchains are self-contained and by default are installed into
663 <filename>/opt/poky</filename>.
664 However, when you run the toolchain installer, you can choose an
665 installation directory.
666 </para>
667
668 <para>
669 The following command shows how to run the installer given a toolchain tarball
670 for a 64-bit x86 development host system and a 32-bit x86 target architecture.
671 You must change the permissions on the toolchain
672 installer script so that it is executable.
673 </para>
674
675 <para>
676 The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>.
677 <note>
678 If you do not have write permissions for the directory into which you are installing
679 the toolchain, the toolchain installer notifies you and exits.
680 Be sure you have write permissions in the directory and run the installer again.
681 </note>
682 </para>
683
684 <para>
685 <literallayout class='monospaced'>
686 $ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
687 </literallayout>
688 </para>
689
690 <para>
691 For more information on how to install tarballs, see the
692 "<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
693 "<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Build Directory</ulink>" sections in the Yocto Project Application Developer's Guide.
694 </para>
695 </section>
696
697 <section id='downloading-the-pre-built-linux-kernel'>
698 <title>Downloading the Pre-Built Linux Kernel</title>
699
700 <para>
701 You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
702 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
703 Be sure to use the kernel that matches the architecture you want to simulate.
704 Download areas exist for the five supported machine architectures:
705 <filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
706 <filename>qemux86</filename>, and <filename>qemux86-64</filename>.
707 </para>
708
709 <para>
710 Most kernel files have one of the following forms:
711 <literallayout class='monospaced'>
712 *zImage-qemu<replaceable>arch</replaceable>.bin
713 vmlinux-qemu<replaceable>arch</replaceable>.bin
714
715 Where:
716 <replaceable>arch</replaceable> is a string representing the target architecture:
717 x86, x86-64, ppc, mips, or arm.
718 </literallayout>
719 </para>
720
721 <para>
722 You can learn more about downloading a Yocto Project kernel in the
723 "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink>"
724 bulleted item in the Yocto Project Development Manual.
725 </para>
726 </section>
727
728 <section id='downloading-the-filesystem'>
729 <title>Downloading the Filesystem</title>
730
731 <para>
732 You can also download the filesystem image suitable for your target architecture from
733 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
734 Again, be sure to use the filesystem that matches the architecture you want
735 to simulate.
736 </para>
737
738 <para>
739 The filesystem image has two tarball forms: <filename>ext3</filename> and
740 <filename>tar</filename>.
741 You must use the <filename>ext3</filename> form when booting an image using the
742 QEMU emulator.
743 The <filename>tar</filename> form can be flattened out in your host development system
744 and used for build purposes with the Yocto Project.
745 <literallayout class='monospaced'>
746 core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.ext3
747 core-image-<replaceable>profile</replaceable>-qemu<replaceable>arch</replaceable>.tar.bz2
748
749 Where:
750 <replaceable>profile</replaceable> is the filesystem image's profile:
751 lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
752 sato-dev, or sato-sdk. For information on these types of image
753 profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
754 chapter in the Yocto Project Reference Manual.
755
756 <replaceable>arch</replaceable> is a string representing the target architecture:
757 x86, x86-64, ppc, mips, or arm.
758 </literallayout>
759 </para>
760 </section>
761
762 <section id='setting-up-the-environment-and-starting-the-qemu-emulator'>
763 <title>Setting Up the Environment and Starting the QEMU Emulator</title>
764
765 <para>
766 Before you start the QEMU emulator, you need to set up the emulation environment.
767 The following command form sets up the emulation environment.
768 <literallayout class='monospaced'>
769 $ source &YOCTO_ADTPATH_DIR;/environment-setup-<replaceable>arch</replaceable>-poky-linux-<replaceable>if</replaceable>
770
771 Where:
772 <replaceable>arch</replaceable> is a string representing the target architecture:
773 i586, x86_64, ppc603e, mips, or armv5te.
774
775 <replaceable>if</replaceable> is a string representing an embedded application binary interface.
776 Not all setup scripts include this string.
777 </literallayout>
778 </para>
779
780 <para>
781 Finally, this command form invokes the QEMU emulator
782 <literallayout class='monospaced'>
783 $ runqemu <replaceable>qemuarch</replaceable> <replaceable>kernel-image</replaceable> <replaceable>filesystem-image</replaceable>
784
785 Where:
786 <replaceable>qemuarch</replaceable> is a string representing the target architecture: qemux86, qemux86-64,
787 qemuppc, qemumips, or qemuarm.
788
789 <replaceable>kernel-image</replaceable> is the architecture-specific kernel image.
790
791 <replaceable>filesystem-image</replaceable> is the .ext3 filesystem image.
792
793 </literallayout>
794 </para>
795
796 <para>
797 Continuing with the example, the following two commands setup the emulation
798 environment and launch QEMU.
799 This example assumes the root filesystem (<filename>.ext3</filename> file) and
800 the pre-built kernel image file both reside in your home directory.
801 The kernel and filesystem are for a 32-bit target architecture.
802 <literallayout class='monospaced'>
803 $ cd $HOME
804 $ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
805 $ runqemu qemux86 bzImage-qemux86.bin \
806 core-image-sato-qemux86.ext3
807 </literallayout>
808 </para>
809
810 <para>
811 The environment in which QEMU launches varies depending on the filesystem image and on the
812 target architecture.
813 For example, if you source the environment for the ARM target
814 architecture and then boot the minimal QEMU image, the emulator comes up in a new
815 shell in command-line mode.
816 However, if you boot the SDK image, QEMU comes up with a GUI.
817 <note>Booting the PPC image results in QEMU launching in the same shell in
818 command-line mode.</note>
819 </para>
820 </section>
821 </section>
822</section>
823
824<section id='super-user'>
825 <title>Super User
826</title>
827
828 <para>
829 This section
830 <footnote>
831 <para>
832 Kudos and thanks to Robert P. J. Day of
833 <ulink url='http://www.crashcourse.ca'>CrashCourse</ulink> for providing the basis
834 for this "expert" section with information from one of his
835 <ulink url='http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start'>wiki</ulink>
836 pages.
837 </para>
838 </footnote>
839 gives you a minimal description of how to use the Yocto Project to build
840 images for Beaglebone hardware starting from scratch.
841 The steps were performed on a 64-bit Ubuntu 12.04 system that
842 has four cores.
843 </para>
844
845 <section id='getting-yocto'>
846 <title>Getting the Yocto Project</title>
847
848 <para>
849 Set up your
850 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
851 by using Git to clone the <filename>poky</filename>
852 repository and then check out the release branch:
853 <literallayout class='monospaced'>
854 $ cd ~
855 $ git clone git://git.yoctoproject.org/poky
856 $ cd poky
857 $ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
858 </literallayout>
859 </para>
860 </section>
861
862 <section id='setting-up-your-host'>
863 <title>Setting Up Your Host</title>
864
865 <para>
866 You need some packages for everything to work.
867 Rather than duplicate them here, look at the
868 "<link linkend='packages'>The Packages</link>"
869 section earlier in this quick start.
870 </para>
871 </section>
872
873 <section id='initializing-the-build-environment'>
874 <title>Initializing the Build Environment</title>
875
876 <para>
877 From the root directory of your
878 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
879 initialize your environment and provide a meaningful
880 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
881 name:
882 <literallayout class='monospaced'>
883 $ source &OE_INIT_FILE; mybuilds
884 </literallayout>
885 At this point, the <filename>mybuilds</filename> directory has
886 been created for you and it is now your current working directory.
887 If you do not provide your own directory name,
888 it defaults to <filename>build</filename>,
889 which is inside the Source Directory.
890 </para>
891 </section>
892
893 <section id='configuring-the-local.conf-file'>
894 <title>Configuring the local.conf File</title>
895
896 <para>
897 Initializing the build environment creates a
898 <filename>conf/local.conf</filename> configuration file
899 in the Build Directory.
900 You need to manually edit this file to specify the machine you
901 are building and to optimize your build time.
902 Here are the minimal changes to make:
903 <literallayout class='monospaced'>
904 BB_NUMBER_THREADS = "8"
905 PARALLEL_MAKE = "-j 8"
906 MACHINE ?= "beaglebone"
907 </literallayout>
908 Briefly, set
909 <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink>
910 and
911 <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> to
912 twice your host processor's number of cores.
913 </para>
914
915 <para>
916 A good deal that goes into a Yocto Project build is simply
917 downloading all of the source tarballs.
918 Steps exist that can help you be more efficient with gathering
919 source files.
920 For example, you can set up local mirrors that hold your
921 source tarballs or you can pre-fetch all your source without
922 initiating a build until later.
923 For more information, see the
924 "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-source-files'>Working with Source Files</ulink>"
925 section in the Yocto Project Development Manual.
926 </para>
927 </section>
928
929 <section id='building-the-image'>
930 <title>Building the Image</title>
931
932 <para>
933 At this point, you need to select an image to build for the
934 Beaglebone hardware.
935 If this is your first build using the Yocto Project, you should try
936 the smallest and simplest image:
937 <literallayout class='monospaced'>
938 $ bitbake core-image-minimal
939 </literallayout>
940 Now you just wait for the build to finish.
941 </para>
942
943 <para>
944 By default, BitBake aborts when it encounters an error during
945 the build.
946 If you want to make sure the build continues even when BitBake
947 encounters an error, use this variation:
948 <literallayout class='monospaced'>
949 $ bitbake -k core-image-minimal
950 </literallayout>
951 </para>
952
953 <para>
954 Once you have your image, you can take steps to load and boot it on
955 the target hardware.
956 </para>
957
958 <para>
959 You can learn about BitBake in general by reading the
960 <ulink url='&YOCTO_DOCS_BB_URL;'>BitBake User Manual</ulink>.
961 </para>
962 </section>
963</section>
964
965</article>
966<!--
967vim: expandtab tw=80 ts=4
968-->