metanorma-ogc 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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>