metanorma-iec 1.1.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/lib/asciidoctor/iec/converter.rb +6 -15
  4. data/lib/asciidoctor/iec/front.rb +4 -4
  5. data/lib/asciidoctor/iec/isodoc.rng +12 -6
  6. data/lib/isodoc/iec/base_convert.rb +9 -41
  7. data/lib/isodoc/iec/html/htmlstyle.css +962 -0
  8. data/lib/isodoc/iec/html/htmlstyle.scss +0 -3
  9. data/lib/isodoc/iec/html/isodoc.css +845 -0
  10. data/lib/isodoc/iec/html/isodoc.scss +0 -1
  11. data/lib/isodoc/iec/html/wordstyle.css +2013 -0
  12. data/lib/isodoc/iec/html/wordstyle.scss +0 -1
  13. data/lib/isodoc/iec/html_convert.rb +2 -0
  14. data/lib/isodoc/iec/i18n-en.yaml +13 -0
  15. data/lib/isodoc/iec/i18n-fr.yaml +13 -0
  16. data/lib/isodoc/iec/i18n-zh-Hans.yaml +11 -0
  17. data/lib/isodoc/iec/i18n.rb +19 -0
  18. data/lib/isodoc/iec/iec.international-standard.xsl +1460 -1247
  19. data/lib/isodoc/iec/init.rb +29 -0
  20. data/lib/isodoc/iec/presentation_xml_convert.rb +26 -1
  21. data/lib/isodoc/iec/word_convert.rb +3 -1
  22. data/lib/isodoc/iec/xref.rb +1 -1
  23. data/lib/metanorma/iec/version.rb +1 -1
  24. data/metanorma-iec.gemspec +3 -2
  25. data/spec/asciidoctor-iec/blocks_spec.rb +1 -1
  26. data/spec/asciidoctor-iec/cleanup_spec.rb +2 -2
  27. data/spec/asciidoctor-iec/iev_spec.rb +74 -1
  28. data/spec/asciidoctor-iec/inline_spec.rb +1 -1
  29. data/spec/asciidoctor-iec/section_spec.rb +17 -15
  30. data/spec/isodoc/blocks_spec.rb +66 -1
  31. data/spec/isodoc/i18n_spec.rb +296 -244
  32. data/spec/isodoc/iev_spec.rb +221 -14
  33. data/spec/isodoc/inline_spec.rb +97 -73
  34. data/spec/isodoc/iso_spec.rb +6 -0
  35. data/spec/isodoc/postproc_spec.rb +15 -29
  36. data/spec/isodoc/ref_spec.rb +129 -2
  37. data/spec/isodoc/section_spec.rb +112 -102
  38. data/spec/isodoc/terms_spec.rb +67 -53
  39. data/spec/metanorma/processor_spec.rb +2 -1
  40. metadata +25 -9
  41. data/lib/asciidoctor/iec/i18n-en.yaml +0 -12
  42. data/lib/asciidoctor/iec/i18n-fr.yaml +0 -11
  43. data/lib/asciidoctor/iec/i18n-zh-Hans.yaml +0 -9
@@ -1852,4 +1852,3 @@ ol
1852
1852
  ul
1853
1853
  {margin-bottom:0cm;
1854
1854
  margin-left:18pt;}
1855
-
@@ -1,6 +1,7 @@
1
1
  require "isodoc"
2
2
  require "metanorma-iso"
3
3
  require_relative "base_convert"
4
+ require_relative "init"
4
5
 
5
6
  module IsoDoc
6
7
  module Iec
@@ -36,6 +37,7 @@ module IsoDoc
36
37
  end
37
38
 
38
39
  include BaseConvert
40
+ include Init
39
41
  end
40
42
  end
41
43
  end
@@ -2,4 +2,17 @@ introduction: INTRODUCTION
2
2
  introduction_iev: INTRODUCTION<br/>Principles and rules followed
3
3
  foreword: FOREWORD
4
4
  IEC: INTERNATIONAL ELECTROTECHNICAL COMMISSION
5
+ formula: Equation
6
+ inequality: Inequality
5
7
  section_iev: Section
8
+ term_def_boilerplate: |
9
+ <p>ISO and IEC maintain terminological databases for use in
10
+ standardization at the following addresses:</p>
11
+
12
+ <ul>
13
+ <li> <p>IEC Electropedia: available at
14
+ <link target="http://www.electropedia.org"/>
15
+ </p> </li>
16
+ <li> <p>ISO Online browsing platform: available at
17
+ <link target="http://www.iso.org/obp"/></p> </li>
18
+ </ul>
@@ -1,5 +1,18 @@
1
1
  introduction: INTRODUCTION
2
2
  introduction_iev: INTRODUCTION<br/>Principes d’établissement et règles suivies
3
3
  foreword: AVANT-PROPOS
4
+ formula: Equation
5
+ inequality: Inégalité
4
6
  IEC: COMMISSION ELECTROTECHNIQUE INTERNATIONALE
5
7
  section_iev: Section
8
+ term_def_boilerplate: |
9
+ <p>L'ISO et l'IEC tiennent à jour des bases de données terminologiques
10
+ destinées à être utilisées en normalisation, consultables aux adresses
11
+ suivantes:</p>
12
+ <ul>
13
+ <li> <p>IEC Electropedia: disponible à l'adresse
14
+ <link target="http://www.electropedia.org"/>
15
+ </p> </li>
16
+ <li> <p>ISO Online browsing platform: disponible à l'adresse
17
+ <link target="http://www.iso.org/obp"/></p> </li>
18
+ </ul>
@@ -1,3 +1,14 @@
1
1
  introduction: 引言
2
2
  foreword: 前言
3
3
  IEC: 国际电工委员会
4
+ formula: 方程式
5
+ inequality: 不等式
6
+ term_def_boilerplate: |
7
+ <p>ISO和IEC用于标准化的术语数据库地址如下:</p>
8
+ <ul>
9
+ <li> <p>IEC Electropedia:
10
+ 位于<link target="http://www.electropedia.org"/>
11
+ </p> </li>
12
+ <li> <p>ISO在线浏览平台:
13
+ 位于<link target="http://www.iso.org/obp"/></p></li>
14
+ </ul>
@@ -0,0 +1,19 @@
1
+ module IsoDoc
2
+ module Iec
3
+ class I18n < IsoDoc::Iso::I18n
4
+ def load_yaml1(lang, script)
5
+ y = if lang == "en"
6
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
7
+ elsif lang == "fr"
8
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-fr.yaml"))
9
+ elsif lang == "zh" && script == "Hans"
10
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-zh-Hans.yaml"))
11
+ else
12
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
13
+ end
14
+ super.merge(y)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
@@ -2,6 +2,9 @@
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
+ <xsl:param name="svg_images"/>
6
+ <xsl:variable name="images" select="document($svg_images)"/>
7
+
5
8
 
6
9
 
7
10
  <xsl:param name="additionalXMLs" select="''"/> <!-- iec-rice.fr.xml -->
@@ -113,29 +116,8 @@
113
116
 
114
117
  <xsl:template name="generateContents">
115
118
  <contents>
116
-
117
- <xsl:apply-templates select="/iec:iec-standard/iec:preface/node()" mode="contents"/>
118
- <!-- <xsl:with-param name="sectionNum" select="'0'"/>
119
- </xsl:apply-templates> -->
120
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]" mode="contents"> <!-- [@id = '_scope'] -->
121
- <xsl:with-param name="sectionNum" select="'1'"/>
122
- </xsl:apply-templates>
123
- <xsl:apply-templates select="/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]" mode="contents"> <!-- [@id = '_normative_references'] -->
124
- <xsl:with-param name="sectionNum" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + 1"/>
125
- </xsl:apply-templates>
126
-
127
- <!-- Terms and definitions -->
128
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/iec:terms" mode="contents">
129
- <xsl:with-param name="sectionNum" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + count(/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]) + 1"/>
130
- </xsl:apply-templates>
131
-
132
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/*[local-name() != 'terms' and not(starts-with(@id, '_scope'))]" mode="contents">
133
- <xsl:with-param name="sectionNumSkew" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + count(/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]) + count(/iec:iec-standard/iec:sections/iec:terms)"/>
134
- </xsl:apply-templates>
135
-
136
- <xsl:apply-templates select="/iec:iec-standard/iec:annex" mode="contents"/>
137
- <xsl:apply-templates select="/iec:iec-standard/iec:bibliography/iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]" mode="contents"/> <!-- @id = '_bibliography' -->
138
-
119
+ <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
120
+ <xsl:call-template name="processMainSectionsDefault_Contents"/>
139
121
  </contents>
140
122
  </xsl:template>
141
123
 
@@ -147,6 +129,7 @@
147
129
  </xsl:variable>
148
130
 
149
131
  <xsl:template match="/">
132
+ <xsl:call-template name="namespaceCheck"/>
150
133
  <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
151
134
  <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
152
135
  <fo:root font-family="Arial, Times New Roman, STIX2Math, HanSans" font-size="10pt" xml:lang="{$lang}">
@@ -1184,7 +1167,9 @@
1184
1167
  </xsl:call-template>
1185
1168
  </fo:block>
1186
1169
 
1187
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true'] [@level &lt;= 3] [not(@level = 2 and starts-with(@section, '0'))]"><!-- skip clause from preface -->
1170
+ <xsl:for-each select="xalan:nodeset($contents)//item"><!-- [@display = 'true']
1171
+ [@level &lt;= 3]
1172
+ [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
1188
1173
  <fo:block text-align-last="justify">
1189
1174
  <xsl:if test="@level = 1">
1190
1175
  <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
@@ -1211,7 +1196,7 @@
1211
1196
  </xsl:attribute>
1212
1197
  <xsl:attribute name="provisional-distance-between-starts">
1213
1198
  <xsl:choose>
1214
- <xsl:when test="@display-section = 'false' or @section = ''">0mm</xsl:when>
1199
+ <xsl:when test="@section = ''">0mm</xsl:when>
1215
1200
  <xsl:when test="@level = 1">8mm</xsl:when>
1216
1201
  <xsl:when test="@level = 2">15mm</xsl:when>
1217
1202
  <xsl:when test="@level = 3">19mm</xsl:when>
@@ -1221,22 +1206,17 @@
1221
1206
  <fo:list-item>
1222
1207
  <fo:list-item-label end-indent="label-end()">
1223
1208
  <fo:block>
1224
- <xsl:if test="not(@display-section = 'false')">
1225
- <xsl:value-of select="@section"/>
1226
- </xsl:if>
1209
+ <xsl:value-of select="@section"/>
1227
1210
  </fo:block>
1228
1211
  </fo:list-item-label>
1229
1212
  <fo:list-item-body start-indent="body-start()">
1230
1213
  <fo:block text-align-last="justify">
1231
1214
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
1232
- <xsl:if test="@type = 'annex'">
1233
- <fo:inline><xsl:value-of select="@section"/></fo:inline>
1234
- <xsl:if test="@addon != ''">
1235
- <fo:inline> (<xsl:value-of select="@addon"/>) </fo:inline>
1236
- </xsl:if>
1237
- </xsl:if>
1215
+ <xsl:variable name="title">
1216
+ <xsl:apply-templates/>
1217
+ </xsl:variable>
1238
1218
  <xsl:call-template name="addLetterSpacing">
1239
- <xsl:with-param name="text" select="text()"/>
1219
+ <xsl:with-param name="text" select="$title"/>
1240
1220
  </xsl:call-template>
1241
1221
  <xsl:text> </xsl:text>
1242
1222
  <fo:inline keep-together.within-line="always">
@@ -1251,17 +1231,12 @@
1251
1231
  </fo:block>
1252
1232
  </xsl:for-each>
1253
1233
 
1254
- <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
1255
- <fo:block margin-bottom="5pt"> </fo:block>
1256
- <!-- <fo:block margin-top="5pt" margin-bottom="10pt">&#xA0;</fo:block> -->
1257
- <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
1234
+ <xsl:if test="//iec:figure[@id and iec:name]">
1235
+ <fo:block margin-bottom="5pt"> </fo:block>
1236
+ <xsl:for-each select="//iec:figure[@id and iec:name]">
1258
1237
  <fo:block text-align-last="justify" margin-bottom="5pt" margin-left="8mm" text-indent="-8mm">
1259
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
1260
- <xsl:value-of select="@section"/>
1261
- <xsl:if test="text() != ''">
1262
- <xsl:text> – </xsl:text>
1263
- <xsl:value-of select="text()"/><xsl:text> </xsl:text>
1264
- </xsl:if>
1238
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="Figure {@id}">
1239
+ <xsl:apply-templates select="iec:name" mode="contents"/>
1265
1240
  <fo:inline keep-together.within-line="always">
1266
1241
  <fo:leader leader-pattern="dots"/>
1267
1242
  <fo:page-number-citation ref-id="{@id}"/>
@@ -1271,17 +1246,12 @@
1271
1246
  </xsl:for-each>
1272
1247
  </xsl:if>
1273
1248
 
1274
- <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
1275
- <fo:block margin-bottom="5pt"> </fo:block>
1276
- <!-- <fo:block margin-top="5pt" margin-bottom="10pt">&#xA0;</fo:block> -->
1277
- <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table' and @display = 'true']">
1249
+ <xsl:if test="//iec:table[@id and iec:name]">
1250
+ <fo:block margin-bottom="5pt"> </fo:block>
1251
+ <xsl:for-each select="//iec:table[@id and iec:name]">
1278
1252
  <fo:block text-align-last="justify" margin-bottom="5pt" margin-left="8mm" text-indent="-8mm">
1279
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
1280
- <xsl:value-of select="@section"/>
1281
- <xsl:if test="text() != ''">
1282
- <xsl:text> – </xsl:text>
1283
- <xsl:value-of select="text()"/><xsl:text> </xsl:text>
1284
- </xsl:if>
1253
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="Table {@id}">
1254
+ <xsl:apply-templates select="iec:name" mode="contents"/>
1285
1255
  <fo:inline keep-together.within-line="always">
1286
1256
  <fo:leader leader-pattern="dots"/>
1287
1257
  <fo:page-number-citation ref-id="{@id}"/>
@@ -1290,7 +1260,7 @@
1290
1260
  </fo:block>
1291
1261
  </xsl:for-each>
1292
1262
  </xsl:if>
1293
-
1263
+
1294
1264
  </fo:block-container>
1295
1265
  </xsl:template>
1296
1266
 
@@ -1322,7 +1292,7 @@
1322
1292
  </fo:block-container>
1323
1293
 
1324
1294
  <!-- Foreword, Introduction -->
1325
- <xsl:apply-templates select="/iec:iec-standard/iec:preface/*"/>
1295
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
1326
1296
  </xsl:template>
1327
1297
 
1328
1298
 
@@ -1362,253 +1332,83 @@
1362
1332
  </fo:block>
1363
1333
  </fo:block-container>
1364
1334
 
1365
- <!-- Clause(s) -->
1366
- <fo:block>
1367
-
1368
-
1369
- <!-- Scope -->
1370
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]">
1371
- <xsl:with-param name="sectionNum" select="'1'"/>
1372
- </xsl:apply-templates>
1373
-
1374
- <!-- Normative references -->
1375
- <xsl:apply-templates select="/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]">
1376
- <xsl:with-param name="sectionNum" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + 1"/>
1377
- </xsl:apply-templates>
1378
-
1379
- <!-- Terms and definitions -->
1380
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/iec:terms">
1381
- <xsl:with-param name="sectionNum" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + count(/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]) + 1"/>
1382
- </xsl:apply-templates>
1383
-
1384
- <!-- main sections -->
1385
- <!-- *[position() &gt; 1] -->
1386
- <xsl:apply-templates select="/iec:iec-standard/iec:sections/*[local-name() != 'terms' and not(starts-with(@id, '_scope'))]">
1387
- <xsl:with-param name="sectionNumSkew" select="count(/iec:iec-standard/iec:sections/iec:clause[starts-with(@id, '_scope')]) + count(/iec:iec-standard/iec:bibliography/iec:references[starts-with(@id, '_normative_references') or starts-with(@id, '_references')]) + count(/iec:iec-standard/iec:sections/iec:terms)"/>
1388
- </xsl:apply-templates>
1389
-
1390
- <!-- Annex(s) -->
1391
- <xsl:apply-templates select="/iec:iec-standard/iec:annex"/>
1392
-
1393
- <!-- Bibliography -->
1394
- <xsl:apply-templates select="/iec:iec-standard/iec:bibliography/iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]"/>
1395
-
1335
+ <!-- Main sections -->
1336
+ <fo:block>
1337
+ <xsl:call-template name="processMainSectionsDefault"/>
1396
1338
  </fo:block>
1397
1339
 
1398
1340
  </fo:flow>
1399
1341
  </fo:page-sequence>
1400
1342
  </xsl:template>
1401
1343
 
1402
- <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
1403
- <xsl:template match="node()">
1404
- <xsl:param name="sectionNum"/>
1405
- <xsl:param name="sectionNumSkew"/>
1406
- <xsl:apply-templates>
1407
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1408
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
1409
- </xsl:apply-templates>
1344
+
1345
+ <xsl:template match="node()">
1346
+ <xsl:apply-templates/>
1410
1347
  </xsl:template>
1411
1348
 
1412
1349
  <!-- ============================= -->
1413
1350
  <!-- CONTENTS -->
1414
1351
  <!-- ============================= -->
1415
- <xsl:template match="node()" mode="contents">
1416
- <xsl:param name="sectionNum"/>
1417
- <xsl:param name="sectionNumSkew"/>
1418
- <xsl:apply-templates mode="contents">
1419
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1420
- <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
1421
- </xsl:apply-templates>
1422
- </xsl:template>
1423
-
1424
-
1425
- <!-- calculate main section number (1,2,3) and pass it deep into templates -->
1426
- <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
1427
- <xsl:template match="iec:iec-standard/iec:sections/*" mode="contents">
1428
- <xsl:param name="sectionNum"/>
1429
- <xsl:param name="sectionNumSkew" select="0"/>
1430
- <xsl:variable name="sectionNum_">
1431
- <xsl:choose>
1432
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1433
- <xsl:when test="$sectionNumSkew != 0">
1434
- <xsl:variable name="number"><xsl:number count="iec:sections/*[local-name() != 'terms' and not(starts-with(@id, '_scope'))]"/></xsl:variable><!-- <xsl:number count="*"/> -->
1435
- <xsl:value-of select="$number + $sectionNumSkew"/>
1436
- </xsl:when>
1437
- <xsl:otherwise>
1438
- <xsl:number count="*"/>
1439
- </xsl:otherwise>
1440
- </xsl:choose>
1441
- </xsl:variable>
1442
- <xsl:apply-templates mode="contents">
1443
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
1444
- </xsl:apply-templates>
1352
+ <xsl:template match="node()" mode="contents">
1353
+ <xsl:apply-templates mode="contents"/>
1445
1354
  </xsl:template>
1446
1355
 
1447
- <!-- Any node with title element - clause, definition, annex,... -->
1448
- <xsl:template match="iec:title | iec:preferred" mode="contents">
1449
- <xsl:param name="sectionNum"/>
1450
- <!-- sectionNum=<xsl:value-of select="$sectionNum"/> -->
1451
- <xsl:variable name="id">
1452
- <xsl:call-template name="getId"/>
1453
- </xsl:variable>
1454
-
1356
+ <!-- element with title -->
1357
+ <xsl:template match="*[iec:title]" mode="contents">
1455
1358
  <xsl:variable name="level">
1456
- <xsl:call-template name="getLevel"/>
1457
- </xsl:variable>
1458
-
1459
- <xsl:variable name="section">
1460
- <xsl:call-template name="getSection">
1461
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1359
+ <xsl:call-template name="getLevel">
1360
+ <xsl:with-param name="depth" select="iec:title/@depth"/>
1462
1361
  </xsl:call-template>
1463
1362
  </xsl:variable>
1464
1363
 
1465
- <xsl:variable name="display">
1466
- <xsl:choose>
1467
- <xsl:when test="ancestor::iec:bibitem">false</xsl:when>
1468
- <xsl:when test="ancestor::iec:term">false</xsl:when>
1469
- <!-- <xsl:when test="ancestor::iec:annex and $level &gt;= 2">false</xsl:when> -->
1470
- <xsl:when test="$level &lt;= 3">true</xsl:when>
1471
- <xsl:otherwise>false</xsl:otherwise>
1472
- </xsl:choose>
1473
- </xsl:variable>
1474
-
1475
- <xsl:variable name="display-section">
1476
- <xsl:choose>
1477
- <xsl:when test="ancestor::iec:appendix">false</xsl:when>
1478
- <xsl:when test="ancestor::iec:annex and $level = 1">false</xsl:when>
1479
- <xsl:otherwise>true</xsl:otherwise>
1480
- </xsl:choose>
1364
+ <xsl:variable name="section">
1365
+ <xsl:call-template name="getSection"/>
1481
1366
  </xsl:variable>
1482
1367
 
1483
1368
  <xsl:variable name="type">
1484
- <xsl:value-of select="local-name(..)"/>
1369
+ <xsl:value-of select="local-name()"/>
1485
1370
  </xsl:variable>
1486
-
1487
- <xsl:variable name="root">
1371
+
1372
+ <xsl:variable name="display">
1488
1373
  <xsl:choose>
1489
- <xsl:when test="ancestor::iec:annex">annex</xsl:when>
1374
+ <xsl:when test="ancestor-or-self::iec:bibitem">false</xsl:when>
1375
+ <xsl:when test="ancestor-or-self::iec:term">false</xsl:when>
1376
+ <xsl:when test="$level &gt; 3">false</xsl:when>
1377
+ <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when><!-- don't show clause with number only in title -->
1378
+ <xsl:otherwise>true</xsl:otherwise>
1490
1379
  </xsl:choose>
1491
1380
  </xsl:variable>
1492
1381
 
1493
- <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
1494
- <xsl:attribute name="addon">
1495
- <xsl:if test="local-name(..) = 'annex'"><xsl:value-of select="../@obligation"/></xsl:if>
1496
- </xsl:attribute>
1497
- <xsl:choose>
1498
- <xsl:when test="ancestor::iec:preface">
1499
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
1500
- </xsl:when>
1501
- <xsl:otherwise>
1502
- <xsl:value-of select="."/>
1503
- </xsl:otherwise>
1504
- </xsl:choose>
1505
- </item>
1506
-
1507
- <xsl:apply-templates mode="contents">
1508
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1509
- </xsl:apply-templates>
1382
+ <xsl:if test="$display = 'true'">
1510
1383
 
1511
- </xsl:template>
1512
-
1513
-
1514
- <xsl:template match="iec:figure" mode="contents">
1515
- <xsl:param name="sectionNum"/>
1516
- <xsl:apply-templates mode="contents">
1517
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1518
- </xsl:apply-templates>
1519
- <item level="" id="{@id}" display="false" type="figure">
1520
- <xsl:attribute name="section">
1521
- <xsl:variable name="title-figure">
1522
- <xsl:call-template name="getTitle">
1523
- <xsl:with-param name="name" select="'title-figure'"/>
1524
- </xsl:call-template>
1525
- </xsl:variable>
1526
- <xsl:value-of select="$title-figure"/>
1384
+ <xsl:variable name="title">
1385
+ <xsl:call-template name="getName"/>
1386
+ </xsl:variable>
1387
+
1388
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}">
1389
+ <xsl:if test="$type ='appendix'">
1390
+ <xsl:attribute name="section"/>
1391
+ </xsl:if>
1527
1392
  <xsl:choose>
1528
- <xsl:when test="ancestor::iec:annex">
1529
- <xsl:choose>
1530
- <xsl:when test="count(//iec:annex) = 1">
1531
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:annexid"/><xsl:number format="-1" level="any" count="iec:annex//iec:figure"/>
1532
- </xsl:when>
1533
- <xsl:otherwise>
1534
- <xsl:number format="A.1-1" level="multiple" count="iec:annex | iec:figure"/>
1535
- </xsl:otherwise>
1536
- </xsl:choose>
1537
- </xsl:when>
1538
- <xsl:when test="ancestor::iec:figure">
1539
- <xsl:for-each select="parent::*[1]">
1540
- <xsl:number format="1" level="any" count="iec:figure[not(parent::iec:figure)]"/>
1541
- </xsl:for-each>
1542
- <xsl:number format="-a" count="iec:figure"/>
1393
+ <xsl:when test="$type = 'foreword' or $type = 'introduction'">
1394
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($title))"/>
1543
1395
  </xsl:when>
1544
- <xsl:otherwise>
1545
- <xsl:number format="1" level="any" count="iec:figure[not(parent::iec:figure)]"/>
1546
- </xsl:otherwise>
1547
- </xsl:choose>
1548
- </xsl:attribute>
1549
- <xsl:value-of select="iec:name"/>
1550
- </item>
1551
- </xsl:template>
1552
-
1553
-
1554
- <xsl:template match="iec:table" mode="contents">
1555
- <xsl:param name="sectionNum"/>
1556
- <xsl:variable name="annex-id" select="ancestor::iec:annex/@id"/>
1557
- <item level="" id="{@id}" display="true" type="table">
1558
- <xsl:if test="ancestor::iec:preface">
1559
- <xsl:attribute name="display">false</xsl:attribute>
1560
- </xsl:if>
1561
- <xsl:attribute name="section">
1562
- <xsl:variable name="title-table">
1563
- <xsl:call-template name="getTitle">
1564
- <xsl:with-param name="name" select="'title-table'"/>
1565
- </xsl:call-template>
1566
- </xsl:variable>
1567
- <xsl:value-of select="$title-table"/>
1568
- <xsl:choose>
1569
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
1570
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
1571
- </xsl:when>
1572
- <xsl:when test="ancestor::*[local-name()='annex']">
1573
- <xsl:number format="A." count="iec:annex"/>
1574
- <xsl:number format="1" level="any" count="iec:table[ancestor::iec:annex[@id = $annex-id]]"/>
1396
+ <xsl:when test="$type = 'appendix'">
1397
+ <xsl:apply-templates select="iec:title" mode="contents_item"/>
1575
1398
  </xsl:when>
1576
1399
  <xsl:otherwise>
1577
- <!-- <xsl:number format="1"/> -->
1578
- <!-- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/> -->
1579
- <!-- <xsl:number format="1" level="any" count="*[local-name()='table'][not(ancestor::*[local-name()='annex'])]"/> -->
1580
- <!-- <xsl:number format="1" level="any" count="*[not(local-name()='annex') and not(local-name()='executivesummary')]//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/> -->
1581
- <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']) and not(ancestor::*[local-name()='preface'])] [not(@unnumbered) or @unnumbered != 'true']"/>
1400
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
1582
1401
  </xsl:otherwise>
1583
1402
  </xsl:choose>
1584
- </xsl:attribute>
1585
- <xsl:value-of select="iec:name/text()"/>
1586
- </item>
1403
+
1404
+ </item>
1405
+ <xsl:apply-templates mode="contents"/>
1406
+ </xsl:if>
1407
+
1587
1408
  </xsl:template>
1588
1409
 
1589
1410
 
1590
-
1591
- <xsl:template match="iec:formula" mode="contents">
1592
- <xsl:param name="sectionNum"/>
1593
- <item level="" id="{@id}" display="false" type="formula">
1594
- <xsl:attribute name="section">
1595
- <!-- Formula -->
1596
- <xsl:variable name="title-equation">
1597
- <xsl:call-template name="getTitle">
1598
- <xsl:with-param name="name" select="'title-equation'"/>
1599
- </xsl:call-template>
1600
- </xsl:variable>
1601
- <xsl:value-of select="$title-equation"/><xsl:number format="(A.1)" level="multiple" count="iec:annex | iec:formula"/>
1602
- </xsl:attribute>
1603
- <xsl:attribute name="parentsection">
1604
- <xsl:for-each select="parent::*[1]/iec:title">
1605
- <xsl:call-template name="getSection">
1606
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1607
- </xsl:call-template>
1608
- </xsl:for-each>
1609
- </xsl:attribute>
1610
- </item>
1611
- </xsl:template>
1411
+
1612
1412
  <!-- ============================= -->
1613
1413
  <!-- ============================= -->
1614
1414
 
@@ -1665,7 +1465,7 @@
1665
1465
  </xsl:template>
1666
1466
 
1667
1467
 
1668
- <xsl:template match="iec:iec-standard/iec:preface/iec:foreword" priority="2">
1468
+ <xsl:template match="iec:iec-standard/iec:preface/iec:foreword" priority="3">
1669
1469
  <fo:block id="{@id}" margin-bottom="12pt" font-size="12pt" text-align="center">
1670
1470
  <xsl:call-template name="addLetterSpacing">
1671
1471
  <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(iec:title))"/>
@@ -1679,68 +1479,26 @@
1679
1479
  </fo:block>
1680
1480
  </xsl:template>
1681
1481
 
1682
- <xsl:template match="iec:iec-standard/iec:preface/iec:introduction" priority="2">
1683
- <fo:block break-after="page"/>
1684
- <fo:block id="{@id}" margin-bottom="12pt" font-size="12pt" text-align="center">
1685
- <xsl:call-template name="addLetterSpacing">
1686
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(iec:title))"/>
1687
- </xsl:call-template>
1688
- </fo:block>
1689
- <fo:block>
1690
- <xsl:apply-templates select="*[not(local-name() = 'title')]"/>
1691
- </fo:block>
1692
- </xsl:template>
1693
-
1694
- <!-- Foreword, Introduction -->
1695
- <xsl:template match="iec:iec-standard/iec:preface/*">
1482
+ <!-- <xsl:template match="iec:iec-standard/iec:preface/iec:introduction" priority="3">
1696
1483
  <fo:block break-after="page"/>
1697
- <fo:block>
1698
- <xsl:apply-templates/>
1484
+ <fo:block id="{@id}">
1485
+ <xsl:apply-templates />
1699
1486
  </fo:block>
1700
- </xsl:template>
1487
+ </xsl:template> -->
1701
1488
 
1702
1489
 
1703
- <!-- clause, terms, clause, ...-->
1704
- <xsl:template match="iec:iec-standard/iec:sections/*">
1705
- <xsl:param name="sectionNum"/>
1706
- <xsl:param name="sectionNumSkew" select="0"/>
1707
- <fo:block>
1708
- <xsl:variable name="pos"><xsl:number count="iec:sections/iec:clause | iec:sections/iec:terms"/></xsl:variable>
1709
- <!-- <xsl:if test="$pos &gt;= 2">
1710
- <xsl:attribute name="space-before">18pt</xsl:attribute>
1711
- </xsl:if> -->
1712
- <!-- pos=<xsl:value-of select="$pos" /> -->
1713
- <xsl:variable name="sectionNum_">
1714
- <xsl:choose>
1715
- <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1716
- <xsl:when test="$sectionNumSkew != 0">
1717
- <!-- <xsl:variable name="number"><xsl:number count="iec:sections/iec:clause | iec:sections/iec:terms"/></xsl:variable> -->
1718
- <xsl:variable name="number"><xsl:number count="iec:sections/*[local-name() != 'terms' and not(starts-with(@id, '_scope'))]"/></xsl:variable>
1719
- <xsl:value-of select="$number + $sectionNumSkew"/>
1720
- </xsl:when>
1721
- </xsl:choose>
1722
- </xsl:variable>
1723
- <xsl:if test="not(iec:title)">
1724
- <fo:block margin-top="3pt" margin-bottom="12pt">
1725
- <xsl:value-of select="$sectionNum_"/><xsl:number format=".1 " level="multiple" count="iec:clause"/>
1726
- </fo:block>
1727
- </xsl:if>
1728
- <xsl:apply-templates>
1729
- <xsl:with-param name="sectionNum" select="$sectionNum_"/>
1730
- </xsl:apply-templates>
1490
+ <xsl:template match="iec:annex//iec:clause" priority="2">
1491
+ <fo:block id="{@id}" margin-top="5pt" margin-bottom="10pt" text-align="justify">
1492
+ <xsl:apply-templates/>
1731
1493
  </fo:block>
1732
1494
  </xsl:template>
1733
1495
 
1734
- <xsl:template match="iec:annex//iec:clause">
1735
- <xsl:param name="sectionNum"/>
1736
- <fo:block margin-top="5pt" margin-bottom="10pt" text-align="justify">
1737
- <xsl:apply-templates>
1738
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1739
- </xsl:apply-templates>
1496
+ <xsl:template match="iec:clause//iec:clause" priority="2">
1497
+ <fo:block id="{@id}" space-after="10pt">
1498
+ <xsl:apply-templates/>
1740
1499
  </fo:block>
1741
1500
  </xsl:template>
1742
-
1743
- <xsl:template match="iec:clause//iec:clause[not(iec:title)]">
1501
+ <!-- <xsl:template match="iec:clause//iec:clause[not(iec:title)]">
1744
1502
  <xsl:param name="sectionNum"/>
1745
1503
  <xsl:variable name="section">
1746
1504
  <xsl:call-template name="getSection">
@@ -1753,44 +1511,51 @@
1753
1511
  </fo:block>
1754
1512
  <fo:block margin-bottom="10pt">
1755
1513
  <xsl:apply-templates>
1756
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1757
- <!-- <xsl:with-param name="inline" select="'true'"/> -->
1514
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1758
1515
  </xsl:apply-templates>
1759
1516
  </fo:block>
1760
- <!-- <fo:block margin-top="3pt" >
1761
- <fo:inline font-weight="bold" padding-right="3mm">
1762
- <xsl:value-of select="$section"/>
1763
- </fo:inline>
1764
- <xsl:apply-templates>
1765
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1766
- <xsl:with-param name="inline" select="'true'"/>
1767
- </xsl:apply-templates>
1768
- </fo:block> -->
1517
+
1518
+ </xsl:template> -->
1519
+
1520
+ <!-- ====== -->
1521
+ <!-- title -->
1522
+ <!-- ====== -->
1523
+ <xsl:template match="iec:introduction/iec:title">
1524
+ <fo:block font-size="12pt" text-align="center" margin-bottom="12pt">
1525
+ <xsl:apply-templates/>
1526
+ </fo:block>
1527
+ </xsl:template>
1528
+ <xsl:template match="iec:introduction/iec:title/text()">
1529
+ <xsl:call-template name="addLetterSpacing">
1530
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(.))"/>
1531
+ </xsl:call-template>
1532
+ </xsl:template>
1533
+
1534
+ <xsl:template match="iec:annex/iec:title">
1535
+ <fo:block font-size="12pt" text-align="center" margin-bottom="32pt" keep-with-next="always">
1536
+ <xsl:apply-templates/>
1537
+ </fo:block>
1538
+ </xsl:template>
1539
+
1540
+ <!-- Bibliography -->
1541
+ <xsl:template match="iec:references[not(@normative='true')]/iec:title">
1542
+ <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always">
1543
+ <xsl:apply-templates/>
1544
+ </fo:block>
1545
+ </xsl:template>
1546
+ <xsl:template match="iec:references[not(@normative='true')]/iec:title/text()">
1547
+ <xsl:call-template name="addLetterSpacing">
1548
+ <xsl:with-param name="text" select="."/>
1549
+ </xsl:call-template>
1769
1550
  </xsl:template>
1770
1551
 
1771
1552
 
1772
1553
  <xsl:template match="iec:title">
1773
- <xsl:param name="sectionNum"/>
1774
-
1775
- <xsl:variable name="parent-name" select="local-name(..)"/>
1776
- <!-- <xsl:variable name="references_num_current">
1777
- <xsl:number level="any" count="iec:references"/>
1778
- </xsl:variable> -->
1779
-
1780
- <xsl:variable name="id">
1781
- <xsl:call-template name="getId"/>
1782
- </xsl:variable>
1783
1554
 
1784
1555
  <xsl:variable name="level">
1785
1556
  <xsl:call-template name="getLevel"/>
1786
1557
  </xsl:variable>
1787
-
1788
- <xsl:variable name="section">
1789
- <xsl:call-template name="getSection">
1790
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
1791
- </xsl:call-template>
1792
- </xsl:variable>
1793
-
1558
+
1794
1559
  <xsl:variable name="font-size">
1795
1560
  <xsl:choose>
1796
1561
  <xsl:when test="ancestor::iec:sections and $level = 1">11pt</xsl:when>
@@ -1799,123 +1564,38 @@
1799
1564
  <xsl:otherwise>10pt</xsl:otherwise>
1800
1565
  </xsl:choose>
1801
1566
  </xsl:variable>
1802
- <!-- <xsl:choose>
1803
- <xsl:when test="ancestor::iec:annex and $level = 1">12pt</xsl:when>
1804
- <xsl:when test="ancestor::iec:annex and $level &gt;= 2">10pt</xsl:when>
1805
- <xsl:when test="ancestor::iec:preface">16pt</xsl:when>
1806
- <xsl:when test="$level = 2">12pt</xsl:when>
1807
- <xsl:when test="$level &gt;= 3">11pt</xsl:when>
1808
- <xsl:otherwise>13pt</xsl:otherwise>
1809
- </xsl:choose>
1810
- </xsl:variable> -->
1811
-
1812
- <xsl:variable name="element-name">
1813
- <xsl:choose>
1814
- <xsl:when test="../@inline-header = 'true'">fo:inline</xsl:when>
1815
- <xsl:otherwise>fo:block</xsl:otherwise>
1816
- </xsl:choose>
1817
- </xsl:variable>
1818
-
1567
+
1819
1568
  <xsl:choose>
1820
- <xsl:when test="$parent-name = 'annex'">
1821
- <fo:block id="{$id}" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="32pt" keep-with-next="always">
1822
- <xsl:value-of select="$section"/>
1823
- <xsl:if test=" ../@obligation">
1824
- <xsl:value-of select="$linebreak"/>
1825
- <fo:inline font-weight="normal">(<xsl:value-of select="../@obligation"/>)</fo:inline>
1826
- </xsl:if>
1827
- <xsl:value-of select="$linebreak"/>
1828
- <xsl:value-of select="$linebreak"/>
1569
+ <xsl:when test="../@inline-header = 'true'">
1570
+ <fo:inline font-size="{$font-size}" font-weight="bold">
1829
1571
  <xsl:apply-templates/>
1830
- </fo:block>
1831
- </xsl:when>
1832
- <xsl:when test="$parent-name = 'references' and not(starts-with(../@id, '_normative_references') or starts-with(../@id, '_references'))"> <!-- Bibliography -->
1833
- <fo:block id="{$id}" font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always">
1834
- <xsl:call-template name="addLetterSpacing">
1835
- <xsl:with-param name="text" select="."/>
1836
- </xsl:call-template>
1837
- <!-- <xsl:apply-templates /> -->
1838
- </fo:block>
1839
- </xsl:when>
1840
- <xsl:when test="$parent-name = 'introduction'">
1841
- <fo:block id="{$id}" font-size="12pt" text-align="center" margin-bottom="10pt">
1842
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(text()))"/>
1843
- </fo:block>
1572
+ </fo:inline>
1844
1573
  </xsl:when>
1845
1574
  <xsl:otherwise>
1846
-
1847
- <xsl:variable name="padding-right">
1848
- <xsl:choose>
1849
- <xsl:when test="$level = 2 and ancestor::iec:annex">6mm</xsl:when>
1850
- <xsl:when test="$level = 2">7mm</xsl:when>
1851
- <xsl:otherwise>5mm</xsl:otherwise>
1852
- </xsl:choose>
1853
- </xsl:variable>
1854
-
1855
- <xsl:element name="{$element-name}">
1856
- <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
1857
- <xsl:attribute name="font-size">
1858
- <xsl:value-of select="$font-size"/>
1575
+ <fo:block font-size="{$font-size}" font-weight="bold" keep-with-next="always">
1576
+ <xsl:attribute name="space-before"> <!-- margin-top -->
1577
+ <xsl:choose>
1578
+ <xsl:when test="$level = 2 and ancestor::iec:annex">22pt</xsl:when>
1579
+ <xsl:when test="$level &gt;= 2 and ancestor::iec:annex">5pt</xsl:when>
1580
+ <!-- <xsl:when test="$level &gt;= 4">5pt</xsl:when> -->
1581
+ <xsl:when test="$level = '' or $level = 1">18pt</xsl:when><!-- 13.5pt -->
1582
+ <xsl:otherwise>10pt</xsl:otherwise>
1583
+ </xsl:choose>
1859
1584
  </xsl:attribute>
1860
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1861
-
1862
- <xsl:if test="$element-name = 'fo:block'">
1863
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1864
- <xsl:attribute name="space-before"> <!-- margin-top -->
1865
- <xsl:choose>
1866
- <xsl:when test="$level = 2 and ancestor::iec:annex">22pt</xsl:when>
1867
- <xsl:when test="$level &gt;= 2 and ancestor::iec:annex">5pt</xsl:when>
1868
- <xsl:when test="$level = '' or $level = 1">18pt</xsl:when><!-- 13.5pt -->
1869
- <xsl:otherwise>10pt</xsl:otherwise>
1870
- </xsl:choose>
1871
- </xsl:attribute>
1872
- <xsl:attribute name="margin-bottom">
1873
- <xsl:choose>
1874
- <xsl:when test="$level = '' or $level = 1">14pt</xsl:when>
1875
- <xsl:when test="$level = 2 and ancestor::iec:annex">14pt</xsl:when>
1876
- <xsl:otherwise>5pt</xsl:otherwise>
1877
- </xsl:choose>
1878
- </xsl:attribute>
1879
-
1880
- <fo:inline>
1881
- <xsl:if test="$section != ''">
1882
- <xsl:attribute name="padding-right">
1883
- <xsl:value-of select="$padding-right"/>
1884
- </xsl:attribute>
1885
- </xsl:if>
1886
- <xsl:value-of select="$section"/>
1887
- </fo:inline>
1888
- <xsl:apply-templates/>
1889
- </xsl:if>
1890
-
1891
- <xsl:if test="$element-name = 'fo:inline'">
1892
- <xsl:if test="$section != ''">
1893
- <xsl:attribute name="padding-right">
1894
- <xsl:value-of select="$padding-right"/>
1895
- </xsl:attribute>
1896
- </xsl:if>
1897
- <xsl:value-of select="$section"/>
1898
- </xsl:if>
1899
- </xsl:element>
1900
-
1901
-
1902
- <xsl:if test="$element-name = 'fo:inline'">
1903
- <fo:inline font-size="{$font-size}" font-weight="bold">
1904
- <xsl:apply-templates/>
1905
- </fo:inline>
1906
-
1907
- </xsl:if>
1908
-
1909
- <!-- <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::iec:p)">
1910
- <fo:block>
1911
- <xsl:value-of select="$linebreak"/>
1912
- </fo:block>
1913
- </xsl:if> -->
1585
+ <xsl:attribute name="margin-bottom">
1586
+ <xsl:choose>
1587
+ <xsl:when test="$level = '' or $level = 1">14pt</xsl:when>
1588
+ <xsl:when test="$level = 2 and ancestor::iec:annex">14pt</xsl:when>
1589
+ <xsl:otherwise>5pt</xsl:otherwise>
1590
+ </xsl:choose>
1591
+ </xsl:attribute>
1592
+ <xsl:apply-templates/>
1593
+ </fo:block>
1914
1594
  </xsl:otherwise>
1915
1595
  </xsl:choose>
1916
-
1917
1596
  </xsl:template>
1918
-
1597
+ <!-- ====== -->
1598
+ <!-- ====== -->
1919
1599
 
1920
1600
 
1921
1601
  <xsl:template match="iec:p">
@@ -2031,90 +1711,8 @@
2031
1711
  <fo:block margin-bottom="10pt"><xsl:apply-templates/></fo:block>
2032
1712
  </xsl:template>
2033
1713
 
2034
- <xsl:template match="iec:review">
2035
- <!-- comment 2019-11-29 -->
2036
- <!-- <fo:block font-weight="bold">Review:</fo:block>
2037
- <xsl:apply-templates /> -->
2038
- </xsl:template>
2039
-
2040
- <xsl:template match="text()">
2041
- <xsl:value-of select="."/>
2042
- </xsl:template>
2043
-
2044
1714
 
2045
1715
 
2046
- <xsl:template match="iec:image">
2047
- <fo:block-container text-align="center">
2048
- <fo:block>
2049
- <fo:external-graphic src="{@src}" fox:alt-text="Image"/>
2050
- </fo:block>
2051
- <xsl:variable name="title-figure">
2052
- <xsl:call-template name="getTitle">
2053
- <xsl:with-param name="name" select="'title-figure'"/>
2054
- </xsl:call-template>
2055
- </xsl:variable>
2056
- <fo:block font-weight="bold" margin-top="12pt" margin-bottom="12pt"><xsl:value-of select="$title-figure"/><xsl:number format="1" level="any"/></fo:block>
2057
- </fo:block-container>
2058
-
2059
- </xsl:template>
2060
-
2061
- <xsl:template match="iec:figure">
2062
- <fo:block-container id="{@id}">
2063
- <fo:block>
2064
- <xsl:apply-templates/>
2065
- </fo:block>
2066
- <xsl:call-template name="fn_display_figure"/>
2067
- <xsl:for-each select="iec:note//iec:p">
2068
- <xsl:call-template name="note"/>
2069
- </xsl:for-each>
2070
- <fo:block font-weight="bold" text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-previous="always">
2071
- <xsl:variable name="title-figure">
2072
- <xsl:call-template name="getTitle">
2073
- <xsl:with-param name="name" select="'title-figure'"/>
2074
- </xsl:call-template>
2075
- </xsl:variable>
2076
- <xsl:choose>
2077
- <xsl:when test="ancestor::iec:annex">
2078
-
2079
- <!-- <xsl:choose>
2080
-
2081
- <xsl:when test="local-name(..) = 'figure'">
2082
- <xsl:number format="a) "/>
2083
- </xsl:when>
2084
- <xsl:otherwise> -->
2085
-
2086
- <xsl:value-of select="$title-figure"/><xsl:number format="A.1-1" level="multiple" count="iec:annex | iec:figure"/>
2087
- <!-- </xsl:otherwise>
2088
- </xsl:choose> -->
2089
-
2090
- </xsl:when>
2091
- <xsl:otherwise>
2092
- <xsl:value-of select="$title-figure"/><xsl:number format="1" level="any"/>
2093
- </xsl:otherwise>
2094
- </xsl:choose>
2095
- <xsl:if test="iec:name">
2096
- <!-- <xsl:if test="not(local-name(..) = 'figure')"> -->
2097
- <xsl:text> — </xsl:text>
2098
- <!-- </xsl:if> -->
2099
- <xsl:value-of select="iec:name"/>
2100
- </xsl:if>
2101
- </fo:block>
2102
- </fo:block-container>
2103
- </xsl:template>
2104
-
2105
- <xsl:template match="iec:figure/iec:name"/>
2106
- <xsl:template match="iec:figure/iec:fn" priority="2"/>
2107
- <xsl:template match="iec:figure/iec:note"/>
2108
-
2109
-
2110
- <xsl:template match="iec:figure/iec:image">
2111
- <fo:block text-align="center">
2112
- <fo:external-graphic src="{@src}" width="75%" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image"/> <!-- content-width="100%" -->
2113
- </fo:block>
2114
- </xsl:template>
2115
-
2116
-
2117
-
2118
1716
 
2119
1717
  <xsl:template match="iec:bibitem">
2120
1718
  <fo:block id="{@id}" margin-top="5pt" margin-bottom="10pt"> <!-- letter-spacing="0.4pt" -->
@@ -2141,7 +1739,7 @@
2141
1739
  </xsl:template>
2142
1740
 
2143
1741
 
2144
- <xsl:template match="iec:bibitem/iec:note">
1742
+ <xsl:template match="iec:bibitem/iec:note" priority="2">
2145
1743
  <fo:footnote>
2146
1744
  <xsl:variable name="number">
2147
1745
  <xsl:number level="any" count="iec:bibitem/iec:note"/>
@@ -2205,7 +1803,9 @@
2205
1803
  </fo:block>
2206
1804
  </fo:list-item-label>
2207
1805
  <fo:list-item-body start-indent="body-start()">
2208
- <xsl:apply-templates/>
1806
+ <fo:block>
1807
+ <xsl:apply-templates/>
1808
+ </fo:block>
2209
1809
  </fo:list-item-body>
2210
1810
  </fo:list-item>
2211
1811
  </xsl:template>
@@ -2222,22 +1822,12 @@
2222
1822
  </fo:block>
2223
1823
  </xsl:template>
2224
1824
 
2225
- <xsl:template match="iec:term">
2226
- <xsl:param name="sectionNum"/>
2227
- <fo:block id="{@id}">
2228
- <xsl:apply-templates>
2229
- <xsl:with-param name="sectionNum" select="$sectionNum"/>
2230
- </xsl:apply-templates>
2231
- </fo:block>
2232
- </xsl:template>
2233
1825
 
2234
1826
  <xsl:template match="iec:preferred">
2235
- <xsl:param name="sectionNum"/>
1827
+
2236
1828
  <fo:block line-height="1.1" space-before="14pt">
2237
1829
  <fo:block font-weight="bold" keep-with-next="always">
2238
- <fo:inline>
2239
- <xsl:value-of select="$sectionNum"/>.<xsl:number count="iec:term"/>
2240
- </fo:inline>
1830
+ <xsl:apply-templates select="ancestor::iec:term/iec:name" mode="presentation"/>
2241
1831
  </fo:block>
2242
1832
  <fo:block font-weight="bold" keep-with-next="always">
2243
1833
  <xsl:apply-templates/>
@@ -2245,109 +1835,17 @@
2245
1835
  </fo:block>
2246
1836
  </xsl:template>
2247
1837
 
2248
- <xsl:template match="iec:admitted">
2249
- <fo:block>
2250
- <xsl:apply-templates/>
2251
- </fo:block>
2252
- </xsl:template>
2253
-
2254
- <xsl:template match="iec:deprecates">
2255
- <xsl:variable name="title-deprecated">
2256
- <xsl:call-template name="getTitle">
2257
- <xsl:with-param name="name" select="'title-deprecated'"/>
2258
- </xsl:call-template>
2259
- </xsl:variable>
2260
- <fo:block font-size="8pt" margin-top="5pt" margin-bottom="5pt"><xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/></fo:block>
2261
- </xsl:template>
2262
-
2263
- <xsl:template match="iec:definition[preceding-sibling::iec:domain]">
2264
- <xsl:apply-templates/>
2265
- </xsl:template>
2266
- <xsl:template match="iec:definition[preceding-sibling::iec:domain]/iec:p">
2267
- <fo:inline> <xsl:apply-templates/></fo:inline>
2268
- <fo:block> </fo:block>
2269
- </xsl:template>
2270
-
2271
- <xsl:template match="iec:definition">
2272
- <fo:block margin-bottom="6pt">
2273
- <xsl:apply-templates/>
2274
- </fo:block>
2275
- </xsl:template>
2276
-
2277
- <xsl:template match="iec:termsource">
2278
- <fo:block margin-bottom="8pt" keep-with-previous="always">
2279
- <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
2280
- <fo:basic-link internal-destination="{iec:origin/@bibitemid}" fox:alt-text="{iec:origin/@citeas}">
2281
- <xsl:text>[</xsl:text>
2282
- <xsl:variable name="title-source">
2283
- <xsl:call-template name="getTitle">
2284
- <xsl:with-param name="name" select="'title-source'"/>
2285
- </xsl:call-template>
2286
- </xsl:variable>
2287
- <xsl:value-of select="$title-source"/>
2288
- <xsl:text>: </xsl:text>
2289
- <xsl:value-of select="iec:origin/@citeas"/>
2290
- <xsl:apply-templates select="iec:origin/iec:localityStack"/>
2291
- </fo:basic-link>
2292
- <xsl:apply-templates select="iec:modification"/>
2293
- <xsl:text>]</xsl:text>
2294
- </fo:block>
2295
- </xsl:template>
2296
-
2297
1838
 
2298
- <xsl:template match="iec:modification/iec:p">
2299
- <fo:inline><xsl:apply-templates/></fo:inline>
2300
- </xsl:template>
2301
-
2302
- <xsl:template match="iec:termnote">
2303
- <fo:block font-size="8pt" margin-top="5pt" margin-bottom="5pt">
2304
- <xsl:variable name="num"><xsl:number/></xsl:variable>
2305
- <xsl:variable name="title-note-to-entry">
2306
- <xsl:call-template name="getTitle">
2307
- <xsl:with-param name="name" select="'title-note-to-entry'"/>
2308
- </xsl:call-template>
2309
- </xsl:variable>
2310
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($title-note-to-entry),'#',$num)"/>
2311
- <xsl:apply-templates/>
2312
- </fo:block>
2313
- </xsl:template>
2314
-
2315
- <xsl:template match="iec:termnote/iec:p">
2316
- <fo:inline><xsl:apply-templates/></fo:inline>
2317
- </xsl:template>
2318
1839
 
2319
- <xsl:template match="iec:domain">
2320
- <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline>
2321
- </xsl:template>
2322
-
2323
-
2324
- <xsl:template match="iec:termexample">
2325
- <fo:block margin-top="14pt" margin-bottom="10pt">
2326
- <xsl:variable name="title-example">
2327
- <xsl:call-template name="getTitle">
2328
- <xsl:with-param name="name" select="'title-example'"/>
2329
- </xsl:call-template>
2330
- </xsl:variable>
2331
- <fo:inline padding-right="10mm"><xsl:value-of select="normalize-space($title-example)"/></fo:inline>
2332
- <xsl:apply-templates/>
2333
- </fo:block>
2334
- </xsl:template>
2335
1840
 
2336
- <xsl:template match="iec:termexample/iec:p">
2337
- <fo:inline><xsl:apply-templates/></fo:inline>
2338
- </xsl:template>
2339
1841
 
2340
-
2341
- <xsl:template match="iec:annex">
2342
- <fo:block break-after="page"/>
2343
- <xsl:apply-templates/>
2344
- </xsl:template>
2345
1842
 
2346
-
2347
1843
  <!-- <xsl:template match="iec:references[@id = '_bibliography']"> -->
2348
- <xsl:template match="iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]">
1844
+ <xsl:template match="iec:references[not(@normative='true')]">
2349
1845
  <fo:block break-after="page"/>
2350
- <xsl:apply-templates/>
1846
+ <fo:block id="{@id}">
1847
+ <xsl:apply-templates/>
1848
+ </fo:block>
2351
1849
  <fo:block-container text-align="center" margin-top="10mm">
2352
1850
  <fo:block>_____________</fo:block>
2353
1851
  </fo:block-container>
@@ -2356,7 +1854,7 @@
2356
1854
 
2357
1855
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
2358
1856
  <!-- <xsl:template match="iec:references[@id = '_bibliography']/iec:bibitem"> -->
2359
- <xsl:template match="iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]/iec:bibitem">
1857
+ <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem">
2360
1858
  <fo:list-block margin-top="5pt" margin-bottom="14pt" provisional-distance-between-starts="0mm"> <!-- provisional-distance-between-starts="12mm" -->
2361
1859
  <fo:list-item>
2362
1860
  <fo:list-item-label end-indent="label-end()">
@@ -2389,146 +1887,17 @@
2389
1887
  </xsl:template>
2390
1888
 
2391
1889
  <!-- <xsl:template match="iec:references[@id = '_bibliography']/iec:bibitem" mode="contents"/> -->
2392
- <xsl:template match="iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]/iec:bibitem" mode="contents"/>
1890
+ <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem" mode="contents"/>
2393
1891
 
2394
1892
  <!-- <xsl:template match="iec:references[@id = '_bibliography']/iec:bibitem/iec:title"> -->
2395
- <xsl:template match="iec:references[not(starts-with(@id, '_normative_references') or starts-with(@id, '_references'))]/iec:bibitem/iec:title">
1893
+ <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem/iec:title">
2396
1894
  <fo:inline font-style="italic">
2397
1895
  <xsl:apply-templates/>
2398
1896
  </fo:inline>
2399
1897
  </xsl:template>
2400
1898
 
2401
- <xsl:template match="iec:quote">
2402
- <fo:block margin-top="5pt" margin-bottom="10pt" margin-left="12mm" margin-right="12mm">
2403
- <xsl:apply-templates select=".//iec:p"/>
2404
- <fo:block text-align="right" margin-top="15pt">
2405
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
2406
- <xsl:text>— </xsl:text><xsl:value-of select="iec:author"/>
2407
- <xsl:if test="iec:source">
2408
- <xsl:text>, </xsl:text>
2409
- <xsl:apply-templates select="iec:source"/>
2410
- </xsl:if>
2411
- </fo:block>
2412
- </fo:block>
2413
- </xsl:template>
2414
-
2415
- <xsl:template match="iec:source">
2416
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
2417
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
2418
- <xsl:apply-templates select="iec:localityStack"/>
2419
- </fo:basic-link>
2420
- </xsl:template>
2421
-
2422
-
2423
- <xsl:template match="iec:xref">
2424
-
2425
- <xsl:variable name="docid">
2426
- <xsl:call-template name="getDocumentId"/>
2427
- </xsl:variable>
2428
- <xsl:variable name="contents" select="xalan:nodeset($contents)/doc[@id = $docid]"/>
2429
- <!-- <xsl:call-template name="generateContents"/>
2430
- </xsl:variable>
2431
- -->
2432
-
2433
- <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
2434
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{$section}">
2435
- <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
2436
- <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id = current()/@target]/@root"/>
2437
- <xsl:variable name="parentsection" select="xalan:nodeset($contents)//item[@id = current()/@target]/@parentsection"/>
2438
- <xsl:variable name="title-clause">
2439
- <xsl:call-template name="getTitle">
2440
- <xsl:with-param name="name" select="'title-clause'"/>
2441
- </xsl:call-template>
2442
- </xsl:variable>
2443
- <xsl:choose>
2444
- <xsl:when test="$type = 'clause' and $root != 'annex'"><xsl:value-of select="$title-clause"/></xsl:when><!-- and not (ancestor::annex) -->
2445
- <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
2446
- </xsl:choose>
2447
- <xsl:variable name="currentsection">
2448
- <xsl:for-each select="ancestor::iec:clause[1]/iec:title">
2449
- <xsl:call-template name="getSection"/>
2450
- </xsl:for-each>
2451
- </xsl:variable>
2452
- <xsl:if test="$type = 'formula' and $parentsection != '' and not(contains($parentsection, $currentsection))">
2453
- <xsl:value-of select="$parentsection"/><xsl:text>, </xsl:text>
2454
- </xsl:if>
2455
- <xsl:value-of select="$section"/>
2456
- </fo:basic-link>
2457
- </xsl:template>
2458
1899
 
2459
- <xsl:template match="iec:example/iec:p">
2460
- <fo:block>
2461
- <xsl:variable name="title-example">
2462
- <xsl:call-template name="getTitle">
2463
- <xsl:with-param name="name" select="'title-example'"/>
2464
- </xsl:call-template>
2465
- </xsl:variable>
2466
- <fo:inline padding-right="9mm"><xsl:value-of select="normalize-space($title-example)"/></fo:inline>
2467
- <xsl:apply-templates/>
2468
- </fo:block>
2469
- </xsl:template>
2470
-
2471
- <xsl:template match="iec:note/iec:p" name="note">
2472
- <fo:block margin-top="5pt" margin-bottom="5pt" font-size="8pt">
2473
- <xsl:if test="../following-sibling::iec:note">
2474
- <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
2475
- </xsl:if>
2476
- <fo:inline padding-right="6mm">
2477
- <xsl:variable name="title-note">
2478
- <xsl:call-template name="getTitle">
2479
- <xsl:with-param name="name" select="'title-note'"/>
2480
- </xsl:call-template>
2481
- </xsl:variable>
2482
- <xsl:value-of select="$title-note"/>
2483
- <xsl:if test="ancestor::iec:figure">
2484
- <xsl:variable name="id" select="ancestor::iec:figure[1]/@id"/>
2485
- <xsl:if test="count(//iec:note[ancestor::*[@id = $id]]) &gt; 1">
2486
- <xsl:number count="iec:note[ancestor::*[@id = $id]]" level="any"/>
2487
- </xsl:if>
2488
- </xsl:if>
2489
- </fo:inline>
2490
- <xsl:apply-templates/>
2491
- </fo:block>
2492
- </xsl:template>
2493
1900
 
2494
- <!-- <eref type="inline" bibitemid="ISO20483" citeas="ISO 20483:2013"><locality type="annex"><referenceFrom>C</referenceFrom></locality></eref> -->
2495
- <xsl:template match="iec:eref">
2496
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
2497
- <xsl:if test="@type = 'footnote'">
2498
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
2499
- <xsl:attribute name="font-size">80%</xsl:attribute>
2500
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2501
- <xsl:attribute name="vertical-align">super</xsl:attribute>
2502
- </xsl:if>
2503
- <xsl:value-of select="@citeas"/> <!-- disable-output-escaping="yes" -->
2504
- <xsl:apply-templates select="iec:localityStack"/>
2505
- </fo:basic-link>
2506
- </xsl:template>
2507
-
2508
- <xsl:template match="iec:locality">
2509
- <xsl:variable name="title-clause">
2510
- <xsl:call-template name="getTitle">
2511
- <xsl:with-param name="name" select="'title-clause'"/>
2512
- </xsl:call-template>
2513
- </xsl:variable>
2514
- <xsl:variable name="title-annex">
2515
- <xsl:call-template name="getTitle">
2516
- <xsl:with-param name="name" select="'title-annex'"/>
2517
- </xsl:call-template>
2518
- </xsl:variable>
2519
- <xsl:variable name="title-table">
2520
- <xsl:call-template name="getTitle">
2521
- <xsl:with-param name="name" select="'title-table'"/>
2522
- </xsl:call-template>
2523
- </xsl:variable>
2524
- <xsl:choose>
2525
- <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
2526
- <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
2527
- <xsl:when test="@type ='table'"><xsl:value-of select="$title-table"/></xsl:when>
2528
- <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
2529
- </xsl:choose>
2530
- <xsl:text> </xsl:text><xsl:value-of select="iec:referenceFrom"/>
2531
- </xsl:template>
2532
1901
 
2533
1902
  <xsl:template match="iec:admonition">
2534
1903
  <fo:block-container border="0.5pt solid black" margin-left="-2mm" margin-right="-2mm" space-before="18pt" space-after="12pt">
@@ -2553,23 +1922,8 @@
2553
1922
  </xsl:call-template>
2554
1923
  </xsl:template>
2555
1924
 
2556
- <xsl:template match="iec:formula">
2557
- <fo:block id="{@id}">
2558
- <xsl:apply-templates/>
2559
- </fo:block>
2560
- </xsl:template>
2561
1925
 
2562
- <xsl:template match="iec:formula/iec:dt/iec:stem">
2563
- <fo:inline>
2564
- <xsl:apply-templates/>
2565
- </fo:inline>
2566
- </xsl:template>
2567
1926
 
2568
- <xsl:template match="iec:admitted/iec:stem">
2569
- <fo:inline> <!-- padding-left="6mm" -->
2570
- <xsl:apply-templates/>
2571
- </fo:inline>
2572
- </xsl:template>
2573
1927
 
2574
1928
  <xsl:template match="iec:formula/iec:stem">
2575
1929
  <fo:block margin-top="6pt" margin-bottom="12pt">
@@ -2579,35 +1933,22 @@
2579
1933
  <fo:table-body>
2580
1934
  <fo:table-row>
2581
1935
  <fo:table-cell display-align="center">
2582
- <fo:block text-align="center"> <!-- left margin-left="5mm" -->
1936
+ <fo:block text-align="center">
2583
1937
  <xsl:apply-templates/>
2584
1938
  </fo:block>
2585
1939
  </fo:table-cell>
2586
1940
  <fo:table-cell display-align="center">
2587
1941
  <fo:block text-align="right" margin-right="-10mm">
2588
- <xsl:choose>
2589
- <xsl:when test="ancestor::iec:annex">
2590
- <xsl:number format="(A.1)" level="multiple" count="iec:annex | iec:formula"/>
2591
- </xsl:when>
2592
- <xsl:otherwise> <!-- not(ancestor::iec:annex) -->
2593
- <xsl:text>(</xsl:text><xsl:number level="any" count="iec:formula"/><xsl:text>)</xsl:text>
2594
- </xsl:otherwise>
2595
- </xsl:choose>
1942
+ <xsl:apply-templates select="../iec:name" mode="presentation"/>
2596
1943
  </fo:block>
2597
1944
  </fo:table-cell>
2598
1945
  </fo:table-row>
2599
1946
  </fo:table-body>
2600
- </fo:table>
2601
- <fo:inline keep-together.within-line="always">
2602
- </fo:inline>
1947
+ </fo:table>
2603
1948
  </fo:block>
2604
1949
  </xsl:template>
2605
1950
 
2606
-
2607
- <xsl:template match="iec:br" priority="2">
2608
- <!-- <fo:block>&#xA0;</fo:block> -->
2609
- <xsl:value-of select="$linebreak"/>
2610
- </xsl:template>
1951
+
2611
1952
 
2612
1953
  <xsl:template name="insertHeaderFooter">
2613
1954
  <fo:static-content flow-name="header-even">
@@ -2662,95 +2003,6 @@
2662
2003
  </xsl:template>
2663
2004
 
2664
2005
 
2665
- <xsl:template name="getSection">
2666
- <xsl:param name="sectionNum"/>
2667
- <xsl:variable name="level">
2668
- <xsl:call-template name="getLevel"/>
2669
- </xsl:variable>
2670
- <xsl:variable name="section">
2671
- <xsl:choose>
2672
- <xsl:when test="ancestor::iec:bibliography">
2673
- <xsl:value-of select="$sectionNum"/>
2674
- </xsl:when>
2675
- <xsl:when test="ancestor::iec:sections">
2676
- <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2677
- <xsl:choose>
2678
- <xsl:when test="$level = 1">
2679
- <xsl:value-of select="$sectionNum"/>
2680
- </xsl:when>
2681
- <xsl:when test="$level &gt;= 2">
2682
- <xsl:variable name="num">
2683
- <xsl:call-template name="getSubSection"/>
2684
- </xsl:variable>
2685
- <xsl:value-of select="concat($sectionNum, $num)"/>
2686
- </xsl:when>
2687
- <xsl:otherwise>
2688
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
2689
- </xsl:otherwise>
2690
- </xsl:choose>
2691
- </xsl:when>
2692
- <!-- <xsl:when test="ancestor::iec:annex[@obligation = 'informative']">
2693
- <xsl:choose>
2694
- <xsl:when test="$level = 1">
2695
- <xsl:text>Annex </xsl:text>
2696
- <xsl:number format="I" level="any" count="iec:annex[@obligation = 'informative']"/>
2697
- </xsl:when>
2698
- <xsl:otherwise>
2699
- <xsl:number format="I.1" level="multiple" count="iec:annex[@obligation = 'informative'] | iec:clause"/>
2700
- </xsl:otherwise>
2701
- </xsl:choose>
2702
- </xsl:when> -->
2703
- <xsl:when test="ancestor::iec:annex">
2704
- <xsl:choose>
2705
- <xsl:when test="$level = 1">
2706
- <xsl:variable name="title-annex">
2707
- <xsl:call-template name="getTitle">
2708
- <xsl:with-param name="name" select="'title-annex'"/>
2709
- </xsl:call-template>
2710
- </xsl:variable>
2711
- <xsl:value-of select="$title-annex"/>
2712
- <xsl:choose>
2713
- <xsl:when test="count(//iec:annex) = 1">
2714
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:annexid"/>
2715
- </xsl:when>
2716
- <xsl:otherwise>
2717
- <xsl:number format="A" level="any" count="iec:annex"/>
2718
- </xsl:otherwise>
2719
- </xsl:choose>
2720
- </xsl:when>
2721
- <xsl:otherwise>
2722
- <xsl:choose>
2723
- <xsl:when test="count(//iec:annex) = 1">
2724
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:annexid"/><xsl:number format=".1" level="multiple" count="iec:clause"/>
2725
- </xsl:when>
2726
- <xsl:otherwise>
2727
- <xsl:number format="A.1" level="multiple" count="iec:annex | iec:clause"/>
2728
- </xsl:otherwise>
2729
- </xsl:choose>
2730
- </xsl:otherwise>
2731
- </xsl:choose>
2732
- </xsl:when>
2733
- <xsl:when test="ancestor::iec:preface"> <!-- if preface and there is clause(s) -->
2734
- <xsl:choose>
2735
- <xsl:when test="$level = 1 and ..//iec:clause">0</xsl:when>
2736
- <xsl:when test="$level &gt;= 2">
2737
- <xsl:variable name="num">
2738
- <xsl:number format=".1" level="multiple" count="iec:clause"/>
2739
- </xsl:variable>
2740
- <xsl:value-of select="concat('0', $num)"/>
2741
- </xsl:when>
2742
- <xsl:otherwise>
2743
- <!-- z<xsl:value-of select="$sectionNum"/>z -->
2744
- </xsl:otherwise>
2745
- </xsl:choose>
2746
- </xsl:when>
2747
- <xsl:otherwise>
2748
- </xsl:otherwise>
2749
- </xsl:choose>
2750
- </xsl:variable>
2751
- <xsl:value-of select="$section"/>
2752
- </xsl:template>
2753
-
2754
2006
  <xsl:variable name="Image-Logo-IEC">
2755
2007
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAMAAAC9ZjJ/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjNTIxY2ZhYi04NGZmLWZiNDctYWQwZi0xMDQxODQ5MjJlNzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjFDQzJCRTE4MzA2MTFFQTlENjc4RjAzNEJDNTMwNUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjFDQzJCRTA4MzA2MTFFQTlENjc4RjAzNEJDNTMwNUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZjkyOWQwNjktMzcxYy0xMzRlLWExMTEtMDFjMzM4ZTc0NzZjIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NTEwYjk4MGQtODMwNi0xMWVhLWFhOGEt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</xsl:text>
2756
2008
  </xsl:variable>
@@ -2861,46 +2113,6 @@
2861
2113
  </xsl:template> -->
2862
2114
 
2863
2115
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2864
-
2865
- <title-table lang="en">Table </title-table>
2866
- <title-table lang="fr">Tableau </title-table>
2867
-
2868
- <title-table lang="zh">Table </title-table>
2869
-
2870
-
2871
-
2872
- <title-note lang="en">NOTE </title-note>
2873
- <title-note lang="fr">NOTE </title-note>
2874
-
2875
- <title-note lang="zh">NOTE </title-note>
2876
-
2877
-
2878
-
2879
- <title-figure lang="en">Figure </title-figure>
2880
- <title-figure lang="fr">Figure </title-figure>
2881
-
2882
- <title-figure lang="zh">Figure </title-figure>
2883
-
2884
-
2885
-
2886
- <title-example lang="en">EXAMPLE </title-example>
2887
- <title-example lang="fr">EXEMPLE </title-example>
2888
-
2889
- <title-example lang="zh">EXAMPLE </title-example>
2890
-
2891
-
2892
-
2893
- <title-example-xref lang="en">Example </title-example-xref>
2894
- <title-example-xref lang="fr">Exemple </title-example-xref>
2895
-
2896
- <title-section lang="en">Section </title-section>
2897
- <title-section lang="fr">Section </title-section>
2898
-
2899
- <title-inequality lang="en">Inequality </title-inequality>
2900
- <title-inequality lang="fr">Inequality </title-inequality>
2901
-
2902
- <title-equation lang="en">Equation </title-equation>
2903
- <title-equation lang="fr">Equation </title-equation>
2904
2116
 
2905
2117
  <title-annex lang="en">Annex </title-annex>
2906
2118
  <title-annex lang="fr">Annexe </title-annex>
@@ -2908,17 +2120,7 @@
2908
2120
  <title-annex lang="zh">Annex </title-annex>
2909
2121
 
2910
2122
 
2911
-
2912
- <title-appendix lang="en">Appendix </title-appendix>
2913
- <title-appendix lang="fr">Appendix </title-appendix>
2914
-
2915
- <title-clause lang="en">Clause </title-clause>
2916
- <title-clause lang="fr">Article </title-clause>
2917
-
2918
- <title-clause lang="zh">Clause </title-clause>
2919
-
2920
-
2921
-
2123
+
2922
2124
  <title-edition lang="en">
2923
2125
 
2924
2126
  <xsl:text>Edition </xsl:text>
@@ -2926,9 +2128,7 @@
2926
2128
 
2927
2129
  </title-edition>
2928
2130
 
2929
- <title-formula lang="en">Formula </title-formula>
2930
- <title-formula lang="fr">Formula </title-formula>
2931
-
2131
+
2932
2132
  <title-toc lang="en">
2933
2133
 
2934
2134
  <xsl:text>Contents</xsl:text>
@@ -2967,13 +2167,6 @@
2967
2167
  </title-part>
2968
2168
  <title-part lang="zh">第 # 部分:</title-part>
2969
2169
 
2970
- <title-note-to-entry lang="en">Note # to entry: </title-note-to-entry>
2971
- <title-note-to-entry lang="fr">Note # à l'article: </title-note-to-entry>
2972
-
2973
- <title-note-to-entry lang="zh">Note # to entry: </title-note-to-entry>
2974
-
2975
-
2976
-
2977
2170
  <title-modified lang="en">modified</title-modified>
2978
2171
  <title-modified lang="fr">modifiée</title-modified>
2979
2172
 
@@ -2987,14 +2180,12 @@
2987
2180
 
2988
2181
  <title-deprecated lang="en">DEPRECATED</title-deprecated>
2989
2182
  <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2990
-
2991
- <title-submitting-organizations lang="en">Submitting Organizations</title-submitting-organizations>
2992
-
2183
+
2993
2184
  <title-list-tables lang="en">List of Tables</title-list-tables>
2994
2185
 
2995
2186
  <title-list-figures lang="en">List of Figures</title-list-figures>
2996
2187
 
2997
- <title-recommendation lang="en">Recommendation </title-recommendation>
2188
+ <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2998
2189
 
2999
2190
  <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
3000
2191
 
@@ -3004,8 +2195,6 @@
3004
2195
 
3005
2196
  <title-in lang="en">in </title-in>
3006
2197
 
3007
- <title-box lang="en">Box </title-box>
3008
-
3009
2198
  <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
3010
2199
  <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
3011
2200
 
@@ -3028,7 +2217,7 @@
3028
2217
  <title-warning lang="zh">警告</title-warning>
3029
2218
 
3030
2219
  <title-amendment lang="en">AMENDMENT</title-amendment>
3031
- </xsl:variable><xsl:template name="getTitle">
2220
+ </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
3032
2221
  <xsl:param name="name"/>
3033
2222
  <xsl:variable name="lang">
3034
2223
  <xsl:call-template name="getLang"/>
@@ -3046,6 +2235,8 @@
3046
2235
 
3047
2236
 
3048
2237
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
2238
+ <xsl:attribute name="white-space">pre</xsl:attribute>
2239
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
3049
2240
 
3050
2241
 
3051
2242
 
@@ -3059,9 +2250,116 @@
3059
2250
 
3060
2251
 
3061
2252
 
2253
+ </xsl:attribute-set><xsl:attribute-set name="permission-style">
2254
+
2255
+ </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
2256
+
2257
+ </xsl:attribute-set><xsl:attribute-set name="permission-label-style">
2258
+
2259
+ </xsl:attribute-set><xsl:attribute-set name="requirement-style">
2260
+
2261
+ </xsl:attribute-set><xsl:attribute-set name="requirement-name-style">
2262
+
2263
+ </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
2264
+
2265
+ </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
2266
+ </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
2267
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
2268
+
2269
+
2270
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-name-style">
2271
+
2272
+
2273
+ </xsl:attribute-set><xsl:attribute-set name="recommendation-label-style">
2274
+
2275
+ </xsl:attribute-set><xsl:attribute-set name="termexample-style">
2276
+
2277
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
2278
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+ </xsl:attribute-set><xsl:attribute-set name="example-style">
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+ </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2298
+
2299
+
2300
+
2301
+ </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2302
+
2303
+
2304
+
2305
+
2306
+ <xsl:attribute name="padding-right">9mm</xsl:attribute>
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+ </xsl:attribute-set><xsl:attribute-set name="example-p-style">
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+ </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
2336
+
2337
+ <xsl:attribute name="padding-right">10mm</xsl:attribute>
2338
+
2339
+
2340
+
2341
+
2342
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
2343
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2344
+
2345
+
2346
+
2347
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2348
+ <xsl:attribute name="text-align">center</xsl:attribute>
2349
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2350
+ <xsl:attribute name="space-before">12pt</xsl:attribute>
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
3062
2360
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
3063
2361
 
3064
-
2362
+
3065
2363
  <xsl:attribute name="font-weight">bold</xsl:attribute>
3066
2364
  <xsl:attribute name="margin-top">5pt</xsl:attribute>
3067
2365
  <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
@@ -3074,153 +2372,309 @@
3074
2372
  <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
3075
2373
 
3076
2374
 
3077
- </xsl:attribute-set><xsl:template match="text()">
3078
- <xsl:value-of select="."/>
3079
- </xsl:template><xsl:template match="*[local-name()='br']">
3080
- <xsl:value-of select="$linebreak"/>
3081
- </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
3082
- <!-- <xsl:call-template name="add-zero-spaces"/> -->
3083
- <xsl:call-template name="add-zero-spaces-java"/>
3084
- </xsl:template><xsl:template match="*[local-name()='table']">
3085
-
3086
- <xsl:variable name="simple-table">
3087
- <!-- <xsl:copy> -->
3088
- <xsl:call-template name="getSimpleTable"/>
3089
- <!-- </xsl:copy> -->
3090
- </xsl:variable>
3091
-
3092
- <!-- DEBUG -->
3093
- <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
3094
- <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
3095
-
3096
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2375
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
3097
2376
 
3098
- <!-- <xsl:if test="$namespace = 'iso'">
3099
- <fo:block space-before="6pt">&#xA0;</fo:block>
3100
- </xsl:if> -->
2377
+
2378
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
3101
2379
 
3102
- <xsl:if test="not(ancestor::*[local-name() = 'preface'])">
3103
- <!-- <fo:block space-before="2pt">&#xA0;</fo:block> -->
3104
- </xsl:if>
3105
2380
 
3106
- <xsl:choose>
3107
- <xsl:when test="@unnumbered = 'true'"/>
3108
- <xsl:otherwise>
3109
-
3110
-
3111
-
3112
- <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
3113
-
3114
-
3115
- <xsl:if test="ancestor::*[local-name() = 'preface']">
3116
- <xsl:attribute name="visibility">hidden</xsl:attribute>
3117
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3118
- <xsl:attribute name="font-size">1pt</xsl:attribute>
3119
- </xsl:if>
3120
- <xsl:if test="not(ancestor::*[local-name() = 'preface'])">
3121
- <xsl:attribute name="space-before">12pt</xsl:attribute>
3122
- </xsl:if>
3123
-
3124
-
3125
-
3126
-
3127
-
3128
-
3129
-
3130
- <xsl:variable name="title-table">
3131
- <xsl:call-template name="getTitle">
3132
- <xsl:with-param name="name" select="'title-table'"/>
3133
- </xsl:call-template>
3134
- </xsl:variable>
3135
- <xsl:value-of select="$title-table"/>
3136
-
3137
- <xsl:call-template name="getTableNumber"/>
3138
-
3139
-
3140
- <xsl:if test="*[local-name()='name']">
3141
-
3142
-
3143
-
3144
- <xsl:text> — </xsl:text>
3145
-
3146
- <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
3147
- </xsl:if>
3148
- </fo:block>
3149
-
3150
-
3151
- <xsl:call-template name="fn_name_display"/>
2381
+
2382
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
2383
+
2384
+
2385
+
2386
+
2387
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2388
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2389
+ <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
3152
2390
 
3153
- </xsl:otherwise>
3154
- </xsl:choose>
3155
2391
 
3156
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3157
2392
 
3158
- <!-- <xsl:variable name="cols-count">
3159
- <xsl:choose>
3160
- <xsl:when test="*[local-name()='thead']">
3161
- <xsl:call-template name="calculate-columns-numbers">
3162
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
3163
- </xsl:call-template>
3164
- </xsl:when>
3165
- <xsl:otherwise>
3166
- <xsl:call-template name="calculate-columns-numbers">
3167
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
3168
- </xsl:call-template>
3169
- </xsl:otherwise>
3170
- </xsl:choose>
3171
- </xsl:variable> -->
3172
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
3173
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
3174
2393
 
3175
2394
 
3176
2395
 
3177
- <xsl:variable name="colwidths">
3178
- <xsl:call-template name="calculate-column-widths">
3179
- <xsl:with-param name="cols-count" select="$cols-count"/>
3180
- <xsl:with-param name="table" select="$simple-table"/>
3181
- </xsl:call-template>
3182
- </xsl:variable>
3183
2396
 
3184
- <!-- <xsl:variable name="colwidths2">
3185
- <xsl:call-template name="calculate-column-widths">
3186
- <xsl:with-param name="cols-count" select="$cols-count"/>
3187
- </xsl:call-template>
3188
- </xsl:variable> -->
3189
2397
 
3190
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
3191
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
3192
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
3193
2398
 
3194
- <xsl:variable name="margin-left">
3195
- <xsl:choose>
3196
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
3197
- <xsl:otherwise>0</xsl:otherwise>
3198
- </xsl:choose>
3199
- </xsl:variable>
3200
2399
 
3201
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
3202
-
3203
-
3204
- <xsl:attribute name="space-after">12pt</xsl:attribute>
3205
- <xsl:if test="ancestor::*[local-name() = 'preface']">
3206
- <xsl:attribute name="space-after">16pt</xsl:attribute>
3207
- </xsl:if>
3208
-
3209
-
3210
-
3211
-
3212
-
3213
-
3214
-
3215
- <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
3216
-
3217
-
3218
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3219
-
3220
-
3221
-
3222
-
3223
-
2400
+
2401
+
2402
+ </xsl:attribute-set><xsl:attribute-set name="note-name-style">
2403
+
2404
+
2405
+
2406
+
2407
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2416
+
2417
+
2418
+
2419
+
2420
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2421
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
2433
+
2434
+
2435
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2436
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2437
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2438
+
2439
+
2440
+
2441
+
2442
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
2443
+
2444
+
2445
+
2446
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2447
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2448
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
2449
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
2450
+
2451
+
2452
+
2453
+
2454
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
2455
+
2456
+
2457
+
2458
+ <xsl:attribute name="text-align">right</xsl:attribute>
2459
+ <xsl:attribute name="margin-top">15pt</xsl:attribute>
2460
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
2461
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
2462
+
2463
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
2464
+
2465
+
2466
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2467
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2468
+
2469
+
2470
+
2471
+
2472
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
2473
+
2474
+
2475
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
2476
+
2477
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2478
+
2479
+
2480
+
2481
+
2482
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2483
+ <xsl:attribute name="text-align">center</xsl:attribute>
2484
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2485
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2486
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
2501
+
2502
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
2503
+ <xsl:attribute name="text-align">center</xsl:attribute>
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
2510
+
2511
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
2512
+
2513
+
2514
+
2515
+ <xsl:attribute name="width">75%</xsl:attribute>
2516
+ <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
2517
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
2518
+
2519
+
2520
+
2521
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
2522
+
2523
+
2524
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
2525
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2526
+
2527
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
2528
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2529
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2530
+ <xsl:attribute name="text-align">center</xsl:attribute>
2531
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2532
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
2533
+
2534
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
2535
+
2536
+
2537
+ </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
2538
+
2539
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2540
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2541
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2542
+
2543
+ </xsl:attribute-set><xsl:attribute-set name="definition-style">
2544
+
2545
+
2546
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2547
+
2548
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
2549
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2550
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2551
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2552
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2553
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2554
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2555
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2556
+
2557
+ <!-- Normative references -->
2558
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
2559
+ <!-- Terms and definitions -->
2560
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
2561
+ <!-- Another main sections -->
2562
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
2563
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
2564
+ <!-- Bibliography -->
2565
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
2566
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2567
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2568
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2569
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2570
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2571
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2572
+ </xsl:template><xsl:template name="processMainSectionsDefault">
2573
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2574
+
2575
+ <!-- Normative references -->
2576
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
2577
+ <!-- Terms and definitions -->
2578
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
2579
+ <!-- Another main sections -->
2580
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
2581
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2582
+ <!-- Bibliography -->
2583
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2584
+ </xsl:template><xsl:template match="text()">
2585
+ <xsl:value-of select="."/>
2586
+ </xsl:template><xsl:template match="*[local-name()='br']">
2587
+ <xsl:value-of select="$linebreak"/>
2588
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2589
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
2590
+ <xsl:call-template name="add-zero-spaces-java"/>
2591
+ </xsl:template><xsl:template match="*[local-name()='table']">
2592
+
2593
+ <xsl:variable name="simple-table">
2594
+ <xsl:call-template name="getSimpleTable"/>
2595
+ </xsl:variable>
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2602
+
2603
+
2604
+
2605
+ <xsl:call-template name="fn_name_display"/>
2606
+
2607
+
2608
+
2609
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2610
+
2611
+ <!-- <xsl:variable name="cols-count">
2612
+ <xsl:choose>
2613
+ <xsl:when test="*[local-name()='thead']">
2614
+ <xsl:call-template name="calculate-columns-numbers">
2615
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2616
+ </xsl:call-template>
2617
+ </xsl:when>
2618
+ <xsl:otherwise>
2619
+ <xsl:call-template name="calculate-columns-numbers">
2620
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2621
+ </xsl:call-template>
2622
+ </xsl:otherwise>
2623
+ </xsl:choose>
2624
+ </xsl:variable> -->
2625
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2626
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2627
+
2628
+
2629
+
2630
+ <xsl:variable name="colwidths">
2631
+ <xsl:call-template name="calculate-column-widths">
2632
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2633
+ <xsl:with-param name="table" select="$simple-table"/>
2634
+ </xsl:call-template>
2635
+ </xsl:variable>
2636
+
2637
+ <!-- <xsl:variable name="colwidths2">
2638
+ <xsl:call-template name="calculate-column-widths">
2639
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2640
+ </xsl:call-template>
2641
+ </xsl:variable> -->
2642
+
2643
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2644
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2645
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2646
+
2647
+ <xsl:variable name="margin-left">
2648
+ <xsl:choose>
2649
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2650
+ <xsl:otherwise>0</xsl:otherwise>
2651
+ </xsl:choose>
2652
+ </xsl:variable>
2653
+
2654
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2655
+
2656
+
2657
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
2658
+ <xsl:if test="ancestor::*[local-name() = 'preface']">
2659
+ <xsl:attribute name="space-after">16pt</xsl:attribute>
2660
+ </xsl:if>
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
2670
+
2671
+
2672
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
2673
+
2674
+
2675
+
2676
+
2677
+
3224
2678
 
3225
2679
 
3226
2680
 
@@ -3229,6 +2683,7 @@
3229
2683
  <xsl:attribute name="font-size">8pt</xsl:attribute>
3230
2684
 
3231
2685
 
2686
+
3232
2687
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
3233
2688
  <xsl:choose>
3234
2689
  <xsl:when test=". = 1 or . = 0">
@@ -3253,33 +2708,15 @@
3253
2708
 
3254
2709
 
3255
2710
 
2711
+
2712
+
3256
2713
  </fo:block-container>
3257
- </xsl:template><xsl:template name="getTableNumber">
3258
- <xsl:choose>
3259
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
3260
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
3261
- </xsl:when>
3262
- <xsl:when test="ancestor::*[local-name()='annex']">
3263
-
3264
-
3265
-
3266
- <xsl:number format="A." count="*[local-name()='annex']"/><xsl:number format="1"/>
3267
-
3268
-
3269
-
3270
-
3271
-
3272
-
3273
- </xsl:when>
3274
- <xsl:otherwise>
3275
-
3276
- <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']) and not(ancestor::*[local-name()='preface'])] [not(@unnumbered) or @unnumbered != 'true']"/>
3277
-
3278
-
3279
- </xsl:otherwise>
3280
- </xsl:choose>
3281
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
3282
- <xsl:apply-templates/>
2714
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2715
+ <xsl:if test="normalize-space() != ''">
2716
+ <fo:block xsl:use-attribute-sets="table-name-style">
2717
+ <xsl:apply-templates/>
2718
+ </fo:block>
2719
+ </xsl:if>
3283
2720
  </xsl:template><xsl:template name="calculate-columns-numbers">
3284
2721
  <xsl:param name="table-row"/>
3285
2722
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
@@ -3515,6 +2952,14 @@
3515
2952
  </fo:table-row>
3516
2953
  </xsl:template><xsl:template match="*[local-name()='th']">
3517
2954
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2955
+ <xsl:attribute name="text-align">
2956
+ <xsl:choose>
2957
+ <xsl:when test="@align">
2958
+ <xsl:value-of select="@align"/>
2959
+ </xsl:when>
2960
+ <xsl:otherwise>center</xsl:otherwise>
2961
+ </xsl:choose>
2962
+ </xsl:attribute>
3518
2963
 
3519
2964
  <xsl:attribute name="padding-top">1mm</xsl:attribute>
3520
2965
 
@@ -3530,6 +2975,8 @@
3530
2975
 
3531
2976
 
3532
2977
 
2978
+
2979
+
3533
2980
  <xsl:if test="@colspan">
3534
2981
  <xsl:attribute name="number-columns-spanned">
3535
2982
  <xsl:value-of select="@colspan"/>
@@ -3546,6 +2993,14 @@
3546
2993
  </fo:table-cell>
3547
2994
  </xsl:template><xsl:template match="*[local-name()='td']">
3548
2995
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2996
+ <xsl:attribute name="text-align">
2997
+ <xsl:choose>
2998
+ <xsl:when test="@align">
2999
+ <xsl:value-of select="@align"/>
3000
+ </xsl:when>
3001
+ <xsl:otherwise>left</xsl:otherwise>
3002
+ </xsl:choose>
3003
+ </xsl:attribute>
3549
3004
  <!-- and ancestor::*[local-name() = 'thead'] -->
3550
3005
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3551
3006
 
@@ -3555,8 +3010,7 @@
3555
3010
  <xsl:attribute name="border">solid black 0</xsl:attribute>
3556
3011
  </xsl:if>
3557
3012
 
3558
-
3559
-
3013
+
3560
3014
 
3561
3015
  <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3562
3016
  <xsl:if test="ancestor::*[local-name()='preface']">
@@ -3566,6 +3020,7 @@
3566
3020
 
3567
3021
 
3568
3022
 
3023
+
3569
3024
  <xsl:if test="@colspan">
3570
3025
  <xsl:attribute name="number-columns-spanned">
3571
3026
  <xsl:value-of select="@colspan"/>
@@ -3579,21 +3034,9 @@
3579
3034
  <fo:block>
3580
3035
 
3581
3036
  <xsl:apply-templates/>
3582
- </fo:block>
3583
- <!-- <xsl:choose>
3584
- <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
3585
- <xsl:apply-templates />
3586
- </xsl:when>
3587
- <xsl:otherwise>
3588
- <fo:block>
3589
- <xsl:apply-templates />
3590
- </fo:block>
3591
- </xsl:otherwise>
3592
- </xsl:choose> -->
3593
-
3594
-
3037
+ </fo:block>
3595
3038
  </fo:table-cell>
3596
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
3039
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
3597
3040
 
3598
3041
 
3599
3042
  <fo:block font-size="10pt" margin-bottom="12pt">
@@ -3607,26 +3050,15 @@
3607
3050
  <fo:inline padding-right="2mm">
3608
3051
 
3609
3052
 
3610
- <xsl:variable name="title-note">
3611
- <xsl:call-template name="getTitle">
3612
- <xsl:with-param name="name" select="'title-note'"/>
3613
- </xsl:call-template>
3614
- </xsl:variable>
3615
- <xsl:value-of select="$title-note"/>
3616
3053
 
3617
- <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
3618
- <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
3619
- <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
3620
- </xsl:if>
3054
+
3055
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3621
3056
 
3622
-
3623
-
3624
-
3625
3057
  </fo:inline>
3626
3058
  <xsl:apply-templates mode="process"/>
3627
3059
  </fo:block>
3628
3060
 
3629
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3061
+ </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">
3630
3062
  <xsl:apply-templates/>
3631
3063
  </xsl:template><xsl:template name="fn_display">
3632
3064
  <xsl:variable name="references">
@@ -3692,7 +3124,7 @@
3692
3124
  true <!-- and (not(@class) or @class !='pseudocode') -->
3693
3125
  </xsl:variable>
3694
3126
  <xsl:variable name="references">
3695
- <xsl:for-each select=".//*[local-name()='fn']">
3127
+ <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
3696
3128
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3697
3129
  <xsl:apply-templates/>
3698
3130
  </fn>
@@ -3990,7 +3422,7 @@
3990
3422
  <xsl:value-of select="string-length(normalize-space(.))"/>
3991
3423
  </xsl:if>
3992
3424
  </xsl:for-each>
3993
- </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
3425
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
3994
3426
  <xsl:param name="key_iso"/>
3995
3427
 
3996
3428
  <!-- <tr>
@@ -4006,12 +3438,7 @@
4006
3438
  <xsl:if test="normalize-space($key_iso) = 'true'">
4007
3439
  <xsl:attribute name="margin-top">0</xsl:attribute>
4008
3440
  </xsl:if>
4009
- <xsl:variable name="title-note">
4010
- <xsl:call-template name="getTitle">
4011
- <xsl:with-param name="name" select="'title-note'"/>
4012
- </xsl:call-template>
4013
- </xsl:variable>
4014
- <xsl:value-of select="$title-note"/>
3441
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4015
3442
  </fo:block>
4016
3443
  </fo:table-cell>
4017
3444
  <fo:table-cell>
@@ -4084,7 +3511,7 @@
4084
3511
  <fo:inline font-style="italic">
4085
3512
  <xsl:apply-templates/>
4086
3513
  </fo:inline>
4087
- </xsl:template><xsl:template match="*[local-name()='strong']">
3514
+ </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
4088
3515
  <fo:inline font-weight="bold">
4089
3516
  <xsl:apply-templates/>
4090
3517
  </fo:inline>
@@ -4097,7 +3524,7 @@
4097
3524
  <xsl:apply-templates/>
4098
3525
  </fo:inline>
4099
3526
  </xsl:template><xsl:template match="*[local-name()='tt']">
4100
- <fo:inline font-family="Courier" font-size="10pt">
3527
+ <fo:inline xsl:use-attribute-sets="tt-style">
4101
3528
  <xsl:apply-templates/>
4102
3529
  </fo:inline>
4103
3530
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -4428,13 +3855,7 @@
4428
3855
  <xsl:copy-of select="."/>
4429
3856
  </fo:instream-foreign-object>
4430
3857
  </fo:inline>
4431
- </xsl:template><xsl:template match="*[local-name()='localityStack']">
4432
- <xsl:for-each select="*[local-name()='locality']">
4433
- <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
4434
- <xsl:apply-templates select="."/>
4435
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
4436
- </xsl:for-each>
4437
- </xsl:template><xsl:template match="*[local-name()='link']" name="link">
3858
+ </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4438
3859
  <xsl:variable name="target">
4439
3860
  <xsl:choose>
4440
3861
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
@@ -4464,51 +3885,20 @@
4464
3885
  </xsl:otherwise>
4465
3886
  </xsl:choose>
4466
3887
  </fo:inline>
4467
- </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4468
- <fo:block xsl:use-attribute-sets="sourcecode-style">
4469
- <!-- <xsl:choose>
4470
- <xsl:when test="@lang = 'en'"></xsl:when>
4471
- <xsl:otherwise> -->
4472
- <xsl:attribute name="white-space">pre</xsl:attribute>
4473
- <xsl:attribute name="wrap-option">wrap</xsl:attribute>
4474
- <!-- </xsl:otherwise>
4475
- </xsl:choose> -->
4476
- <xsl:apply-templates/>
4477
- </fo:block>
4478
3888
  </xsl:template><xsl:template match="*[local-name()='bookmark']">
4479
3889
  <fo:inline id="{@id}"/>
4480
3890
  </xsl:template><xsl:template match="*[local-name()='appendix']">
4481
3891
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
4482
- <xsl:variable name="title-appendix">
4483
- <xsl:call-template name="getTitle">
4484
- <xsl:with-param name="name" select="'title-appendix'"/>
4485
- </xsl:call-template>
4486
- </xsl:variable>
4487
- <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
4488
3892
  <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
4489
3893
  </fo:block>
4490
3894
  <xsl:apply-templates/>
4491
3895
  </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
4492
3896
  <fo:inline><xsl:apply-templates/></fo:inline>
4493
- </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
4494
- <fo:block xsl:use-attribute-sets="appendix-example-style">
4495
- <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
4496
- <xsl:variable name="title-example">
4497
- <xsl:call-template name="getTitle">
4498
- <xsl:with-param name="name" select="'title-example'"/>
4499
- </xsl:call-template>
4500
- </xsl:variable>
4501
- <xsl:value-of select="$title-example"/>
4502
- <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
4503
- <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
4504
- </xsl:if>
4505
- <xsl:if test="*[local-name()='name']">
4506
- <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
4507
- </xsl:if>
3897
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3898
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3899
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4508
3900
  </fo:block>
4509
3901
  <xsl:apply-templates/>
4510
- </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">
4511
- <fo:inline><xsl:apply-templates/></fo:inline>
4512
3902
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
4513
3903
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
4514
3904
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -4539,17 +3929,775 @@
4539
3929
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
4540
3930
  </xsl:choose>
4541
3931
  <xsl:apply-templates/>
4542
- </xsl:template><xsl:template name="convertDate">
4543
- <xsl:param name="date"/>
4544
- <xsl:param name="format" select="'short'"/>
4545
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
4546
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
4547
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
4548
- <xsl:variable name="monthStr">
4549
- <xsl:choose>
4550
- <xsl:when test="$month = '01'">January</xsl:when>
4551
- <xsl:when test="$month = '02'">February</xsl:when>
4552
- <xsl:when test="$month = '03'">March</xsl:when>
3932
+ </xsl:template><xsl:template match="*[local-name() = 'xref']">
3933
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3934
+
3935
+ <xsl:apply-templates/>
3936
+ </fo:basic-link>
3937
+ </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
3938
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3939
+ <xsl:apply-templates/>
3940
+ </fo:block>
3941
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
3942
+ <fo:inline>
3943
+ <xsl:apply-templates/>
3944
+ </fo:inline>
3945
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']/*[local-name() = 'stem']">
3946
+ <fo:inline>
3947
+ <xsl:apply-templates/>
3948
+ </fo:inline>
3949
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
3950
+ <xsl:if test="normalize-space() != ''">
3951
+ <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
3952
+ </xsl:if>
3953
+ </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
3954
+
3955
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
3956
+
3957
+
3958
+
3959
+
3960
+ <fo:block-container margin-left="0mm">
3961
+
3962
+
3963
+
3964
+
3965
+
3966
+
3967
+
3968
+
3969
+ <fo:block>
3970
+
3971
+
3972
+
3973
+
3974
+ <fo:inline xsl:use-attribute-sets="note-name-style">
3975
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3976
+ </fo:inline>
3977
+ <xsl:apply-templates/>
3978
+ </fo:block>
3979
+
3980
+
3981
+ </fo:block-container>
3982
+ </fo:block-container>
3983
+
3984
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
3985
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
3986
+ <xsl:choose>
3987
+ <xsl:when test="$num = 1">
3988
+ <fo:inline xsl:use-attribute-sets="note-p-style">
3989
+ <xsl:apply-templates/>
3990
+ </fo:inline>
3991
+ </xsl:when>
3992
+ <xsl:otherwise>
3993
+ <fo:block xsl:use-attribute-sets="note-p-style">
3994
+ <xsl:apply-templates/>
3995
+ </fo:block>
3996
+ </xsl:otherwise>
3997
+ </xsl:choose>
3998
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']">
3999
+ <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
4000
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4001
+ <xsl:apply-templates/>
4002
+ </fo:block>
4003
+ </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">
4004
+ <xsl:param name="sfx"/>
4005
+ <xsl:variable name="suffix">
4006
+ <xsl:choose>
4007
+ <xsl:when test="$sfx != ''">
4008
+ <xsl:value-of select="$sfx"/>
4009
+ </xsl:when>
4010
+ <xsl:otherwise>
4011
+
4012
+
4013
+ </xsl:otherwise>
4014
+ </xsl:choose>
4015
+ </xsl:variable>
4016
+ <xsl:if test="normalize-space() != ''">
4017
+ <xsl:apply-templates/>
4018
+ <xsl:value-of select="$suffix"/>
4019
+ </xsl:if>
4020
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
4021
+ <xsl:param name="sfx"/>
4022
+ <xsl:variable name="suffix">
4023
+ <xsl:choose>
4024
+ <xsl:when test="$sfx != ''">
4025
+ <xsl:value-of select="$sfx"/>
4026
+ </xsl:when>
4027
+ <xsl:otherwise>
4028
+
4029
+ <xsl:text>:</xsl:text>
4030
+
4031
+
4032
+ </xsl:otherwise>
4033
+ </xsl:choose>
4034
+ </xsl:variable>
4035
+ <xsl:if test="normalize-space() != ''">
4036
+ <xsl:apply-templates/>
4037
+ <xsl:value-of select="$suffix"/>
4038
+ </xsl:if>
4039
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
4040
+ <fo:inline><xsl:apply-templates/></fo:inline>
4041
+ </xsl:template><xsl:template match="*[local-name() = 'terms']">
4042
+ <fo:block id="{@id}">
4043
+ <xsl:apply-templates/>
4044
+ </fo:block>
4045
+ </xsl:template><xsl:template match="*[local-name() = 'term']">
4046
+ <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
4047
+
4048
+
4049
+
4050
+ <xsl:apply-templates/>
4051
+ </fo:block>
4052
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
4053
+ <xsl:if test="normalize-space() != ''">
4054
+ <fo:inline>
4055
+ <xsl:apply-templates/>
4056
+ <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
4057
+ <xsl:text>.</xsl:text>
4058
+ </xsl:if> -->
4059
+ </fo:inline>
4060
+ </xsl:if>
4061
+ </xsl:template><xsl:template match="*[local-name() = 'figure']">
4062
+ <fo:block-container id="{@id}">
4063
+ <fo:block>
4064
+ <xsl:apply-templates/>
4065
+ </fo:block>
4066
+ <xsl:call-template name="fn_display_figure"/>
4067
+ <xsl:for-each select="*[local-name() = 'note']">
4068
+ <xsl:call-template name="note"/>
4069
+ </xsl:for-each>
4070
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4071
+ </fo:block-container>
4072
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
4073
+ <fo:block id="{@id}">
4074
+ <xsl:apply-templates/>
4075
+ </fo:block>
4076
+ </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
4077
+ <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
4078
+ <xsl:apply-templates/>
4079
+ </fo:block>
4080
+ </xsl:template><xsl:template match="*[local-name() = 'image']">
4081
+ <fo:block xsl:use-attribute-sets="image-style">
4082
+
4083
+
4084
+ <xsl:variable name="src">
4085
+ <xsl:choose>
4086
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
4087
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
4088
+ </xsl:when>
4089
+ <xsl:otherwise>
4090
+ <xsl:value-of select="@src"/>
4091
+ </xsl:otherwise>
4092
+ </xsl:choose>
4093
+ </xsl:variable>
4094
+
4095
+ <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
4096
+ </fo:block>
4097
+ </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">
4098
+ <xsl:apply-templates mode="contents"/>
4099
+ <xsl:text> </xsl:text>
4100
+ </xsl:template><xsl:template match="text()" mode="contents">
4101
+ <xsl:value-of select="."/>
4102
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4103
+ <xsl:if test="normalize-space() != ''">
4104
+ <fo:block xsl:use-attribute-sets="figure-name-style">
4105
+
4106
+ <xsl:apply-templates/>
4107
+ </fo:block>
4108
+ </xsl:if>
4109
+ </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">
4110
+ <xsl:apply-templates mode="contents_item"/>
4111
+ <!-- <xsl:text> </xsl:text> -->
4112
+ </xsl:template><xsl:template name="getSection">
4113
+ <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4114
+ </xsl:template><xsl:template name="getName">
4115
+ <xsl:choose>
4116
+ <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
4117
+ <xsl:copy-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/following-sibling::node()"/>
4118
+ </xsl:when>
4119
+ <xsl:otherwise>
4120
+ <xsl:copy-of select="*[local-name() = 'title']/node()"/>
4121
+ </xsl:otherwise>
4122
+ </xsl:choose>
4123
+ </xsl:template><xsl:template name="insertTitleAsListItem">
4124
+ <xsl:param name="provisional-distance-between-starts" select="'9.5mm'"/>
4125
+ <xsl:variable name="section">
4126
+ <xsl:for-each select="..">
4127
+ <xsl:call-template name="getSection"/>
4128
+ </xsl:for-each>
4129
+ </xsl:variable>
4130
+ <fo:list-block provisional-distance-between-starts="{$provisional-distance-between-starts}">
4131
+ <fo:list-item>
4132
+ <fo:list-item-label end-indent="label-end()">
4133
+ <fo:block>
4134
+ <xsl:value-of select="$section"/>
4135
+ </fo:block>
4136
+ </fo:list-item-label>
4137
+ <fo:list-item-body start-indent="body-start()">
4138
+ <fo:block>
4139
+ <xsl:choose>
4140
+ <xsl:when test="*[local-name() = 'tab']">
4141
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4142
+ </xsl:when>
4143
+ <xsl:otherwise>
4144
+ <xsl:apply-templates/>
4145
+ </xsl:otherwise>
4146
+ </xsl:choose>
4147
+ </fo:block>
4148
+ </fo:list-item-body>
4149
+ </fo:list-item>
4150
+ </fo:list-block>
4151
+ </xsl:template><xsl:template name="extractTitle">
4152
+ <xsl:choose>
4153
+ <xsl:when test="*[local-name() = 'tab']">
4154
+ <xsl:apply-templates select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4155
+ </xsl:when>
4156
+ <xsl:otherwise>
4157
+ <xsl:apply-templates/>
4158
+ </xsl:otherwise>
4159
+ </xsl:choose>
4160
+ </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">
4161
+ <xsl:text> </xsl:text>
4162
+ </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
4163
+ <xsl:copy>
4164
+ <xsl:apply-templates mode="contents_item"/>
4165
+ </xsl:copy>
4166
+ </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4167
+ <xsl:text> </xsl:text>
4168
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4169
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
4170
+ <xsl:apply-templates/>
4171
+ </fo:block>
4172
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4173
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
4174
+ <xsl:variable name="text">
4175
+ <xsl:call-template name="add-zero-spaces-equal"/>
4176
+ </xsl:variable>
4177
+ <xsl:call-template name="add-zero-spaces">
4178
+ <xsl:with-param name="text" select="$text"/>
4179
+ </xsl:call-template>
4180
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
4181
+ <xsl:if test="normalize-space() != ''">
4182
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4183
+
4184
+ <xsl:apply-templates/>
4185
+ </fo:block>
4186
+ </xsl:if>
4187
+ </xsl:template><xsl:template match="*[local-name() = 'permission']">
4188
+ <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
4189
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4190
+ <xsl:apply-templates/>
4191
+ </fo:block>
4192
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
4193
+ <xsl:if test="normalize-space() != ''">
4194
+ <fo:block xsl:use-attribute-sets="permission-name-style">
4195
+ <xsl:apply-templates/>
4196
+
4197
+ </fo:block>
4198
+ </xsl:if>
4199
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'label']">
4200
+ <fo:block xsl:use-attribute-sets="permission-label-style">
4201
+ <xsl:apply-templates/>
4202
+ </fo:block>
4203
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']">
4204
+ <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
4205
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4206
+ <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
4207
+ <xsl:apply-templates select="@obligation" mode="presentation"/>
4208
+ <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
4209
+ <xsl:apply-templates/>
4210
+ </fo:block>
4211
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
4212
+ <xsl:if test="normalize-space() != ''">
4213
+ <fo:block xsl:use-attribute-sets="requirement-name-style">
4214
+
4215
+ <xsl:apply-templates/>
4216
+
4217
+ </fo:block>
4218
+ </xsl:if>
4219
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
4220
+ <fo:block xsl:use-attribute-sets="requirement-label-style">
4221
+ <xsl:apply-templates/>
4222
+ </fo:block>
4223
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
4224
+ <fo:block>
4225
+ <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4226
+ </fo:block>
4227
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4228
+ <fo:block xsl:use-attribute-sets="requirement-subject-style">
4229
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4230
+ </fo:block>
4231
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
4232
+ <fo:block xsl:use-attribute-sets="requirement-inherit-style">
4233
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4234
+ </fo:block>
4235
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4236
+ <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4237
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4238
+ <xsl:apply-templates/>
4239
+ </fo:block>
4240
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
4241
+ <xsl:if test="normalize-space() != ''">
4242
+ <fo:block xsl:use-attribute-sets="recommendation-name-style">
4243
+ <xsl:apply-templates/>
4244
+
4245
+ </fo:block>
4246
+ </xsl:if>
4247
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
4248
+ <fo:block xsl:use-attribute-sets="recommendation-label-style">
4249
+ <xsl:apply-templates/>
4250
+ </fo:block>
4251
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4252
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
4253
+ <fo:block-container margin-left="0mm" margin-right="0mm">
4254
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
4255
+ <xsl:variable name="simple-table">
4256
+ <xsl:call-template name="getSimpleTable"/>
4257
+ </xsl:variable>
4258
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4259
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4260
+ <fo:table-column column-width="35mm"/>
4261
+ <fo:table-column column-width="115mm"/>
4262
+ </xsl:if>
4263
+ <xsl:apply-templates mode="requirement"/>
4264
+ </fo:table>
4265
+ <!-- fn processing -->
4266
+ <xsl:if test=".//*[local-name() = 'fn']">
4267
+ <xsl:for-each select="*[local-name() = 'tbody']">
4268
+ <fo:block font-size="90%" border-bottom="1.pt solid black">
4269
+ <xsl:call-template name="fn_display"/>
4270
+ </fo:block>
4271
+ </xsl:for-each>
4272
+ </xsl:if>
4273
+ </fo:block-container>
4274
+ </fo:block-container>
4275
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
4276
+ <fo:table-header>
4277
+ <xsl:apply-templates mode="requirement"/>
4278
+ </fo:table-header>
4279
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
4280
+ <fo:table-body>
4281
+ <xsl:apply-templates mode="requirement"/>
4282
+ </fo:table-body>
4283
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4284
+ <fo:table-row>
4285
+ <xsl:apply-templates mode="requirement"/>
4286
+ </fo:table-row>
4287
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4288
+ <fo:table-cell text-align="{@align}">
4289
+ <xsl:attribute name="text-align">
4290
+ <xsl:choose>
4291
+ <xsl:when test="@align">
4292
+ <xsl:value-of select="@align"/>
4293
+ </xsl:when>
4294
+ <xsl:otherwise>center</xsl:otherwise>
4295
+ </xsl:choose>
4296
+ </xsl:attribute>
4297
+ <xsl:if test="@colspan">
4298
+ <xsl:attribute name="number-columns-spanned">
4299
+ <xsl:value-of select="@colspan"/>
4300
+ </xsl:attribute>
4301
+ </xsl:if>
4302
+ <xsl:if test="@rowspan">
4303
+ <xsl:attribute name="number-rows-spanned">
4304
+ <xsl:value-of select="@rowspan"/>
4305
+ </xsl:attribute>
4306
+ </xsl:if>
4307
+
4308
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4309
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4310
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
4311
+ </xsl:if>
4312
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
4313
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4314
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4315
+ </xsl:if>
4316
+
4317
+ <fo:block>
4318
+ <xsl:apply-templates/>
4319
+ </fo:block>
4320
+ </fo:table-cell>
4321
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
4322
+ <fo:table-cell text-align="{@align}">
4323
+ <xsl:attribute name="text-align">
4324
+ <xsl:choose>
4325
+ <xsl:when test="@align">
4326
+ <xsl:value-of select="@align"/>
4327
+ </xsl:when>
4328
+ <xsl:otherwise>left</xsl:otherwise>
4329
+ </xsl:choose>
4330
+ </xsl:attribute>
4331
+ <xsl:if test="@colspan">
4332
+ <xsl:attribute name="number-columns-spanned">
4333
+ <xsl:value-of select="@colspan"/>
4334
+ </xsl:attribute>
4335
+ </xsl:if>
4336
+ <xsl:if test="@rowspan">
4337
+ <xsl:attribute name="number-rows-spanned">
4338
+ <xsl:value-of select="@rowspan"/>
4339
+ </xsl:attribute>
4340
+ </xsl:if>
4341
+
4342
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4343
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
4344
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4345
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
4346
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4347
+ </xsl:if>
4348
+ </xsl:if>
4349
+
4350
+ <fo:block>
4351
+ <xsl:apply-templates/>
4352
+ </fo:block>
4353
+ </fo:table-cell>
4354
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
4355
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
4356
+ <xsl:apply-templates/>
4357
+ </fo:block>
4358
+ </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
4359
+ <fo:block margin-bottom="10pt">
4360
+ <xsl:apply-templates/>
4361
+ </fo:block>
4362
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']">
4363
+ <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
4364
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4365
+ <xsl:apply-templates/>
4366
+ </fo:block>
4367
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
4368
+ <xsl:if test="normalize-space() != ''">
4369
+ <fo:inline xsl:use-attribute-sets="termexample-name-style">
4370
+ <xsl:apply-templates/>
4371
+ </fo:inline>
4372
+ </xsl:if>
4373
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
4374
+ <fo:inline><xsl:apply-templates/></fo:inline>
4375
+ </xsl:template><xsl:template match="*[local-name() = 'example']">
4376
+ <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
4377
+
4378
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4379
+
4380
+ <xsl:variable name="element">
4381
+
4382
+ inline
4383
+ </xsl:variable>
4384
+
4385
+ <xsl:choose>
4386
+ <xsl:when test="normalize-space($element) = 'block'">
4387
+ <fo:block xsl:use-attribute-sets="example-body-style">
4388
+ <xsl:apply-templates/>
4389
+ </fo:block>
4390
+ </xsl:when>
4391
+ <xsl:otherwise>
4392
+ <fo:inline>
4393
+ <xsl:apply-templates/>
4394
+ </fo:inline>
4395
+ </xsl:otherwise>
4396
+ </xsl:choose>
4397
+
4398
+ </fo:block>
4399
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
4400
+
4401
+ <xsl:variable name="element">
4402
+
4403
+ inline
4404
+ </xsl:variable>
4405
+ <xsl:choose>
4406
+ <xsl:when test="ancestor::*[local-name() = 'appendix']">
4407
+ <fo:inline>
4408
+ <xsl:apply-templates/>
4409
+ </fo:inline>
4410
+ </xsl:when>
4411
+ <xsl:when test="normalize-space($element) = 'block'">
4412
+ <fo:block xsl:use-attribute-sets="example-name-style">
4413
+ <xsl:apply-templates/>
4414
+ </fo:block>
4415
+ </xsl:when>
4416
+ <xsl:otherwise>
4417
+ <fo:inline xsl:use-attribute-sets="example-name-style">
4418
+ <xsl:apply-templates/>
4419
+ </fo:inline>
4420
+ </xsl:otherwise>
4421
+ </xsl:choose>
4422
+
4423
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
4424
+ <fo:block xsl:use-attribute-sets="example-p-style">
4425
+
4426
+ <xsl:apply-templates/>
4427
+ </fo:block>
4428
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']">
4429
+ <fo:block xsl:use-attribute-sets="termsource-style">
4430
+ <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
4431
+ <xsl:variable name="termsource_text">
4432
+ <xsl:apply-templates/>
4433
+ </xsl:variable>
4434
+ <xsl:choose>
4435
+ <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
4436
+ <xsl:apply-templates/>
4437
+ </xsl:when>
4438
+ <xsl:otherwise>
4439
+ <xsl:text>[</xsl:text>
4440
+ <xsl:apply-templates/>
4441
+ <xsl:text>]</xsl:text>
4442
+ </xsl:otherwise>
4443
+ </xsl:choose>
4444
+ </fo:block>
4445
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
4446
+ <xsl:if test="normalize-space() != ''">
4447
+ <xsl:value-of select="."/>
4448
+ </xsl:if>
4449
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
4450
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4451
+
4452
+ <xsl:call-template name="getTitle">
4453
+ <xsl:with-param name="name" select="'title-source'"/>
4454
+ </xsl:call-template>
4455
+ <xsl:text>: </xsl:text>
4456
+
4457
+ <fo:inline xsl:use-attribute-sets="origin-style">
4458
+ <xsl:apply-templates/>
4459
+ </fo:inline>
4460
+ </fo:basic-link>
4461
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
4462
+ <fo:inline><xsl:apply-templates/></fo:inline>
4463
+ </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
4464
+ <xsl:if test="normalize-space() != ''">
4465
+ <xsl:value-of select="."/>
4466
+ </xsl:if>
4467
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
4468
+
4469
+ <fo:block xsl:use-attribute-sets="quote-style">
4470
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
4471
+ </fo:block>
4472
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4473
+ <fo:block xsl:use-attribute-sets="quote-source-style">
4474
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
4475
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
4476
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
4477
+ </fo:block>
4478
+ </xsl:if>
4479
+ </xsl:template><xsl:template match="*[local-name() = 'source']">
4480
+ <xsl:if test="../*[local-name() = 'author']">
4481
+ <xsl:text>, </xsl:text>
4482
+ </xsl:if>
4483
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4484
+ <xsl:apply-templates/>
4485
+ </fo:basic-link>
4486
+ </xsl:template><xsl:template match="*[local-name() = 'author']">
4487
+ <xsl:text>— </xsl:text>
4488
+ <xsl:apply-templates/>
4489
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
4490
+ <fo:inline xsl:use-attribute-sets="eref-style">
4491
+ <xsl:if test="@type = 'footnote'">
4492
+
4493
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
4494
+ <xsl:attribute name="font-size">80%</xsl:attribute>
4495
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
4496
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
4497
+
4498
+
4499
+ </xsl:if>
4500
+
4501
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4502
+
4503
+ <xsl:if test="@type = 'inline'">
4504
+
4505
+
4506
+ </xsl:if>
4507
+
4508
+
4509
+ <xsl:apply-templates/>
4510
+ </fo:basic-link>
4511
+ </fo:inline>
4512
+ </xsl:template><xsl:template match="*[local-name() = 'tab']">
4513
+ <!-- zero-space char -->
4514
+ <xsl:variable name="depth">
4515
+ <xsl:call-template name="getLevel">
4516
+ <xsl:with-param name="depth" select="../@depth"/>
4517
+ </xsl:call-template>
4518
+ </xsl:variable>
4519
+
4520
+ <xsl:variable name="padding">
4521
+
4522
+
4523
+
4524
+
4525
+ <xsl:choose>
4526
+ <xsl:when test="parent::iec:appendix">5</xsl:when>
4527
+ <xsl:when test="$depth = 2 and ancestor::iec:annex">6</xsl:when>
4528
+ <xsl:when test="$depth = 2">7</xsl:when>
4529
+ <xsl:otherwise>5</xsl:otherwise>
4530
+ </xsl:choose>
4531
+
4532
+
4533
+
4534
+
4535
+
4536
+
4537
+
4538
+
4539
+
4540
+
4541
+
4542
+
4543
+
4544
+
4545
+ </xsl:variable>
4546
+
4547
+ <xsl:variable name="padding-right">
4548
+ <xsl:choose>
4549
+ <xsl:when test="normalize-space($padding) = ''">0</xsl:when>
4550
+ <xsl:otherwise>
4551
+ <xsl:value-of select="normalize-space($padding)"/>
4552
+ </xsl:otherwise>
4553
+ </xsl:choose>
4554
+ </xsl:variable>
4555
+
4556
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4557
+
4558
+ <xsl:choose>
4559
+ <xsl:when test="$language = 'zh'">
4560
+ <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
4561
+ </xsl:when>
4562
+ <xsl:when test="../../@inline-header = 'true'">
4563
+ <fo:inline font-size="90%">
4564
+ <xsl:call-template name="insertNonBreakSpaces">
4565
+ <xsl:with-param name="count" select="$padding-right"/>
4566
+ </xsl:call-template>
4567
+ </fo:inline>
4568
+ </xsl:when>
4569
+ <xsl:otherwise>
4570
+ <fo:inline padding-right="{$padding-right}mm">​</fo:inline>
4571
+ </xsl:otherwise>
4572
+ </xsl:choose>
4573
+
4574
+ </xsl:template><xsl:template name="insertNonBreakSpaces">
4575
+ <xsl:param name="count"/>
4576
+ <xsl:if test="$count &gt; 0">
4577
+ <xsl:text> </xsl:text>
4578
+ <xsl:call-template name="insertNonBreakSpaces">
4579
+ <xsl:with-param name="count" select="$count - 1"/>
4580
+ </xsl:call-template>
4581
+ </xsl:if>
4582
+ </xsl:template><xsl:template match="*[local-name() = 'domain']">
4583
+ <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
4584
+ <xsl:text> </xsl:text>
4585
+ </xsl:template><xsl:template match="*[local-name() = 'admitted']">
4586
+ <fo:block xsl:use-attribute-sets="admitted-style">
4587
+ <xsl:apply-templates/>
4588
+ </fo:block>
4589
+ </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
4590
+ <xsl:variable name="title-deprecated">
4591
+ <xsl:call-template name="getTitle">
4592
+ <xsl:with-param name="name" select="'title-deprecated'"/>
4593
+ </xsl:call-template>
4594
+ </xsl:variable>
4595
+ <fo:block xsl:use-attribute-sets="deprecates-style">
4596
+ <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
4597
+ </fo:block>
4598
+ </xsl:template><xsl:template match="*[local-name() = 'definition']">
4599
+ <fo:block xsl:use-attribute-sets="definition-style">
4600
+ <xsl:apply-templates/>
4601
+ </fo:block>
4602
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]">
4603
+ <xsl:apply-templates/>
4604
+ </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p']">
4605
+ <fo:inline> <xsl:apply-templates/></fo:inline>
4606
+ <fo:block> </fo:block>
4607
+ </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
4608
+
4609
+ <fo:block>
4610
+ <xsl:call-template name="setId"/>
4611
+
4612
+
4613
+
4614
+
4615
+
4616
+
4617
+
4618
+
4619
+
4620
+
4621
+ <xsl:apply-templates/>
4622
+ </fo:block>
4623
+
4624
+
4625
+
4626
+ </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
4627
+ <fo:block break-after="page"/>
4628
+ <fo:block>
4629
+ <xsl:call-template name="setId"/>
4630
+ <xsl:apply-templates/>
4631
+ </fo:block>
4632
+ </xsl:template><xsl:template match="*[local-name() = 'clause']">
4633
+ <fo:block>
4634
+ <xsl:call-template name="setId"/>
4635
+ <xsl:apply-templates/>
4636
+ </fo:block>
4637
+ </xsl:template><xsl:template match="*[local-name() = 'definitions']">
4638
+ <fo:block id="{@id}">
4639
+ <xsl:apply-templates/>
4640
+ </fo:block>
4641
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4642
+
4643
+ <fo:block id="{@id}">
4644
+ <xsl:apply-templates/>
4645
+ </fo:block>
4646
+ </xsl:template><xsl:template match="*[local-name() = 'annex']">
4647
+ <fo:block break-after="page"/>
4648
+ <fo:block id="{@id}">
4649
+
4650
+ </fo:block>
4651
+ <xsl:apply-templates/>
4652
+ </xsl:template><xsl:template match="*[local-name() = 'review']">
4653
+ <!-- comment 2019-11-29 -->
4654
+ <!-- <fo:block font-weight="bold">Review:</fo:block>
4655
+ <xsl:apply-templates /> -->
4656
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
4657
+ <!-- 0xA0 to space replacement -->
4658
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
4659
+ </xsl:template><xsl:template match="*[local-name() = 'errata']">
4660
+ <!-- <row>
4661
+ <date>05-07-2013</date>
4662
+ <type>Editorial</type>
4663
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
4664
+ <pages>D-3</pages>
4665
+ </row>
4666
+ -->
4667
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
4668
+ <fo:table-column column-width="20mm"/>
4669
+ <fo:table-column column-width="23mm"/>
4670
+ <fo:table-column column-width="107mm"/>
4671
+ <fo:table-column column-width="15mm"/>
4672
+ <fo:table-body>
4673
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
4674
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
4675
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
4676
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
4677
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
4678
+ </fo:table-row>
4679
+ <xsl:apply-templates/>
4680
+ </fo:table-body>
4681
+ </fo:table>
4682
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']">
4683
+ <fo:table-row>
4684
+ <xsl:apply-templates/>
4685
+ </fo:table-row>
4686
+ </xsl:template><xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
4687
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
4688
+ <fo:block><xsl:apply-templates/></fo:block>
4689
+ </fo:table-cell>
4690
+ </xsl:template><xsl:template name="convertDate">
4691
+ <xsl:param name="date"/>
4692
+ <xsl:param name="format" select="'short'"/>
4693
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
4694
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
4695
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
4696
+ <xsl:variable name="monthStr">
4697
+ <xsl:choose>
4698
+ <xsl:when test="$month = '01'">January</xsl:when>
4699
+ <xsl:when test="$month = '02'">February</xsl:when>
4700
+ <xsl:when test="$month = '03'">March</xsl:when>
4553
4701
  <xsl:when test="$month = '04'">April</xsl:when>
4554
4702
  <xsl:when test="$month = '05'">May</xsl:when>
4555
4703
  <xsl:when test="$month = '06'">June</xsl:when>
@@ -4669,27 +4817,49 @@
4669
4817
  </xsl:otherwise>
4670
4818
  </xsl:choose>
4671
4819
  </xsl:template><xsl:template name="getLevel">
4672
- <xsl:variable name="level_total" select="count(ancestor::*)"/>
4673
- <xsl:variable name="level">
4674
- <xsl:choose>
4675
- <xsl:when test="ancestor::*[local-name() = 'preface']">
4676
- <xsl:value-of select="$level_total - 2"/>
4677
- </xsl:when>
4678
- <xsl:when test="ancestor::*[local-name() = 'sections']">
4679
- <xsl:value-of select="$level_total - 2"/>
4680
- </xsl:when>
4681
- <xsl:when test="ancestor::*[local-name() = 'bibliography']">
4682
- <xsl:value-of select="$level_total - 2"/>
4683
- </xsl:when>
4684
- <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
4685
- <xsl:otherwise>
4686
- <xsl:value-of select="$level_total - 1"/>
4687
- </xsl:otherwise>
4688
- </xsl:choose>
4689
- </xsl:variable>
4690
- <xsl:value-of select="$level"/>
4691
- </xsl:template><xsl:template name="getSubSection">
4692
- <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']"/>
4820
+ <xsl:param name="depth"/>
4821
+ <xsl:choose>
4822
+ <xsl:when test="normalize-space(@depth) != ''">
4823
+ <xsl:value-of select="@depth"/>
4824
+ </xsl:when>
4825
+ <xsl:when test="normalize-space($depth) != ''">
4826
+ <xsl:value-of select="$depth"/>
4827
+ </xsl:when>
4828
+ <xsl:otherwise>
4829
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
4830
+ <xsl:variable name="level">
4831
+ <xsl:choose>
4832
+ <xsl:when test="parent::*[local-name() = 'preface']">
4833
+ <xsl:value-of select="$level_total - 1"/>
4834
+ </xsl:when>
4835
+ <xsl:when test="ancestor::*[local-name() = 'preface']">
4836
+ <xsl:value-of select="$level_total - 2"/>
4837
+ </xsl:when>
4838
+ <!-- <xsl:when test="parent::*[local-name() = 'sections']">
4839
+ <xsl:value-of select="$level_total - 1"/>
4840
+ </xsl:when> -->
4841
+ <xsl:when test="ancestor::*[local-name() = 'sections']">
4842
+ <xsl:value-of select="$level_total - 1"/>
4843
+ </xsl:when>
4844
+ <xsl:when test="ancestor::*[local-name() = 'bibliography']">
4845
+ <xsl:value-of select="$level_total - 1"/>
4846
+ </xsl:when>
4847
+ <xsl:when test="parent::*[local-name() = 'annex']">
4848
+ <xsl:value-of select="$level_total - 1"/>
4849
+ </xsl:when>
4850
+ <xsl:when test="ancestor::*[local-name() = 'annex']">
4851
+ <xsl:value-of select="$level_total"/>
4852
+ </xsl:when>
4853
+ <xsl:when test="local-name() = 'annex'">1</xsl:when>
4854
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
4855
+ <xsl:otherwise>
4856
+ <xsl:value-of select="$level_total - 1"/>
4857
+ </xsl:otherwise>
4858
+ </xsl:choose>
4859
+ </xsl:variable>
4860
+ <xsl:value-of select="$level"/>
4861
+ </xsl:otherwise>
4862
+ </xsl:choose>
4693
4863
  </xsl:template><xsl:template name="split">
4694
4864
  <xsl:param name="pText" select="."/>
4695
4865
  <xsl:param name="sep" select="','"/>
@@ -4704,4 +4874,47 @@
4704
4874
  </xsl:if>
4705
4875
  </xsl:template><xsl:template name="getDocumentId">
4706
4876
  <xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
4877
+ </xsl:template><xsl:template name="namespaceCheck">
4878
+ <xsl:variable name="documentNS" select="namespace-uri(/*)"/>
4879
+ <xsl:variable name="XSLNS">
4880
+
4881
+
4882
+ <xsl:value-of select="document('')//*/namespace::iec"/>
4883
+
4884
+
4885
+
4886
+
4887
+
4888
+
4889
+
4890
+
4891
+
4892
+
4893
+
4894
+
4895
+ </xsl:variable>
4896
+ <xsl:if test="$documentNS != $XSLNS">
4897
+ <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
4898
+ </xsl:if>
4899
+ </xsl:template><xsl:template name="getLanguage">
4900
+ <xsl:param name="lang"/>
4901
+ <xsl:variable name="language" select="java:toLowerCase(java:java.lang.String.new($lang))"/>
4902
+ <xsl:choose>
4903
+ <xsl:when test="$language = 'en'">English</xsl:when>
4904
+ <xsl:when test="$language = 'fr'">French</xsl:when>
4905
+ <xsl:when test="$language = 'de'">Deutsch</xsl:when>
4906
+ <xsl:when test="$language = 'cn'">Chinese</xsl:when>
4907
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
4908
+ </xsl:choose>
4909
+ </xsl:template><xsl:template name="setId">
4910
+ <xsl:attribute name="id">
4911
+ <xsl:choose>
4912
+ <xsl:when test="@id">
4913
+ <xsl:value-of select="@id"/>
4914
+ </xsl:when>
4915
+ <xsl:otherwise>
4916
+ <xsl:value-of select="generate-id()"/>
4917
+ </xsl:otherwise>
4918
+ </xsl:choose>
4919
+ </xsl:attribute>
4707
4920
  </xsl:template></xsl:stylesheet>