metanorma-mpfa 0.6.8 → 0.6.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -134,7 +134,7 @@
134
134
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-MPFD-Logo))}" width="13.2mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image MPFD Logo"/>
135
135
  </fo:block>
136
136
  <fo:block-container text-align="center">
137
- <fo:block>
137
+ <fo:block role="H1">
138
138
  <fo:inline font-size="24pt" font-weight="bold">
139
139
  <xsl:call-template name="capitalizeWords">
140
140
  <xsl:with-param name="str" select="java:replaceAll(java:java.lang.String.new(/mpfd:mpfd-standard/mpfd:bibdata/mpfd:ext/mpfd:doctype),'MPF','')"/>
@@ -181,10 +181,10 @@
181
181
  <xsl:with-param name="name" select="'title-toc'"/>
182
182
  </xsl:call-template>
183
183
  </xsl:variable>
184
- <fo:block font-size="14pt" margin-bottom="15.5pt"><xsl:value-of select="$title-toc"/></fo:block>
185
- <fo:block line-height="115%">
184
+ <fo:block font-size="14pt" margin-bottom="15.5pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
185
+ <fo:block line-height="115%" role="TOC">
186
186
  <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
187
- <fo:block>
187
+ <fo:block role="TOCI">
188
188
  <xsl:if test="@level = 1">
189
189
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
190
190
  </xsl:if>
@@ -240,7 +240,7 @@
240
240
 
241
241
 
242
242
 
243
- <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt">
243
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt" role="H1">
244
244
  <xsl:value-of select="$title-en"/>
245
245
  </fo:block>
246
246
 
@@ -389,12 +389,13 @@
389
389
  </xsl:choose>
390
390
  </xsl:variable>
391
391
 
392
- <fo:block font-size="{$font-size}" color="rgb(14, 26, 133)" font-weight="bold" space-before="{$space-before}" space-after="{$space-after}" keep-with-next="always">
392
+ <fo:block font-size="{$font-size}" color="rgb(14, 26, 133)" font-weight="bold" space-before="{$space-before}" space-after="{$space-after}" keep-with-next="always" role="H{$level}">
393
393
  <xsl:if test="parent::mpfd:annex">
394
394
  <xsl:attribute name="text-align">center</xsl:attribute>
395
395
  <xsl:attribute name="font-size">12pt</xsl:attribute>
396
396
  </xsl:if>
397
397
  <xsl:apply-templates/>
398
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
398
399
  </fo:block>
399
400
 
400
401
  </xsl:template>
@@ -737,14 +738,14 @@
737
738
 
738
739
  <xsl:template name="insertHeaderFooter">
739
740
  <xsl:param name="font-weight">normal</xsl:param>
740
- <fo:static-content flow-name="header-even">
741
+ <fo:static-content flow-name="header-even" role="artifact">
741
742
  <fo:block-container height="100%" display-align="before">
742
743
  <fo:block padding-top="12.5mm">
743
744
  <xsl:value-of select="$copyrightShort"/>
744
745
  </fo:block>
745
746
  </fo:block-container>
746
747
  </fo:static-content>
747
- <fo:static-content flow-name="footer-even">
748
+ <fo:static-content flow-name="footer-even" role="artifact">
748
749
  <fo:block-container font-size="10pt" height="100%" display-align="after">
749
750
  <fo:table table-layout="fixed" width="100%">
750
751
  <fo:table-column column-width="10%"/>
@@ -762,14 +763,14 @@
762
763
  </fo:table>
763
764
  </fo:block-container>
764
765
  </fo:static-content>
765
- <fo:static-content flow-name="header-odd">
766
+ <fo:static-content flow-name="header-odd" role="artifact">
766
767
  <fo:block-container height="100%" display-align="before">
767
768
  <fo:block text-align="right" padding-top="12.5mm">
768
769
  <xsl:value-of select="$copyrightShort"/>
769
770
  </fo:block>
770
771
  </fo:block-container>
771
772
  </fo:static-content>
772
- <fo:static-content flow-name="footer-odd">
773
+ <fo:static-content flow-name="footer-odd" role="artifact">
773
774
  <fo:block-container font-size="10pt" height="100%" display-align="after">
774
775
  <fo:table table-layout="fixed" width="100%">
775
776
  <fo:table-column column-width="90%"/>
@@ -957,6 +958,7 @@
957
958
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
958
959
  <xsl:attribute name="white-space">pre</xsl:attribute>
959
960
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
961
+ <xsl:attribute name="role">Code</xsl:attribute>
960
962
 
961
963
 
962
964
 
@@ -978,8 +980,13 @@
978
980
 
979
981
  </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
980
982
 
981
- </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
982
- </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
983
+ </xsl:attribute-set><xsl:attribute-set name="subject-style">
984
+ </xsl:attribute-set><xsl:attribute-set name="inherit-style">
985
+ </xsl:attribute-set><xsl:attribute-set name="description-style">
986
+ </xsl:attribute-set><xsl:attribute-set name="specification-style">
987
+ </xsl:attribute-set><xsl:attribute-set name="measurement-target-style">
988
+ </xsl:attribute-set><xsl:attribute-set name="verification-style">
989
+ </xsl:attribute-set><xsl:attribute-set name="import-style">
983
990
  </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
984
991
 
985
992
 
@@ -1053,6 +1060,7 @@
1053
1060
 
1054
1061
 
1055
1062
 
1063
+
1056
1064
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1057
1065
 
1058
1066
 
@@ -1171,7 +1179,8 @@
1171
1179
 
1172
1180
 
1173
1181
 
1174
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
1182
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1183
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
1175
1184
 
1176
1185
 
1177
1186
 
@@ -1298,13 +1307,20 @@
1298
1307
 
1299
1308
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1300
1309
 
1301
- </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
1310
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
1311
+ <xsl:attribute name="line-height">135%</xsl:attribute>
1312
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="OLD_processPrefaceSectionsDefault_Contents">
1302
1313
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1303
1314
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1304
1315
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1305
1316
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1306
1317
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1307
- </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1318
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
1319
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
1320
+ <xsl:sort select="@displayorder" data-type="number"/>
1321
+ <xsl:apply-templates select="." mode="contents"/>
1322
+ </xsl:for-each>
1323
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
1308
1324
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1309
1325
 
1310
1326
  <!-- Normative references -->
@@ -1317,13 +1333,33 @@
1317
1333
  <!-- Bibliography -->
1318
1334
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
1319
1335
 
1320
- </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1336
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1337
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1338
+ <xsl:sort select="@displayorder" data-type="number"/>
1339
+ <xsl:apply-templates select="." mode="contents"/>
1340
+ </xsl:for-each>
1341
+
1342
+ <xsl:for-each select="/*/*[local-name()='annex']">
1343
+ <xsl:sort select="@displayorder" data-type="number"/>
1344
+ <xsl:apply-templates select="." mode="contents"/>
1345
+ </xsl:for-each>
1346
+
1347
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
1348
+ <xsl:sort select="@displayorder" data-type="number"/>
1349
+ <xsl:apply-templates select="." mode="contents"/>
1350
+ </xsl:for-each>
1351
+ </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
1321
1352
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1322
1353
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1323
1354
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1324
1355
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1325
1356
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1326
- </xsl:template><xsl:template name="processMainSectionsDefault">
1357
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1358
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
1359
+ <xsl:sort select="@displayorder" data-type="number"/>
1360
+ <xsl:apply-templates select="."/>
1361
+ </xsl:for-each>
1362
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
1327
1363
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1328
1364
 
1329
1365
  <!-- Normative references -->
@@ -1335,6 +1371,22 @@
1335
1371
  <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1336
1372
  <!-- Bibliography -->
1337
1373
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1374
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1375
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1376
+ <xsl:sort select="@displayorder" data-type="number"/>
1377
+ <xsl:apply-templates select="."/>
1378
+
1379
+ </xsl:for-each>
1380
+
1381
+ <xsl:for-each select="/*/*[local-name()='annex']">
1382
+ <xsl:sort select="@displayorder" data-type="number"/>
1383
+ <xsl:apply-templates select="."/>
1384
+ </xsl:for-each>
1385
+
1386
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
1387
+ <xsl:sort select="@displayorder" data-type="number"/>
1388
+ <xsl:apply-templates select="."/>
1389
+ </xsl:for-each>
1338
1390
  </xsl:template><xsl:template match="text()">
1339
1391
  <xsl:value-of select="."/>
1340
1392
  </xsl:template><xsl:template match="*[local-name()='br']">
@@ -1365,7 +1417,9 @@
1365
1417
 
1366
1418
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1367
1419
 
1368
-
1420
+
1421
+
1422
+
1369
1423
 
1370
1424
  <xsl:call-template name="fn_name_display"/>
1371
1425
 
@@ -1491,6 +1545,8 @@
1491
1545
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1492
1546
  </xsl:if>
1493
1547
 
1548
+
1549
+
1494
1550
  <xsl:choose>
1495
1551
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1496
1552
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -1778,9 +1834,9 @@
1778
1834
  <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
1779
1835
  <xsl:with-param name="continued">true</xsl:with-param>
1780
1836
  </xsl:apply-templates>
1781
- <xsl:for-each select="ancestor::*[local-name()='table'][1]">
1782
- <xsl:call-template name="fn_name_display"/>
1783
- </xsl:for-each>
1837
+
1838
+
1839
+
1784
1840
 
1785
1841
  </fo:table-cell>
1786
1842
  </fo:table-row>
@@ -1862,7 +1918,11 @@
1862
1918
 
1863
1919
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1864
1920
 
1865
- <xsl:if test="$isNoteOrFnExist = 'true'">
1921
+ <xsl:variable name="isNoteOrFnExistShowAfterTable">
1922
+
1923
+ </xsl:variable>
1924
+
1925
+ <xsl:if test="$isNoteOrFnExist = 'true' or normalize-space($isNoteOrFnExistShowAfterTable) = 'true'">
1866
1926
 
1867
1927
  <xsl:variable name="cols-count">
1868
1928
  <xsl:choose>
@@ -2003,6 +2063,19 @@
2003
2063
 
2004
2064
  </fo:table-body>
2005
2065
 
2066
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
2067
+ <xsl:choose>
2068
+ <xsl:when test="substring-after(., '—') != ''">
2069
+ <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
2070
+ </xsl:when>
2071
+ <xsl:otherwise>
2072
+ <xsl:value-of select="."/>
2073
+ </xsl:otherwise>
2074
+ </xsl:choose>
2075
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
2076
+ <xsl:apply-templates mode="presentation_name"/>
2077
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
2078
+ <xsl:apply-templates select="."/>
2006
2079
  </xsl:template><xsl:template match="*[local-name()='tr']">
2007
2080
  <xsl:variable name="parent-name" select="local-name(..)"/>
2008
2081
  <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
@@ -2178,14 +2251,12 @@
2178
2251
  <xsl:apply-templates/>
2179
2252
  </xsl:template><xsl:template name="fn_display">
2180
2253
  <xsl:variable name="references">
2254
+
2181
2255
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
2182
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2183
-
2184
-
2185
- <xsl:apply-templates/>
2186
- </fn>
2256
+ <xsl:call-template name="create_fn"/>
2187
2257
  </xsl:for-each>
2188
2258
  </xsl:variable>
2259
+
2189
2260
  <xsl:for-each select="xalan:nodeset($references)//fn">
2190
2261
  <xsl:variable name="reference" select="@reference"/>
2191
2262
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
@@ -2219,6 +2290,12 @@
2219
2290
  </fo:block>
2220
2291
  </xsl:if>
2221
2292
  </xsl:for-each>
2293
+ </xsl:template><xsl:template name="create_fn">
2294
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2295
+
2296
+
2297
+ <xsl:apply-templates/>
2298
+ </fn>
2222
2299
  </xsl:template><xsl:template name="fn_name_display">
2223
2300
  <!-- <xsl:variable name="references">
2224
2301
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
@@ -3198,16 +3275,68 @@
3198
3275
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
3199
3276
  </xsl:call-template>
3200
3277
 
3278
+
3279
+
3201
3280
  <xsl:variable name="mathml">
3202
3281
  <xsl:apply-templates select="." mode="mathml"/>
3203
3282
  </xsl:variable>
3204
3283
  <fo:instream-foreign-object fox:alt-text="Math">
3205
3284
 
3206
3285
 
3286
+ <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
3287
+ <xsl:variable name="comment_text_">
3288
+ <xsl:choose>
3289
+ <xsl:when test="normalize-space($comment_text_following) != ''">
3290
+ <xsl:value-of select="$comment_text_following"/>
3291
+ </xsl:when>
3292
+ <xsl:otherwise>
3293
+ <xsl:value-of select="normalize-space(translate(.,' ⁢',' '))"/>
3294
+ </xsl:otherwise>
3295
+ </xsl:choose>
3296
+ </xsl:variable>
3297
+ <xsl:variable name="comment_text" select="java:org.metanorma.fop.Util.unescape($comment_text_)"/>
3298
+
3299
+ <xsl:if test="normalize-space($comment_text) != ''">
3300
+ <!-- put Mathin Alternate Text -->
3301
+ <xsl:attribute name="fox:alt-text">
3302
+ <xsl:value-of select="java:org.metanorma.fop.Util.unescape($comment_text)"/>
3303
+ </xsl:attribute>
3304
+ </xsl:if>
3305
+
3306
+ <xsl:variable name="mathml_content">
3307
+ <xsl:apply-templates select="." mode="mathml_actual_text"/>
3308
+ </xsl:variable>
3309
+ <!-- put MathML in Actual Text -->
3310
+ <xsl:attribute name="fox:actual-text">
3311
+ <xsl:value-of select="$mathml_content"/>
3312
+ </xsl:attribute>
3313
+
3314
+
3207
3315
  <!-- <xsl:copy-of select="."/> -->
3208
3316
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3209
3317
  </fo:instream-foreign-object>
3210
3318
  </fo:inline>
3319
+ </xsl:template><xsl:template match="mathml:*" mode="mathml_actual_text">
3320
+ <!-- <xsl:text>a+b</xsl:text> -->
3321
+ <xsl:text>&lt;</xsl:text>
3322
+ <xsl:value-of select="local-name()"/>
3323
+ <xsl:if test="local-name() = 'math'">
3324
+ <xsl:text> xmlns="http://www.w3.org/1998/Math/MathML"</xsl:text>
3325
+ </xsl:if>
3326
+ <xsl:for-each select="@*">
3327
+ <xsl:text> </xsl:text>
3328
+ <xsl:value-of select="local-name()"/>
3329
+ <xsl:text>="</xsl:text>
3330
+ <xsl:value-of select="."/>
3331
+ <xsl:text>"</xsl:text>
3332
+ </xsl:for-each>
3333
+ <xsl:text>&gt;</xsl:text>
3334
+ <xsl:apply-templates mode="mathml_actual_text"/>
3335
+ <xsl:text>&lt;/</xsl:text>
3336
+ <xsl:value-of select="local-name()"/>
3337
+ <xsl:text>&gt;</xsl:text>
3338
+ </xsl:template><xsl:template match="text()" mode="mathml_actual_text">
3339
+ <xsl:value-of select="normalize-space()"/>
3211
3340
  </xsl:template><xsl:template match="@*|node()" mode="mathml">
3212
3341
  <xsl:copy>
3213
3342
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
@@ -3217,19 +3346,6 @@
3217
3346
  <!-- replace start and end spaces to non-break space -->
3218
3347
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
3219
3348
  </xsl:copy>
3220
- </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
3221
- <xsl:copy>
3222
- <xsl:apply-templates select="@*|node()" mode="mathml"/>
3223
- </xsl:copy>
3224
- <xsl:choose>
3225
- <!-- if in msub, then don't add space -->
3226
- <xsl:when test="ancestor::mathml:mrow[parent::mathml:msub and preceding-sibling::*[1][self::mathml:mrow]]"/>
3227
- <!-- if next char in digit, don't add space -->
3228
- <xsl:when test="translate(substring(following-sibling::*[1]/text(),1,1),'0123456789','') = ''"/>
3229
- <xsl:otherwise>
3230
- <mathml:mspace width="0.5ex"/>
3231
- </xsl:otherwise>
3232
- </xsl:choose>
3233
3349
  </xsl:template><xsl:template match="mathml:math/*[local-name()='unit']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='prefix']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='dimension']" mode="mathml"/><xsl:template match="mathml:math/*[local-name()='quantity']" mode="mathml"/><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
3234
3350
  <xsl:variable name="target">
3235
3351
  <xsl:choose>
@@ -3282,7 +3398,10 @@
3282
3398
  </fo:block>
3283
3399
  <xsl:apply-templates/>
3284
3400
  </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3285
- <fo:inline><xsl:apply-templates/></fo:inline>
3401
+ <xsl:variable name="level">
3402
+ <xsl:call-template name="getLevel"/>
3403
+ </xsl:variable>
3404
+ <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
3286
3405
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3287
3406
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3288
3407
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3317,9 +3436,10 @@
3317
3436
 
3318
3437
  </xsl:variable>
3319
3438
 
3439
+ <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
3320
3440
  <xsl:choose>
3321
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3322
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3441
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text>—</xsl:text></xsl:if></xsl:when>
3442
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text> — </xsl:text></xsl:if></xsl:otherwise>
3323
3443
  </xsl:choose>
3324
3444
  <xsl:apply-templates/>
3325
3445
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
@@ -3463,7 +3583,10 @@
3463
3583
  </fo:block>
3464
3584
  </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
3465
3585
  <xsl:if test="normalize-space() != ''">
3466
- <fo:inline>
3586
+ <xsl:variable name="level">
3587
+ <xsl:call-template name="getLevelTermName"/>
3588
+ </xsl:variable>
3589
+ <fo:inline role="H{$level}">
3467
3590
  <xsl:apply-templates/>
3468
3591
  <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3469
3592
  <xsl:text>.</xsl:text>
@@ -3764,6 +3887,13 @@
3764
3887
  </xsl:attribute>
3765
3888
  <xsl:apply-templates mode="svg_update"/>
3766
3889
  </xsl:copy>
3890
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
3891
+ <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
3892
+ <xsl:for-each select="*[local-name() = 'svg']">
3893
+ <xsl:call-template name="image_svg">
3894
+ <xsl:with-param name="name" select="$name"/>
3895
+ </xsl:call-template>
3896
+ </xsl:for-each>
3767
3897
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
3768
3898
  <xsl:variable name="svg_content" select="document(@src)"/>
3769
3899
  <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
@@ -3868,7 +3998,7 @@
3868
3998
  </fo:basic-link>
3869
3999
  </fo:block>
3870
4000
  </fo:block-container>
3871
- </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">
4001
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><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">
3872
4002
  <xsl:apply-templates mode="contents"/>
3873
4003
  <xsl:text> </xsl:text>
3874
4004
  </xsl:template><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="bookmarks">
@@ -4094,6 +4224,7 @@
4094
4224
  </xsl:when>
4095
4225
  <xsl:otherwise>
4096
4226
  <xsl:apply-templates/>
4227
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
4097
4228
  </xsl:otherwise>
4098
4229
  </xsl:choose>
4099
4230
  </fo:block>
@@ -4234,14 +4365,6 @@
4234
4365
  <fo:block>
4235
4366
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4236
4367
  </fo:block>
4237
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4238
- <fo:block xsl:use-attribute-sets="requirement-subject-style">
4239
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4240
- </fo:block>
4241
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
4242
- <fo:block xsl:use-attribute-sets="requirement-inherit-style">
4243
- <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4244
- </fo:block>
4245
4368
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4246
4369
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4247
4370
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -4258,6 +4381,38 @@
4258
4381
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4259
4382
  <xsl:apply-templates/>
4260
4383
  </fo:block>
4384
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4385
+ <fo:block xsl:use-attribute-sets="subject-style">
4386
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4387
+ </fo:block>
4388
+ </xsl:template><xsl:template match="*[local-name() = 'subject']">
4389
+ <fo:block xsl:use-attribute-sets="subject-style">
4390
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4391
+ </fo:block>
4392
+ </xsl:template><xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit']">
4393
+ <fo:block xsl:use-attribute-sets="inherit-style">
4394
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4395
+ </fo:block>
4396
+ </xsl:template><xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description']">
4397
+ <fo:block xsl:use-attribute-sets="description-style">
4398
+ <xsl:apply-templates/>
4399
+ </fo:block>
4400
+ </xsl:template><xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification']">
4401
+ <fo:block xsl:use-attribute-sets="specification-style">
4402
+ <xsl:apply-templates/>
4403
+ </fo:block>
4404
+ </xsl:template><xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target']">
4405
+ <fo:block xsl:use-attribute-sets="measurement-target-style">
4406
+ <xsl:apply-templates/>
4407
+ </fo:block>
4408
+ </xsl:template><xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification']">
4409
+ <fo:block xsl:use-attribute-sets="verification-style">
4410
+ <xsl:apply-templates/>
4411
+ </fo:block>
4412
+ </xsl:template><xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import']">
4413
+ <fo:block xsl:use-attribute-sets="import-style">
4414
+ <xsl:apply-templates/>
4415
+ </fo:block>
4261
4416
  </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4262
4417
  <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
4263
4418
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
@@ -4409,7 +4564,19 @@
4409
4564
  </fo:inline>
4410
4565
  </xsl:if>
4411
4566
  </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'p']">
4412
- <fo:inline><xsl:apply-templates/></fo:inline>
4567
+ <xsl:variable name="element">inline
4568
+
4569
+ </xsl:variable>
4570
+ <xsl:choose>
4571
+ <xsl:when test="contains($element, 'block')">
4572
+ <fo:block xsl:use-attribute-sets="example-p-style">
4573
+ <xsl:apply-templates/>
4574
+ </fo:block>
4575
+ </xsl:when>
4576
+ <xsl:otherwise>
4577
+ <fo:inline><xsl:apply-templates/></fo:inline>
4578
+ </xsl:otherwise>
4579
+ </xsl:choose>
4413
4580
  </xsl:template><xsl:template match="*[local-name() = 'example']">
4414
4581
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
4415
4582
 
@@ -4507,14 +4674,15 @@
4507
4674
  </xsl:if>
4508
4675
  </xsl:template><xsl:variable name="localized.source">
4509
4676
  <xsl:call-template name="getLocalizedString">
4510
- <xsl:with-param name="key">source</xsl:with-param>
4511
- </xsl:call-template>
4677
+ <xsl:with-param name="key">source</xsl:with-param>
4678
+ </xsl:call-template>
4512
4679
  </xsl:variable><xsl:template match="*[local-name() = 'origin']">
4513
4680
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4514
4681
  <xsl:if test="normalize-space(@citeas) = ''">
4515
4682
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
4516
4683
  </xsl:if>
4517
4684
 
4685
+
4518
4686
  <fo:inline>
4519
4687
 
4520
4688
 
@@ -4522,6 +4690,7 @@
4522
4690
 
4523
4691
 
4524
4692
 
4693
+
4525
4694
  <xsl:call-template name="getTitle">
4526
4695
  <xsl:with-param name="name" select="'title-source'"/>
4527
4696
  </xsl:call-template>
@@ -4533,6 +4702,7 @@
4533
4702
  <fo:inline xsl:use-attribute-sets="origin-style">
4534
4703
  <xsl:apply-templates/>
4535
4704
  </fo:inline>
4705
+
4536
4706
  </fo:basic-link>
4537
4707
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
4538
4708
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -4599,6 +4769,9 @@
4599
4769
 
4600
4770
  </xsl:if>
4601
4771
 
4772
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
4773
+ <xsl:variable name="text" select="normalize-space()"/>
4774
+
4602
4775
 
4603
4776
 
4604
4777
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
@@ -4614,7 +4787,9 @@
4614
4787
 
4615
4788
 
4616
4789
  </xsl:if>
4617
-
4790
+
4791
+
4792
+
4618
4793
  <xsl:apply-templates/>
4619
4794
  </fo:basic-link>
4620
4795
 
@@ -4942,6 +5117,7 @@
4942
5117
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
4943
5118
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
4944
5119
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5120
+
4945
5121
  <xsl:apply-templates/>
4946
5122
  </fo:block>
4947
5123
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
@@ -4981,7 +5157,6 @@
4981
5157
  </xsl:template><xsl:template name="processBibitem">
4982
5158
 
4983
5159
 
4984
- <!-- end BIPM bibitem processing-->
4985
5160
 
4986
5161
 
4987
5162
 
@@ -5111,6 +5286,97 @@
5111
5286
  <fo:block-container border="1pt solid black" width="50%">
5112
5287
  <fo:block> </fo:block>
5113
5288
  </fo:block-container>
5289
+ </xsl:template><xsl:template match="*[local-name() = 'toc']">
5290
+ <xsl:param name="colwidths"/>
5291
+ <xsl:variable name="colwidths_">
5292
+ <xsl:choose>
5293
+ <xsl:when test="not($colwidths)">
5294
+ <xsl:variable name="toc_table_simple">
5295
+ <tbody>
5296
+ <xsl:apply-templates mode="toc_table_width"/>
5297
+ </tbody>
5298
+ </xsl:variable>
5299
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
5300
+ <xsl:call-template name="calculate-column-widths">
5301
+ <xsl:with-param name="cols-count" select="$cols-count"/>
5302
+ <xsl:with-param name="table" select="$toc_table_simple"/>
5303
+ </xsl:call-template>
5304
+ </xsl:when>
5305
+ <xsl:otherwise>
5306
+ <xsl:copy-of select="$colwidths"/>
5307
+ </xsl:otherwise>
5308
+ </xsl:choose>
5309
+ </xsl:variable>
5310
+ <fo:block role="TOCI" space-after="16pt">
5311
+ <fo:table width="100%" table-layout="fixed">
5312
+ <xsl:for-each select="xalan:nodeset($colwidths_)/column">
5313
+ <fo:table-column column-width="proportional-column-width({.})"/>
5314
+ </xsl:for-each>
5315
+ <fo:table-body>
5316
+ <xsl:apply-templates/>
5317
+ </fo:table-body>
5318
+ </fo:table>
5319
+ </fo:block>
5320
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
5321
+ <fo:table-row min-height="5mm">
5322
+ <xsl:apply-templates/>
5323
+ </fo:table-row>
5324
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']/*[local-name() = 'p']">
5325
+ <xsl:apply-templates/>
5326
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'xref']" priority="3">
5327
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
5328
+ <xsl:variable name="target" select="@target"/>
5329
+ <xsl:for-each select="*[local-name() = 'tab']">
5330
+ <xsl:variable name="current_id" select="generate-id()"/>
5331
+ <fo:table-cell>
5332
+ <fo:block>
5333
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
5334
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
5335
+ <xsl:choose>
5336
+ <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
5337
+ <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
5338
+ </xsl:choose>
5339
+ </xsl:for-each>
5340
+ </fo:basic-link>
5341
+ </fo:block>
5342
+ </fo:table-cell>
5343
+ </xsl:for-each>
5344
+ <!-- last column - for page numbers -->
5345
+ <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
5346
+ <fo:block>
5347
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
5348
+ <fo:page-number-citation ref-id="{$target}"/>
5349
+ </fo:basic-link>
5350
+ </fo:block>
5351
+ </fo:table-cell>
5352
+ </xsl:template><xsl:template match="*" mode="toc_table_width">
5353
+ <xsl:apply-templates mode="toc_table_width"/>
5354
+ </xsl:template><xsl:template match="*[local-name() = 'clause'][@type = 'toc']/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'clause'][not(@type = 'toc')]/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'li']" mode="toc_table_width">
5355
+ <tr>
5356
+ <xsl:apply-templates mode="toc_table_width"/>
5357
+ </tr>
5358
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="toc_table_width">
5359
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
5360
+ <xsl:for-each select="*[local-name() = 'tab']">
5361
+ <xsl:variable name="current_id" select="generate-id()"/>
5362
+ <td>
5363
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
5364
+ <xsl:copy-of select="."/>
5365
+ </xsl:for-each>
5366
+ </td>
5367
+ </xsl:for-each>
5368
+ <td>333</td> <!-- page number, just for fill -->
5369
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
5370
+ <fo:inline padding-right="5mm"> </fo:inline>
5371
+ <fo:inline><xsl:apply-templates/></fo:inline>
5372
+ </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
5373
+ <fo:inline padding-right="2.5mm" baseline-shift="5%">
5374
+ <fo:instream-foreign-object content-height="2mm" content-width="2mm" fox:alt-text="Quad">
5375
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 2 2">
5376
+ <rect x="0" y="0" width="2" height="2" fill="black"/>
5377
+ </svg>
5378
+ </fo:instream-foreign-object>
5379
+ </fo:inline>
5114
5380
  </xsl:template><xsl:template name="convertDate">
5115
5381
  <xsl:param name="date"/>
5116
5382
  <xsl:param name="format" select="'short'"/>
@@ -5342,6 +5608,26 @@
5342
5608
  <xsl:value-of select="$level"/>
5343
5609
  </xsl:otherwise>
5344
5610
  </xsl:choose>
5611
+ </xsl:template><xsl:template name="getLevelTermName">
5612
+ <xsl:choose>
5613
+ <xsl:when test="normalize-space(../@depth) != ''">
5614
+ <xsl:value-of select="../@depth"/>
5615
+ </xsl:when>
5616
+ <xsl:otherwise>
5617
+ <xsl:variable name="title_level_">
5618
+ <xsl:for-each select="../preceding-sibling::*[local-name() = 'title'][1]">
5619
+ <xsl:call-template name="getLevel"/>
5620
+ </xsl:for-each>
5621
+ </xsl:variable>
5622
+ <xsl:variable name="title_level" select="normalize-space($title_level_)"/>
5623
+ <xsl:choose>
5624
+ <xsl:when test="$title_level != ''"><xsl:value-of select="$title_level + 1"/></xsl:when>
5625
+ <xsl:otherwise>
5626
+ <xsl:call-template name="getLevel"/>
5627
+ </xsl:otherwise>
5628
+ </xsl:choose>
5629
+ </xsl:otherwise>
5630
+ </xsl:choose>
5345
5631
  </xsl:template><xsl:template name="split">
5346
5632
  <xsl:param name="pText" select="."/>
5347
5633
  <xsl:param name="sep" select="','"/>