metanorma-iho 0.1.2 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -667,7 +667,7 @@ div.WordSection2 {
667
667
  div.WordSection3 {
668
668
  page: WordSection3; }
669
669
 
670
- table.MsoISOTable {
670
+ table.MsoISOTable, table.MsoISOTableBig {
671
671
  mso-style-name: "Table ISO";
672
672
  mso-tstyle-rowband-size: 0;
673
673
  mso-tstyle-colband-size: 0;
@@ -688,17 +688,17 @@ table.MsoISOTable {
688
688
  font-size: 12.0pt;
689
689
  font-family: {{bodyfont}}; }
690
690
 
691
- table.MsoISOTable th {
691
+ table.MsoISOTable th, table.MsoISOTableBig th {
692
692
  border: solid windowtext 1pt;
693
693
  mso-border-alt: solid windowtext 1pt;
694
694
  padding: 0cm 2.85pt 0cm 2.85pt; }
695
695
 
696
- table.MsoISOTable td {
696
+ table.MsoISOTable td, table.MsoISOTableBig td {
697
697
  border: solid windowtext 1pt;
698
698
  mso-border-alt: solid windowtext 1pt;
699
699
  padding: 0cm 2.85pt 0cm 2.85pt; }
700
700
 
701
- table.MsoISOTable p {
701
+ table.MsoISOTable p, table.MsoISOTableBig p {
702
702
  font-size: 12.0pt; }
703
703
 
704
704
  table.MsoTableGrid {
@@ -785,8 +785,20 @@ div.example p.MsoListParagraph {
785
785
  font-size: 11.0pt; }
786
786
 
787
787
  div.Note p.MsoListParagraph {
788
+ font-size: 11.0pt;
789
+ margin-left: 1.0cm; }
790
+
791
+ div.Note span.stem {
788
792
  font-size: 11.0pt; }
789
793
 
794
+ div.Note p.Sourcecode, div.Note pre.Sourcecode {
795
+ font-size: 9.0pt;
796
+ margin-left: 1.0cm; }
797
+
798
+ div.Note table.dl {
799
+ font-size: 11.0pt;
800
+ margin-left: 1.0cm; }
801
+
790
802
  span.note_label, span.example_label, td.example_label, td.note_label {
791
803
  font-size: 11.0pt;
792
804
  font-family: {{bodyfont}}; }
@@ -630,7 +630,7 @@ div.WordSection2
630
630
  mso-paper-source:0;}
631
631
  div.WordSection3
632
632
  {page:WordSection3;}
633
- table.MsoISOTable
633
+ table.MsoISOTable, table.MsoISOTableBig
634
634
  {mso-style-name:"Table ISO";
635
635
  mso-tstyle-rowband-size:0;
636
636
  mso-tstyle-colband-size:0;
@@ -650,15 +650,15 @@ table.MsoISOTable
650
650
  mso-border-insidev:.75pt solid windowtext;
651
651
  font-size:12.0pt;
652
652
  font-family:$bodyfont;}
653
- table.MsoISOTable th
653
+ table.MsoISOTable th, table.MsoISOTableBig th
654
654
  {border:solid windowtext 1pt;
655
655
  mso-border-alt:solid windowtext 1pt;
656
656
  padding:0cm 2.85pt 0cm 2.85pt;}
657
- table.MsoISOTable td
657
+ table.MsoISOTable td, table.MsoISOTableBig td
658
658
  {border:solid windowtext 1pt;
659
659
  mso-border-alt:solid windowtext 1pt;
660
660
  padding:0cm 2.85pt 0cm 2.85pt;}
661
- table.MsoISOTable p
661
+ table.MsoISOTable p, table.MsoISOTableBig p
662
662
  {font-size:12.0pt; }
663
663
  table.MsoTableGrid
664
664
  {mso-style-name:"Table Grid";
@@ -744,6 +744,20 @@ div.example p.MsoListParagraph {
744
744
 
745
745
  div.Note p.MsoListParagraph {
746
746
  font-size: 11.0pt;
747
+ margin-left: 1.0cm;
748
+ }
749
+
750
+ div.Note span.stem {
751
+ font-size: 11.0pt; }
752
+
753
+ div.Note p.Sourcecode, div.Note pre.Sourcecode {
754
+ font-size: 9.0pt;
755
+ margin-left: 1.0cm;
756
+ }
757
+
758
+ div.Note table.dl {
759
+ font-size: 11.0pt;
760
+ margin-left: 1.0cm;
747
761
  }
748
762
 
749
763
  span.note_label, span.example_label, td.example_label, td.note_label
@@ -1,6 +1,6 @@
1
1
  require "isodoc"
2
2
  require "isodoc/generic/html_convert"
3
- require "isodoc/iho/metadata"
3
+ require_relative "init"
4
4
 
5
5
  module IsoDoc
6
6
  module IHO
@@ -13,20 +13,22 @@ module IsoDoc
13
13
  end
14
14
 
15
15
  def make_body3(body, docxml)
16
- body.div **{ class: "main-section" } do |div3|
17
- boilerplate docxml, div3
18
- abstract docxml, div3
19
- foreword docxml, div3
20
- introduction docxml, div3
21
- preface docxml, div3
22
- acknowledgements docxml, div3
23
- middle docxml, div3
24
- footnotes div3
25
- comments div3
16
+ body.div **{ class: "main-section" } do |div3|
17
+ boilerplate docxml, div3
18
+ preface_block docxml, div3
19
+ abstract docxml, div3
20
+ foreword docxml, div3
21
+ introduction docxml, div3
22
+ preface docxml, div3
23
+ acknowledgements docxml, div3
24
+ middle docxml, div3
25
+ footnotes div3
26
+ comments div3
27
+ end
26
28
  end
27
- end
28
29
 
29
30
  include BaseConvert
31
+ include Init
30
32
  end
31
33
  end
32
34
  end
@@ -0,0 +1,2 @@
1
+ clause: Chapter
2
+ subclause: Section
@@ -7,7 +7,8 @@
7
7
 
8
8
 
9
9
 
10
- <xsl:key name="kfn" match="iho:fn[local-name(..) = 'p' or local-name(..) = 'title']" use="@reference"/>
10
+ <!-- <xsl:key name="kfn" match="iho:fn[local-name(..) = 'p' or local-name(..) = 'title']" use="@reference"/> -->
11
+ <xsl:key name="kfn" match="iho:fn[local-name(..) = 'p' or ancestor::*[local-name() = 'title']]" use="@reference"/>
11
12
 
12
13
 
13
14
 
@@ -29,27 +30,8 @@
29
30
  -->
30
31
  <xsl:variable name="contents">
31
32
  <contents>
32
- <xsl:apply-templates select="/iho:iho-standard/iho:preface/*" mode="contents"/>
33
- <!-- <xsl:with-param name="sectionNum" select="'0'"/>
34
- </xsl:apply-templates> -->
35
- <xsl:apply-templates select="/iho:iho-standard/iho:sections/*" mode="contents"> <!-- iho:clause[1] [@id = '_scope'] -->
36
- <!-- <xsl:with-param name="sectionNum" select="'1'"/> -->
37
- </xsl:apply-templates>
38
- <!-- [@id = '_normative_references'] -->
39
- <!-- <xsl:apply-templates select="/iho:iho-standard/iho:bibliography/iho:references[1]" mode="contents">
40
- <xsl:with-param name="sectionNum" select="'2'"/>
41
- </xsl:apply-templates> -->
42
- <!-- @id != '_scope' -->
43
- <!-- <xsl:apply-templates select="/iho:iho-standard/iho:sections/*[position() &gt; 1]" mode="contents">
44
- <xsl:with-param name="sectionNumSkew" select="'1'"/>
45
- </xsl:apply-templates> -->
46
- <xsl:apply-templates select="/iho:iho-standard/iho:annex" mode="contents"/>
47
- <xsl:apply-templates select="/iho:iho-standard/iho:bibliography/iho:references[position() &gt; 1]" mode="contents"/> <!-- @id = '_bibliography' -->
48
-
49
- <xsl:apply-templates select="//iho:figure" mode="contents"/>
50
-
51
- <xsl:apply-templates select="//iho:table" mode="contents"/>
52
-
33
+ <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
34
+ <xsl:call-template name="processMainSectionsDefault_Contents"/>
53
35
  </contents>
54
36
  </xsl:variable>
55
37
 
@@ -129,6 +111,10 @@
129
111
 
130
112
  <xsl:call-template name="addPDFUAmeta"/>
131
113
 
114
+ <xsl:call-template name="addBookmarks">
115
+ <xsl:with-param name="contents" select="$contents"/>
116
+ </xsl:call-template>
117
+
132
118
  <!-- =========================== -->
133
119
  <!-- Cover Page -->
134
120
  <fo:page-sequence master-reference="cover">
@@ -243,35 +229,26 @@
243
229
 
244
230
  <fo:list-block>
245
231
 
246
-
247
-
248
232
  <xsl:attribute name="provisional-distance-between-starts">
249
233
  <xsl:choose>
250
- <xsl:when test="@level &gt;= 1 and @display-section = 'true' and @root = 'annex' and not(@type = 'annex')">13mm</xsl:when>
251
- <xsl:when test="@level &gt;= 1 and @display-section = 'true' and not(@type = 'annex')">10mm</xsl:when>
252
- <!-- <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/>mm</xsl:when>
253
- <xsl:when test="@section != '' and not(@display-section = 'false')"><xsl:value-of select="$margin-left"/>mm</xsl:when> -->
234
+ <xsl:when test="@level &gt;= 1 and @root = 'preface'">0mm</xsl:when>
235
+ <xsl:when test="@level &gt;= 1 and @root = 'annex' and not(@type = 'annex')">13mm</xsl:when>
236
+ <xsl:when test="@level &gt;= 1 and not(@type = 'annex')">10mm</xsl:when>
254
237
  <xsl:otherwise>0mm</xsl:otherwise>
255
238
  </xsl:choose>
256
239
  </xsl:attribute>
257
240
  <fo:list-item>
258
241
  <fo:list-item-label end-indent="label-end()">
259
242
  <fo:block>
260
- <xsl:if test="@section and not(@display-section = 'false') and not(@type = 'annex')"> <!-- output below -->
243
+ <xsl:if test="@section != '' and not(@type = 'annex')"> <!-- output below -->
261
244
  <xsl:value-of select="@section"/>
262
245
  </xsl:if>
263
246
  </fo:block>
264
247
  </fo:list-item-label>
265
248
  <fo:list-item-body start-indent="body-start()">
266
249
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
267
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
268
- <fo:inline>
269
- <xsl:if test="@type = 'annex'">
270
- <xsl:attribute name="font-weight">bold</xsl:attribute>
271
- <xsl:value-of select="@section"/><xsl:text>  </xsl:text>
272
- </xsl:if>
273
- <xsl:value-of select="text()"/>
274
- </fo:inline>
250
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
251
+ <xsl:apply-templates select="title"/>
275
252
  <fo:inline keep-together.within-line="always">
276
253
  <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
277
254
  <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
@@ -288,7 +265,7 @@
288
265
  </fo:block-container>
289
266
 
290
267
  <!-- Foreword, Introduction -->
291
- <xsl:apply-templates select="/iho:iho-standard/iho:preface/*"/>
268
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
292
269
 
293
270
  </fo:flow>
294
271
  </fo:page-sequence>
@@ -313,9 +290,13 @@
313
290
 
314
291
  <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt"><xsl:value-of select="$title-en"/></fo:block>
315
292
 
316
- <xsl:apply-templates select="/iho:iho-standard/iho:sections/*"/>
317
-
318
-
293
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
294
+ <!-- Normative references -->
295
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
296
+ <!-- Terms and definitions -->
297
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms']"/>
298
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='definitions']"/>
299
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope')]"/>
319
300
 
320
301
  </fo:block-container>
321
302
  </fo:flow>
@@ -330,12 +311,32 @@
330
311
  </fo:static-content>
331
312
  <xsl:call-template name="insertHeaderFooter"/>
332
313
  <fo:flow flow-name="xsl-region-body">
333
- <fo:block-container>
334
- <xsl:apply-templates select="/iho:iho-standard/iho:annex"/>
314
+ <fo:block-container>
315
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
316
+ </fo:block-container>
317
+ </fo:flow>
318
+ </fo:page-sequence>
319
+ </xsl:if>
320
+
321
+ <xsl:if test="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]">
322
+ <fo:page-sequence master-reference="document">
323
+ <fo:static-content flow-name="xsl-footnote-separator">
324
+ <fo:block>
325
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
326
+ </fo:block>
327
+ </fo:static-content>
328
+ <xsl:call-template name="insertHeaderFooter"/>
329
+ <fo:flow flow-name="xsl-region-body">
330
+ <fo:block-container>
331
+ <!-- Bibliography -->
332
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
335
333
  </fo:block-container>
336
334
  </fo:flow>
337
335
  </fo:page-sequence>
338
336
  </xsl:if>
337
+
338
+
339
+
339
340
  <!-- =========================== -->
340
341
  <!-- End Document Pages -->
341
342
  <!-- =========================== -->
@@ -351,194 +352,63 @@
351
352
  <!-- ============================= -->
352
353
  <!-- CONTENTS -->
353
354
  <!-- ============================= -->
354
- <xsl:template match="node()" mode="contents">
355
- <xsl:param name="sectionNum"/>
356
- <xsl:param name="sectionNumSkew"/>
357
- <xsl:apply-templates mode="contents">
358
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
359
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
360
- </xsl:apply-templates>
361
- </xsl:template>
362
-
363
- <!-- calculate main section number (1,2,3) and pass it deep into templates -->
364
- <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
365
- <xsl:template match="iho:iho-standard/iho:sections/*" mode="contents">
366
- <xsl:param name="sectionNum"/>
367
- <xsl:param name="sectionNumSkew" select="0"/>
368
- <xsl:variable name="sectionNum_">
369
- <xsl:choose>
370
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
371
- <xsl:when test="$sectionNumSkew != 0">
372
- <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
373
- <xsl:value-of select="$number + $sectionNumSkew"/>
374
- </xsl:when>
375
- <xsl:otherwise>
376
- <xsl:number count="*"/>
377
- </xsl:otherwise>
378
- </xsl:choose>
379
- </xsl:variable>
380
- <xsl:apply-templates mode="contents">
381
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
382
- </xsl:apply-templates>
383
- </xsl:template>
384
-
385
- <xsl:template match="iho:annex" mode="contents">
386
- <xsl:param name="sectionNum"/>
387
- <xsl:variable name="id" select="@id"/>
388
- <xsl:variable name="level">1</xsl:variable>
389
- <xsl:variable name="section">
390
- <xsl:choose>
391
- <xsl:when test="@obligation = 'informative'">
392
- <xsl:variable name="title-appendix">
393
- <xsl:call-template name="getTitle">
394
- <xsl:with-param name="name" select="'title-appendix'"/>
395
- </xsl:call-template>
396
- </xsl:variable>
397
- <xsl:value-of select="$title-appendix"/>
398
- <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
399
- </xsl:when>
400
- <xsl:otherwise>
401
- <xsl:variable name="title-annex">
402
- <xsl:call-template name="getTitle">
403
- <xsl:with-param name="name" select="'title-annex'"/>
404
- </xsl:call-template>
405
- </xsl:variable>
406
- <xsl:value-of select="$title-annex"/>
407
- <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
408
- </xsl:otherwise>
409
- </xsl:choose>
410
- </xsl:variable>
411
- <xsl:variable name="display">true</xsl:variable>
412
- <xsl:variable name="display-section">true</xsl:variable>
413
- <xsl:variable name="type"><xsl:value-of select="local-name()"/></xsl:variable>
414
- <xsl:variable name="root">annex</xsl:variable>
415
- <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
416
- <xsl:attribute name="addon">
417
- <xsl:value-of select="../@obligation"/>
418
- </xsl:attribute>
419
- <xsl:value-of select="iho:title"/>
420
- </item>
421
- <xsl:apply-templates mode="contents">
422
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
423
- </xsl:apply-templates>
355
+ <xsl:template match="node()" mode="contents">
356
+ <xsl:apply-templates mode="contents"/>
424
357
  </xsl:template>
425
358
 
426
-
427
- <!-- Any node with title element - clause, definition,... except annex ! (see processing above) -->
428
- <xsl:template match="iho:title[not(parent::iho:annex)] | iho:preferred" mode="contents">
429
- <xsl:param name="sectionNum"/>
430
-
431
- <xsl:variable name="id">
432
- <xsl:call-template name="getId"/>
433
- </xsl:variable>
434
-
359
+ <!-- element with title -->
360
+ <xsl:template match="*[iho:title]" mode="contents">
435
361
  <xsl:variable name="level">
436
- <xsl:call-template name="getLevel"/>
437
- </xsl:variable>
438
-
439
- <xsl:variable name="section">
440
- <xsl:call-template name="getSection">
441
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
362
+ <xsl:call-template name="getLevel">
363
+ <xsl:with-param name="depth" select="iho:title/@depth"/>
442
364
  </xsl:call-template>
443
365
  </xsl:variable>
444
366
 
445
367
  <xsl:variable name="display">
446
- <xsl:choose>
447
- <xsl:when test="ancestor::iho:bibitem">false</xsl:when>
448
- <xsl:when test="ancestor::iho:term">false</xsl:when>
449
- <xsl:when test="ancestor::iho:annex and $level &gt;= 3">false</xsl:when>
368
+ <xsl:choose>
450
369
  <xsl:when test="$level &lt;= 2">true</xsl:when>
451
370
  <xsl:otherwise>false</xsl:otherwise>
452
371
  </xsl:choose>
453
372
  </xsl:variable>
454
373
 
455
- <xsl:variable name="display-section">
374
+ <xsl:variable name="skip">
456
375
  <xsl:choose>
457
- <xsl:when test="ancestor::iho:preface">false</xsl:when>
458
- <!-- <xsl:when test="ancestor::iho:annex">false</xsl:when> -->
459
- <xsl:otherwise>true</xsl:otherwise>
376
+ <xsl:when test="ancestor-or-self::iho:bibitem">true</xsl:when>
377
+ <xsl:when test="ancestor-or-self::iho:term">true</xsl:when>
378
+ <xsl:otherwise>false</xsl:otherwise>
460
379
  </xsl:choose>
461
380
  </xsl:variable>
462
381
 
463
- <xsl:variable name="type">
464
- <xsl:value-of select="local-name(..)"/>
465
- </xsl:variable>
466
-
467
- <xsl:variable name="root">
468
- <xsl:choose>
469
- <xsl:when test="ancestor::iho:annex">annex</xsl:when>
470
- </xsl:choose>
471
- </xsl:variable>
382
+ <xsl:if test="$skip = 'false'">
472
383
 
473
- <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
474
- <xsl:attribute name="addon">
475
- <xsl:if test="local-name(..) = 'annex'"><xsl:value-of select="../@obligation"/></xsl:if>
476
- </xsl:attribute>
477
- <xsl:value-of select="."/>
478
- </item>
384
+ <xsl:variable name="section">
385
+ <xsl:call-template name="getSection"/>
386
+ </xsl:variable>
387
+
388
+ <xsl:variable name="title">
389
+ <xsl:call-template name="getName"/>
390
+ </xsl:variable>
391
+
392
+ <xsl:variable name="type">
393
+ <xsl:value-of select="local-name()"/>
394
+ </xsl:variable>
395
+
396
+ <xsl:variable name="root">
397
+ <xsl:if test="ancestor-or-self::iho:preface">preface</xsl:if>
398
+ <xsl:if test="ancestor-or-self::iho:annex">annex</xsl:if>
399
+ </xsl:variable>
400
+
401
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
402
+ <title>
403
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
404
+ </title>
405
+ <xsl:apply-templates mode="contents"/>
406
+ </item>
407
+
408
+ </xsl:if>
479
409
 
480
- <xsl:apply-templates mode="contents">
481
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
482
- </xsl:apply-templates>
483
- </xsl:template>
484
-
485
-
486
- <xsl:template match="iho:figure" mode="contents">
487
- <item level="" id="{@id}" display="false">
488
- <xsl:attribute name="section">
489
- <xsl:call-template name="getFigureNumber"/>
490
- </xsl:attribute>
491
- </item>
492
- </xsl:template>
493
-
494
- <xsl:template match="iho:table" mode="contents">
495
- <xsl:param name="sectionNum"/>
496
- <xsl:variable name="annex-id" select="ancestor::iho:annex/@id"/>
497
- <item level="" id="{@id}" display="false" type="table">
498
- <xsl:attribute name="section">
499
- <xsl:variable name="title-table">
500
- <xsl:call-template name="getTitle">
501
- <xsl:with-param name="name" select="'title-table'"/>
502
- </xsl:call-template>
503
- </xsl:variable>
504
- <xsl:value-of select="$title-table"/>
505
- <xsl:call-template name="getTableNumber"/>
506
- </xsl:attribute>
507
- <xsl:value-of select="iho:name/text()"/>
508
- </item>
509
- </xsl:template>
510
-
511
- <xsl:template match="iho:formula" mode="contents">
512
- <item level="" id="{@id}" display="false">
513
- <xsl:attribute name="section">
514
- <xsl:variable name="title-formula">
515
- <xsl:call-template name="getTitle">
516
- <xsl:with-param name="name" select="'title-formula'"/>
517
- </xsl:call-template>
518
- </xsl:variable>
519
- <xsl:value-of select="$title-formula"/><xsl:number format="(A.1)" level="multiple" count="iho:annex | iho:formula"/>
520
- </xsl:attribute>
521
- </item>
522
410
  </xsl:template>
523
411
 
524
- <xsl:template match="iho:li" mode="contents">
525
- <xsl:param name="sectionNum"/>
526
- <item level="" id="{@id}" display="false" type="li">
527
- <xsl:attribute name="section">
528
- <xsl:call-template name="getListItemFormat"/>
529
- </xsl:attribute>
530
- <xsl:attribute name="parent_section">
531
- <xsl:for-each select="ancestor::*[not(local-name() = 'p' or local-name() = 'ol')][1]">
532
- <xsl:call-template name="getSection">
533
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
534
- </xsl:call-template>
535
- </xsl:for-each>
536
- </xsl:attribute>
537
- </item>
538
- <xsl:apply-templates mode="contents">
539
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
540
- </xsl:apply-templates>
541
- </xsl:template>
542
412
 
543
413
  <xsl:template match="iho:references/iho:bibitem" mode="contents"/>
544
414
  <!-- ============================= -->
@@ -564,110 +434,38 @@
564
434
  </xsl:template>
565
435
 
566
436
 
567
- <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
568
- <xsl:template match="node()">
569
- <xsl:param name="sectionNum"/>
570
- <xsl:param name="sectionNumSkew"/>
571
- <xsl:apply-templates>
572
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
573
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
574
- </xsl:apply-templates>
575
- </xsl:template>
576
-
577
- <!-- clause, terms, clause, ...-->
578
- <xsl:template match="iho:iho-standard/iho:sections/*">
579
- <xsl:param name="sectionNum"/>
580
- <xsl:param name="sectionNumSkew" select="0"/>
581
- <fo:block>
582
- <!-- iho:sections/iho:clause | iho:sections/iho:terms | iho:sections/iho:definitions -->
583
- <!-- <xsl:variable name="pos"><xsl:number count="*"/></xsl:variable>
584
- <xsl:if test="$pos &gt;= 2">
585
- <xsl:attribute name="space-before">18pt</xsl:attribute>
586
- </xsl:if> -->
587
- <!-- pos=<xsl:value-of select="$pos" /> -->
588
- <xsl:variable name="sectionNum_">
589
- <xsl:choose>
590
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
591
- <xsl:when test="$sectionNumSkew != 0">
592
- <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!--iho:sections/iho:clause | iho:sections/iho:terms | iho:sections/iho:definitions -->
593
- <xsl:value-of select="$number + $sectionNumSkew"/>
594
- </xsl:when>
595
- <xsl:otherwise>
596
- <xsl:number count="*"/>
597
- </xsl:otherwise>
598
- </xsl:choose>
599
- </xsl:variable>
600
- <!-- <xsl:if test="not(iho:title)">
601
- <fo:block margin-top="3pt" margin-bottom="12pt">
602
- <xsl:value-of select="$sectionNum_"/><xsl:number format=".1 " level="multiple" count="iho:clause" />
603
- </fo:block>
604
- </xsl:if> -->
605
- <xsl:apply-templates>
606
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
607
- </xsl:apply-templates>
608
- </fo:block>
437
+ <xsl:template match="node()">
438
+ <xsl:apply-templates/>
609
439
  </xsl:template>
610
440
 
441
+
442
+ <!-- ====== -->
443
+ <!-- title -->
444
+ <!-- ====== -->
611
445
 
612
- <!-- Foreword, Introduction -->
613
- <xsl:template match="iho:iho-standard/iho:preface/*">
614
- <fo:block break-after="page"/>
615
- <xsl:apply-templates/>
446
+ <xsl:template match="iho:annex/iho:title">
447
+ <fo:block font-size="13pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always">
448
+ <xsl:apply-templates/>
449
+ </fo:block>
616
450
  </xsl:template>
617
-
618
- <xsl:template match="iho:clause//iho:clause[not(iho:title)]">
619
- <xsl:param name="sectionNum"/>
620
- <xsl:variable name="section">
621
- <xsl:call-template name="getSection">
622
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
623
- </xsl:call-template>
624
- </xsl:variable>
625
451
 
626
- <fo:block margin-top="3pt"><!-- margin-bottom="6pt" -->
627
- <fo:inline font-weight="bold" padding-right="3mm">
628
- <xsl:value-of select="$section"/><!-- <xsl:number format=".1 " level="multiple" count="iho:clause/iho:clause" /> -->
629
- </fo:inline>
630
- <xsl:apply-templates>
631
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
632
- <xsl:with-param name="inline" select="'true'"/>
633
- </xsl:apply-templates>
452
+ <xsl:template match="iho:bibliography/iho:references[not(@normative='true')]/iho:title">
453
+ <fo:block font-size="16pt" font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="36pt" keep-with-next="always">
454
+ <xsl:apply-templates/>
634
455
  </fo:block>
635
456
  </xsl:template>
636
-
637
-
638
457
 
639
458
  <xsl:template match="iho:title">
640
- <xsl:param name="sectionNum"/>
641
-
642
- <xsl:variable name="parent-name" select="local-name(..)"/>
643
- <xsl:variable name="references_num_current">
644
- <xsl:number level="any" count="iho:references"/>
645
- </xsl:variable>
646
-
647
- <xsl:variable name="id">
648
- <xsl:call-template name="getId"/>
649
- </xsl:variable>
650
459
 
651
460
  <xsl:variable name="level">
652
461
  <xsl:call-template name="getLevel"/>
653
462
  </xsl:variable>
654
-
655
- <xsl:variable name="section">
656
- <xsl:call-template name="getSection">
657
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
658
- </xsl:call-template>
659
- </xsl:variable>
660
-
463
+
661
464
  <xsl:variable name="font-size">
662
465
  <xsl:choose>
663
466
  <xsl:when test="$level = 1">13pt</xsl:when>
664
467
  <xsl:when test="$level = 2">12pt</xsl:when>
665
- <xsl:when test="$level &gt;= 3">11pt</xsl:when>
666
- <!-- <xsl:when test="ancestor::iho:annex and $level = 2">13pt</xsl:when>
667
- <xsl:when test="ancestor::iho:annex and $level = 3">12pt</xsl:when>
668
- <xsl:when test="ancestor::iho:preface">16pt</xsl:when>
669
- <xsl:when test="$level = 2">12pt</xsl:when>
670
- <xsl:when test="$level &gt;= 3">11pt</xsl:when> -->
468
+ <xsl:when test="$level &gt;= 3">11pt</xsl:when>
671
469
  <xsl:otherwise>12pt</xsl:otherwise>
672
470
  </xsl:choose>
673
471
  </xsl:variable>
@@ -679,75 +477,37 @@
679
477
  </xsl:choose>
680
478
  </xsl:variable>
681
479
 
682
- <xsl:choose>
683
- <xsl:when test="$parent-name = 'annex'">
684
- <fo:block id="{$id}" font-size="13pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always">
685
- <xsl:value-of select="$section"/>
686
- <xsl:value-of select="$linebreak"/>
687
- <!-- <xsl:if test=" ../@obligation">
688
- <xsl:value-of select="$linebreak"/>
689
- <fo:inline font-weight="normal">(<xsl:value-of select="../@obligation"/>)</fo:inline>
690
- </xsl:if> -->
691
- <xsl:apply-templates/>
692
- </fo:block>
693
- </xsl:when>
694
- <xsl:when test="$parent-name = 'references' and $references_num_current != 1"> <!-- Bibliography -->
695
- <fo:block id="{$id}" font-size="16pt" font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="36pt" keep-with-next="always">
696
- <xsl:apply-templates/>
697
- </fo:block>
698
- </xsl:when>
699
-
700
- <xsl:otherwise>
701
- <xsl:element name="{$element-name}">
702
- <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
703
- <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
704
- <!-- <xsl:attribute name="font-weight">bold</xsl:attribute> -->
705
- <xsl:attribute name="space-before"> <!-- margin-top -->
706
- <xsl:choose>
707
- <xsl:when test="$level = 1">13.5pt</xsl:when>
708
- <xsl:when test="$level &gt;= 2">3pt</xsl:when>
709
- <xsl:when test="ancestor::iho:preface">8pt</xsl:when>
710
- <xsl:when test="$level = 2 and ancestor::iho:annex">18pt</xsl:when>
711
- <xsl:when test="$level = 1">18pt</xsl:when>
712
- <xsl:when test="$level = ''">6pt</xsl:when><!-- 13.5pt -->
713
- <xsl:otherwise>12pt</xsl:otherwise>
714
- </xsl:choose>
715
- </xsl:attribute>
716
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
717
-
718
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
719
-
720
-
721
- <!-- DEBUG level=<xsl:value-of select="$level"/>x -->
722
- <!-- section=<xsl:value-of select="$sectionNum"/> -->
723
- <!-- <xsl:if test="$sectionNum"> -->
724
- <xsl:value-of select="$section"/>
725
- <xsl:if test="$section != ''">
726
- <xsl:choose>
727
- <xsl:when test="$level = 2">
728
- <fo:inline padding-right="2mm"> </fo:inline>
729
- </xsl:when>
730
- <xsl:when test="$level = 3">
731
- <fo:inline padding-right="2mm"> </fo:inline>
732
- </xsl:when>
733
- <xsl:otherwise>
734
- <fo:inline padding-right="3mm"> </fo:inline>
735
- </xsl:otherwise>
736
- </xsl:choose>
737
- </xsl:if>
738
-
739
- <xsl:apply-templates/>
740
- </xsl:element>
480
+
481
+ <xsl:element name="{$element-name}">
482
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
483
+ <xsl:attribute name="space-before">
484
+ <xsl:choose>
485
+ <xsl:when test="$level = 1">13.5pt</xsl:when>
486
+ <xsl:when test="$level &gt;= 2">3pt</xsl:when>
487
+ <xsl:when test="ancestor::iho:preface">8pt</xsl:when>
488
+ <xsl:when test="$level = 2 and ancestor::iho:annex">18pt</xsl:when>
489
+ <xsl:when test="$level = 1">18pt</xsl:when>
490
+ <xsl:when test="$level = ''">6pt</xsl:when><!-- 13.5pt -->
491
+ <xsl:otherwise>12pt</xsl:otherwise>
492
+ </xsl:choose>
493
+ </xsl:attribute>
494
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
741
495
 
742
- <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::iho:p)">
743
- <fo:block> <!-- margin-bottom="12pt" -->
744
- <xsl:value-of select="$linebreak"/>
745
- </fo:block>
746
- </xsl:if>
747
- </xsl:otherwise>
748
- </xsl:choose>
496
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
497
+
498
+ <xsl:apply-templates/>
499
+ </xsl:element>
500
+
501
+ <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::iho:p)">
502
+ <fo:block> <!-- margin-bottom="12pt" -->
503
+ <xsl:value-of select="$linebreak"/>
504
+ </fo:block>
505
+ </xsl:if>
749
506
 
750
507
  </xsl:template>
508
+ <!-- ====== -->
509
+ <!-- ====== -->
510
+
751
511
 
752
512
  <xsl:template match="iho:p">
753
513
  <xsl:param name="inline" select="'false'"/>
@@ -808,7 +568,7 @@
808
568
 
809
569
  <xsl:variable name="p_fn">
810
570
  <!-- <xsl:for-each select="//iho:p/iho:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]"> -->
811
- <xsl:for-each select="//iho:fn[local-name(..) = 'p' or local-name(..) = 'title'][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
571
+ <xsl:for-each select="//iho:fn[local-name(..) = 'p' or ancestor::*[local-name() = 'title']][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
812
572
  <!-- copy unique fn -->
813
573
  <fn gen_id="{generate-id(.)}">
814
574
  <xsl:copy-of select="@*"/>
@@ -818,7 +578,7 @@
818
578
  </xsl:variable>
819
579
 
820
580
  <!-- iho:p/iho:fn -->
821
- <xsl:template match="iho:fn[local-name(..) = 'p' or local-name(..) = 'title']" priority="2">
581
+ <xsl:template match="iho:fn[local-name(..) = 'p' or ancestor::*[local-name() = 'title']]" priority="2">
822
582
  <xsl:variable name="gen_id" select="generate-id(.)"/>
823
583
  <xsl:variable name="reference" select="@reference"/>
824
584
  <xsl:variable name="number">
@@ -831,13 +591,13 @@
831
591
  <fo:inline font-size="70%" keep-with-previous.within-line="always" vertical-align="super"> <!-- -->
832
592
  <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
833
593
  <!-- <xsl:value-of select="@reference"/> -->
834
- <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@id='_normative_references']]/iho:note)"/>
594
+ <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@normative='true']]/iho:note)"/>
835
595
  </fo:basic-link>
836
596
  </fo:inline>
837
597
  <fo:footnote-body>
838
598
  <fo:block font-size="10pt" margin-bottom="12pt">
839
599
  <fo:inline id="footnote_{@reference}_{$number}" font-size="60%" vertical-align="super" keep-with-next.within-line="always" padding-right="1mm"> <!-- font-size="60%" alignment-baseline="hanging" -->
840
- <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@id='_normative_references']]/iho:note)"/>
600
+ <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@normative='true']]/iho:note)"/>
841
601
  </fo:inline>
842
602
  <xsl:for-each select="iho:p">
843
603
  <xsl:apply-templates/>
@@ -860,122 +620,34 @@
860
620
  <xsl:apply-templates/>
861
621
  </xsl:template>
862
622
 
863
-
864
- <xsl:template match="iho:figure">
865
- <fo:block-container id="{@id}">
866
- <fo:block>
867
- <xsl:apply-templates/>
868
- </fo:block>
869
- <xsl:call-template name="fn_display_figure"/>
870
- <xsl:for-each select="iho:note//iho:p">
871
- <xsl:call-template name="note"/>
872
- </xsl:for-each>
873
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="6pt" keep-with-previous="always">
874
- <xsl:call-template name="getFigureNumber"/>
875
- <xsl:if test="iho:name">
876
- <xsl:if test="not(local-name(..) = 'figure') and not(ancestor::iho:example)">
877
- <xsl:text> — </xsl:text>
878
- </xsl:if>
879
- <xsl:apply-templates select="iho:name" mode="figure_name"/>
880
- </xsl:if>
881
- </fo:block>
882
- </fo:block-container>
883
- </xsl:template>
884
623
 
885
- <xsl:template match="iho:figure/iho:name" mode="figure_name">
886
- <xsl:apply-templates/>
624
+ <xsl:template match="iho:ul | iho:ol" mode="ul_ol">
625
+ <fo:list-block provisional-distance-between-starts="6mm">
626
+ <xsl:apply-templates/>
627
+ </fo:list-block>
628
+ <xsl:for-each select="./iho:note">
629
+ <xsl:call-template name="note"/>
630
+ </xsl:for-each>
887
631
  </xsl:template>
888
632
 
889
- <xsl:template match="iho:figure/iho:name"/>
890
- <xsl:template match="iho:figure/iho:fn" priority="2"/>
891
- <xsl:template match="iho:figure/iho:note"/>
892
-
893
- <xsl:template match="iho:image">
894
- <fo:block text-align="center">
895
- <xsl:variable name="src">
896
- <xsl:choose>
897
- <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
898
- <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
899
- </xsl:when>
900
- <xsl:otherwise>
901
- <xsl:value-of select="@src"/>
902
- </xsl:otherwise>
903
- </xsl:choose>
904
- </xsl:variable>
905
- <fo:external-graphic src="{$src}" width="100%" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/> <!-- src="{@src}" -->
633
+ <xsl:template match="iho:ul//iho:note | iho:ol//iho:note" priority="2"/>
634
+ <xsl:template match="iho:ul//iho:note | iho:ol//iho:note" mode="process">
635
+ <fo:block id="{@id}">
636
+ <xsl:apply-templates select="iho:name" mode="presentation"/>
637
+ <xsl:apply-templates mode="process"/>
906
638
  </fo:block>
907
639
  </xsl:template>
908
-
909
- <xsl:template name="getFigureNumber">
910
- <xsl:variable name="title-figure">
911
- <xsl:call-template name="getTitle">
912
- <xsl:with-param name="name" select="'title-figure'"/>
913
- </xsl:call-template>
914
- </xsl:variable>
915
- <xsl:choose>
916
- <xsl:when test="ancestor::iho:annex">
917
- <xsl:choose>
918
- <xsl:when test="local-name(..) = 'figure'">
919
- <xsl:number format="a) "/>
920
- </xsl:when>
921
- <xsl:otherwise>
922
- <xsl:value-of select="$title-figure"/>
923
-
924
- <xsl:variable name="annex_id" select="ancestor::iho:annex[1]/@id"/>
925
- <xsl:choose>
926
- <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
927
- <xsl:number format="1." count="iho:annex[@obligation = 'informative']"/>
928
- <xsl:number format="1" level="any" count="iho:figure[ancestor::iho:annex[@id = $annex_id]]"/>
929
- <!-- <xsl:number format="1.1" level="multiple" count="iho:annex[@obligation = 'informative'] | iho:figure"/> -->
930
- </xsl:when>
931
- <xsl:otherwise>
932
- <xsl:number format="A." level="any" count="iho:annex[not(@obligation = 'informative')]"/>
933
- <xsl:number format="1" level="any" count="iho:figure[ancestor::iho:annex[@id = $annex_id]]"/>
934
- <!-- <xsl:number format="A.1" level="multiple" count="iho:annex[not(@obligation = 'informative')] | iho:figure"/> -->
935
- </xsl:otherwise>
936
- </xsl:choose>
937
- </xsl:otherwise>
938
- </xsl:choose>
939
- </xsl:when>
940
- <xsl:when test="ancestor::iho:example"/>
941
- <xsl:otherwise>
942
- <xsl:value-of select="$title-figure"/><xsl:number format="1" level="any" count="iho:figure"/>
943
- </xsl:otherwise>
944
- </xsl:choose>
945
- </xsl:template>
946
-
947
- <xsl:template match="iho:note/iho:p" name="note">
948
- <fo:block font-size="11pt" margin-top="8pt" margin-bottom="12pt" text-align="justify">
949
- <xsl:if test="ancestor::iho:td">
950
- <xsl:attribute name="font-size">12pt</xsl:attribute>
951
- </xsl:if>
952
- <xsl:variable name="claims_id" select="ancestor::iho:clause[1]/@id"/>
953
- <fo:inline font-size="11pt" padding-right="2mm">
954
- <xsl:variable name="title-note">
955
- <xsl:call-template name="getTitle">
956
- <xsl:with-param name="name" select="'title-note'"/>
957
- </xsl:call-template>
958
- </xsl:variable>
959
- <xsl:value-of select="$title-note"/>
960
- <xsl:if test="count(ancestor::iho:clause[1]//iho:note) &gt; 1">
961
- <xsl:number count="iho:note[ancestor::iho:clause[@id = $claims_id]]" level="any"/>
962
- </xsl:if>
963
- </fo:inline>
640
+ <xsl:template match="iho:ul//iho:note/iho:name | iho:ol//iho:note/iho:name" mode="process" priority="2"/>
641
+ <xsl:template match="iho:ul//iho:note/iho:p | iho:ol//iho:note/iho:p" mode="process" priority="2">
642
+ <fo:block font-size="11pt" margin-top="4pt">
964
643
  <xsl:apply-templates/>
965
644
  </fo:block>
966
645
  </xsl:template>
967
-
968
-
969
- <xsl:template match="iho:ul | iho:ol">
970
- <fo:list-block provisional-distance-between-starts="6mm">
971
- <xsl:apply-templates/>
972
- </fo:list-block>
973
- <xsl:for-each select="./iho:note//iho:p">
974
- <xsl:call-template name="note"/>
975
- </xsl:for-each>
646
+
647
+ <xsl:template match="iho:ul//iho:note/* | iho:ol//iho:note/*" mode="process">
648
+ <xsl:apply-templates select="."/>
976
649
  </xsl:template>
977
650
 
978
- <xsl:template match="iho:ul//iho:note | iho:ol//iho:note"/>
979
651
 
980
652
  <xsl:template match="iho:li">
981
653
  <fo:list-item id="{@id}" margin-bottom="12pt">
@@ -985,8 +657,10 @@
985
657
  </fo:block>
986
658
  </fo:list-item-label>
987
659
  <fo:list-item-body start-indent="body-start()">
988
- <xsl:apply-templates/>
989
- <xsl:apply-templates select=".//iho:note" mode="process"/>
660
+ <fo:block>
661
+ <xsl:apply-templates/>
662
+ <xsl:apply-templates select=".//iho:note" mode="process"/>
663
+ </fo:block>
990
664
  </fo:list-item-body>
991
665
  </fo:list-item>
992
666
  </xsl:template>
@@ -1002,27 +676,7 @@
1002
676
  </xsl:choose>
1003
677
  </xsl:template>
1004
678
 
1005
- <xsl:template match="iho:termsource">
1006
- <fo:block margin-bottom="12pt">
1007
- <!-- Example:[SOURCE: [3]] -->
1008
- <fo:basic-link internal-destination="{iho:origin/@bibitemid}" fox:alt-text="{iho:origin/@citeas}">
1009
- <xsl:text>[</xsl:text>
1010
- <xsl:variable name="title-source">
1011
- <xsl:call-template name="getTitle">
1012
- <xsl:with-param name="name" select="'title-source'"/>
1013
- </xsl:call-template>
1014
- </xsl:variable>
1015
- <xsl:value-of select="$title-source"/>
1016
- <xsl:text>: </xsl:text>
1017
- <fo:inline color="blue" text-decoration="underline"><xsl:value-of select="iho:origin/@citeas"/></fo:inline>
1018
-
1019
- <xsl:apply-templates select="iho:origin/iho:localityStack"/>
1020
-
1021
- </fo:basic-link>
1022
- <xsl:apply-templates select="iho:modification"/>
1023
- <xsl:text>]</xsl:text>
1024
- </fo:block>
1025
- </xsl:template>
679
+
1026
680
 
1027
681
  <xsl:template match="iho:admonition">
1028
682
  <fo:block-container border="0.5pt solid rgb(79, 129, 189)" color="rgb(79, 129, 189)" margin-left="16mm" margin-right="16mm" margin-bottom="12pt">
@@ -1037,130 +691,28 @@
1037
691
  </fo:block-container>
1038
692
  </xsl:template>
1039
693
 
1040
- <xsl:template match="iho:formula">
1041
- <fo:block id="{@id}">
1042
- <xsl:apply-templates/>
1043
- </fo:block>
1044
- </xsl:template>
1045
-
1046
- <xsl:template match="iho:formula/iho:dt/iho:stem">
1047
- <fo:inline>
1048
- <xsl:apply-templates/>
1049
- </fo:inline>
1050
- </xsl:template>
1051
-
694
+
1052
695
  <xsl:template match="iho:formula/iho:stem">
1053
696
  <fo:block margin-top="6pt" margin-bottom="12pt" text-align="center">
1054
697
  <xsl:apply-templates/>
1055
698
  </fo:block>
1056
699
  </xsl:template>
1057
700
 
1058
- <xsl:template match="iho:quote">
1059
- <fo:block margin-left="12.5mm" margin-right="14mm">
1060
- <xsl:apply-templates select=".//iho:p"/>
1061
- </fo:block>
1062
- <xsl:if test="iho:author or iho:source">
1063
- <fo:block text-align="right">
1064
- <xsl:if test="iho:author">
1065
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
1066
- <xsl:text>— </xsl:text><xsl:value-of select="iho:author"/>
1067
- </xsl:if>
1068
- <xsl:if test="iho:source">
1069
- <xsl:text>, </xsl:text>
1070
- <xsl:apply-templates select="iho:source"/>
1071
- </xsl:if>
1072
- </fo:block>
1073
- </xsl:if>
1074
- </xsl:template>
1075
-
1076
- <xsl:template match="iho:source">
1077
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
1078
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1079
- <xsl:apply-templates select="iho:localityStack"/>
1080
- </fo:basic-link>
1081
- </xsl:template>
1082
701
 
1083
-
1084
- <xsl:template match="iho:xref">
1085
- <xsl:param name="sectionNum"/>
1086
-
1087
- <xsl:variable name="target" select="normalize-space(@target)"/>
1088
- <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1089
- <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = $target]/@section"/>
1090
- <!-- <xsl:if test="not(starts-with($section, 'Figure') or starts-with($section, 'Table'))"> -->
1091
- <xsl:attribute name="color">blue</xsl:attribute>
1092
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1093
- <!-- </xsl:if> -->
1094
- <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = $target]/@type"/>
1095
- <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id =$target]/@root"/>
1096
- <xsl:variable name="level" select="xalan:nodeset($contents)//item[@id =$target]/@level"/>
1097
- <xsl:choose>
1098
- <xsl:when test="$type = 'clause' and $root != 'annex' and $level = 1 and normalize-space(.) = ''"><!-- and not (ancestor::annex) -->
1099
- <xsl:variable name="title-clause">
1100
- <xsl:call-template name="getTitle">
1101
- <xsl:with-param name="name" select="'title-clause'"/>
1102
- </xsl:call-template>
1103
- </xsl:variable>
1104
- <xsl:value-of select="$title-clause"/>
1105
- </xsl:when>
1106
- <xsl:when test="$type = 'li'">
1107
- <xsl:attribute name="color">black</xsl:attribute>
1108
- <xsl:attribute name="text-decoration">none</xsl:attribute>
1109
- <xsl:variable name="parent_section" select="xalan:nodeset($contents)//item[@id =$target]/@parent_section"/>
1110
- <xsl:variable name="currentSection">
1111
- <xsl:call-template name="getSection"/>
1112
- </xsl:variable>
1113
- <xsl:if test="not(contains($parent_section, $currentSection))">
1114
- <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1115
- <xsl:attribute name="color">blue</xsl:attribute>
1116
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1117
- <xsl:value-of select="$parent_section"/><xsl:text> </xsl:text>
1118
- </fo:basic-link>
1119
- </xsl:if>
1120
- </xsl:when>
1121
- <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1122
- </xsl:choose>
1123
- <xsl:choose>
1124
- <xsl:when test="normalize-space(.) != ''">
1125
- <xsl:apply-templates/>
1126
- </xsl:when>
1127
- <xsl:otherwise>
1128
- <xsl:value-of select="$section"/>
1129
- </xsl:otherwise>
1130
- </xsl:choose>
1131
- </fo:basic-link>
1132
- </xsl:template>
1133
-
1134
- <xsl:template match="iho:annex">
1135
- <fo:block break-after="page"/>
1136
- <xsl:if test="not(iho:title)">
1137
- <fo:block id="{@id}" font-size="13pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always">
1138
- <xsl:choose>
1139
- <xsl:when test="@obligation = 'informative'">
1140
- <xsl:variable name="title-appendix">
1141
- <xsl:call-template name="getTitle">
1142
- <xsl:with-param name="name" select="'title-appendix'"/>
1143
- </xsl:call-template>
1144
- </xsl:variable>
1145
- <xsl:value-of select="$title-appendix"/>
1146
- <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
1147
- </xsl:when>
1148
- <xsl:otherwise>
1149
- <xsl:variable name="title-annex">
1150
- <xsl:call-template name="getTitle">
1151
- <xsl:with-param name="name" select="'title-annex'"/>
1152
- </xsl:call-template>
1153
- </xsl:variable>
1154
- <xsl:value-of select="$title-annex"/>
1155
- <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
1156
- </xsl:otherwise>
1157
- </xsl:choose>
1158
- </fo:block>
1159
- </xsl:if>
1160
- <xsl:apply-templates/>
702
+
703
+ <xsl:template match="iho:references"><!-- [position() &gt; 1] -->
704
+ <fo:block id="{@id}">
705
+ <xsl:apply-templates/>
706
+ </fo:block>
1161
707
  </xsl:template>
1162
708
 
1163
- <!-- Example: [1] IHO S-100, Universal Hydrographic Data Model v4.0.0, December 2018 (Encoding, Feature Catalogue) -->
709
+
710
+ <!-- IHO documents:
711
+ "[1] S57 edition 3.1: IHO Transfer Standard for Digital Hydrographic Data, International Hydrographic Organization (www.iho.int)”
712
+ [{number}] {docID} edition {edition}: {title}, {author/organization}
713
+
714
+ Non-IHO documents:
715
+ Provide title and publisher -->
1164
716
  <xsl:template match="iho:bibitem">
1165
717
  <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm" line-height="115%">
1166
718
  <fo:list-item>
@@ -1173,39 +725,35 @@
1173
725
  </fo:list-item-label>
1174
726
  <fo:list-item-body start-indent="body-start()">
1175
727
  <fo:block>
1176
- <xsl:variable name="docidentifier">
1177
- <xsl:if test="iho:docidentifier">
1178
- <xsl:choose>
1179
- <xsl:when test="iho:docidentifier/@type = 'metanorma'"/>
1180
- <xsl:otherwise><xsl:value-of select="iho:docidentifier"/></xsl:otherwise>
1181
- </xsl:choose>
1182
- </xsl:if>
1183
- </xsl:variable>
1184
- <xsl:value-of select="$docidentifier"/>
1185
- <xsl:apply-templates select="iho:note"/>
1186
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1187
- <xsl:choose>
1188
- <xsl:when test="iho:title[@type = 'main' and @language = 'en']">
1189
- <xsl:apply-templates select="iho:title[@type = 'main' and @language = 'en']"/>
1190
- </xsl:when>
1191
- <xsl:otherwise>
1192
- <xsl:apply-templates select="iho:title"/>
1193
- </xsl:otherwise>
1194
- </xsl:choose>
1195
- <xsl:apply-templates select="iho:formattedref"/>
728
+ <xsl:call-template name="processBibitem"/>
1196
729
  </fo:block>
1197
730
  </fo:list-item-body>
1198
731
  </fo:list-item>
1199
732
  </fo:list-block>
1200
733
  </xsl:template>
1201
734
 
735
+ <xsl:template match="iho:bibitem/iho:edition">
736
+ <xsl:text> edition </xsl:text>
737
+ <xsl:value-of select="."/>
738
+ </xsl:template>
739
+
1202
740
  <xsl:template match="iho:bibitem/iho:title">
1203
741
  <fo:inline font-style="italic">
1204
742
  <xsl:apply-templates/>
1205
743
  </fo:inline>
1206
744
  </xsl:template>
1207
745
 
1208
- <xsl:template match="iho:bibitem/iho:note">
746
+ <xsl:template match="iho:bibitem/iho:uri">
747
+ <xsl:text> (</xsl:text>
748
+ <fo:inline xsl:use-attribute-sets="link-style">
749
+ <fo:basic-link external-destination="." fox:alt-text=".">
750
+ <xsl:value-of select="."/>
751
+ </fo:basic-link>
752
+ </fo:inline>
753
+ <xsl:text>)</xsl:text>
754
+ </xsl:template>
755
+
756
+ <xsl:template match="iho:bibitem/iho:note" priority="2">
1209
757
  <fo:footnote>
1210
758
  <xsl:variable name="number">
1211
759
  <xsl:number level="any" count="iho:bibitem/iho:note"/>
@@ -1226,38 +774,10 @@
1226
774
  </fo:footnote>
1227
775
  </xsl:template>
1228
776
 
1229
- <xsl:template match="iho:example">
1230
- <fo:block font-size="11pt" margin-top="8pt" margin-bottom="12pt">
1231
- <xsl:variable name="claims_id" select="ancestor::iho:clause[1]/@id"/>
1232
- <fo:block margin-bottom="12pt" font-weight="bold">
1233
- <fo:inline padding-right="5mm">
1234
- <xsl:variable name="title-example">
1235
- <xsl:call-template name="getTitle">
1236
- <xsl:with-param name="name" select="'title-example'"/>
1237
- </xsl:call-template>
1238
- </xsl:variable>
1239
- <xsl:value-of select="$title-example"/>
1240
- <xsl:choose>
1241
- <xsl:when test="iho:name">
1242
- <xsl:text>— </xsl:text><xsl:apply-templates select="iho:name" mode="example"/>
1243
- </xsl:when>
1244
- <!-- <xsl:when test="count(ancestor::iho:clause[1]//iho:example) &gt; 1">
1245
- <xsl:number count="iho:example[ancestor::iho:clause[@id = $claims_id]]" level="any"/>
1246
- </xsl:when> -->
1247
- </xsl:choose>
1248
- </fo:inline>
1249
- </fo:block>
1250
- <xsl:apply-templates/>
1251
- </fo:block>
1252
- </xsl:template>
1253
777
 
1254
- <xsl:template match="iho:example/iho:name"/>
1255
- <xsl:template match="iho:example/iho:name" mode="example">
1256
- <fo:inline><xsl:apply-templates/></fo:inline>
1257
- </xsl:template>
1258
778
 
1259
- <xsl:template match="iho:example/iho:p">
1260
- <fo:block-container font-size="11pt" margin-left="12.7mm">
779
+ <xsl:template match="iho:example/iho:p" priority="2">
780
+ <fo:block-container xsl:use-attribute-sets="example-p-style">
1261
781
  <fo:block-container margin-left="0mm">
1262
782
  <fo:block>
1263
783
  <xsl:apply-templates/>
@@ -1266,32 +786,7 @@
1266
786
  </fo:block-container>
1267
787
  </xsl:template>
1268
788
 
1269
- <!-- <eref type="inline" bibitemid="iso-19115-1" citeas="ISO 19115-1:2014/Amd 1">...<localityStack><locality type="clause"><referenceFrom>113-01-12</referenceFrom></locality></localityStack></eref> -->
1270
- <xsl:template match="iho:eref">
1271
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}"> <!-- font-size="9pt" color="blue" vertical-align="super" -->
1272
- <xsl:if test="@type = 'footnote'">
1273
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1274
- <xsl:attribute name="font-size">80%</xsl:attribute>
1275
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1276
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1277
- </xsl:if>
1278
- <xsl:if test="@type = 'inline'">
1279
- <xsl:attribute name="color">blue</xsl:attribute>
1280
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1281
- </xsl:if>
1282
- <xsl:choose>
1283
- <xsl:when test="@citeas and normalize-space(text()) = ''">
1284
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1285
- </xsl:when>
1286
- <xsl:when test="@bibitemid and normalize-space(text()) = ''">
1287
- <xsl:value-of select="//iho:bibitem[@id = current()/@bibitemid]/iho:docidentifier"/>
1288
- </xsl:when>
1289
- <xsl:otherwise/>
1290
- </xsl:choose>
1291
- <xsl:apply-templates select="iho:localityStack"/>
1292
- <xsl:apply-templates select="text()"/>
1293
- </fo:basic-link>
1294
- </xsl:template>
789
+
1295
790
 
1296
791
  <xsl:template match="iho:pagebreak">
1297
792
  <xsl:copy-of select="."/>
@@ -1300,30 +795,12 @@
1300
795
  <!-- https://github.com/metanorma/mn-native-pdf/issues/214 -->
1301
796
  <xsl:template match="iho:index"/>
1302
797
 
1303
- <xsl:template match="iho:review"/>
1304
-
1305
- <xsl:template match="iho:term">
1306
- <xsl:param name="sectionNum"/>
1307
- <fo:block id="{@id}" margin-bottom="10pt">
1308
- <xsl:apply-templates>
1309
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1310
- </xsl:apply-templates>
1311
- </fo:block>
1312
- </xsl:template>
1313
798
 
1314
799
  <xsl:template match="iho:preferred">
1315
- <xsl:param name="sectionNum"/>
800
+
1316
801
  <fo:block line-height="1.1">
1317
802
  <fo:block font-weight="bold" keep-with-next="always">
1318
- <fo:inline>
1319
- <xsl:variable name="section">
1320
- <xsl:call-template name="getSection">
1321
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1322
- </xsl:call-template>
1323
- </xsl:variable>
1324
- <xsl:value-of select="$section"/>
1325
- <!-- <xsl:value-of select="$sectionNum"/>.<xsl:number count="iho:term"/> -->
1326
- </fo:inline>
803
+ <xsl:apply-templates select="ancestor::iho:term/iho:name" mode="presentation"/>
1327
804
  </fo:block>
1328
805
  <fo:block font-weight="bold" keep-with-next="always">
1329
806
  <xsl:apply-templates/>
@@ -1331,122 +808,9 @@
1331
808
  </fo:block>
1332
809
  </xsl:template>
1333
810
 
1334
- <xsl:template match="iho:admitted">
1335
- <fo:block>
1336
- <xsl:apply-templates/>
1337
- </fo:block>
1338
- </xsl:template>
1339
-
1340
- <xsl:template match="iho:deprecates">
1341
- <xsl:variable name="title-deprecated">
1342
- <xsl:call-template name="getTitle">
1343
- <xsl:with-param name="name" select="'title-deprecated'"/>
1344
- </xsl:call-template>
1345
- </xsl:variable>
1346
- <fo:block><xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/></fo:block>
1347
- </xsl:template>
1348
-
1349
- <xsl:template match="iho:definition[preceding-sibling::iho:domain]">
1350
- <xsl:apply-templates/>
1351
- </xsl:template>
1352
- <xsl:template match="iho:definition[preceding-sibling::iho:domain]/iho:p">
1353
- <fo:inline> <xsl:apply-templates/></fo:inline>
1354
- <fo:block> </fo:block>
1355
- </xsl:template>
1356
-
1357
- <xsl:template match="iho:definition">
1358
- <fo:block margin-bottom="6pt">
1359
- <xsl:apply-templates/>
1360
- </fo:block>
1361
- </xsl:template>
1362
-
1363
- <xsl:template match="iho:termexample">
1364
- <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1365
- <fo:inline padding-right="5mm">
1366
- <xsl:variable name="title-example">
1367
- <xsl:call-template name="getTitle">
1368
- <xsl:with-param name="name" select="'title-example'"/>
1369
- </xsl:call-template>
1370
- </xsl:variable>
1371
- <xsl:value-of select="$title-example"/>
1372
- <xsl:if test="count(ancestor::iho:term[1]//iho:termexample) &gt; 1">
1373
- <xsl:number/>
1374
- </xsl:if>
1375
- </fo:inline>
1376
- <xsl:apply-templates/>
1377
- </fo:block>
1378
- </xsl:template>
1379
-
1380
- <xsl:template match="iho:termexample/iho:p">
1381
- <fo:inline><xsl:apply-templates/></fo:inline>
1382
- </xsl:template>
1383
-
1384
811
 
1385
-
1386
- <xsl:template match="iho:domain">
1387
- <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline><xsl:text> </xsl:text>
1388
- </xsl:template>
1389
-
1390
- <xsl:template match="iho:termnote">
1391
- <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1392
- <xsl:variable name="num"><xsl:number/></xsl:variable>
1393
- <xsl:variable name="title-note-to-entry">
1394
- <xsl:call-template name="getTitle">
1395
- <xsl:with-param name="name" select="'title-note-to-entry'"/>
1396
- </xsl:call-template>
1397
- </xsl:variable>
1398
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($title-note-to-entry),'#',$num)"/>
1399
- <xsl:apply-templates/>
1400
- </fo:block>
1401
- </xsl:template>
1402
-
1403
- <xsl:template match="iho:termnote/iho:p">
1404
- <fo:inline><xsl:apply-templates/></fo:inline>
1405
- <!-- <xsl:if test="following-sibling::* and not(following-sibling::iho:p)">
1406
- <xsl:value-of select="$linebreak"/>
1407
- <xsl:value-of select="$linebreak"/>
1408
- </xsl:if> -->
1409
- </xsl:template>
1410
-
1411
812
 
1412
- <xsl:template match="iho:modification/iho:p">
1413
- <fo:inline><xsl:apply-templates/></fo:inline>
1414
- </xsl:template>
1415
-
1416
- <xsl:template match="iho:locality">
1417
- <xsl:variable name="title-clause">
1418
- <xsl:call-template name="getTitle">
1419
- <xsl:with-param name="name" select="'title-clause'"/>
1420
- </xsl:call-template>
1421
- </xsl:variable>
1422
- <xsl:variable name="title-annex">
1423
- <xsl:call-template name="getTitle">
1424
- <xsl:with-param name="name" select="'title-annex'"/>
1425
- </xsl:call-template>
1426
- </xsl:variable>
1427
- <xsl:variable name="title-appendix">
1428
- <xsl:call-template name="getTitle">
1429
- <xsl:with-param name="name" select="'title-appendix'"/>
1430
- </xsl:call-template>
1431
- </xsl:variable>
1432
- <xsl:variable name="title-table">
1433
- <xsl:call-template name="getTitle">
1434
- <xsl:with-param name="name" select="'title-table'"/>
1435
- </xsl:call-template>
1436
- </xsl:variable>
1437
- <xsl:choose>
1438
- <xsl:when test="ancestor::iho:termsource"/>
1439
- <xsl:when test="@type ='clause' and ancestor::iho:eref"/>
1440
- <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
1441
- <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1442
- <xsl:when test="@type ='appendix'"><xsl:value-of select="$title-appendix"/></xsl:when>
1443
- <xsl:when test="@type ='table'"><xsl:value-of select="$title-table"/></xsl:when>
1444
- <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
1445
- </xsl:choose>
1446
- <xsl:text> </xsl:text><xsl:value-of select="iho:referenceFrom"/>
1447
- </xsl:template>
1448
813
 
1449
-
1450
814
  <xsl:template name="insertHeaderFooter">
1451
815
  <xsl:param name="font-weight" select="'bold'"/>
1452
816
  <fo:static-content flow-name="header-odd">
@@ -1491,127 +855,6 @@
1491
855
  </fo:static-content>
1492
856
  </xsl:template>
1493
857
 
1494
-
1495
- <xsl:template name="getSection">
1496
- <xsl:param name="sectionNum"/>
1497
- <xsl:variable name="level">
1498
- <xsl:call-template name="getLevel"/>
1499
- </xsl:variable>
1500
- <xsl:variable name="section">
1501
- <xsl:choose>
1502
- <xsl:when test="ancestor::iho:bibliography">
1503
- <xsl:value-of select="$sectionNum"/>
1504
- </xsl:when>
1505
- <xsl:when test="ancestor::iho:sections">
1506
- <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
1507
- <xsl:choose>
1508
- <xsl:when test="$level = 1">
1509
- <xsl:value-of select="$sectionNum"/><xsl:text>.</xsl:text>
1510
- </xsl:when>
1511
- <xsl:when test="$level &gt;= 2">
1512
- <xsl:variable name="num">
1513
- <xsl:call-template name="getSubSection"/>
1514
- </xsl:variable>
1515
- <xsl:value-of select="concat($sectionNum, $num)"/><xsl:text>.</xsl:text>
1516
- </xsl:when>
1517
- <xsl:otherwise>
1518
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
1519
- </xsl:otherwise>
1520
- </xsl:choose>
1521
- </xsl:when>
1522
- <!-- <xsl:when test="ancestor::iho:annex[@obligation = 'informative']">
1523
- <xsl:choose>
1524
- <xsl:when test="$level = 1">
1525
- <xsl:text>Annex </xsl:text>
1526
- <xsl:number format="I" level="any" count="iho:annex[@obligation = 'informative']"/>
1527
- </xsl:when>
1528
- <xsl:otherwise>
1529
- <xsl:number format="I.1" level="multiple" count="iho:annex[@obligation = 'informative'] | iho:clause"/>
1530
- </xsl:otherwise>
1531
- </xsl:choose>
1532
- </xsl:when> -->
1533
- <xsl:when test="ancestor::iho:annex">
1534
- <xsl:variable name="annexid" select="normalize-space(/iho:iho-standard/iho:bibdata/iho:ext/iho:structuredidentifier/iho:annexid)"/>
1535
- <xsl:choose>
1536
- <xsl:when test="$level = 1">
1537
- <xsl:choose>
1538
- <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1539
- <xsl:variable name="title-appendix">
1540
- <xsl:call-template name="getTitle">
1541
- <xsl:with-param name="name" select="'title-appendix'"/>
1542
- </xsl:call-template>
1543
- </xsl:variable>
1544
- <xsl:value-of select="$title-appendix"/>
1545
- </xsl:when>
1546
- <xsl:otherwise>
1547
- <xsl:variable name="title-annex">
1548
- <xsl:call-template name="getTitle">
1549
- <xsl:with-param name="name" select="'title-annex'"/>
1550
- </xsl:call-template>
1551
- </xsl:variable>
1552
- <xsl:value-of select="$title-annex"/>
1553
- </xsl:otherwise>
1554
- </xsl:choose>
1555
-
1556
- <xsl:choose>
1557
- <xsl:when test="count(//iho:annex) = 1 and $annexid != ''">
1558
- <xsl:value-of select="$annexid"/>
1559
- </xsl:when>
1560
- <xsl:otherwise>
1561
- <xsl:choose>
1562
- <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1563
- <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
1564
- </xsl:when>
1565
- <xsl:otherwise>
1566
- <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
1567
- <!-- <xsl:number format="A" level="any" count="iho:annex"/> -->
1568
- </xsl:otherwise>
1569
- </xsl:choose>
1570
- </xsl:otherwise>
1571
- </xsl:choose>
1572
- </xsl:when>
1573
- <xsl:otherwise>
1574
- <xsl:choose>
1575
- <xsl:when test="count(//iho:annex) = 1 and $annexid != ''">
1576
- <xsl:value-of select="$annexid"/><xsl:number format=".1" level="multiple" count="iho:clause"/>
1577
- </xsl:when>
1578
- <xsl:otherwise>
1579
-
1580
- <xsl:choose>
1581
- <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1582
- <xsl:number format="1.1." level="multiple" count="iho:annex[@obligation = 'informative'] | iho:clause"/>
1583
- </xsl:when>
1584
- <xsl:otherwise>
1585
- <xsl:number format="A.1." level="multiple" count="iho:annex[not(@obligation = 'informative')] | iho:clause"/>
1586
- <!-- <xsl:number format="A.1." level="multiple" count="iho:annex | iho:clause"/> -->
1587
- </xsl:otherwise>
1588
- </xsl:choose>
1589
-
1590
-
1591
- </xsl:otherwise>
1592
- </xsl:choose>
1593
- </xsl:otherwise>
1594
- </xsl:choose>
1595
- </xsl:when>
1596
- <!-- if preface and there is clause(s) -->
1597
- <!-- <xsl:when test="ancestor::iho:preface">
1598
- <xsl:choose>
1599
- <xsl:when test="$level = 1 and ..//iho:clause">0</xsl:when>
1600
- <xsl:when test="$level &gt;= 2">
1601
- <xsl:variable name="num">
1602
- <xsl:number format=".1" level="multiple" count="iho:clause"/>
1603
- </xsl:variable>
1604
- <xsl:value-of select="concat('0', $num)"/>
1605
- </xsl:when>
1606
- <xsl:otherwise></xsl:otherwise>
1607
- </xsl:choose>
1608
- </xsl:when> -->
1609
- <xsl:otherwise>
1610
- </xsl:otherwise>
1611
- </xsl:choose>
1612
- </xsl:variable>
1613
- <xsl:value-of select="$section"/>
1614
- </xsl:template>
1615
858
 
1616
859
  <xsl:template name="getListItemFormat">
1617
860
  <xsl:choose>
@@ -1709,46 +952,6 @@
1709
952
  </xsl:variable>
1710
953
 
1711
954
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
1712
-
1713
- <title-table lang="en">Table </title-table>
1714
- <title-table lang="fr">Tableau </title-table>
1715
-
1716
- <title-table lang="zh">Table </title-table>
1717
-
1718
-
1719
-
1720
- <title-note lang="en">NOTE </title-note>
1721
- <title-note lang="fr">NOTE </title-note>
1722
-
1723
- <title-note lang="zh">NOTE </title-note>
1724
-
1725
-
1726
-
1727
- <title-figure lang="en">Figure </title-figure>
1728
- <title-figure lang="fr">Figure </title-figure>
1729
-
1730
- <title-figure lang="zh">Figure </title-figure>
1731
-
1732
-
1733
-
1734
- <title-example lang="en">EXAMPLE </title-example>
1735
- <title-example lang="fr">EXEMPLE </title-example>
1736
-
1737
- <title-example lang="zh">EXAMPLE </title-example>
1738
-
1739
-
1740
-
1741
- <title-example-xref lang="en">Example </title-example-xref>
1742
- <title-example-xref lang="fr">Exemple </title-example-xref>
1743
-
1744
- <title-section lang="en">Section </title-section>
1745
- <title-section lang="fr">Section </title-section>
1746
-
1747
- <title-inequality lang="en">Inequality </title-inequality>
1748
- <title-inequality lang="fr">Inequality </title-inequality>
1749
-
1750
- <title-equation lang="en">Equation </title-equation>
1751
- <title-equation lang="fr">Equation </title-equation>
1752
955
 
1753
956
  <title-annex lang="en">Annex </title-annex>
1754
957
  <title-annex lang="fr">Annexe </title-annex>
@@ -1756,17 +959,7 @@
1756
959
  <title-annex lang="zh">Annex </title-annex>
1757
960
 
1758
961
 
1759
-
1760
- <title-appendix lang="en">Appendix </title-appendix>
1761
- <title-appendix lang="fr">Appendix </title-appendix>
1762
-
1763
- <title-clause lang="en">Clause </title-clause>
1764
- <title-clause lang="fr">Article </title-clause>
1765
-
1766
- <title-clause lang="zh">Clause </title-clause>
1767
-
1768
-
1769
-
962
+
1770
963
  <title-edition lang="en">
1771
964
 
1772
965
  <xsl:text>Edition </xsl:text>
@@ -1774,9 +967,13 @@
1774
967
 
1775
968
  </title-edition>
1776
969
 
1777
- <title-formula lang="en">Formula </title-formula>
1778
- <title-formula lang="fr">Formula </title-formula>
970
+ <title-edition lang="fr">
971
+
972
+ <xsl:text>Édition </xsl:text>
973
+
974
+ </title-edition>
1779
975
 
976
+
1780
977
  <title-toc lang="en">
1781
978
 
1782
979
  <xsl:text>Contents</xsl:text>
@@ -1811,13 +1008,6 @@
1811
1008
  </title-part>
1812
1009
  <title-part lang="zh">第 # 部分:</title-part>
1813
1010
 
1814
- <title-note-to-entry lang="en">Note # to entry: </title-note-to-entry>
1815
- <title-note-to-entry lang="fr">Note # à l'article: </title-note-to-entry>
1816
-
1817
- <title-note-to-entry lang="zh">Note # to entry: </title-note-to-entry>
1818
-
1819
-
1820
-
1821
1011
  <title-modified lang="en">modified</title-modified>
1822
1012
  <title-modified lang="fr">modifiée</title-modified>
1823
1013
 
@@ -1825,20 +1015,23 @@
1825
1015
 
1826
1016
 
1827
1017
 
1828
- <title-source lang="en">SOURCE</title-source>
1018
+ <title-source lang="en">
1019
+
1020
+ <xsl:text>SOURCE</xsl:text>
1021
+
1022
+
1023
+ </title-source>
1829
1024
 
1830
1025
  <title-keywords lang="en">Keywords</title-keywords>
1831
1026
 
1832
1027
  <title-deprecated lang="en">DEPRECATED</title-deprecated>
1833
1028
  <title-deprecated lang="fr">DEPRECATED</title-deprecated>
1834
-
1835
- <title-submitting-organizations lang="en">Submitting Organizations</title-submitting-organizations>
1836
-
1029
+
1837
1030
  <title-list-tables lang="en">List of Tables</title-list-tables>
1838
1031
 
1839
1032
  <title-list-figures lang="en">List of Figures</title-list-figures>
1840
1033
 
1841
- <title-recommendation lang="en">Recommendation </title-recommendation>
1034
+ <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
1842
1035
 
1843
1036
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
1844
1037
 
@@ -1848,8 +1041,6 @@
1848
1041
 
1849
1042
  <title-in lang="en">in </title-in>
1850
1043
 
1851
- <title-box lang="en">Box </title-box>
1852
-
1853
1044
  <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
1854
1045
  <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
1855
1046
 
@@ -1872,7 +1063,11 @@
1872
1063
  <title-warning lang="zh">警告</title-warning>
1873
1064
 
1874
1065
  <title-amendment lang="en">AMENDMENT</title-amendment>
1875
- </xsl:variable><xsl:template name="getTitle">
1066
+
1067
+ <title-continued lang="en">(continued)</title-continued>
1068
+ <title-continued lang="fr">(continué)</title-continued>
1069
+
1070
+ </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1876
1071
  <xsl:param name="name"/>
1877
1072
  <xsl:variable name="lang">
1878
1073
  <xsl:call-template name="getLang"/>
@@ -1886,13 +1081,18 @@
1886
1081
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
1887
1082
  </xsl:otherwise>
1888
1083
  </xsl:choose>
1889
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
1084
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
1085
+
1086
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
1890
1087
 
1891
1088
  <xsl:attribute name="color">blue</xsl:attribute>
1892
1089
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1893
1090
 
1894
1091
 
1092
+
1895
1093
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1094
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1095
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1896
1096
 
1897
1097
 
1898
1098
 
@@ -1901,162 +1101,462 @@
1901
1101
 
1902
1102
 
1903
1103
 
1904
- <xsl:attribute name="font-family">SFMono-Regular</xsl:attribute>
1905
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1104
+
1105
+ <xsl:attribute name="font-family">SFMono-Regular</xsl:attribute>
1906
1106
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1907
1107
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1908
1108
  <xsl:attribute name="line-height">113%</xsl:attribute>
1909
1109
 
1910
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1110
+ </xsl:attribute-set><xsl:attribute-set name="permission-style">
1911
1111
 
1112
+ </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
1912
1113
 
1114
+ </xsl:attribute-set><xsl:attribute-set name="permission-label-style">
1913
1115
 
1914
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1116
+ </xsl:attribute-set><xsl:attribute-set name="requirement-style">
1915
1117
 
1118
+ </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
1916
1119
 
1120
+ </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
1917
1121
 
1918
- </xsl:attribute-set><xsl:template match="text()">
1919
- <xsl:value-of select="."/>
1920
- </xsl:template><xsl:template match="*[local-name()='br']">
1921
- <xsl:value-of select="$linebreak"/>
1922
- </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1923
- <!-- <xsl:call-template name="add-zero-spaces"/> -->
1924
- <xsl:call-template name="add-zero-spaces-java"/>
1925
- </xsl:template><xsl:template match="*[local-name()='table']">
1926
-
1927
- <xsl:variable name="simple-table">
1928
- <!-- <xsl:copy> -->
1929
- <xsl:call-template name="getSimpleTable"/>
1930
- <!-- </xsl:copy> -->
1931
- </xsl:variable>
1932
-
1933
- <!-- DEBUG -->
1934
- <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
1935
- <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
1936
-
1937
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
1122
+ </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
1123
+ </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
1124
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
1938
1125
 
1939
- <!-- <xsl:if test="$namespace = 'iso'">
1940
- <fo:block space-before="6pt">&#xA0;</fo:block>
1941
- </xsl:if> -->
1942
1126
 
1943
- <xsl:choose>
1944
- <xsl:when test="@unnumbered = 'true'"/>
1945
- <xsl:otherwise>
1946
-
1947
-
1948
-
1949
- <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
1950
-
1951
-
1952
-
1953
-
1954
-
1955
-
1956
-
1957
-
1958
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1959
- <xsl:attribute name="font-size">11pt</xsl:attribute>
1960
-
1961
- <xsl:variable name="title-table">
1962
- <xsl:call-template name="getTitle">
1963
- <xsl:with-param name="name" select="'title-table'"/>
1964
- </xsl:call-template>
1965
- </xsl:variable>
1966
- <xsl:value-of select="$title-table"/>
1967
-
1968
- <xsl:call-template name="getTableNumber"/>
1969
-
1970
-
1971
- <xsl:if test="*[local-name()='name']">
1972
-
1973
-
1974
-
1975
- <xsl:text> — </xsl:text>
1976
-
1977
- <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
1978
- </xsl:if>
1979
- </fo:block>
1980
-
1981
-
1982
- <xsl:call-template name="fn_name_display"/>
1983
-
1984
- </xsl:otherwise>
1985
- </xsl:choose>
1127
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-name-style">
1128
+
1129
+
1130
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-label-style">
1131
+
1132
+ </xsl:attribute-set><xsl:attribute-set name="termexample-style">
1133
+
1134
+
1135
+
1136
+
1137
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1138
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1139
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1140
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1141
+
1142
+
1143
+
1144
+
1145
+ </xsl:attribute-set><xsl:attribute-set name="example-style">
1146
+
1147
+
1148
+
1149
+
1150
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1151
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1152
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+ </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1162
+
1163
+
1164
+
1165
+ </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1172
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1173
+
1986
1174
 
1987
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1988
1175
 
1989
- <!-- <xsl:variable name="cols-count">
1990
- <xsl:choose>
1991
- <xsl:when test="*[local-name()='thead']">
1992
- <xsl:call-template name="calculate-columns-numbers">
1993
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1994
- </xsl:call-template>
1995
- </xsl:when>
1996
- <xsl:otherwise>
1997
- <xsl:call-template name="calculate-columns-numbers">
1998
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1999
- </xsl:call-template>
2000
- </xsl:otherwise>
2001
- </xsl:choose>
2002
- </xsl:variable> -->
2003
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2004
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2005
1176
 
2006
1177
 
2007
1178
 
2008
- <xsl:variable name="colwidths">
2009
- <xsl:call-template name="calculate-column-widths">
2010
- <xsl:with-param name="cols-count" select="$cols-count"/>
2011
- <xsl:with-param name="table" select="$simple-table"/>
2012
- </xsl:call-template>
2013
- </xsl:variable>
2014
1179
 
2015
- <!-- <xsl:variable name="colwidths2">
2016
- <xsl:call-template name="calculate-column-widths">
2017
- <xsl:with-param name="cols-count" select="$cols-count"/>
2018
- </xsl:call-template>
2019
- </xsl:variable> -->
2020
1180
 
2021
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2022
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2023
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2024
1181
 
2025
- <xsl:variable name="margin-left">
2026
- <xsl:choose>
2027
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2028
- <xsl:otherwise>0</xsl:otherwise>
2029
- </xsl:choose>
2030
- </xsl:variable>
2031
1182
 
2032
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2033
-
2034
-
2035
-
2036
-
2037
-
2038
-
2039
-
2040
-
2041
- <xsl:attribute name="space-after">18pt</xsl:attribute>
2042
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2043
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2044
-
2045
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2046
-
2047
1183
 
1184
+
1185
+
1186
+
1187
+ </xsl:attribute-set><xsl:attribute-set name="example-p-style">
1188
+
1189
+
1190
+
1191
+
1192
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1193
+ <xsl:attribute name="margin-left">12.7mm</xsl:attribute>
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+ </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1205
+
1206
+
1207
+
1208
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1209
+
2048
1210
 
1211
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
1212
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1213
+
1214
+
1215
+
1216
+
1217
+ <xsl:attribute name="text-align">center</xsl:attribute>
1218
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1219
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1220
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1221
+
2049
1222
 
1223
+
1224
+
1225
+
2050
1226
 
1227
+
1228
+
1229
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1230
+
1231
+
1232
+
1233
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1234
+
1235
+
1236
+
1237
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
1238
+
1239
+
1240
+ <xsl:attribute name="color">blue</xsl:attribute>
1241
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1242
+
1243
+
1244
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
1245
+
1246
+
1247
+
1248
+
1249
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
1250
+
1251
+
1252
+
2051
1253
 
1254
+
1255
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1256
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1257
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1258
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+ </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1275
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1285
+
1286
+
1287
+
2052
1288
 
1289
+
1290
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1291
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1302
+
1303
+
1304
+
1305
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1306
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1307
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1308
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1309
+
1310
+
1311
+
1312
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
2053
1313
 
1314
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1315
+
1316
+
1317
+
1318
+
1319
+ <xsl:attribute name="margin-left">12.5mm</xsl:attribute>
1320
+ <xsl:attribute name="margin-right">14mm</xsl:attribute>
1321
+
1322
+
1323
+
1324
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1325
+
1326
+
1327
+ <xsl:attribute name="text-align">right</xsl:attribute>
2054
1328
 
2055
1329
 
2056
-
1330
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1331
+
1332
+
1333
+
1334
+
1335
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1336
+
1337
+
1338
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
1339
+
1340
+
1341
+ <xsl:attribute name="color">blue</xsl:attribute>
1342
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1343
+
1344
+
1345
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
1346
+
1347
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
1348
+
1349
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1358
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1359
+ <xsl:attribute name="text-align">center</xsl:attribute>
1360
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1361
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1362
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
1375
+
1376
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
1377
+ <xsl:attribute name="text-align">center</xsl:attribute>
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1384
+
1385
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1386
+
1387
+ <xsl:attribute name="width">100%</xsl:attribute>
1388
+ <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
1389
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
1396
+
1397
+
1398
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1399
+
1400
+
1401
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1402
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1403
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1404
+ <xsl:attribute name="text-align">center</xsl:attribute>
1405
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1406
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1407
+
1408
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
1409
+
1410
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
1411
+
1412
+
1413
+ </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
1414
+
1415
+ </xsl:attribute-set><xsl:attribute-set name="definition-style">
1416
+
1417
+
1418
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1419
+
1420
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
1421
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1422
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1423
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1424
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1425
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1426
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1427
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1428
+
1429
+ <!-- Normative references -->
1430
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
1431
+ <!-- Terms and definitions -->
1432
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
1433
+ <!-- Another main sections -->
1434
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
1435
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1436
+ <!-- Bibliography -->
1437
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
1438
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1439
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1440
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1441
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1442
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1443
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1444
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1445
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1446
+
1447
+ <!-- Normative references -->
1448
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1449
+ <!-- Terms and definitions -->
1450
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
1451
+ <!-- Another main sections -->
1452
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
1453
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1454
+ <!-- Bibliography -->
1455
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1456
+ </xsl:template><xsl:template match="text()">
1457
+ <xsl:value-of select="."/>
1458
+ </xsl:template><xsl:template match="*[local-name()='br']">
1459
+ <xsl:value-of select="$linebreak"/>
1460
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1461
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
1462
+ <xsl:call-template name="add-zero-spaces-java"/>
1463
+ </xsl:template><xsl:template match="*[local-name()='table']">
1464
+
1465
+ <xsl:variable name="simple-table">
1466
+ <xsl:call-template name="getSimpleTable"/>
1467
+ </xsl:variable>
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+ <!-- $namespace = 'iso' or -->
1474
+
1475
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1476
+
1477
+
1478
+
1479
+ <xsl:call-template name="fn_name_display"/>
1480
+
1481
+
1482
+
1483
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1484
+
1485
+ <!-- <xsl:variable name="cols-count">
1486
+ <xsl:choose>
1487
+ <xsl:when test="*[local-name()='thead']">
1488
+ <xsl:call-template name="calculate-columns-numbers">
1489
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1490
+ </xsl:call-template>
1491
+ </xsl:when>
1492
+ <xsl:otherwise>
1493
+ <xsl:call-template name="calculate-columns-numbers">
1494
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1495
+ </xsl:call-template>
1496
+ </xsl:otherwise>
1497
+ </xsl:choose>
1498
+ </xsl:variable> -->
1499
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1500
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1501
+
1502
+
1503
+
1504
+ <xsl:variable name="colwidths">
1505
+ <xsl:call-template name="calculate-column-widths">
1506
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1507
+ <xsl:with-param name="table" select="$simple-table"/>
1508
+ </xsl:call-template>
1509
+ </xsl:variable>
1510
+
1511
+ <!-- <xsl:variable name="colwidths2">
1512
+ <xsl:call-template name="calculate-column-widths">
1513
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1514
+ </xsl:call-template>
1515
+ </xsl:variable> -->
1516
+
1517
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1518
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
1519
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1520
+
1521
+ <xsl:variable name="margin-left">
1522
+ <xsl:choose>
1523
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1524
+ <xsl:otherwise>0</xsl:otherwise>
1525
+ </xsl:choose>
1526
+ </xsl:variable>
1527
+
1528
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+ <xsl:attribute name="space-after">18pt</xsl:attribute>
1538
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1539
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1540
+
1541
+
1542
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
2057
1555
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
2058
1556
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
2059
1557
 
1558
+
1559
+
2060
1560
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2061
1561
  <xsl:choose>
2062
1562
  <xsl:when test=". = 1 or . = 0">
@@ -2081,32 +1581,16 @@
2081
1581
 
2082
1582
 
2083
1583
 
1584
+
1585
+
2084
1586
  </fo:block-container>
2085
- </xsl:template><xsl:template name="getTableNumber">
2086
- <xsl:choose>
2087
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2088
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2089
- </xsl:when>
2090
- <xsl:when test="ancestor::*[local-name()='annex']">
2091
-
2092
-
1587
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1588
+ <xsl:if test="normalize-space() != ''">
1589
+ <fo:block xsl:use-attribute-sets="table-name-style">
2093
1590
 
2094
-
2095
-
2096
-
2097
-
2098
-
2099
- </xsl:when>
2100
- <xsl:otherwise>
2101
-
2102
-
2103
- <xsl:number format="A." count="*[local-name()='annex']"/>
2104
- <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
2105
-
2106
- </xsl:otherwise>
2107
- </xsl:choose>
2108
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
2109
- <xsl:apply-templates/>
1591
+ <xsl:apply-templates/>
1592
+ </fo:block>
1593
+ </xsl:if>
2110
1594
  </xsl:template><xsl:template name="calculate-columns-numbers">
2111
1595
  <xsl:param name="table-row"/>
2112
1596
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -2221,10 +1705,25 @@
2221
1705
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2222
1706
  <xsl:param name="cols-count"/>
2223
1707
  <!-- font-weight="bold" -->
2224
- <fo:table-header>
2225
-
1708
+ <fo:table-header>
1709
+
2226
1710
  <xsl:apply-templates/>
2227
1711
  </fo:table-header>
1712
+ </xsl:template><xsl:template name="table-header-title">
1713
+ <xsl:param name="cols-count"/>
1714
+ <!-- row for title -->
1715
+ <fo:table-row>
1716
+ <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
1717
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
1718
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
1719
+ <xsl:call-template name="fn_name_display"/>
1720
+ </xsl:for-each>
1721
+ <fo:block text-align="right" font-style="italic">
1722
+ <xsl:text> </xsl:text>
1723
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
1724
+ </fo:block>
1725
+ </fo:table-cell>
1726
+ </fo:table-row>
2228
1727
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
2229
1728
  <fo:table-body>
2230
1729
  <xsl:apply-templates/>
@@ -2288,6 +1787,8 @@
2288
1787
  </xsl:choose>
2289
1788
  </xsl:variable>
2290
1789
 
1790
+
1791
+
2291
1792
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2292
1793
  <xsl:with-param name="cols-count" select="$cols-count"/>
2293
1794
  </xsl:apply-templates>
@@ -2297,6 +1798,8 @@
2297
1798
  </xsl:call-template>
2298
1799
 
2299
1800
  <fo:table-body>
1801
+
1802
+
2300
1803
  <xsl:apply-templates/>
2301
1804
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2302
1805
 
@@ -2319,11 +1822,24 @@
2319
1822
 
2320
1823
  </xsl:if>
2321
1824
 
1825
+
1826
+
2322
1827
 
2323
1828
  <xsl:apply-templates/>
2324
1829
  </fo:table-row>
2325
1830
  </xsl:template><xsl:template match="*[local-name()='th']">
2326
1831
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
1832
+ <xsl:attribute name="text-align">
1833
+ <xsl:choose>
1834
+ <xsl:when test="@align">
1835
+ <xsl:value-of select="@align"/>
1836
+ </xsl:when>
1837
+ <xsl:otherwise>center</xsl:otherwise>
1838
+ </xsl:choose>
1839
+ </xsl:attribute>
1840
+
1841
+
1842
+
2327
1843
 
2328
1844
 
2329
1845
 
@@ -2341,17 +1857,38 @@
2341
1857
  <xsl:value-of select="@rowspan"/>
2342
1858
  </xsl:attribute>
2343
1859
  </xsl:if>
1860
+ <xsl:call-template name="display-align"/>
2344
1861
  <fo:block>
2345
1862
  <xsl:apply-templates/>
2346
1863
  </fo:block>
2347
1864
  </fo:table-cell>
1865
+ </xsl:template><xsl:template name="display-align">
1866
+ <xsl:if test="@valign">
1867
+ <xsl:attribute name="display-align">
1868
+ <xsl:choose>
1869
+ <xsl:when test="@valign = 'top'">before</xsl:when>
1870
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
1871
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
1872
+ <xsl:otherwise>before</xsl:otherwise>
1873
+ </xsl:choose>
1874
+ </xsl:attribute>
1875
+ </xsl:if>
2348
1876
  </xsl:template><xsl:template match="*[local-name()='td']">
2349
1877
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
1878
+ <xsl:attribute name="text-align">
1879
+ <xsl:choose>
1880
+ <xsl:when test="@align">
1881
+ <xsl:value-of select="@align"/>
1882
+ </xsl:when>
1883
+ <xsl:otherwise>left</xsl:otherwise>
1884
+ </xsl:choose>
1885
+ </xsl:attribute>
2350
1886
  <!-- and ancestor::*[local-name() = 'thead'] -->
2351
1887
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2352
1888
 
2353
1889
 
2354
1890
 
1891
+
2355
1892
 
2356
1893
 
2357
1894
 
@@ -2368,24 +1905,12 @@
2368
1905
  <xsl:value-of select="@rowspan"/>
2369
1906
  </xsl:attribute>
2370
1907
  </xsl:if>
2371
- <fo:block>
2372
-
1908
+ <xsl:call-template name="display-align"/>
1909
+ <fo:block>
2373
1910
  <xsl:apply-templates/>
2374
- </fo:block>
2375
- <!-- <xsl:choose>
2376
- <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
2377
- <xsl:apply-templates />
2378
- </xsl:when>
2379
- <xsl:otherwise>
2380
- <fo:block>
2381
- <xsl:apply-templates />
2382
- </fo:block>
2383
- </xsl:otherwise>
2384
- </xsl:choose> -->
2385
-
2386
-
1911
+ </fo:block>
2387
1912
  </fo:table-cell>
2388
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
1913
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2389
1914
 
2390
1915
 
2391
1916
  <fo:block font-size="10pt" margin-bottom="12pt">
@@ -2398,29 +1923,18 @@
2398
1923
  <fo:inline padding-right="2mm">
2399
1924
 
2400
1925
 
2401
- <xsl:attribute name="font-size">11pt</xsl:attribute>
1926
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1927
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
2402
1928
 
2403
1929
 
2404
- <xsl:variable name="title-note">
2405
- <xsl:call-template name="getTitle">
2406
- <xsl:with-param name="name" select="'title-note'"/>
2407
- </xsl:call-template>
2408
- </xsl:variable>
2409
- <xsl:value-of select="$title-note"/>
2410
-
2411
- <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
2412
- <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
2413
- <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
2414
- </xsl:if>
1930
+
1931
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2415
1932
 
2416
-
2417
-
2418
-
2419
1933
  </fo:inline>
2420
1934
  <xsl:apply-templates mode="process"/>
2421
1935
  </fo:block>
2422
1936
 
2423
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
1937
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2424
1938
  <xsl:apply-templates/>
2425
1939
  </xsl:template><xsl:template name="fn_display">
2426
1940
  <xsl:variable name="references">
@@ -2480,7 +1994,7 @@
2480
1994
  <!-- and (not(@class) or @class !='pseudocode') -->
2481
1995
  </xsl:variable>
2482
1996
  <xsl:variable name="references">
2483
- <xsl:for-each select=".//*[local-name()='fn']">
1997
+ <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2484
1998
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2485
1999
  <xsl:apply-templates/>
2486
2000
  </fn>
@@ -2574,6 +2088,7 @@
2574
2088
 
2575
2089
 
2576
2090
 
2091
+
2577
2092
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2578
2093
 
2579
2094
  <xsl:value-of select="@reference"/>
@@ -2584,119 +2099,133 @@
2584
2099
  <xsl:apply-templates/>
2585
2100
  </fo:inline>
2586
2101
  </xsl:template><xsl:template match="*[local-name()='dl']">
2587
- <xsl:variable name="parent" select="local-name(..)"/>
2588
-
2589
- <xsl:variable name="key_iso">
2590
- <!-- and (not(../@class) or ../@class !='pseudocode') -->
2591
- </xsl:variable>
2592
-
2593
- <xsl:choose>
2594
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2102
+ <fo:block-container margin-left="0mm">
2103
+ <xsl:if test="parent::*[local-name() = 'note']">
2104
+ <xsl:attribute name="margin-left">
2105
+ <xsl:choose>
2106
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2107
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2108
+ </xsl:choose>
2109
+ </xsl:attribute>
2595
2110
 
2111
+ </xsl:if>
2112
+ <fo:block-container margin-left="0mm">
2113
+
2114
+ <xsl:variable name="parent" select="local-name(..)"/>
2596
2115
 
2597
- <fo:block margin-bottom="12pt" text-align="left">
2598
-
2599
- <xsl:variable name="title-where">
2600
- <xsl:call-template name="getTitle">
2601
- <xsl:with-param name="name" select="'title-where'"/>
2602
- </xsl:call-template>
2603
- </xsl:variable>
2604
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2605
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2606
- <xsl:text/>
2607
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2608
- </fo:block>
2116
+ <xsl:variable name="key_iso">
2117
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
2118
+ </xsl:variable>
2609
2119
 
2610
- </xsl:when>
2611
- <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2612
- <fo:block margin-bottom="12pt" text-align="left">
2613
-
2614
-
2615
-
2616
-
2617
- <xsl:variable name="title-where">
2618
- <xsl:call-template name="getTitle">
2619
- <xsl:with-param name="name" select="'title-where'"/>
2620
- </xsl:call-template>
2621
- </xsl:variable>
2622
- <xsl:value-of select="$title-where"/>
2623
- </fo:block>
2624
- </xsl:when>
2625
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2626
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2627
-
2628
-
2629
-
2630
- <xsl:variable name="title-key">
2631
- <xsl:call-template name="getTitle">
2632
- <xsl:with-param name="name" select="'title-key'"/>
2633
- </xsl:call-template>
2634
- </xsl:variable>
2635
- <xsl:value-of select="$title-key"/>
2636
- </fo:block>
2637
- </xsl:when>
2638
- </xsl:choose>
2639
-
2640
- <!-- a few components -->
2641
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2642
- <fo:block>
2643
-
2644
-
2645
-
2646
-
2647
- <xsl:attribute name="margin-left">7mm</xsl:attribute>
2120
+ <xsl:choose>
2121
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2122
+
2123
+
2124
+ <fo:block margin-bottom="12pt" text-align="left">
2125
+
2126
+ <xsl:variable name="title-where">
2127
+ <xsl:call-template name="getTitle">
2128
+ <xsl:with-param name="name" select="'title-where'"/>
2129
+ </xsl:call-template>
2130
+ </xsl:variable>
2131
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2132
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2133
+ <xsl:text/>
2134
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2135
+ </fo:block>
2136
+
2137
+ </xsl:when>
2138
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2139
+ <fo:block margin-bottom="12pt" text-align="left">
2140
+
2141
+
2142
+
2143
+
2144
+ <xsl:variable name="title-where">
2145
+ <xsl:call-template name="getTitle">
2146
+ <xsl:with-param name="name" select="'title-where'"/>
2147
+ </xsl:call-template>
2148
+ </xsl:variable>
2149
+ <xsl:value-of select="$title-where"/>
2150
+ </fo:block>
2151
+ </xsl:when>
2152
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2153
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2154
+
2155
+
2156
+
2157
+ <xsl:variable name="title-key">
2158
+ <xsl:call-template name="getTitle">
2159
+ <xsl:with-param name="name" select="'title-key'"/>
2160
+ </xsl:call-template>
2161
+ </xsl:variable>
2162
+ <xsl:value-of select="$title-key"/>
2163
+ </fo:block>
2164
+ </xsl:when>
2165
+ </xsl:choose>
2648
2166
 
2649
- <fo:block>
2650
-
2651
-
2652
-
2653
- <xsl:attribute name="margin-left">-3.5mm</xsl:attribute>
2654
-
2655
-
2656
- <fo:table width="95%" table-layout="fixed">
2167
+ <!-- a few components -->
2168
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2169
+ <fo:block>
2657
2170
 
2658
- <xsl:choose>
2659
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2660
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2661
- </xsl:when>
2662
- <xsl:when test="normalize-space($key_iso) = 'true'">
2663
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2171
+
2172
+
2173
+
2174
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
2175
+
2176
+ <fo:block>
2177
+
2178
+
2179
+
2180
+ <xsl:attribute name="margin-left">-3.5mm</xsl:attribute>
2181
+
2182
+
2183
+ <fo:table width="95%" table-layout="fixed">
2664
2184
 
2665
- </xsl:when>
2666
- </xsl:choose>
2667
- <!-- create virtual html table for dl/[dt and dd] -->
2668
- <xsl:variable name="html-table">
2669
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2670
- <xsl:element name="{$ns}:table">
2671
- <tbody>
2672
- <xsl:apply-templates mode="dl"/>
2673
- </tbody>
2674
- </xsl:element>
2675
- </xsl:variable>
2676
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
2677
- <xsl:variable name="colwidths">
2678
- <xsl:call-template name="calculate-column-widths">
2679
- <xsl:with-param name="cols-count" select="2"/>
2680
- <xsl:with-param name="table" select="$html-table"/>
2681
- </xsl:call-template>
2682
- </xsl:variable>
2683
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2684
- <xsl:variable name="maxlength_dt">
2685
- <xsl:call-template name="getMaxLength_dt"/>
2686
- </xsl:variable>
2687
- <xsl:call-template name="setColumnWidth_dl">
2688
- <xsl:with-param name="colwidths" select="$colwidths"/>
2689
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2690
- </xsl:call-template>
2691
- <fo:table-body>
2692
- <xsl:apply-templates>
2693
- <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2694
- </xsl:apply-templates>
2695
- </fo:table-body>
2696
- </fo:table>
2697
- </fo:block>
2698
- </fo:block>
2699
- </xsl:if>
2185
+ <xsl:choose>
2186
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2187
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2188
+ </xsl:when>
2189
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2190
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2191
+
2192
+ </xsl:when>
2193
+ </xsl:choose>
2194
+ <!-- create virtual html table for dl/[dt and dd] -->
2195
+ <xsl:variable name="html-table">
2196
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2197
+ <xsl:element name="{$ns}:table">
2198
+ <tbody>
2199
+ <xsl:apply-templates mode="dl"/>
2200
+ </tbody>
2201
+ </xsl:element>
2202
+ </xsl:variable>
2203
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2204
+ <xsl:variable name="colwidths">
2205
+ <xsl:call-template name="calculate-column-widths">
2206
+ <xsl:with-param name="cols-count" select="2"/>
2207
+ <xsl:with-param name="table" select="$html-table"/>
2208
+ </xsl:call-template>
2209
+ </xsl:variable>
2210
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2211
+ <xsl:variable name="maxlength_dt">
2212
+ <xsl:call-template name="getMaxLength_dt"/>
2213
+ </xsl:variable>
2214
+ <xsl:call-template name="setColumnWidth_dl">
2215
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2216
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2217
+ </xsl:call-template>
2218
+ <fo:table-body>
2219
+ <xsl:apply-templates>
2220
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2221
+ </xsl:apply-templates>
2222
+ </fo:table-body>
2223
+ </fo:table>
2224
+ </fo:block>
2225
+ </fo:block>
2226
+ </xsl:if>
2227
+ </fo:block-container>
2228
+ </fo:block-container>
2700
2229
  </xsl:template><xsl:template name="setColumnWidth_dl">
2701
2230
  <xsl:param name="colwidths"/>
2702
2231
  <xsl:param name="maxlength_dt"/>
@@ -2751,7 +2280,7 @@
2751
2280
  <xsl:value-of select="string-length(normalize-space(.))"/>
2752
2281
  </xsl:if>
2753
2282
  </xsl:for-each>
2754
- </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
2283
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
2755
2284
  <xsl:param name="key_iso"/>
2756
2285
 
2757
2286
  <!-- <tr>
@@ -2767,12 +2296,7 @@
2767
2296
  <xsl:if test="normalize-space($key_iso) = 'true'">
2768
2297
  <xsl:attribute name="margin-top">0</xsl:attribute>
2769
2298
  </xsl:if>
2770
- <xsl:variable name="title-note">
2771
- <xsl:call-template name="getTitle">
2772
- <xsl:with-param name="name" select="'title-note'"/>
2773
- </xsl:call-template>
2774
- </xsl:variable>
2775
- <xsl:value-of select="$title-note"/>
2299
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2776
2300
  </fo:block>
2777
2301
  </fo:table-cell>
2778
2302
  <fo:table-cell>
@@ -2798,6 +2322,7 @@
2798
2322
  <xsl:param name="key_iso"/>
2799
2323
 
2800
2324
  <fo:table-row>
2325
+
2801
2326
  <fo:table-cell>
2802
2327
 
2803
2328
  <fo:block margin-top="6pt">
@@ -2826,14 +2351,36 @@
2826
2351
  <fo:table-cell>
2827
2352
  <fo:block>
2828
2353
 
2829
-
2354
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2355
+ <xsl:if test="local-name(*[1]) != 'stem'">
2356
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2357
+ </xsl:if>
2358
+ </xsl:if> -->
2830
2359
 
2831
2360
  <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2832
2361
 
2833
2362
  </fo:block>
2834
2363
  </fo:table-cell>
2835
2364
  </fo:table-row>
2836
-
2365
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2366
+ <xsl:if test="local-name(*[1]) = 'stem'">
2367
+ <fo:table-row>
2368
+ <fo:table-cell>
2369
+ <fo:block margin-top="6pt">
2370
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2371
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2372
+ </xsl:if>
2373
+ <xsl:text>&#xA0;</xsl:text>
2374
+ </fo:block>
2375
+ </fo:table-cell>
2376
+ <fo:table-cell>
2377
+ <fo:block>
2378
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2379
+ </fo:block>
2380
+ </fo:table-cell>
2381
+ </fo:table-row>
2382
+ </xsl:if>
2383
+ </xsl:if> -->
2837
2384
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2838
2385
  <xsl:apply-templates/>
2839
2386
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
@@ -2844,7 +2391,7 @@
2844
2391
  <fo:inline font-style="italic">
2845
2392
  <xsl:apply-templates/>
2846
2393
  </fo:inline>
2847
- </xsl:template><xsl:template match="*[local-name()='strong']">
2394
+ </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
2848
2395
  <fo:inline font-weight="bold">
2849
2396
  <xsl:apply-templates/>
2850
2397
  </fo:inline>
@@ -2857,7 +2404,32 @@
2857
2404
  <xsl:apply-templates/>
2858
2405
  </fo:inline>
2859
2406
  </xsl:template><xsl:template match="*[local-name()='tt']">
2860
- <fo:inline font-family="Courier" font-size="10pt">
2407
+ <fo:inline xsl:use-attribute-sets="tt-style">
2408
+ <xsl:variable name="_font-size">
2409
+
2410
+
2411
+
2412
+
2413
+ 10
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+ </xsl:variable>
2424
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
2425
+ <xsl:if test="$font-size != ''">
2426
+ <xsl:attribute name="font-size">
2427
+ <xsl:choose>
2428
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2429
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2430
+ </xsl:choose>
2431
+ </xsl:attribute>
2432
+ </xsl:if>
2861
2433
  <xsl:apply-templates/>
2862
2434
  </fo:inline>
2863
2435
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -3151,154 +2723,1282 @@
3151
2723
  </xsl:template><xsl:template name="getLang">
3152
2724
  <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3153
2725
  <xsl:choose>
3154
- <xsl:when test="$language = 'English'">en</xsl:when>
3155
- <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
2726
+ <xsl:when test="$language = 'English'">en</xsl:when>
2727
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
2728
+ </xsl:choose>
2729
+ </xsl:template><xsl:template name="capitalizeWords">
2730
+ <xsl:param name="str"/>
2731
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
2732
+ <xsl:choose>
2733
+ <xsl:when test="contains($str2, ' ')">
2734
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
2735
+ <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
2736
+ <xsl:value-of select="substring($substr, 2)"/> -->
2737
+ <xsl:call-template name="capitalize">
2738
+ <xsl:with-param name="str" select="$substr"/>
2739
+ </xsl:call-template>
2740
+ <xsl:text> </xsl:text>
2741
+ <xsl:call-template name="capitalizeWords">
2742
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
2743
+ </xsl:call-template>
2744
+ </xsl:when>
2745
+ <xsl:otherwise>
2746
+ <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
2747
+ <xsl:value-of select="substring($str2, 2)"/> -->
2748
+ <xsl:call-template name="capitalize">
2749
+ <xsl:with-param name="str" select="$str2"/>
2750
+ </xsl:call-template>
2751
+ </xsl:otherwise>
2752
+ </xsl:choose>
2753
+ </xsl:template><xsl:template name="capitalize">
2754
+ <xsl:param name="str"/>
2755
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
2756
+ <xsl:value-of select="substring($str, 2)"/>
2757
+ </xsl:template><xsl:template match="mathml:math">
2758
+ <fo:inline font-family="STIX2Math">
2759
+ <xsl:variable name="mathml">
2760
+ <xsl:apply-templates select="." mode="mathml"/>
2761
+ </xsl:variable>
2762
+ <fo:instream-foreign-object fox:alt-text="Math">
2763
+ <!-- <xsl:copy-of select="."/> -->
2764
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
2765
+ </fo:instream-foreign-object>
2766
+ </fo:inline>
2767
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
2768
+ <xsl:copy>
2769
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
2770
+ </xsl:copy>
2771
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
2772
+ <xsl:copy>
2773
+ <!-- replace start and end spaces to non-break space -->
2774
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
2775
+ </xsl:copy>
2776
+ </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2777
+ <xsl:variable name="target">
2778
+ <xsl:choose>
2779
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
2780
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
2781
+ </xsl:when>
2782
+ <xsl:otherwise>
2783
+ <xsl:value-of select="normalize-space(@target)"/>
2784
+ </xsl:otherwise>
2785
+ </xsl:choose>
2786
+ </xsl:variable>
2787
+ <fo:inline xsl:use-attribute-sets="link-style">
2788
+ <xsl:choose>
2789
+ <xsl:when test="$target = ''">
2790
+ <xsl:apply-templates/>
2791
+ </xsl:when>
2792
+ <xsl:otherwise>
2793
+ <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
2794
+ <xsl:choose>
2795
+ <xsl:when test="normalize-space(.) = ''">
2796
+ <xsl:value-of select="$target"/>
2797
+ </xsl:when>
2798
+ <xsl:otherwise>
2799
+ <xsl:apply-templates/>
2800
+ </xsl:otherwise>
2801
+ </xsl:choose>
2802
+ </fo:basic-link>
2803
+ </xsl:otherwise>
2804
+ </xsl:choose>
2805
+ </fo:inline>
2806
+ </xsl:template><xsl:template match="*[local-name()='bookmark']">
2807
+ <fo:inline id="{@id}"/>
2808
+ </xsl:template><xsl:template match="*[local-name()='appendix']">
2809
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
2810
+ <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
2811
+ </fo:block>
2812
+ <xsl:apply-templates/>
2813
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
2814
+ <fo:inline><xsl:apply-templates/></fo:inline>
2815
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
2816
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
2817
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2818
+ </fo:block>
2819
+ <xsl:apply-templates/>
2820
+ </xsl:template><xsl:template match="*[local-name() = 'callout']">
2821
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
2822
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']">
2823
+ <xsl:variable name="annotation-id" select="@id"/>
2824
+ <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
2825
+ <fo:block id="{$annotation-id}" white-space="nowrap">
2826
+ <fo:inline>
2827
+ <xsl:apply-templates>
2828
+ <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
2829
+ </xsl:apply-templates>
2830
+ </fo:inline>
2831
+ </fo:block>
2832
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
2833
+ <xsl:param name="callout"/>
2834
+ <fo:inline id="{@id}">
2835
+ <!-- for first p in annotation, put <x> -->
2836
+ <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
2837
+ <xsl:apply-templates/>
2838
+ </fo:inline>
2839
+ </xsl:template><xsl:template match="*[local-name() = 'modification']">
2840
+ <xsl:variable name="title-modified">
2841
+ <xsl:call-template name="getTitle">
2842
+ <xsl:with-param name="name" select="'title-modified'"/>
2843
+ </xsl:call-template>
2844
+ </xsl:variable>
2845
+ <xsl:choose>
2846
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
2847
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
2848
+ </xsl:choose>
2849
+ <xsl:apply-templates/>
2850
+ </xsl:template><xsl:template match="*[local-name() = 'xref']">
2851
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2852
+
2853
+ <xsl:apply-templates/>
2854
+ </fo:basic-link>
2855
+ </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2856
+ <fo:block-container margin-left="0mm">
2857
+ <xsl:if test="parent::*[local-name() = 'note']">
2858
+ <xsl:attribute name="margin-left">
2859
+ <xsl:choose>
2860
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2861
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2862
+ </xsl:choose>
2863
+ </xsl:attribute>
2864
+
2865
+ </xsl:if>
2866
+ <fo:block-container margin-left="0mm">
2867
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2868
+ <xsl:apply-templates/>
2869
+ </fo:block>
2870
+ </fo:block-container>
2871
+ </fo:block-container>
2872
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2873
+ <fo:inline>
2874
+ <xsl:apply-templates/>
2875
+ </fo:inline>
2876
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']/*[local-name() = 'stem']">
2877
+ <fo:inline>
2878
+ <xsl:apply-templates/>
2879
+ </fo:inline>
2880
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
2881
+ <xsl:if test="normalize-space() != ''">
2882
+ <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
2883
+ </xsl:if>
2884
+ </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
2885
+
2886
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
2887
+
2888
+
2889
+
2890
+
2891
+ <fo:block-container margin-left="0mm">
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+ <xsl:if test="ancestor::iho:td">
2899
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2900
+ </xsl:if>
2901
+
2902
+
2903
+
2904
+ <fo:block>
2905
+
2906
+
2907
+
2908
+
2909
+ <fo:inline xsl:use-attribute-sets="note-name-style">
2910
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2911
+ </fo:inline>
2912
+ <xsl:apply-templates/>
2913
+ </fo:block>
2914
+
2915
+
2916
+ </fo:block-container>
2917
+ </fo:block-container>
2918
+
2919
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
2920
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
2921
+ <xsl:choose>
2922
+ <xsl:when test="$num = 1">
2923
+ <fo:inline xsl:use-attribute-sets="note-p-style">
2924
+ <xsl:apply-templates/>
2925
+ </fo:inline>
2926
+ </xsl:when>
2927
+ <xsl:otherwise>
2928
+ <fo:block xsl:use-attribute-sets="note-p-style">
2929
+ <xsl:apply-templates/>
2930
+ </fo:block>
2931
+ </xsl:otherwise>
2932
+ </xsl:choose>
2933
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2934
+ <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2935
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
2936
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2937
+ </fo:inline>
2938
+ <xsl:apply-templates/>
2939
+ </fo:block>
2940
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
2941
+ <xsl:param name="sfx"/>
2942
+ <xsl:variable name="suffix">
2943
+ <xsl:choose>
2944
+ <xsl:when test="$sfx != ''">
2945
+ <xsl:value-of select="$sfx"/>
2946
+ </xsl:when>
2947
+ <xsl:otherwise>
2948
+
2949
+
2950
+ </xsl:otherwise>
2951
+ </xsl:choose>
2952
+ </xsl:variable>
2953
+ <xsl:if test="normalize-space() != ''">
2954
+ <xsl:apply-templates/>
2955
+ <xsl:value-of select="$suffix"/>
2956
+ </xsl:if>
2957
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
2958
+ <xsl:param name="sfx"/>
2959
+ <xsl:variable name="suffix">
2960
+ <xsl:choose>
2961
+ <xsl:when test="$sfx != ''">
2962
+ <xsl:value-of select="$sfx"/>
2963
+ </xsl:when>
2964
+ <xsl:otherwise>
2965
+
2966
+
2967
+ </xsl:otherwise>
2968
+ </xsl:choose>
2969
+ </xsl:variable>
2970
+ <xsl:if test="normalize-space() != ''">
2971
+ <xsl:apply-templates/>
2972
+ <xsl:value-of select="$suffix"/>
2973
+ </xsl:if>
2974
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
2975
+ <fo:inline><xsl:apply-templates/></fo:inline>
2976
+ </xsl:template><xsl:template match="*[local-name() = 'terms']">
2977
+ <fo:block id="{@id}">
2978
+ <xsl:apply-templates/>
2979
+ </fo:block>
2980
+ </xsl:template><xsl:template match="*[local-name() = 'term']">
2981
+ <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
2982
+
2983
+
2984
+
2985
+ <xsl:apply-templates/>
2986
+ </fo:block>
2987
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
2988
+ <xsl:if test="normalize-space() != ''">
2989
+ <fo:inline>
2990
+ <xsl:apply-templates/>
2991
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
2992
+ <xsl:text>.</xsl:text>
2993
+ </xsl:if> -->
2994
+ </fo:inline>
2995
+ </xsl:if>
2996
+ </xsl:template><xsl:template match="*[local-name() = 'figure']">
2997
+ <fo:block-container id="{@id}">
2998
+ <fo:block>
2999
+ <xsl:apply-templates/>
3000
+ </fo:block>
3001
+ <xsl:call-template name="fn_display_figure"/>
3002
+ <xsl:for-each select="*[local-name() = 'note']">
3003
+ <xsl:call-template name="note"/>
3004
+ </xsl:for-each>
3005
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3006
+ </fo:block-container>
3007
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
3008
+ <fo:block id="{@id}">
3009
+ <xsl:apply-templates/>
3010
+ </fo:block>
3011
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
3012
+ <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
3013
+ <xsl:apply-templates/>
3014
+ </fo:block>
3015
+ </xsl:template><xsl:template match="*[local-name() = 'image']">
3016
+ <fo:block xsl:use-attribute-sets="image-style">
3017
+
3018
+
3019
+ <xsl:variable name="src">
3020
+ <xsl:choose>
3021
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
3022
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
3023
+ </xsl:when>
3024
+ <xsl:otherwise>
3025
+ <xsl:value-of select="@src"/>
3026
+ </xsl:otherwise>
3027
+ </xsl:choose>
3028
+ </xsl:variable>
3029
+
3030
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3031
+ </fo:block>
3032
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
3033
+ <xsl:apply-templates mode="contents"/>
3034
+ <xsl:text> </xsl:text>
3035
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
3036
+ <xsl:apply-templates mode="bookmarks"/>
3037
+ <xsl:text> </xsl:text>
3038
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
3039
+ <xsl:value-of select="."/>
3040
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
3041
+ <xsl:value-of select="."/>
3042
+ </xsl:template><xsl:template match="node()" mode="contents">
3043
+ <xsl:apply-templates mode="contents"/>
3044
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
3045
+ <xsl:apply-templates mode="bookmarks"/>
3046
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3047
+ <xsl:apply-templates select="."/>
3048
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3049
+ <xsl:apply-templates mode="bookmarks"/>
3050
+ </xsl:template><xsl:template name="addBookmarks">
3051
+ <xsl:param name="contents"/>
3052
+ <xsl:if test="xalan:nodeset($contents)//item">
3053
+ <fo:bookmark-tree>
3054
+ <xsl:choose>
3055
+ <xsl:when test="xalan:nodeset($contents)/doc">
3056
+ <xsl:choose>
3057
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
3058
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3059
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
3060
+ <fo:bookmark-title>
3061
+ <xsl:variable name="bookmark-title_">
3062
+ <xsl:choose>
3063
+ <xsl:when test="@lang = 'en'">
3064
+
3065
+
3066
+ </xsl:when>
3067
+ <xsl:when test="@lang = 'fr'">
3068
+
3069
+
3070
+ </xsl:when>
3071
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3072
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3073
+ </xsl:choose>
3074
+ </xsl:variable>
3075
+ <xsl:choose>
3076
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
3077
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
3078
+ </xsl:when>
3079
+ <xsl:otherwise>
3080
+ <xsl:choose>
3081
+ <xsl:when test="@lang = 'en'">English</xsl:when>
3082
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
3083
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3084
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3085
+ </xsl:choose>
3086
+ </xsl:otherwise>
3087
+ </xsl:choose>
3088
+ </fo:bookmark-title>
3089
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3090
+ </fo:bookmark>
3091
+
3092
+ </xsl:for-each>
3093
+ </xsl:when>
3094
+ <xsl:otherwise>
3095
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3096
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3097
+ </xsl:for-each>
3098
+ </xsl:otherwise>
3099
+ </xsl:choose>
3100
+ </xsl:when>
3101
+ <xsl:otherwise>
3102
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
3103
+ </xsl:otherwise>
3104
+ </xsl:choose>
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+ </fo:bookmark-tree>
3114
+ </xsl:if>
3115
+ </xsl:template><xsl:template match="item" mode="bookmark">
3116
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
3117
+ <fo:bookmark-title>
3118
+ <xsl:if test="@section != ''">
3119
+ <xsl:value-of select="@section"/>
3120
+ <xsl:text> </xsl:text>
3121
+ </xsl:if>
3122
+ <xsl:value-of select="normalize-space(title)"/>
3123
+ </fo:bookmark-title>
3124
+ <xsl:apply-templates mode="bookmark"/>
3125
+ </fo:bookmark>
3126
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3127
+ <xsl:if test="normalize-space() != ''">
3128
+ <fo:block xsl:use-attribute-sets="figure-name-style">
3129
+
3130
+ <xsl:apply-templates/>
3131
+ </fo:block>
3132
+ </xsl:if>
3133
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
3134
+ <xsl:apply-templates mode="contents_item"/>
3135
+ <!-- <xsl:text> </xsl:text> -->
3136
+ </xsl:template><xsl:template name="getSection">
3137
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
3138
+ </xsl:template><xsl:template name="getName">
3139
+ <xsl:choose>
3140
+ <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
3141
+ <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
3142
+ </xsl:when>
3143
+ <xsl:otherwise>
3144
+ <xsl:copy-of select="*[local-name() = 'title']/node()"/>
3145
+ </xsl:otherwise>
3146
+ </xsl:choose>
3147
+ </xsl:template><xsl:template name="insertTitleAsListItem">
3148
+ <xsl:param name="provisional-distance-between-starts" select="'9.5mm'"/>
3149
+ <xsl:variable name="section">
3150
+ <xsl:for-each select="..">
3151
+ <xsl:call-template name="getSection"/>
3152
+ </xsl:for-each>
3153
+ </xsl:variable>
3154
+ <fo:list-block provisional-distance-between-starts="{$provisional-distance-between-starts}">
3155
+ <fo:list-item>
3156
+ <fo:list-item-label end-indent="label-end()">
3157
+ <fo:block>
3158
+ <xsl:value-of select="$section"/>
3159
+ </fo:block>
3160
+ </fo:list-item-label>
3161
+ <fo:list-item-body start-indent="body-start()">
3162
+ <fo:block>
3163
+ <xsl:choose>
3164
+ <xsl:when test="*[local-name() = 'tab']">
3165
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3166
+ </xsl:when>
3167
+ <xsl:otherwise>
3168
+ <xsl:apply-templates/>
3169
+ </xsl:otherwise>
3170
+ </xsl:choose>
3171
+ </fo:block>
3172
+ </fo:list-item-body>
3173
+ </fo:list-item>
3174
+ </fo:list-block>
3175
+ </xsl:template><xsl:template name="extractTitle">
3176
+ <xsl:choose>
3177
+ <xsl:when test="*[local-name() = 'tab']">
3178
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3179
+ </xsl:when>
3180
+ <xsl:otherwise>
3181
+ <xsl:apply-templates/>
3182
+ </xsl:otherwise>
3183
+ </xsl:choose>
3184
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
3185
+ <xsl:text> </xsl:text>
3186
+ </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
3187
+ <xsl:copy>
3188
+ <xsl:apply-templates mode="contents_item"/>
3189
+ </xsl:copy>
3190
+ </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
3191
+ <xsl:text> </xsl:text>
3192
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3193
+
3194
+ <fo:block-container margin-left="0mm">
3195
+ <xsl:if test="parent::*[local-name() = 'note']">
3196
+ <xsl:attribute name="margin-left">
3197
+ <xsl:choose>
3198
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3199
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3200
+ </xsl:choose>
3201
+ </xsl:attribute>
3202
+
3203
+ </xsl:if>
3204
+ <fo:block-container margin-left="0mm">
3205
+
3206
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3207
+ <xsl:variable name="_font-size">
3208
+
3209
+
3210
+
3211
+
3212
+ 10
3213
+
3214
+
3215
+
3216
+
3217
+
3218
+
3219
+
3220
+
3221
+
3222
+ </xsl:variable>
3223
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3224
+ <xsl:if test="$font-size != ''">
3225
+ <xsl:attribute name="font-size">
3226
+ <xsl:choose>
3227
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3228
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3229
+ </xsl:choose>
3230
+ </xsl:attribute>
3231
+ </xsl:if>
3232
+ <xsl:apply-templates/>
3233
+ </fo:block>
3234
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3235
+
3236
+ </fo:block-container>
3237
+ </fo:block-container>
3238
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
3239
+ <xsl:variable name="text">
3240
+ <xsl:call-template name="add-zero-spaces-equal"/>
3241
+ </xsl:variable>
3242
+ <xsl:call-template name="add-zero-spaces-java">
3243
+ <xsl:with-param name="text" select="$text"/>
3244
+ </xsl:call-template>
3245
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
3246
+ <xsl:if test="normalize-space() != ''">
3247
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
3248
+ <xsl:apply-templates/>
3249
+ </fo:block>
3250
+ </xsl:if>
3251
+ </xsl:template><xsl:template match="*[local-name() = 'permission']">
3252
+ <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
3253
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3254
+ <xsl:apply-templates/>
3255
+ </fo:block>
3256
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
3257
+ <xsl:if test="normalize-space() != ''">
3258
+ <fo:block xsl:use-attribute-sets="permission-name-style">
3259
+ <xsl:apply-templates/>
3260
+
3261
+ </fo:block>
3262
+ </xsl:if>
3263
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'label']">
3264
+ <fo:block xsl:use-attribute-sets="permission-label-style">
3265
+ <xsl:apply-templates/>
3266
+ </fo:block>
3267
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']">
3268
+ <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
3269
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3270
+ <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
3271
+ <xsl:apply-templates select="@obligation" mode="presentation"/>
3272
+ <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
3273
+ <xsl:apply-templates/>
3274
+ </fo:block>
3275
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
3276
+ <xsl:if test="normalize-space() != ''">
3277
+ <fo:block xsl:use-attribute-sets="requirement-name-style">
3278
+
3279
+ <xsl:apply-templates/>
3280
+
3281
+ </fo:block>
3282
+ </xsl:if>
3283
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
3284
+ <fo:block xsl:use-attribute-sets="requirement-label-style">
3285
+ <xsl:apply-templates/>
3286
+ </fo:block>
3287
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
3288
+ <fo:block>
3289
+ <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
3290
+ </fo:block>
3291
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
3292
+ <fo:block xsl:use-attribute-sets="requirement-subject-style">
3293
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
3294
+ </fo:block>
3295
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
3296
+ <fo:block xsl:use-attribute-sets="requirement-inherit-style">
3297
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
3298
+ </fo:block>
3299
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
3300
+ <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
3301
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3302
+ <xsl:apply-templates/>
3303
+ </fo:block>
3304
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
3305
+ <xsl:if test="normalize-space() != ''">
3306
+ <fo:block xsl:use-attribute-sets="recommendation-name-style">
3307
+ <xsl:apply-templates/>
3308
+
3309
+ </fo:block>
3310
+ </xsl:if>
3311
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
3312
+ <fo:block xsl:use-attribute-sets="recommendation-label-style">
3313
+ <xsl:apply-templates/>
3314
+ </fo:block>
3315
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3316
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3317
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3318
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3319
+ </xsl:if>
3320
+ <fo:block-container margin-left="0mm" margin-right="0mm">
3321
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
3322
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3323
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
3324
+ </xsl:if>
3325
+ <xsl:variable name="simple-table">
3326
+ <xsl:call-template name="getSimpleTable"/>
3327
+ </xsl:variable>
3328
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3329
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3330
+ <!-- <fo:table-column column-width="35mm"/>
3331
+ <fo:table-column column-width="115mm"/> -->
3332
+ <fo:table-column column-width="30%"/>
3333
+ <fo:table-column column-width="70%"/>
3334
+ </xsl:if>
3335
+ <xsl:apply-templates mode="requirement"/>
3336
+ </fo:table>
3337
+ <!-- fn processing -->
3338
+ <xsl:if test=".//*[local-name() = 'fn']">
3339
+ <xsl:for-each select="*[local-name() = 'tbody']">
3340
+ <fo:block font-size="90%" border-bottom="1pt solid black">
3341
+ <xsl:call-template name="fn_display"/>
3342
+ </fo:block>
3343
+ </xsl:for-each>
3344
+ </xsl:if>
3345
+ </fo:block-container>
3346
+ </fo:block-container>
3347
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
3348
+ <fo:table-header>
3349
+ <xsl:apply-templates mode="requirement"/>
3350
+ </fo:table-header>
3351
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
3352
+ <fo:table-body>
3353
+ <xsl:apply-templates mode="requirement"/>
3354
+ </fo:table-body>
3355
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3356
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
3357
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
3358
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
3359
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
3360
+ </xsl:if>
3361
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
3362
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
3363
+ </xsl:if>
3364
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
3365
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
3366
+ </xsl:if>
3367
+ <xsl:apply-templates mode="requirement"/>
3368
+ </fo:table-row>
3369
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3370
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3371
+ <xsl:attribute name="text-align">
3372
+ <xsl:choose>
3373
+ <xsl:when test="@align">
3374
+ <xsl:value-of select="@align"/>
3375
+ </xsl:when>
3376
+ <xsl:otherwise>left</xsl:otherwise>
3377
+ </xsl:choose>
3378
+ </xsl:attribute>
3379
+ <xsl:if test="@colspan">
3380
+ <xsl:attribute name="number-columns-spanned">
3381
+ <xsl:value-of select="@colspan"/>
3382
+ </xsl:attribute>
3383
+ </xsl:if>
3384
+ <xsl:if test="@rowspan">
3385
+ <xsl:attribute name="number-rows-spanned">
3386
+ <xsl:value-of select="@rowspan"/>
3387
+ </xsl:attribute>
3388
+ </xsl:if>
3389
+ <xsl:call-template name="display-align"/>
3390
+
3391
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3392
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3393
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
3394
+ </xsl:if>
3395
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
3396
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3397
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3398
+ </xsl:if> -->
3399
+
3400
+ <fo:block>
3401
+ <xsl:apply-templates/>
3402
+ </fo:block>
3403
+ </fo:table-cell>
3404
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3405
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3406
+ <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3407
+ <xsl:attribute name="padding">0mm</xsl:attribute>
3408
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
3409
+ </xsl:if>
3410
+ <xsl:attribute name="text-align">
3411
+ <xsl:choose>
3412
+ <xsl:when test="@align">
3413
+ <xsl:value-of select="@align"/>
3414
+ </xsl:when>
3415
+ <xsl:otherwise>left</xsl:otherwise>
3416
+ </xsl:choose>
3417
+ </xsl:attribute>
3418
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
3419
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3420
+ </xsl:if>
3421
+ <xsl:if test="@colspan">
3422
+ <xsl:attribute name="number-columns-spanned">
3423
+ <xsl:value-of select="@colspan"/>
3424
+ </xsl:attribute>
3425
+ </xsl:if>
3426
+ <xsl:if test="@rowspan">
3427
+ <xsl:attribute name="number-rows-spanned">
3428
+ <xsl:value-of select="@rowspan"/>
3429
+ </xsl:attribute>
3430
+ </xsl:if>
3431
+ <xsl:call-template name="display-align"/>
3432
+
3433
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3434
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
3435
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3436
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
3437
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3438
+ </xsl:if>
3439
+ </xsl:if> -->
3440
+ <!-- 2nd line and below -->
3441
+
3442
+ <fo:block>
3443
+ <xsl:apply-templates/>
3444
+ </fo:block>
3445
+ </fo:table-cell>
3446
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3447
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
3448
+ <xsl:apply-templates/>
3449
+ </fo:block>
3450
+ </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3451
+ <fo:block> <!-- margin-bottom="10pt" -->
3452
+ <xsl:apply-templates/>
3453
+ </fo:block>
3454
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3455
+ <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3456
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3457
+ <xsl:apply-templates/>
3458
+ </fo:block>
3459
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
3460
+ <xsl:if test="normalize-space() != ''">
3461
+ <fo:inline xsl:use-attribute-sets="termexample-name-style">
3462
+ <xsl:apply-templates/>
3463
+ </fo:inline>
3464
+ </xsl:if>
3465
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
3466
+ <fo:inline><xsl:apply-templates/></fo:inline>
3467
+ </xsl:template><xsl:template match="*[local-name() = 'example']">
3468
+ <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
3469
+
3470
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3471
+
3472
+ <xsl:variable name="element">
3473
+ block
3474
+
3475
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
3476
+ </xsl:variable>
3477
+
3478
+ <xsl:choose>
3479
+ <xsl:when test="contains(normalize-space($element), 'block')">
3480
+ <fo:block xsl:use-attribute-sets="example-body-style">
3481
+ <xsl:apply-templates/>
3482
+ </fo:block>
3483
+ </xsl:when>
3484
+ <xsl:otherwise>
3485
+ <fo:inline>
3486
+ <xsl:apply-templates/>
3487
+ </fo:inline>
3488
+ </xsl:otherwise>
3489
+ </xsl:choose>
3490
+
3491
+ </fo:block>
3492
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
3493
+
3494
+ <xsl:variable name="element">
3495
+ block
3496
+
3497
+ </xsl:variable>
3498
+ <xsl:choose>
3499
+ <xsl:when test="ancestor::*[local-name() = 'appendix']">
3500
+ <fo:inline>
3501
+ <xsl:apply-templates/>
3502
+ </fo:inline>
3503
+ </xsl:when>
3504
+ <xsl:when test="normalize-space($element) = 'block'">
3505
+ <fo:block xsl:use-attribute-sets="example-name-style">
3506
+ <xsl:apply-templates/>
3507
+ </fo:block>
3508
+ </xsl:when>
3509
+ <xsl:otherwise>
3510
+ <fo:inline xsl:use-attribute-sets="example-name-style">
3511
+ <xsl:apply-templates/>
3512
+ </fo:inline>
3513
+ </xsl:otherwise>
3514
+ </xsl:choose>
3515
+
3516
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3517
+
3518
+ <xsl:variable name="element">
3519
+ block
3520
+
3521
+ </xsl:variable>
3522
+ <xsl:choose>
3523
+ <xsl:when test="normalize-space($element) = 'block'">
3524
+ <fo:block xsl:use-attribute-sets="example-p-style">
3525
+
3526
+ <xsl:apply-templates/>
3527
+ </fo:block>
3528
+ </xsl:when>
3529
+ <xsl:otherwise>
3530
+ <fo:inline xsl:use-attribute-sets="example-p-style">
3531
+ <xsl:apply-templates/>
3532
+ </fo:inline>
3533
+ </xsl:otherwise>
3534
+ </xsl:choose>
3535
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3536
+ <fo:block xsl:use-attribute-sets="termsource-style">
3537
+ <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3538
+ <xsl:variable name="termsource_text">
3539
+ <xsl:apply-templates/>
3540
+ </xsl:variable>
3541
+
3542
+ <xsl:choose>
3543
+ <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3544
+ <xsl:apply-templates/>
3545
+ </xsl:when>
3546
+ <xsl:otherwise>
3547
+
3548
+ <xsl:text>[</xsl:text>
3549
+
3550
+ <xsl:apply-templates/>
3551
+
3552
+ <xsl:text>]</xsl:text>
3553
+
3554
+ </xsl:otherwise>
3555
+ </xsl:choose>
3556
+ </fo:block>
3557
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
3558
+ <xsl:if test="normalize-space() != ''">
3559
+ <xsl:value-of select="."/>
3560
+ </xsl:if>
3561
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
3562
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3563
+
3564
+ <fo:inline>
3565
+
3566
+ <xsl:call-template name="getTitle">
3567
+ <xsl:with-param name="name" select="'title-source'"/>
3568
+ </xsl:call-template>
3569
+ <xsl:text>: </xsl:text>
3570
+ </fo:inline>
3571
+
3572
+ <fo:inline xsl:use-attribute-sets="origin-style">
3573
+ <xsl:apply-templates/>
3574
+ </fo:inline>
3575
+ </fo:basic-link>
3576
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
3577
+ <fo:inline><xsl:apply-templates/></fo:inline>
3578
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
3579
+ <xsl:if test="normalize-space() != ''">
3580
+ <xsl:value-of select="."/>
3581
+ </xsl:if>
3582
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3583
+ <fo:block-container margin-left="0mm">
3584
+ <xsl:if test="parent::*[local-name() = 'note']">
3585
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
3586
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3587
+ </xsl:if>
3588
+ </xsl:if>
3589
+
3590
+ <fo:block-container margin-left="0mm">
3591
+
3592
+ <fo:block xsl:use-attribute-sets="quote-style">
3593
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3594
+ </fo:block>
3595
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3596
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3597
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3598
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3599
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3600
+ </fo:block>
3601
+ </xsl:if>
3602
+
3603
+ </fo:block-container>
3604
+ </fo:block-container>
3605
+ </xsl:template><xsl:template match="*[local-name() = 'source']">
3606
+ <xsl:if test="../*[local-name() = 'author']">
3607
+ <xsl:text>, </xsl:text>
3608
+ </xsl:if>
3609
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3610
+ <xsl:apply-templates/>
3611
+ </fo:basic-link>
3612
+ </xsl:template><xsl:template match="*[local-name() = 'author']">
3613
+ <xsl:text>— </xsl:text>
3614
+ <xsl:apply-templates/>
3615
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
3616
+ <fo:inline xsl:use-attribute-sets="eref-style">
3617
+ <xsl:if test="@type = 'footnote'">
3618
+
3619
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
3620
+ <xsl:attribute name="font-size">80%</xsl:attribute>
3621
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3622
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3623
+
3624
+
3625
+ </xsl:if>
3626
+
3627
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3628
+
3629
+ <xsl:if test="@type = 'inline'">
3630
+
3631
+ <xsl:attribute name="color">blue</xsl:attribute>
3632
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3633
+
3634
+
3635
+
3636
+ </xsl:if>
3637
+
3638
+
3639
+ <xsl:apply-templates/>
3640
+ </fo:basic-link>
3641
+ </fo:inline>
3642
+ </xsl:template><xsl:template match="*[local-name() = 'tab']">
3643
+ <!-- zero-space char -->
3644
+ <xsl:variable name="depth">
3645
+ <xsl:call-template name="getLevel">
3646
+ <xsl:with-param name="depth" select="../@depth"/>
3647
+ </xsl:call-template>
3648
+ </xsl:variable>
3649
+
3650
+ <xsl:variable name="padding">
3651
+
3652
+
3653
+
3654
+
3655
+
3656
+ <xsl:choose>
3657
+ <xsl:when test="$depth = 2">3</xsl:when>
3658
+ <xsl:when test="$depth = 3">3</xsl:when>
3659
+ <xsl:otherwise>4</xsl:otherwise>
3660
+ </xsl:choose>
3661
+
3662
+
3663
+
3664
+
3665
+
3666
+
3667
+
3668
+
3669
+
3670
+
3671
+
3672
+
3673
+
3674
+
3675
+ </xsl:variable>
3676
+
3677
+ <xsl:variable name="padding-right">
3678
+ <xsl:choose>
3679
+ <xsl:when test="normalize-space($padding) = ''">0</xsl:when>
3680
+ <xsl:otherwise>
3681
+ <xsl:value-of select="normalize-space($padding)"/>
3682
+ </xsl:otherwise>
3683
+ </xsl:choose>
3684
+ </xsl:variable>
3685
+
3686
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3687
+
3688
+ <xsl:choose>
3689
+ <xsl:when test="$language = 'zh'">
3690
+ <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
3691
+ </xsl:when>
3692
+ <xsl:when test="../../@inline-header = 'true'">
3693
+ <fo:inline font-size="90%">
3694
+ <xsl:call-template name="insertNonBreakSpaces">
3695
+ <xsl:with-param name="count" select="$padding-right"/>
3696
+ </xsl:call-template>
3697
+ </fo:inline>
3698
+ </xsl:when>
3699
+ <xsl:otherwise>
3700
+ <fo:inline padding-right="{$padding-right}mm">​</fo:inline>
3701
+ </xsl:otherwise>
3156
3702
  </xsl:choose>
3157
- </xsl:template><xsl:template name="capitalizeWords">
3158
- <xsl:param name="str"/>
3159
- <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3703
+
3704
+ </xsl:template><xsl:template name="insertNonBreakSpaces">
3705
+ <xsl:param name="count"/>
3706
+ <xsl:if test="$count &gt; 0">
3707
+ <xsl:text> </xsl:text>
3708
+ <xsl:call-template name="insertNonBreakSpaces">
3709
+ <xsl:with-param name="count" select="$count - 1"/>
3710
+ </xsl:call-template>
3711
+ </xsl:if>
3712
+ </xsl:template><xsl:template match="*[local-name() = 'domain']">
3713
+ <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
3714
+ <xsl:text> </xsl:text>
3715
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']">
3716
+ <fo:block xsl:use-attribute-sets="admitted-style">
3717
+ <xsl:apply-templates/>
3718
+ </fo:block>
3719
+ </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
3720
+ <xsl:variable name="title-deprecated">
3721
+ <xsl:call-template name="getTitle">
3722
+ <xsl:with-param name="name" select="'title-deprecated'"/>
3723
+ </xsl:call-template>
3724
+ </xsl:variable>
3725
+ <fo:block xsl:use-attribute-sets="deprecates-style">
3726
+ <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
3727
+ </fo:block>
3728
+ </xsl:template><xsl:template match="*[local-name() = 'definition']">
3729
+ <fo:block xsl:use-attribute-sets="definition-style">
3730
+ <xsl:apply-templates/>
3731
+ </fo:block>
3732
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]">
3733
+ <xsl:apply-templates/>
3734
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p']">
3735
+ <fo:inline> <xsl:apply-templates/></fo:inline>
3736
+ <fo:block> </fo:block>
3737
+ </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
3738
+
3739
+ <fo:block>
3740
+ <xsl:call-template name="setId"/>
3741
+
3742
+
3743
+
3744
+
3745
+
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+ <xsl:apply-templates/>
3752
+ </fo:block>
3753
+
3754
+
3755
+
3756
+ </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
3757
+ <fo:block break-after="page"/>
3758
+ <fo:block>
3759
+ <xsl:call-template name="setId"/>
3760
+ <xsl:apply-templates/>
3761
+ </fo:block>
3762
+ </xsl:template><xsl:template match="*[local-name() = 'clause']">
3763
+ <fo:block>
3764
+ <xsl:call-template name="setId"/>
3765
+ <xsl:apply-templates/>
3766
+ </fo:block>
3767
+ </xsl:template><xsl:template match="*[local-name() = 'definitions']">
3768
+ <fo:block id="{@id}">
3769
+ <xsl:apply-templates/>
3770
+ </fo:block>
3771
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
3772
+
3773
+ <fo:block id="{@id}">
3774
+ <xsl:apply-templates/>
3775
+ </fo:block>
3776
+ </xsl:template><xsl:template match="*[local-name() = 'annex']">
3777
+ <fo:block break-after="page"/>
3778
+ <fo:block id="{@id}">
3779
+
3780
+ </fo:block>
3781
+ <xsl:apply-templates/>
3782
+ </xsl:template><xsl:template match="*[local-name() = 'review']">
3783
+ <!-- comment 2019-11-29 -->
3784
+ <!-- <fo:block font-weight="bold">Review:</fo:block>
3785
+ <xsl:apply-templates /> -->
3786
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3787
+ <!-- 0xA0 to space replacement -->
3788
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3789
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3160
3790
  <xsl:choose>
3161
- <xsl:when test="contains($str2, ' ')">
3162
- <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3163
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3164
- <xsl:value-of select="substring($substr, 2)"/> -->
3165
- <xsl:call-template name="capitalize">
3166
- <xsl:with-param name="str" select="$substr"/>
3167
- </xsl:call-template>
3168
- <xsl:text> </xsl:text>
3169
- <xsl:call-template name="capitalizeWords">
3170
- <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3171
- </xsl:call-template>
3791
+ <xsl:when test="parent::*[local-name() = 'note']">
3792
+ <fo:block-container>
3793
+ <xsl:attribute name="margin-left">
3794
+ <xsl:choose>
3795
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3796
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3797
+ </xsl:choose>
3798
+ </xsl:attribute>
3799
+
3800
+ <fo:block-container margin-left="0mm">
3801
+ <fo:block>
3802
+ <xsl:apply-templates select="." mode="ul_ol"/>
3803
+ </fo:block>
3804
+ </fo:block-container>
3805
+ </fo:block-container>
3172
3806
  </xsl:when>
3173
3807
  <xsl:otherwise>
3174
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3175
- <xsl:value-of select="substring($str2, 2)"/> -->
3176
- <xsl:call-template name="capitalize">
3177
- <xsl:with-param name="str" select="$str2"/>
3178
- </xsl:call-template>
3808
+ <fo:block>
3809
+ <xsl:apply-templates select="." mode="ul_ol"/>
3810
+ </fo:block>
3179
3811
  </xsl:otherwise>
3180
3812
  </xsl:choose>
3181
- </xsl:template><xsl:template name="capitalize">
3182
- <xsl:param name="str"/>
3183
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
3184
- <xsl:value-of select="substring($str, 2)"/>
3185
- </xsl:template><xsl:template match="mathml:math">
3186
- <fo:inline font-family="STIX2Math">
3187
- <fo:instream-foreign-object fox:alt-text="Math">
3188
- <xsl:copy-of select="."/>
3189
- </fo:instream-foreign-object>
3190
- </fo:inline>
3191
- </xsl:template><xsl:template match="*[local-name()='localityStack']">
3192
- <xsl:for-each select="*[local-name()='locality']">
3193
- <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
3194
- <xsl:apply-templates select="."/>
3195
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
3196
- </xsl:for-each>
3197
- </xsl:template><xsl:template match="*[local-name()='link']" name="link">
3198
- <xsl:variable name="target">
3199
- <xsl:choose>
3200
- <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
3201
- <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
3202
- </xsl:when>
3203
- <xsl:otherwise>
3204
- <xsl:value-of select="normalize-space(@target)"/>
3205
- </xsl:otherwise>
3206
- </xsl:choose>
3207
- </xsl:variable>
3208
- <fo:inline xsl:use-attribute-sets="link-style">
3813
+ </xsl:template><xsl:template match="*[local-name() = 'errata']">
3814
+ <!-- <row>
3815
+ <date>05-07-2013</date>
3816
+ <type>Editorial</type>
3817
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
3818
+ <pages>D-3</pages>
3819
+ </row>
3820
+ -->
3821
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
3822
+ <fo:table-column column-width="20mm"/>
3823
+ <fo:table-column column-width="23mm"/>
3824
+ <fo:table-column column-width="107mm"/>
3825
+ <fo:table-column column-width="15mm"/>
3826
+ <fo:table-body>
3827
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
3828
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
3829
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
3830
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
3831
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
3832
+ </fo:table-row>
3833
+ <xsl:apply-templates/>
3834
+ </fo:table-body>
3835
+ </fo:table>
3836
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']">
3837
+ <fo:table-row>
3838
+ <xsl:apply-templates/>
3839
+ </fo:table-row>
3840
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
3841
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3842
+ <fo:block><xsl:apply-templates/></fo:block>
3843
+ </fo:table-cell>
3844
+ </xsl:template><xsl:template name="processBibitem">
3845
+
3846
+
3847
+
3848
+
3849
+ <!-- start IHO bibtem processing -->
3209
3850
  <xsl:choose>
3210
- <xsl:when test="$target = ''">
3211
- <xsl:apply-templates/>
3851
+ <xsl:when test="iho:formattedref">
3852
+ <xsl:apply-templates select="iho:formattedref"/>
3212
3853
  </xsl:when>
3213
3854
  <xsl:otherwise>
3214
- <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
3855
+ <xsl:choose>
3856
+ <!-- IHO documents -->
3857
+ <!-- {docID} edition {edition}: {title}, {author/organization} -->
3858
+ <xsl:when test="iho:docidentifier[1]/@type='IHO'">
3859
+ <xsl:value-of select="iho:docidentifier[1]"/>
3860
+ <xsl:apply-templates select="iho:edition"/>
3861
+ <xsl:if test="iho:title or iho:contributor or iho:url">
3862
+ <xsl:text>: </xsl:text>
3863
+ </xsl:if>
3864
+ </xsl:when>
3865
+
3866
+ <!-- Non-IHO documents -->
3867
+ <!-- title and publisher -->
3868
+ <xsl:otherwise>
3869
+ <xsl:variable name="docID">
3870
+ <xsl:call-template name="processBibitemDocId"/>
3871
+ </xsl:variable>
3872
+ <xsl:value-of select="normalize-space($docID)"/>
3873
+ <xsl:if test="normalize-space($docID) != ''"><xsl:text>: </xsl:text></xsl:if>
3874
+ </xsl:otherwise>
3875
+ </xsl:choose>
3876
+
3877
+ <xsl:choose>
3878
+ <xsl:when test="iho:title[@type = 'main' and @language = 'en']">
3879
+ <xsl:apply-templates select="iho:title[@type = 'main' and @language = 'en']"/>
3880
+ </xsl:when>
3881
+ <xsl:otherwise>
3882
+ <xsl:apply-templates select="iho:title"/>
3883
+ </xsl:otherwise>
3884
+ </xsl:choose>
3885
+
3886
+ <xsl:if test="iho:title and iho:contributor">
3887
+ <xsl:text>, </xsl:text>
3888
+ </xsl:if>
3889
+
3890
+ <xsl:variable name="authors">
3215
3891
  <xsl:choose>
3216
- <xsl:when test="normalize-space(.) = ''">
3217
- <xsl:value-of select="$target"/>
3892
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
3893
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
3894
+ <xsl:copy-of select="."/>
3895
+ </xsl:for-each>
3218
3896
  </xsl:when>
3219
- <xsl:otherwise>
3220
- <xsl:apply-templates/>
3897
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='editor']">
3898
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='editor']">
3899
+ <xsl:copy-of select="."/>
3900
+ </xsl:for-each>
3901
+ </xsl:when>
3902
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='publisher'][*[local-name() = 'organization']]">
3903
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='publisher'][*[local-name() = 'organization']]">
3904
+ <xsl:copy>
3905
+ <xsl:choose>
3906
+ <xsl:when test="position() != 1 and position() != last()">, </xsl:when>
3907
+ <xsl:when test="position() != 1 and position() = last()"> and </xsl:when>
3908
+ </xsl:choose>
3909
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
3910
+ </xsl:copy>
3911
+ </xsl:for-each>
3912
+ </xsl:when>
3913
+ </xsl:choose>
3914
+ </xsl:variable>
3915
+
3916
+ <xsl:for-each select="xalan:nodeset($authors)/*">
3917
+ <xsl:choose>
3918
+ <xsl:when test="not(*[local-name() = 'role'])"><!-- publisher organisation -->
3919
+ <xsl:value-of select="."/>
3920
+ </xsl:when>
3921
+ <xsl:otherwise> <!-- author, editor -->
3922
+ <xsl:choose>
3923
+ <xsl:when test="*[local-name() = 'organization']/*[local-name() = 'name']">
3924
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
3925
+ </xsl:when>
3926
+ <xsl:otherwise>
3927
+ <xsl:for-each select="*[local-name() = 'person']">
3928
+ <xsl:variable name="author">
3929
+ <xsl:call-template name="processPersonalAuthor"/>
3930
+ </xsl:variable>
3931
+ <xsl:value-of select="xalan:nodeset($author)/author"/>
3932
+ </xsl:for-each>
3933
+ </xsl:otherwise>
3934
+ </xsl:choose>
3221
3935
  </xsl:otherwise>
3222
3936
  </xsl:choose>
3223
- </fo:basic-link>
3937
+ <xsl:if test="*[local-name() = 'organization']/*[local-name() = 'name'] and position() != last()">
3938
+ <xsl:text>, </xsl:text>
3939
+ </xsl:if>
3940
+ </xsl:for-each>
3941
+
3942
+ <xsl:apply-templates select="*[local-name() = 'uri'][1]"/>
3943
+
3224
3944
  </xsl:otherwise>
3225
3945
  </xsl:choose>
3226
- </fo:inline>
3227
- </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3228
- <fo:block xsl:use-attribute-sets="sourcecode-style">
3229
- <!-- <xsl:choose>
3230
- <xsl:when test="@lang = 'en'"></xsl:when>
3231
- <xsl:otherwise> -->
3232
- <xsl:attribute name="white-space">pre</xsl:attribute>
3233
- <xsl:attribute name="wrap-option">wrap</xsl:attribute>
3234
- <!-- </xsl:otherwise>
3235
- </xsl:choose> -->
3236
- <xsl:apply-templates/>
3237
- </fo:block>
3238
- </xsl:template><xsl:template match="*[local-name()='bookmark']">
3239
- <fo:inline id="{@id}"/>
3240
- </xsl:template><xsl:template match="*[local-name()='appendix']">
3241
- <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3242
- <xsl:variable name="title-appendix">
3243
- <xsl:call-template name="getTitle">
3244
- <xsl:with-param name="name" select="'title-appendix'"/>
3245
- </xsl:call-template>
3246
- </xsl:variable>
3247
- <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
3248
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3249
- </fo:block>
3250
- <xsl:apply-templates/>
3251
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3252
- <fo:inline><xsl:apply-templates/></fo:inline>
3253
- </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
3254
- <fo:block xsl:use-attribute-sets="appendix-example-style">
3255
- <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
3256
- <xsl:variable name="title-example">
3257
- <xsl:call-template name="getTitle">
3258
- <xsl:with-param name="name" select="'title-example'"/>
3259
- </xsl:call-template>
3260
- </xsl:variable>
3261
- <xsl:value-of select="$title-example"/>
3262
- <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
3263
- <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
3946
+ <!-- end IHO bibitem processing -->
3947
+
3948
+ </xsl:template><xsl:template name="processBibitemDocId">
3949
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
3950
+ <xsl:choose>
3951
+ <xsl:when test="normalize-space($_doc_ident) != ''">
3952
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
3953
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
3954
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3264
3955
  </xsl:if>
3265
- <xsl:if test="*[local-name()='name']">
3266
- <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
3267
- </xsl:if>
3268
- </fo:block>
3269
- <xsl:apply-templates/>
3270
- </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']"/><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']" mode="process">
3271
- <fo:inline><xsl:apply-templates/></fo:inline>
3272
- </xsl:template><xsl:template match="*[local-name() = 'callout']">
3273
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
3274
- </xsl:template><xsl:template match="*[local-name() = 'annotation']">
3275
- <xsl:variable name="annotation-id" select="@id"/>
3276
- <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
3277
- <fo:block id="{$annotation-id}" white-space="nowrap">
3278
- <fo:inline>
3279
- <xsl:apply-templates>
3280
- <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
3281
- </xsl:apply-templates>
3282
- </fo:inline>
3283
- </fo:block>
3284
- </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
3285
- <xsl:param name="callout"/>
3286
- <fo:inline id="{@id}">
3287
- <!-- for first p in annotation, put <x> -->
3288
- <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
3289
- <xsl:apply-templates/>
3290
- </fo:inline>
3291
- </xsl:template><xsl:template match="*[local-name() = 'modification']">
3292
- <xsl:variable name="title-modified">
3293
- <xsl:call-template name="getTitle">
3294
- <xsl:with-param name="name" select="'title-modified'"/>
3295
- </xsl:call-template>
3296
- </xsl:variable>
3956
+ <xsl:value-of select="$_doc_ident"/>
3957
+ </xsl:when>
3958
+ <xsl:otherwise>
3959
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
3960
+ <xsl:if test="$type != ''">
3961
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3962
+ </xsl:if>
3963
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
3964
+ </xsl:otherwise>
3965
+ </xsl:choose>
3966
+ </xsl:template><xsl:template name="processPersonalAuthor">
3297
3967
  <xsl:choose>
3298
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3299
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3968
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
3969
+ <author>
3970
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'completename']"/>
3971
+ </author>
3972
+ </xsl:when>
3973
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'initial']">
3974
+ <author>
3975
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
3976
+ <xsl:text> </xsl:text>
3977
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'initial']" mode="strip"/>
3978
+ </author>
3979
+ </xsl:when>
3980
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'forename']">
3981
+ <author>
3982
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
3983
+ <xsl:text> </xsl:text>
3984
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'forename']" mode="strip"/>
3985
+ </author>
3986
+ </xsl:when>
3987
+ <xsl:otherwise>
3988
+ <xsl:apply-templates/>
3989
+ </xsl:otherwise>
3300
3990
  </xsl:choose>
3301
- <xsl:apply-templates/>
3991
+ </xsl:template><xsl:template name="renderDate">
3992
+ <xsl:if test="normalize-space(*[local-name() = 'on']) != ''">
3993
+ <xsl:value-of select="*[local-name() = 'on']"/>
3994
+ </xsl:if>
3995
+ <xsl:if test="normalize-space(*[local-name() = 'from']) != ''">
3996
+ <xsl:value-of select="concat(*[local-name() = 'from'], '–', *[local-name() = 'to'])"/>
3997
+ </xsl:if>
3998
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'initial']/text()" mode="strip">
3999
+ <xsl:value-of select="translate(.,'. ','')"/>
4000
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4001
+ <xsl:value-of select="substring(.,1,1)"/>
3302
4002
  </xsl:template><xsl:template name="convertDate">
3303
4003
  <xsl:param name="date"/>
3304
4004
  <xsl:param name="format" select="'short'"/>
@@ -3431,27 +4131,49 @@
3431
4131
  </xsl:otherwise>
3432
4132
  </xsl:choose>
3433
4133
  </xsl:template><xsl:template name="getLevel">
3434
- <xsl:variable name="level_total" select="count(ancestor::*)"/>
3435
- <xsl:variable name="level">
3436
- <xsl:choose>
3437
- <xsl:when test="ancestor::*[local-name() = 'preface']">
3438
- <xsl:value-of select="$level_total - 2"/>
3439
- </xsl:when>
3440
- <xsl:when test="ancestor::*[local-name() = 'sections']">
3441
- <xsl:value-of select="$level_total - 2"/>
3442
- </xsl:when>
3443
- <xsl:when test="ancestor::*[local-name() = 'bibliography']">
3444
- <xsl:value-of select="$level_total - 2"/>
3445
- </xsl:when>
3446
- <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
3447
- <xsl:otherwise>
3448
- <xsl:value-of select="$level_total - 1"/>
3449
- </xsl:otherwise>
3450
- </xsl:choose>
3451
- </xsl:variable>
3452
- <xsl:value-of select="$level"/>
3453
- </xsl:template><xsl:template name="getSubSection">
3454
- <xsl:number format=".1" level="multiple" count="*[local-name() = 'clause']/*[local-name() = 'clause'] | *[local-name() = 'clause']/*[local-name() = 'terms'] | *[local-name() = 'terms']/*[local-name() = 'term'] | *[local-name() = 'clause']/*[local-name() = 'term'] | *[local-name() = 'terms']/*[local-name() = 'clause'] | *[local-name() = 'terms']/*[local-name() = 'definitions'] | *[local-name() = 'definitions']/*[local-name() = 'clause'] | *[local-name() = 'clause']/*[local-name() = 'definitions'] | *[local-name() = 'definitions']/*[local-name() = 'definitions'] | *[local-name() = 'clause']/*[local-name() = 'references']"/>
4134
+ <xsl:param name="depth"/>
4135
+ <xsl:choose>
4136
+ <xsl:when test="normalize-space(@depth) != ''">
4137
+ <xsl:value-of select="@depth"/>
4138
+ </xsl:when>
4139
+ <xsl:when test="normalize-space($depth) != ''">
4140
+ <xsl:value-of select="$depth"/>
4141
+ </xsl:when>
4142
+ <xsl:otherwise>
4143
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
4144
+ <xsl:variable name="level">
4145
+ <xsl:choose>
4146
+ <xsl:when test="parent::*[local-name() = 'preface']">
4147
+ <xsl:value-of select="$level_total - 1"/>
4148
+ </xsl:when>
4149
+ <xsl:when test="ancestor::*[local-name() = 'preface']">
4150
+ <xsl:value-of select="$level_total - 2"/>
4151
+ </xsl:when>
4152
+ <!-- <xsl:when test="parent::*[local-name() = 'sections']">
4153
+ <xsl:value-of select="$level_total - 1"/>
4154
+ </xsl:when> -->
4155
+ <xsl:when test="ancestor::*[local-name() = 'sections']">
4156
+ <xsl:value-of select="$level_total - 1"/>
4157
+ </xsl:when>
4158
+ <xsl:when test="ancestor::*[local-name() = 'bibliography']">
4159
+ <xsl:value-of select="$level_total - 1"/>
4160
+ </xsl:when>
4161
+ <xsl:when test="parent::*[local-name() = 'annex']">
4162
+ <xsl:value-of select="$level_total - 1"/>
4163
+ </xsl:when>
4164
+ <xsl:when test="ancestor::*[local-name() = 'annex']">
4165
+ <xsl:value-of select="$level_total"/>
4166
+ </xsl:when>
4167
+ <xsl:when test="local-name() = 'annex'">1</xsl:when>
4168
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
4169
+ <xsl:otherwise>
4170
+ <xsl:value-of select="$level_total - 1"/>
4171
+ </xsl:otherwise>
4172
+ </xsl:choose>
4173
+ </xsl:variable>
4174
+ <xsl:value-of select="$level"/>
4175
+ </xsl:otherwise>
4176
+ </xsl:choose>
3455
4177
  </xsl:template><xsl:template name="split">
3456
4178
  <xsl:param name="pText" select="."/>
3457
4179
  <xsl:param name="sep" select="','"/>
@@ -3482,7 +4204,9 @@
3482
4204
 
3483
4205
  <xsl:value-of select="document('')//*/namespace::iho"/>
3484
4206
 
3485
-
4207
+
4208
+
4209
+
3486
4210
  </xsl:variable>
3487
4211
  <xsl:if test="$documentNS != $XSLNS">
3488
4212
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -3497,4 +4221,32 @@
3497
4221
  <xsl:when test="$language = 'cn'">Chinese</xsl:when>
3498
4222
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3499
4223
  </xsl:choose>
4224
+ </xsl:template><xsl:template name="setId">
4225
+ <xsl:attribute name="id">
4226
+ <xsl:choose>
4227
+ <xsl:when test="@id">
4228
+ <xsl:value-of select="@id"/>
4229
+ </xsl:when>
4230
+ <xsl:otherwise>
4231
+ <xsl:value-of select="generate-id()"/>
4232
+ </xsl:otherwise>
4233
+ </xsl:choose>
4234
+ </xsl:attribute>
4235
+ </xsl:template><xsl:template name="add-letter-spacing">
4236
+ <xsl:param name="text"/>
4237
+ <xsl:param name="letter-spacing" select="'0.15'"/>
4238
+ <xsl:if test="string-length($text) &gt; 0">
4239
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
4240
+ <fo:inline padding-right="{$letter-spacing}mm">
4241
+ <xsl:if test="$char = '®'">
4242
+ <xsl:attribute name="font-size">58%</xsl:attribute>
4243
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
4244
+ </xsl:if>
4245
+ <xsl:value-of select="$char"/>
4246
+ </fo:inline>
4247
+ <xsl:call-template name="add-letter-spacing">
4248
+ <xsl:with-param name="text" select="substring($text, 2)"/>
4249
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
4250
+ </xsl:call-template>
4251
+ </xsl:if>
3500
4252
  </xsl:template></xsl:stylesheet>