metanorma-gb 1.4.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,6 +8,8 @@ module Asciidoctor
8
8
  class Converter < ISO::Converter
9
9
  def sectiontype_streamline(ret)
10
10
  case ret
11
+ when "前言" then "foreword"
12
+ when "致謝" then "acknowledgements"
11
13
  when "引言" then "introduction"
12
14
  when "范围" then "scope"
13
15
  when "规范性引用文件" then "normative references"
@@ -21,6 +23,15 @@ module Asciidoctor
21
23
  end
22
24
  end
23
25
 
26
+ def symbols_attrs(node, a)
27
+ case sectiontype1(node)
28
+ when "符号" then a.merge(type: "symbols")
29
+ when "代号和缩略语" then a.merge(type: "abbreviated_terms")
30
+ else
31
+ super
32
+ end
33
+ end
34
+
24
35
  def appendix_parse(attrs, xml, node)
25
36
  # UNSAFE, there is no unset_option() in asciidoctor
26
37
  node.remove_attr("appendix-option")
@@ -1,7 +1,6 @@
1
1
  module Asciidoctor
2
2
  module Gb
3
3
  class Converter < ISO::Converter
4
-
5
4
  def validate(doc)
6
5
  content_validate(doc)
7
6
  schema_validate(formattedstr_strip(doc.dup),
@@ -1,33 +1,23 @@
1
1
  require_relative "common"
2
2
  require "gb_agencies"
3
3
  require_relative "cleanup"
4
- require_relative "metadata"
5
4
  require "fileutils"
6
5
 
7
6
  module IsoDoc
8
7
  module Gb
9
8
  module BaseConvert
10
- def extract_fonts(options)
9
+ def scss_fontheader
11
10
  b = options[:bodyfont] || "Arial"
12
11
  h = options[:headerfont] || "Arial"
13
12
  m = options[:monospacefont] || "Courier"
14
13
  t = options[:titlefont] || "Arial"
15
14
  "$bodyfont: #{b};\n$headerfont: #{h};\n$monospacefont: #{m};\n"\
16
15
  "$titlefont: #{t};\n"
17
- end
18
-
19
- def metadata_init(lang, script, labels)
20
- unless ["en", "zh"].include? lang
21
- lang = "zh"
22
- script = "Hans"
23
- end
24
- @meta = Metadata.new(lang, script, labels)
25
- @meta.set(:standardclassimg, @standardclassimg)
26
- @common.meta = @meta
27
16
  end
28
17
 
29
18
  def cleanup(docxml)
30
- @cleanup = Cleanup.new(@script, @deprecated_lbl)
19
+ @i18n ||= i18n_init(@lang, @script)
20
+ @cleanup = Cleanup.new(@script, @i18n.deprecated)
31
21
  super
32
22
  @cleanup.cleanup(docxml)
33
23
  docxml
@@ -38,43 +28,26 @@ module IsoDoc
38
28
  @cleanup.example_cleanup(docxml)
39
29
  end
40
30
 
41
- def i18n_init(lang, script)
42
- super
43
- y = if lang == "en"
44
- YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
45
- elsif lang == "zh" && script == "Hans"
46
- YAML.load_file(File.join(File.dirname(__FILE__),
47
- "i18n-zh-Hans.yaml"))
48
- else
49
- YAML.load_file(File.join(File.dirname(__FILE__),
50
- "i18n-zh-Hans.yaml"))
51
- end
52
- @labels = @labels.merge(y)
53
- end
54
-
55
31
  def omit_docid_prefix(prefix)
56
32
  super || prefix == "Chinese Standard"
57
33
  end
58
34
 
59
- def formula_parse(node, out)
60
- out.div **formula_attrs(node) do |div1|
61
- div1.div **attr_code(class: "formula") do |div|
35
+ def formula_parse1(node, out)
36
+ out.div **attr_code(class: "formula") do |div|
62
37
  insert_tab(div, 1)
63
38
  parse(node.at(ns("./stem")), div)
64
- lbl = @xrefs.anchor(node['id'], :label, false)
39
+ lbl = node&.at(ns("./name"))&.text
65
40
  unless lbl.nil?
66
41
  insert_tab(div, 1)
67
42
  div << "(#{lbl})"
68
43
  end
69
44
  end
70
- formula_where(node.at(ns("./dl")), div1)
71
- end
72
45
  end
73
46
 
74
47
  def formula_where(dl, out)
75
48
  return unless dl
76
49
  out.p **{ style: "page-break-after:avoid;"} do |p|
77
- p << @where_lbl
50
+ p << @i18n.where
78
51
  end
79
52
  formula_dl_parse(dl, out)
80
53
  end
@@ -99,32 +72,37 @@ module IsoDoc
99
72
  { class: "example_label",
100
73
  style: "padding:2pt 2pt 2pt 2pt;vertical-align:top;" }.freeze
101
74
 
102
- def example_label(node)
103
- l10n(super + ":")
75
+ def note_delim
76
+ l10n(": ")
104
77
  end
105
78
 
106
79
  def note_parse(node, out)
107
- note_parse_table(node, out, note_label(node) + ":")
80
+ note_parse_table(node, out)
108
81
  end
109
82
 
110
- def note_parse_table(node, out, label)
83
+ def note_parse_table(node, out)
111
84
  @note = true
85
+ name = node&.at(ns("./name"))&.remove
86
+ note_parse_table1(node, out, name)
87
+ @note = false
88
+ end
89
+
90
+ def note_parse_table1(node, out, name)
112
91
  out.table **note_attrs(node) do |t|
113
92
  t.tr do |tr|
114
- @libdir = File.dirname(__FILE__)
115
93
  tr.td **EXAMPLE_TBL_ATTR do |td|
116
- td << l10n(label)
94
+ name and name.children.each { |n| parse(n, td) }
95
+ td << note_delim
117
96
  end
118
97
  tr.td **{ style: "vertical-align:top;", class: "Note" } do |td|
119
98
  node.children.each { |n| parse(n, td) }
120
99
  end
121
100
  end
122
101
  end
123
- @note = false
124
102
  end
125
103
 
126
104
  def termnote_parse(node, out)
127
- note_parse_table(node, out, "#{@xrefs.anchor(node['id'], :label)}:")
105
+ note_parse_table(node, out)
128
106
  end
129
107
 
130
108
  def middle(isoxml, out)
@@ -157,19 +135,19 @@ module IsoDoc
157
135
 
158
136
  def deprecated_term_parse(node, out)
159
137
  out.p **{ class: "DeprecatedTerms" } do |p|
160
- p << l10n("#{@deprecated_lbl}: ")
138
+ p << l10n("#{@i18n.deprecated}: ")
161
139
  node.children.each { |c| parse(c, p) }
162
140
  end
163
141
  end
164
142
 
165
143
  def termref_render(x)
166
- x.sub!(%r{\s*\[MODIFICATION\]\s*$}m, l10n(", #{@modified_lbl}"))
144
+ x.sub!(%r{\s*\[MODIFICATION\]\s*$}m, l10n(", #{@i18n.modified}"))
167
145
  parts = x.split(%r{(\s*\[MODIFICATION\]|,)}m)
168
- parts[1] = l10n(", #{@source_lbl}") if parts.size > 1 &&
169
- parts[1] == "," && !/^\s*#{@modified_lbl}/.match(parts[2])
146
+ parts[1] = l10n(", #{@i18n.source}") if parts.size > 1 &&
147
+ parts[1] == "," && !/^\s*#{@i18n.modified}/.match(parts[2])
170
148
  parts.map do |p|
171
149
  /\s*\[MODIFICATION\]/.match(p) ?
172
- l10n(", #{@modified_lbl} &mdash; ") : p
150
+ l10n(", #{@i18n.modified} &mdash; ") : p
173
151
  end.join.sub(/\A\s*/m, l10n("[")).sub(/\s*\z/m, l10n("]"))
174
152
  end
175
153
 
@@ -181,42 +159,12 @@ module IsoDoc
181
159
  end.join
182
160
  end
183
161
 
184
- def foreword(isoxml, out)
185
- f = isoxml.at(ns("//foreword")) || return
186
- page_break(out)
187
- out.div do |s|
188
- s.h1 **{ class: "ForewordTitle" } do |h1|
189
- h1 << "#{@foreword_lbl}&nbsp;"
190
- # insert_tab(h1, 1)
191
- end
192
- f.elements.each { |e| parse(e, s) unless e.name == "title" }
193
- end
194
- end
195
-
196
162
  def clausedelimspace(out)
197
163
  out << "&#x3000;"
198
164
  end
199
165
 
200
- def clause_name(num, title, div, header_class)
201
- header_class = {} if header_class.nil?
202
- div.h1 **attr_code(header_class) do |h1|
203
- if num && !@suppressheadingnumbers
204
- h1 << "#{num}."
205
- h1 << "&#x3000;"
206
- end
207
- title.is_a?(String) ? h1 << title :
208
- title&.children&.each { |c2| parse(c2, h1) }
209
- end
210
- div.parent.at(".//h1")
211
- end
212
-
213
166
  def example_span_label(node, div, name)
214
- n = @xrefs.get[node["id"]]
215
167
  div.span **{ class: "example_label" } do |p|
216
- lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @example_lbl :
217
- l10n("#{@example_lbl} #{n[:label]}")
218
- p << l10n(lbl + ":")
219
- name and !lbl.nil? and p << "&nbsp;&mdash; "
220
168
  name and name.children.each { |n| parse(n, div) }
221
169
  end
222
170
  end
@@ -74,17 +74,6 @@ module IsoDoc
74
74
  term_merge(docxml, "DeprecatedTerms")
75
75
  docxml
76
76
  end
77
-
78
- =begin
79
- def intro_cleanup(docxml)
80
- # insert tab for purposes of ToC lining up
81
- docxml.xpath("//h1[@class = 'IntroTitle']").each do |h1|
82
- if h1.content == "引言"
83
- h1.add_child('<span style="mso-tab-count:1">&#xA0; </span>')
84
- end
85
- end
86
- end
87
- =end
88
77
  end
89
78
  end
90
79
  end
@@ -39,21 +39,18 @@
39
39
  <contents>
40
40
  <xsl:apply-templates select="/gb:gb-standard/gb:preface/node()" mode="contents"/>
41
41
 
42
- <xsl:apply-templates select="/gb:gb-standard/gb:sections/gb:clause[1]" mode="contents"> <!-- [@id = '_scope'] -->
43
- <xsl:with-param name="sectionNum" select="'1'"/>
44
- </xsl:apply-templates>
45
- <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[1]" mode="contents"> <!-- [@id = '_normative_references'] -->
46
- <xsl:with-param name="sectionNum" select="'2'"/>
47
- </xsl:apply-templates>
48
- <xsl:apply-templates select="/gb:gb-standard/gb:sections/*[position() &gt; 1]" mode="contents"> <!-- @id != '_scope' -->
49
- <xsl:with-param name="sectionNumSkew" select="'1'"/>
50
- </xsl:apply-templates>
42
+ <xsl:apply-templates select="/gb:gb-standard/gb:sections/gb:clause[1]" mode="contents"/> <!-- [@id = '_scope'] -->
43
+
44
+ <!-- Normative references -->
45
+ <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[1]" mode="contents"/> <!-- [@id = '_normative_references'] -->
46
+
47
+ <xsl:apply-templates select="/gb:gb-standard/gb:sections/*[position() &gt; 1]" mode="contents"/> <!-- @id != '_scope' -->
48
+
51
49
  <xsl:apply-templates select="/gb:gb-standard/gb:annex" mode="contents"/>
52
- <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[position() &gt; 1]" mode="contents"/> <!-- @id = '_bibliography' -->
53
50
 
54
- <xsl:apply-templates select="//gb:figure" mode="contents"/>
51
+ <!-- Bibliography -->
52
+ <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[position() &gt; 1]" mode="contents"/> <!-- @id = '_bibliography' -->
55
53
 
56
- <xsl:apply-templates select="//gb:table" mode="contents"/>
57
54
  </contents>
58
55
  </xsl:variable>
59
56
 
@@ -62,7 +59,7 @@
62
59
  </xsl:variable>
63
60
 
64
61
  <xsl:template match="/">
65
- <xsl:message>INFO: Document namespace: '<xsl:value-of select="namespace-uri(/*)"/>'</xsl:message>
62
+ <xsl:call-template name="namespaceCheck"/>
66
63
  <fo:root font-family="SimSun" font-size="10.5pt" xml:lang="{$lang}"> <!-- -->
67
64
  <fo:layout-master-set>
68
65
 
@@ -344,32 +341,19 @@
344
341
 
345
342
  <fo:block line-height="220%">
346
343
  <xsl:variable name="margin-left">12</xsl:variable>
347
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true'][not(@level = 2 and starts-with(@section, '0'))]"><!-- skip clause from preface -->
344
+ <xsl:for-each select="xalan:nodeset($contents)//item"><!-- [@display = 'true'][not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
348
345
  <fo:block text-align-last="justify">
349
346
  <xsl:if test="@level =2">
350
347
  <xsl:attribute name="margin-left">3.7mm</xsl:attribute>
351
348
  </xsl:if>
352
349
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
353
- <xsl:if test="normalize-space(@section) != '' and not(@display-section = 'false')">
354
- <fo:inline>
355
- <xsl:if test="@type = 'annex' and @level = 1">
356
- <xsl:attribute name="font-weight">bold</xsl:attribute>
357
- </xsl:if>
350
+ <xsl:if test="normalize-space(@section) != ''">
351
+ <fo:inline>
358
352
  <xsl:value-of select="@section"/>
359
353
  </fo:inline>
360
- <xsl:if test="not(@type = 'annex' and @level = 1)">
361
- <xsl:text>. </xsl:text>
362
- </xsl:if>
363
- <xsl:if test="@type = 'annex' and @level = 1">
364
- <xsl:text> </xsl:text>
365
- </xsl:if>
366
- </xsl:if>
367
- <xsl:if test="@addon != ''">
368
- <fo:inline font-weight="normal">(<xsl:value-of select="@addon"/>)</fo:inline>
369
- <xsl:text> </xsl:text>
354
+ <xsl:value-of select="$tab_zh"/>
370
355
  </xsl:if>
371
- <xsl:value-of select="text()"/>
372
- <xsl:text> </xsl:text>
356
+ <xsl:apply-templates/>
373
357
  <fo:inline keep-together.within-line="always">
374
358
  <fo:leader font-weight="normal" leader-pattern="dots"/>
375
359
  <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
@@ -407,19 +391,13 @@
407
391
  </xsl:call-template>
408
392
  </fo:block>
409
393
 
410
- <xsl:apply-templates select="/gb:gb-standard/gb:sections/gb:clause[1]"> <!-- Scope -->
411
- <xsl:with-param name="sectionNum" select="'1'"/>
412
- </xsl:apply-templates>
394
+ <xsl:apply-templates select="/gb:gb-standard/gb:sections/gb:clause[1]"/> <!-- Scope -->
413
395
 
414
396
  <!-- Normative references -->
415
- <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[1]">
416
- <xsl:with-param name="sectionNum" select="'2'"/>
417
- </xsl:apply-templates>
397
+ <xsl:apply-templates select="/gb:gb-standard/gb:bibliography/gb:references[1]"/>
418
398
 
419
399
  <!-- Main sections -->
420
- <xsl:apply-templates select="/gb:gb-standard/gb:sections/*[position() &gt; 1]">
421
- <xsl:with-param name="sectionNumSkew" select="'1'"/>
422
- </xsl:apply-templates>
400
+ <xsl:apply-templates select="/gb:gb-standard/gb:sections/*[position() &gt; 1]"/>
423
401
 
424
402
  <!-- Annex(s) -->
425
403
  <xsl:apply-templates select="/gb:gb-standard/gb:annex"/>
@@ -482,185 +460,57 @@
482
460
  </xsl:if>
483
461
  </xsl:template>
484
462
 
485
- <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
486
- <xsl:template match="node()">
487
- <xsl:param name="sectionNum"/>
488
- <xsl:param name="sectionNumSkew"/>
489
- <xsl:apply-templates>
490
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
491
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
492
- </xsl:apply-templates>
463
+ <xsl:template match="node()">
464
+ <xsl:apply-templates/>
493
465
  </xsl:template>
494
466
 
495
467
  <!-- ============================= -->
496
468
  <!-- CONTENTS -->
497
469
  <!-- ============================= -->
498
- <xsl:template match="node()" mode="contents">
499
- <xsl:param name="sectionNum"/>
500
- <xsl:param name="sectionNumSkew"/>
501
- <xsl:apply-templates mode="contents">
502
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
503
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
504
- </xsl:apply-templates>
470
+ <xsl:template match="node()" mode="contents">
471
+ <xsl:apply-templates mode="contents"/>
505
472
  </xsl:template>
506
473
 
507
-
508
- <!-- calculate main section number (1,2,3) and pass it deep into templates -->
509
- <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
510
- <xsl:template match="gb:gb-standard/gb:sections/*" mode="contents">
511
- <xsl:param name="sectionNum"/>
512
- <xsl:param name="sectionNumSkew" select="0"/>
513
- <xsl:variable name="sectionNum_">
514
- <xsl:choose>
515
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
516
- <xsl:when test="$sectionNumSkew != 0">
517
- <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!-- gb:sections/gb:clause | gb:sections/gb:terms -->
518
- <xsl:value-of select="$number + $sectionNumSkew"/>
519
- </xsl:when>
520
- <xsl:otherwise>
521
- <xsl:number count="*"/>
522
- </xsl:otherwise>
523
- </xsl:choose>
524
- </xsl:variable>
525
- <xsl:apply-templates mode="contents">
526
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
527
- </xsl:apply-templates>
528
- </xsl:template>
529
-
530
- <!-- Any node with title element - clause, definition, annex,... -->
531
- <xsl:template match="gb:title | gb:preferred" mode="contents">
532
- <xsl:param name="sectionNum"/>
533
- <!-- sectionNum=<xsl:value-of select="$sectionNum"/> -->
534
- <xsl:variable name="id">
535
- <xsl:call-template name="getId"/>
536
- </xsl:variable>
537
-
474
+ <!-- element with title -->
475
+ <xsl:template match="*[gb:title]" mode="contents">
538
476
  <xsl:variable name="level">
539
- <xsl:call-template name="getLevel"/>
540
- </xsl:variable>
541
-
542
- <xsl:variable name="section">
543
- <xsl:call-template name="getSection">
544
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
477
+ <xsl:call-template name="getLevel">
478
+ <xsl:with-param name="depth" select="gb:title/@depth"/>
545
479
  </xsl:call-template>
546
480
  </xsl:variable>
547
481
 
548
482
  <xsl:variable name="display">
549
483
  <xsl:choose>
550
- <xsl:when test="ancestor::gb:bibitem">false</xsl:when>
551
- <xsl:when test="ancestor::gb:term">false</xsl:when>
552
- <xsl:when test="ancestor::gb:annex and $level &gt;= 3">false</xsl:when>
553
- <xsl:when test="$level &lt;= 3">true</xsl:when>
484
+ <xsl:when test="ancestor-or-self::gb:bibitem">false</xsl:when>
485
+ <xsl:when test="ancestor-or-self::gb:term">false</xsl:when>
486
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
554
487
  <xsl:otherwise>false</xsl:otherwise>
555
488
  </xsl:choose>
556
489
  </xsl:variable>
557
490
 
558
- <xsl:variable name="display-section">true</xsl:variable>
559
-
560
- <xsl:variable name="type">
561
- <xsl:value-of select="local-name(..)"/>
562
- </xsl:variable>
563
-
564
- <xsl:variable name="root">
565
- <xsl:choose>
566
- <xsl:when test="ancestor::gb:annex">annex</xsl:when>
567
- </xsl:choose>
568
- </xsl:variable>
569
-
570
- <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
571
- <xsl:attribute name="addon">
572
- <xsl:if test="local-name(..) = 'annex'">
573
- <xsl:variable name="obligation" select="../@obligation"/>
574
- <xsl:variable name="title-obligation-normative">
575
- <xsl:call-template name="getTitle">
576
- <xsl:with-param name="name" select="'title-obligation-normative'"/>
577
- </xsl:call-template>
578
- </xsl:variable>
579
- <xsl:choose>
580
- <xsl:when test="$obligation = 'normative'"><xsl:value-of select="$title-obligation-normative"/></xsl:when>
581
- <xsl:otherwise><xsl:value-of select="$obligation"/></xsl:otherwise>
582
- </xsl:choose>
583
- </xsl:if>
584
- </xsl:attribute>
585
- <xsl:value-of select="."/>
586
- </item>
491
+ <xsl:if test="$display = 'true'">
587
492
 
588
- <xsl:apply-templates mode="contents">
589
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
590
- </xsl:apply-templates>
493
+ <xsl:variable name="section">
494
+ <xsl:call-template name="getSection"/>
495
+ </xsl:variable>
496
+
497
+ <xsl:variable name="title">
498
+ <xsl:call-template name="getName"/>
499
+ </xsl:variable>
500
+
501
+ <xsl:variable name="type">
502
+ <xsl:value-of select="local-name()"/>
503
+ </xsl:variable>
504
+
505
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}">
506
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
507
+ </item>
508
+ <xsl:apply-templates mode="contents"/>
509
+ </xsl:if>
591
510
 
592
511
  </xsl:template>
593
512
 
594
513
 
595
- <xsl:template match="gb:figure" mode="contents">
596
- <item level="" id="{@id}" display="false">
597
- <xsl:attribute name="section">
598
- <xsl:call-template name="getFigureNumber"/>
599
- </xsl:attribute>
600
- </item>
601
- </xsl:template>
602
-
603
- <xsl:template match="gb:table" mode="contents">
604
- <xsl:param name="sectionNum"/>
605
- <xsl:variable name="annex-id" select="ancestor::gb:annex/@id"/>
606
- <item level="" id="{@id}" display="false" type="table">
607
- <xsl:attribute name="section">
608
- <xsl:variable name="title-table">
609
- <xsl:call-template name="getTitle">
610
- <xsl:with-param name="name" select="'title-table'"/>
611
- </xsl:call-template>
612
- </xsl:variable>
613
- <xsl:value-of select="$title-table"/>
614
- <xsl:choose>
615
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
616
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
617
- </xsl:when>
618
- <xsl:when test="ancestor::*[local-name()='annex']">
619
- <xsl:number format="A-" count="gb:annex"/>
620
- <xsl:number format="1" level="any" count="gb:table[ancestor::gb:annex[@id = $annex-id]]"/>
621
- </xsl:when>
622
- <xsl:otherwise>
623
- <!-- <xsl:number format="1"/> -->
624
- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/>
625
- </xsl:otherwise>
626
- </xsl:choose>
627
- </xsl:attribute>
628
- <xsl:value-of select="gb:name/text()"/>
629
- </item>
630
- </xsl:template>
631
-
632
- <xsl:template match="gb:formula" mode="contents">
633
- <item level="" id="{@id}" display="false">
634
- <xsl:attribute name="section">
635
- <xsl:variable name="title-formula">
636
- <xsl:call-template name="getTitle">
637
- <xsl:with-param name="name" select="'title-formula'"/>
638
- </xsl:call-template>
639
- </xsl:variable>
640
- <xsl:value-of select="$title-formula"/><xsl:number format="(A.1)" level="multiple" count="gb:annex | gb:formula"/>
641
- </xsl:attribute>
642
- </item>
643
- </xsl:template>
644
-
645
- <xsl:template match="gb:li" mode="contents">
646
- <xsl:param name="sectionNum"/>
647
- <item level="" id="{@id}" display="false" type="li">
648
- <xsl:attribute name="section">
649
- <xsl:call-template name="getListItemFormat"/>
650
- </xsl:attribute>
651
- <xsl:attribute name="parent_section">
652
- <xsl:for-each select="ancestor::*[not(local-name() = 'p' or local-name() = 'ol')][1]">
653
- <xsl:call-template name="getSection">
654
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
655
- </xsl:call-template>
656
- </xsl:for-each>
657
- </xsl:attribute>
658
- </item>
659
- <xsl:apply-templates mode="contents">
660
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
661
- </xsl:apply-templates>
662
- </xsl:template>
663
-
664
514
  <xsl:template name="getListItemFormat">
665
515
  <xsl:choose>
666
516
  <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- dash -->
@@ -683,6 +533,9 @@
683
533
  <!-- ============================= -->
684
534
  <!-- ============================= -->
685
535
 
536
+ <xsl:template match="*[local-name() = 'tab']" priority="2">
537
+ <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
538
+ </xsl:template>
686
539
 
687
540
  <xsl:template match="gb:license-statement//gb:title">
688
541
  <fo:block text-align="center" font-weight="bold">
@@ -729,87 +582,50 @@
729
582
  </fo:block>
730
583
  </xsl:template>
731
584
 
732
- <!-- Foreword, Introduction -->
733
- <xsl:template match="gb:gb-standard/gb:preface/*">
734
- <fo:block break-after="page"/>
735
- <xsl:apply-templates/>
736
- </xsl:template>
737
585
 
586
+ <!-- ====== -->
587
+ <!-- title -->
588
+ <!-- ====== -->
738
589
 
739
- <!-- clause, terms, clause, ...-->
740
- <xsl:template match="gb:gb-standard/gb:sections/*">
741
- <xsl:param name="sectionNum"/>
742
- <xsl:param name="sectionNumSkew" select="0"/>
743
- <fo:block>
744
- <xsl:variable name="pos"><xsl:number count="gb:sections/gb:clause | gb:sections/gb:terms"/></xsl:variable>
745
- <xsl:if test="$pos &gt;= 2">
746
- <xsl:attribute name="space-before">18pt</xsl:attribute>
747
- </xsl:if>
748
- <!-- pos=<xsl:value-of select="$pos" /> -->
749
- <xsl:variable name="sectionNum_">
750
- <xsl:choose>
751
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
752
- <xsl:when test="$sectionNumSkew != 0">
753
- <xsl:variable name="number"><xsl:number count="gb:sections/gb:clause | gb:sections/gb:terms"/></xsl:variable>
754
- <xsl:value-of select="$number + $sectionNumSkew"/>
755
- </xsl:when>
756
- </xsl:choose>
757
- </xsl:variable>
758
- <xsl:if test="not(gb:title)">
759
- <fo:block margin-top="3pt" margin-bottom="12pt">
760
- <xsl:value-of select="$sectionNum_"/><xsl:number format=".1 " level="multiple" count="gb:clause"/>
761
- </fo:block>
762
- </xsl:if>
763
- <xsl:apply-templates>
764
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
765
- </xsl:apply-templates>
590
+ <xsl:template match="gb:annex/gb:title">
591
+ <xsl:variable name="level">
592
+ <xsl:call-template name="getLevel"/>
593
+ </xsl:variable>
594
+ <xsl:variable name="font-family">
595
+ <xsl:choose>
596
+ <xsl:when test="$level &gt;= 3">SimSun</xsl:when>
597
+ <xsl:otherwise>SimHei</xsl:otherwise>
598
+ </xsl:choose>
599
+ </xsl:variable>
600
+ <fo:block font-family="{$font-family}" font-size="10.5pt" text-align="center" margin-bottom="24pt" keep-with-next="always">
601
+ <xsl:apply-templates/>
766
602
  </fo:block>
767
603
  </xsl:template>
768
604
 
769
-
770
- <xsl:template match="gb:clause//gb:clause[not(gb:title)]">
771
- <xsl:param name="sectionNum"/>
772
- <xsl:variable name="section">
773
- <xsl:call-template name="getSection">
774
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
775
- </xsl:call-template>
776
- </xsl:variable>
777
- <fo:block margin-top="6pt" margin-bottom="6pt" keep-with-next="always">
778
- <fo:inline font-family="SimHei">
779
- <xsl:value-of select="$section"/><xsl:text>.</xsl:text>
780
- </fo:inline>
605
+ <!-- Bibliography -->
606
+ <xsl:template match="gb:references[position() &gt; 1]/gb:title">
607
+ <fo:block font-family="SimHei" text-align="center" margin-top="6pt" margin-bottom="16pt" keep-with-next="always">
608
+ <xsl:apply-templates/>
781
609
  </fo:block>
782
- <xsl:apply-templates>
783
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
784
- </xsl:apply-templates>
785
610
  </xsl:template>
786
611
 
787
-
788
612
  <xsl:template match="gb:title">
789
- <xsl:param name="sectionNum"/>
790
-
791
- <xsl:variable name="parent-name" select="local-name(..)"/>
792
- <xsl:variable name="references_num_current">
793
- <xsl:number level="any" count="gb:references"/>
794
- </xsl:variable>
795
-
796
- <xsl:variable name="id">
797
- <xsl:call-template name="getId"/>
798
- </xsl:variable>
799
613
 
800
614
  <xsl:variable name="level">
801
615
  <xsl:call-template name="getLevel"/>
802
616
  </xsl:variable>
803
617
 
804
- <xsl:variable name="section">
805
- <xsl:call-template name="getSection">
806
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
807
- </xsl:call-template>
618
+ <xsl:variable name="element-name">
619
+ <xsl:choose>
620
+ <xsl:when test="../@inline-header = 'true'">fo:inline</xsl:when>
621
+ <xsl:otherwise>fo:block</xsl:otherwise>
622
+ </xsl:choose>
808
623
  </xsl:variable>
809
624
 
810
625
  <xsl:variable name="font-family">
811
626
  <xsl:choose>
812
627
  <xsl:when test="ancestor::gb:annex and $level &gt;= 3">SimSun</xsl:when>
628
+ <xsl:when test="$element-name = 'fo:inline'">SimSun</xsl:when>
813
629
  <xsl:otherwise>SimHei</xsl:otherwise>
814
630
  </xsl:choose>
815
631
  </xsl:variable>
@@ -821,98 +637,65 @@
821
637
  </xsl:choose>
822
638
  </xsl:variable>
823
639
 
824
- <xsl:variable name="element-name">
825
- <xsl:choose>
826
- <xsl:when test="../@inline-header = 'true'">fo:inline</xsl:when>
827
- <xsl:otherwise>fo:block</xsl:otherwise>
828
- </xsl:choose>
829
- </xsl:variable>
830
640
 
831
- <xsl:choose>
832
- <xsl:when test="$parent-name = 'annex'">
833
- <fo:block id="{$id}" font-family="{$font-family}" font-size="{$font-size}" text-align="center" margin-bottom="12pt" keep-with-next="always">
834
- <xsl:value-of select="$section"/>
835
- <xsl:if test=" ../@obligation">
836
- <xsl:value-of select="$linebreak"/>
837
- <fo:inline font-weight="normal">
838
- <xsl:text>(</xsl:text>
839
- <xsl:variable name="obligation" select="../@obligation"/>
840
- <xsl:variable name="title-obligation-normative">
841
- <xsl:call-template name="getTitle">
842
- <xsl:with-param name="name" select="'title-obligation-normative'"/>
843
- </xsl:call-template>
844
- </xsl:variable>
845
- <xsl:choose>
846
- <xsl:when test="$obligation = 'normative'"><xsl:value-of select="$title-obligation-normative"/></xsl:when>
847
- <xsl:otherwise><xsl:value-of select="$obligation"/></xsl:otherwise>
848
- </xsl:choose>
849
- <xsl:text>)</xsl:text>
850
- </fo:inline>
851
- </xsl:if>
852
- <fo:block margin-top="14pt" margin-bottom="24pt"><xsl:apply-templates/></fo:block>
853
- </fo:block>
854
- </xsl:when>
855
- <xsl:when test="$parent-name = 'references' and $references_num_current != 1"> <!-- Bibliography -->
856
- <fo:block id="{$id}" font-family="{$font-family}" text-align="center" margin-top="6pt" margin-bottom="16pt" keep-with-next="always">
857
- <xsl:apply-templates/>
858
- </fo:block>
859
- </xsl:when>
641
+
642
+ <xsl:element name="{$element-name}">
643
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
644
+ <xsl:attribute name="font-family"><xsl:value-of select="$font-family"/></xsl:attribute>
645
+ <xsl:attribute name="margin-top">
646
+ <xsl:choose>
647
+ <xsl:when test="ancestor::gb:preface">8pt</xsl:when>
648
+ <xsl:when test="$level = 2 and ancestor::gb:annex">10pt</xsl:when>
649
+ <xsl:when test="$level = 1">16pt</xsl:when>
650
+ <xsl:when test="$level = ''">6pt</xsl:when>
651
+ <xsl:when test="$level &gt;= 5">6pt</xsl:when>
652
+ <xsl:otherwise>12pt</xsl:otherwise>
653
+ </xsl:choose>
654
+ </xsl:attribute>
655
+ <xsl:attribute name="margin-bottom">
656
+ <xsl:choose>
657
+ <xsl:when test="ancestor::gb:preface">24pt</xsl:when>
658
+ <xsl:when test="$level = 1">16pt</xsl:when>
659
+ <xsl:when test="$level &gt;= 5">6pt</xsl:when>
660
+ <xsl:otherwise>8pt</xsl:otherwise>
661
+ </xsl:choose>
662
+ </xsl:attribute>
860
663
 
861
- <xsl:otherwise>
862
- <xsl:element name="{$element-name}">
863
- <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
864
- <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
865
- <xsl:attribute name="font-family"><xsl:value-of select="$font-family"/></xsl:attribute>
866
- <xsl:attribute name="margin-top">
867
- <xsl:choose>
868
- <xsl:when test="ancestor::gb:preface">8pt</xsl:when>
869
- <xsl:when test="$level = 2 and ancestor::gb:annex">10pt</xsl:when>
870
- <xsl:when test="$level = 1">16pt</xsl:when>
871
- <xsl:when test="$level = ''">6pt</xsl:when>
872
- <xsl:otherwise>12pt</xsl:otherwise>
873
- </xsl:choose>
874
- </xsl:attribute>
875
- <xsl:attribute name="margin-bottom">
876
- <xsl:choose>
877
- <xsl:when test="ancestor::gb:preface">24pt</xsl:when>
878
- <xsl:when test="$level = 1">16pt</xsl:when>
879
- <xsl:otherwise>8pt</xsl:otherwise>
880
- </xsl:choose>
881
- </xsl:attribute>
882
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
883
- <xsl:if test="ancestor::gb:preface">
884
- <xsl:attribute name="text-align">center</xsl:attribute>
885
- <xsl:attribute name="font-family">SimHei</xsl:attribute>
886
- </xsl:if>
887
- <xsl:if test="$element-name = 'fo:inline'">
888
- <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
889
- </xsl:if>
890
-
891
- <xsl:value-of select="$section"/>
892
- <xsl:if test="$section != ''">. </xsl:if>
664
+
665
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
666
+ <xsl:if test="ancestor::gb:preface">
667
+ <xsl:attribute name="text-align">center</xsl:attribute>
668
+ <xsl:attribute name="font-family">SimHei</xsl:attribute>
669
+ </xsl:if>
670
+ <xsl:if test="$element-name = 'fo:inline'">
671
+ <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
672
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
673
+ </xsl:if>
674
+
675
+ <xsl:apply-templates/>
676
+
677
+ <xsl:if test="$element-name = 'fo:inline'">
678
+ <xsl:value-of select="$tab_zh"/>
679
+ </xsl:if>
680
+
681
+ </xsl:element>
682
+
683
+ <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::gb:p)">
684
+ <!-- <fo:block> -->
685
+ <xsl:value-of select="$linebreak"/>
686
+ <!-- </fo:block> -->
687
+ </xsl:if>
893
688
 
894
- <xsl:apply-templates/>
895
- </xsl:element>
896
-
897
- <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::gb:p)">
898
- <!-- <fo:block> -->
899
- <xsl:value-of select="$linebreak"/>
900
- <!-- </fo:block> -->
901
- </xsl:if>
902
- </xsl:otherwise>
903
- </xsl:choose>
904
- </xsl:template>
689
+ </xsl:template>
690
+ <!-- ====== -->
691
+ <!-- ====== -->
905
692
 
906
-
907
693
 
908
- <xsl:template match="gb:p">
909
- <xsl:param name="inline" select="'false'"/>
694
+ <xsl:template match="gb:p">
910
695
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
911
696
  <xsl:variable name="element-name">
912
- <xsl:choose>
913
- <xsl:when test="$inline = 'true'">fo:inline</xsl:when>
914
- <xsl:when test="../@inline-header = 'true' and $previous-element = 'title'">fo:inline</xsl:when> <!-- first paragraph after inline title -->
915
- <!-- <xsl:when test="local-name(..) = 'admonition'">fo:inline</xsl:when> -->
697
+ <xsl:choose>
698
+ <xsl:when test="../@inline-header = 'true' and $previous-element = 'title'">fo:inline</xsl:when> <!-- first paragraph after inline title -->
916
699
  <xsl:otherwise>fo:block</xsl:otherwise>
917
700
  </xsl:choose>
918
701
  </xsl:variable>
@@ -922,7 +705,7 @@
922
705
  <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
923
706
  <xsl:when test="ancestor::gb:td/@align"><xsl:value-of select="ancestor::gb:td/@align"/></xsl:when>
924
707
  <xsl:when test="ancestor::gb:th/@align"><xsl:value-of select="ancestor::gb:th/@align"/></xsl:when>
925
- <xsl:otherwise>justify</xsl:otherwise><!-- left -->
708
+ <xsl:otherwise>justify</xsl:otherwise>
926
709
  </xsl:choose>
927
710
  </xsl:attribute>
928
711
  <xsl:attribute name="text-indent">
@@ -937,8 +720,9 @@
937
720
  </xsl:if>
938
721
  <xsl:apply-templates/>
939
722
  </xsl:element>
940
- <xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
941
- <xsl:choose>
723
+ <xsl:if test="$element-name = 'fo:inline' and not(local-name(..) = 'admonition')">
724
+ <xsl:value-of select="$linebreak"/>
725
+ <!-- <xsl:choose>
942
726
  <xsl:when test="ancestor::gb:annex">
943
727
  <xsl:value-of select="$linebreak"/>
944
728
  </xsl:when>
@@ -947,11 +731,8 @@
947
731
  <xsl:value-of select="$linebreak"/>
948
732
  </fo:block>
949
733
  </xsl:otherwise>
950
- </xsl:choose>
951
- </xsl:if>
952
- <xsl:if test="$inline = 'true'">
953
- <fo:block> </fo:block>
954
- </xsl:if>
734
+ </xsl:choose> -->
735
+ </xsl:if>
955
736
  </xsl:template>
956
737
 
957
738
  <xsl:template match="gb:li//gb:p//text()">
@@ -1023,90 +804,6 @@
1023
804
  <xsl:apply-templates/>
1024
805
  </xsl:template>
1025
806
 
1026
- <xsl:template match="gb:review">
1027
- <!-- comment 2019-11-29 -->
1028
- <!-- <fo:block font-weight="bold">Review:</fo:block>
1029
- <xsl:apply-templates /> -->
1030
- </xsl:template>
1031
-
1032
- <xsl:template match="text()">
1033
- <xsl:value-of select="."/>
1034
- </xsl:template>
1035
-
1036
- <xsl:template match="gb:image">
1037
- <fo:block-container text-align="center">
1038
- <fo:block>
1039
- <fo:external-graphic src="{@src}" fox:alt-text="Image {@alt}"/>
1040
- </fo:block>
1041
- <fo:block font-family="SimHei" margin-top="12pt" margin-bottom="12pt">
1042
- <xsl:variable name="title-figure">
1043
- <xsl:call-template name="getTitle">
1044
- <xsl:with-param name="name" select="'title-figure'"/>
1045
- </xsl:call-template>
1046
- </xsl:variable>
1047
- <xsl:value-of select="$title-figure"/>
1048
- <xsl:call-template name="getFigureNumber"/>
1049
- </fo:block>
1050
- </fo:block-container>
1051
- </xsl:template>
1052
-
1053
- <xsl:template match="gb:figure">
1054
- <fo:block-container id="{@id}">
1055
- <fo:block>
1056
- <xsl:apply-templates/>
1057
- </fo:block>
1058
- <xsl:call-template name="fn_display_figure"/>
1059
- <xsl:for-each select="gb:note//gb:p">
1060
- <xsl:call-template name="note"/>
1061
- </xsl:for-each>
1062
- <fo:block font-family="SimHei" text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-previous="always">
1063
- <xsl:call-template name="getFigureNumber"/>
1064
- <xsl:if test="gb:name">
1065
- <!-- <xsl:if test="not(local-name(..) = 'figure')"> -->
1066
- <xsl:text> — </xsl:text>
1067
- <!-- </xsl:if> -->
1068
- <xsl:value-of select="gb:name"/>
1069
- </xsl:if>
1070
- </fo:block>
1071
- </fo:block-container>
1072
- </xsl:template>
1073
-
1074
- <xsl:template name="getFigureNumber">
1075
- <xsl:variable name="title-figure">
1076
- <xsl:call-template name="getTitle">
1077
- <xsl:with-param name="name" select="'title-figure'"/>
1078
- </xsl:call-template>
1079
- </xsl:variable>
1080
- <xsl:choose>
1081
- <xsl:when test="ancestor::gb:annex">
1082
- <xsl:value-of select="$title-figure"/><xsl:number format="A.1-1" level="multiple" count="gb:annex | gb:figure"/>
1083
- </xsl:when>
1084
- <xsl:otherwise>
1085
- <xsl:value-of select="$title-figure"/><xsl:number format="1" level="any"/>
1086
- </xsl:otherwise>
1087
- </xsl:choose>
1088
- </xsl:template>
1089
-
1090
- <xsl:template match="gb:figure/gb:name"/>
1091
- <xsl:template match="gb:figure/gb:fn" priority="2"/>
1092
- <xsl:template match="gb:figure/gb:note"/>
1093
-
1094
-
1095
- <xsl:template match="gb:figure/gb:image">
1096
- <fo:block text-align="center">
1097
- <xsl:variable name="src">
1098
- <xsl:choose>
1099
- <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
1100
- <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
1101
- </xsl:when>
1102
- <xsl:otherwise>
1103
- <xsl:value-of select="@src"/>
1104
- </xsl:otherwise>
1105
- </xsl:choose>
1106
- </xsl:variable>
1107
- <fo:external-graphic src="{$src}" width="100%" content-height="100%" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/> <!-- src="{@src}" -->
1108
- </fo:block>
1109
- </xsl:template>
1110
807
 
1111
808
 
1112
809
  <xsl:template match="gb:bibitem">
@@ -1134,7 +831,7 @@
1134
831
  </xsl:template>
1135
832
 
1136
833
 
1137
- <xsl:template match="gb:bibitem/gb:note">
834
+ <xsl:template match="gb:bibitem/gb:note" priority="2">
1138
835
  <fo:footnote>
1139
836
  <xsl:variable name="number">
1140
837
  <xsl:number level="any" count="gb:bibitem/gb:note"/>
@@ -1164,12 +861,12 @@
1164
861
  </xsl:if>
1165
862
  <xsl:apply-templates/>
1166
863
  </fo:list-block>
1167
- <xsl:for-each select="./gb:note//gb:p">
864
+ <xsl:for-each select="./gb:note">
1168
865
  <xsl:call-template name="note"/>
1169
866
  </xsl:for-each>
1170
867
  </xsl:template>
1171
868
 
1172
- <xsl:template match="gb:ul//gb:note | gb:ol//gb:note"/>
869
+ <xsl:template match="gb:ul//gb:note | gb:ol//gb:note" priority="2"/>
1173
870
 
1174
871
  <xsl:template match="gb:li">
1175
872
  <fo:list-item id="{@id}">
@@ -1179,42 +876,23 @@
1179
876
  </fo:block>
1180
877
  </fo:list-item-label>
1181
878
  <fo:list-item-body start-indent="body-start()">
1182
- <xsl:apply-templates/>
1183
- <xsl:apply-templates select=".//gb:note" mode="process"/>
879
+ <fo:block>
880
+ <xsl:apply-templates/>
881
+ <xsl:apply-templates select=".//gb:note" mode="process"/>
882
+ </fo:block>
1184
883
  </fo:list-item-body>
1185
884
  </fo:list-item>
1186
885
  </xsl:template>
1187
886
 
1188
887
 
1189
- <xsl:template match="gb:term">
1190
- <xsl:param name="sectionNum"/>
1191
- <fo:block id="{@id}" font-family="SimHei" font-size="11pt" keep-with-next="always" margin-top="10pt" margin-bottom="8pt" line-height="1.1">
1192
- <fo:inline>
1193
- <xsl:variable name="section">
1194
- <xsl:for-each select="*[1]">
1195
- <xsl:call-template name="getSection">
1196
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1197
- </xsl:call-template>
1198
- </xsl:for-each>
1199
- </xsl:variable>
1200
- <xsl:value-of select="$section"/><xsl:text>.</xsl:text>
1201
- </fo:inline>
1202
- </fo:block>
1203
- <fo:block>
1204
- <xsl:apply-templates>
1205
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1206
- </xsl:apply-templates>
1207
- </fo:block>
1208
- </xsl:template>
1209
888
 
1210
- <xsl:template match="gb:preferred">
1211
- <xsl:param name="sectionNum"/>
1212
-
889
+ <xsl:template match="gb:preferred" priority="2">
890
+
1213
891
  <fo:inline font-family="SimHei" font-size="11pt">
1214
892
  <xsl:if test="not(preceding-sibling::*[1][local-name() = 'preferred'])">
1215
893
  <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
1216
894
  </xsl:if>
1217
- <xsl:apply-templates/><xsl:text> </xsl:text>
895
+ <xsl:apply-templates/><xsl:value-of select="$tab_zh"/>
1218
896
  </fo:inline>
1219
897
 
1220
898
  <xsl:if test="not(following-sibling::*[1][local-name() = 'preferred'])">
@@ -1223,14 +901,13 @@
1223
901
 
1224
902
  </xsl:template>
1225
903
 
1226
- <xsl:template match="gb:admitted">
1227
- <xsl:param name="sectionNum"/>
904
+ <xsl:template match="gb:admitted" priority="2">
1228
905
 
1229
906
  <fo:inline font-size="11pt">
1230
907
  <xsl:if test="not(preceding-sibling::*[1][local-name() = 'admitted'])">
1231
908
  <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
1232
909
  </xsl:if>
1233
- <xsl:apply-templates/><xsl:text> </xsl:text>
910
+ <xsl:apply-templates/><xsl:value-of select="$tab_zh"/>
1234
911
  </fo:inline>
1235
912
 
1236
913
  <xsl:if test="not(following-sibling::*[1][local-name() = 'admitted'])">
@@ -1239,8 +916,8 @@
1239
916
 
1240
917
  </xsl:template>
1241
918
 
1242
- <xsl:template match="gb:deprecates">
1243
- <xsl:param name="sectionNum"/>
919
+
920
+ <xsl:template match="gb:deprecates" priority="2">
1244
921
  <fo:inline font-size="11pt">
1245
922
  <xsl:if test="not(preceding-sibling::*[1][local-name() = 'deprecates'])">
1246
923
  <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
@@ -1255,48 +932,12 @@
1255
932
  </fo:inline>
1256
933
  <xsl:if test="not(following-sibling::*[1][local-name() = 'deprecates'])">
1257
934
  <xsl:value-of select="$linebreak"/>
1258
- </xsl:if>
1259
-
1260
- </xsl:template>
1261
-
1262
- <xsl:template match="gb:definition[preceding-sibling::gb:domain]">
1263
- <xsl:apply-templates/>
1264
- </xsl:template>
1265
- <xsl:template match="gb:definition[preceding-sibling::gb:domain]/gb:p">
1266
- <fo:inline> <xsl:apply-templates/></fo:inline>
1267
- <fo:block> </fo:block>
1268
- </xsl:template>
1269
-
1270
- <xsl:template match="gb:definition">
1271
- <fo:block>
1272
- <xsl:apply-templates/>
1273
- </fo:block>
1274
- </xsl:template>
1275
-
1276
- <xsl:template match="gb:termsource">
1277
- <fo:block text-indent="7.4mm">
1278
- <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
1279
- <fo:basic-link internal-destination="{gb:origin/@bibitemid}" fox:alt-text="{gb:origin/@citeas}">
1280
- <xsl:text>[</xsl:text> <!-- SOURCE: -->
1281
- <xsl:value-of select="gb:origin/@citeas"/>
1282
-
1283
- <xsl:apply-templates select="gb:origin/gb:localityStack"/>
1284
-
1285
- </fo:basic-link>
1286
- <xsl:apply-templates select="gb:modification"/>
1287
- <xsl:text>]</xsl:text>
1288
- </fo:block>
935
+ </xsl:if>
1289
936
  </xsl:template>
1290
937
 
1291
938
 
1292
- <xsl:template match="gb:modification/gb:p">
1293
- <xsl:apply-templates/>
1294
- </xsl:template>
1295
- <xsl:template match="gb:modification/text()">
1296
- <xsl:apply-templates/>
1297
- </xsl:template>
1298
939
 
1299
- <xsl:template match="gb:termnote">
940
+ <xsl:template match="gb:termnote" priority="2">
1300
941
  <fo:block-container font-size="9pt" margin-left="7.4mm" margin-top="4pt" line-height="125%">
1301
942
  <fo:block-container margin-left="0mm">
1302
943
  <fo:table table-layout="fixed" width="100%">
@@ -1306,13 +947,7 @@
1306
947
  <fo:table-row>
1307
948
  <fo:table-cell>
1308
949
  <fo:block font-family="SimHei">
1309
- <xsl:variable name="num"><xsl:number/></xsl:variable>
1310
- <xsl:variable name="title-note-to-entry">
1311
- <xsl:call-template name="getTitle">
1312
- <xsl:with-param name="name" select="'title-note-to-entry'"/>
1313
- </xsl:call-template>
1314
- </xsl:variable>
1315
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($title-note-to-entry),'#',$num)"/>
950
+ <xsl:apply-templates select="gb:name" mode="presentation"/>
1316
951
  </fo:block>
1317
952
  </fo:table-cell>
1318
953
  <fo:table-cell>
@@ -1327,48 +962,14 @@
1327
962
  </fo:block-container>
1328
963
  </xsl:template>
1329
964
 
1330
- <xsl:template match="gb:termnote/gb:p">
1331
- <fo:inline><xsl:apply-templates/></fo:inline>
1332
- </xsl:template>
1333
-
1334
- <xsl:template match="gb:domain">
1335
- <fo:inline padding-left="7.4mm">&lt;<xsl:apply-templates/>&gt; </fo:inline>
1336
- </xsl:template>
1337
-
1338
-
1339
- <xsl:template match="gb:termexample">
1340
- <fo:block font-size="9pt" margin-top="14pt" margin-bottom="14pt" text-align="justify">
1341
- <fo:inline padding-right="1mm" font-family="SimHei">
1342
- <xsl:variable name="title-example">
1343
- <xsl:call-template name="getTitle">
1344
- <xsl:with-param name="name" select="'title-example'"/>
1345
- </xsl:call-template>
1346
- </xsl:variable>
1347
- <xsl:value-of select="$title-example"/>
1348
- <xsl:if test="count(ancestor::gb:term[1]//gb:termexample) &gt; 1">
1349
- <xsl:number/>
1350
- </xsl:if>
1351
- <xsl:text>:</xsl:text>
1352
- </fo:inline>
1353
- <xsl:apply-templates/>
1354
- </fo:block>
1355
- </xsl:template>
1356
-
1357
- <xsl:template match="gb:termexample/gb:p">
1358
- <fo:inline><xsl:apply-templates/></fo:inline>
1359
- </xsl:template>
1360
965
 
1361
-
1362
- <xsl:template match="gb:annex">
1363
- <fo:block break-after="page"/>
1364
- <xsl:apply-templates/>
1365
- </xsl:template>
1366
966
 
1367
-
1368
967
  <!-- <xsl:template match="gb:references[@id = '_bibliography']"> -->
1369
968
  <xsl:template match="gb:references[position() &gt; 1]">
1370
969
  <fo:block break-after="page"/>
1371
- <xsl:apply-templates/>
970
+ <fo:block id="{@id}">
971
+ <xsl:apply-templates/>
972
+ </fo:block>
1372
973
  <fo:block-container text-align="center">
1373
974
  <fo:block-container margin-left="63mm" width="42mm" border-bottom="2pt solid black">
1374
975
  <fo:block> </fo:block>
@@ -1427,27 +1028,6 @@
1427
1028
  </fo:inline>
1428
1029
  </xsl:template>
1429
1030
 
1430
- <xsl:template match="gb:quote">
1431
- <fo:block margin-top="12pt" margin-left="12mm" margin-right="12mm">
1432
- <xsl:apply-templates select=".//gb:p"/>
1433
- </fo:block>
1434
- <fo:block text-align="right">
1435
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
1436
- <xsl:text>— </xsl:text><xsl:value-of select="gb:author"/>
1437
- <xsl:if test="gb:source">
1438
- <xsl:text>, </xsl:text>
1439
- <xsl:apply-templates select="gb:source"/>
1440
- </xsl:if>
1441
- </fo:block>
1442
- </xsl:template>
1443
-
1444
- <xsl:template match="gb:source">
1445
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
1446
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1447
- <xsl:apply-templates select="gb:localityStack"/>
1448
- </fo:basic-link>
1449
- </xsl:template>
1450
-
1451
1031
 
1452
1032
  <xsl:template match="mathml:math" priority="2">
1453
1033
  <fo:inline font-family="Cambria Math">
@@ -1457,169 +1037,8 @@
1457
1037
  </fo:inline>
1458
1038
  </xsl:template>
1459
1039
 
1460
- <xsl:template match="gb:xref">
1461
- <xsl:param name="sectionNum"/>
1462
-
1463
- <xsl:variable name="target" select="normalize-space(@target)"/>
1464
- <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1465
- <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = $target]/@section"/>
1466
- <!-- <xsl:if test="not(starts-with($section, 'Figure') or starts-with($section, 'Table'))"> -->
1467
- <!-- <xsl:attribute name="color">blue</xsl:attribute>
1468
- <xsl:attribute name="text-decoration">underline</xsl:attribute> -->
1469
- <!-- </xsl:if> -->
1470
- <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = $target]/@type"/>
1471
- <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id =$target]/@root"/>
1472
- <xsl:variable name="level" select="xalan:nodeset($contents)//item[@id =$target]/@level"/>
1473
-
1474
- <xsl:variable name="title-clause">
1475
- <xsl:call-template name="getTitle">
1476
- <xsl:with-param name="name" select="'title-clause'"/>
1477
- </xsl:call-template>
1478
- </xsl:variable>
1479
- <xsl:variable name="title-annex">
1480
- <xsl:call-template name="getTitle">
1481
- <xsl:with-param name="name" select="'title-annex'"/>
1482
- </xsl:call-template>
1483
- </xsl:variable>
1484
-
1485
- <xsl:choose>
1486
- <xsl:when test="$type = 'clause' and $root != 'annex' and $level = 1"><xsl:value-of select="$title-clause"/></xsl:when><!-- and not (ancestor::annex) -->
1487
- <xsl:when test="$type = 'clause' and $root = 'annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1488
- <xsl:when test="$type = 'li'">
1489
- <xsl:attribute name="color">black</xsl:attribute>
1490
- <xsl:attribute name="text-decoration">none</xsl:attribute>
1491
- <xsl:variable name="parent_section" select="xalan:nodeset($contents)//item[@id =$target]/@parent_section"/>
1492
- <xsl:variable name="currentSection">
1493
- <xsl:call-template name="getSection"/>
1494
- </xsl:variable>
1495
- <xsl:if test="not(contains($parent_section, $currentSection))">
1496
- <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1497
- <xsl:attribute name="color">blue</xsl:attribute>
1498
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1499
- <xsl:value-of select="$parent_section"/><xsl:text> </xsl:text>
1500
- </fo:basic-link>
1501
- </xsl:if>
1502
- </xsl:when>
1503
- <xsl:when test="normalize-space($section) = ''">
1504
- <xsl:text>[</xsl:text><xsl:value-of select="$target"/><xsl:text>]</xsl:text>
1505
- </xsl:when>
1506
- <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1507
- </xsl:choose>
1508
- <xsl:value-of select="$section"/>
1509
- </fo:basic-link>
1510
- </xsl:template>
1511
-
1512
- <xsl:template match="gb:example/gb:p">
1513
- <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt">
1514
- <!-- <xsl:if test="ancestor::gb:li">
1515
- <xsl:attribute name="font-size">11pt</xsl:attribute>
1516
- </xsl:if> -->
1517
- <xsl:variable name="claims_id" select="ancestor::gb:clause[1]/@id"/>
1518
- <fo:inline padding-right="5mm">
1519
- <xsl:variable name="title-example">
1520
- <xsl:call-template name="getTitle">
1521
- <xsl:with-param name="name" select="'title-example'"/>
1522
- </xsl:call-template>
1523
- </xsl:variable>
1524
- <xsl:value-of select="$title-example"/>
1525
- <xsl:if test="count(ancestor::gb:clause[1]//gb:example) &gt; 1">
1526
- <xsl:number count="gb:example[ancestor::gb:clause[@id = $claims_id]]" level="any"/>
1527
- </xsl:if>
1528
- </fo:inline>
1529
- <xsl:apply-templates/>
1530
- </fo:block>
1531
- </xsl:template>
1532
-
1533
- <xsl:template match="gb:note/gb:p" name="note">
1534
- <xsl:variable name="claims_id" select="ancestor::gb:clause[1]/@id"/>
1535
- <fo:block-container font-size="9pt" margin-left="7.4mm" margin-top="4pt" line-height="125%">
1536
- <fo:block-container margin-left="0mm">
1537
- <fo:table table-layout="fixed" width="100%">
1538
- <fo:table-column column-width="10mm"/>
1539
- <fo:table-column column-width="155mm"/>
1540
- <fo:table-body>
1541
- <fo:table-row>
1542
- <fo:table-cell>
1543
- <fo:block font-family="SimHei">
1544
- <xsl:variable name="title-note">
1545
- <xsl:call-template name="getTitle">
1546
- <xsl:with-param name="name" select="'title-note'"/>
1547
- </xsl:call-template>
1548
- </xsl:variable>
1549
- <xsl:value-of select="normalize-space($title-note)"/>
1550
- <xsl:if test="count(ancestor::gb:clause[1]//gb:note) &gt; 1">
1551
- <xsl:text> </xsl:text><xsl:number count="gb:note[ancestor::gb:clause[@id = $claims_id]]" level="any"/>
1552
- </xsl:if>
1553
- <xsl:text>:</xsl:text>
1554
- </fo:block>
1555
- </fo:table-cell>
1556
- <fo:table-cell>
1557
- <fo:block text-align="justify">
1558
- <xsl:apply-templates/>
1559
- </fo:block>
1560
- </fo:table-cell>
1561
- </fo:table-row>
1562
- </fo:table-body>
1563
- </fo:table>
1564
- </fo:block-container>
1565
- </fo:block-container>
1566
- </xsl:template>
1567
1040
 
1568
- <!-- <eref type="inline" bibitemid="IEC60050-113" citeas="IEC 60050-113:2011"><localityStack><locality type="clause"><referenceFrom>113-01-12</referenceFrom></locality></localityStack></eref> -->
1569
- <xsl:template match="gb:eref">
1570
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}"> <!-- font-size="9pt" color="blue" vertical-align="super" -->
1571
- <xsl:if test="@type = 'footnote'">
1572
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1573
- <xsl:attribute name="font-size">50%</xsl:attribute>
1574
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1575
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1576
- </xsl:if>
1577
- <!-- <xsl:if test="@type = 'inline'">
1578
- <xsl:attribute name="color">blue</xsl:attribute>
1579
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1580
- </xsl:if> -->
1581
-
1582
- <xsl:choose>
1583
- <xsl:when test="@citeas and normalize-space(text()) = ''">
1584
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
1585
- </xsl:when>
1586
- <xsl:when test="@bibitemid and normalize-space(text()) = ''">
1587
- <xsl:value-of select="//gb:bibitem[@id = current()/@bibitemid]/gb:docidentifier"/>
1588
- </xsl:when>
1589
- <xsl:otherwise/>
1590
- </xsl:choose>
1591
- <xsl:apply-templates select="gb:localityStack"/>
1592
- <xsl:apply-templates select="text()"/>
1593
- </fo:basic-link>
1594
- </xsl:template>
1595
-
1596
- <xsl:template match="gb:locality">
1597
- <xsl:variable name="title-clause">
1598
- <xsl:call-template name="getTitle">
1599
- <xsl:with-param name="name" select="'title-clause'"/>
1600
- </xsl:call-template>
1601
- </xsl:variable>
1602
- <xsl:variable name="title-annex">
1603
- <xsl:call-template name="getTitle">
1604
- <xsl:with-param name="name" select="'title-annex'"/>
1605
- </xsl:call-template>
1606
- </xsl:variable>
1607
- <xsl:variable name="title-table">
1608
- <xsl:call-template name="getTitle">
1609
- <xsl:with-param name="name" select="'title-table'"/>
1610
- </xsl:call-template>
1611
- </xsl:variable>
1612
- <xsl:choose>
1613
- <xsl:when test="@type ='section' and ancestor::gb:termsource">SOURCE Section </xsl:when>
1614
- <xsl:when test="ancestor::gb:termsource"/>
1615
- <xsl:when test="@type ='clause' and ancestor::gb:eref"/>
1616
- <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
1617
- <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1618
- <xsl:when test="@type ='table'"><xsl:value-of select="$title-table"/></xsl:when>
1619
- <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
1620
- </xsl:choose>
1621
- <xsl:text> </xsl:text><xsl:value-of select="gb:referenceFrom"/>
1622
- </xsl:template>
1041
+
1623
1042
 
1624
1043
  <xsl:template match="gb:admonition">
1625
1044
  <xsl:variable name="title-caution">
@@ -1644,18 +1063,7 @@
1644
1063
  </fo:block>
1645
1064
  </xsl:template>
1646
1065
 
1647
- <xsl:template match="gb:formula">
1648
- <fo:block id="{@id}">
1649
- <xsl:apply-templates/>
1650
- </fo:block>
1651
- </xsl:template>
1652
-
1653
- <xsl:template match="gb:formula/gb:dt/gb:stem">
1654
- <fo:inline>
1655
- <xsl:apply-templates/>
1656
- </fo:inline>
1657
- </xsl:template>
1658
-
1066
+
1659
1067
  <xsl:template match="gb:formula/gb:stem">
1660
1068
  <fo:block font-size="11pt" margin-top="14pt" margin-bottom="14pt">
1661
1069
  <fo:table table-layout="fixed" width="170mm">
@@ -1670,28 +1078,16 @@
1670
1078
  </fo:table-cell>
1671
1079
  <fo:table-cell display-align="center">
1672
1080
  <fo:block text-align="left">
1673
- <xsl:choose>
1674
- <xsl:when test="ancestor::gb:annex">
1675
- <xsl:number format="(A.1)" level="multiple" count="gb:annex | gb:formula"/>
1676
- </xsl:when>
1677
- <xsl:otherwise> <!-- not(ancestor::gb:annex) -->
1678
- <xsl:number format="(1)" level="any" count="gb:formula"/>
1679
- </xsl:otherwise>
1680
- </xsl:choose>
1081
+ <xsl:apply-templates select="../gb:name" mode="presentation"/>
1681
1082
  </fo:block>
1682
1083
  </fo:table-cell>
1683
1084
  </fo:table-row>
1684
1085
  </fo:table-body>
1685
- </fo:table>
1686
- <fo:inline keep-together.within-line="always">
1687
- </fo:inline>
1086
+ </fo:table>
1688
1087
  </fo:block>
1689
1088
  </xsl:template>
1690
1089
 
1691
- <xsl:template match="gb:br" priority="2">
1692
- <!-- <fo:block>&#xA0;</fo:block> -->
1693
- <xsl:value-of select="$linebreak"/>
1694
- </xsl:template>
1090
+
1695
1091
 
1696
1092
  <xsl:template name="insertHeaderFooter">
1697
1093
  <fo:static-content flow-name="header">
@@ -1724,88 +1120,6 @@
1724
1120
  </xsl:template>
1725
1121
 
1726
1122
 
1727
- <xsl:template name="getSection">
1728
- <xsl:param name="sectionNum"/>
1729
- <xsl:variable name="level">
1730
- <xsl:call-template name="getLevel"/>
1731
- </xsl:variable>
1732
- <xsl:variable name="section">
1733
- <xsl:choose>
1734
- <xsl:when test="ancestor::gb:bibliography">
1735
- <xsl:value-of select="$sectionNum"/>
1736
- </xsl:when>
1737
- <xsl:when test="ancestor::gb:sections">
1738
- <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
1739
- <xsl:choose>
1740
- <xsl:when test="$level = 1">
1741
- <xsl:value-of select="$sectionNum"/>
1742
- </xsl:when>
1743
- <xsl:when test="$level &gt;= 2">
1744
- <xsl:variable name="num">
1745
- <xsl:call-template name="getSubSection"/>
1746
- </xsl:variable>
1747
- <xsl:value-of select="concat($sectionNum, $num)"/>
1748
- </xsl:when>
1749
- <xsl:otherwise>
1750
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
1751
- </xsl:otherwise>
1752
- </xsl:choose>
1753
- </xsl:when>
1754
- <xsl:when test="ancestor::gb:annex">
1755
- <xsl:variable name="annexid" select="normalize-space(/gb:gb-standard/gb:bibdata/gb:ext/gb:structuredidentifier/gb:annexid)"/>
1756
- <xsl:choose>
1757
- <xsl:when test="$level = 1">
1758
- <xsl:variable name="title-annex">
1759
- <xsl:call-template name="getTitle">
1760
- <xsl:with-param name="name" select="'title-annex'"/>
1761
- </xsl:call-template>
1762
- </xsl:variable>
1763
- <xsl:value-of select="$title-annex"/>
1764
- <xsl:choose>
1765
- <xsl:when test="count(//gb:annex) = 1 and $annexid != ''">
1766
- <xsl:value-of select="$annexid"/>
1767
- </xsl:when>
1768
- <xsl:otherwise>
1769
- <xsl:number format="A" level="any" count="gb:annex"/>
1770
- </xsl:otherwise>
1771
- </xsl:choose>
1772
- </xsl:when>
1773
- <xsl:otherwise>
1774
- <xsl:choose>
1775
- <xsl:when test="count(//gb:annex) = 1 and $annexid != ''">
1776
- <xsl:value-of select="$annexid"/><xsl:number format=".1" level="multiple" count="gb:clause"/>
1777
- </xsl:when>
1778
- <xsl:otherwise>
1779
- <xsl:number format="A.1" level="multiple" count="gb:annex | gb:clause"/>
1780
- </xsl:otherwise>
1781
- </xsl:choose>
1782
- </xsl:otherwise>
1783
- </xsl:choose>
1784
- </xsl:when>
1785
- <xsl:when test="ancestor::gb:preface"> <!-- if preface and there is clause(s) -->
1786
- <xsl:choose>
1787
- <xsl:when test="$level = 1 and ..//gb:clause">0</xsl:when>
1788
- <xsl:when test="$level &gt;= 2">
1789
- <xsl:variable name="num">
1790
- <xsl:number format=".1" level="multiple" count="gb:clause"/>
1791
- </xsl:variable>
1792
- <xsl:value-of select="concat('0', $num)"/>
1793
- </xsl:when>
1794
- <xsl:otherwise>
1795
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
1796
- </xsl:otherwise>
1797
- </xsl:choose>
1798
- </xsl:when>
1799
- <xsl:otherwise>
1800
- </xsl:otherwise>
1801
- </xsl:choose>
1802
- </xsl:variable>
1803
- <xsl:value-of select="$section"/>
1804
- </xsl:template>
1805
-
1806
- <!-- <xsl:variable name="Image-GB-Logo">
1807
- <xsl:text>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</xsl:text>
1808
- </xsl:variable> -->
1809
1123
 
1810
1124
  <xsl:template name="addLetterSpacing">
1811
1125
  <xsl:param name="text"/>
@@ -1821,46 +1135,6 @@
1821
1135
  </xsl:template>
1822
1136
 
1823
1137
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
1824
-
1825
- <title-table lang="en">Table </title-table>
1826
- <title-table lang="fr">Tableau </title-table>
1827
-
1828
-
1829
- <title-table lang="zh">表 </title-table>
1830
-
1831
-
1832
- <title-note lang="en">NOTE </title-note>
1833
- <title-note lang="fr">NOTE </title-note>
1834
-
1835
-
1836
- <title-note lang="zh">注 </title-note>
1837
-
1838
-
1839
- <title-figure lang="en">Figure </title-figure>
1840
- <title-figure lang="fr">Figure </title-figure>
1841
-
1842
-
1843
- <title-figure lang="zh">图 </title-figure>
1844
-
1845
-
1846
- <title-example lang="en">EXAMPLE </title-example>
1847
- <title-example lang="fr">EXEMPLE </title-example>
1848
-
1849
-
1850
- <title-example lang="zh">示例 </title-example>
1851
-
1852
-
1853
- <title-example-xref lang="en">Example </title-example-xref>
1854
- <title-example-xref lang="fr">Exemple </title-example-xref>
1855
-
1856
- <title-section lang="en">Section </title-section>
1857
- <title-section lang="fr">Section </title-section>
1858
-
1859
- <title-inequality lang="en">Inequality </title-inequality>
1860
- <title-inequality lang="fr">Inequality </title-inequality>
1861
-
1862
- <title-equation lang="en">Equation </title-equation>
1863
- <title-equation lang="fr">Equation </title-equation>
1864
1138
 
1865
1139
  <title-annex lang="en">Annex </title-annex>
1866
1140
  <title-annex lang="fr">Annexe </title-annex>
@@ -1868,25 +1142,13 @@
1868
1142
 
1869
1143
  <title-annex lang="zh">附件 </title-annex>
1870
1144
 
1871
-
1872
- <title-appendix lang="en">Appendix </title-appendix>
1873
- <title-appendix lang="fr">Appendix </title-appendix>
1874
-
1875
- <title-clause lang="en">Clause </title-clause>
1876
- <title-clause lang="fr">Article </title-clause>
1877
-
1878
-
1879
- <title-clause lang="zh">条 </title-clause>
1880
-
1881
-
1145
+
1882
1146
  <title-edition lang="en">
1883
1147
 
1884
1148
 
1885
1149
  </title-edition>
1886
1150
 
1887
- <title-formula lang="en">Formula </title-formula>
1888
- <title-formula lang="fr">Formula </title-formula>
1889
-
1151
+
1890
1152
  <title-toc lang="en">
1891
1153
 
1892
1154
 
@@ -1925,13 +1187,6 @@
1925
1187
  </title-part>
1926
1188
  <title-part lang="zh">第 # 部分:</title-part>
1927
1189
 
1928
- <title-note-to-entry lang="en">Note # to entry: </title-note-to-entry>
1929
- <title-note-to-entry lang="fr">Note # à l'article: </title-note-to-entry>
1930
-
1931
-
1932
- <title-note-to-entry lang="zh">注#: </title-note-to-entry>
1933
-
1934
-
1935
1190
  <title-modified lang="en">modified</title-modified>
1936
1191
  <title-modified lang="fr">modifiée</title-modified>
1937
1192
 
@@ -1945,14 +1200,12 @@
1945
1200
 
1946
1201
  <title-deprecated lang="en">DEPRECATED</title-deprecated>
1947
1202
  <title-deprecated lang="fr">DEPRECATED</title-deprecated>
1948
-
1949
- <title-submitting-organizations lang="en">Submitting Organizations</title-submitting-organizations>
1950
-
1203
+
1951
1204
  <title-list-tables lang="en">List of Tables</title-list-tables>
1952
1205
 
1953
1206
  <title-list-figures lang="en">List of Figures</title-list-figures>
1954
1207
 
1955
- <title-recommendation lang="en">Recommendation </title-recommendation>
1208
+ <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
1956
1209
 
1957
1210
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
1958
1211
 
@@ -1962,8 +1215,6 @@
1962
1215
 
1963
1216
  <title-in lang="en">in </title-in>
1964
1217
 
1965
- <title-box lang="en">Box </title-box>
1966
-
1967
1218
  <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
1968
1219
  <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
1969
1220
 
@@ -1986,7 +1237,7 @@
1986
1237
  <title-warning lang="zh">警告</title-warning>
1987
1238
 
1988
1239
  <title-amendment lang="en">AMENDMENT</title-amendment>
1989
- </xsl:variable><xsl:template name="getTitle">
1240
+ </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1990
1241
  <xsl:param name="name"/>
1991
1242
  <xsl:variable name="lang">
1992
1243
  <xsl:call-template name="getLang"/>
@@ -2004,6 +1255,8 @@
2004
1255
 
2005
1256
 
2006
1257
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1258
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1259
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2007
1260
 
2008
1261
  <xsl:attribute name="font-family">Courier</xsl:attribute>
2009
1262
  <xsl:attribute name="font-size">9pt</xsl:attribute>
@@ -2016,92 +1269,323 @@
2016
1269
 
2017
1270
 
2018
1271
 
2019
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2020
-
2021
- <xsl:attribute name="font-size">12pt</xsl:attribute>
2022
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2023
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2024
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1272
+ </xsl:attribute-set><xsl:attribute-set name="permission-style">
2025
1273
 
1274
+ </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
2026
1275
 
1276
+ </xsl:attribute-set><xsl:attribute-set name="permission-label-style">
2027
1277
 
2028
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1278
+ </xsl:attribute-set><xsl:attribute-set name="requirement-style">
2029
1279
 
2030
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2031
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2032
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1280
+ </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
2033
1281
 
1282
+ </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
2034
1283
 
1284
+ </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
1285
+ </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
1286
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
1287
+
1288
+
1289
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-name-style">
1290
+
1291
+
1292
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-label-style">
1293
+
1294
+ </xsl:attribute-set><xsl:attribute-set name="termexample-style">
1295
+
1296
+
1297
+
1298
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
1299
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
1300
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
1301
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+ </xsl:attribute-set><xsl:attribute-set name="example-style">
1308
+
1309
+
1310
+
1311
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1312
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1313
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+ </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1323
+
1324
+
1325
+ </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1326
+
1327
+
1328
+
1329
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+ </xsl:attribute-set><xsl:attribute-set name="example-p-style">
1344
+
1345
+
1346
+
1347
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1348
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1349
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+ </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1360
+
1361
+
1362
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
1363
+ <xsl:attribute name="font-family">SimHei</xsl:attribute>
1364
+
1365
+
1366
+
1367
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
1368
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1369
+
1370
+
1371
+ <xsl:attribute name="text-align">center</xsl:attribute>
1372
+ <xsl:attribute name="font-family">SimHei</xsl:attribute>
1373
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1374
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2035
1375
 
2036
- </xsl:attribute-set><xsl:template match="text()">
2037
- <xsl:value-of select="."/>
2038
- </xsl:template><xsl:template match="*[local-name()='br']">
2039
- <xsl:value-of select="$linebreak"/>
2040
- </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2041
- <!-- <xsl:call-template name="add-zero-spaces"/> -->
2042
- <xsl:call-template name="add-zero-spaces-java"/>
2043
- </xsl:template><xsl:template match="*[local-name()='table']">
2044
-
2045
- <xsl:variable name="simple-table">
2046
- <!-- <xsl:copy> -->
2047
- <xsl:call-template name="getSimpleTable"/>
2048
- <!-- </xsl:copy> -->
2049
- </xsl:variable>
2050
-
2051
- <!-- DEBUG -->
2052
- <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2053
- <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2054
-
2055
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2056
1376
 
2057
- <!-- <xsl:if test="$namespace = 'iso'">
2058
- <fo:block space-before="6pt">&#xA0;</fo:block>
2059
- </xsl:if> -->
2060
1377
 
2061
- <xsl:choose>
2062
- <xsl:when test="@unnumbered = 'true'"/>
2063
- <xsl:otherwise>
2064
-
2065
-
2066
-
2067
- <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2068
-
2069
-
2070
-
2071
-
2072
-
2073
-
2074
-
2075
- <xsl:attribute name="font-family">SimHei</xsl:attribute>
2076
- <xsl:attribute name="font-weight">normal</xsl:attribute>
2077
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2078
-
2079
-
2080
- <xsl:variable name="title-table">
2081
- <xsl:call-template name="getTitle">
2082
- <xsl:with-param name="name" select="'title-table'"/>
2083
- </xsl:call-template>
2084
- </xsl:variable>
2085
- <xsl:value-of select="$title-table"/>
2086
-
2087
- <xsl:call-template name="getTableNumber"/>
2088
-
2089
-
2090
- <xsl:if test="*[local-name()='name']">
2091
-
2092
-
2093
-
2094
- <xsl:text> — </xsl:text>
2095
-
2096
- <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2097
- </xsl:if>
2098
- </fo:block>
2099
1378
 
1379
+
1380
+
1381
+
2100
1382
 
2101
- <xsl:call-template name="fn_name_display"/>
1383
+
1384
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2102
1385
 
2103
- </xsl:otherwise>
2104
- </xsl:choose>
1386
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
1387
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1388
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1389
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1390
+
1391
+
1392
+
1393
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1394
+
1395
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1396
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
1397
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
1398
+
1399
+
1400
+
1401
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
1402
+
1403
+
1404
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
1405
+
1406
+
1407
+
1408
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
1409
+
1410
+
1411
+
1412
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
1413
+ <xsl:attribute name="margin-left">7.4mm</xsl:attribute>
1414
+ <xsl:attribute name="margin-top">4pt</xsl:attribute>
1415
+ <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
1416
+ <xsl:attribute name="line-height">125%</xsl:attribute>
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+ </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1431
+
1432
+
1433
+
1434
+ <xsl:attribute name="font-family">SimHei</xsl:attribute>
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1444
+
1445
+
1446
+
1447
+ <xsl:attribute name="margin-top">4pt</xsl:attribute>
1448
+ <xsl:attribute name="line-height">125%</xsl:attribute>
1449
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1468
+
1469
+
1470
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1471
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
1472
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1479
+
1480
+
1481
+ <xsl:attribute name="text-align">right</xsl:attribute>
1482
+
1483
+
1484
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1485
+
1486
+
1487
+
1488
+ <xsl:attribute name="text-indent">7.4mm</xsl:attribute>
1489
+
1490
+
1491
+
1492
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
1493
+
1494
+
1495
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
1496
+
1497
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+ <xsl:attribute name="font-family">SimHei</xsl:attribute>
1504
+ <xsl:attribute name="text-align">center</xsl:attribute>
1505
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1506
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1507
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
1521
+
1522
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
1523
+ <xsl:attribute name="text-align">center</xsl:attribute>
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1530
+
1531
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1532
+
1533
+
1534
+ <xsl:attribute name="width">100%</xsl:attribute>
1535
+ <xsl:attribute name="content-height">100%</xsl:attribute>
1536
+ <xsl:attribute name="content-width">scale-to-fit</xsl:attribute>
1537
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
1538
+
1539
+
1540
+
1541
+
1542
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
1543
+
1544
+
1545
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1546
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1547
+
1548
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1549
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1550
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1551
+ <xsl:attribute name="text-align">center</xsl:attribute>
1552
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1553
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
1554
+
1555
+ <xsl:attribute name="padding-left">7.4mm</xsl:attribute>
1556
+
1557
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
1558
+
1559
+
1560
+ </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
1561
+
1562
+ </xsl:attribute-set><xsl:attribute-set name="definition-style">
1563
+
1564
+
1565
+ </xsl:attribute-set><xsl:template match="text()">
1566
+ <xsl:value-of select="."/>
1567
+ </xsl:template><xsl:template match="*[local-name()='br']">
1568
+ <xsl:value-of select="$linebreak"/>
1569
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1570
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
1571
+ <xsl:call-template name="add-zero-spaces-java"/>
1572
+ </xsl:template><xsl:template match="*[local-name()='table']">
1573
+
1574
+ <xsl:variable name="simple-table">
1575
+ <xsl:call-template name="getSimpleTable"/>
1576
+ </xsl:variable>
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1583
+
1584
+
1585
+
1586
+ <xsl:call-template name="fn_name_display"/>
1587
+
1588
+
2105
1589
 
2106
1590
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2107
1591
 
@@ -2197,35 +1681,15 @@
2197
1681
  <xsl:apply-templates select="*[local-name()='note']" mode="process"/>
2198
1682
 
2199
1683
 
1684
+
1685
+
2200
1686
  </fo:block-container>
2201
- </xsl:template><xsl:template name="getTableNumber">
2202
- <xsl:choose>
2203
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2204
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2205
- </xsl:when>
2206
- <xsl:when test="ancestor::*[local-name()='annex']">
2207
-
2208
-
2209
- <xsl:variable name="annex-id" select="ancestor::gb:annex/@id"/>
2210
- <xsl:number format="A." count="*[local-name()='annex']"/><xsl:number format="1" level="any" count="*[local-name()='table'][(not(@unnumbered) or @unnumbered != 'true') and ancestor::gb:annex[@id = $annex-id]]"/>
2211
-
2212
-
2213
-
2214
-
2215
-
2216
-
2217
-
2218
- </xsl:when>
2219
- <xsl:otherwise>
2220
-
2221
-
2222
- <xsl:number format="A." count="*[local-name()='annex']"/>
2223
- <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']"/>
2224
-
2225
- </xsl:otherwise>
2226
- </xsl:choose>
2227
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
2228
- <xsl:apply-templates/>
1687
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1688
+ <xsl:if test="normalize-space() != ''">
1689
+ <fo:block xsl:use-attribute-sets="table-name-style">
1690
+ <xsl:apply-templates/>
1691
+ </fo:block>
1692
+ </xsl:if>
2229
1693
  </xsl:template><xsl:template name="calculate-columns-numbers">
2230
1694
  <xsl:param name="table-row"/>
2231
1695
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -2453,6 +1917,7 @@
2453
1917
 
2454
1918
 
2455
1919
 
1920
+
2456
1921
  <xsl:if test="@colspan">
2457
1922
  <xsl:attribute name="number-columns-spanned">
2458
1923
  <xsl:value-of select="@colspan"/>
@@ -2476,7 +1941,7 @@
2476
1941
  <xsl:if test="ancestor::*[local-name() = 'tfoot']">
2477
1942
  <xsl:attribute name="border-bottom">solid black 0</xsl:attribute>
2478
1943
  </xsl:if>
2479
-
1944
+
2480
1945
 
2481
1946
 
2482
1947
 
@@ -2495,21 +1960,9 @@
2495
1960
  <fo:block>
2496
1961
 
2497
1962
  <xsl:apply-templates/>
2498
- </fo:block>
2499
- <!-- <xsl:choose>
2500
- <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
2501
- <xsl:apply-templates />
2502
- </xsl:when>
2503
- <xsl:otherwise>
2504
- <fo:block>
2505
- <xsl:apply-templates />
2506
- </fo:block>
2507
- </xsl:otherwise>
2508
- </xsl:choose> -->
2509
-
2510
-
1963
+ </fo:block>
2511
1964
  </fo:table-cell>
2512
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
1965
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2513
1966
 
2514
1967
 
2515
1968
  <fo:block font-size="10pt" margin-bottom="12pt">
@@ -2526,26 +1979,15 @@
2526
1979
  <xsl:attribute name="font-family">SimHei</xsl:attribute>
2527
1980
 
2528
1981
 
2529
- <xsl:variable name="title-note">
2530
- <xsl:call-template name="getTitle">
2531
- <xsl:with-param name="name" select="'title-note'"/>
2532
- </xsl:call-template>
2533
- </xsl:variable>
2534
- <xsl:value-of select="$title-note"/>
2535
-
2536
- <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
2537
- <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
2538
- <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
2539
- </xsl:if>
2540
- <xsl:text>:</xsl:text>
2541
-
2542
-
2543
1982
 
1983
+
1984
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
1985
+
2544
1986
  </fo:inline>
2545
1987
  <xsl:apply-templates mode="process"/>
2546
1988
  </fo:block>
2547
1989
 
2548
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
1990
+ </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">
2549
1991
  <xsl:apply-templates/>
2550
1992
  </xsl:template><xsl:template name="fn_display">
2551
1993
  <xsl:variable name="references">
@@ -2611,7 +2053,7 @@
2611
2053
  true <!-- and (not(@class) or @class !='pseudocode') -->
2612
2054
  </xsl:variable>
2613
2055
  <xsl:variable name="references">
2614
- <xsl:for-each select=".//*[local-name()='fn']">
2056
+ <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2615
2057
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2616
2058
  <xsl:apply-templates/>
2617
2059
  </fn>
@@ -2906,7 +2348,7 @@
2906
2348
  <xsl:value-of select="string-length(normalize-space(.))"/>
2907
2349
  </xsl:if>
2908
2350
  </xsl:for-each>
2909
- </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
2351
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
2910
2352
  <xsl:param name="key_iso"/>
2911
2353
 
2912
2354
  <!-- <tr>
@@ -2922,12 +2364,7 @@
2922
2364
  <xsl:if test="normalize-space($key_iso) = 'true'">
2923
2365
  <xsl:attribute name="margin-top">0</xsl:attribute>
2924
2366
  </xsl:if>
2925
- <xsl:variable name="title-note">
2926
- <xsl:call-template name="getTitle">
2927
- <xsl:with-param name="name" select="'title-note'"/>
2928
- </xsl:call-template>
2929
- </xsl:variable>
2930
- <xsl:value-of select="$title-note"/>
2367
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2931
2368
  </fo:block>
2932
2369
  </fo:table-cell>
2933
2370
  <fo:table-cell>
@@ -2996,7 +2433,7 @@
2996
2433
  <fo:inline font-style="italic">
2997
2434
  <xsl:apply-templates/>
2998
2435
  </fo:inline>
2999
- </xsl:template><xsl:template match="*[local-name()='strong']">
2436
+ </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
3000
2437
  <fo:inline font-weight="bold">
3001
2438
  <xsl:apply-templates/>
3002
2439
  </fo:inline>
@@ -3009,7 +2446,7 @@
3009
2446
  <xsl:apply-templates/>
3010
2447
  </fo:inline>
3011
2448
  </xsl:template><xsl:template match="*[local-name()='tt']">
3012
- <fo:inline font-family="Courier" font-size="10pt">
2449
+ <fo:inline xsl:use-attribute-sets="tt-style">
3013
2450
  <xsl:apply-templates/>
3014
2451
  </fo:inline>
3015
2452
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -3330,127 +2767,744 @@
3330
2767
  </xsl:call-template>
3331
2768
  </xsl:otherwise>
3332
2769
  </xsl:choose>
3333
- </xsl:template><xsl:template name="capitalize">
3334
- <xsl:param name="str"/>
3335
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
3336
- <xsl:value-of select="substring($str, 2)"/>
3337
- </xsl:template><xsl:template match="mathml:math">
3338
- <fo:inline font-family="STIX2Math">
3339
- <fo:instream-foreign-object fox:alt-text="Math">
3340
- <xsl:copy-of select="."/>
3341
- </fo:instream-foreign-object>
3342
- </fo:inline>
3343
- </xsl:template><xsl:template match="*[local-name()='localityStack']">
3344
- <xsl:for-each select="*[local-name()='locality']">
3345
- <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
3346
- <xsl:apply-templates select="."/>
3347
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
3348
- </xsl:for-each>
3349
- </xsl:template><xsl:template match="*[local-name()='link']" name="link">
3350
- <xsl:variable name="target">
2770
+ </xsl:template><xsl:template name="capitalize">
2771
+ <xsl:param name="str"/>
2772
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
2773
+ <xsl:value-of select="substring($str, 2)"/>
2774
+ </xsl:template><xsl:template match="mathml:math">
2775
+ <fo:inline font-family="STIX2Math">
2776
+ <fo:instream-foreign-object fox:alt-text="Math">
2777
+ <xsl:copy-of select="."/>
2778
+ </fo:instream-foreign-object>
2779
+ </fo:inline>
2780
+ </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2781
+ <xsl:variable name="target">
2782
+ <xsl:choose>
2783
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
2784
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
2785
+ </xsl:when>
2786
+ <xsl:otherwise>
2787
+ <xsl:value-of select="normalize-space(@target)"/>
2788
+ </xsl:otherwise>
2789
+ </xsl:choose>
2790
+ </xsl:variable>
2791
+ <fo:inline xsl:use-attribute-sets="link-style">
2792
+ <xsl:choose>
2793
+ <xsl:when test="$target = ''">
2794
+ <xsl:apply-templates/>
2795
+ </xsl:when>
2796
+ <xsl:otherwise>
2797
+ <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
2798
+ <xsl:choose>
2799
+ <xsl:when test="normalize-space(.) = ''">
2800
+ <xsl:value-of select="$target"/>
2801
+ </xsl:when>
2802
+ <xsl:otherwise>
2803
+ <xsl:apply-templates/>
2804
+ </xsl:otherwise>
2805
+ </xsl:choose>
2806
+ </fo:basic-link>
2807
+ </xsl:otherwise>
2808
+ </xsl:choose>
2809
+ </fo:inline>
2810
+ </xsl:template><xsl:template match="*[local-name()='bookmark']">
2811
+ <fo:inline id="{@id}"/>
2812
+ </xsl:template><xsl:template match="*[local-name()='appendix']">
2813
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
2814
+ <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
2815
+ </fo:block>
2816
+ <xsl:apply-templates/>
2817
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
2818
+ <fo:inline><xsl:apply-templates/></fo:inline>
2819
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
2820
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
2821
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2822
+ </fo:block>
2823
+ <xsl:apply-templates/>
2824
+ </xsl:template><xsl:template match="*[local-name() = 'callout']">
2825
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
2826
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']">
2827
+ <xsl:variable name="annotation-id" select="@id"/>
2828
+ <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
2829
+ <fo:block id="{$annotation-id}" white-space="nowrap">
2830
+ <fo:inline>
2831
+ <xsl:apply-templates>
2832
+ <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
2833
+ </xsl:apply-templates>
2834
+ </fo:inline>
2835
+ </fo:block>
2836
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
2837
+ <xsl:param name="callout"/>
2838
+ <fo:inline id="{@id}">
2839
+ <!-- for first p in annotation, put <x> -->
2840
+ <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
2841
+ <xsl:apply-templates/>
2842
+ </fo:inline>
2843
+ </xsl:template><xsl:template match="*[local-name() = 'modification']">
2844
+ <xsl:variable name="title-modified">
2845
+ <xsl:call-template name="getTitle">
2846
+ <xsl:with-param name="name" select="'title-modified'"/>
2847
+ </xsl:call-template>
2848
+ </xsl:variable>
2849
+ <xsl:choose>
2850
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
2851
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
2852
+ </xsl:choose>
2853
+ <xsl:apply-templates/>
2854
+ </xsl:template><xsl:template match="*[local-name() = 'xref']">
2855
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2856
+
2857
+ <xsl:apply-templates/>
2858
+ </fo:basic-link>
2859
+ </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2860
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2861
+ <xsl:apply-templates/>
2862
+ </fo:block>
2863
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2864
+ <fo:inline>
2865
+ <xsl:apply-templates/>
2866
+ </fo:inline>
2867
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']/*[local-name() = 'stem']">
2868
+ <fo:inline>
2869
+ <xsl:apply-templates/>
2870
+ </fo:inline>
2871
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
2872
+ <xsl:if test="normalize-space() != ''">
2873
+ <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
2874
+ </xsl:if>
2875
+ </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
2876
+
2877
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
2878
+
2879
+
2880
+
2881
+
2882
+ <fo:block-container margin-left="0mm">
2883
+
2884
+ <fo:table table-layout="fixed" width="100%">
2885
+ <fo:table-column column-width="10mm"/>
2886
+ <fo:table-column column-width="155mm"/>
2887
+ <fo:table-body>
2888
+ <fo:table-row>
2889
+ <fo:table-cell>
2890
+ <fo:block font-family="SimHei" xsl:use-attribute-sets="note-name-style">
2891
+ <xsl:apply-templates select="gb:name" mode="presentation"/>
2892
+ </fo:block>
2893
+ </fo:table-cell>
2894
+ <fo:table-cell>
2895
+ <fo:block text-align="justify">
2896
+ <xsl:apply-templates/>
2897
+ </fo:block>
2898
+ </fo:table-cell>
2899
+ </fo:table-row>
2900
+ </fo:table-body>
2901
+ </fo:table>
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+
2911
+ </fo:block-container>
2912
+ </fo:block-container>
2913
+
2914
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
2915
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
2916
+ <xsl:choose>
2917
+ <xsl:when test="$num = 1">
2918
+ <fo:inline xsl:use-attribute-sets="note-p-style">
2919
+ <xsl:apply-templates/>
2920
+ </fo:inline>
2921
+ </xsl:when>
2922
+ <xsl:otherwise>
2923
+ <fo:block xsl:use-attribute-sets="note-p-style">
2924
+ <xsl:apply-templates/>
2925
+ </fo:block>
2926
+ </xsl:otherwise>
2927
+ </xsl:choose>
2928
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2929
+ <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2930
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2931
+ <xsl:apply-templates/>
2932
+ </fo:block>
2933
+ </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">
2934
+ <xsl:param name="sfx"/>
2935
+ <xsl:variable name="suffix">
2936
+ <xsl:choose>
2937
+ <xsl:when test="$sfx != ''">
2938
+ <xsl:value-of select="$sfx"/>
2939
+ </xsl:when>
2940
+ <xsl:otherwise>
2941
+
2942
+ <xsl:text>:</xsl:text>
2943
+
2944
+
2945
+ </xsl:otherwise>
2946
+ </xsl:choose>
2947
+ </xsl:variable>
2948
+ <xsl:if test="normalize-space() != ''">
2949
+ <xsl:apply-templates/>
2950
+ <xsl:value-of select="$suffix"/>
2951
+ </xsl:if>
2952
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
2953
+ <xsl:param name="sfx"/>
2954
+ <xsl:variable name="suffix">
2955
+ <xsl:choose>
2956
+ <xsl:when test="$sfx != ''">
2957
+ <xsl:value-of select="$sfx"/>
2958
+ </xsl:when>
2959
+ <xsl:otherwise>
2960
+
2961
+ <xsl:text>:</xsl:text>
2962
+
2963
+
2964
+ </xsl:otherwise>
2965
+ </xsl:choose>
2966
+ </xsl:variable>
2967
+ <xsl:if test="normalize-space() != ''">
2968
+ <xsl:apply-templates/>
2969
+ <xsl:value-of select="$suffix"/>
2970
+ </xsl:if>
2971
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
2972
+ <fo:inline><xsl:apply-templates/></fo:inline>
2973
+ </xsl:template><xsl:template match="*[local-name() = 'terms']">
2974
+ <fo:block id="{@id}">
2975
+ <xsl:apply-templates/>
2976
+ </fo:block>
2977
+ </xsl:template><xsl:template match="*[local-name() = 'term']">
2978
+ <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
2979
+
2980
+ <fo:block font-family="SimHei" font-size="11pt" keep-with-next="always" margin-top="10pt" margin-bottom="8pt" line-height="1.1">
2981
+ <xsl:apply-templates select="gb:name" mode="presentation"/>
2982
+ </fo:block>
2983
+
2984
+
2985
+
2986
+ <xsl:apply-templates/>
2987
+ </fo:block>
2988
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
2989
+ <xsl:if test="normalize-space() != ''">
2990
+ <fo:inline>
2991
+ <xsl:apply-templates/>
2992
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
2993
+ <xsl:text>.</xsl:text>
2994
+ </xsl:if> -->
2995
+ </fo:inline>
2996
+ </xsl:if>
2997
+ </xsl:template><xsl:template match="*[local-name() = 'figure']">
2998
+ <fo:block-container id="{@id}">
2999
+ <fo:block>
3000
+ <xsl:apply-templates/>
3001
+ </fo:block>
3002
+ <xsl:call-template name="fn_display_figure"/>
3003
+ <xsl:for-each select="*[local-name() = 'note']">
3004
+ <xsl:call-template name="note"/>
3005
+ </xsl:for-each>
3006
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3007
+ </fo:block-container>
3008
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
3009
+ <fo:block id="{@id}">
3010
+ <xsl:apply-templates/>
3011
+ </fo:block>
3012
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
3013
+ <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
3014
+ <xsl:apply-templates/>
3015
+ </fo:block>
3016
+ </xsl:template><xsl:template match="*[local-name() = 'image']">
3017
+ <fo:block xsl:use-attribute-sets="image-style">
3018
+
3019
+
3020
+ <xsl:variable name="src">
3021
+ <xsl:choose>
3022
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
3023
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
3024
+ </xsl:when>
3025
+ <xsl:otherwise>
3026
+ <xsl:value-of select="@src"/>
3027
+ </xsl:otherwise>
3028
+ </xsl:choose>
3029
+ </xsl:variable>
3030
+
3031
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3032
+ </fo:block>
3033
+ </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">
3034
+ <xsl:apply-templates mode="contents"/>
3035
+ <xsl:text> </xsl:text>
3036
+ </xsl:template><xsl:template match="text()" mode="contents">
3037
+ <xsl:value-of select="."/>
3038
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3039
+ <xsl:if test="normalize-space() != ''">
3040
+ <fo:block xsl:use-attribute-sets="figure-name-style">
3041
+
3042
+ <xsl:apply-templates/>
3043
+ </fo:block>
3044
+ </xsl:if>
3045
+ </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">
3046
+ <xsl:apply-templates mode="contents_item"/>
3047
+ <!-- <xsl:text> </xsl:text> -->
3048
+ </xsl:template><xsl:template name="getSection">
3049
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
3050
+ </xsl:template><xsl:template name="getName">
3051
+ <xsl:choose>
3052
+ <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
3053
+ <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
3054
+ </xsl:when>
3055
+ <xsl:otherwise>
3056
+ <xsl:copy-of select="*[local-name() = 'title']/node()"/>
3057
+ </xsl:otherwise>
3058
+ </xsl:choose>
3059
+ </xsl:template><xsl:template name="insertTitleAsListItem">
3060
+ <xsl:param name="provisional-distance-between-starts" select="'9.5mm'"/>
3061
+ <xsl:variable name="section">
3062
+ <xsl:for-each select="..">
3063
+ <xsl:call-template name="getSection"/>
3064
+ </xsl:for-each>
3065
+ </xsl:variable>
3066
+ <fo:list-block provisional-distance-between-starts="{$provisional-distance-between-starts}">
3067
+ <fo:list-item>
3068
+ <fo:list-item-label end-indent="label-end()">
3069
+ <fo:block>
3070
+ <xsl:value-of select="$section"/>
3071
+ </fo:block>
3072
+ </fo:list-item-label>
3073
+ <fo:list-item-body start-indent="body-start()">
3074
+ <fo:block>
3075
+ <xsl:choose>
3076
+ <xsl:when test="*[local-name() = 'tab']">
3077
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3078
+ </xsl:when>
3079
+ <xsl:otherwise>
3080
+ <xsl:apply-templates/>
3081
+ </xsl:otherwise>
3082
+ </xsl:choose>
3083
+ </fo:block>
3084
+ </fo:list-item-body>
3085
+ </fo:list-item>
3086
+ </fo:list-block>
3087
+ </xsl:template><xsl:template name="extractTitle">
3088
+ <xsl:choose>
3089
+ <xsl:when test="*[local-name() = 'tab']">
3090
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
3091
+ </xsl:when>
3092
+ <xsl:otherwise>
3093
+ <xsl:apply-templates/>
3094
+ </xsl:otherwise>
3095
+ </xsl:choose>
3096
+ </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">
3097
+ <xsl:text> </xsl:text>
3098
+ </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
3099
+ <xsl:copy>
3100
+ <xsl:apply-templates mode="contents_item"/>
3101
+ </xsl:copy>
3102
+ </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
3103
+ <xsl:text> </xsl:text>
3104
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3105
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3106
+ <xsl:apply-templates/>
3107
+ </fo:block>
3108
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3109
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
3110
+ <xsl:variable name="text">
3111
+ <xsl:call-template name="add-zero-spaces-equal"/>
3112
+ </xsl:variable>
3113
+ <xsl:call-template name="add-zero-spaces">
3114
+ <xsl:with-param name="text" select="$text"/>
3115
+ </xsl:call-template>
3116
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
3117
+ <xsl:if test="normalize-space() != ''">
3118
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
3119
+
3120
+ <xsl:apply-templates/>
3121
+ </fo:block>
3122
+ </xsl:if>
3123
+ </xsl:template><xsl:template match="*[local-name() = 'permission']">
3124
+ <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
3125
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3126
+ <xsl:apply-templates/>
3127
+ </fo:block>
3128
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
3129
+ <xsl:if test="normalize-space() != ''">
3130
+ <fo:block xsl:use-attribute-sets="permission-name-style">
3131
+ <xsl:apply-templates/>
3132
+
3133
+ </fo:block>
3134
+ </xsl:if>
3135
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'label']">
3136
+ <fo:block xsl:use-attribute-sets="permission-label-style">
3137
+ <xsl:apply-templates/>
3138
+ </fo:block>
3139
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']">
3140
+ <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
3141
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3142
+ <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
3143
+ <xsl:apply-templates select="@obligation" mode="presentation"/>
3144
+ <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
3145
+ <xsl:apply-templates/>
3146
+ </fo:block>
3147
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
3148
+ <xsl:if test="normalize-space() != ''">
3149
+ <fo:block xsl:use-attribute-sets="requirement-name-style">
3150
+
3151
+ <xsl:apply-templates/>
3152
+
3153
+ </fo:block>
3154
+ </xsl:if>
3155
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
3156
+ <fo:block xsl:use-attribute-sets="requirement-label-style">
3157
+ <xsl:apply-templates/>
3158
+ </fo:block>
3159
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
3160
+ <fo:block>
3161
+ <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
3162
+ </fo:block>
3163
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
3164
+ <fo:block xsl:use-attribute-sets="requirement-subject-style">
3165
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
3166
+ </fo:block>
3167
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
3168
+ <fo:block xsl:use-attribute-sets="requirement-inherit-style">
3169
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
3170
+ </fo:block>
3171
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
3172
+ <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
3173
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3174
+ <xsl:apply-templates/>
3175
+ </fo:block>
3176
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
3177
+ <xsl:if test="normalize-space() != ''">
3178
+ <fo:block xsl:use-attribute-sets="recommendation-name-style">
3179
+ <xsl:apply-templates/>
3180
+
3181
+ </fo:block>
3182
+ </xsl:if>
3183
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
3184
+ <fo:block xsl:use-attribute-sets="recommendation-label-style">
3185
+ <xsl:apply-templates/>
3186
+ </fo:block>
3187
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3188
+ <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3189
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3190
+ <xsl:apply-templates/>
3191
+ </fo:block>
3192
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
3193
+ <xsl:if test="normalize-space() != ''">
3194
+ <fo:inline xsl:use-attribute-sets="termexample-name-style">
3195
+ <xsl:apply-templates/>
3196
+ </fo:inline>
3197
+ </xsl:if>
3198
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
3199
+ <fo:inline><xsl:apply-templates/></fo:inline>
3200
+ </xsl:template><xsl:template match="*[local-name() = 'example']">
3201
+ <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
3202
+
3203
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3204
+
3205
+ <xsl:variable name="element">
3206
+ block
3207
+
3208
+ </xsl:variable>
3209
+
3210
+ <xsl:choose>
3211
+ <xsl:when test="normalize-space($element) = 'block'">
3212
+ <fo:block xsl:use-attribute-sets="example-body-style">
3213
+ <xsl:apply-templates/>
3214
+ </fo:block>
3215
+ </xsl:when>
3216
+ <xsl:otherwise>
3217
+ <fo:inline>
3218
+ <xsl:apply-templates/>
3219
+ </fo:inline>
3220
+ </xsl:otherwise>
3221
+ </xsl:choose>
3222
+
3223
+ </fo:block>
3224
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
3225
+
3226
+ <xsl:variable name="element">
3227
+
3228
+ inline
3229
+ </xsl:variable>
3230
+ <xsl:choose>
3231
+ <xsl:when test="ancestor::*[local-name() = 'appendix']">
3232
+ <fo:inline>
3233
+ <xsl:apply-templates/>
3234
+ </fo:inline>
3235
+ </xsl:when>
3236
+ <xsl:when test="normalize-space($element) = 'block'">
3237
+ <fo:block xsl:use-attribute-sets="example-name-style">
3238
+ <xsl:apply-templates/>
3239
+ </fo:block>
3240
+ </xsl:when>
3241
+ <xsl:otherwise>
3242
+ <fo:inline xsl:use-attribute-sets="example-name-style">
3243
+ <xsl:apply-templates/>
3244
+ </fo:inline>
3245
+ </xsl:otherwise>
3246
+ </xsl:choose>
3247
+
3248
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3249
+ <fo:block xsl:use-attribute-sets="example-p-style">
3250
+
3251
+ <xsl:apply-templates/>
3252
+ </fo:block>
3253
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3254
+ <fo:block xsl:use-attribute-sets="termsource-style">
3255
+ <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3256
+ <xsl:variable name="termsource_text">
3257
+ <xsl:apply-templates/>
3258
+ </xsl:variable>
3351
3259
  <xsl:choose>
3352
- <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
3353
- <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
3260
+ <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3261
+ <xsl:apply-templates/>
3354
3262
  </xsl:when>
3355
3263
  <xsl:otherwise>
3356
- <xsl:value-of select="normalize-space(@target)"/>
3264
+ <xsl:text>[</xsl:text>
3265
+ <xsl:apply-templates/>
3266
+ <xsl:text>]</xsl:text>
3357
3267
  </xsl:otherwise>
3358
3268
  </xsl:choose>
3269
+ </fo:block>
3270
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
3271
+ <xsl:if test="normalize-space() != ''">
3272
+ <xsl:value-of select="."/>
3273
+ </xsl:if>
3274
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
3275
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3276
+
3277
+ <fo:inline xsl:use-attribute-sets="origin-style">
3278
+ <xsl:apply-templates/>
3279
+ </fo:inline>
3280
+ </fo:basic-link>
3281
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
3282
+ <fo:inline><xsl:apply-templates/></fo:inline>
3283
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
3284
+ <xsl:if test="normalize-space() != ''">
3285
+ <xsl:value-of select="."/>
3286
+ </xsl:if>
3287
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3288
+
3289
+ <fo:block xsl:use-attribute-sets="quote-style">
3290
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3291
+ </fo:block>
3292
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3293
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3294
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3295
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3296
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3297
+ </fo:block>
3298
+ </xsl:if>
3299
+ </xsl:template><xsl:template match="*[local-name() = 'source']">
3300
+ <xsl:if test="../*[local-name() = 'author']">
3301
+ <xsl:text>, </xsl:text>
3302
+ </xsl:if>
3303
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3304
+ <xsl:apply-templates/>
3305
+ </fo:basic-link>
3306
+ </xsl:template><xsl:template match="*[local-name() = 'author']">
3307
+ <xsl:text>— </xsl:text>
3308
+ <xsl:apply-templates/>
3309
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
3310
+ <fo:inline xsl:use-attribute-sets="eref-style">
3311
+ <xsl:if test="@type = 'footnote'">
3312
+
3313
+
3314
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
3315
+ <xsl:attribute name="font-size">50%</xsl:attribute>
3316
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3317
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3318
+
3319
+ </xsl:if>
3320
+
3321
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3322
+
3323
+ <xsl:if test="@type = 'inline'">
3324
+
3325
+
3326
+ </xsl:if>
3327
+
3328
+
3329
+ <xsl:apply-templates/>
3330
+ </fo:basic-link>
3331
+ </fo:inline>
3332
+ </xsl:template><xsl:template match="*[local-name() = 'tab']">
3333
+ <!-- zero-space char -->
3334
+ <xsl:variable name="depth">
3335
+ <xsl:call-template name="getLevel">
3336
+ <xsl:with-param name="depth" select="../@depth"/>
3337
+ </xsl:call-template>
3359
3338
  </xsl:variable>
3360
- <fo:inline xsl:use-attribute-sets="link-style">
3339
+
3340
+ <xsl:variable name="padding">
3341
+
3342
+
3343
+ 3
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+
3358
+ </xsl:variable>
3359
+
3360
+ <xsl:variable name="padding-right">
3361
3361
  <xsl:choose>
3362
- <xsl:when test="$target = ''">
3363
- <xsl:apply-templates/>
3364
- </xsl:when>
3362
+ <xsl:when test="normalize-space($padding) = ''">0</xsl:when>
3365
3363
  <xsl:otherwise>
3366
- <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
3367
- <xsl:choose>
3368
- <xsl:when test="normalize-space(.) = ''">
3369
- <xsl:value-of select="$target"/>
3370
- </xsl:when>
3371
- <xsl:otherwise>
3372
- <xsl:apply-templates/>
3373
- </xsl:otherwise>
3374
- </xsl:choose>
3375
- </fo:basic-link>
3364
+ <xsl:value-of select="normalize-space($padding)"/>
3376
3365
  </xsl:otherwise>
3377
3366
  </xsl:choose>
3378
- </fo:inline>
3379
- </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3380
- <fo:block xsl:use-attribute-sets="sourcecode-style">
3381
- <!-- <xsl:choose>
3382
- <xsl:when test="@lang = 'en'"></xsl:when>
3383
- <xsl:otherwise> -->
3384
- <xsl:attribute name="white-space">pre</xsl:attribute>
3385
- <xsl:attribute name="wrap-option">wrap</xsl:attribute>
3386
- <!-- </xsl:otherwise>
3387
- </xsl:choose> -->
3367
+ </xsl:variable>
3368
+
3369
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3370
+
3371
+ <xsl:choose>
3372
+ <xsl:when test="$language = 'zh'">
3373
+ <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
3374
+ </xsl:when>
3375
+ <xsl:when test="../../@inline-header = 'true'">
3376
+ <fo:inline font-size="90%">
3377
+ <xsl:call-template name="insertNonBreakSpaces">
3378
+ <xsl:with-param name="count" select="$padding-right"/>
3379
+ </xsl:call-template>
3380
+ </fo:inline>
3381
+ </xsl:when>
3382
+ <xsl:otherwise>
3383
+ <fo:inline padding-right="{$padding-right}mm">​</fo:inline>
3384
+ </xsl:otherwise>
3385
+ </xsl:choose>
3386
+
3387
+ </xsl:template><xsl:template name="insertNonBreakSpaces">
3388
+ <xsl:param name="count"/>
3389
+ <xsl:if test="$count &gt; 0">
3390
+ <xsl:text> </xsl:text>
3391
+ <xsl:call-template name="insertNonBreakSpaces">
3392
+ <xsl:with-param name="count" select="$count - 1"/>
3393
+ </xsl:call-template>
3394
+ </xsl:if>
3395
+ </xsl:template><xsl:template match="*[local-name() = 'domain']">
3396
+ <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
3397
+ <xsl:text> </xsl:text>
3398
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']">
3399
+ <fo:block xsl:use-attribute-sets="admitted-style">
3388
3400
  <xsl:apply-templates/>
3389
3401
  </fo:block>
3390
- </xsl:template><xsl:template match="*[local-name()='bookmark']">
3391
- <fo:inline id="{@id}"/>
3392
- </xsl:template><xsl:template match="*[local-name()='appendix']">
3393
- <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3394
- <xsl:variable name="title-appendix">
3395
- <xsl:call-template name="getTitle">
3396
- <xsl:with-param name="name" select="'title-appendix'"/>
3397
- </xsl:call-template>
3398
- </xsl:variable>
3399
- <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
3400
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3402
+ </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
3403
+ <xsl:variable name="title-deprecated">
3404
+ <xsl:call-template name="getTitle">
3405
+ <xsl:with-param name="name" select="'title-deprecated'"/>
3406
+ </xsl:call-template>
3407
+ </xsl:variable>
3408
+ <fo:block xsl:use-attribute-sets="deprecates-style">
3409
+ <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
3410
+ </fo:block>
3411
+ </xsl:template><xsl:template match="*[local-name() = 'definition']">
3412
+ <fo:block xsl:use-attribute-sets="definition-style">
3413
+ <xsl:apply-templates/>
3401
3414
  </fo:block>
3415
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]">
3402
3416
  <xsl:apply-templates/>
3403
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3404
- <fo:inline><xsl:apply-templates/></fo:inline>
3405
- </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
3406
- <fo:block xsl:use-attribute-sets="appendix-example-style">
3407
- <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
3408
- <xsl:variable name="title-example">
3409
- <xsl:call-template name="getTitle">
3410
- <xsl:with-param name="name" select="'title-example'"/>
3411
- </xsl:call-template>
3412
- </xsl:variable>
3413
- <xsl:value-of select="$title-example"/>
3414
- <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
3415
- <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
3417
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p']">
3418
+ <fo:inline> <xsl:apply-templates/></fo:inline>
3419
+ <fo:block> </fo:block>
3420
+ </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
3421
+
3422
+ <fo:block>
3423
+ <xsl:call-template name="setId"/>
3424
+
3425
+
3426
+
3427
+ <xsl:variable name="pos"><xsl:number count="gb:sections/gb:clause | gb:sections/gb:terms"/></xsl:variable>
3428
+ <xsl:if test="$pos &gt;= 2">
3429
+ <xsl:attribute name="space-before">18pt</xsl:attribute>
3416
3430
  </xsl:if>
3417
- <xsl:if test="*[local-name()='name']">
3418
- <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
3419
- </xsl:if>
3431
+
3432
+
3433
+
3434
+
3435
+
3436
+
3437
+
3438
+
3439
+ <xsl:apply-templates/>
3420
3440
  </fo:block>
3421
- <xsl:apply-templates/>
3422
- </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">
3423
- <fo:inline><xsl:apply-templates/></fo:inline>
3424
- </xsl:template><xsl:template match="*[local-name() = 'callout']">
3425
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
3426
- </xsl:template><xsl:template match="*[local-name() = 'annotation']">
3427
- <xsl:variable name="annotation-id" select="@id"/>
3428
- <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
3429
- <fo:block id="{$annotation-id}" white-space="nowrap">
3430
- <fo:inline>
3431
- <xsl:apply-templates>
3432
- <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
3433
- </xsl:apply-templates>
3434
- </fo:inline>
3435
- </fo:block>
3436
- </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
3437
- <xsl:param name="callout"/>
3438
- <fo:inline id="{@id}">
3439
- <!-- for first p in annotation, put <x> -->
3440
- <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
3441
+
3442
+
3443
+
3444
+ </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
3445
+ <fo:block break-after="page"/>
3446
+ <fo:block>
3447
+ <xsl:call-template name="setId"/>
3441
3448
  <xsl:apply-templates/>
3442
- </fo:inline>
3443
- </xsl:template><xsl:template match="*[local-name() = 'modification']">
3444
- <xsl:variable name="title-modified">
3445
- <xsl:call-template name="getTitle">
3446
- <xsl:with-param name="name" select="'title-modified'"/>
3447
- </xsl:call-template>
3448
- </xsl:variable>
3449
- <xsl:choose>
3450
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3451
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3452
- </xsl:choose>
3449
+ </fo:block>
3450
+ </xsl:template><xsl:template match="*[local-name() = 'clause']">
3451
+ <fo:block>
3452
+ <xsl:call-template name="setId"/>
3453
+ <xsl:apply-templates/>
3454
+ </fo:block>
3455
+ </xsl:template><xsl:template match="*[local-name() = 'definitions']">
3456
+ <fo:block id="{@id}">
3457
+ <xsl:apply-templates/>
3458
+ </fo:block>
3459
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
3460
+
3461
+ <fo:block id="{@id}">
3462
+ <xsl:apply-templates/>
3463
+ </fo:block>
3464
+ </xsl:template><xsl:template match="*[local-name() = 'annex']">
3465
+ <fo:block break-after="page"/>
3466
+ <fo:block id="{@id}">
3467
+
3468
+ </fo:block>
3453
3469
  <xsl:apply-templates/>
3470
+ </xsl:template><xsl:template match="*[local-name() = 'review']">
3471
+ <!-- comment 2019-11-29 -->
3472
+ <!-- <fo:block font-weight="bold">Review:</fo:block>
3473
+ <xsl:apply-templates /> -->
3474
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3475
+ <!-- 0xA0 to space replacement -->
3476
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3477
+ </xsl:template><xsl:template match="*[local-name() = 'errata']">
3478
+ <!-- <row>
3479
+ <date>05-07-2013</date>
3480
+ <type>Editorial</type>
3481
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
3482
+ <pages>D-3</pages>
3483
+ </row>
3484
+ -->
3485
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
3486
+ <fo:table-column column-width="20mm"/>
3487
+ <fo:table-column column-width="23mm"/>
3488
+ <fo:table-column column-width="107mm"/>
3489
+ <fo:table-column column-width="15mm"/>
3490
+ <fo:table-body>
3491
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
3492
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
3493
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
3494
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
3495
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
3496
+ </fo:table-row>
3497
+ <xsl:apply-templates/>
3498
+ </fo:table-body>
3499
+ </fo:table>
3500
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']">
3501
+ <fo:table-row>
3502
+ <xsl:apply-templates/>
3503
+ </fo:table-row>
3504
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
3505
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3506
+ <fo:block><xsl:apply-templates/></fo:block>
3507
+ </fo:table-cell>
3454
3508
  </xsl:template><xsl:template name="convertDate">
3455
3509
  <xsl:param name="date"/>
3456
3510
  <xsl:param name="format" select="'short'"/>
@@ -3583,27 +3637,49 @@
3583
3637
  </xsl:otherwise>
3584
3638
  </xsl:choose>
3585
3639
  </xsl:template><xsl:template name="getLevel">
3586
- <xsl:variable name="level_total" select="count(ancestor::*)"/>
3587
- <xsl:variable name="level">
3588
- <xsl:choose>
3589
- <xsl:when test="ancestor::*[local-name() = 'preface']">
3590
- <xsl:value-of select="$level_total - 2"/>
3591
- </xsl:when>
3592
- <xsl:when test="ancestor::*[local-name() = 'sections']">
3593
- <xsl:value-of select="$level_total - 2"/>
3594
- </xsl:when>
3595
- <xsl:when test="ancestor::*[local-name() = 'bibliography']">
3596
- <xsl:value-of select="$level_total - 2"/>
3597
- </xsl:when>
3598
- <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
3599
- <xsl:otherwise>
3600
- <xsl:value-of select="$level_total - 1"/>
3601
- </xsl:otherwise>
3602
- </xsl:choose>
3603
- </xsl:variable>
3604
- <xsl:value-of select="$level"/>
3605
- </xsl:template><xsl:template name="getSubSection">
3606
- <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']"/>
3640
+ <xsl:param name="depth"/>
3641
+ <xsl:choose>
3642
+ <xsl:when test="normalize-space(@depth) != ''">
3643
+ <xsl:value-of select="@depth"/>
3644
+ </xsl:when>
3645
+ <xsl:when test="normalize-space($depth) != ''">
3646
+ <xsl:value-of select="$depth"/>
3647
+ </xsl:when>
3648
+ <xsl:otherwise>
3649
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
3650
+ <xsl:variable name="level">
3651
+ <xsl:choose>
3652
+ <xsl:when test="parent::*[local-name() = 'preface']">
3653
+ <xsl:value-of select="$level_total - 1"/>
3654
+ </xsl:when>
3655
+ <xsl:when test="ancestor::*[local-name() = 'preface']">
3656
+ <xsl:value-of select="$level_total - 2"/>
3657
+ </xsl:when>
3658
+ <!-- <xsl:when test="parent::*[local-name() = 'sections']">
3659
+ <xsl:value-of select="$level_total - 1"/>
3660
+ </xsl:when> -->
3661
+ <xsl:when test="ancestor::*[local-name() = 'sections']">
3662
+ <xsl:value-of select="$level_total - 1"/>
3663
+ </xsl:when>
3664
+ <xsl:when test="ancestor::*[local-name() = 'bibliography']">
3665
+ <xsl:value-of select="$level_total - 1"/>
3666
+ </xsl:when>
3667
+ <xsl:when test="parent::*[local-name() = 'annex']">
3668
+ <xsl:value-of select="$level_total - 1"/>
3669
+ </xsl:when>
3670
+ <xsl:when test="ancestor::*[local-name() = 'annex']">
3671
+ <xsl:value-of select="$level_total"/>
3672
+ </xsl:when>
3673
+ <xsl:when test="local-name() = 'annex'">1</xsl:when>
3674
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
3675
+ <xsl:otherwise>
3676
+ <xsl:value-of select="$level_total - 1"/>
3677
+ </xsl:otherwise>
3678
+ </xsl:choose>
3679
+ </xsl:variable>
3680
+ <xsl:value-of select="$level"/>
3681
+ </xsl:otherwise>
3682
+ </xsl:choose>
3607
3683
  </xsl:template><xsl:template name="split">
3608
3684
  <xsl:param name="pText" select="."/>
3609
3685
  <xsl:param name="sep" select="','"/>
@@ -3618,4 +3694,46 @@
3618
3694
  </xsl:if>
3619
3695
  </xsl:template><xsl:template name="getDocumentId">
3620
3696
  <xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
3697
+ </xsl:template><xsl:template name="namespaceCheck">
3698
+ <xsl:variable name="documentNS" select="namespace-uri(/*)"/>
3699
+ <xsl:variable name="XSLNS">
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+ <xsl:value-of select="document('')//*/namespace::gb"/>
3713
+
3714
+ </xsl:variable>
3715
+ <xsl:if test="$documentNS != $XSLNS">
3716
+ <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
3717
+ </xsl:if>
3718
+ </xsl:template><xsl:template name="getLanguage">
3719
+ <xsl:param name="lang"/>
3720
+ <xsl:variable name="language" select="java:toLowerCase(java:java.lang.String.new($lang))"/>
3721
+ <xsl:choose>
3722
+ <xsl:when test="$language = 'en'">English</xsl:when>
3723
+ <xsl:when test="$language = 'fr'">French</xsl:when>
3724
+ <xsl:when test="$language = 'de'">Deutsch</xsl:when>
3725
+ <xsl:when test="$language = 'cn'">Chinese</xsl:when>
3726
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3727
+ </xsl:choose>
3728
+ </xsl:template><xsl:template name="setId">
3729
+ <xsl:attribute name="id">
3730
+ <xsl:choose>
3731
+ <xsl:when test="@id">
3732
+ <xsl:value-of select="@id"/>
3733
+ </xsl:when>
3734
+ <xsl:otherwise>
3735
+ <xsl:value-of select="generate-id()"/>
3736
+ </xsl:otherwise>
3737
+ </xsl:choose>
3738
+ </xsl:attribute>
3621
3739
  </xsl:template></xsl:stylesheet>