metanorma-ogc 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/ogc/converter.rb +11 -7
  3. data/lib/asciidoctor/ogc/isodoc.rng +12 -6
  4. data/lib/asciidoctor/ogc/validate.rb +13 -25
  5. data/lib/isodoc/ogc/base_convert.rb +2 -26
  6. data/lib/isodoc/ogc/html_convert.rb +2 -0
  7. data/lib/isodoc/ogc/i18n-en.yaml +1 -0
  8. data/lib/isodoc/ogc/i18n.rb +10 -0
  9. data/lib/isodoc/ogc/init.rb +32 -0
  10. data/lib/isodoc/ogc/metadata.rb +1 -1
  11. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +1312 -1461
  12. data/lib/isodoc/ogc/ogc.best-practice.xsl +1312 -1461
  13. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +1312 -1461
  14. data/lib/isodoc/ogc/ogc.community-practice.xsl +1312 -1461
  15. data/lib/isodoc/ogc/ogc.community-standard.xsl +1312 -1461
  16. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +1312 -1461
  17. data/lib/isodoc/ogc/ogc.engineering-report.xsl +1312 -1461
  18. data/lib/isodoc/ogc/ogc.other.xsl +1312 -1461
  19. data/lib/isodoc/ogc/ogc.policy.xsl +1312 -1461
  20. data/lib/isodoc/ogc/ogc.reference-model.xsl +1312 -1461
  21. data/lib/isodoc/ogc/ogc.release-notes.xsl +1312 -1461
  22. data/lib/isodoc/ogc/ogc.standard.xsl +1312 -1461
  23. data/lib/isodoc/ogc/ogc.test-suite.xsl +1312 -1461
  24. data/lib/isodoc/ogc/ogc.user-guide.xsl +1312 -1461
  25. data/lib/isodoc/ogc/ogc.white-paper.xsl +1537 -1934
  26. data/lib/isodoc/ogc/presentation_xml_convert.rb +128 -1
  27. data/lib/isodoc/ogc/reqt.rb +4 -26
  28. data/lib/isodoc/ogc/sections.rb +18 -64
  29. data/lib/isodoc/ogc/word_convert.rb +2 -0
  30. data/lib/isodoc/ogc/xref.rb +9 -11
  31. data/lib/metanorma/ogc/version.rb +1 -1
  32. data/metanorma-ogc.gemspec +2 -4
  33. metadata +8 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28e9f7b452250d9b10276a7f279698a9d83668b60e2a2b25c22c4d92fc7961d4
4
- data.tar.gz: 9dd3088ab9971b3f5cdcfc4e713368c56e811c8bf7209bc0fa71467c14493c92
3
+ metadata.gz: cfeb15d2577cb48f993bf7a73f58be36077d2b21ca258c17276b0462ec8237c0
4
+ data.tar.gz: 4b79e2e72a36fe12d542ca20ac64625f261e973a63e1931041b42944d5474a22
5
5
  SHA512:
6
- metadata.gz: 11e24b9fac6c082568bb03d1d0e412fae0f068d2d3dfd4f4b8c3e24144c344280979a9167950011b4e73ecd7f618bc7f083466b39c7422f3881703a6372cf5b7
7
- data.tar.gz: 688d52c141461f011f5b0445f6a9eb2029d0452e0edd45b2349727e8d28b7564fa87f4ed828f86c72d4d5c755c951710f8e7a069181e51012636c9ff012dca9c
6
+ metadata.gz: e51b0f483c42b5ff9225410288821dd21ffb7ac8d6a7deac5ca40658c692e4a6bcd7f6792c04cbb4b091319c23c60d013665be610cbd320609715f9efbbb823c
7
+ data.tar.gz: 0e8c75fef49d337a48d128374fe7de3b950f575f83fe3ec3d1e87abd1dd7943cce67a3bd7da6856c9c31957cba7d58ba90735b2fe5054e0f2a1cb7a17d0af085
@@ -55,9 +55,12 @@ module Asciidoctor
55
55
  def outputs(node, ret)
56
56
  File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
57
57
  presentation_xml_converter(node).convert(@filename + ".xml")
58
- html_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.html")
59
- doc_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.doc")
60
- pdf_converter(node)&.convert(@filename + ".presentation.xml", nil, false, "#{@filename}.pdf")
58
+ html_converter(node).convert(@filename + ".presentation.xml",
59
+ nil, false, "#{@filename}.html")
60
+ doc_converter(node).convert(@filename + ".presentation.xml",
61
+ nil, false, "#{@filename}.doc")
62
+ pdf_converter(node)&.convert(@filename + ".presentation.xml",
63
+ nil, false, "#{@filename}.pdf")
61
64
  end
62
65
 
63
66
  def validate(doc)
@@ -84,15 +87,16 @@ module Asciidoctor
84
87
  end
85
88
 
86
89
  def clause_parse(attrs, xml, node)
87
- clausetype = node&.attr("heading")&.downcase || node.title.downcase
88
- if clausetype == "submitters" then submitters_parse(attrs, xml, node)
89
- else
90
- super
90
+ case clausetype = node&.attr("heading")&.downcase || node.title.downcase
91
+ when "submitters" then return submitters_parse(attrs, xml, node)
92
+ when "conformance" then attrs = attrs.merge(type: "conformance")
91
93
  end
94
+ super
92
95
  end
93
96
 
94
97
  def submitters_parse(attrs, xml, node)
95
98
  xml.submitters **attr_code(attrs) do |xml_section|
99
+ xml_section.title @i18n.submitters
96
100
  xml_section << node.content
97
101
  end
98
102
  end
@@ -922,6 +922,9 @@
922
922
  <optional>
923
923
  <attribute name="script"/>
924
924
  </optional>
925
+ <optional>
926
+ <attribute name="type"/>
927
+ </optional>
925
928
  <optional>
926
929
  <attribute name="obligation">
927
930
  <choice>
@@ -961,9 +964,6 @@
961
964
  </define>
962
965
  <define name="content-subsection">
963
966
  <element name="clause">
964
- <optional>
965
- <attribute name="type"/>
966
- </optional>
967
967
  <ref name="Content-Section"/>
968
968
  </element>
969
969
  </define>
@@ -992,6 +992,9 @@
992
992
  </choice>
993
993
  </attribute>
994
994
  </optional>
995
+ <optional>
996
+ <attribute name="type"/>
997
+ </optional>
995
998
  <optional>
996
999
  <ref name="section-title"/>
997
1000
  </optional>
@@ -1011,9 +1014,6 @@
1011
1014
  </define>
1012
1015
  <define name="clause">
1013
1016
  <element name="clause">
1014
- <optional>
1015
- <attribute name="type"/>
1016
- </optional>
1017
1017
  <ref name="Clause-Section"/>
1018
1018
  </element>
1019
1019
  </define>
@@ -1042,6 +1042,9 @@
1042
1042
  </choice>
1043
1043
  </attribute>
1044
1044
  </optional>
1045
+ <optional>
1046
+ <attribute name="type"/>
1047
+ </optional>
1045
1048
  <optional>
1046
1049
  <ref name="section-title"/>
1047
1050
  </optional>
@@ -1180,6 +1183,9 @@
1180
1183
  <optional>
1181
1184
  <attribute name="script"/>
1182
1185
  </optional>
1186
+ <optional>
1187
+ <attribute name="type"/>
1188
+ </optional>
1183
1189
  <optional>
1184
1190
  <attribute name="obligation">
1185
1191
  <choice>
@@ -49,35 +49,25 @@ module Asciidoctor
49
49
  [
50
50
  {
51
51
  msg: "Prefatory material must be followed by (clause) Scope",
52
- val: [{ tag: "clause", title: "Scope" }],
52
+ val: ["./self::clause[@type = 'scope']" ]
53
53
  },
54
54
  {
55
55
  msg: "Scope must be followed by Conformance",
56
- val: [{ tag: "clause", title: "Conformance" }],
56
+ val: ["./self::clause[@type = 'conformance']" ]
57
57
  },
58
58
  {
59
59
  msg: "Normative References must be followed by "\
60
60
  "Terms and Definitions",
61
- val: [
62
- { tag: "terms", title: "Terms and definitions" },
63
- { tag: "clause", title: "Terms and definitions" },
64
- {
65
- tag: "terms",
66
- title: "Terms, definitions, symbols and abbreviated terms",
67
- },
68
- {
69
- tag: "clause",
70
- title: "Terms, definitions, symbols and abbreviated terms",
71
- },
72
- ],
61
+ val: ["./self::terms | .//terms"]
73
62
  },
74
63
  ].freeze
75
64
 
76
65
  def seqcheck(names, msg, accepted)
77
66
  n = names.shift
78
- unless accepted.include? n
67
+ return [] if n.nil?
68
+ test = accepted.map { |a| n.at(a) }
69
+ if test.all? { |a| a.nil? }
79
70
  @log.add("Style", nil, msg)
80
- names = []
81
71
  end
82
72
  names
83
73
  end
@@ -85,23 +75,21 @@ module Asciidoctor
85
75
  def sections_sequence_validate(root)
86
76
  return unless STANDARDTYPE.include?(
87
77
  root&.at("//bibdata/ext/doctype")&.text)
88
- f = root.at("//sections").elements
89
- names = f.map { |s| { tag: s.name, title: s&.at("./title")&.text } }
90
- names = seqcheck(names, SEQ[0][:msg], SEQ[0][:val]) || return
91
- names = seqcheck(names, SEQ[1][:msg], SEQ[1][:val]) || return
92
- names = seqcheck(names, SEQ[2][:msg], SEQ[2][:val]) || return
78
+ names = root.xpath("//sections/* | //bibliography/*")
79
+ names = seqcheck(names, SEQ[0][:msg], SEQ[0][:val])
80
+ names = seqcheck(names, SEQ[1][:msg], SEQ[1][:val])
81
+ names = seqcheck(names, SEQ[2][:msg], SEQ[2][:val])
93
82
  n = names.shift
94
- if !n.nil? && n[:tag] == "definitions"
83
+ if n&.at("./self::definitions")
95
84
  n = names.shift
96
85
  end
97
- unless n
86
+ if n.nil? || n.name != "clause"
98
87
  @log.add("Style", nil, "Document must contain at least one clause")
99
88
  return
100
89
  end
101
90
  root.at("//references | //clause[descendant::references]"\
102
91
  "[not(parent::clause)]") or
103
- seqcheck([{tag: "clause"}],
104
- "Normative References are mandatory", [{tag: "references"}])
92
+ @log.add("Style", nil, "Normative References are mandatory")
105
93
  end
106
94
 
107
95
  def preface_sequence_validate(root)
@@ -1,5 +1,4 @@
1
1
  require "isodoc"
2
- require_relative "metadata"
3
2
  require_relative "reqt"
4
3
  require_relative "biblio"
5
4
  require_relative "sections"
@@ -8,18 +7,6 @@ require "fileutils"
8
7
  module IsoDoc
9
8
  module Ogc
10
9
  module BaseConvert
11
- def metadata_init(lang, script, labels)
12
- @meta = Metadata.new(lang, script, labels)
13
- end
14
-
15
- def xref_init(lang, script, klass, labels, options)
16
- @xrefs = Xref.new(lang, script, klass, labels, options)
17
- end
18
-
19
- def fileloc(loc)
20
- File.join(File.dirname(__FILE__), loc)
21
- end
22
-
23
10
  def cleanup(docxml)
24
11
  requirement_table_cleanup(docxml)
25
12
  super
@@ -55,14 +42,6 @@ module IsoDoc
55
42
  docxml
56
43
  end
57
44
 
58
- def load_yaml(lang, script)
59
- y = if @i18nyaml then YAML.load_file(@i18nyaml)
60
- else
61
- YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
62
- end
63
- super.merge(y)
64
- end
65
-
66
45
  def example_parse(node, out)
67
46
  name = node.at(ns("./name"))
68
47
  example_name_parse(node, out, name) #if name
@@ -73,17 +52,14 @@ module IsoDoc
73
52
  end
74
53
 
75
54
  def example_name_parse(node, div, name)
76
- lbl = @xrefs.anchor(node['id'], :label, false)
77
55
  div.p **{ class: "SourceTitle", style: "text-align:center;" } do |p|
78
- lbl.nil? or p << l10n("#{@example_lbl} #{lbl}")
79
- name and !lbl.nil? and p << "&nbsp;&mdash; "
80
56
  name&.children&.each { |n| parse(n, p) }
81
57
  end
82
58
  end
83
59
 
84
60
  def middle_clause
85
- "//clause[parent::sections][not(xmlns:title = 'Scope' or "\
86
- "xmlns:title = 'Conformance')][not(descendant::terms)]"
61
+ "//clause[parent::sections][not(@type = 'scope' or "\
62
+ "@type = 'conformance')][not(descendant::terms)]"
87
63
  end
88
64
 
89
65
  def middle(isoxml, out)
@@ -1,4 +1,5 @@
1
1
  require_relative "base_convert"
2
+ require_relative "init"
2
3
  require "fileutils"
3
4
  require "isodoc"
4
5
  require_relative "metadata"
@@ -82,6 +83,7 @@ module IsoDoc
82
83
  end
83
84
 
84
85
  include BaseConvert
86
+ include Init
85
87
  end
86
88
  end
87
89
  end
@@ -1,4 +1,5 @@
1
1
  foreword: Preface
2
+ submitters: Submitters
2
3
  recommendationtest: Recommendation Test
3
4
  requirementtest: Requirement Test
4
5
  permissiontest: Permission Test
@@ -0,0 +1,10 @@
1
+ module IsoDoc
2
+ module Ogc
3
+ class I18n < IsoDoc::I18n
4
+ def load_yaml1(lang, script)
5
+ y = YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
6
+ super.merge(y)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,32 @@
1
+ require "isodoc"
2
+ require_relative "metadata"
3
+ require_relative "xref"
4
+ require_relative "i18n"
5
+
6
+ module IsoDoc
7
+ module Ogc
8
+ module Init
9
+ def metadata_init(lang, script, labels)
10
+ @meta = Metadata.new(lang, script, labels)
11
+ end
12
+
13
+ def xref_init(lang, script, klass, labels, options)
14
+ html = HtmlConvert.new(language: lang, script: script)
15
+ @xrefs = Xref.new(lang, script, html, labels, options)
16
+ end
17
+
18
+ def i18n_init(lang, script, i18nyaml = nil)
19
+ @i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
20
+ end
21
+
22
+ def fileloc(loc)
23
+ File.join(File.dirname(__FILE__), loc)
24
+ end
25
+
26
+ def submittingorgs_path
27
+ "//bibdata/contributor[role/@type = 'author']/organization/name"
28
+ end
29
+ end
30
+ end
31
+ end
32
+
@@ -34,7 +34,7 @@ module IsoDoc
34
34
  }
35
35
 
36
36
  class Metadata < IsoDoc::Metadata
37
- def initialize(lang, script, labels)
37
+ def initialize(lang, script, i18n)
38
38
  super
39
39
  end
40
40
 
@@ -1,7 +1,10 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:ogc="https://www.metanorma.org/ns/ogc" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java" version="1.0">
2
2
 
3
3
  <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
-
4
+
5
+ <xsl:param name="svg_images"/>
6
+ <xsl:variable name="images" select="document($svg_images)"/>
7
+
5
8
  <xsl:variable name="pageWidth" select="'210mm'"/>
6
9
  <xsl:variable name="pageHeight" select="'297mm'"/>
7
10
 
@@ -35,58 +38,31 @@
35
38
  <xsl:text>:</xsl:text>
36
39
  <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:copyright/ogc:from"/>
37
40
  </xsl:variable>
41
+
42
+ <xsl:variable name="color" select="'rgb(14, 26, 133)'"/>
38
43
 
39
44
  <xsl:variable name="contents">
40
45
  <contents>
41
46
 
42
-
43
47
  <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
44
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:abstract" mode="contents"/>
45
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1]" mode="contents">
46
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + 1"/>
47
- </xsl:apply-templates>
48
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword" mode="contents">
49
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ 1"/>
50
-
51
- </xsl:apply-templates>
52
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:introduction" mode="contents"/>
53
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name" mode="contents">
54
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + 1"/>
55
- </xsl:apply-templates>
56
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters" mode="contents">
57
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + count(/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name) + 1"/>
58
- </xsl:apply-templates>
59
-
60
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'submitters']" mode="contents">
61
- <xsl:with-param name="sectionNumSkew" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + count(/ogc:ogc-standard/ogc:preface/ogc:introduction) + count(/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name) + count(/ogc:ogc-standard/ogc:preface/ogc:submitters)"/>
62
- </xsl:apply-templates>
63
-
64
-
65
-
66
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']" mode="contents">
67
- <xsl:with-param name="sectionNum" select="'1'"/>
68
- </xsl:apply-templates>
69
-
70
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']" mode="contents">
71
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + 1"/>
72
- </xsl:apply-templates>
73
48
 
74
- <!-- Normative references -->
75
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']" mode="contents">
76
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + 1"/>
77
- </xsl:apply-templates>
49
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="contents"/>
78
50
 
79
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms" mode="contents"> <!-- Terms and definitions -->
80
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + count(/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']) + 1"/>
81
- </xsl:apply-templates>
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
+
55
+ <!-- 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"/>
82
57
 
58
+ <!-- Terms and definitions -->
59
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms" mode="contents"/>
83
60
 
84
- <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">
85
- <xsl:with-param name="sectionNumSkew" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + count(/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']) + count(/ogc:ogc-standard/ogc:sections/ogc:terms)"/>
86
- </xsl:apply-templates>
87
-
88
-
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"/>
62
+
89
63
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:annex" mode="contents"/>
64
+
65
+ <!-- Bibliography -->
90
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] -->
91
67
 
92
68
 
@@ -98,7 +74,7 @@
98
74
  </xsl:variable>
99
75
 
100
76
  <xsl:template match="/">
101
- <xsl:call-template name="namespaceCheck"/>
77
+ <xsl:call-template name="namespaceCheck"/>
102
78
  <fo:root font-family="Times New Roman, STIX2Math, HanSans" font-size="10.5pt" xml:lang="{$lang}">
103
79
  <fo:layout-master-set>
104
80
  <!-- Cover page -->
@@ -353,7 +329,7 @@
353
329
  </xsl:variable>
354
330
  <fo:block font-size="14pt" margin-top="2pt" margin-bottom="15.5pt"><xsl:value-of select="$title-toc"/></fo:block>
355
331
 
356
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true' and @level &lt;= 2]"><!-- skip clause from preface [not(@level = 2 and starts-with(@section, '0'))] -->
332
+ <xsl:for-each select="xalan:nodeset($contents)//item">
357
333
 
358
334
  <fo:block>
359
335
  <xsl:if test="@level = 1">
@@ -361,30 +337,23 @@
361
337
  </xsl:if>
362
338
  <fo:list-block>
363
339
  <xsl:attribute name="provisional-distance-between-starts">
364
- <xsl:choose>
365
- <!-- skip 0 section without subsections -->
366
- <xsl:when test="@section != '' and not(@display-section = 'false')">8mm</xsl:when>
340
+ <xsl:choose>
341
+ <xsl:when test="@section != ''">8mm</xsl:when>
367
342
  <xsl:otherwise>0mm</xsl:otherwise>
368
343
  </xsl:choose>
369
344
  </xsl:attribute>
370
345
  <fo:list-item>
371
346
  <fo:list-item-label end-indent="label-end()">
372
347
  <fo:block>
373
- <xsl:if test="@section and not(@display-section = 'false')"> <!-- output below -->
374
- <xsl:value-of select="@section"/><xsl:text>.</xsl:text>
375
- </xsl:if>
348
+ <xsl:value-of select="@section"/>
376
349
  </fo:block>
377
350
  </fo:list-item-label>
378
351
  <fo:list-item-body start-indent="body-start()">
379
352
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
380
353
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
381
- <xsl:if test="@section and @display-section = 'false' and not(@section = '0')">
382
- <xsl:value-of select="@section"/><xsl:text> </xsl:text>
383
- </xsl:if>
384
- <xsl:if test="@addon != ''">
385
- <xsl:text>(</xsl:text><xsl:value-of select="@addon"/><xsl:text>)</xsl:text>
386
- </xsl:if>
387
- <xsl:text> </xsl:text><xsl:value-of select="text()"/>
354
+
355
+ <xsl:apply-templates/>
356
+
388
357
  <fo:inline keep-together.within-line="always">
389
358
  <fo:leader leader-pattern="dots"/>
390
359
  <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
@@ -397,7 +366,7 @@
397
366
  </fo:block>
398
367
  </xsl:for-each>
399
368
 
400
- <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
369
+ <xsl:if test="//ogc:table[@id and ogc:name]">
401
370
  <fo:block font-size="12pt"> </fo:block>
402
371
  <fo:block font-size="12pt"> </fo:block>
403
372
  <xsl:variable name="title-list-tables">
@@ -406,15 +375,10 @@
406
375
  </xsl:call-template>
407
376
  </xsl:variable>
408
377
  <fo:block font-size="14pt" font-weight="bold" space-before="48pt" margin-bottom="15.5pt"><xsl:value-of select="$title-list-tables"/></fo:block>
409
- <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table']">
378
+ <xsl:for-each select="//ogc:table[@id and ogc:name]">
410
379
  <fo:block text-align-last="justify" margin-top="6pt">
411
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
412
- <xsl:value-of select="@section"/>
413
- <xsl:if test="text() != ''">
414
- <xsl:text> — </xsl:text>
415
- <xsl:value-of select="text()"/>
416
- </xsl:if>
417
- <xsl:text> </xsl:text>
380
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
381
+ <xsl:apply-templates select="ogc:name" mode="contents"/>
418
382
  <fo:inline keep-together.within-line="always">
419
383
  <fo:leader leader-pattern="dots"/>
420
384
  <fo:page-number-citation ref-id="{@id}"/>
@@ -424,7 +388,7 @@
424
388
  </xsl:for-each>
425
389
  </xsl:if>
426
390
 
427
- <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
391
+ <xsl:if test="//ogc:figure[@id and ogc:name]">
428
392
  <fo:block font-size="12pt"> </fo:block>
429
393
  <fo:block font-size="12pt"> </fo:block>
430
394
  <xsl:variable name="title-list-figures">
@@ -433,15 +397,32 @@
433
397
  </xsl:call-template>
434
398
  </xsl:variable>
435
399
  <fo:block font-size="14pt" font-weight="bold" space-before="48pt" margin-bottom="15.5pt"><xsl:value-of select="$title-list-figures"/></fo:block>
436
- <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
400
+ <xsl:for-each select="//ogc:figure[@id and ogc:name]">
401
+ <fo:block text-align-last="justify" margin-top="6pt">
402
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
403
+ <xsl:apply-templates select="ogc:name" mode="contents"/>
404
+ <fo:inline keep-together.within-line="always">
405
+ <fo:leader leader-pattern="dots"/>
406
+ <fo:page-number-citation ref-id="{@id}"/>
407
+ </fo:inline>
408
+ </fo:basic-link>
409
+ </fo:block>
410
+ </xsl:for-each>
411
+ </xsl:if>
412
+
413
+ <xsl:if test="//ogc:permission[@id and ogc:name] or //ogc:recommendation[@id and ogc:name] or //ogc:requirement[@id and ogc:name]">
414
+ <fo:block font-size="12pt"> </fo:block>
415
+ <fo:block font-size="12pt"> </fo:block>
416
+ <xsl:variable name="title-list-recommendations">
417
+ <xsl:call-template name="getTitle">
418
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
419
+ </xsl:call-template>
420
+ </xsl:variable>
421
+ <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]">
437
423
  <fo:block text-align-last="justify" margin-top="6pt">
438
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
439
- <xsl:value-of select="@section"/>
440
- <xsl:if test="text() != ''">
441
- <xsl:text> — </xsl:text>
442
- <xsl:value-of select="text()"/>
443
- </xsl:if>
444
- <xsl:text> </xsl:text>
424
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{ogc:name}">
425
+ <xsl:apply-templates select="ogc:name" mode="contents"/>
445
426
  <fo:inline keep-together.within-line="always">
446
427
  <fo:leader leader-pattern="dots"/>
447
428
  <fo:page-number-citation ref-id="{@id}"/>
@@ -451,30 +432,12 @@
451
432
  </xsl:for-each>
452
433
  </xsl:if>
453
434
 
435
+
454
436
  </fo:block-container>
455
437
 
456
-
457
438
  <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
458
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:abstract" mode="abstract"/>
459
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1]">
460
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + 1"/>
461
- </xsl:apply-templates>
462
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword" mode="preface">
463
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ 1"/>
464
- </xsl:apply-templates>
465
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:introduction" mode="introduction"/>
466
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name">
467
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + 1"/>
468
- </xsl:apply-templates>
469
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters">
470
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + count(/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name) + 1"/>
471
- </xsl:apply-templates>
472
-
473
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'submitters']">
474
- <xsl:with-param name="sectionNumSkew" select="count(/ogc:ogc-standard/ogc:preface/ogc:abstract) + count (/ogc:ogc-standard/ogc:bibdata/ogc:keyword[1])+ count(/ogc:ogc-standard/ogc:preface/ogc:foreword) + count(/ogc:ogc-standard/ogc:preface/ogc:introduction) + count(/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author'][1]/ogc:organization/ogc:name) + count(/ogc:ogc-standard/ogc:preface/ogc:submitters)"/>
475
- </xsl:apply-templates>
476
-
477
-
439
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/*" mode="preface"/>
440
+
478
441
  </fo:flow>
479
442
  </fo:page-sequence>
480
443
 
@@ -496,30 +459,21 @@
496
459
 
497
460
  <fo:block line-height="125%">
498
461
 
499
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']">
500
- <xsl:with-param name="sectionNum" select="'1'"/>
501
- </xsl:apply-templates>
462
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']"/>
502
463
 
503
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']">
504
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + 1"/>
505
- </xsl:apply-templates>
464
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']"/>
506
465
 
507
466
  <!-- Normative references -->
508
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']">
509
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + 1"/>
510
- </xsl:apply-templates>
511
-
512
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms"> <!-- Terms and definitions -->
513
- <xsl:with-param name="sectionNum" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + count(/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']) + 1"/>
514
- </xsl:apply-templates>
515
-
516
-
517
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/*[local-name() != 'terms' and not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]">
518
- <xsl:with-param name="sectionNumSkew" select="count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='_scope']) + count(/ogc:ogc-standard/ogc:sections/ogc:clause[@id='conformance' or @id='_conformance']) + count(/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']) + count(/ogc:ogc-standard/ogc:sections/ogc:terms)"/>
519
- </xsl:apply-templates>
467
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id = '_normative_references' or @id = '_references' or @id = 'references']"/>
468
+
469
+ <!-- Terms and definitions -->
470
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:sections/ogc:terms"/>
520
471
 
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')]"/>
521
473
 
522
474
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:annex"/>
475
+
476
+ <!-- Bibliography -->
523
477
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:bibliography/ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']"/> <!-- [position() &gt; 1] -->
524
478
 
525
479
  </fo:block>
@@ -531,302 +485,57 @@
531
485
  </fo:root>
532
486
  </xsl:template>
533
487
 
534
- <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
535
- <xsl:template match="node()">
536
- <xsl:param name="sectionNum"/>
537
- <xsl:param name="sectionNumSkew"/>
538
- <xsl:apply-templates>
539
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
540
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
541
- </xsl:apply-templates>
488
+ <xsl:template match="node()">
489
+ <xsl:apply-templates/>
542
490
  </xsl:template>
543
491
 
544
492
  <!-- ============================= -->
545
493
  <!-- CONTENTS -->
546
494
  <!-- ============================= -->
547
- <xsl:template match="node()" mode="contents">
548
- <xsl:param name="sectionNum"/>
549
- <xsl:param name="sectionNumSkew"/>
550
- <xsl:apply-templates mode="contents">
551
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
552
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
553
- </xsl:apply-templates>
495
+ <xsl:template match="node()" mode="contents">
496
+ <xsl:apply-templates mode="contents"/>
554
497
  </xsl:template>
555
498
 
556
-
557
- <!-- calculate main section number (1,2,3) and pass it deep into templates -->
558
- <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
559
- <xsl:template match="ogc:ogc-standard/ogc:sections/*" mode="contents">
560
- <xsl:param name="sectionNum"/>
561
- <xsl:param name="sectionNumSkew" select="0"/>
562
- <xsl:variable name="sectionNum_">
563
- <xsl:choose>
564
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
565
- <xsl:when test="$sectionNumSkew != 0">
566
- <xsl:variable name="number"><xsl:number count="ogc:sections/ogc:clause[not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]"/></xsl:variable> <!-- * ogc:sections/ogc:clause | ogc:sections/ogc:terms -->
567
- <xsl:value-of select="$number + $sectionNumSkew"/>
568
- </xsl:when>
569
- <xsl:otherwise>
570
- <xsl:number count="*"/>
571
- </xsl:otherwise>
572
- </xsl:choose>
573
- </xsl:variable>
574
- <xsl:apply-templates mode="contents">
575
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
576
- </xsl:apply-templates>
577
- </xsl:template>
578
- <xsl:template match="ogc:ogc-standard/ogc:sections/ogc:terms" mode="contents">
579
- <xsl:param name="sectionNum"/>
580
- <xsl:param name="sectionNumSkew" select="0"/>
581
- <xsl:variable name="sectionNum_">
582
- <xsl:choose>
583
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
584
- <xsl:when test="$sectionNumSkew != 0">
585
- <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!-- ogc:sections/ogc:clause | ogc:sections/ogc:terms -->
586
- <xsl:value-of select="$number + $sectionNumSkew"/>
587
- </xsl:when>
588
- <xsl:otherwise>
589
- <xsl:number count="*"/>
590
- </xsl:otherwise>
591
- </xsl:choose>
592
- </xsl:variable>
593
- <xsl:apply-templates mode="contents">
594
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
595
- </xsl:apply-templates>
596
- </xsl:template>
597
-
598
- <xsl:template match="ogc:ogc-standard/ogc:preface/ogc:clause" mode="contents">
599
- <xsl:param name="sectionNum"/>
600
- <xsl:param name="sectionNumSkew" select="0"/>
601
- <xsl:variable name="sectionNum_">
602
- <xsl:choose>
603
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
604
- <xsl:when test="$sectionNumSkew != 0">
605
- <xsl:variable name="number"><xsl:number count="ogc:clause"/></xsl:variable>
606
- <xsl:value-of select="$number + $sectionNumSkew"/>
607
- </xsl:when>
608
- <xsl:otherwise>
609
- <xsl:number count="*"/>
610
- </xsl:otherwise>
611
- </xsl:choose>
612
- </xsl:variable>
613
- <xsl:apply-templates mode="contents">
614
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
615
- </xsl:apply-templates>
616
- </xsl:template>
617
-
618
- <!-- Any node with title element - clause, definition, annex,... -->
619
- <xsl:template match="ogc:title | ogc:preferred" mode="contents">
620
- <xsl:param name="sectionNum"/>
621
- <xsl:variable name="id">
622
- <xsl:call-template name="getId"/>
623
- </xsl:variable>
624
-
499
+ <!-- element with title -->
500
+ <xsl:template match="*[ogc:title]" mode="contents">
625
501
  <xsl:variable name="level">
626
- <xsl:call-template name="getLevel"/>
627
- </xsl:variable>
628
-
629
- <xsl:variable name="section">
630
- <xsl:call-template name="getSection">
631
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
502
+ <xsl:call-template name="getLevel">
503
+ <xsl:with-param name="depth" select="ogc:title/@depth"/>
632
504
  </xsl:call-template>
633
505
  </xsl:variable>
634
506
 
635
507
  <xsl:variable name="display">
636
508
  <xsl:choose>
637
- <xsl:when test="ancestor::ogc:bibitem">false</xsl:when>
638
- <xsl:when test="ancestor::ogc:term">false</xsl:when>
639
- <xsl:when test="ancestor::ogc:annex and $level &gt;= 3">false</xsl:when>
640
- <xsl:when test="$level &lt;= 3">true</xsl:when>
641
- <xsl:otherwise>false</xsl:otherwise>
642
- </xsl:choose>
643
- </xsl:variable>
644
-
645
- <xsl:variable name="display-section">
646
- <xsl:choose>
647
- <xsl:when test="ancestor::ogc:annex and $level &gt;= 2">true</xsl:when>
648
- <xsl:when test="ancestor::ogc:annex">false</xsl:when>
649
- <xsl:when test="$section = '0'">false</xsl:when>
509
+ <xsl:when test="ancestor-or-self::ogc:bibitem">false</xsl:when>
510
+ <xsl:when test="ancestor-or-self::ogc:term">false</xsl:when>
511
+ <xsl:when test="$level &gt;= 3">false</xsl:when>
650
512
  <xsl:otherwise>true</xsl:otherwise>
651
513
  </xsl:choose>
652
514
  </xsl:variable>
653
515
 
654
- <xsl:variable name="type">
655
- <xsl:value-of select="local-name(..)"/>
656
- </xsl:variable>
657
-
658
- <xsl:variable name="root">
659
- <xsl:choose>
660
- <xsl:when test="ancestor::ogc:annex">annex</xsl:when>
661
- <xsl:when test="ancestor::ogc:clause">clause</xsl:when>
662
- <xsl:when test="ancestor::ogc:terms">terms</xsl:when>
663
- </xsl:choose>
664
- </xsl:variable>
665
-
666
- <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
667
- <xsl:attribute name="addon">
668
- <xsl:if test="local-name(..) = 'annex'"><xsl:value-of select="../@obligation"/></xsl:if>
669
- </xsl:attribute>
670
- <xsl:apply-templates/>
671
- </item>
672
516
 
673
- <xsl:apply-templates mode="contents">
674
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
675
- </xsl:apply-templates>
517
+ <xsl:if test="$display = 'true'">
676
518
 
677
- </xsl:template>
678
-
679
- <xsl:template match="ogc:ogc-standard/ogc:preface/*[not(local-name() = 'clause')]" mode="contents">
680
- <xsl:param name="sectionNum" select="'1'"/>
681
- <xsl:variable name="section">
682
- <xsl:number format="i" value="$sectionNum"/>
683
- </xsl:variable>
684
- <xsl:variable name="id">
685
- <xsl:choose>
686
- <xsl:when test="@id">
687
- <xsl:value-of select="@id"/>
688
- </xsl:when>
689
- <xsl:otherwise>
690
- <xsl:value-of select="local-name()"/>
691
- </xsl:otherwise>
692
- </xsl:choose>
693
- </xsl:variable>
694
- <xsl:if test="not(ogc:title)">
695
- <item id="{$id}" level="1" section="{$section}" display-section="true" display="true" type="abstract" root="preface">
696
- <xsl:if test="local-name() = 'foreword'">
697
- <xsl:attribute name="display">false</xsl:attribute>
698
- </xsl:if>
699
- <xsl:choose>
700
- <xsl:when test="not(ogc:title)">
701
- <xsl:variable name="name" select="local-name()"/>
702
- <xsl:call-template name="capitalize">
703
- <xsl:with-param name="str" select="$name"/>
704
- </xsl:call-template>
705
- </xsl:when>
706
- <xsl:otherwise>
707
- <xsl:value-of select="ogc:title"/>
708
- </xsl:otherwise>
709
- </xsl:choose>
710
- </item>
711
- </xsl:if>
712
- <xsl:apply-templates mode="contents">
713
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
714
- </xsl:apply-templates>
715
- </xsl:template>
716
-
717
- <!-- Keywords -->
718
- <xsl:template match="/ogc:ogc-standard/ogc:bibdata/ogc:keyword" mode="contents">
719
- <xsl:param name="sectionNum" select="'1'"/>
720
- <xsl:variable name="section">
721
- <xsl:number format="i" value="$sectionNum"/>
722
- </xsl:variable>
723
- <item id="keywords" level="1" section="{$section}" display-section="true" display="true" type="abstract" root="preface">
724
- <xsl:variable name="title-keywords">
725
- <xsl:call-template name="getTitle">
726
- <xsl:with-param name="name" select="'title-keywords'"/>
727
- </xsl:call-template>
519
+ <xsl:variable name="section">
520
+ <xsl:call-template name="getSection"/>
728
521
  </xsl:variable>
729
- <xsl:value-of select="$title-keywords"/>
730
- </item>
731
- </xsl:template>
732
- <!-- Submitting Organizations -->
733
- <xsl:template match="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:organization/ogc:name" mode="contents">
734
- <xsl:param name="sectionNum" select="'1'"/>
735
- <xsl:variable name="section">
736
- <xsl:number format="i" value="$sectionNum"/>
737
- </xsl:variable>
738
- <item id="submitting_orgs" level="1" section="{$section}" display-section="true" display="true" type="abstract" root="preface">
739
- <xsl:variable name="title-submitting-organizations">
740
- <xsl:call-template name="getTitle">
741
- <xsl:with-param name="name" select="'title-submitting-organizations'"/>
742
- </xsl:call-template>
522
+
523
+ <xsl:variable name="title">
524
+ <xsl:call-template name="getName"/>
743
525
  </xsl:variable>
744
- <xsl:value-of select="$title-submitting-organizations"/>
745
- </item>
746
- </xsl:template>
747
-
748
- <xsl:template match="ogc:figure" mode="contents">
749
- <xsl:param name="sectionNum"/>
750
- <item level="" id="{@id}" type="figure">
751
- <xsl:attribute name="section">
752
- <xsl:variable name="title-figure">
753
- <xsl:call-template name="getTitle">
754
- <xsl:with-param name="name" select="'title-figure'"/>
755
- </xsl:call-template>
756
- </xsl:variable>
757
- <xsl:value-of select="$title-figure"/>
758
- <xsl:choose>
759
- <xsl:when test="ancestor::ogc:annex">
760
- <xsl:choose>
761
- <xsl:when test="count(//ogc:annex) = 1">
762
- <xsl:value-of select="/ogc:nist-standard/ogc:bibdata/ogc:ext/ogc:structuredidentifier/ogc:annexid"/><xsl:number format="-1" level="any" count="ogc:annex//ogc:figure"/>
763
- </xsl:when>
764
- <xsl:otherwise>
765
- <xsl:number format="A.1-1" level="multiple" count="ogc:annex | ogc:figure"/>
766
- </xsl:otherwise>
767
- </xsl:choose>
768
- </xsl:when>
769
- <xsl:when test="ancestor::ogc:figure">
770
- <xsl:for-each select="parent::*[1]">
771
- <xsl:number format="1" level="any" count="ogc:figure[not(parent::ogc:figure)]"/>
772
- </xsl:for-each>
773
- <xsl:number format="-a" count="ogc:figure"/>
774
- </xsl:when>
775
- <xsl:otherwise>
776
- <xsl:number format="1" level="any" count="ogc:figure[not(parent::ogc:figure)] | ogc:sourcecode[not(@unnumbered = 'true') and not(ancestor::ogc:example)]"/>
777
- <!-- <xsl:number format="1.1-1" level="multiple" count="ogc:annex | ogc:figure"/> -->
778
- </xsl:otherwise>
779
- </xsl:choose>
780
- </xsl:attribute>
781
- <xsl:value-of select="ogc:name"/>
782
- </item>
783
- </xsl:template>
784
-
785
-
786
- <xsl:template match="ogc:table[not(@unnumbered='true')]" mode="contents">
787
- <xsl:param name="sectionNum"/>
788
- <xsl:variable name="annex-id" select="ancestor::ogc:annex/@id"/>
789
- <item level="" id="{@id}" display="false" type="table">
790
- <xsl:attribute name="section">
791
- <xsl:variable name="title-table">
792
- <xsl:call-template name="getTitle">
793
- <xsl:with-param name="name" select="'title-table'"/>
794
- </xsl:call-template>
795
- </xsl:variable>
796
- <xsl:value-of select="$title-table"/>
797
- <xsl:choose>
798
- <xsl:when test="ancestor::*[local-name()='executivesummary']">
799
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered='true')]"/>
800
- </xsl:when>
801
- <xsl:when test="ancestor::*[local-name()='annex']">
802
- <xsl:number format="A-" count="ogc:annex"/>
803
- <xsl:number format="1" level="any" count="ogc:table[ancestor::ogc:annex[@id = $annex-id]][not(@unnumbered='true')]"/>
804
- </xsl:when>
805
- <xsl:otherwise>
806
- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table'][not(@unnumbered='true')] | *[local-name()='preface']//*[local-name()='table'][not(@unnumbered='true')]"/>
807
- </xsl:otherwise>
808
- </xsl:choose>
809
- </xsl:attribute>
810
- <xsl:value-of select="ogc:name/text()"/>
811
- </item>
812
- </xsl:template>
813
-
814
-
815
-
816
- <xsl:template match="ogc:formula" mode="contents">
817
- <item level="" id="{@id}" display="false">
818
- <xsl:attribute name="section">
819
- <xsl:variable name="title-formula">
820
- <xsl:call-template name="getTitle">
821
- <xsl:with-param name="name" select="'title-formula'"/>
822
- </xsl:call-template>
823
- </xsl:variable>
824
- <xsl:value-of select="$title-formula"/><xsl:number format="(A.1)" level="multiple" count="ogc:annex | ogc:formula"/>
825
- </xsl:attribute>
826
- </item>
526
+
527
+ <xsl:variable name="type">
528
+ <xsl:value-of select="local-name()"/>
529
+ </xsl:variable>
530
+
531
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}">
532
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
533
+ </item>
534
+ <xsl:apply-templates mode="contents"/>
535
+ </xsl:if>
536
+
827
537
  </xsl:template>
828
538
 
829
- <xsl:template match="ogc:fn" mode="contents"/>
830
539
  <!-- ============================= -->
831
540
  <!-- ============================= -->
832
541
 
@@ -922,200 +631,40 @@
922
631
  </fo:block>
923
632
  </xsl:template>
924
633
 
925
-
926
- <!-- Introduction -->
927
- <xsl:template match="ogc:ogc-standard/ogc:preface/ogc:introduction" mode="introduction">
928
- <fo:block break-after="page"/>
929
- <xsl:apply-templates select="current()"/>
930
- </xsl:template>
931
- <!-- Abstract -->
932
- <xsl:template match="ogc:ogc-standard/ogc:preface/ogc:abstract" mode="abstract">
933
- <fo:block break-after="page"/>
934
- <xsl:apply-templates select="current()"/>
935
- </xsl:template>
936
- <!-- Preface -->
937
- <xsl:template match="ogc:ogc-standard/ogc:preface/ogc:foreword" mode="preface">
938
- <xsl:param name="sectionNum"/>
939
- <fo:block break-after="page"/>
940
- <xsl:apply-templates select="current()">
941
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
942
- </xsl:apply-templates>
943
- </xsl:template>
944
- <!-- Abstract, Preface -->
945
- <xsl:template match="ogc:ogc-standard/ogc:preface/*">
946
- <xsl:param name="sectionNum" select="'1'"/>
947
- <xsl:if test="not(ogc:title)">
948
- <xsl:variable name="id">
949
- <xsl:choose>
950
- <xsl:when test="@id">
951
- <xsl:value-of select="@id"/>
952
- </xsl:when>
953
- <xsl:otherwise>
954
- <xsl:value-of select="local-name()"/>
955
- </xsl:otherwise>
956
- </xsl:choose>
957
- </xsl:variable>
958
- <fo:block id="{$id}" font-size="13pt" font-weight="bold" margin-bottom="12pt" color="rgb(14, 26, 133)">
959
- <xsl:number format="i." value="$sectionNum"/><fo:inline padding-right="3mm"> </fo:inline>
960
- <xsl:variable name="name" select="local-name()"/>
961
- <xsl:call-template name="capitalize">
962
- <xsl:with-param name="str" select="$name"/>
963
- </xsl:call-template>
964
- </fo:block>
965
- </xsl:if>
966
- <xsl:apply-templates>
967
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
968
- </xsl:apply-templates>
969
- </xsl:template>
970
- <!-- Keywords -->
971
- <xsl:template match="/ogc:ogc-standard/ogc:bibdata/ogc:keyword">
972
- <xsl:param name="sectionNum" select="'1'"/>
973
- <fo:block id="keywords" font-size="13pt" font-weight="bold" margin-top="13.5pt" margin-bottom="12pt" color="rgb(14, 26, 133)">
974
- <xsl:number format="i." value="$sectionNum"/><fo:inline padding-right="2mm"> </fo:inline>
975
- <xsl:variable name="title-keywords">
976
- <xsl:call-template name="getTitle">
977
- <xsl:with-param name="name" select="'title-keywords'"/>
978
- </xsl:call-template>
979
- </xsl:variable>
980
- <xsl:value-of select="$title-keywords"/>
981
- </fo:block>
982
- <fo:block margin-bottom="12pt">The following are keywords to be used by search engines and document catalogues.</fo:block>
983
- <fo:block margin-bottom="12pt">
984
- <xsl:call-template name="insertKeywords">
985
- <xsl:with-param name="sorting">no</xsl:with-param>
986
- <xsl:with-param name="charAtEnd"/>
987
- </xsl:call-template>
988
- <!-- <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:keyword">
989
- <xsl:value-of select="."/>
990
- <xsl:if test="position() != last()">, </xsl:if>
991
- </xsl:for-each> -->
992
- </fo:block>
993
- </xsl:template>
994
- <!-- Submitting Organizations -->
995
- <xsl:template match="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:organization/ogc:name">
996
- <xsl:param name="sectionNum" select="'1'"/>
997
- <fo:block id="submitting_orgs" font-size="13pt" font-weight="bold" color="rgb(14, 26, 133)" margin-top="13.5pt" margin-bottom="12pt">
998
- <xsl:number format="i." value="$sectionNum"/><fo:inline padding-right="3mm"> </fo:inline>
999
- <xsl:variable name="title-submitting-organizations">
1000
- <xsl:call-template name="getTitle">
1001
- <xsl:with-param name="name" select="'title-submitting-organizations'"/>
1002
- </xsl:call-template>
1003
- </xsl:variable>
1004
- <xsl:value-of select="$title-submitting-organizations"/>
1005
- </fo:block>
1006
- <fo:block margin-bottom="12pt">The following organizations submitted this Document to the Open Geospatial Consortium (OGC):</fo:block>
1007
- <fo:list-block provisional-distance-between-starts="6.5mm" margin-bottom="12pt" line-height="115%">
1008
- <xsl:for-each select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type='author']/ogc:organization/ogc:name">
1009
- <fo:list-item>
1010
- <fo:list-item-label end-indent="label-end()">
1011
- <fo:block>—</fo:block>
1012
- </fo:list-item-label>
1013
- <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1014
- <fo:block>
1015
- <xsl:apply-templates/>
1016
- </fo:block>
1017
- </fo:list-item-body>
1018
- </fo:list-item>
1019
- </xsl:for-each>
1020
- </fo:list-block>
1021
- </xsl:template>
1022
-
1023
-
1024
- <!-- clause, terms, clause, ...-->
1025
- <xsl:template match="ogc:ogc-standard/ogc:sections/*">
1026
- <xsl:param name="sectionNum"/>
1027
- <xsl:param name="sectionNumSkew" select="0"/>
634
+ <xsl:template match="/*/*[local-name() = 'preface']/*" priority="3">
1028
635
  <fo:block>
1029
- <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 -->
1030
- <xsl:if test="$pos &gt;= 2">
1031
- <xsl:attribute name="space-before">18pt</xsl:attribute>
1032
- </xsl:if>
1033
- <xsl:variable name="sectionNum_">
1034
- <xsl:choose>
1035
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1036
- <xsl:when test="$sectionNumSkew != 0">
1037
- <xsl:variable name="number"><xsl:number count="ogc:sections/ogc:clause[not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]"/></xsl:variable> <!-- | ogc:sections/ogc:terms -->
1038
- <xsl:value-of select="$number + $sectionNumSkew"/>
1039
- </xsl:when>
1040
- <xsl:otherwise>
1041
- <xsl:number count="*"/>
1042
- </xsl:otherwise>
1043
- </xsl:choose>
1044
- </xsl:variable>
1045
- <xsl:if test="not(ogc:title)">
1046
- <fo:block margin-top="3pt" margin-bottom="12pt">
1047
- <xsl:value-of select="$sectionNum_"/><xsl:number format=".1 " level="multiple" count="ogc:clause[not(@id='_scope') and not(@id='conformance') and not(@id='_conformance')]"/>
1048
- </fo:block>
1049
- </xsl:if>
1050
- <xsl:apply-templates>
1051
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
1052
- </xsl:apply-templates>
636
+ <xsl:call-template name="setId"/>
637
+ <xsl:apply-templates/>
1053
638
  </fo:block>
1054
639
  </xsl:template>
1055
640
 
1056
- <xsl:template match="ogc:ogc-standard/ogc:preface/ogc:clause">
1057
- <xsl:param name="sectionNum"/>
1058
- <xsl:param name="sectionNumSkew" select="0"/>
1059
- <xsl:variable name="sectionNum_">
1060
- <xsl:choose>
1061
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1062
- <xsl:when test="$sectionNumSkew != 0">
1063
- <xsl:variable name="number"><xsl:number count="ogc:clause"/></xsl:variable>
1064
- <xsl:value-of select="$number + $sectionNumSkew"/>
1065
- </xsl:when>
1066
- <xsl:otherwise>
1067
- <xsl:number count="*"/>
1068
- </xsl:otherwise>
1069
- </xsl:choose>
1070
- </xsl:variable>
1071
- <xsl:apply-templates>
1072
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
1073
- </xsl:apply-templates>
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()"/>
1074
646
  </xsl:template>
647
+
1075
648
 
1076
649
 
1077
- <xsl:template match="ogc:clause//ogc:clause[not(ogc:title)]">
1078
- <xsl:param name="sectionNum"/>
1079
- <xsl:variable name="section">
1080
- <xsl:call-template name="getSection">
1081
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1082
- </xsl:call-template>
1083
- </xsl:variable>
1084
-
1085
- <fo:block margin-top="3pt">
1086
- <fo:inline font-weight="bold" padding-right="3mm">
1087
- <xsl:value-of select="$section"/>
1088
- </fo:inline>
1089
- <xsl:apply-templates>
1090
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1091
- <xsl:with-param name="inline" select="'true'"/>
1092
- </xsl:apply-templates>
650
+
651
+
652
+ <!-- ====== -->
653
+ <!-- title -->
654
+ <!-- ====== -->
655
+
656
+ <xsl:template match="ogc:annex/ogc:title">
657
+ <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}">
658
+ <xsl:apply-templates/>
1093
659
  </fo:block>
1094
660
  </xsl:template>
1095
661
 
1096
-
1097
662
  <xsl:template match="ogc:title">
1098
- <xsl:param name="sectionNum"/>
1099
-
1100
- <xsl:variable name="parent-name" select="local-name(..)"/>
1101
- <xsl:variable name="references_num_current">
1102
- <xsl:number level="any" count="ogc:references"/>
1103
- </xsl:variable>
1104
-
1105
- <xsl:variable name="id">
1106
- <xsl:call-template name="getId"/>
1107
- </xsl:variable>
1108
663
 
1109
664
  <xsl:variable name="level">
1110
665
  <xsl:call-template name="getLevel"/>
1111
666
  </xsl:variable>
1112
667
 
1113
- <xsl:variable name="section">
1114
- <xsl:call-template name="getSection">
1115
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1116
- </xsl:call-template>
1117
- </xsl:variable>
1118
-
1119
668
  <xsl:variable name="font-size">
1120
669
  <xsl:choose>
1121
670
  <xsl:when test="ancestor::ogc:preface and $level &gt;= 2">12pt</xsl:when>
@@ -1135,59 +684,19 @@
1135
684
  </xsl:choose>
1136
685
  </xsl:variable>
1137
686
 
1138
- <xsl:variable name="color" select="'rgb(14, 26, 133)'"/>
1139
-
1140
- <xsl:choose>
1141
- <xsl:when test="$parent-name = 'annex'">
1142
- <fo:block id="{$id}" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}">
1143
- <xsl:value-of select="$section"/>
1144
- <xsl:if test=" ../@obligation">
1145
- <xsl:value-of select="$linebreak"/>
1146
- <fo:inline font-weight="normal">(<xsl:value-of select="../@obligation"/>)</fo:inline>
1147
- </xsl:if>
1148
- <xsl:value-of select="$linebreak"/>
1149
- <xsl:apply-templates/>
1150
- </fo:block>
1151
- </xsl:when>
1152
- <xsl:otherwise>
1153
- <xsl:element name="{$element-name}">
1154
- <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
1155
- <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
1156
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1157
- <xsl:attribute name="space-before">13.5pt</xsl:attribute>
1158
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1159
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1160
- <xsl:attribute name="color"><xsl:value-of select="$color"/></xsl:attribute>
1161
- <xsl:if test="$section != ''">
1162
- <xsl:if test="$section != '0'">
1163
- <xsl:value-of select="$section"/><xsl:text>.</xsl:text>
1164
- <xsl:choose>
1165
- <xsl:when test="$level &gt;= 5"/>
1166
- <xsl:when test="$level &gt;= 4">
1167
- <fo:inline padding-right="4mm"> </fo:inline>
1168
- </xsl:when>
1169
- <xsl:when test="$level &gt;= 3 and ancestor::ogc:terms">
1170
- <fo:inline padding-right="2mm"> </fo:inline>
1171
- </xsl:when>
1172
- <xsl:when test="$level &gt;= 2">
1173
- <fo:inline padding-right="3mm"> </fo:inline>
1174
- </xsl:when>
1175
- <xsl:when test="$level = 1">
1176
- <fo:inline padding-right="3mm"> </fo:inline>
1177
- </xsl:when>
1178
- <xsl:otherwise>
1179
- <fo:inline padding-right="1mm"> </fo:inline>
1180
- </xsl:otherwise>
1181
- </xsl:choose>
1182
- </xsl:if>
1183
- </xsl:if>
1184
- <xsl:apply-templates/>
1185
- </xsl:element>
1186
- </xsl:otherwise>
1187
- </xsl:choose>
1188
-
687
+ <xsl:element name="{$element-name}">
688
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
689
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
690
+ <xsl:attribute name="space-before">13.5pt</xsl:attribute>
691
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
692
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
693
+ <xsl:attribute name="color"><xsl:value-of select="$color"/></xsl:attribute>
694
+ <xsl:apply-templates/>
695
+ </xsl:element>
696
+
1189
697
  </xsl:template>
1190
-
698
+ <!-- ====== -->
699
+ <!-- ====== -->
1191
700
 
1192
701
  <xsl:template match="ogc:p">
1193
702
  <xsl:param name="inline" select="'false'"/>
@@ -1241,7 +750,7 @@
1241
750
  <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
1242
751
  </fn>
1243
752
  -->
1244
- <xsl:template match="ogc:title/ogc:fn | ogc:p/ogc:fn[not(ancestor::ogc:table)] | ogc:p/*/ogc:fn[not(ancestor::ogc:table)] | ogc:sourcecode/ogc:fn[not(ancestor::ogc:table)]" priority="2">
753
+ <xsl:template match="ogc:title//ogc:fn | ogc:name//ogc:fn | ogc:p/ogc:fn[not(ancestor::ogc:table)] | ogc:p/*/ogc:fn[not(ancestor::ogc:table)] | ogc:sourcecode/ogc:fn[not(ancestor::ogc:table)]" priority="2">
1245
754
  <fo:footnote keep-with-previous.within-line="always">
1246
755
  <xsl:variable name="number" select="@reference"/>
1247
756
 
@@ -1269,75 +778,7 @@
1269
778
  </fo:block>
1270
779
  </xsl:template>
1271
780
 
1272
- <xsl:template match="ogc:review">
1273
- <!-- comment 2019-11-29 -->
1274
- <!-- <fo:block font-weight="bold">Review:</fo:block>
1275
- <xsl:apply-templates /> -->
1276
- </xsl:template>
1277
-
1278
- <xsl:template match="text()">
1279
- <xsl:value-of select="."/>
1280
- </xsl:template>
1281
-
1282
-
1283
- <xsl:template match="ogc:image"> <!-- only for without outer figure -->
1284
- <fo:block margin-top="12pt" margin-bottom="6pt">
1285
- <fo:external-graphic src="{@src}" width="100%" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/> <!-- content-width="75%" -->
1286
- </fo:block>
1287
- </xsl:template>
1288
781
 
1289
- <xsl:template match="ogc:figure">
1290
- <fo:block-container id="{@id}">
1291
- <fo:block>
1292
- <xsl:apply-templates/>
1293
- </fo:block>
1294
- <xsl:call-template name="fn_display_figure"/>
1295
- <xsl:for-each select="ogc:note//ogc:p">
1296
- <xsl:call-template name="note"/>
1297
- </xsl:for-each>
1298
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-top="12pt" margin-bottom="6pt" keep-with-previous="always">
1299
- <xsl:variable name="title-figure">
1300
- <xsl:call-template name="getTitle">
1301
- <xsl:with-param name="name" select="'title-figure'"/>
1302
- </xsl:call-template>
1303
- </xsl:variable>
1304
- <xsl:choose>
1305
- <xsl:when test="ancestor::ogc:annex">
1306
- <xsl:choose>
1307
- <xsl:when test="local-name(..) = 'figure'">
1308
- <xsl:number format="a) "/>
1309
- </xsl:when>
1310
- <xsl:otherwise>
1311
- <xsl:value-of select="$title-figure"/><xsl:number format="A.1-1" level="multiple" count="ogc:annex | ogc:figure"/>
1312
- </xsl:otherwise>
1313
- </xsl:choose>
1314
-
1315
- </xsl:when>
1316
- <xsl:otherwise>
1317
- <xsl:value-of select="$title-figure"/><xsl:number format="1" level="any" count="ogc:sourcecode[not(@unnumbered='true') and not(ancestor::ogc:example)] | ogc:figure"/>
1318
- </xsl:otherwise>
1319
- </xsl:choose>
1320
- <xsl:if test="ogc:name">
1321
- <xsl:if test="not(local-name(..) = 'figure')">
1322
- <xsl:text> — </xsl:text>
1323
- </xsl:if>
1324
- <xsl:value-of select="ogc:name"/>
1325
- </xsl:if>
1326
- </fo:block>
1327
- </fo:block-container>
1328
- </xsl:template>
1329
-
1330
- <xsl:template match="ogc:figure/ogc:name"/>
1331
- <xsl:template match="ogc:figure/ogc:fn"/>
1332
- <xsl:template match="ogc:figure/ogc:note"/>
1333
-
1334
-
1335
- <xsl:template match="ogc:figure/ogc:image">
1336
- <fo:block text-align="center">
1337
- <fo:external-graphic src="{@src}" width="100%" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/> <!-- content-width="75%" -->
1338
- </fo:block>
1339
- </xsl:template>
1340
-
1341
782
 
1342
783
  <xsl:template match="ogc:bibitem">
1343
784
  <fo:block id="{@id}" margin-bottom="12pt" start-indent="12mm" text-indent="-12mm" line-height="115%">
@@ -1384,7 +825,7 @@
1384
825
  </xsl:template>
1385
826
 
1386
827
 
1387
- <xsl:template match="ogc:bibitem/ogc:note">
828
+ <xsl:template match="ogc:bibitem/ogc:note" priority="2">
1388
829
  <fo:footnote>
1389
830
  <xsl:variable name="number">
1390
831
  <xsl:choose>
@@ -1427,7 +868,7 @@
1427
868
  </xsl:template>
1428
869
 
1429
870
  <xsl:template match="ogc:li">
1430
- <fo:list-item>
871
+ <fo:list-item id="{@id}">
1431
872
  <fo:list-item-label end-indent="label-end()">
1432
873
  <fo:block>
1433
874
  <xsl:choose>
@@ -1456,36 +897,28 @@
1456
897
  </fo:block>
1457
898
  </fo:list-item-label>
1458
899
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1459
- <xsl:apply-templates/>
900
+ <fo:block>
901
+ <xsl:apply-templates/>
902
+ </fo:block>
1460
903
  </fo:list-item-body>
1461
904
  </fo:list-item>
1462
905
  </xsl:template>
1463
906
 
1464
- <xsl:template match="ogc:ul/ogc:note | ogc:ol/ogc:note">
907
+ <xsl:template match="ogc:ul/ogc:note | ogc:ol/ogc:note" priority="2">
1465
908
  <fo:list-item font-size="10pt">
1466
909
  <fo:list-item-label><fo:block/></fo:list-item-label>
1467
910
  <fo:list-item-body>
1468
- <xsl:apply-templates/>
911
+ <fo:block>
912
+ <xsl:apply-templates select="ogc:name" mode="presentation"/>
913
+ <xsl:apply-templates/>
914
+ </fo:block>
1469
915
  </fo:list-item-body>
1470
916
  </fo:list-item>
1471
917
  </xsl:template>
1472
918
 
1473
- <xsl:template match="ogc:term">
1474
- <xsl:param name="sectionNum"/>
1475
- <fo:block id="{@id}">
1476
- <xsl:apply-templates>
1477
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1478
- </xsl:apply-templates>
1479
- </fo:block>
1480
- </xsl:template>
919
+
1481
920
 
1482
- <xsl:template match="ogc:preferred">
1483
- <xsl:param name="sectionNum"/>
1484
- <xsl:variable name="section">
1485
- <xsl:call-template name="getSection">
1486
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1487
- </xsl:call-template>
1488
- </xsl:variable>
921
+ <xsl:template match="ogc:preferred">
1489
922
  <xsl:variable name="level">
1490
923
  <xsl:call-template name="getLevel"/>
1491
924
  </xsl:variable>
@@ -1497,9 +930,7 @@
1497
930
  </xsl:variable>
1498
931
  <fo:block font-size="{$font-size}">
1499
932
  <fo:block font-weight="bold" keep-with-next="always">
1500
- <fo:inline>
1501
- <xsl:value-of select="$section"/><xsl:text>.</xsl:text>
1502
- </fo:inline>
933
+ <xsl:apply-templates select="ancestor::ogc:term/ogc:name" mode="presentation"/>
1503
934
  </fo:block>
1504
935
  <fo:block font-weight="bold" keep-with-next="always" line-height="1">
1505
936
  <xsl:apply-templates/>
@@ -1507,126 +938,32 @@
1507
938
  </fo:block>
1508
939
  </xsl:template>
1509
940
 
1510
- <xsl:template match="ogc:admitted">
1511
- <fo:block font-size="11pt">
1512
- <xsl:apply-templates/>
1513
- </fo:block>
1514
- </xsl:template>
1515
-
1516
- <xsl:template match="ogc:deprecates">
1517
- <xsl:variable name="title-deprecated">
1518
- <xsl:call-template name="getTitle">
1519
- <xsl:with-param name="name" select="'title-deprecated'"/>
1520
- </xsl:call-template>
1521
- </xsl:variable>
1522
- <fo:block><xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/></fo:block>
1523
- </xsl:template>
1524
-
1525
- <xsl:template match="ogc:definition[preceding-sibling::ogc:domain]">
1526
- <xsl:apply-templates/>
1527
- </xsl:template>
1528
- <xsl:template match="ogc:definition[preceding-sibling::ogc:domain]/ogc:p">
1529
- <fo:inline> <xsl:apply-templates/></fo:inline>
1530
- <fo:block> </fo:block>
1531
- </xsl:template>
1532
-
1533
- <xsl:template match="ogc:definition">
1534
- <fo:block space-after="6pt">
1535
- <xsl:apply-templates/>
1536
- </fo:block>
1537
- </xsl:template>
1538
-
1539
- <xsl:template match="ogc:termsource">
1540
- <fo:block margin-bottom="12pt" keep-with-previous="always">
1541
- <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
1542
- <fo:basic-link internal-destination="{ogc:origin/@bibitemid}" fox:alt-text="{ogc:origin/@citeas}">
1543
- <xsl:text>[</xsl:text>
1544
- <xsl:variable name="title-source">
1545
- <xsl:call-template name="getTitle">
1546
- <xsl:with-param name="name" select="'title-source'"/>
1547
- </xsl:call-template>
1548
- </xsl:variable>
1549
- <xsl:value-of select="$title-source"/>
1550
- <xsl:text>: </xsl:text>
1551
- <fo:inline color="blue" text-decoration="underline">
1552
- <xsl:value-of select="ogc:origin/@citeas"/>
1553
-
1554
- <xsl:apply-templates select="ogc:origin/ogc:localityStack"/>
1555
-
1556
- </fo:inline>
1557
- </fo:basic-link>
1558
- <xsl:apply-templates select="ogc:modification"/>
1559
- <xsl:text>]</xsl:text>
1560
- </fo:block>
1561
- </xsl:template>
1562
-
1563
-
1564
- <xsl:template match="ogc:modification/ogc:p">
1565
- <fo:inline><xsl:apply-templates/></fo:inline>
1566
- </xsl:template>
1567
-
1568
- <xsl:template match="ogc:termnote">
1569
- <fo:block font-size="10pt" margin-bottom="12pt">
1570
- <xsl:variable name="num"><xsl:number/></xsl:variable>
1571
- <xsl:variable name="title-note-to-entry">
1572
- <xsl:call-template name="getTitle">
1573
- <xsl:with-param name="name" select="'title-note-to-entry'"/>
1574
- </xsl:call-template>
1575
- </xsl:variable>
1576
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($title-note-to-entry),'#',$num)"/>
1577
- <xsl:apply-templates/>
1578
- </fo:block>
1579
- </xsl:template>
1580
-
1581
- <xsl:template match="ogc:termnote/ogc:p">
1582
- <fo:inline><xsl:apply-templates/></fo:inline>
1583
- </xsl:template>
1584
-
1585
- <xsl:template match="ogc:domain">
1586
- <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline>
1587
- </xsl:template>
1588
-
1589
-
1590
- <xsl:template match="ogc:termexample">
1591
- <fo:block font-size="10pt" margin-bottom="12pt">
1592
- <xsl:variable name="title-example">
1593
- <xsl:call-template name="getTitle">
1594
- <xsl:with-param name="name" select="'title-example'"/>
1595
- </xsl:call-template>
1596
- </xsl:variable>
1597
- <fo:inline padding-right="10mm"><xsl:value-of select="normalize-space($title-example)"/></fo:inline>
1598
- <xsl:apply-templates/>
1599
- </fo:block>
1600
- </xsl:template>
1601
-
1602
- <xsl:template match="ogc:termexample/ogc:p">
1603
- <fo:inline><xsl:apply-templates/></fo:inline>
1604
- </xsl:template>
1605
941
 
1606
942
 
1607
- <xsl:template match="ogc:annex">
1608
- <fo:block break-after="page"/>
1609
- <xsl:apply-templates/>
1610
- </xsl:template>
1611
943
 
1612
944
 
1613
945
  <!-- [position() &gt; 1] -->
1614
946
  <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']">
1615
947
  <fo:block break-after="page"/>
1616
- <fo:block line-height="120%">
948
+ <fo:block id="{@id}" line-height="120%">
1617
949
  <xsl:apply-templates/>
1618
950
  </fo:block>
1619
951
  </xsl:template>
1620
952
 
953
+ <xsl:template match="ogc:annex//ogc:references">
954
+ <fo:block id="{@id}">
955
+ <xsl:apply-templates/>
956
+ </fo:block>
957
+ </xsl:template>
1621
958
 
1622
959
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
1623
960
  <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem"> [position() &gt; 1] -->
1624
961
  <xsl:template match="ogc:references[@id != '_normative_references' and @id != '_references' and @id != 'references']/ogc:bibitem">
1625
- <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
962
+ <fo:list-block id="{@id}" margin-bottom="12pt" provisional-distance-between-starts="12mm">
1626
963
  <fo:list-item>
1627
964
  <fo:list-item-label end-indent="label-end()">
1628
965
  <fo:block>
1629
- <fo:inline id="{@id}">
966
+ <fo:inline>
1630
967
  <xsl:number format="[1]"/>
1631
968
  </fo:inline>
1632
969
  </fo:block>
@@ -1703,225 +1040,9 @@
1703
1040
  </fo:inline>
1704
1041
  </xsl:template>
1705
1042
 
1706
- <xsl:template match="ogc:quote">
1707
- <fo:block margin-top="12pt" margin-left="13mm" margin-right="12mm">
1708
- <xsl:apply-templates select=".//ogc:p"/>
1709
- </fo:block>
1710
- <xsl:if test="ogc:author or ogc:source">
1711
- <fo:block text-align="right" margin-right="25mm">
1712
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
1713
- <xsl:if test="ogc:author">
1714
- <xsl:text>— </xsl:text><xsl:value-of select="ogc:author"/>
1715
- </xsl:if>
1716
- <xsl:if test="ogc:source">
1717
- <xsl:text>, </xsl:text>
1718
- <xsl:apply-templates select="ogc:source"/>
1719
- </xsl:if>
1720
- </fo:block>
1721
- </xsl:if>
1722
- </xsl:template>
1723
-
1724
- <xsl:template match="ogc:source">
1725
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
1726
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1727
- <xsl:apply-templates select="ogc:localityStack"/>
1728
- </fo:basic-link>
1729
- </xsl:template>
1730
-
1731
-
1732
- <xsl:template match="ogc:xref">
1733
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">
1734
- <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
1735
- <!-- <xsl:if test="not(starts-with($section, 'Figure') or starts-with($section, 'Table'))"> -->
1736
- <xsl:attribute name="color">blue</xsl:attribute>
1737
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1738
- <!-- </xsl:if> -->
1739
- <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
1740
- <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id = current()/@target]/@root"/>
1741
1043
 
1742
- <xsl:variable name="title-clause">
1743
- <xsl:call-template name="getTitle">
1744
- <xsl:with-param name="name" select="'title-clause'"/>
1745
- </xsl:call-template>
1746
- </xsl:variable>
1747
- <xsl:variable name="title-annex">
1748
- <xsl:call-template name="getTitle">
1749
- <xsl:with-param name="name" select="'title-annex'"/>
1750
- </xsl:call-template>
1751
- </xsl:variable>
1752
-
1753
- <xsl:choose>
1754
- <xsl:when test="normalize-space(.) != ''">
1755
- <xsl:apply-templates/>
1756
- </xsl:when>
1757
- <xsl:otherwise>
1758
- <xsl:choose>
1759
- <xsl:when test="$type = 'clause' and $root != 'annex'"><xsl:value-of select="$title-clause"/></xsl:when><!-- and not (ancestor::annex) -->
1760
- <xsl:when test="$type = 'term' and ($root = 'clause' or $root = 'terms')"><xsl:value-of select="$title-clause"/></xsl:when>
1761
- <xsl:when test="$type = 'clause' and $root = 'annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1762
- <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1763
- </xsl:choose>
1764
- <xsl:value-of select="$section"/>
1765
- </xsl:otherwise>
1766
- </xsl:choose>
1767
- </fo:basic-link>
1768
- </xsl:template>
1769
1044
 
1770
- <xsl:template match="ogc:sourcecode" priority="2">
1771
- <xsl:call-template name="sourcecode"/>
1772
- <xsl:variable name="title-figure">
1773
- <xsl:call-template name="getTitle">
1774
- <xsl:with-param name="name" select="'title-figure'"/>
1775
- </xsl:call-template>
1776
- </xsl:variable>
1777
- <xsl:choose>
1778
- <xsl:when test="@unnumbered='true'"/>
1779
- <xsl:when test="ancestor::ogc:example"/>
1780
- <xsl:when test="ancestor::ogc:td"/>
1781
- <xsl:when test="ancestor::ogc:annex">
1782
- <xsl:variable name="id_annex" select="ancestor::ogc:annex/@id"/>
1783
- <xsl:choose>
1784
- <xsl:when test="count(//ogc:annex) = 1">
1785
- <xsl:value-of select="/ogc:nist-standard/ogc:bibdata/ogc:ext/ogc:structuredidentifier/ogc:annexid"/><xsl:number format="-1" level="any" count="ogc:annex//ogc:sourcecode"/>
1786
- </xsl:when>
1787
- <xsl:otherwise>
1788
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="12pt">
1789
- <xsl:value-of select="$title-figure"/>
1790
- <xsl:number format="A." level="multiple" count="ogc:annex"/>
1791
- <xsl:number format="1" level="any" count="ogc:sourcecode[ancestor::ogc:annex/@id = $id_annex and not(@unnumbered='true') and not(ancestor::ogc:example)]"/>
1792
- <xsl:if test="ogc:name">
1793
- <xsl:text> — </xsl:text>
1794
- <xsl:apply-templates select="ogc:name/*"/>
1795
- </xsl:if>
1796
- </fo:block>
1797
- </xsl:otherwise>
1798
- </xsl:choose>
1799
- </xsl:when>
1800
- <xsl:otherwise>
1801
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="12pt">
1802
- <xsl:value-of select="$title-figure"/>
1803
- <xsl:number format="1" level="any" count="ogc:sourcecode[not(@unnumbered='true') and not(ancestor::ogc:example)] | ogc:figure"/>
1804
- <xsl:if test="ogc:name">
1805
- <xsl:text> — </xsl:text>
1806
- <xsl:apply-templates select="ogc:name/*"/>
1807
- </xsl:if>
1808
- </fo:block>
1809
- </xsl:otherwise>
1810
- </xsl:choose>
1811
- </xsl:template>
1812
-
1813
- <xsl:template match="ogc:sourcecode/text()">
1814
- <xsl:variable name="text">
1815
- <xsl:call-template name="add-zero-spaces-equal"/>
1816
- </xsl:variable>
1817
- <xsl:call-template name="add-zero-spaces">
1818
- <xsl:with-param name="text" select="$text"/>
1819
- </xsl:call-template>
1820
- </xsl:template>
1821
-
1822
-
1823
- <xsl:template match="ogc:sourcecode/ogc:name"/>
1824
-
1825
- <xsl:template match="ogc:example">
1826
- <fo:block font-size="10pt" text-align="center" margin-top="12pt" margin-bottom="12pt" font-weight="bold" keep-with-next="always">
1827
- <xsl:variable name="title-example">
1828
- <xsl:call-template name="getTitle">
1829
- <xsl:with-param name="name" select="'title-example'"/>
1830
- </xsl:call-template>
1831
- </xsl:variable>
1832
- <xsl:value-of select="normalize-space($title-example)"/>
1833
- <xsl:if test="following-sibling::ogc:example or preceding-sibling::ogc:example">
1834
- <xsl:number format=" 1"/>
1835
- </xsl:if>
1836
- <xsl:if test="ogc:name">
1837
- <xsl:text> — </xsl:text>
1838
- <xsl:apply-templates select="ogc:name/node()"/>
1839
- </xsl:if>
1840
- </fo:block>
1841
- <fo:block font-size="10pt" margin-left="12.5mm" margin-right="12.5mm">
1842
- <xsl:apply-templates/>
1843
- </fo:block>
1844
- </xsl:template>
1845
-
1846
- <xsl:template match="ogc:example/ogc:name"/>
1847
-
1848
- <xsl:template match="ogc:example/ogc:p">
1849
- <fo:block margin-bottom="14pt">
1850
- <xsl:apply-templates/>
1851
- </fo:block>
1852
- </xsl:template>
1853
-
1854
-
1855
-
1856
- <xsl:template match="ogc:note/ogc:p" name="note">
1857
- <fo:block font-size="10pt" margin-top="12pt" margin-bottom="12pt" line-height="115%">
1858
- <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol and not(ancestor::ogc:note[1]/following-sibling::*)">
1859
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1860
- </xsl:if>
1861
- <xsl:variable name="clauseid" select="ancestor::ogc:clause[1]/@id"/>
1862
- <fo:inline padding-right="4mm">
1863
- <xsl:variable name="title-note">
1864
- <xsl:call-template name="getTitle">
1865
- <xsl:with-param name="name" select="'title-note'"/>
1866
- </xsl:call-template>
1867
- </xsl:variable>
1868
- <xsl:value-of select="$title-note"/>
1869
- <xsl:if test="count(//ogc:note[ancestor::ogc:clause[1][@id = $clauseid]]) &gt; 1">
1870
- <xsl:number count="ogc:note[ancestor::ogc:clause[1][@id = $clauseid]]" level="any"/>
1871
- </xsl:if>
1872
- </fo:inline>
1873
- <xsl:apply-templates/>
1874
- </fo:block>
1875
- </xsl:template>
1876
1045
 
1877
- <!-- <eref type="inline" bibitemid="ISO20483" citeas="ISO 20483:2013"><locality type="annex"><referenceFrom>C</referenceFrom></locality></eref> -->
1878
- <xsl:template match="ogc:eref">
1879
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}" color="blue" text-decoration="underline"> <!-- font-size="9pt" color="blue" vertical-align="super" -->
1880
- <xsl:if test="@type = 'footnote'">
1881
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1882
- <xsl:attribute name="font-size">80%</xsl:attribute>
1883
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1884
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1885
- </xsl:if>
1886
- <xsl:if test="@type = 'inline'">
1887
- <xsl:attribute name="color">blue</xsl:attribute>
1888
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1889
- </xsl:if>
1890
- <!-- <xsl:if test="@type = 'inline'">
1891
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1892
- </xsl:if> -->
1893
- <xsl:choose>
1894
- <xsl:when test="@citeas and normalize-space(text()) = ''">
1895
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1896
- </xsl:when>
1897
- <xsl:when test="@bibitemid and normalize-space(text()) = ''">
1898
- <xsl:value-of select="//ogc:bibitem[@id = current()/@bibitemid]/ogc:docidentifier"/>
1899
- </xsl:when>
1900
- <xsl:otherwise/>
1901
- </xsl:choose>
1902
- <xsl:apply-templates select="ogc:localityStack"/>
1903
- <xsl:apply-templates select="text()"/>
1904
- </fo:basic-link>
1905
- </xsl:template>
1906
-
1907
- <xsl:template match="ogc:locality">
1908
- <xsl:variable name="title-clause">
1909
- <xsl:call-template name="getTitle">
1910
- <xsl:with-param name="name" select="'title-clause'"/>
1911
- </xsl:call-template>
1912
- </xsl:variable>
1913
- <xsl:variable name="title-annex">
1914
- <xsl:call-template name="getTitle">
1915
- <xsl:with-param name="name" select="'title-annex'"/>
1916
- </xsl:call-template>
1917
- </xsl:variable>
1918
- <xsl:choose>
1919
- <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
1920
- <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1921
- <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
1922
- </xsl:choose>
1923
- <xsl:text> </xsl:text><xsl:value-of select="ogc:referenceFrom"/>
1924
- </xsl:template>
1925
1046
 
1926
1047
  <xsl:template match="ogc:admonition">
1927
1048
  <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">
@@ -1937,19 +1058,8 @@
1937
1058
 
1938
1059
 
1939
1060
  </xsl:template>
1940
-
1941
- <xsl:template match="ogc:formula">
1942
- <fo:block id="{@id}">
1943
- <xsl:apply-templates/>
1944
- </fo:block>
1945
- </xsl:template>
1946
-
1947
- <xsl:template match="ogc:formula/ogc:dt/ogc:stem">
1948
- <fo:inline>
1949
- <xsl:apply-templates/>
1950
- </fo:inline>
1951
- </xsl:template>
1952
-
1061
+
1062
+
1953
1063
  <xsl:template match="ogc:formula/ogc:stem">
1954
1064
  <fo:block margin-top="6pt" margin-bottom="12pt">
1955
1065
  <fo:table table-layout="fixed" width="100%">
@@ -1964,28 +1074,16 @@
1964
1074
  </fo:table-cell>
1965
1075
  <fo:table-cell display-align="center">
1966
1076
  <fo:block text-align="right">
1967
- <xsl:choose>
1968
- <xsl:when test="ancestor::ogc:annex">
1969
- <xsl:number format="(A.1)" level="multiple" count="ogc:annex | ogc:formula"/>
1970
- </xsl:when>
1971
- <xsl:otherwise> <!-- not(ancestor::ogc:annex) -->
1972
- <!-- <xsl:text>(</xsl:text><xsl:number level="any" count="ogc:formula"/><xsl:text>)</xsl:text> -->
1973
- </xsl:otherwise>
1974
- </xsl:choose>
1077
+ <xsl:apply-templates select="../ogc:name" mode="presentation"/>
1975
1078
  </fo:block>
1976
1079
  </fo:table-cell>
1977
1080
  </fo:table-row>
1978
1081
  </fo:table-body>
1979
- </fo:table>
1980
- <fo:inline keep-together.within-line="always">
1981
- </fo:inline>
1082
+ </fo:table>
1982
1083
  </fo:block>
1983
1084
  </xsl:template>
1984
1085
 
1985
- <xsl:template match="ogc:br" priority="2">
1986
- <!-- <fo:block>&#xA0;</fo:block> -->
1987
- <xsl:value-of select="$linebreak"/>
1988
- </xsl:template>
1086
+
1989
1087
 
1990
1088
  <xsl:template match="ogc:pagebreak">
1991
1089
  <fo:block break-after="page"/>
@@ -2049,140 +1147,8 @@
2049
1147
  </fo:block-container>
2050
1148
  </fo:static-content>
2051
1149
  </xsl:template>
2052
-
2053
-
2054
- <xsl:template name="getSection">
2055
- <xsl:param name="sectionNum"/>
2056
- <xsl:variable name="level">
2057
- <xsl:call-template name="getLevel"/>
2058
- </xsl:variable>
2059
- <xsl:variable name="section">
2060
- <xsl:choose>
2061
- <xsl:when test="ancestor::ogc:bibliography">
2062
- <xsl:value-of select="$sectionNum"/>
2063
- </xsl:when>
2064
- <xsl:when test="ancestor::ogc:sections">
2065
- <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2066
- <xsl:choose>
2067
- <xsl:when test="$level = 1">
2068
- <xsl:value-of select="$sectionNum"/>
2069
- </xsl:when>
2070
- <xsl:when test="$level &gt;= 2">
2071
- <xsl:variable name="num">
2072
- <xsl:call-template name="getSubSection"/>
2073
- </xsl:variable>
2074
- <xsl:value-of select="concat($sectionNum, $num)"/>
2075
- </xsl:when>
2076
- <xsl:otherwise>
2077
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
2078
- </xsl:otherwise>
2079
- </xsl:choose>
2080
- <!-- <xsl:text>.</xsl:text> -->
2081
- </xsl:when>
2082
- <!-- <xsl:when test="ancestor::ogc:annex[@obligation = 'informative']">
2083
- <xsl:choose>
2084
- <xsl:when test="$level = 1">
2085
- <xsl:text>Annex </xsl:text>
2086
- <xsl:number format="I" level="any" count="ogc:annex[@obligation = 'informative']"/>
2087
- </xsl:when>
2088
- <xsl:otherwise>
2089
- <xsl:number format="I.1" level="multiple" count="ogc:annex[@obligation = 'informative'] | ogc:clause"/>
2090
- </xsl:otherwise>
2091
- </xsl:choose>
2092
- </xsl:when> -->
2093
- <xsl:when test="ancestor::ogc:annex">
2094
- <xsl:choose>
2095
- <xsl:when test="$level = 1">
2096
- <xsl:variable name="title-annex">
2097
- <xsl:call-template name="getTitle">
2098
- <xsl:with-param name="name" select="'title-annex'"/>
2099
- </xsl:call-template>
2100
- </xsl:variable>
2101
- <xsl:value-of select="$title-annex"/>
2102
- <xsl:choose>
2103
- <xsl:when test="count(//ogc:annex) = 1">
2104
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:ext/ogc:structuredidentifier/ogc:annexid"/>
2105
- </xsl:when>
2106
- <xsl:otherwise>
2107
- <xsl:number format="A" level="any" count="ogc:annex"/>
2108
- </xsl:otherwise>
2109
- </xsl:choose>
2110
- </xsl:when>
2111
- <xsl:otherwise>
2112
- <xsl:choose>
2113
- <xsl:when test="count(//ogc:annex) = 1">
2114
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:ext/ogc:structuredidentifier/ogc:annexid"/><xsl:number format=".1" level="multiple" count="ogc:clause"/>
2115
- </xsl:when>
2116
- <xsl:otherwise>
2117
- <xsl:number format="A.1" level="multiple" count="ogc:annex | ogc:clause"/>
2118
- </xsl:otherwise>
2119
- </xsl:choose>
2120
- </xsl:otherwise>
2121
- </xsl:choose>
2122
- </xsl:when>
2123
- <xsl:when test="ancestor::ogc:preface"> <!-- if preface and there is clause(s) -->
2124
- <xsl:choose>
2125
- <xsl:when test="$level = 1"> <!-- and ancestor::ogc:foreword -->
2126
- <xsl:number format="i" value="$sectionNum"/>
2127
- </xsl:when>
2128
- <!-- <xsl:when test="$level = 1 and ..//ogc:clause">0</xsl:when> -->
2129
- <xsl:when test="$level &gt;= 2">
2130
- <xsl:number format="i.1" level="multiple" count="ogc:clause"/>
2131
- <!-- <xsl:value-of select="concat('0', $num)"/> -->
2132
- </xsl:when>
2133
- <xsl:otherwise>
2134
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
2135
- </xsl:otherwise>
2136
- </xsl:choose>
2137
- </xsl:when>
2138
- <xsl:otherwise>
2139
- </xsl:otherwise>
2140
- </xsl:choose>
2141
- </xsl:variable>
2142
- <xsl:value-of select="$section"/>
2143
- </xsl:template>
2144
1150
 
2145
1151
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2146
-
2147
- <title-table lang="en">Table </title-table>
2148
- <title-table lang="fr">Tableau </title-table>
2149
-
2150
- <title-table lang="zh">Table </title-table>
2151
-
2152
-
2153
-
2154
- <title-note lang="en">NOTE </title-note>
2155
- <title-note lang="fr">NOTE </title-note>
2156
-
2157
- <title-note lang="zh">NOTE </title-note>
2158
-
2159
-
2160
-
2161
- <title-figure lang="en">Figure </title-figure>
2162
- <title-figure lang="fr">Figure </title-figure>
2163
-
2164
- <title-figure lang="zh">Figure </title-figure>
2165
-
2166
-
2167
-
2168
- <title-example lang="en">EXAMPLE </title-example>
2169
- <title-example lang="fr">EXEMPLE </title-example>
2170
-
2171
- <title-example lang="zh">EXAMPLE </title-example>
2172
-
2173
-
2174
-
2175
- <title-example-xref lang="en">Example </title-example-xref>
2176
- <title-example-xref lang="fr">Exemple </title-example-xref>
2177
-
2178
- <title-section lang="en">Section </title-section>
2179
- <title-section lang="fr">Section </title-section>
2180
-
2181
- <title-inequality lang="en">Inequality </title-inequality>
2182
- <title-inequality lang="fr">Inequality </title-inequality>
2183
-
2184
- <title-equation lang="en">Equation </title-equation>
2185
- <title-equation lang="fr">Equation </title-equation>
2186
1152
 
2187
1153
  <title-annex lang="en">Annex </title-annex>
2188
1154
  <title-annex lang="fr">Annexe </title-annex>
@@ -2190,17 +1156,7 @@
2190
1156
  <title-annex lang="zh">Annex </title-annex>
2191
1157
 
2192
1158
 
2193
-
2194
- <title-appendix lang="en">Appendix </title-appendix>
2195
- <title-appendix lang="fr">Appendix </title-appendix>
2196
-
2197
- <title-clause lang="en">Clause </title-clause>
2198
- <title-clause lang="fr">Article </title-clause>
2199
-
2200
- <title-clause lang="zh">Clause </title-clause>
2201
-
2202
-
2203
-
1159
+
2204
1160
  <title-edition lang="en">
2205
1161
 
2206
1162
 
@@ -2208,9 +1164,7 @@
2208
1164
 
2209
1165
  </title-edition>
2210
1166
 
2211
- <title-formula lang="en">Formula </title-formula>
2212
- <title-formula lang="fr">Formula </title-formula>
2213
-
1167
+
2214
1168
  <title-toc lang="en">
2215
1169
 
2216
1170
  <xsl:text>Contents</xsl:text>
@@ -2245,13 +1199,6 @@
2245
1199
  </title-part>
2246
1200
  <title-part lang="zh">第 # 部分:</title-part>
2247
1201
 
2248
- <title-note-to-entry lang="en">Note # to entry: </title-note-to-entry>
2249
- <title-note-to-entry lang="fr">Note # à l'article: </title-note-to-entry>
2250
-
2251
- <title-note-to-entry lang="zh">Note # to entry: </title-note-to-entry>
2252
-
2253
-
2254
-
2255
1202
  <title-modified lang="en">modified</title-modified>
2256
1203
  <title-modified lang="fr">modifiée</title-modified>
2257
1204
 
@@ -2265,14 +1212,12 @@
2265
1212
 
2266
1213
  <title-deprecated lang="en">DEPRECATED</title-deprecated>
2267
1214
  <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2268
-
2269
- <title-submitting-organizations lang="en">Submitting Organizations</title-submitting-organizations>
2270
-
1215
+
2271
1216
  <title-list-tables lang="en">List of Tables</title-list-tables>
2272
1217
 
2273
1218
  <title-list-figures lang="en">List of Figures</title-list-figures>
2274
1219
 
2275
- <title-recommendation lang="en">Recommendation </title-recommendation>
1220
+ <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2276
1221
 
2277
1222
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
2278
1223
 
@@ -2282,8 +1227,6 @@
2282
1227
 
2283
1228
  <title-in lang="en">in </title-in>
2284
1229
 
2285
- <title-box lang="en">Box </title-box>
2286
-
2287
1230
  <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
2288
1231
  <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
2289
1232
 
@@ -2306,7 +1249,7 @@
2306
1249
  <title-warning lang="zh">警告</title-warning>
2307
1250
 
2308
1251
  <title-amendment lang="en">AMENDMENT</title-amendment>
2309
- </xsl:variable><xsl:template name="getTitle">
1252
+ </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2310
1253
  <xsl:param name="name"/>
2311
1254
  <xsl:variable name="lang">
2312
1255
  <xsl:call-template name="getLang"/>
@@ -2327,6 +1270,8 @@
2327
1270
 
2328
1271
 
2329
1272
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1273
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1274
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2330
1275
 
2331
1276
 
2332
1277
 
@@ -2341,6 +1286,157 @@
2341
1286
  <xsl:attribute name="line-height">113%</xsl:attribute>
2342
1287
 
2343
1288
 
1289
+ </xsl:attribute-set><xsl:attribute-set name="permission-style">
1290
+
1291
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1292
+
1293
+ </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
1294
+
1295
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1296
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1297
+ <xsl:attribute name="text-align">center</xsl:attribute>
1298
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
1299
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
1300
+ <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
1301
+ <xsl:attribute name="background-color">rgb(165,165,165)</xsl:attribute>
1302
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1303
+
1304
+ </xsl:attribute-set><xsl:attribute-set name="permission-label-style">
1305
+
1306
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1307
+
1308
+ </xsl:attribute-set><xsl:attribute-set name="requirement-style">
1309
+
1310
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1311
+
1312
+ </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
1313
+
1314
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1315
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1316
+ <xsl:attribute name="text-align">center</xsl:attribute>
1317
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
1318
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
1319
+ <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
1320
+ <xsl:attribute name="background-color">rgb(165,165,165)</xsl:attribute>
1321
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1322
+
1323
+ </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
1324
+
1325
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1326
+
1327
+ </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
1328
+ </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
1329
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
1330
+
1331
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1332
+
1333
+
1334
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-name-style">
1335
+
1336
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1337
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1338
+ <xsl:attribute name="text-align">center</xsl:attribute>
1339
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
1340
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
1341
+ <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
1342
+ <xsl:attribute name="background-color">rgb(165,165,165)</xsl:attribute>
1343
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1344
+
1345
+
1346
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-label-style">
1347
+
1348
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1349
+
1350
+ </xsl:attribute-set><xsl:attribute-set name="termexample-style">
1351
+
1352
+
1353
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1354
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+ </xsl:attribute-set><xsl:attribute-set name="example-style">
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1370
+ <xsl:attribute name="margin-left">12.5mm</xsl:attribute>
1371
+ <xsl:attribute name="margin-right">12.5mm</xsl:attribute>
1372
+
1373
+
1374
+
1375
+
1376
+ </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1377
+
1378
+
1379
+ </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1391
+ <xsl:attribute name="text-align">center</xsl:attribute>
1392
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1393
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1394
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1395
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+ </xsl:attribute-set><xsl:attribute-set name="example-p-style">
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
1412
+
1413
+
1414
+
1415
+
1416
+ </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1417
+
1418
+ <xsl:attribute name="padding-right">10mm</xsl:attribute>
1419
+
1420
+
1421
+
1422
+
1423
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
1424
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+ <xsl:attribute name="text-align">center</xsl:attribute>
1433
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1434
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1435
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1436
+
1437
+
1438
+
1439
+
2344
1440
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2345
1441
 
2346
1442
  <xsl:attribute name="font-size">12pt</xsl:attribute>
@@ -2358,79 +1454,216 @@
2358
1454
 
2359
1455
 
2360
1456
 
2361
- </xsl:attribute-set><xsl:template match="text()">
2362
- <xsl:value-of select="."/>
2363
- </xsl:template><xsl:template match="*[local-name()='br']">
2364
- <xsl:value-of select="$linebreak"/>
2365
- </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2366
- <!-- <xsl:call-template name="add-zero-spaces"/> -->
2367
- <xsl:call-template name="add-zero-spaces-java"/>
2368
- </xsl:template><xsl:template match="*[local-name()='table']">
2369
-
2370
- <xsl:variable name="simple-table">
2371
- <!-- <xsl:copy> -->
2372
- <xsl:call-template name="getSimpleTable"/>
2373
- <!-- </xsl:copy> -->
2374
- </xsl:variable>
2375
-
2376
- <!-- DEBUG -->
2377
- <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2378
- <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2379
-
2380
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
1457
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
2381
1458
 
2382
- <!-- <xsl:if test="$namespace = 'iso'">
2383
- <fo:block space-before="6pt">&#xA0;</fo:block>
2384
- </xsl:if> -->
2385
1459
 
2386
- <xsl:choose>
2387
- <xsl:when test="@unnumbered = 'true'"/>
2388
- <xsl:otherwise>
2389
-
2390
-
2391
-
2392
- <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2393
-
2394
-
2395
-
2396
-
2397
-
2398
-
2399
- <xsl:attribute name="font-weight">normal</xsl:attribute>
2400
- <xsl:attribute name="font-size">11pt</xsl:attribute>
2401
-
2402
-
2403
-
2404
- <xsl:variable name="title-table">
2405
- <xsl:call-template name="getTitle">
2406
- <xsl:with-param name="name" select="'title-table'"/>
2407
- </xsl:call-template>
2408
- </xsl:variable>
2409
- <xsl:value-of select="$title-table"/>
2410
-
2411
- <xsl:call-template name="getTableNumber"/>
2412
-
2413
-
2414
- <xsl:if test="*[local-name()='name']">
2415
-
2416
-
2417
-
2418
- <xsl:text> — </xsl:text>
2419
-
2420
- <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2421
- </xsl:if>
2422
- </fo:block>
2423
-
1460
+ <xsl:attribute name="color">blue</xsl:attribute>
1461
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
2424
1462
 
2425
- <xsl:call-template name="fn_name_display"/>
1463
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
1464
+
1465
+
1466
+ <xsl:attribute name="color">blue</xsl:attribute>
1467
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1468
+
1469
+
1470
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
1471
+
1472
+
1473
+
2426
1474
 
2427
- </xsl:otherwise>
2428
- </xsl:choose>
2429
1475
 
2430
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2431
1476
 
2432
- <!-- <xsl:variable name="cols-count">
2433
- <xsl:choose>
1477
+
1478
+
1479
+
1480
+
1481
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1482
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1483
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1484
+ <xsl:attribute name="line-height">115%</xsl:attribute>
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+ </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+ <xsl:attribute name="padding-right">4mm</xsl:attribute>
1502
+
1503
+
1504
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1515
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1522
+
1523
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1524
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1531
+
1532
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1533
+ <xsl:attribute name="margin-left">13mm</xsl:attribute>
1534
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1542
+
1543
+ <xsl:attribute name="text-align">right</xsl:attribute>
1544
+ <xsl:attribute name="margin-right">25mm</xsl:attribute>
1545
+
1546
+
1547
+
1548
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1549
+
1550
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1551
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
1558
+
1559
+
1560
+ <xsl:attribute name="color">blue</xsl:attribute>
1561
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1562
+
1563
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
1564
+
1565
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1566
+
1567
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1568
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1569
+ <xsl:attribute name="text-align">center</xsl:attribute>
1570
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1571
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1572
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
1590
+
1591
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
1592
+ <xsl:attribute name="text-align">center</xsl:attribute>
1593
+
1594
+ <xsl:attribute name="space-before">12pt</xsl:attribute>
1595
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1602
+
1603
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1604
+
1605
+ <xsl:attribute name="width">100%</xsl:attribute>
1606
+ <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
1607
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
1614
+
1615
+
1616
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1617
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1618
+
1619
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1620
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1621
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1622
+ <xsl:attribute name="text-align">center</xsl:attribute>
1623
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1624
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
1625
+
1626
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
1627
+
1628
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1629
+
1630
+
1631
+ </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
1632
+
1633
+ </xsl:attribute-set><xsl:attribute-set name="definition-style">
1634
+
1635
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
1636
+
1637
+
1638
+ </xsl:attribute-set><xsl:template match="text()">
1639
+ <xsl:value-of select="."/>
1640
+ </xsl:template><xsl:template match="*[local-name()='br']">
1641
+ <xsl:value-of select="$linebreak"/>
1642
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1643
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
1644
+ <xsl:call-template name="add-zero-spaces-java"/>
1645
+ </xsl:template><xsl:template match="*[local-name()='table']">
1646
+
1647
+ <xsl:variable name="simple-table">
1648
+ <xsl:call-template name="getSimpleTable"/>
1649
+ </xsl:variable>
1650
+
1651
+
1652
+
1653
+
1654
+
1655
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1656
+
1657
+
1658
+
1659
+ <xsl:call-template name="fn_name_display"/>
1660
+
1661
+
1662
+
1663
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1664
+
1665
+ <!-- <xsl:variable name="cols-count">
1666
+ <xsl:choose>
2434
1667
  <xsl:when test="*[local-name()='thead']">
2435
1668
  <xsl:call-template name="calculate-columns-numbers">
2436
1669
  <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
@@ -2526,34 +1759,15 @@
2526
1759
 
2527
1760
 
2528
1761
 
1762
+
1763
+
2529
1764
  </fo:block-container>
2530
- </xsl:template><xsl:template name="getTableNumber">
2531
- <xsl:choose>
2532
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2533
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2534
- </xsl:when>
2535
- <xsl:when test="ancestor::*[local-name()='annex']">
2536
-
2537
-
2538
-
2539
- <xsl:number format="A." count="*[local-name()='annex']"/><xsl:number format="1"/>
2540
-
2541
-
2542
-
2543
-
2544
-
2545
-
2546
- </xsl:when>
2547
- <xsl:otherwise>
2548
-
2549
-
2550
- <xsl:number format="A." count="*[local-name()='annex']"/>
2551
- <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']"/>
2552
-
2553
- </xsl:otherwise>
2554
- </xsl:choose>
2555
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
2556
- <xsl:apply-templates/>
1765
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1766
+ <xsl:if test="normalize-space() != ''">
1767
+ <fo:block xsl:use-attribute-sets="table-name-style">
1768
+ <xsl:apply-templates/>
1769
+ </fo:block>
1770
+ </xsl:if>
2557
1771
  </xsl:template><xsl:template name="calculate-columns-numbers">
2558
1772
  <xsl:param name="table-row"/>
2559
1773
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -2778,6 +1992,7 @@
2778
1992
 
2779
1993
 
2780
1994
 
1995
+
2781
1996
  <xsl:if test="@colspan">
2782
1997
  <xsl:attribute name="number-columns-spanned">
2783
1998
  <xsl:value-of select="@colspan"/>
@@ -2797,7 +2012,7 @@
2797
2012
 
2798
2013
 
2799
2014
 
2800
-
2015
+
2801
2016
 
2802
2017
 
2803
2018
 
@@ -2816,21 +2031,9 @@
2816
2031
  <fo:block>
2817
2032
 
2818
2033
  <xsl:apply-templates/>
2819
- </fo:block>
2820
- <!-- <xsl:choose>
2821
- <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
2822
- <xsl:apply-templates />
2823
- </xsl:when>
2824
- <xsl:otherwise>
2825
- <fo:block>
2826
- <xsl:apply-templates />
2827
- </fo:block>
2828
- </xsl:otherwise>
2829
- </xsl:choose> -->
2830
-
2831
-
2034
+ </fo:block>
2832
2035
  </fo:table-cell>
2833
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2036
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2834
2037
 
2835
2038
 
2836
2039
  <fo:block font-size="10pt" margin-bottom="12pt">
@@ -2842,26 +2045,14 @@
2842
2045
 
2843
2046
 
2844
2047
 
2845
- <xsl:variable name="title-note">
2846
- <xsl:call-template name="getTitle">
2847
- <xsl:with-param name="name" select="'title-note'"/>
2848
- </xsl:call-template>
2849
- </xsl:variable>
2850
- <xsl:value-of select="$title-note"/>
2851
-
2852
- <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
2853
- <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
2854
- <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
2855
- </xsl:if>
2048
+
2049
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2856
2050
 
2857
-
2858
-
2859
-
2860
2051
  </fo:inline>
2861
2052
  <xsl:apply-templates mode="process"/>
2862
2053
  </fo:block>
2863
2054
 
2864
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2055
+ </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">
2865
2056
  <xsl:apply-templates/>
2866
2057
  </xsl:template><xsl:template name="fn_display">
2867
2058
  <xsl:variable name="references">
@@ -2927,7 +2118,7 @@
2927
2118
  <!-- and (not(@class) or @class !='pseudocode') -->
2928
2119
  </xsl:variable>
2929
2120
  <xsl:variable name="references">
2930
- <xsl:for-each select=".//*[local-name()='fn']">
2121
+ <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2931
2122
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2932
2123
  <xsl:apply-templates/>
2933
2124
  </fn>
@@ -3204,7 +2395,7 @@
3204
2395
  <xsl:value-of select="string-length(normalize-space(.))"/>
3205
2396
  </xsl:if>
3206
2397
  </xsl:for-each>
3207
- </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
2398
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
3208
2399
  <xsl:param name="key_iso"/>
3209
2400
 
3210
2401
  <!-- <tr>
@@ -3220,12 +2411,7 @@
3220
2411
  <xsl:if test="normalize-space($key_iso) = 'true'">
3221
2412
  <xsl:attribute name="margin-top">0</xsl:attribute>
3222
2413
  </xsl:if>
3223
- <xsl:variable name="title-note">
3224
- <xsl:call-template name="getTitle">
3225
- <xsl:with-param name="name" select="'title-note'"/>
3226
- </xsl:call-template>
3227
- </xsl:variable>
3228
- <xsl:value-of select="$title-note"/>
2414
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3229
2415
  </fo:block>
3230
2416
  </fo:table-cell>
3231
2417
  <fo:table-cell>
@@ -3297,7 +2483,7 @@
3297
2483
  <fo:inline font-style="italic">
3298
2484
  <xsl:apply-templates/>
3299
2485
  </fo:inline>
3300
- </xsl:template><xsl:template match="*[local-name()='strong']">
2486
+ </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
3301
2487
  <fo:inline font-weight="bold">
3302
2488
  <xsl:apply-templates/>
3303
2489
  </fo:inline>
@@ -3310,7 +2496,7 @@
3310
2496
  <xsl:apply-templates/>
3311
2497
  </fo:inline>
3312
2498
  </xsl:template><xsl:template match="*[local-name()='tt']">
3313
- <fo:inline font-family="Courier" font-size="10pt">
2499
+ <fo:inline xsl:use-attribute-sets="tt-style">
3314
2500
  <xsl:apply-templates/>
3315
2501
  </fo:inline>
3316
2502
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -3641,13 +2827,7 @@
3641
2827
  <xsl:copy-of select="."/>
3642
2828
  </fo:instream-foreign-object>
3643
2829
  </fo:inline>
3644
- </xsl:template><xsl:template match="*[local-name()='localityStack']">
3645
- <xsl:for-each select="*[local-name()='locality']">
3646
- <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
3647
- <xsl:apply-templates select="."/>
3648
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
3649
- </xsl:for-each>
3650
- </xsl:template><xsl:template match="*[local-name()='link']" name="link">
2830
+ </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
3651
2831
  <xsl:variable name="target">
3652
2832
  <xsl:choose>
3653
2833
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
@@ -3677,51 +2857,20 @@
3677
2857
  </xsl:otherwise>
3678
2858
  </xsl:choose>
3679
2859
  </fo:inline>
3680
- </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3681
- <fo:block xsl:use-attribute-sets="sourcecode-style">
3682
- <!-- <xsl:choose>
3683
- <xsl:when test="@lang = 'en'"></xsl:when>
3684
- <xsl:otherwise> -->
3685
- <xsl:attribute name="white-space">pre</xsl:attribute>
3686
- <xsl:attribute name="wrap-option">wrap</xsl:attribute>
3687
- <!-- </xsl:otherwise>
3688
- </xsl:choose> -->
3689
- <xsl:apply-templates/>
3690
- </fo:block>
3691
2860
  </xsl:template><xsl:template match="*[local-name()='bookmark']">
3692
2861
  <fo:inline id="{@id}"/>
3693
2862
  </xsl:template><xsl:template match="*[local-name()='appendix']">
3694
2863
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3695
- <xsl:variable name="title-appendix">
3696
- <xsl:call-template name="getTitle">
3697
- <xsl:with-param name="name" select="'title-appendix'"/>
3698
- </xsl:call-template>
3699
- </xsl:variable>
3700
- <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
3701
2864
  <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3702
2865
  </fo:block>
3703
2866
  <xsl:apply-templates/>
3704
2867
  </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3705
2868
  <fo:inline><xsl:apply-templates/></fo:inline>
3706
- </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
3707
- <fo:block xsl:use-attribute-sets="appendix-example-style">
3708
- <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
3709
- <xsl:variable name="title-example">
3710
- <xsl:call-template name="getTitle">
3711
- <xsl:with-param name="name" select="'title-example'"/>
3712
- </xsl:call-template>
3713
- </xsl:variable>
3714
- <xsl:value-of select="$title-example"/>
3715
- <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
3716
- <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
3717
- </xsl:if>
3718
- <xsl:if test="*[local-name()='name']">
3719
- <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
3720
- </xsl:if>
2869
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
2870
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
2871
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3721
2872
  </fo:block>
3722
2873
  <xsl:apply-templates/>
3723
- </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">
3724
- <fo:inline><xsl:apply-templates/></fo:inline>
3725
2874
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
3726
2875
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
3727
2876
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -3752,55 +2901,724 @@
3752
2901
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3753
2902
  </xsl:choose>
3754
2903
  <xsl:apply-templates/>
3755
- </xsl:template><xsl:template name="convertDate">
3756
- <xsl:param name="date"/>
3757
- <xsl:param name="format" select="'short'"/>
3758
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
3759
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
3760
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
3761
- <xsl:variable name="monthStr">
3762
- <xsl:choose>
3763
- <xsl:when test="$month = '01'">January</xsl:when>
3764
- <xsl:when test="$month = '02'">February</xsl:when>
3765
- <xsl:when test="$month = '03'">March</xsl:when>
3766
- <xsl:when test="$month = '04'">April</xsl:when>
3767
- <xsl:when test="$month = '05'">May</xsl:when>
3768
- <xsl:when test="$month = '06'">June</xsl:when>
3769
- <xsl:when test="$month = '07'">July</xsl:when>
3770
- <xsl:when test="$month = '08'">August</xsl:when>
3771
- <xsl:when test="$month = '09'">September</xsl:when>
3772
- <xsl:when test="$month = '10'">October</xsl:when>
3773
- <xsl:when test="$month = '11'">November</xsl:when>
3774
- <xsl:when test="$month = '12'">December</xsl:when>
3775
- </xsl:choose>
3776
- </xsl:variable>
3777
- <xsl:variable name="result">
3778
- <xsl:choose>
3779
- <xsl:when test="$format = 'short' or $day = ''">
3780
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
3781
- </xsl:when>
3782
- <xsl:otherwise>
3783
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
3784
- </xsl:otherwise>
3785
- </xsl:choose>
3786
- </xsl:variable>
3787
- <xsl:value-of select="$result"/>
3788
- </xsl:template><xsl:template name="insertKeywords">
3789
- <xsl:param name="sorting" select="'true'"/>
3790
- <xsl:param name="charAtEnd" select="'.'"/>
3791
- <xsl:param name="charDelim" select="', '"/>
3792
- <xsl:choose>
3793
- <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
3794
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
3795
- <xsl:sort data-type="text" order="ascending"/>
3796
- <xsl:call-template name="insertKeyword">
3797
- <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
3798
- <xsl:with-param name="charDelim" select="$charDelim"/>
3799
- </xsl:call-template>
3800
- </xsl:for-each>
3801
- </xsl:when>
3802
- <xsl:otherwise>
3803
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
2904
+ </xsl:template><xsl:template match="*[local-name() = 'xref']">
2905
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2906
+
2907
+ <xsl:apply-templates/>
2908
+ </fo:basic-link>
2909
+ </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2910
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2911
+ <xsl:apply-templates/>
2912
+ </fo:block>
2913
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2914
+ <fo:inline>
2915
+ <xsl:apply-templates/>
2916
+ </fo:inline>
2917
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']/*[local-name() = 'stem']">
2918
+ <fo:inline>
2919
+ <xsl:apply-templates/>
2920
+ </fo:inline>
2921
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
2922
+ <xsl:if test="normalize-space() != ''">
2923
+ <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
2924
+ </xsl:if>
2925
+ </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
2926
+
2927
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
2928
+
2929
+
2930
+ <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol and not(ancestor::ogc:note[1]/following-sibling::*)">
2931
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2932
+ </xsl:if>
2933
+
2934
+
2935
+
2936
+ <fo:block-container margin-left="0mm">
2937
+
2938
+
2939
+
2940
+
2941
+
2942
+
2943
+
2944
+
2945
+ <fo:block>
2946
+
2947
+
2948
+
2949
+
2950
+ <fo:inline xsl:use-attribute-sets="note-name-style">
2951
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2952
+ </fo:inline>
2953
+ <xsl:apply-templates/>
2954
+ </fo:block>
2955
+
2956
+
2957
+ </fo:block-container>
2958
+ </fo:block-container>
2959
+
2960
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
2961
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
2962
+ <xsl:choose>
2963
+ <xsl:when test="$num = 1">
2964
+ <fo:inline xsl:use-attribute-sets="note-p-style">
2965
+ <xsl:apply-templates/>
2966
+ </fo:inline>
2967
+ </xsl:when>
2968
+ <xsl:otherwise>
2969
+ <fo:block xsl:use-attribute-sets="note-p-style">
2970
+ <xsl:apply-templates/>
2971
+ </fo:block>
2972
+ </xsl:otherwise>
2973
+ </xsl:choose>
2974
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2975
+ <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2976
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2977
+ <xsl:apply-templates/>
2978
+ </fo:block>
2979
+ </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">
2980
+ <xsl:param name="sfx"/>
2981
+ <xsl:variable name="suffix">
2982
+ <xsl:choose>
2983
+ <xsl:when test="$sfx != ''">
2984
+ <xsl:value-of select="$sfx"/>
2985
+ </xsl:when>
2986
+ <xsl:otherwise>
2987
+
2988
+
2989
+ </xsl:otherwise>
2990
+ </xsl:choose>
2991
+ </xsl:variable>
2992
+ <xsl:if test="normalize-space() != ''">
2993
+ <xsl:apply-templates/>
2994
+ <xsl:value-of select="$suffix"/>
2995
+ </xsl:if>
2996
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
2997
+ <xsl:param name="sfx"/>
2998
+ <xsl:variable name="suffix">
2999
+ <xsl:choose>
3000
+ <xsl:when test="$sfx != ''">
3001
+ <xsl:value-of select="$sfx"/>
3002
+ </xsl:when>
3003
+ <xsl:otherwise>
3004
+
3005
+ <xsl:text>:</xsl:text>
3006
+
3007
+
3008
+ </xsl:otherwise>
3009
+ </xsl:choose>
3010
+ </xsl:variable>
3011
+ <xsl:if test="normalize-space() != ''">
3012
+ <xsl:apply-templates/>
3013
+ <xsl:value-of select="$suffix"/>
3014
+ </xsl:if>
3015
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
3016
+ <fo:inline><xsl:apply-templates/></fo:inline>
3017
+ </xsl:template><xsl:template match="*[local-name() = 'terms']">
3018
+ <fo:block id="{@id}">
3019
+ <xsl:apply-templates/>
3020
+ </fo:block>
3021
+ </xsl:template><xsl:template match="*[local-name() = 'term']">
3022
+ <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
3023
+
3024
+
3025
+
3026
+ <xsl:apply-templates/>
3027
+ </fo:block>
3028
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
3029
+ <xsl:if test="normalize-space() != ''">
3030
+ <fo:inline>
3031
+ <xsl:apply-templates/>
3032
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3033
+ <xsl:text>.</xsl:text>
3034
+ </xsl:if> -->
3035
+ </fo:inline>
3036
+ </xsl:if>
3037
+ </xsl:template><xsl:template match="*[local-name() = 'figure']">
3038
+ <fo:block-container id="{@id}">
3039
+ <fo:block>
3040
+ <xsl:apply-templates/>
3041
+ </fo:block>
3042
+ <xsl:call-template name="fn_display_figure"/>
3043
+ <xsl:for-each select="*[local-name() = 'note']">
3044
+ <xsl:call-template name="note"/>
3045
+ </xsl:for-each>
3046
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3047
+ </fo:block-container>
3048
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
3049
+ <fo:block id="{@id}">
3050
+ <xsl:apply-templates/>
3051
+ </fo:block>
3052
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
3053
+ <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
3054
+ <xsl:apply-templates/>
3055
+ </fo:block>
3056
+ </xsl:template><xsl:template match="*[local-name() = 'image']">
3057
+ <fo:block xsl:use-attribute-sets="image-style">
3058
+
3059
+
3060
+ <xsl:variable name="src">
3061
+ <xsl:choose>
3062
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
3063
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
3064
+ </xsl:when>
3065
+ <xsl:otherwise>
3066
+ <xsl:value-of select="@src"/>
3067
+ </xsl:otherwise>
3068
+ </xsl:choose>
3069
+ </xsl:variable>
3070
+
3071
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3072
+ </fo:block>
3073
+ </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">
3074
+ <xsl:apply-templates mode="contents"/>
3075
+ <xsl:text> </xsl:text>
3076
+ </xsl:template><xsl:template match="text()" mode="contents">
3077
+ <xsl:value-of select="."/>
3078
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3079
+ <xsl:if test="normalize-space() != ''">
3080
+ <fo:block xsl:use-attribute-sets="figure-name-style">
3081
+
3082
+ <xsl:apply-templates/>
3083
+ </fo:block>
3084
+ </xsl:if>
3085
+ </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">
3086
+ <xsl:apply-templates mode="contents_item"/>
3087
+ <!-- <xsl:text> </xsl:text> -->
3088
+ </xsl:template><xsl:template name="getSection">
3089
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
3090
+ </xsl:template><xsl:template name="getName">
3091
+ <xsl:choose>
3092
+ <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
3093
+ <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
3094
+ </xsl:when>
3095
+ <xsl:otherwise>
3096
+ <xsl:copy-of select="*[local-name() = 'title']/node()"/>
3097
+ </xsl:otherwise>
3098
+ </xsl:choose>
3099
+ </xsl:template><xsl:template name="insertTitleAsListItem">
3100
+ <xsl:param name="provisional-distance-between-starts" select="'9.5mm'"/>
3101
+ <xsl:variable name="section">
3102
+ <xsl:for-each select="..">
3103
+ <xsl:call-template name="getSection"/>
3104
+ </xsl:for-each>
3105
+ </xsl:variable>
3106
+ <fo:list-block provisional-distance-between-starts="{$provisional-distance-between-starts}">
3107
+ <fo:list-item>
3108
+ <fo:list-item-label end-indent="label-end()">
3109
+ <fo:block>
3110
+ <xsl:value-of select="$section"/>
3111
+ </fo:block>
3112
+ </fo:list-item-label>
3113
+ <fo:list-item-body start-indent="body-start()">
3114
+ <fo:block>
3115
+ <xsl:choose>
3116
+ <xsl:when test="*[local-name() = 'tab']">
3117
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3118
+ </xsl:when>
3119
+ <xsl:otherwise>
3120
+ <xsl:apply-templates/>
3121
+ </xsl:otherwise>
3122
+ </xsl:choose>
3123
+ </fo:block>
3124
+ </fo:list-item-body>
3125
+ </fo:list-item>
3126
+ </fo:list-block>
3127
+ </xsl:template><xsl:template name="extractTitle">
3128
+ <xsl:choose>
3129
+ <xsl:when test="*[local-name() = 'tab']">
3130
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3131
+ </xsl:when>
3132
+ <xsl:otherwise>
3133
+ <xsl:apply-templates/>
3134
+ </xsl:otherwise>
3135
+ </xsl:choose>
3136
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
3137
+ <xsl:text> </xsl:text>
3138
+ </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
3139
+ <xsl:copy>
3140
+ <xsl:apply-templates mode="contents_item"/>
3141
+ </xsl:copy>
3142
+ </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
3143
+ <xsl:text> </xsl:text>
3144
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3145
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3146
+ <xsl:apply-templates/>
3147
+ </fo:block>
3148
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3149
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
3150
+ <xsl:variable name="text">
3151
+ <xsl:call-template name="add-zero-spaces-equal"/>
3152
+ </xsl:variable>
3153
+ <xsl:call-template name="add-zero-spaces">
3154
+ <xsl:with-param name="text" select="$text"/>
3155
+ </xsl:call-template>
3156
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
3157
+ <xsl:if test="normalize-space() != ''">
3158
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
3159
+
3160
+ <xsl:apply-templates/>
3161
+ </fo:block>
3162
+ </xsl:if>
3163
+ </xsl:template><xsl:template match="*[local-name() = 'permission']">
3164
+ <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
3165
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3166
+ <xsl:apply-templates/>
3167
+ </fo:block>
3168
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
3169
+ <xsl:if test="normalize-space() != ''">
3170
+ <fo:block xsl:use-attribute-sets="permission-name-style">
3171
+ <xsl:apply-templates/>
3172
+
3173
+ <xsl:text>:</xsl:text>
3174
+
3175
+ </fo:block>
3176
+ </xsl:if>
3177
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'label']">
3178
+ <fo:block xsl:use-attribute-sets="permission-label-style">
3179
+ <xsl:apply-templates/>
3180
+ </fo:block>
3181
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']">
3182
+ <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
3183
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3184
+ <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
3185
+ <xsl:apply-templates select="@obligation" mode="presentation"/>
3186
+ <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
3187
+ <xsl:apply-templates/>
3188
+ </fo:block>
3189
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
3190
+ <xsl:if test="normalize-space() != ''">
3191
+ <fo:block xsl:use-attribute-sets="requirement-name-style">
3192
+
3193
+ <xsl:if test="../@type = 'class'">
3194
+ <xsl:attribute name="background-color">white</xsl:attribute>
3195
+ </xsl:if>
3196
+
3197
+ <xsl:apply-templates/>
3198
+
3199
+ <xsl:text>:</xsl:text>
3200
+
3201
+ </fo:block>
3202
+ </xsl:if>
3203
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
3204
+ <fo:block xsl:use-attribute-sets="requirement-label-style">
3205
+ <xsl:apply-templates/>
3206
+ </fo:block>
3207
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
3208
+ <fo:block>
3209
+ <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
3210
+ </fo:block>
3211
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
3212
+ <fo:block xsl:use-attribute-sets="requirement-subject-style">
3213
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
3214
+ </fo:block>
3215
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
3216
+ <fo:block xsl:use-attribute-sets="requirement-inherit-style">
3217
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
3218
+ </fo:block>
3219
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
3220
+ <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
3221
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3222
+ <xsl:apply-templates/>
3223
+ </fo:block>
3224
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
3225
+ <xsl:if test="normalize-space() != ''">
3226
+ <fo:block xsl:use-attribute-sets="recommendation-name-style">
3227
+ <xsl:apply-templates/>
3228
+
3229
+ </fo:block>
3230
+ </xsl:if>
3231
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
3232
+ <fo:block xsl:use-attribute-sets="recommendation-label-style">
3233
+ <xsl:apply-templates/>
3234
+ </fo:block>
3235
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3236
+ <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3237
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3238
+ <xsl:apply-templates/>
3239
+ </fo:block>
3240
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
3241
+ <xsl:if test="normalize-space() != ''">
3242
+ <fo:inline xsl:use-attribute-sets="termexample-name-style">
3243
+ <xsl:apply-templates/>
3244
+ </fo:inline>
3245
+ </xsl:if>
3246
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
3247
+ <fo:inline><xsl:apply-templates/></fo:inline>
3248
+ </xsl:template><xsl:template match="*[local-name() = 'example']">
3249
+ <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
3250
+
3251
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3252
+
3253
+ <xsl:variable name="element">
3254
+ block
3255
+
3256
+ </xsl:variable>
3257
+
3258
+ <xsl:choose>
3259
+ <xsl:when test="normalize-space($element) = 'block'">
3260
+ <fo:block xsl:use-attribute-sets="example-body-style">
3261
+ <xsl:apply-templates/>
3262
+ </fo:block>
3263
+ </xsl:when>
3264
+ <xsl:otherwise>
3265
+ <fo:inline>
3266
+ <xsl:apply-templates/>
3267
+ </fo:inline>
3268
+ </xsl:otherwise>
3269
+ </xsl:choose>
3270
+
3271
+ </fo:block>
3272
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
3273
+
3274
+ <xsl:variable name="element">
3275
+ block
3276
+
3277
+ </xsl:variable>
3278
+ <xsl:choose>
3279
+ <xsl:when test="ancestor::*[local-name() = 'appendix']">
3280
+ <fo:inline>
3281
+ <xsl:apply-templates/>
3282
+ </fo:inline>
3283
+ </xsl:when>
3284
+ <xsl:when test="normalize-space($element) = 'block'">
3285
+ <fo:block xsl:use-attribute-sets="example-name-style">
3286
+ <xsl:apply-templates/>
3287
+ </fo:block>
3288
+ </xsl:when>
3289
+ <xsl:otherwise>
3290
+ <fo:inline xsl:use-attribute-sets="example-name-style">
3291
+ <xsl:apply-templates/>
3292
+ </fo:inline>
3293
+ </xsl:otherwise>
3294
+ </xsl:choose>
3295
+
3296
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3297
+ <fo:block xsl:use-attribute-sets="example-p-style">
3298
+
3299
+ <xsl:apply-templates/>
3300
+ </fo:block>
3301
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3302
+ <fo:block xsl:use-attribute-sets="termsource-style">
3303
+ <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3304
+ <xsl:variable name="termsource_text">
3305
+ <xsl:apply-templates/>
3306
+ </xsl:variable>
3307
+ <xsl:choose>
3308
+ <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3309
+ <xsl:apply-templates/>
3310
+ </xsl:when>
3311
+ <xsl:otherwise>
3312
+ <xsl:text>[</xsl:text>
3313
+ <xsl:apply-templates/>
3314
+ <xsl:text>]</xsl:text>
3315
+ </xsl:otherwise>
3316
+ </xsl:choose>
3317
+ </fo:block>
3318
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
3319
+ <xsl:if test="normalize-space() != ''">
3320
+ <xsl:value-of select="."/>
3321
+ </xsl:if>
3322
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
3323
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3324
+
3325
+ <xsl:call-template name="getTitle">
3326
+ <xsl:with-param name="name" select="'title-source'"/>
3327
+ </xsl:call-template>
3328
+ <xsl:text>: </xsl:text>
3329
+
3330
+ <fo:inline xsl:use-attribute-sets="origin-style">
3331
+ <xsl:apply-templates/>
3332
+ </fo:inline>
3333
+ </fo:basic-link>
3334
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
3335
+ <fo:inline><xsl:apply-templates/></fo:inline>
3336
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
3337
+ <xsl:if test="normalize-space() != ''">
3338
+ <xsl:value-of select="."/>
3339
+ </xsl:if>
3340
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3341
+
3342
+ <fo:block xsl:use-attribute-sets="quote-style">
3343
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3344
+ </fo:block>
3345
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3346
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3347
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3348
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3349
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3350
+ </fo:block>
3351
+ </xsl:if>
3352
+ </xsl:template><xsl:template match="*[local-name() = 'source']">
3353
+ <xsl:if test="../*[local-name() = 'author']">
3354
+ <xsl:text>, </xsl:text>
3355
+ </xsl:if>
3356
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3357
+ <xsl:apply-templates/>
3358
+ </fo:basic-link>
3359
+ </xsl:template><xsl:template match="*[local-name() = 'author']">
3360
+ <xsl:text>— </xsl:text>
3361
+ <xsl:apply-templates/>
3362
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
3363
+ <fo:inline xsl:use-attribute-sets="eref-style">
3364
+ <xsl:if test="@type = 'footnote'">
3365
+
3366
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
3367
+ <xsl:attribute name="font-size">80%</xsl:attribute>
3368
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3369
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3370
+
3371
+
3372
+ </xsl:if>
3373
+
3374
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3375
+
3376
+ <xsl:if test="@type = 'inline'">
3377
+
3378
+ <xsl:attribute name="color">blue</xsl:attribute>
3379
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3380
+
3381
+
3382
+ </xsl:if>
3383
+
3384
+
3385
+ <xsl:apply-templates/>
3386
+ </fo:basic-link>
3387
+ </fo:inline>
3388
+ </xsl:template><xsl:template match="*[local-name() = 'tab']">
3389
+ <!-- zero-space char -->
3390
+ <xsl:variable name="depth">
3391
+ <xsl:call-template name="getLevel">
3392
+ <xsl:with-param name="depth" select="../@depth"/>
3393
+ </xsl:call-template>
3394
+ </xsl:variable>
3395
+
3396
+ <xsl:variable name="padding">
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+ <xsl:choose>
3410
+ <xsl:when test="$depth &gt;= 5"/>
3411
+ <xsl:when test="$depth &gt;= 4">5</xsl:when>
3412
+ <xsl:when test="$depth &gt;= 3 and ancestor::ogc:terms">3</xsl:when>
3413
+ <xsl:when test="$depth &gt;= 2">4</xsl:when>
3414
+ <xsl:when test="$depth = 1">4</xsl:when>
3415
+ <xsl:otherwise>2</xsl:otherwise>
3416
+ </xsl:choose>
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+ </xsl:variable>
3424
+
3425
+ <xsl:variable name="padding-right">
3426
+ <xsl:choose>
3427
+ <xsl:when test="normalize-space($padding) = ''">0</xsl:when>
3428
+ <xsl:otherwise>
3429
+ <xsl:value-of select="normalize-space($padding)"/>
3430
+ </xsl:otherwise>
3431
+ </xsl:choose>
3432
+ </xsl:variable>
3433
+
3434
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3435
+
3436
+ <xsl:choose>
3437
+ <xsl:when test="$language = 'zh'">
3438
+ <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
3439
+ </xsl:when>
3440
+ <xsl:when test="../../@inline-header = 'true'">
3441
+ <fo:inline font-size="90%">
3442
+ <xsl:call-template name="insertNonBreakSpaces">
3443
+ <xsl:with-param name="count" select="$padding-right"/>
3444
+ </xsl:call-template>
3445
+ </fo:inline>
3446
+ </xsl:when>
3447
+ <xsl:otherwise>
3448
+ <fo:inline padding-right="{$padding-right}mm">​</fo:inline>
3449
+ </xsl:otherwise>
3450
+ </xsl:choose>
3451
+
3452
+ </xsl:template><xsl:template name="insertNonBreakSpaces">
3453
+ <xsl:param name="count"/>
3454
+ <xsl:if test="$count &gt; 0">
3455
+ <xsl:text> </xsl:text>
3456
+ <xsl:call-template name="insertNonBreakSpaces">
3457
+ <xsl:with-param name="count" select="$count - 1"/>
3458
+ </xsl:call-template>
3459
+ </xsl:if>
3460
+ </xsl:template><xsl:template match="*[local-name() = 'domain']">
3461
+ <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
3462
+ <xsl:text> </xsl:text>
3463
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']">
3464
+ <fo:block xsl:use-attribute-sets="admitted-style">
3465
+ <xsl:apply-templates/>
3466
+ </fo:block>
3467
+ </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
3468
+ <xsl:variable name="title-deprecated">
3469
+ <xsl:call-template name="getTitle">
3470
+ <xsl:with-param name="name" select="'title-deprecated'"/>
3471
+ </xsl:call-template>
3472
+ </xsl:variable>
3473
+ <fo:block xsl:use-attribute-sets="deprecates-style">
3474
+ <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
3475
+ </fo:block>
3476
+ </xsl:template><xsl:template match="*[local-name() = 'definition']">
3477
+ <fo:block xsl:use-attribute-sets="definition-style">
3478
+ <xsl:apply-templates/>
3479
+ </fo:block>
3480
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]">
3481
+ <xsl:apply-templates/>
3482
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p']">
3483
+ <fo:inline> <xsl:apply-templates/></fo:inline>
3484
+ <fo:block> </fo:block>
3485
+ </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
3486
+
3487
+ <fo:block>
3488
+ <xsl:call-template name="setId"/>
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
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 -->
3497
+ <xsl:if test="$pos &gt;= 2">
3498
+ <xsl:attribute name="space-before">18pt</xsl:attribute>
3499
+ </xsl:if>
3500
+
3501
+
3502
+
3503
+
3504
+ <xsl:apply-templates/>
3505
+ </fo:block>
3506
+
3507
+
3508
+
3509
+ </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
3510
+ <fo:block break-after="page"/>
3511
+ <fo:block>
3512
+ <xsl:call-template name="setId"/>
3513
+ <xsl:apply-templates/>
3514
+ </fo:block>
3515
+ </xsl:template><xsl:template match="*[local-name() = 'clause']">
3516
+ <fo:block>
3517
+ <xsl:call-template name="setId"/>
3518
+ <xsl:apply-templates/>
3519
+ </fo:block>
3520
+ </xsl:template><xsl:template match="*[local-name() = 'definitions']">
3521
+ <fo:block id="{@id}">
3522
+ <xsl:apply-templates/>
3523
+ </fo:block>
3524
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
3525
+
3526
+ <fo:block id="{@id}">
3527
+ <xsl:apply-templates/>
3528
+ </fo:block>
3529
+ </xsl:template><xsl:template match="*[local-name() = 'annex']">
3530
+ <fo:block break-after="page"/>
3531
+ <fo:block id="{@id}">
3532
+
3533
+ </fo:block>
3534
+ <xsl:apply-templates/>
3535
+ </xsl:template><xsl:template match="*[local-name() = 'review']">
3536
+ <!-- comment 2019-11-29 -->
3537
+ <!-- <fo:block font-weight="bold">Review:</fo:block>
3538
+ <xsl:apply-templates /> -->
3539
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3540
+ <!-- 0xA0 to space replacement -->
3541
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3542
+ </xsl:template><xsl:template match="*[local-name() = 'errata']">
3543
+ <!-- <row>
3544
+ <date>05-07-2013</date>
3545
+ <type>Editorial</type>
3546
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
3547
+ <pages>D-3</pages>
3548
+ </row>
3549
+ -->
3550
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
3551
+ <fo:table-column column-width="20mm"/>
3552
+ <fo:table-column column-width="23mm"/>
3553
+ <fo:table-column column-width="107mm"/>
3554
+ <fo:table-column column-width="15mm"/>
3555
+ <fo:table-body>
3556
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
3557
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
3558
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
3559
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
3560
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
3561
+ </fo:table-row>
3562
+ <xsl:apply-templates/>
3563
+ </fo:table-body>
3564
+ </fo:table>
3565
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']">
3566
+ <fo:table-row>
3567
+ <xsl:apply-templates/>
3568
+ </fo:table-row>
3569
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
3570
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3571
+ <fo:block><xsl:apply-templates/></fo:block>
3572
+ </fo:table-cell>
3573
+ </xsl:template><xsl:template name="convertDate">
3574
+ <xsl:param name="date"/>
3575
+ <xsl:param name="format" select="'short'"/>
3576
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
3577
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
3578
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
3579
+ <xsl:variable name="monthStr">
3580
+ <xsl:choose>
3581
+ <xsl:when test="$month = '01'">January</xsl:when>
3582
+ <xsl:when test="$month = '02'">February</xsl:when>
3583
+ <xsl:when test="$month = '03'">March</xsl:when>
3584
+ <xsl:when test="$month = '04'">April</xsl:when>
3585
+ <xsl:when test="$month = '05'">May</xsl:when>
3586
+ <xsl:when test="$month = '06'">June</xsl:when>
3587
+ <xsl:when test="$month = '07'">July</xsl:when>
3588
+ <xsl:when test="$month = '08'">August</xsl:when>
3589
+ <xsl:when test="$month = '09'">September</xsl:when>
3590
+ <xsl:when test="$month = '10'">October</xsl:when>
3591
+ <xsl:when test="$month = '11'">November</xsl:when>
3592
+ <xsl:when test="$month = '12'">December</xsl:when>
3593
+ </xsl:choose>
3594
+ </xsl:variable>
3595
+ <xsl:variable name="result">
3596
+ <xsl:choose>
3597
+ <xsl:when test="$format = 'short' or $day = ''">
3598
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
3599
+ </xsl:when>
3600
+ <xsl:otherwise>
3601
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
3602
+ </xsl:otherwise>
3603
+ </xsl:choose>
3604
+ </xsl:variable>
3605
+ <xsl:value-of select="$result"/>
3606
+ </xsl:template><xsl:template name="insertKeywords">
3607
+ <xsl:param name="sorting" select="'true'"/>
3608
+ <xsl:param name="charAtEnd" select="'.'"/>
3609
+ <xsl:param name="charDelim" select="', '"/>
3610
+ <xsl:choose>
3611
+ <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
3612
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
3613
+ <xsl:sort data-type="text" order="ascending"/>
3614
+ <xsl:call-template name="insertKeyword">
3615
+ <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
3616
+ <xsl:with-param name="charDelim" select="$charDelim"/>
3617
+ </xsl:call-template>
3618
+ </xsl:for-each>
3619
+ </xsl:when>
3620
+ <xsl:otherwise>
3621
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
3804
3622
  <xsl:call-template name="insertKeyword">
3805
3623
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
3806
3624
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -3882,27 +3700,49 @@
3882
3700
  </xsl:otherwise>
3883
3701
  </xsl:choose>
3884
3702
  </xsl:template><xsl:template name="getLevel">
3885
- <xsl:variable name="level_total" select="count(ancestor::*)"/>
3886
- <xsl:variable name="level">
3887
- <xsl:choose>
3888
- <xsl:when test="ancestor::*[local-name() = 'preface']">
3889
- <xsl:value-of select="$level_total - 2"/>
3890
- </xsl:when>
3891
- <xsl:when test="ancestor::*[local-name() = 'sections']">
3892
- <xsl:value-of select="$level_total - 2"/>
3893
- </xsl:when>
3894
- <xsl:when test="ancestor::*[local-name() = 'bibliography']">
3895
- <xsl:value-of select="$level_total - 2"/>
3896
- </xsl:when>
3897
- <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
3898
- <xsl:otherwise>
3899
- <xsl:value-of select="$level_total - 1"/>
3900
- </xsl:otherwise>
3901
- </xsl:choose>
3902
- </xsl:variable>
3903
- <xsl:value-of select="$level"/>
3904
- </xsl:template><xsl:template name="getSubSection">
3905
- <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']"/>
3703
+ <xsl:param name="depth"/>
3704
+ <xsl:choose>
3705
+ <xsl:when test="normalize-space(@depth) != ''">
3706
+ <xsl:value-of select="@depth"/>
3707
+ </xsl:when>
3708
+ <xsl:when test="normalize-space($depth) != ''">
3709
+ <xsl:value-of select="$depth"/>
3710
+ </xsl:when>
3711
+ <xsl:otherwise>
3712
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
3713
+ <xsl:variable name="level">
3714
+ <xsl:choose>
3715
+ <xsl:when test="parent::*[local-name() = 'preface']">
3716
+ <xsl:value-of select="$level_total - 1"/>
3717
+ </xsl:when>
3718
+ <xsl:when test="ancestor::*[local-name() = 'preface']">
3719
+ <xsl:value-of select="$level_total - 2"/>
3720
+ </xsl:when>
3721
+ <!-- <xsl:when test="parent::*[local-name() = 'sections']">
3722
+ <xsl:value-of select="$level_total - 1"/>
3723
+ </xsl:when> -->
3724
+ <xsl:when test="ancestor::*[local-name() = 'sections']">
3725
+ <xsl:value-of select="$level_total - 1"/>
3726
+ </xsl:when>
3727
+ <xsl:when test="ancestor::*[local-name() = 'bibliography']">
3728
+ <xsl:value-of select="$level_total - 1"/>
3729
+ </xsl:when>
3730
+ <xsl:when test="parent::*[local-name() = 'annex']">
3731
+ <xsl:value-of select="$level_total - 1"/>
3732
+ </xsl:when>
3733
+ <xsl:when test="ancestor::*[local-name() = 'annex']">
3734
+ <xsl:value-of select="$level_total"/>
3735
+ </xsl:when>
3736
+ <xsl:when test="local-name() = 'annex'">1</xsl:when>
3737
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
3738
+ <xsl:otherwise>
3739
+ <xsl:value-of select="$level_total - 1"/>
3740
+ </xsl:otherwise>
3741
+ </xsl:choose>
3742
+ </xsl:variable>
3743
+ <xsl:value-of select="$level"/>
3744
+ </xsl:otherwise>
3745
+ </xsl:choose>
3906
3746
  </xsl:template><xsl:template name="split">
3907
3747
  <xsl:param name="pText" select="."/>
3908
3748
  <xsl:param name="sep" select="','"/>
@@ -3948,4 +3788,15 @@
3948
3788
  <xsl:when test="$language = 'cn'">Chinese</xsl:when>
3949
3789
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3950
3790
  </xsl:choose>
3791
+ </xsl:template><xsl:template name="setId">
3792
+ <xsl:attribute name="id">
3793
+ <xsl:choose>
3794
+ <xsl:when test="@id">
3795
+ <xsl:value-of select="@id"/>
3796
+ </xsl:when>
3797
+ <xsl:otherwise>
3798
+ <xsl:value-of select="generate-id()"/>
3799
+ </xsl:otherwise>
3800
+ </xsl:choose>
3801
+ </xsl:attribute>
3951
3802
  </xsl:template></xsl:stylesheet>