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.css979
-rw-r--r--documentation/yocto-project-qs/yocto-project-qs-customization.xsl9
-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.xml963
9 files changed, 5796 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..234e432a74
--- /dev/null
+++ b/documentation/yocto-project-qs/qs-style.css
@@ -0,0 +1,979 @@
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-image: url("../figures/yocto-project-bw.png");
122 background-position: top;
123 margin-top: -256px;
124 padding-right: 50px;
125 margin-left: 50px;
126 text-align: center;
127 width: 600px;
128}
129
130h3.author {
131 margin: 0em 0me 0em 0em;
132 padding: 0em 0em 0em 0em;
133 font-weight: normal;
134 font-size: 100%;
135 color: #333;
136 clear: both;
137}
138
139.author tt.email {
140 font-size: 66%;
141}
142
143.titlepage hr {
144 width: 0em;
145 clear: both;
146}
147
148.revhistory {
149 padding-top: 2em;
150 clear: both;
151}
152
153.toc,
154.list-of-tables,
155.list-of-examples,
156.list-of-figures {
157 padding: 1.33em 0em 2.5em 0em;
158 color: #00557D;
159}
160
161.toc p,
162.list-of-tables p,
163.list-of-figures p,
164.list-of-examples p {
165 padding: 0em 0em 0em 0em;
166 padding: 0em 0em 0.3em;
167 margin: 1.5em 0em 0em 0em;
168}
169
170.toc p b,
171.list-of-tables p b,
172.list-of-figures p b,
173.list-of-examples p b{
174 font-size: 100.0%;
175 font-weight: bold;
176}
177
178.toc dl,
179.list-of-tables dl,
180.list-of-figures dl,
181.list-of-examples dl {
182 margin: 0em 0em 0.5em 0em;
183 padding: 0em 0em 0em 0em;
184}
185
186.toc dt {
187 margin: 0em 0em 0em 0em;
188 padding: 0em 0em 0em 0em;
189}
190
191.toc dd {
192 margin: 0em 0em 0em 2.6em;
193 padding: 0em 0em 0em 0em;
194}
195
196div.glossary dl,
197div.variablelist dl {
198}
199
200.glossary dl dt,
201.variablelist dl dt,
202.variablelist dl dt span.term {
203 font-weight: normal;
204 width: 20em;
205 text-align: right;
206}
207
208.variablelist dl dt {
209 margin-top: 0.5em;
210}
211
212.glossary dl dd,
213.variablelist dl dd {
214 margin-top: -1em;
215 margin-left: 25.5em;
216}
217
218.glossary dd p,
219.variablelist dd p {
220 margin-top: 0em;
221 margin-bottom: 1em;
222}
223
224
225div.calloutlist table td {
226 padding: 0em 0em 0em 0em;
227 margin: 0em 0em 0em 0em;
228}
229
230div.calloutlist table td p {
231 margin-top: 0em;
232 margin-bottom: 1em;
233}
234
235div p.copyright {
236 text-align: left;
237}
238
239div.legalnotice p.legalnotice-title {
240 margin-bottom: 0em;
241}
242
243p {
244 line-height: 1.5em;
245 margin-top: 0em;
246
247}
248
249dl {
250 padding-top: 0em;
251}
252
253hr {
254 border: solid 1px;
255}
256
257
258.mediaobject,
259.mediaobjectco {
260 text-align: center;
261}
262
263img {
264 border: none;
265}
266
267ul {
268 padding: 0em 0em 0em 1.5em;
269}
270
271ul li {
272 padding: 0em 0em 0em 0em;
273}
274
275ul li p {
276 text-align: left;
277}
278
279table {
280 width :100%;
281}
282
283th {
284 padding: 0.25em;
285 text-align: left;
286 font-weight: normal;
287 vertical-align: top;
288}
289
290td {
291 padding: 0.25em;
292 vertical-align: top;
293}
294
295p a[id] {
296 margin: 0px;
297 padding: 0px;
298 display: inline;
299 background-image: none;
300}
301
302a {
303 text-decoration: underline;
304 color: #444;
305}
306
307pre {
308 overflow: auto;
309}
310
311a:hover {
312 text-decoration: underline;
313 /*font-weight: bold;*/
314}
315
316
317div.informalfigure,
318div.informalexample,
319div.informaltable,
320div.figure,
321div.table,
322div.example {
323 margin: 1em 0em;
324 padding: 1em;
325 page-break-inside: avoid;
326}
327
328
329div.informalfigure p.title b,
330div.informalexample p.title b,
331div.informaltable p.title b,
332div.figure p.title b,
333div.example p.title b,
334div.table p.title b{
335 padding-top: 0em;
336 margin-top: 0em;
337 font-size: 100%;
338 font-weight: normal;
339}
340
341.mediaobject .caption,
342.mediaobject .caption p {
343 text-align: center;
344 font-size: 80%;
345 padding-top: 0.5em;
346 padding-bottom: 0.5em;
347}
348
349.epigraph {
350 padding-left: 55%;
351 margin-bottom: 1em;
352}
353
354.epigraph p {
355 text-align: left;
356}
357
358.epigraph .quote {
359 font-style: italic;
360}
361.epigraph .attribution {
362 font-style: normal;
363 text-align: right;
364}
365
366span.application {
367 font-style: italic;
368}
369
370.programlisting {
371 font-family: monospace;
372 font-size: 80%;
373 white-space: pre;
374 margin: 1.33em 0em;
375 padding: 1.33em;
376}
377
378.tip,
379.warning,
380.caution,
381.note {
382 margin-top: 1em;
383 margin-bottom: 1em;
384
385}
386
387/* force full width of table within div */
388.tip table,
389.warning table,
390.caution table,
391.note table {
392 border: none;
393 width: 100%;
394}
395
396
397.tip table th,
398.warning table th,
399.caution table th,
400.note table th {
401 padding: 0.8em 0.0em 0.0em 0.0em;
402 margin : 0em 0em 0em 0em;
403}
404
405.tip p,
406.warning p,
407.caution p,
408.note p {
409 margin-top: 0.5em;
410 margin-bottom: 0.5em;
411 padding-right: 1em;
412 text-align: left;
413}
414
415.acronym {
416 text-transform: uppercase;
417}
418
419b.keycap,
420.keycap {
421 padding: 0.09em 0.3em;
422 margin: 0em;
423}
424
425.itemizedlist li {
426 clear: none;
427}
428
429.filename {
430 font-size: medium;
431 font-family: Courier, monospace;
432}
433
434
435div.navheader, div.heading{
436 position: absolute;
437 left: 0em;
438 top: 0em;
439 width: 100%;
440 background-color: #cdf;
441 width: 100%;
442}
443
444div.navfooter, div.footing{
445 position: fixed;
446 left: 0em;
447 bottom: 0em;
448 background-color: #eee;
449 width: 100%;
450}
451
452
453div.navheader td,
454div.navfooter td {
455 font-size: 66%;
456}
457
458div.navheader table th {
459 /*font-family: Georgia, Times, serif;*/
460 /*font-size: x-large;*/
461 font-size: 80%;
462}
463
464div.navheader table {
465 border-left: 0em;
466 border-right: 0em;
467 border-top: 0em;
468 width: 100%;
469}
470
471div.navfooter table {
472 border-left: 0em;
473 border-right: 0em;
474 border-bottom: 0em;
475 width: 100%;
476}
477
478div.navheader table td a,
479div.navfooter table td a {
480 color: #777;
481 text-decoration: none;
482}
483
484/* normal text in the footer */
485div.navfooter table td {
486 color: black;
487}
488
489div.navheader table td a:visited,
490div.navfooter table td a:visited {
491 color: #444;
492}
493
494
495/* links in header and footer */
496div.navheader table td a:hover,
497div.navfooter table td a:hover {
498 text-decoration: underline;
499 background-color: transparent;
500 color: #33a;
501}
502
503div.navheader hr,
504div.navfooter hr {
505 display: none;
506}
507
508
509.qandaset tr.question td p {
510 margin: 0em 0em 1em 0em;
511 padding: 0em 0em 0em 0em;
512}
513
514.qandaset tr.answer td p {
515 margin: 0em 0em 1em 0em;
516 padding: 0em 0em 0em 0em;
517}
518.answer td {
519 padding-bottom: 1.5em;
520}
521
522.emphasis {
523 font-weight: bold;
524}
525
526
527 /************* /
528 / decorations /
529/ *************/
530
531.titlepage {
532}
533
534.part .title {
535}
536
537.subtitle {
538 border: none;
539}
540
541/*
542h1 {
543 border: none;
544}
545
546h2 {
547 border-top: solid 0.2em;
548 border-bottom: solid 0.06em;
549}
550
551h3 {
552 border-top: 0em;
553 border-bottom: solid 0.06em;
554}
555
556h4 {
557 border: 0em;
558 border-bottom: solid 0.06em;
559}
560
561h5 {
562 border: 0em;
563}
564*/
565
566.programlisting {
567 border: solid 1px;
568}
569
570div.figure,
571div.table,
572div.informalfigure,
573div.informaltable,
574div.informalexample,
575div.example {
576 border: 1px solid;
577}
578
579
580
581.tip,
582.warning,
583.caution,
584.note {
585 border: 1px solid;
586}
587
588.tip table th,
589.warning table th,
590.caution table th,
591.note table th {
592 border-bottom: 1px solid;
593}
594
595.question td {
596 border-top: 1px solid black;
597}
598
599.answer {
600}
601
602
603b.keycap,
604.keycap {
605 border: 1px solid;
606}
607
608
609div.navheader, div.heading{
610 border-bottom: 1px solid;
611}
612
613
614div.navfooter, div.footing{
615 border-top: 1px solid;
616}
617
618 /********* /
619 / colors /
620/ *********/
621
622body {
623 color: #333;
624 background: white;
625}
626
627a {
628 background: transparent;
629}
630
631a:hover {
632 background-color: #dedede;
633}
634
635
636h1,
637h2,
638h3,
639h4,
640h5,
641h6,
642h7,
643h8 {
644 background-color: transparent;
645}
646
647hr {
648 border-color: #aaa;
649}
650
651
652.tip, .warning, .caution, .note {
653 border-color: #fff;
654}
655
656
657.tip table th,
658.warning table th,
659.caution table th,
660.note table th {
661 border-bottom-color: #fff;
662}
663
664
665.warning {
666 background-color: #f0f0f2;
667}
668
669.caution {
670 background-color: #f0f0f2;
671}
672
673.tip {
674 background-color: #f0f0f2;
675}
676
677.note {
678 background-color: #f0f0f2;
679}
680
681.glossary dl dt,
682.variablelist dl dt,
683.variablelist dl dt span.term {
684 color: #044;
685}
686
687div.figure,
688div.table,
689div.example,
690div.informalfigure,
691div.informaltable,
692div.informalexample {
693 border-color: #aaa;
694}
695
696pre.programlisting {
697 color: black;
698 background-color: #fff;
699 border-color: #aaa;
700 border-width: 2px;
701}
702
703.guimenu,
704.guilabel,
705.guimenuitem {
706 background-color: #eee;
707}
708
709
710b.keycap,
711.keycap {
712 background-color: #eee;
713 border-color: #999;
714}
715
716
717div.navheader {
718 border-color: black;
719}
720
721
722div.navfooter {
723 border-color: black;
724}
725
726
727 /*********** /
728 / graphics /
729/ ***********/
730
731/*
732body {
733 background-image: url("images/body_bg.jpg");
734 background-attachment: fixed;
735}
736
737.navheader,
738.note,
739.tip {
740 background-image: url("images/note_bg.jpg");
741 background-attachment: fixed;
742}
743
744.warning,
745.caution {
746 background-image: url("images/warning_bg.jpg");
747 background-attachment: fixed;
748}
749
750.figure,
751.informalfigure,
752.example,
753.informalexample,
754.table,
755.informaltable {
756 background-image: url("images/figure_bg.jpg");
757 background-attachment: fixed;
758}
759
760*/
761h1,
762h2,
763h3,
764h4,
765h5,
766h6,
767h7{
768}
769
770/*
771Example of how to stick an image as part of the title.
772
773div.article .titlepage .title
774{
775 background-image: url("figures/white-on-black.png");
776 background-position: center;
777 background-repeat: repeat-x;
778}
779*/
780
781div.preface .titlepage .title,
782div.colophon .title,
783div.chapter .titlepage .title,
784div.article .titlepage .title
785{
786}
787
788div.section div.section .titlepage .title,
789div.sect2 .titlepage .title {
790 background: none;
791}
792
793
794h1.title {
795 background-color: transparent;
796 background-image: url("figures/yocto-project-bw.png");
797 background-repeat: no-repeat;
798 height: 256px;
799 text-indent: -9000px;
800 overflow:hidden;
801}
802
803h2.subtitle {
804 background-color: transparent;
805 text-indent: -9000px;
806 overflow:hidden;
807 width: 0px;
808 display: none;
809}
810
811 /*************************************** /
812 / pippin.gimp.org specific alterations /
813/ ***************************************/
814
815/*
816div.heading, div.navheader {
817 color: #777;
818 font-size: 80%;
819 padding: 0;
820 margin: 0;
821 text-align: left;
822 position: absolute;
823 top: 0px;
824 left: 0px;
825 width: 100%;
826 height: 50px;
827 background: url('/gfx/heading_bg.png') transparent;
828 background-repeat: repeat-x;
829 background-attachment: fixed;
830 border: none;
831}
832
833div.heading a {
834 color: #444;
835}
836
837div.footing, div.navfooter {
838 border: none;
839 color: #ddd;
840 font-size: 80%;
841 text-align:right;
842
843 width: 100%;
844 padding-top: 10px;
845 position: absolute;
846 bottom: 0px;
847 left: 0px;
848
849 background: url('/gfx/footing_bg.png') transparent;
850}
851*/
852
853
854
855 /****************** /
856 / nasty ie tweaks /
857/ ******************/
858
859/*
860div.heading, div.navheader {
861 width:expression(document.body.clientWidth + "px");
862}
863
864div.footing, div.navfooter {
865 width:expression(document.body.clientWidth + "px");
866 margin-left:expression("-5em");
867}
868body {
869 padding:expression("4em 5em 0em 5em");
870}
871*/
872
873 /**************************************** /
874 / mozilla vendor specific css extensions /
875/ ****************************************/
876/*
877div.navfooter, div.footing{
878 -moz-opacity: 0.8em;
879}
880
881div.figure,
882div.table,
883div.informalfigure,
884div.informaltable,
885div.informalexample,
886div.example,
887.tip,
888.warning,
889.caution,
890.note {
891 -moz-border-radius: 0.5em;
892}
893
894b.keycap,
895.keycap {
896 -moz-border-radius: 0.3em;
897}
898*/
899
900table tr td table tr td {
901 display: none;
902}
903
904
905hr {
906 display: none;
907}
908
909table {
910 border: 0em;
911}
912
913 .photo {
914 float: right;
915 margin-left: 1.5em;
916 margin-bottom: 1.5em;
917 margin-top: 0em;
918 max-width: 17em;
919 border: 1px solid gray;
920 padding: 3px;
921 background: white;
922}
923 .seperator {
924 padding-top: 2em;
925 clear: both;
926 }
927
928 #validators {
929 margin-top: 5em;
930 text-align: right;
931 color: #777;
932 }
933 @media print {
934 body {
935 font-size: 8pt;
936 }
937 .noprint {
938 display: none;
939 }
940 }
941
942
943.tip,
944.note {
945 background: #f0f0f2;
946 color: #333;
947 padding: 20px;
948 margin: 20px;
949}
950
951.tip h3,
952.note h3 {
953 padding: 0em;
954 margin: 0em;
955 font-size: 2em;
956 font-weight: bold;
957 color: #333;
958}
959
960.tip a,
961.note a {
962 color: #333;
963 text-decoration: underline;
964}
965
966.footnote {
967 font-size: small;
968 color: #333;
969}
970
971/* Changes the announcement text */
972.tip h3,
973.warning h3,
974.caution h3,
975.note h3 {
976 font-size:large;
977 color: #00557D;
978}
979
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..bd53ecb0f6
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs-customization.xsl
@@ -0,0 +1,9 @@
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/current/xhtml/docbook.xsl" />
5 <xsl:import href="yocto-project-qs-titlepage.xsl"/>
6
7 <xsl:param name="generate.toc" select="'article nop'"></xsl:param>
8 <xsl:param name="html.stylesheet" select="'qs-style.css'" />
9</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..3d6f98d5d5
--- /dev/null
+++ b/documentation/yocto-project-qs/yocto-project-qs.xml
@@ -0,0 +1,963 @@
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 embedded Linux
40 developers.
41 Among other things, the Yocto Project uses a build system based on the Poky project
42 to construct complete Linux images.
43 The Poky project, in turn, draws from and contributes back to the OpenEmbedded project.
44 </para>
45
46 <para>
47 If you don't have a system that runs Linux and you want to give the Yocto Project a test run,
48 you might consider using the Yocto Project Build Appliance.
49 The Build Appliance allows you to build and boot a custom embedded Linux image with the Yocto
50 Project using a non-Linux development system.
51 See the <ulink url='http://www.yoctoproject.org/documentation/build-appliance'>Yocto
52 Project Build Appliance</ulink> for more information.
53 </para>
54
55 <para>
56 On the other hand, if you know all about open-source development, Linux development environments,
57 Git source repositories and the like and you just want some quick information that lets you try out
58 the Yocto Project on your Linux system, skip right to the
59 "<link linkend='super-user'>Super User</link>" section at the end of this quick start.
60 </para>
61
62 <para>
63 For the rest of you, this short document will give you some basic information about the environment and
64 let you experience it in its simplest form.
65 After reading this document, you will have a basic understanding of what the Yocto Project is
66 and how to use some of its core components.
67 This document steps you through a simple example showing you how to build a small image
68 and run it using the Quick EMUlator (QEMU emulator).
69 </para>
70
71 <para>
72 For more detailed information on the Yocto Project, you should check out these resources:
73 <itemizedlist>
74 <listitem><para><emphasis>Website:</emphasis> The <ulink url='&YOCTO_HOME_URL;'>Yocto Project Website</ulink>
75 provides the latest builds, breaking news, full development documentation, and a rich Yocto
76 Project Development Community into which you can tap.
77 </para></listitem>
78 <listitem><para><emphasis>FAQs:</emphasis> Lists commonly asked Yocto Project questions and answers.
79 You can find two FAQs: <ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>Yocto Project FAQ</ulink> on
80 a wiki, and the
81 "<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink>" chapter in
82 the Yocto Project Reference Manual.
83 </para></listitem>
84 <listitem><para><emphasis>Developer Screencast:</emphasis> The
85 <ulink url='http://vimeo.com/36450321'>Getting Started with the Yocto Project - New
86 Developer Screencast Tutorial</ulink> provides a 30-minute video for the user
87 new to the Yocto Project but familiar with Linux build systems.</para></listitem>
88 </itemizedlist>
89 </para>
90</section>
91
92<section id='yp-intro'>
93 <title>Introducing the Yocto Project Development Environment</title>
94 <para>
95 The Yocto Project through the OpenEmbedded build system provides an open source development
96 environment targeting the ARM, MIPS, PowerPC and x86 architectures for a variety of
97 platforms including x86-64 and emulated ones.
98 You can use components from the Yocto Project to design, develop, build, debug, simulate,
99 and test the complete software stack using Linux, the X Window System, GNOME Mobile-based
100 application frameworks, and Qt frameworks.
101 </para>
102
103 <mediaobject>
104 <imageobject>
105 <imagedata fileref="figures/yocto-environment.png"
106 format="PNG" align='center' scalefit='1' width="100%"/>
107 </imageobject>
108 <caption>
109 <para>The Yocto Project Development Environment</para>
110 </caption>
111 </mediaobject>
112
113 <para>
114 Here are some highlights for the Yocto Project:
115 </para>
116
117 <itemizedlist>
118 <listitem>
119 <para>Provides a recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment.</para>
120 </listitem>
121 <listitem>
122 <para>Makes available system components such as X11, GTK+, Qt, Clutter, and SDL
123 (among others) so you can create a rich user experience on devices
124 that have display hardware.
125 For devices that don't have a display or where you wish to use alternative UI
126 frameworks, these components need not be installed.</para>
127 </listitem>
128 <listitem>
129 <para>Creates a focused and stable core compatible with the OpenEmbedded
130 project with which you can easily and reliably build and develop.</para>
131 </listitem>
132 <listitem>
133 <para>Fully supports a wide range of hardware and device emulation through the QEMU
134 Emulator.</para>
135 </listitem>
136 </itemizedlist>
137
138 <para>
139 The Yocto Project can generate images for many kinds of devices.
140 However, the standard example machines target QEMU full-system emulation for x86, x86-64, ARM, MIPS,
141 and PPC-based architectures as well as specific hardware such as the
142 <trademark class='registered'>Intel</trademark> Desktop Board DH55TC.
143 Because an image developed with the Yocto Project can boot inside a QEMU emulator, the
144 development environment works nicely as a test platform for developing embedded software.
145 </para>
146
147 <para>
148 Another important Yocto Project feature is the Sato reference User Interface.
149 This optional GNOME mobile-based UI, which is intended for devices with
150 restricted screen sizes, sits neatly on top of a device using the
151 GNOME Mobile Stack and provides a well-defined user experience.
152 Implemented in its own layer, it makes it clear to developers how they can implement
153 their own user interface on top of a Linux image created with the Yocto Project.
154 </para>
155</section>
156
157<section id='yp-resources'>
158 <title>What You Need and How You Get It</title>
159
160 <para>
161 You need these things to develop in the Yocto Project environment:
162 </para>
163
164 <itemizedlist>
165 <listitem>
166 <para>A host system running a supported Linux distribution
167 (i.e. recent releases of Fedora, openSUSE, CentOS, Debian,
168 and Ubuntu).
169 If the host system supports multiple cores and threads, you can configure the
170 Yocto Project build system to decrease the time needed to build images
171 significantly.
172 </para>
173 </listitem>
174 <listitem>
175 <para>The right packages.</para>
176 </listitem>
177 <listitem>
178 <para>A release of the Yocto Project.</para>
179 </listitem>
180 </itemizedlist>
181
182 <section id='the-linux-distro'>
183 <title>The Linux Distribution</title>
184
185 <para>
186 The Yocto Project team is continually verifying more and more Linux
187 distributions with each release.
188 In general, if you have the current release minus one of the following
189 distributions you should have no problems.
190 <itemizedlist>
191 <listitem><para>Ubuntu</para></listitem>
192 <listitem><para>Fedora</para></listitem>
193 <listitem><para>openSUSE</para></listitem>
194 <listitem><para>CentOS</para></listitem>
195 <listitem><para>Debian</para></listitem>
196 </itemizedlist>
197 For a more detailed list of distributions that support the Yocto Project,
198 see the
199 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>" section
200 in the Yocto Project Reference Manual.
201 </para>
202 <para>
203 The OpenEmbedded build system should be able to run on any modern
204 distribution that has the following versions for Git, tar, and
205 Python.
206 <itemizedlist>
207 <listitem><para>Git 1.7.5 or greater</para></listitem>
208 <listitem><para>tar 1.24 or greater</para></listitem>
209 <listitem><para>Python 2.7.3 or greater excluding Python
210 3.x, which is not supported.</para></listitem>
211 </itemizedlist>
212 Earlier releases of Python are known to not work and the system
213 does not support Python 3 at this time.
214 If your system does not meet any of these three listed
215 version requirements, you can
216 take steps to prepare the system so that you can still use the build
217 system.
218 See the
219 "<ulink url='&YOCTO_DOCS_REF_URL;#required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</ulink>"
220 section in the Yocto Project Reference Manual for information.
221 </para>
222 <para>
223 This document assumes you are running one of the previously noted
224 distributions on your Linux-based host systems.
225 </para>
226 <note>
227 <para>
228 If you attempt to use a distribution not in the above list,
229 you may or may not have success.
230 Yocto Project releases are tested against the stable Linux
231 distributions listed in the
232 "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
233 section of the Yocto Project Reference Manual.
234 Refer to
235 <ulink url='&OE_HOME_URL;/index.php?title=OEandYourDistro'>OE and Your Distro</ulink> and
236 <ulink url='&OE_HOME_URL;/index.php?title=Required_software'>Required Software</ulink>
237 for information for information about dependencies and
238 requirements.
239 If you encounter problems, please go to
240 <ulink url='&YOCTO_BUGZILLA_URL;'>Yocto Project Bugzilla</ulink>
241 and submit a bug.
242 We are interested in hearing about your experience.
243 </para>
244 </note>
245 </section>
246
247 <section id='packages'>
248 <title>The Packages</title>
249
250 <para>
251 Packages and package installation vary depending on your development system
252 and on your intent.
253 For example, if you want to build an image that can run
254 on QEMU in graphical mode (a minimal, basic build
255 requirement), then the number of packages is different than if you want to
256 build an image on a headless system or build out the Yocto Project
257 documentation set.
258 Collectively, the number of required packages is large
259 if you want to be able to cover all cases.
260 <note>In general, you need to have root access and then install the
261 required packages.
262 Thus, the commands in the following section may or may not work
263 depending on whether or not your Linux distribution has
264 <filename>sudo</filename> installed.</note>
265 </para>
266
267 <para>
268 The next few sections list, by supported Linux Distributions, the required
269 packages needed to build an image that runs on QEMU in graphical mode
270 (e.g. essential plus graphics support).
271 </para>
272
273 <para>
274 For lists of required packages for other scenarios, see the
275 "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
276 section in the Yocto Project Reference Manual.
277 </para>
278
279 <section id='ubuntu'>
280 <title>Ubuntu and Debian</title>
281
282 <para>
283 The essential and graphical support packages you need for a
284 supported Ubuntu or Debian distribution are shown in the
285 following command:
286 <literallayout class='monospaced'>
287 $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm
288 </literallayout>
289 </para>
290 </section>
291
292 <section id='fedora'>
293 <title>Fedora</title>
294
295 <para>
296 The essential and graphical packages you need for a supported
297 Fedora distribution are shown in the following command:
298 <literallayout class='monospaced'>
299 $ sudo yum install &FEDORA_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
300 </literallayout>
301 </para>
302 </section>
303
304 <section id='opensuse'>
305 <title>OpenSUSE</title>
306
307 <para>
308 The essential and graphical packages you need for a supported
309 OpenSUSE distribution are shown in the following command:
310 <literallayout class='monospaced'>
311 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; libSDL-devel xterm
312 </literallayout>
313 </para>
314 </section>
315
316 <section id='centos'>
317 <title>CentOS</title>
318
319 <para>
320 The essential and graphical packages you need for a supported
321 CentOS distribution are shown in the following command:
322 <literallayout class='monospaced'>
323 $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm
324 </literallayout>
325 <note>Depending on the CentOS version you are using, other requirements
326 and dependencies might exist.
327 For details, you should look at the CentOS sections on the
328 <ulink url='https://wiki.yoctoproject.org/wiki/Poky/GettingStarted/Dependencies'>Poky/GettingStarted/Dependencies</ulink>
329 wiki page.</note>
330 </para>
331 </section>
332 </section>
333
334 <section id='releases'>
335 <title>Yocto Project Release</title>
336
337 <para>
338 You can download the latest Yocto Project release by going to the
339 <ulink url="&YOCTO_HOME_URL;">Yocto Project website</ulink>
340 clicking "Downloads" in the navigation pane to the left to view all
341 available Yocto Project releases.
342 Current and archived releases are available for download to the
343 right.
344 Nightly and developmental builds are also maintained at
345 <ulink url="&YOCTO_AB_NIGHTLY_URL;"></ulink>.
346 However, for this document a released version of Yocto Project is used.
347 </para>
348
349 <para>
350 You can also get the Yocto Project files you need by setting up (cloning in Git terms)
351 a local copy of the <filename>poky</filename> Git repository on your host development
352 system.
353 Doing so allows you to contribute back to the Yocto Project project.
354 For information on how to get set up using this method, see the
355 "<ulink url='&YOCTO_DOCS_DEV_URL;#local-yp-release'>Yocto
356 Project Release</ulink>" item in the Yocto Project Development Manual.
357 </para>
358 </section>
359</section>
360
361<section id='test-run'>
362 <title>A Quick Test Run</title>
363
364 <para>
365 Now that you have your system requirements in order, you can give the Yocto Project a try.
366 This section presents some steps that let you do the following:
367 </para>
368
369 <itemizedlist>
370 <listitem>
371 <para>Build an image and run it in the QEMU emulator</para>
372 </listitem>
373 <listitem>
374 <para>Use a pre-built image and run it in the QEMU emulator</para>
375 </listitem>
376 </itemizedlist>
377
378 <section id='building-image'>
379 <title>Building an Image</title>
380
381 <para>
382 In the development environment you will need to build an image whenever you change hardware
383 support, add or change system libraries, or add or change services that have dependencies.
384 </para>
385
386 <mediaobject>
387 <imageobject>
388 <imagedata fileref="figures/building-an-image.png" format="PNG" align='center' scalefit='1'/>
389 </imageobject>
390 <caption>
391 <para>Building an Image</para>
392 </caption>
393 </mediaobject>
394
395 <para>
396 Use the following commands to build your image.
397 The OpenEmbedded build process creates an entire Linux distribution, including the toolchain,
398 from source.
399 </para>
400
401 <note><para>
402 The build process using Sato currently consumes about 50GB of disk space.
403 To allow for variations in the build process and for future package expansion, we
404 recommend having at least 100GB of free disk space.
405 </para></note>
406
407 <note><para>
408 By default, the build process searches for source code using a pre-determined order
409 through a set of locations.
410 If you encounter problems with the build process finding and downloading source code, see the
411 "<ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>How does the OpenEmbedded build system obtain source code and will it work behind my
412 firewall or proxy server?</ulink>" in the Yocto Project Reference Manual.
413 </para></note>
414
415 <para>
416 <literallayout class='monospaced'>
417 $ wget &YOCTO_POKY_DL_URL;
418 $ tar xjf &YOCTO_POKY;.tar.bz2
419 $ cd &YOCTO_POKY;
420 $ source &OE_INIT_FILE;
421 </literallayout>
422 </para>
423
424 <tip><para>
425 To help conserve disk space during builds, you can add the following statement
426 to your project's configuration file, which for this example
427 is <filename>&YOCTO_POKY;/build/conf/local.conf</filename>.
428 Adding this statement deletes the work directory used for building a package
429 once the package is built.
430 <literallayout class='monospaced'>
431 INHERIT += "rm_work"
432 </literallayout>
433 </para></tip>
434
435 <itemizedlist>
436 <listitem><para>In the previous example, the first command retrieves the Yocto Project
437 release tarball from the source repositories using the
438 <filename>wget</filename> command.
439 Alternatively, you can go to the
440 <ulink url='&YOCTO_HOME_URL;'>Yocto Project website's</ulink>
441 "Downloads" page to retrieve the tarball.</para></listitem>
442 <listitem><para>The second command extracts the files from the tarball and places
443 them into a directory named <filename>&YOCTO_POKY;</filename> in the current
444 directory.</para></listitem>
445 <listitem><para>The third and fourth commands change the working directory to the
446 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
447 and run the Yocto Project
448 <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
449 environment setup script.
450 Running this script defines OpenEmbedded build environment settings needed to
451 complete the build.
452 The script also creates the
453 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
454 which is <filename>build</filename> in this case and is located in the
455 Source Directory.
456 After the script runs, your current working directory is set
457 to the Build Directory.
458 Later, when the build completes, the Build Directory contains all the files
459 created during the build.
460 <note>
461 For information on running a memory-resident BitBake, see
462 the
463 <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
464 setup script.
465 </note></para></listitem>
466 </itemizedlist>
467 <para>
468 Take some time to examine your <filename>local.conf</filename> file
469 in your project's configuration directory, which is found in the Build Directory.
470 The defaults in that file should work fine.
471 However, there are some variables of interest at which you might look.
472 </para>
473
474 <para>
475 By default, the target architecture for the build is <filename>qemux86</filename>,
476 which produces an image that can be used in the QEMU emulator and is targeted at an
477 <trademark class='registered'>Intel</trademark> 32-bit based architecture.
478 To change this default, edit the value of the
479 <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
480 variable in the configuration file before launching the build.
481 </para>
482
483 <para>
484 Another couple of variables of interest are the
485 <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink> and the
486 <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> variables.
487 By default, these variables are commented out.
488 However, if you have a multi-core CPU you might want to uncomment
489 the lines and set both variables equal to twice the number of your
490 host's processor cores.
491 Setting these variables can significantly shorten your build time.
492 </para>
493
494 <para>
495 Another consideration before you build is the package manager used when creating
496 the image.
497 By default, the OpenEmbedded build system uses the RPM package manager.
498 You can control this configuration by using the
499 <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
500 For additional package manager selection information, see the
501 "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>"
502 section in the Yocto Project Reference Manual.
503 </para>
504
505 <para>
506 Continue with the following command to build an OS image for the target, which is
507 <filename>core-image-sato</filename> in this example.
508 For information on the <filename>-k</filename> option use the
509 <filename>bitbake --help</filename> command or see the
510 "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>" section in
511 the Yocto Project Reference Manual.
512 <literallayout class='monospaced'>
513 $ bitbake -k core-image-sato
514 </literallayout>
515 <note><para>
516 BitBake requires Python 2.6 or 2.7. For more information on this requirement,
517 see the
518 <ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink> in the Yocto Project Reference
519 Manual.
520 </para></note>
521 The final command runs the image:
522 <literallayout class='monospaced'>
523 $ runqemu qemux86
524 </literallayout>
525 <note><para>
526 Depending on the number of processors and cores, the amount or RAM, the speed of your
527 Internet connection and other factors, the build process could take several hours the first
528 time you run it.
529 Subsequent builds run much faster since parts of the build are cached.
530 </para></note>
531 </para>
532 </section>
533
534 <section id='using-pre-built'>
535 <title>Using Pre-Built Binaries and QEMU</title>
536
537 <para>
538 If hardware, libraries and services are stable, you can get started by using a pre-built binary
539 of the filesystem image, kernel, and toolchain and run it using the QEMU emulator.
540 This scenario is useful for developing application software.
541 </para>
542
543 <mediaobject>
544 <imageobject>
545 <imagedata fileref="figures/using-a-pre-built-image.png" format="PNG" align='center' scalefit='1'/>
546 </imageobject>
547 <caption>
548 <para>Using a Pre-Built Image</para>
549 </caption>
550 </mediaobject>
551
552 <para>
553 For this scenario, you need to do several things:
554 </para>
555
556 <itemizedlist>
557 <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem>
558 <listitem><para>Download the pre-built image that will boot with QEMU.
559 You need to be sure to get the QEMU image that matches your target machine’s
560 architecture (e.g. x86, ARM, etc.).</para></listitem>
561 <listitem><para>Download the filesystem image for your target machine's architecture.
562 </para></listitem>
563 <listitem><para>Set up the environment to emulate the hardware and then start the QEMU emulator.
564 </para></listitem>
565 </itemizedlist>
566
567 <section id='installing-the-toolchain'>
568 <title>Installing the Toolchain</title>
569
570 <para>
571 You can download a tarball installer, which includes the
572 pre-built toolchain, the <filename>runqemu</filename>
573 script, and support files from the appropriate directory under
574 <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
575 Toolchains are available for 32-bit and 64-bit x86 development
576 systems from the <filename>i686</filename> and
577 <filename>x86_64</filename> directories, respectively.
578 The toolchains the Yocto Project provides are based off the
579 <filename>core-image-sato</filename> image and contain
580 libraries appropriate for developing against that image.
581 Each type of development system supports five or more target
582 architectures.
583 </para>
584
585 <para>
586 The names of the tarball installer scripts are such that a
587 string representing the host system appears first in the
588 filename and then is immediately followed by a string
589 that represents the target architecture.
590 </para>
591
592 <literallayout class='monospaced'>
593 poky-eglibc-&lt;<emphasis>host_system</emphasis>&gt;-&lt;<emphasis>image_type</emphasis>&gt;-&lt;<emphasis>arch</emphasis>&gt;-toolchain-&lt;<emphasis>release_version</emphasis>&gt;.sh
594
595 Where:
596 &lt;<emphasis>host_system</emphasis>&gt; is a string representing your development system:
597
598 i686 or x86_64.
599
600 &lt;<emphasis>image_type</emphasis>&gt; is a string representing the image you wish to
601 develop a Software Development Toolkit (SDK) for use against.
602 The Yocto Project builds toolchain installers using the
603 following BitBake command:
604
605 bitbake core-image-sato -c do_populatesdk core-image-sato
606
607 &lt;<emphasis>arch</emphasis>&gt; is a string representing the tuned target architecture:
608
609 i586, x86_64, powerpc, mips, armv7a or armv5te
610
611 &lt;<emphasis>release_version</emphasis>&gt; is a string representing the release number of the
612 Yocto Project:
613
614 &DISTRO;, &DISTRO;+snapshot
615 </literallayout>
616
617 <para>
618 For example, the following toolchain installer is for a 64-bit
619 development host system and a i586-tuned target architecture
620 based off the SDK for <filename>core-image-sato</filename>:
621 <literallayout class='monospaced'>
622 poky-eglibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
623 </literallayout>
624 </para>
625
626 <para>
627 Toolchains are self-contained and by default are installed into
628 <filename>/opt/poky</filename>.
629 However, when you run the toolchain installer, you can choose an
630 installation directory.
631 </para>
632
633 <para>
634 The following command shows how to run the installer given a toolchain tarball
635 for a 64-bit x86 development host system and a 32-bit x86 target architecture.
636 You must change the permissions on the toolchain
637 installer script so that it is executable.
638 </para>
639
640 <para>
641 The example assumes the toolchain installer is located in <filename>~/Downloads/</filename>.
642 <note>
643 If you do not have write permissions for the directory into which you are installing
644 the toolchain, the toolchain installer notifies you and exits.
645 Be sure you have write permissions in the directory and run the installer again.
646 </note>
647 </para>
648
649 <para>
650 <literallayout class='monospaced'>
651 $ ~/Downloads/poky-eglibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
652 </literallayout>
653 </para>
654
655 <para>
656 For more information on how to install tarballs, see the
657 "<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
658 "<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.
659 </para>
660 </section>
661
662 <section id='downloading-the-pre-built-linux-kernel'>
663 <title>Downloading the Pre-Built Linux Kernel</title>
664
665 <para>
666 You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
667 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
668 Be sure to use the kernel that matches the architecture you want to simulate.
669 Download areas exist for the five supported machine architectures:
670 <filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
671 <filename>qemux86</filename>, and <filename>qemux86-64</filename>.
672 </para>
673
674 <para>
675 Most kernel files have one of the following forms:
676 <literallayout class='monospaced'>
677 *zImage-qemu&lt;<emphasis>arch</emphasis>&gt;.bin
678 vmlinux-qemu&lt;<emphasis>arch</emphasis>&gt;.bin
679
680 Where:
681 &lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
682 x86, x86-64, ppc, mips, or arm.
683 </literallayout>
684 </para>
685
686 <para>
687 You can learn more about downloading a Yocto Project kernel in the
688 "<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project Kernel</ulink>"
689 bulleted item in the Yocto Project Development Manual.
690 </para>
691 </section>
692
693 <section id='downloading-the-filesystem'>
694 <title>Downloading the Filesystem</title>
695
696 <para>
697 You can also download the filesystem image suitable for your target architecture from
698 <ulink url='&YOCTO_QEMU_DL_URL;'></ulink>.
699 Again, be sure to use the filesystem that matches the architecture you want
700 to simulate.
701 </para>
702
703 <para>
704 The filesystem image has two tarball forms: <filename>ext3</filename> and
705 <filename>tar</filename>.
706 You must use the <filename>ext3</filename> form when booting an image using the
707 QEMU emulator.
708 The <filename>tar</filename> form can be flattened out in your host development system
709 and used for build purposes with the Yocto Project.
710 <literallayout class='monospaced'>
711 core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.ext3
712 core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.tar.bz2
713
714 Where:
715 &lt;<emphasis>profile</emphasis>&gt; is the filesystem image's profile:
716 lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato,
717 sato-dev, or sato-sdk. For information on these types of image
718 profiles, see the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>" chapter in the Yocto Project
719 Reference Manual.
720
721 &lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
722 x86, x86-64, ppc, mips, or arm.
723 </literallayout>
724 </para>
725 </section>
726
727 <section id='setting-up-the-environment-and-starting-the-qemu-emulator'>
728 <title>Setting Up the Environment and Starting the QEMU Emulator</title>
729
730 <para>
731 Before you start the QEMU emulator, you need to set up the emulation environment.
732 The following command form sets up the emulation environment.
733 <literallayout class='monospaced'>
734 $ source &YOCTO_ADTPATH_DIR;/environment-setup-&lt;<emphasis>arch</emphasis>&gt;-poky-linux-&lt;<emphasis>if</emphasis>&gt;
735
736 Where:
737 &lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
738 i586, x86_64, ppc603e, mips, or armv5te.
739
740 &lt;<emphasis>if</emphasis>&gt; is a string representing an embedded application binary interface.
741 Not all setup scripts include this string.
742 </literallayout>
743 </para>
744
745 <para>
746 Finally, this command form invokes the QEMU emulator
747 <literallayout class='monospaced'>
748 $ runqemu &lt;<emphasis>qemuarch</emphasis>&gt; &lt;<emphasis>kernel-image</emphasis>&gt; &lt;<emphasis>filesystem-image</emphasis>&gt;
749
750 Where:
751 &lt;<emphasis>qemuarch</emphasis>&gt; is a string representing the target architecture: qemux86, qemux86-64,
752 qemuppc, qemumips, or qemuarm.
753
754 &lt;<emphasis>kernel-image</emphasis>&gt; is the architecture-specific kernel image.
755
756 &lt;<emphasis>filesystem-image</emphasis>&gt; is the .ext3 filesystem image.
757
758 </literallayout>
759 </para>
760
761 <para>
762 Continuing with the example, the following two commands setup the emulation
763 environment and launch QEMU.
764 This example assumes the root filesystem (<filename>.ext3</filename> file) and
765 the pre-built kernel image file both reside in your home directory.
766 The kernel and filesystem are for a 32-bit target architecture.
767 <literallayout class='monospaced'>
768 $ cd $HOME
769 $ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
770 $ runqemu qemux86 bzImage-qemux86.bin \
771 core-image-sato-qemux86.ext3
772 </literallayout>
773 </para>
774
775 <para>
776 The environment in which QEMU launches varies depending on the filesystem image and on the
777 target architecture.
778 For example, if you source the environment for the ARM target
779 architecture and then boot the minimal QEMU image, the emulator comes up in a new
780 shell in command-line mode.
781 However, if you boot the SDK image, QEMU comes up with a GUI.
782 <note>Booting the PPC image results in QEMU launching in the same shell in
783 command-line mode.</note>
784 </para>
785 </section>
786 </section>
787</section>
788
789<section id='super-user'>
790 <title>Super User
791</title>
792
793 <para>
794 This section
795 <footnote>
796 <para>
797 Kudos and thanks to Robert P. J. Day of
798 <ulink url='http://www.crashcourse.ca'>CrashCourse</ulink> for providing the basis
799 for this "expert" section with information from one of his
800 <ulink url='http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start'>wiki</ulink>
801 pages.
802 </para>
803 </footnote>
804 gives you a minimal description of how to use the Yocto Project to build images
805 for a BeagleBoard xM starting from scratch.
806 The steps were performed on a 64-bit Ubuntu 10.04 system.
807 </para>
808
809 <section id='getting-yocto'>
810 <title>Getting the Yocto Project</title>
811
812 <para>
813 Set up your <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
814 one of two ways:
815 <itemizedlist>
816 <listitem><para><emphasis>Tarball:</emphasis>
817 Use if you want the latest stable release:
818 <literallayout class='monospaced'>
819 $ wget &YOCTO_RELEASE_DL_URL;/&YOCTO_POKY_TARBALL;
820 $ tar xvjf &YOCTO_POKY_TARBALL;
821 </literallayout></para></listitem>
822 <listitem><para><emphasis>Git Repository:</emphasis>
823 Use if you want to work with cutting edge development content:
824 <literallayout class='monospaced'>
825 $ git clone git://git.yoctoproject.org/poky
826 </literallayout></para></listitem>
827 </itemizedlist>
828 The remainder of the section assumes the Git repository method.
829 </para>
830 </section>
831
832 <section id='setting-up-your-host'>
833 <title>Setting Up Your Host</title>
834
835 <para>
836 You need some packages for everything to work.
837 Rather than duplicate them here, look at the "<link linkend='packages'>The Packages</link>"
838 section earlier in this quick start.
839 </para>
840 </section>
841
842 <section id='initializing-the-build-environment'>
843 <title>Initializing the Build Environment</title>
844
845 <para>
846 From the parent directory your
847 <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
848 initialize your environment and provide a meaningful
849 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
850 name:
851 <literallayout class='monospaced'>
852 $ source poky/&OE_INIT_FILE; mybuilds
853 </literallayout>
854 At this point, the <filename>mybuilds</filename> directory has been created for you
855 and it is now your current working directory.
856 If you don't provide your own directory name it defaults to <filename>build</filename>,
857 which is inside the Source Directory.
858 </para>
859 </section>
860
861 <section id='configuring-the-local.conf-file'>
862 <title>Configuring the local.conf File</title>
863
864 <para>
865 Initializing the build environment creates a <filename>conf/local.conf</filename> configuration file
866 in the Build Directory.
867 You need to manually edit this file to specify the machine you are building and to optimize
868 your build time.
869 Here are the minimal changes to make:
870 <literallayout class='monospaced'>
871 BB_NUMBER_THREADS = "8"
872 PARALLEL_MAKE = "-j 8"
873 MACHINE ?= "beagleboard"
874 </literallayout>
875 Briefly, set <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink>
876 and <ulink url='&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> to
877 twice your host processor's number of cores.
878 </para>
879
880 <para>
881 A good deal that goes into a Yocto Project build is simply
882 downloading all of the source tarballs.
883 Maybe you have been working with another build system
884 (OpenEmbedded or Angstrom) for which you have built up a sizable
885 directory of source tarballs.
886 Or, perhaps someone else has such a directory for which you have
887 read access.
888 If so, you can save time by adding statements to your
889 configuration file so that the build process checks local
890 directories first for existing tarballs before checking the
891 Internet.
892 Here is an efficient way to set it up in your
893 <filename>local.conf</filename> file:
894 <literallayout class='monospaced'>
895 SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
896 INHERIT += "own-mirrors"
897 BB_GENERATE_MIRROR_TARBALLS = "1"
898 # BB_NO_NETWORK = "1"
899 </literallayout>
900 </para>
901
902 <para>
903 In the previous example, the
904 <ulink url='&YOCTO_DOCS_REF_URL;#var-BB_GENERATE_MIRROR_TARBALLS'><filename>BB_GENERATE_MIRROR_TARBALLS</filename></ulink>
905 variable causes the OpenEmbedded build system to generate tarballs
906 of the Git repositories and store them in the
907 <ulink url='&YOCTO_DOCS_REF_URL;#var-DL_DIR'><filename>DL_DIR</filename></ulink>
908 directory.
909 Due to performance reasons, generating and storing these tarballs
910 is not the build system's default behavior.
911 </para>
912
913 <para>
914 You can also use the
915 <ulink url='&YOCTO_DOCS_REF_URL;#var-PREMIRRORS'><filename>PREMIRRORS</filename></ulink>
916 variable.
917 For an example, see the variable's glossary entry in the
918 Yocto Project Reference Manual.
919 </para>
920 </section>
921
922 <section id='building-the-image'>
923 <title>Building the Image</title>
924
925 <para>
926 At this point, you need to select an image to build for the BeagleBoard xM.
927 If this is your first build using the Yocto Project, you should try the smallest and simplest
928 image:
929 <literallayout class='monospaced'>
930 $ bitbake core-image-minimal
931 </literallayout>
932 Now you just wait for the build to finish.
933 </para>
934
935 <para>
936 Here are some variations on the build process that could be helpful:
937 <itemizedlist>
938 <listitem><para>Fetch all the necessary sources without starting the build:
939 <literallayout class='monospaced'>
940 $ bitbake -c fetchall core-image-minimal
941 </literallayout>
942 This variation guarantees that you have all the sources for that BitBake target
943 should you disconnect from the net and want to do the build later offline.
944 </para></listitem>
945 <listitem><para>Specify to continue the build even if BitBake encounters an error.
946 By default, BitBake aborts the build when it encounters an error.
947 This command keeps a faulty build going:
948 <literallayout class='monospaced'>
949 $ bitbake -k core-image-minimal
950 </literallayout></para></listitem>
951 </itemizedlist>
952 </para>
953
954 <para>
955 Once you have your image, you can take steps to load and boot it on the target hardware.
956 </para>
957 </section>
958</section>
959
960</article>
961<!--
962vim: expandtab tw=80 ts=4
963-->