metanorma-ogc 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/ogc/boilerplate.xml +3 -3
  3. data/lib/asciidoctor/ogc/front.rb +7 -19
  4. data/lib/isodoc/ogc/biblio.rb +33 -4
  5. data/lib/isodoc/ogc/html/header_wp.html +210 -0
  6. data/lib/isodoc/ogc/html/logo.png +0 -0
  7. data/lib/isodoc/ogc/html/ogc.css +6 -3
  8. data/lib/isodoc/ogc/html/ogc.scss +4 -2
  9. data/lib/isodoc/ogc/html/ogc_wp.css +758 -0
  10. data/lib/isodoc/ogc/html/ogc_wp.scss +724 -0
  11. data/lib/isodoc/ogc/html/word_ogc_intro_wp.html +14 -0
  12. data/lib/isodoc/ogc/html/word_ogc_titlepage_wp.html +175 -0
  13. data/lib/isodoc/ogc/html/wordstyle.css +8 -8
  14. data/lib/isodoc/ogc/html/wordstyle.scss +8 -8
  15. data/lib/isodoc/ogc/html/wordstyle_wp.css +1181 -0
  16. data/lib/isodoc/ogc/html/wordstyle_wp.scss +1093 -0
  17. data/lib/isodoc/ogc/init.rb +9 -0
  18. data/lib/isodoc/ogc/metadata.rb +30 -27
  19. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +235 -47
  20. data/lib/isodoc/ogc/ogc.best-practice.xsl +235 -47
  21. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +235 -47
  22. data/lib/isodoc/ogc/ogc.community-practice.xsl +235 -47
  23. data/lib/isodoc/ogc/ogc.community-standard.xsl +235 -47
  24. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +235 -47
  25. data/lib/isodoc/ogc/ogc.engineering-report.xsl +235 -47
  26. data/lib/isodoc/ogc/ogc.other.xsl +235 -47
  27. data/lib/isodoc/ogc/ogc.policy.xsl +235 -47
  28. data/lib/isodoc/ogc/ogc.reference-model.xsl +235 -47
  29. data/lib/isodoc/ogc/ogc.release-notes.xsl +235 -47
  30. data/lib/isodoc/ogc/ogc.standard.xsl +235 -47
  31. data/lib/isodoc/ogc/ogc.test-suite.xsl +235 -47
  32. data/lib/isodoc/ogc/ogc.user-guide.xsl +235 -47
  33. data/lib/isodoc/ogc/ogc.white-paper.xsl +233 -32
  34. data/lib/isodoc/ogc/word_convert.rb +20 -3
  35. data/lib/isodoc/ogc/xref.rb +20 -13
  36. data/lib/metanorma/ogc/version.rb +1 -1
  37. metadata +10 -2
@@ -26,6 +26,15 @@ module IsoDoc
26
26
  def submittingorgs_path
27
27
  "//bibdata/contributor[role/@type = 'author']/organization/name"
28
28
  end
29
+
30
+ def ogc_draft_ref?(ref)
31
+ return unless ref.at(
32
+ ns("./contributor[role/@type = 'publisher']/organization"\
33
+ "[name = 'Open Geospatial Consortium']"))
34
+ status = ref.at(ns("./status/stage"))&.text or return
35
+ return if %w(published deprecated retired).include? status
36
+ true
37
+ end
29
38
  end
30
39
  end
31
40
  end
@@ -4,38 +4,41 @@ require "iso-639"
4
4
  module IsoDoc
5
5
  module Ogc
6
6
  DOCTYPE_ABBR = {
7
- "standard" => "IS",
8
- "abstract-specification-topic" => "AST",
9
- "best-practice" => "BP",
10
- "change-request-supporting-document" => "CRSD",
11
- "community-practice" => "CP",
12
- "community-standard" => "CS",
13
- "discussion-paper" => "DP",
14
- "engineering-report" => "ER",
15
- "policy" => "POL",
16
- "reference-model" => "RM",
17
- "release-notes" => "RN",
18
- "test-suite" => "TS",
19
- "user-guide" => "UG",
20
- "white-paper" => "WP",
21
- "other" => "other",
22
- }
7
+ "standard" => "IS",
8
+ "abstract-specification-topic" => "AST",
9
+ "best-practice" => "BP",
10
+ "change-request-supporting-document" => "CRSD",
11
+ "community-practice" => "CP",
12
+ "community-standard" => "CS",
13
+ "discussion-paper" => "DP",
14
+ "engineering-report" => "ER",
15
+ "policy" => "POL",
16
+ "reference-model" => "RM",
17
+ "release-notes" => "RN",
18
+ "test-suite" => "TS",
19
+ "user-guide" => "UG",
20
+ "white-paper" => "WP",
21
+ "other" => "other",
22
+ }
23
23
 
24
- DOCSUBTYPE_ABBR = {
25
- "implementation" => "IMP",
26
- "conceptual-model" => "CM",
27
- "conceptual-model-and-encoding" => "CME",
28
- "conceptual-model-and-implementation" => "CMI",
29
- "encoding" => "EN",
30
- "extension" => "EXT",
31
- "profile" => "PF",
32
- "profile-with-extension" => "PFE",
33
- "general" => "GE",
34
- }
24
+ DOCSUBTYPE_ABBR = {
25
+ "implementation" => "IMP",
26
+ "conceptual-model" => "CM",
27
+ "conceptual-model-and-encoding" => "CME",
28
+ "conceptual-model-and-implementation" => "CMI",
29
+ "encoding" => "EN",
30
+ "extension" => "EXT",
31
+ "profile" => "PF",
32
+ "profile-with-extension" => "PFE",
33
+ "general" => "GE",
34
+ }
35
35
 
36
36
  class Metadata < IsoDoc::Metadata
37
37
  def initialize(lang, script, i18n)
38
38
  super
39
+ here = File.dirname(__FILE__)
40
+ set(:logo_word,
41
+ File.expand_path(File.join(here, "html", "logo.png")))
39
42
  end
40
43
 
41
44
  def title(isoxml, _out)
@@ -44,26 +44,32 @@
44
44
  <xsl:variable name="contents">
45
45
  <contents>
46
46
 
47
- <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
48
-
49
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="contents"/>
50
-
51
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']" mode="contents"/>
52
-
53
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']" mode="contents"/>
54
-
47
+ <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
48
+ <!-- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="contents"/> -->
49
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:abstract" mode="contents"/>
50
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'keyword']" mode="contents"/>
51
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword" mode="contents"/>
52
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:introduction" mode="contents"/>
53
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'submitting_orgs']" mode="contents"/>
54
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters" mode="contents"/>
55
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'submitting_orgs') and not(@type = 'keyword')]" mode="contents"/>
56
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:acknowledgements" mode="contents"/>
57
+
58
+
59
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@type='scope']" mode="contents"/>
60
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@type='conformance']" mode="contents"/>
55
61
  <!-- Normative references -->
56
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']" mode="contents"/>
57
-
62
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@normative='true']" mode="contents"/>
58
63
  <!-- Terms and definitions -->
59
64
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms" mode="contents"/>
65
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:definitions" mode="contents"/>
60
66
 
61
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/*[local-name() != 'terms' and not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]" mode="contents"/>
67
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[not(@type='scope') and not(@type='conformance')]" mode="contents"/>
62
68
 
63
69
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:annex" mode="contents"/>
64
70
 
65
71
  <!-- Bibliography -->
66
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']" mode="contents"/> <!-- [position() &gt; 1] -->
72
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[not(@normative='true')]" mode="contents"/>
67
73
 
68
74
 
69
75
  </contents>
@@ -410,7 +416,8 @@
410
416
  </xsl:for-each>
411
417
  </xsl:if>
412
418
 
413
- <xsl:if test="//ogc:permission[@id and ogc:name] or //ogc:recommendation[@id and ogc:name] or //ogc:requirement[@id and ogc:name]">
419
+ <!-- <xsl:if test="//ogc:permission[@id and ogc:name] or //ogc:recommendation[@id and ogc:name] or //ogc:requirement[@id and ogc:name]"> -->
420
+ <xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
414
421
  <fo:block font-size="12pt"> </fo:block>
415
422
  <fo:block font-size="12pt"> </fo:block>
416
423
  <xsl:variable name="title-list-recommendations">
@@ -419,10 +426,12 @@
419
426
  </xsl:call-template>
420
427
  </xsl:variable>
421
428
  <fo:block font-size="14pt" font-weight="bold" space-before="48pt" margin-bottom="15.5pt"><xsl:value-of select="$title-list-recommendations"/></fo:block>
422
- <xsl:for-each select="//ogc:permission[@id and ogc:name] | //ogc:recommendation[@id and ogc:name] | //ogc:requirement[@id and ogc:name]">
429
+ <!-- <xsl:for-each select="//ogc:permission[@id and ogc:name] | //ogc:recommendation[@id and ogc:name] | //ogc:requirement[@id and ogc:name]"> -->
430
+ <xsl:for-each select="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
431
+ <xsl:variable name="table_id" select="@id"/>
423
432
  <fo:block text-align-last="justify" margin-top="6pt">
424
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
425
- <xsl:apply-templates select="ogc:name" mode="contents"/>
433
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{.//ogc:p[@class = 'RecommendationTitle'][1]/text()}">
434
+ <xsl:apply-templates select=".//ogc:p[@class = 'RecommendationTitle'][ancestor::ogc:table[1][@id= $table_id]]/node()"/>
426
435
  <fo:inline keep-together.within-line="always">
427
436
  <fo:leader leader-pattern="dots"/>
428
437
  <fo:page-number-citation ref-id="{@id}"/>
@@ -436,8 +445,26 @@
436
445
  </fo:block-container>
437
446
 
438
447
  <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
439
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="preface"/>
440
-
448
+ <!-- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="preface"/> -->
449
+ <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:abstract">
450
+ <fo:block break-after="page"/>
451
+ </xsl:if>
452
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:abstract"/>
453
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'keyword']"/>
454
+ <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:foreword">
455
+ <fo:block break-after="page"/>
456
+ </xsl:if>
457
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword"/>
458
+ <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:introduction">
459
+ <fo:block break-after="page"/>
460
+ </xsl:if>
461
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:introduction"/>
462
+
463
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'submitting_orgs']"/>
464
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters"/>
465
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'submitting_orgs') and not(@type = 'keyword')]"/>
466
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:acknowledgements"/>
467
+
441
468
  </fo:flow>
442
469
  </fo:page-sequence>
443
470
 
@@ -459,22 +486,23 @@
459
486
 
460
487
  <fo:block line-height="125%">
461
488
 
462
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']"/>
489
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@type='scope']"/>
463
490
 
464
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']"/>
491
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@type='conformance']"/>
465
492
 
466
493
  <!-- Normative references -->
467
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']"/>
494
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@normative='true']"/>
468
495
 
469
496
  <!-- Terms and definitions -->
470
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms"/>
497
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms"/>
498
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:definitions"/>
471
499
 
472
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/*[local-name() != 'terms' and not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]"/>
500
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[not(@type='scope') and not(@type='conformance')]"/>
473
501
 
474
502
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:annex"/>
475
503
 
476
504
  <!-- Bibliography -->
477
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']"/> <!-- [position() &gt; 1] -->
505
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[not(@normative='true')]"/>
478
506
 
479
507
  </fo:block>
480
508
  </fo:flow>
@@ -638,16 +666,6 @@
638
666
  </fo:block>
639
667
  </xsl:template>
640
668
 
641
- <xsl:template match="ogc:ogc-standard/ogc:preface/*" mode="preface">
642
- <xsl:if test="local-name() = 'introduction' or local-name() = 'abstract' or local-name() = 'foreword'">
643
- <fo:block break-after="page"/>
644
- </xsl:if>
645
- <xsl:apply-templates select="current()"/>
646
- </xsl:template>
647
-
648
-
649
-
650
-
651
669
 
652
670
  <!-- ====== -->
653
671
  <!-- title -->
@@ -856,7 +874,7 @@
856
874
 
857
875
 
858
876
  <xsl:template match="ogc:ul | ogc:ol">
859
- <fo:list-block provisional-distance-between-starts="6.5mm" margin-bottom="12pt" line-height="115%">
877
+ <fo:list-block provisional-distance-between-starts="6.5mm" space-after="12pt" line-height="115%">
860
878
  <xsl:if test="ancestor::ogc:ul | ancestor::ogc:ol">
861
879
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
862
880
  </xsl:if>
@@ -938,12 +956,9 @@
938
956
  </fo:block>
939
957
  </xsl:template>
940
958
 
941
-
942
-
943
-
944
959
 
945
960
  <!-- [position() &gt; 1] -->
946
- <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']">
961
+ <xsl:template match="ogc:references[not(@normative='true')]">
947
962
  <fo:block break-after="page"/>
948
963
  <fo:block id="{@id}" line-height="120%">
949
964
  <xsl:apply-templates/>
@@ -958,7 +973,7 @@
958
973
 
959
974
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
960
975
  <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem"> [position() &gt; 1] -->
961
- <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']/ogc:bibitem">
976
+ <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem">
962
977
  <fo:list-block id="{@id}" margin-bottom="12pt" provisional-distance-between-starts="12mm">
963
978
  <fo:list-item>
964
979
  <fo:list-item-label end-indent="label-end()">
@@ -1031,10 +1046,10 @@
1031
1046
  </xsl:template>
1032
1047
 
1033
1048
  <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem" mode="contents"/> [position() &gt; 1] -->
1034
- <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']/ogc:bibitem" mode="contents"/>
1049
+ <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem" mode="contents"/>
1035
1050
 
1036
1051
  <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem/ogc:title"> [position() &gt; 1]-->
1037
- <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']/ogc:bibitem/ogc:title">
1052
+ <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem/ogc:title">
1038
1053
  <fo:inline font-style="italic">
1039
1054
  <xsl:apply-templates/>
1040
1055
  </fo:inline>
@@ -1376,6 +1391,7 @@
1376
1391
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1377
1392
 
1378
1393
 
1394
+
1379
1395
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1380
1396
 
1381
1397
 
@@ -1397,6 +1413,8 @@
1397
1413
 
1398
1414
 
1399
1415
 
1416
+
1417
+
1400
1418
 
1401
1419
 
1402
1420
  </xsl:attribute-set><xsl:attribute-set name="example-p-style">
@@ -1413,6 +1431,8 @@
1413
1431
 
1414
1432
 
1415
1433
 
1434
+
1435
+
1416
1436
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1417
1437
 
1418
1438
  <xsl:attribute name="padding-right">10mm</xsl:attribute>
@@ -1437,6 +1457,7 @@
1437
1457
 
1438
1458
 
1439
1459
 
1460
+
1440
1461
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1441
1462
 
1442
1463
  <xsl:attribute name="font-size">12pt</xsl:attribute>
@@ -1585,7 +1606,7 @@
1585
1606
 
1586
1607
 
1587
1608
 
1588
-
1609
+
1589
1610
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1590
1611
 
1591
1612
  </xsl:attribute-set><xsl:attribute-set name="image-style">
@@ -1635,7 +1656,43 @@
1635
1656
  <xsl:attribute name="space-after">6pt</xsl:attribute>
1636
1657
 
1637
1658
 
1638
- </xsl:attribute-set><xsl:template match="text()">
1659
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
1660
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1661
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1662
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1663
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1664
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1665
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1666
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1667
+
1668
+ <!-- Normative references -->
1669
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
1670
+ <!-- Terms and definitions -->
1671
+ <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"/>
1672
+ <!-- Another main sections -->
1673
+ <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"/>
1674
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1675
+ <!-- Bibliography -->
1676
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
1677
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1678
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1679
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1680
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1681
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1682
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1683
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1684
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1685
+
1686
+ <!-- Normative references -->
1687
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1688
+ <!-- Terms and definitions -->
1689
+ <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']]"/>
1690
+ <!-- Another main sections -->
1691
+ <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'])]"/>
1692
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1693
+ <!-- Bibliography -->
1694
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1695
+ </xsl:template><xsl:template match="text()">
1639
1696
  <xsl:value-of select="."/>
1640
1697
  </xsl:template><xsl:template match="*[local-name()='br']">
1641
1698
  <xsl:value-of select="$linebreak"/>
@@ -1718,6 +1775,7 @@
1718
1775
 
1719
1776
 
1720
1777
 
1778
+
1721
1779
  <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">
1722
1780
 
1723
1781
 
@@ -1735,6 +1793,7 @@
1735
1793
 
1736
1794
 
1737
1795
 
1796
+
1738
1797
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1739
1798
  <xsl:choose>
1740
1799
  <xsl:when test=". = 1 or . = 0">
@@ -1985,6 +2044,15 @@
1985
2044
  </fo:table-row>
1986
2045
  </xsl:template><xsl:template match="*[local-name()='th']">
1987
2046
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2047
+ <xsl:attribute name="text-align">
2048
+ <xsl:choose>
2049
+ <xsl:when test="@align">
2050
+ <xsl:value-of select="@align"/>
2051
+ </xsl:when>
2052
+ <xsl:otherwise>center</xsl:otherwise>
2053
+ </xsl:choose>
2054
+ </xsl:attribute>
2055
+
1988
2056
 
1989
2057
 
1990
2058
 
@@ -2009,6 +2077,14 @@
2009
2077
  </fo:table-cell>
2010
2078
  </xsl:template><xsl:template match="*[local-name()='td']">
2011
2079
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2080
+ <xsl:attribute name="text-align">
2081
+ <xsl:choose>
2082
+ <xsl:when test="@align">
2083
+ <xsl:value-of select="@align"/>
2084
+ </xsl:when>
2085
+ <xsl:otherwise>left</xsl:otherwise>
2086
+ </xsl:choose>
2087
+ </xsl:attribute>
2012
2088
 
2013
2089
 
2014
2090
 
@@ -3232,6 +3308,117 @@
3232
3308
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
3233
3309
  <xsl:apply-templates/>
3234
3310
  </fo:block>
3311
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3312
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3313
+ <fo:block-container margin-left="0mm" margin-right="0mm">
3314
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
3315
+ <xsl:variable name="simple-table">
3316
+ <xsl:call-template name="getSimpleTable"/>
3317
+ </xsl:variable>
3318
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3319
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3320
+ <fo:table-column column-width="35mm"/>
3321
+ <fo:table-column column-width="115mm"/>
3322
+ </xsl:if>
3323
+ <xsl:apply-templates mode="requirement"/>
3324
+ </fo:table>
3325
+ <!-- fn processing -->
3326
+ <xsl:if test=".//*[local-name() = 'fn']">
3327
+ <xsl:for-each select="*[local-name() = 'tbody']">
3328
+ <fo:block font-size="90%" border-bottom="1.pt solid black">
3329
+ <xsl:call-template name="fn_display"/>
3330
+ </fo:block>
3331
+ </xsl:for-each>
3332
+ </xsl:if>
3333
+ </fo:block-container>
3334
+ </fo:block-container>
3335
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
3336
+ <fo:table-header>
3337
+ <xsl:apply-templates mode="requirement"/>
3338
+ </fo:table-header>
3339
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
3340
+ <fo:table-body>
3341
+ <xsl:apply-templates mode="requirement"/>
3342
+ </fo:table-body>
3343
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3344
+ <fo:table-row>
3345
+ <xsl:apply-templates mode="requirement"/>
3346
+ </fo:table-row>
3347
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3348
+ <fo:table-cell text-align="{@align}">
3349
+ <xsl:attribute name="text-align">
3350
+ <xsl:choose>
3351
+ <xsl:when test="@align">
3352
+ <xsl:value-of select="@align"/>
3353
+ </xsl:when>
3354
+ <xsl:otherwise>center</xsl:otherwise>
3355
+ </xsl:choose>
3356
+ </xsl:attribute>
3357
+ <xsl:if test="@colspan">
3358
+ <xsl:attribute name="number-columns-spanned">
3359
+ <xsl:value-of select="@colspan"/>
3360
+ </xsl:attribute>
3361
+ </xsl:if>
3362
+ <xsl:if test="@rowspan">
3363
+ <xsl:attribute name="number-rows-spanned">
3364
+ <xsl:value-of select="@rowspan"/>
3365
+ </xsl:attribute>
3366
+ </xsl:if>
3367
+
3368
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3369
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3370
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
3371
+ </xsl:if>
3372
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
3373
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3374
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3375
+ </xsl:if>
3376
+
3377
+ <fo:block>
3378
+ <xsl:apply-templates/>
3379
+ </fo:block>
3380
+ </fo:table-cell>
3381
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3382
+ <fo:table-cell text-align="{@align}">
3383
+ <xsl:attribute name="text-align">
3384
+ <xsl:choose>
3385
+ <xsl:when test="@align">
3386
+ <xsl:value-of select="@align"/>
3387
+ </xsl:when>
3388
+ <xsl:otherwise>left</xsl:otherwise>
3389
+ </xsl:choose>
3390
+ </xsl:attribute>
3391
+ <xsl:if test="@colspan">
3392
+ <xsl:attribute name="number-columns-spanned">
3393
+ <xsl:value-of select="@colspan"/>
3394
+ </xsl:attribute>
3395
+ </xsl:if>
3396
+ <xsl:if test="@rowspan">
3397
+ <xsl:attribute name="number-rows-spanned">
3398
+ <xsl:value-of select="@rowspan"/>
3399
+ </xsl:attribute>
3400
+ </xsl:if>
3401
+
3402
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3403
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
3404
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3405
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
3406
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3407
+ </xsl:if>
3408
+ </xsl:if>
3409
+
3410
+ <fo:block>
3411
+ <xsl:apply-templates/>
3412
+ </fo:block>
3413
+ </fo:table-cell>
3414
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3415
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
3416
+ <xsl:apply-templates/>
3417
+ </fo:block>
3418
+ </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3419
+ <fo:block margin-bottom="10pt">
3420
+ <xsl:apply-templates/>
3421
+ </fo:block>
3235
3422
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3236
3423
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3237
3424
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3493,7 +3680,7 @@
3493
3680
 
3494
3681
 
3495
3682
 
3496
- <xsl:variable name="pos"><xsl:number count="ogc:sections/ogc:clause[not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]"/></xsl:variable> <!-- | ogc:sections/ogc:terms -->
3683
+ <xsl:variable name="pos"><xsl:number count="ogc:sections/ogc:clause[not(@type='scope') and not(@type='conformance')]"/></xsl:variable> <!-- | ogc:sections/ogc:terms -->
3497
3684
  <xsl:if test="$pos &gt;= 2">
3498
3685
  <xsl:attribute name="space-before">18pt</xsl:attribute>
3499
3686
  </xsl:if>
@@ -3521,7 +3708,7 @@
3521
3708
  <fo:block id="{@id}">
3522
3709
  <xsl:apply-templates/>
3523
3710
  </fo:block>
3524
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
3711
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
3525
3712
 
3526
3713
  <fo:block id="{@id}">
3527
3714
  <xsl:apply-templates/>
@@ -3773,7 +3960,8 @@
3773
3960
 
3774
3961
 
3775
3962
 
3776
-
3963
+
3964
+
3777
3965
  </xsl:variable>
3778
3966
  <xsl:if test="$documentNS != $XSLNS">
3779
3967
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>