metanorma-ogc 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,7 +15,7 @@ module IsoDoc
15
15
  end
16
16
 
17
17
  def hi_parse(node, out)
18
- out.span **{class: "hi"} do |e|
18
+ out.span **{ class: "hi" } do |e|
19
19
  node.children.each { |n| parse(n, e) }
20
20
  end
21
21
  end
@@ -27,23 +27,58 @@ module IsoDoc
27
27
 
28
28
  def term_cleanup(docxml)
29
29
  docxml.xpath("//p[@class = 'Terms']").each do |d|
30
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
31
- h2.add_child(" ")
32
- h2.add_child(d.remove)
30
+ term_cleanup_merge_termnum(d)
31
+ term_cleanup_merge_admitted(d)
33
32
  end
34
33
  docxml
35
34
  end
36
35
 
36
+ def term_cleanup_merge_termnum(term)
37
+ h2 = term.at("./preceding-sibling::*[@class = 'TermNum'][1]")
38
+ term["class"] = h2["class"]
39
+ term["id"] = h2["id"]
40
+ term.children.first.previous = " "
41
+ term.children.first.previous = h2.remove.children
42
+ end
43
+
44
+ def term_cleanup_merge_admitted(term)
45
+ term.xpath("./following-sibling::p[@class = 'AltTerms' or "\
46
+ "@class = 'DeprecatedTerms']").each do |a|
47
+ term << " "
48
+ term << a.children
49
+ a.remove
50
+ end
51
+ end
52
+
53
+ def deprecated_term_parse(node, out)
54
+ out.p **{ class: "DeprecatedTerms" } do |p|
55
+ node.children.each { |c| parse(c, p) }
56
+ p << "&#xa0;"
57
+ p.span **{ class: "AdmittedLabel" } do |s|
58
+ s << l10n(@i18n.deprecated)
59
+ end
60
+ end
61
+ end
62
+
63
+ def admitted_term_parse(node, out)
64
+ out.p **{ class: "AltTerms" } do |p|
65
+ node.children.each { |c| parse(c, p) }
66
+ p << "&#xa0;"
67
+ p.span **{ class: "AdmittedLabel" } do |s|
68
+ s << l10n(@i18n.admitted)
69
+ end
70
+ end
71
+ end
72
+
37
73
  def example_parse(node, out)
38
74
  name = node.at(ns("./name"))
39
- example_name_parse(node, out, name) #if name
75
+ example_name_parse(node, out, name) # if name
40
76
  super
41
77
  end
42
78
 
43
- def example_label(node, div, name)
44
- end
79
+ def example_label(node, div, name); end
45
80
 
46
- def example_name_parse(node, div, name)
81
+ def example_name_parse(_node, div, name)
47
82
  div.p **{ class: "SourceTitle", style: "text-align:center;" } do |p|
48
83
  name&.children&.each { |n| parse(n, p) }
49
84
  end
@@ -56,6 +91,7 @@ module IsoDoc
56
91
 
57
92
  def is_clause?(name)
58
93
  return true if name == "submitters"
94
+
59
95
  super
60
96
  end
61
97
 
@@ -84,8 +120,8 @@ module IsoDoc
84
120
  def make_tr_attr(td, row, totalrows, header)
85
121
  ret = super
86
122
  if td.at("./ancestor::xmlns:table[@class = 'recommendation'] | "\
87
- "./ancestor::xmlns:table[@class = 'requirement'] | "\
88
- "./ancestor::xmlns:table[@class = 'permission']")
123
+ "./ancestor::xmlns:table[@class = 'requirement'] | "\
124
+ "./ancestor::xmlns:table[@class = 'permission']")
89
125
  ret[:style] = "vertical-align:top;"
90
126
  ret[:class] = "recommend"
91
127
  end
@@ -94,6 +130,7 @@ module IsoDoc
94
130
 
95
131
  def para_class(node)
96
132
  return node["class"] if node["class"]
133
+
97
134
  super
98
135
  end
99
136
  end
@@ -784,6 +784,12 @@ ul > li {
784
784
  ul > li:first-child {
785
785
  margin-top: 1em; }
786
786
 
787
+ ul ul > li:first-child {
788
+ margin-top: 0; }
789
+
790
+ ol ul > li:first-child {
791
+ margin-top: 0; }
792
+
787
793
  span.keyword {
788
794
  font-weight: 600; }
789
795
 
@@ -865,6 +871,10 @@ p.AltTerms {
865
871
  font-size: 24px;
866
872
  margin-top: 1em; }
867
873
 
874
+ span.AdmittedLabel {
875
+ color: #00335b;
876
+ background-color: #CFE2F3; }
877
+
868
878
  /* Links, selection */
869
879
  a, a:visited {
870
880
  text-decoration: none;
@@ -273,6 +273,13 @@ ul {
273
273
  }
274
274
  }
275
275
 
276
+ ul ul > li:first-child {
277
+ margin-top: 0;
278
+ }
279
+ ol ul > li:first-child {
280
+ margin-top: 0;
281
+ }
282
+
276
283
 
277
284
  span.keyword {
278
285
  font-weight: 600;
@@ -363,6 +370,11 @@ p.AltTerms {
363
370
  margin-top: 1em;
364
371
  }
365
372
 
373
+ span.AdmittedLabel {
374
+ color: #00335b;
375
+ background-color: #CFE2F3;
376
+ }
377
+
366
378
 
367
379
  /* Links, selection */
368
380
 
@@ -851,3 +851,7 @@ div.warning p {
851
851
 
852
852
  span.hi {
853
853
  background-color: yellow; }
854
+
855
+ span.AdmittedLabel {
856
+ color: #00335b;
857
+ background-color: #CFE2F3; }
@@ -809,3 +809,7 @@ padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
809
809
  span.hi {
810
810
  background-color: yellow;
811
811
  }
812
+ span.AdmittedLabel {
813
+ color: #00335b;
814
+ background-color: #CFE2F3;
815
+ }
@@ -1,13 +1,14 @@
1
+ admitted: ADMITTED
1
2
  foreword: Preface
2
3
  submitters: Submitters
3
- recommendationtest: Recommendation Test
4
- requirementtest: Requirement Test
5
- permissiontest: Permission Test
6
- recommendationclass: Recommendations Class
7
- requirementclass: Requirements Class
8
- permissionclass: Permissions Class
9
- abstracttest: Abstract Test
10
- conformanceclass: Conformance Class
4
+ recommendationtest: Recommendation test
5
+ requirementtest: Requirement test
6
+ permissiontest: Permission test
7
+ recommendationclass: Recommendations class
8
+ requirementclass: Requirements class
9
+ permissionclass: Permissions class
10
+ abstracttest: Abstract test
11
+ conformanceclass: Conformance class
11
12
  example: Example
12
13
  security_empty: No security considerations have been made for this %.
13
14
  internal_terms_boilerplate: |
@@ -24,6 +25,7 @@ internal_external_terms_boilerplate: |
24
25
  <p>This document also uses terms defined in the OGC Standard for Modular specifications (<link target="https://portal.opengeospatial.org/files/?artifact_id=34762">OGC 08-131r3</link>), also known as the 'ModSpec'. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec.</p>
25
26
  <p>For the purposes of this document, the terms and definitions
26
27
  given in % and the following additionally apply.</p>
28
+ term_defined_in: "(%)"
27
29
  stage_dict:
28
30
  swg-draft: Candidate SWG Draft
29
31
  oab-review: Candidate OAB Review Draft
@@ -364,7 +364,7 @@
364
364
 
365
365
  <xsl:choose>
366
366
  <xsl:when test="@level = 1">
367
- <fo:list-block provisional-distance-between-starts="7mm">
367
+ <fo:list-block provisional-distance-between-starts="8mm">
368
368
  <xsl:if test="@type = 'annex'">
369
369
  <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
370
370
  </xsl:if>
@@ -393,7 +393,7 @@
393
393
  </fo:list-block>
394
394
  </xsl:when>
395
395
  <xsl:otherwise>
396
- <fo:block text-align-last="justify" margin-left="7mm">
396
+ <fo:block text-align-last="justify" margin-left="8mm">
397
397
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
398
398
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
399
399
  <xsl:text> </xsl:text>
@@ -579,7 +579,7 @@
579
579
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
580
580
  </xsl:template>
581
581
 
582
- <xsl:template match="text()" priority="3" mode="contents">
582
+ <xsl:template match="ogc:title//text() | ogc:name//text()" priority="3" mode="contents">
583
583
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
584
584
  </xsl:template>
585
585
 
@@ -587,7 +587,9 @@
587
587
  <xsl:variable name="content">
588
588
  <xsl:call-template name="add-zero-spaces"/>
589
589
  </xsl:variable>
590
- <xsl:value-of select="translate($content, $thinspace, ' ')"/>
590
+ <!-- add zero-width space in the words like 'adeOfAbstractTransportaonSpace' to split it in the table's cell -->
591
+ <xsl:variable name="content2" select="java:replaceAll(java:java.lang.String.new($content),'([a-z]{2,})([A-Z])(.?)','$1​$2$3')"/>
592
+ <xsl:value-of select="translate($content2, $thinspace, ' ')"/>
591
593
  </xsl:template>
592
594
 
593
595
 
@@ -1057,6 +1059,9 @@
1057
1059
  <xsl:if test="ancestor::ogc:table">
1058
1060
  <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
1059
1061
  </xsl:if>
1062
+ <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol">
1063
+ <xsl:attribute name="margin-top">10pt</xsl:attribute>
1064
+ </xsl:if>
1060
1065
  <fo:block-container margin-left="0mm">
1061
1066
  <fo:list-block provisional-distance-between-starts="12mm" space-after="12pt" line-height="115%">
1062
1067
  <xsl:if test="ancestor::ogc:table">
@@ -1091,17 +1096,25 @@
1091
1096
  <xsl:number format="a)" lang="en"/>
1092
1097
  </xsl:when>
1093
1098
  <xsl:when test="../@type = 'alphabet'">
1094
- <xsl:number format="1)"/>
1099
+ <xsl:number format="1."/>
1095
1100
  </xsl:when>
1096
1101
  <xsl:when test="../@type = 'alphabet_upper'">
1097
1102
  <xsl:number format="A)" lang="en"/>
1098
1103
  </xsl:when>
1099
-
1100
1104
  <xsl:when test="../@type = 'roman'">
1101
1105
  <xsl:number format="i)"/>
1102
1106
  </xsl:when>
1107
+ <xsl:when test="ancestor::ogc:table">
1108
+ <xsl:variable name="level" select="count(ancestor-or-self::ogc:li[ancestor::ogc:table])"/>
1109
+ <xsl:choose>
1110
+ <xsl:when test="$level = 1"><xsl:number format="a)" lang="en"/></xsl:when>
1111
+ <xsl:when test="$level = 2"><xsl:number format="1."/></xsl:when>
1112
+ <xsl:when test="$level = 3"><xsl:number format="i)"/></xsl:when>
1113
+ <xsl:otherwise><xsl:number format="a)" lang="en"/></xsl:otherwise>
1114
+ </xsl:choose>
1115
+ </xsl:when>
1103
1116
  <xsl:otherwise>
1104
- <xsl:number format="1)"/>
1117
+ <xsl:number format="1."/>
1105
1118
  </xsl:otherwise>
1106
1119
  </xsl:choose>
1107
1120
  </xsl:otherwise>
@@ -1110,6 +1123,9 @@
1110
1123
  </fo:list-item-label>
1111
1124
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1112
1125
  <fo:block margin-bottom="10pt">
1126
+ <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
1127
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1128
+ </xsl:if>
1113
1129
  <xsl:apply-templates/>
1114
1130
  </fo:block>
1115
1131
  </fo:list-item-body>
@@ -1834,7 +1850,7 @@
1834
1850
 
1835
1851
  <xsl:attribute name="text-align">left</xsl:attribute>
1836
1852
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1837
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1853
+ <xsl:attribute name="font-weight">bold</xsl:attribute><!-- normal -->
1838
1854
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1839
1855
 
1840
1856
 
@@ -1994,6 +2010,7 @@
1994
2010
 
1995
2011
 
1996
2012
 
2013
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1997
2014
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1998
2015
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1999
2016
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
@@ -2954,6 +2971,8 @@
2954
2971
 
2955
2972
 
2956
2973
  <xsl:attribute name="border">solid 0pt white</xsl:attribute>
2974
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2975
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
2957
2976
 
2958
2977
 
2959
2978
 
@@ -5957,6 +5976,7 @@
5957
5976
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5958
5977
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5959
5978
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5979
+
5960
5980
  <xsl:apply-templates/>
5961
5981
  </fo:block>
5962
5982
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
@@ -364,7 +364,7 @@
364
364
 
365
365
  <xsl:choose>
366
366
  <xsl:when test="@level = 1">
367
- <fo:list-block provisional-distance-between-starts="7mm">
367
+ <fo:list-block provisional-distance-between-starts="8mm">
368
368
  <xsl:if test="@type = 'annex'">
369
369
  <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
370
370
  </xsl:if>
@@ -393,7 +393,7 @@
393
393
  </fo:list-block>
394
394
  </xsl:when>
395
395
  <xsl:otherwise>
396
- <fo:block text-align-last="justify" margin-left="7mm">
396
+ <fo:block text-align-last="justify" margin-left="8mm">
397
397
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
398
398
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
399
399
  <xsl:text> </xsl:text>
@@ -579,7 +579,7 @@
579
579
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
580
580
  </xsl:template>
581
581
 
582
- <xsl:template match="text()" priority="3" mode="contents">
582
+ <xsl:template match="ogc:title//text() | ogc:name//text()" priority="3" mode="contents">
583
583
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
584
584
  </xsl:template>
585
585
 
@@ -587,7 +587,9 @@
587
587
  <xsl:variable name="content">
588
588
  <xsl:call-template name="add-zero-spaces"/>
589
589
  </xsl:variable>
590
- <xsl:value-of select="translate($content, $thinspace, ' ')"/>
590
+ <!-- add zero-width space in the words like 'adeOfAbstractTransportaonSpace' to split it in the table's cell -->
591
+ <xsl:variable name="content2" select="java:replaceAll(java:java.lang.String.new($content),'([a-z]{2,})([A-Z])(.?)','$1​$2$3')"/>
592
+ <xsl:value-of select="translate($content2, $thinspace, ' ')"/>
591
593
  </xsl:template>
592
594
 
593
595
 
@@ -1057,6 +1059,9 @@
1057
1059
  <xsl:if test="ancestor::ogc:table">
1058
1060
  <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
1059
1061
  </xsl:if>
1062
+ <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol">
1063
+ <xsl:attribute name="margin-top">10pt</xsl:attribute>
1064
+ </xsl:if>
1060
1065
  <fo:block-container margin-left="0mm">
1061
1066
  <fo:list-block provisional-distance-between-starts="12mm" space-after="12pt" line-height="115%">
1062
1067
  <xsl:if test="ancestor::ogc:table">
@@ -1091,17 +1096,25 @@
1091
1096
  <xsl:number format="a)" lang="en"/>
1092
1097
  </xsl:when>
1093
1098
  <xsl:when test="../@type = 'alphabet'">
1094
- <xsl:number format="1)"/>
1099
+ <xsl:number format="1."/>
1095
1100
  </xsl:when>
1096
1101
  <xsl:when test="../@type = 'alphabet_upper'">
1097
1102
  <xsl:number format="A)" lang="en"/>
1098
1103
  </xsl:when>
1099
-
1100
1104
  <xsl:when test="../@type = 'roman'">
1101
1105
  <xsl:number format="i)"/>
1102
1106
  </xsl:when>
1107
+ <xsl:when test="ancestor::ogc:table">
1108
+ <xsl:variable name="level" select="count(ancestor-or-self::ogc:li[ancestor::ogc:table])"/>
1109
+ <xsl:choose>
1110
+ <xsl:when test="$level = 1"><xsl:number format="a)" lang="en"/></xsl:when>
1111
+ <xsl:when test="$level = 2"><xsl:number format="1."/></xsl:when>
1112
+ <xsl:when test="$level = 3"><xsl:number format="i)"/></xsl:when>
1113
+ <xsl:otherwise><xsl:number format="a)" lang="en"/></xsl:otherwise>
1114
+ </xsl:choose>
1115
+ </xsl:when>
1103
1116
  <xsl:otherwise>
1104
- <xsl:number format="1)"/>
1117
+ <xsl:number format="1."/>
1105
1118
  </xsl:otherwise>
1106
1119
  </xsl:choose>
1107
1120
  </xsl:otherwise>
@@ -1110,6 +1123,9 @@
1110
1123
  </fo:list-item-label>
1111
1124
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1112
1125
  <fo:block margin-bottom="10pt">
1126
+ <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
1127
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1128
+ </xsl:if>
1113
1129
  <xsl:apply-templates/>
1114
1130
  </fo:block>
1115
1131
  </fo:list-item-body>
@@ -1834,7 +1850,7 @@
1834
1850
 
1835
1851
  <xsl:attribute name="text-align">left</xsl:attribute>
1836
1852
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1837
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1853
+ <xsl:attribute name="font-weight">bold</xsl:attribute><!-- normal -->
1838
1854
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1839
1855
 
1840
1856
 
@@ -1994,6 +2010,7 @@
1994
2010
 
1995
2011
 
1996
2012
 
2013
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1997
2014
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1998
2015
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1999
2016
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
@@ -2954,6 +2971,8 @@
2954
2971
 
2955
2972
 
2956
2973
  <xsl:attribute name="border">solid 0pt white</xsl:attribute>
2974
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2975
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
2957
2976
 
2958
2977
 
2959
2978
 
@@ -5957,6 +5976,7 @@
5957
5976
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5958
5977
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5959
5978
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5979
+
5960
5980
  <xsl:apply-templates/>
5961
5981
  </fo:block>
5962
5982
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
@@ -364,7 +364,7 @@
364
364
 
365
365
  <xsl:choose>
366
366
  <xsl:when test="@level = 1">
367
- <fo:list-block provisional-distance-between-starts="7mm">
367
+ <fo:list-block provisional-distance-between-starts="8mm">
368
368
  <xsl:if test="@type = 'annex'">
369
369
  <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
370
370
  </xsl:if>
@@ -393,7 +393,7 @@
393
393
  </fo:list-block>
394
394
  </xsl:when>
395
395
  <xsl:otherwise>
396
- <fo:block text-align-last="justify" margin-left="7mm">
396
+ <fo:block text-align-last="justify" margin-left="8mm">
397
397
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
398
398
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
399
399
  <xsl:text> </xsl:text>
@@ -579,7 +579,7 @@
579
579
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
580
580
  </xsl:template>
581
581
 
582
- <xsl:template match="text()" priority="3" mode="contents">
582
+ <xsl:template match="ogc:title//text() | ogc:name//text()" priority="3" mode="contents">
583
583
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
584
584
  </xsl:template>
585
585
 
@@ -587,7 +587,9 @@
587
587
  <xsl:variable name="content">
588
588
  <xsl:call-template name="add-zero-spaces"/>
589
589
  </xsl:variable>
590
- <xsl:value-of select="translate($content, $thinspace, ' ')"/>
590
+ <!-- add zero-width space in the words like 'adeOfAbstractTransportaonSpace' to split it in the table's cell -->
591
+ <xsl:variable name="content2" select="java:replaceAll(java:java.lang.String.new($content),'([a-z]{2,})([A-Z])(.?)','$1​$2$3')"/>
592
+ <xsl:value-of select="translate($content2, $thinspace, ' ')"/>
591
593
  </xsl:template>
592
594
 
593
595
 
@@ -1057,6 +1059,9 @@
1057
1059
  <xsl:if test="ancestor::ogc:table">
1058
1060
  <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
1059
1061
  </xsl:if>
1062
+ <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol">
1063
+ <xsl:attribute name="margin-top">10pt</xsl:attribute>
1064
+ </xsl:if>
1060
1065
  <fo:block-container margin-left="0mm">
1061
1066
  <fo:list-block provisional-distance-between-starts="12mm" space-after="12pt" line-height="115%">
1062
1067
  <xsl:if test="ancestor::ogc:table">
@@ -1091,17 +1096,25 @@
1091
1096
  <xsl:number format="a)" lang="en"/>
1092
1097
  </xsl:when>
1093
1098
  <xsl:when test="../@type = 'alphabet'">
1094
- <xsl:number format="1)"/>
1099
+ <xsl:number format="1."/>
1095
1100
  </xsl:when>
1096
1101
  <xsl:when test="../@type = 'alphabet_upper'">
1097
1102
  <xsl:number format="A)" lang="en"/>
1098
1103
  </xsl:when>
1099
-
1100
1104
  <xsl:when test="../@type = 'roman'">
1101
1105
  <xsl:number format="i)"/>
1102
1106
  </xsl:when>
1107
+ <xsl:when test="ancestor::ogc:table">
1108
+ <xsl:variable name="level" select="count(ancestor-or-self::ogc:li[ancestor::ogc:table])"/>
1109
+ <xsl:choose>
1110
+ <xsl:when test="$level = 1"><xsl:number format="a)" lang="en"/></xsl:when>
1111
+ <xsl:when test="$level = 2"><xsl:number format="1."/></xsl:when>
1112
+ <xsl:when test="$level = 3"><xsl:number format="i)"/></xsl:when>
1113
+ <xsl:otherwise><xsl:number format="a)" lang="en"/></xsl:otherwise>
1114
+ </xsl:choose>
1115
+ </xsl:when>
1103
1116
  <xsl:otherwise>
1104
- <xsl:number format="1)"/>
1117
+ <xsl:number format="1."/>
1105
1118
  </xsl:otherwise>
1106
1119
  </xsl:choose>
1107
1120
  </xsl:otherwise>
@@ -1110,6 +1123,9 @@
1110
1123
  </fo:list-item-label>
1111
1124
  <fo:list-item-body start-indent="body-start()" line-height-shift-adjustment="disregard-shifts">
1112
1125
  <fo:block margin-bottom="10pt">
1126
+ <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
1127
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1128
+ </xsl:if>
1113
1129
  <xsl:apply-templates/>
1114
1130
  </fo:block>
1115
1131
  </fo:list-item-body>
@@ -1834,7 +1850,7 @@
1834
1850
 
1835
1851
  <xsl:attribute name="text-align">left</xsl:attribute>
1836
1852
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1837
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1853
+ <xsl:attribute name="font-weight">bold</xsl:attribute><!-- normal -->
1838
1854
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1839
1855
 
1840
1856
 
@@ -1994,6 +2010,7 @@
1994
2010
 
1995
2011
 
1996
2012
 
2013
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1997
2014
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1998
2015
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1999
2016
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
@@ -2954,6 +2971,8 @@
2954
2971
 
2955
2972
 
2956
2973
  <xsl:attribute name="border">solid 0pt white</xsl:attribute>
2974
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2975
+ <xsl:attribute name="padding-bottom">1mm</xsl:attribute>
2957
2976
 
2958
2977
 
2959
2978
 
@@ -5957,6 +5976,7 @@
5957
5976
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5958
5977
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5959
5978
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5979
+
5960
5980
  <xsl:apply-templates/>
5961
5981
  </fo:block>
5962
5982
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">