metanorma-ogc 2.6.8 → 2.6.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -245,7 +245,7 @@
245
245
 
246
246
  <xsl:for-each select="xalan:nodeset($updated_xml_with_pages)"> <!-- set context to preface/sections -->
247
247
 
248
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface' or local-name() = 'boilerplate']][normalize-space() != '' or .//image or .//svg]">
248
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][parent::*[local-name() = 'preface' or local-name() = 'boilerplate']][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
249
249
 
250
250
  <!-- Copyright, Content, Foreword, etc. pages -->
251
251
  <fo:page-sequence master-reference="document" force-page-count="no-force">
@@ -278,7 +278,7 @@
278
278
  </fo:page-sequence>
279
279
  </xsl:for-each>
280
280
 
281
- <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface' or local-name() = 'boilerplate'])][normalize-space() != '' or .//image or .//svg]">
281
+ <xsl:for-each select=".//*[local-name() = 'page_sequence'][not(parent::*[local-name() = 'preface' or local-name() = 'boilerplate'])][normalize-space() != '' or .//*[local-name() = 'image'] or .//*[local-name() = 'svg']]">
282
282
 
283
283
  <!-- Document Pages -->
284
284
  <fo:page-sequence master-reference="document" format="1" force-page-count="no-force">
@@ -776,8 +776,21 @@
776
776
 
777
777
  <!-- <xsl:strip-space elements="ogc:xref"/> -->
778
778
 
779
- <xsl:variable name="namespace_full" select="namespace-uri(/*)"/> <!-- example: https://www.metanorma.org/ns/iso -->
780
- <xsl:variable name="root_element" select="local-name(/*)"/> <!-- example: iso-standard -->
779
+ <xsl:variable name="namespace_full_">
780
+ <xsl:choose>
781
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="namespace-uri(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
782
+ <xsl:otherwise><xsl:value-of select="namespace-uri(/*)"/></xsl:otherwise><!-- example: https://www.metanorma.org/ns/iso -->
783
+ </xsl:choose>
784
+ </xsl:variable>
785
+ <xsl:variable name="namespace_full" select="normalize-space($namespace_full_)"/>
786
+
787
+ <xsl:variable name="root_element_">
788
+ <xsl:choose>
789
+ <xsl:when test="local-name(/*) = 'metanorma-collection'"><xsl:value-of select="local-name(//*[contains(local-name(), '-standard')][1])"/></xsl:when>
790
+ <xsl:otherwise><xsl:value-of select="local-name(/*)"/></xsl:otherwise><!-- example: iso-standard -->
791
+ </xsl:choose>
792
+ </xsl:variable>
793
+ <xsl:variable name="root_element" select="normalize-space($root_element_)"/>
781
794
 
782
795
  <xsl:variable name="document_scheme" select="normalize-space(//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name'] = 'document-scheme']/*[local-name() = 'value'])"/>
783
796
 
@@ -4168,7 +4181,9 @@
4168
4181
  <fo:block role="SKIP">
4169
4182
 
4170
4183
  <xsl:if test="$isGenerateTableIF = 'true'">
4171
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
4184
+
4185
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
4186
+
4172
4187
  </xsl:if>
4173
4188
 
4174
4189
  <xsl:apply-templates/>
@@ -5198,7 +5213,17 @@
5198
5213
  <xsl:call-template name="refine_dt-cell-style"/>
5199
5214
 
5200
5215
  <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
5201
- <xsl:copy-of select="@id"/>
5216
+
5217
+ <xsl:choose>
5218
+ <xsl:when test="$isGenerateTableIF = 'true'">
5219
+
5220
+ <xsl:copy-of select="@id"/>
5221
+
5222
+ </xsl:when>
5223
+ <xsl:otherwise>
5224
+ <xsl:copy-of select="@id"/>
5225
+ </xsl:otherwise>
5226
+ </xsl:choose>
5202
5227
 
5203
5228
  <xsl:if test="normalize-space($key_iso) = 'true'">
5204
5229
  <xsl:attribute name="margin-top">0</xsl:attribute>
@@ -5230,7 +5255,9 @@
5230
5255
  <fo:block role="SKIP">
5231
5256
 
5232
5257
  <xsl:if test="$isGenerateTableIF = 'true'">
5233
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5258
+
5259
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
5260
+
5234
5261
  </xsl:if>
5235
5262
 
5236
5263
  <xsl:choose>
@@ -5711,6 +5738,12 @@
5711
5738
  </xsl:if>
5712
5739
  </xsl:template>
5713
5740
 
5741
+ <xsl:template match="*[local-name()='strike']">
5742
+ <fo:inline text-decoration="line-through">
5743
+ <xsl:apply-templates/>
5744
+ </fo:inline>
5745
+ </xsl:template>
5746
+
5714
5747
  <xsl:template match="*[local-name() = 'pagebreak']">
5715
5748
  <fo:block break-after="page"/>
5716
5749
  <fo:block> </fo:block>
@@ -6473,6 +6506,14 @@
6473
6506
  </xsl:for-each>
6474
6507
  </xsl:variable>
6475
6508
 
6509
+ <!-- <xsl:if test="$debug = 'true'">
6510
+ <redirect:write file="{generate-id()}_words_with_width_sorted.xml">
6511
+ <td_text><xsl:copy-of select="$td_text"/></td_text>
6512
+ <words_with_width><xsl:copy-of select="$words_with_width"/></words_with_width>
6513
+ <xsl:copy-of select="$words_with_width_sorted"/>
6514
+ </redirect:write>
6515
+ </xsl:if> -->
6516
+
6476
6517
  <xsl:variable name="words">
6477
6518
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
6478
6519
  <word>
@@ -6598,6 +6639,7 @@
6598
6639
  <xsl:if test="ancestor::*[local-name() = 'tt']"><tag>tt</tag></xsl:if>
6599
6640
  <xsl:if test="ancestor::*[local-name() = 'sourcecode']"><tag>sourcecode</tag></xsl:if>
6600
6641
  <xsl:if test="ancestor::*[local-name() = 'keep-together_within-line']"><tag>keep-together_within-line</tag></xsl:if>
6642
+ <xsl:if test="ancestor::*[local-name() = 'font_en_vertical']"><tag>font_en_vertical</tag></xsl:if>
6601
6643
  </tags>
6602
6644
  </xsl:template>
6603
6645
  <!-- =============================== -->
@@ -7138,7 +7180,16 @@
7138
7180
  </xsl:when>
7139
7181
  <xsl:otherwise>
7140
7182
  <!-- output text from <link>text</link> -->
7141
- <xsl:apply-templates/>
7183
+ <xsl:choose>
7184
+ <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'www.')">
7185
+ <xsl:call-template name="add-zero-spaces-link-java">
7186
+ <xsl:with-param name="text" select="."/>
7187
+ </xsl:call-template>
7188
+ </xsl:when>
7189
+ <xsl:otherwise>
7190
+ <xsl:apply-templates/>
7191
+ </xsl:otherwise>
7192
+ </xsl:choose>
7142
7193
  </xsl:otherwise>
7143
7194
  </xsl:choose>
7144
7195
  </fo:basic-link>
@@ -7777,16 +7828,29 @@
7777
7828
  <xsl:template name="getImageSrc">
7778
7829
  <xsl:choose>
7779
7830
  <xsl:when test="not(starts-with(@src, 'data:'))">
7831
+ <xsl:call-template name="getImageSrcExternal"/>
7832
+ </xsl:when>
7833
+ <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7834
+ </xsl:choose>
7835
+ </xsl:template>
7836
+
7837
+ <xsl:template name="getImageSrcExternal">
7838
+ <xsl:choose>
7839
+ <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7840
+ <xsl:value-of select="@src"/>
7841
+ </xsl:when>
7842
+ <xsl:otherwise>
7843
+ <xsl:variable name="src_with_basepath" select="concat($basepath, @src)"/>
7844
+ <xsl:variable name="file_exists" select="normalize-space(java:exists(java:java.io.File.new($src_with_basepath)))"/>
7780
7845
  <xsl:choose>
7781
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7782
- <xsl:value-of select="@src"/>
7846
+ <xsl:when test="$file_exists = 'true'">
7847
+ <xsl:value-of select="$src_with_basepath"/>
7783
7848
  </xsl:when>
7784
7849
  <xsl:otherwise>
7785
- <xsl:value-of select="concat($basepath, @src)"/>
7850
+ <xsl:value-of select="@src"/>
7786
7851
  </xsl:otherwise>
7787
7852
  </xsl:choose>
7788
- </xsl:when>
7789
- <xsl:otherwise><xsl:value-of select="@src"/></xsl:otherwise>
7853
+ </xsl:otherwise>
7790
7854
  </xsl:choose>
7791
7855
  </xsl:template>
7792
7856
 
@@ -7834,14 +7898,8 @@
7834
7898
  <xsl:value-of select="concat('url(file:///',$basepath, $src_png, ')')"/>
7835
7899
  </xsl:when>
7836
7900
  <xsl:when test="not(starts-with(@src, 'data:'))">
7837
- <xsl:choose>
7838
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7839
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
7840
- </xsl:when>
7841
- <xsl:otherwise>
7842
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
7843
- </xsl:otherwise>
7844
- </xsl:choose>
7901
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
7902
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
7845
7903
  </xsl:when>
7846
7904
  <xsl:otherwise>
7847
7905
  <xsl:value-of select="@src"/>
@@ -7862,16 +7920,8 @@
7862
7920
  </svg>
7863
7921
  </xsl:when>
7864
7922
  <xsl:when test="not(starts-with(@src, 'data:'))">
7865
- <xsl:variable name="src">
7866
- <xsl:choose>
7867
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
7868
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
7869
- </xsl:when>
7870
- <xsl:otherwise>
7871
- <xsl:value-of select="concat('url(file:///',$basepath, @src, ')')"/>
7872
- </xsl:otherwise>
7873
- </xsl:choose>
7874
- </xsl:variable>
7923
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
7924
+ <xsl:variable name="src" select="concat('url(file:///', $src_external, ')')"/>
7875
7925
  <xsl:variable name="file" select="java:java.io.File.new(@src)"/>
7876
7926
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($file)"/>
7877
7927
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
@@ -11993,7 +12043,9 @@
11993
12043
  <xsl:template name="add_id">
11994
12044
  <xsl:if test="not(@id)">
11995
12045
  <!-- add @id - first element with @id plus '_element_name' -->
11996
- <xsl:attribute name="id"><xsl:value-of select="(.//*[@id])[1]/@id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
12046
+ <xsl:variable name="prefix_id_" select="(.//*[@id])[1]/@id"/>
12047
+ <xsl:variable name="prefix_id"><xsl:value-of select="$prefix_id_"/><xsl:if test="normalize-space($prefix_id_) = ''"><xsl:value-of select="generate-id()"/></xsl:if></xsl:variable>
12048
+ <xsl:attribute name="id"><xsl:value-of select="$prefix_id"/>_<xsl:value-of select="local-name()"/></xsl:attribute>
11997
12049
  </xsl:if>
11998
12050
  </xsl:template>
11999
12051
 
@@ -13298,6 +13350,7 @@
13298
13350
  <xsl:param name="formatted">false</xsl:param>
13299
13351
  <xsl:param name="lang"/>
13300
13352
  <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
13353
+ <xsl:param name="bibdata_updated"/>
13301
13354
 
13302
13355
  <xsl:variable name="curr_lang">
13303
13356
  <xsl:choose>
@@ -13311,6 +13364,9 @@
13311
13364
 
13312
13365
  <xsl:variable name="data_value">
13313
13366
  <xsl:choose>
13367
+ <xsl:when test="$formatted = 'true' and string-length($bibdata_updated) != ''">
13368
+ <xsl:apply-templates select="xalan:nodeset($bibdata_updated)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
13369
+ </xsl:when>
13314
13370
  <xsl:when test="$formatted = 'true'">
13315
13371
  <xsl:apply-templates select="xalan:nodeset($bibdata)//*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
13316
13372
  </xsl:when>
@@ -13482,14 +13538,8 @@
13482
13538
  <xsl:value-of select="$src"/>
13483
13539
  </xsl:when>
13484
13540
  <xsl:otherwise>
13485
- <xsl:choose>
13486
- <xsl:when test="@extracted = 'true'"> <!-- added in mn2pdf v1.97 -->
13487
- <xsl:value-of select="concat('url(file:///', @src, ')')"/>
13488
- </xsl:when>
13489
- <xsl:otherwise>
13490
- <xsl:value-of select="concat('url(file:///',$basepath, $src, ')')"/>
13491
- </xsl:otherwise>
13492
- </xsl:choose>
13541
+ <xsl:variable name="src_external"><xsl:call-template name="getImageSrcExternal"/></xsl:variable>
13542
+ <xsl:value-of select="concat('url(file:///', $src_external, ')')"/>
13493
13543
  </xsl:otherwise>
13494
13544
  </xsl:choose>
13495
13545
  </xsl:template>
@@ -13511,15 +13561,23 @@
13511
13561
  <!-- END: insert cover page image -->
13512
13562
 
13513
13563
  <!-- https://github.com/metanorma/docs/blob/main/109.adoc -->
13564
+ <xsl:variable name="regex_ja_spec_half_width_">
13565
+ \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
13566
+ \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
13567
+ \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
13568
+ \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
13569
+ \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
13570
+ \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
13571
+ \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
13572
+ \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
13573
+ </xsl:variable>
13574
+ <xsl:variable name="regex_ja_spec_half_width" select="translate(normalize-space($regex_ja_spec_half_width_), ' ', '')"/>
13514
13575
  <xsl:variable name="regex_ja_spec_">[
13515
13576
  <!-- Rotate 90° clockwise -->
13516
- \u0028 <!-- U+0028 LEFT PARENTHESIS (() -->
13577
+ <xsl:value-of select="$regex_ja_spec_half_width"/>
13517
13578
  \uFF08 <!-- U+FF08 FULLWIDTH LEFT PARENTHESIS (() -->
13518
- \u0029 <!-- U+0029 RIGHT PARENTHESIS ()) -->
13519
13579
  \uFF09 <!-- U+FF09 FULLWIDTH RIGHT PARENTHESIS ()) -->
13520
- \u007B <!-- U+007B LEFT CURLY BRACKET ({) -->
13521
13580
  \uFF5B <!-- U+FF5B FULLWIDTH LEFT CURLY BRACKET ({) -->
13522
- \u007D <!-- U+007D RIGHT CURLY BRACKET (}) -->
13523
13581
  \uFF5D <!-- U+FF5D FULLWIDTH RIGHT CURLY BRACKET (}) -->
13524
13582
  \u3014 <!-- U+3014 LEFT TORTOISE SHELL BRACKET (〔) -->
13525
13583
  \u3015 <!-- U+3015 RIGHT TORTOISE SHELL BRACKET (〕) -->
@@ -13527,21 +13585,16 @@
13527
13585
  \u3011 <!-- U+3011 RIGHT BLACK LENTICULAR BRACKET (】) -->
13528
13586
  \u300A <!-- U+300A LEFT DOUBLE ANGLE BRACKET (《) -->
13529
13587
  \u300B <!-- U+300B RIGHT DOUBLE ANGLE BRACKET (》) -->
13530
- \uFF62 <!-- U+FF62 HALFWIDTH LEFT CORNER BRACKET (「) -->
13531
13588
  \u300C <!-- U+300C LEFT CORNER BRACKET (「) -->
13532
- \uFF63 <!-- U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」) -->
13533
13589
  \u300D <!-- U+300D RIGHT CORNER BRACKET (」) -->
13534
13590
  \u300E <!-- U+300E LEFT WHITE CORNER BRACKET (『) -->
13535
13591
  \u300F <!-- U+300F RIGHT WHITE CORNER BRACKET (』) -->
13536
- \u005B <!-- U+005B LEFT SQUARE BRACKET ([) -->
13537
13592
  \uFF3B <!-- U+FF3B FULLWIDTH LEFT SQUARE BRACKET ([) -->
13538
- \u005D <!-- U+005D RIGHT SQUARE BRACKET (]) -->
13539
13593
  \uFF3D <!-- U+FF3D FULLWIDTH RIGHT SQUARE BRACKET (]) -->
13540
13594
  \u3008 <!-- U+3008 LEFT ANGLE BRACKET (〈) -->
13541
13595
  \u3009 <!-- U+3009 RIGHT ANGLE BRACKET (〉) -->
13542
13596
  \u3016 <!-- U+3016 LEFT WHITE LENTICULAR BRACKET (〖) -->
13543
13597
  \u3017 <!-- U+3017 RIGHT WHITE LENTICULAR BRACKET (〗) -->
13544
-
13545
13598
  \u301A <!-- U+301A LEFT WHITE SQUARE BRACKET (〚) -->
13546
13599
  \u301B <!-- U+301B RIGHT WHITE SQUARE BRACKET (〛) -->
13547
13600
  \u301C <!-- U+301C WAVE DASH (〜) -->
@@ -13573,6 +13626,7 @@
13573
13626
  <xsl:variable name="regex_ja_spec"><xsl:value-of select="translate(normalize-space($regex_ja_spec_), ' ', '')"/></xsl:variable>
13574
13627
  <xsl:template name="insertVerticalChar">
13575
13628
  <xsl:param name="str"/>
13629
+ <xsl:param name="char_prev"/>
13576
13630
  <xsl:param name="writing-mode">lr-tb</xsl:param>
13577
13631
  <xsl:param name="reference-orientation">90</xsl:param>
13578
13632
  <xsl:param name="add_zero_width_space">false</xsl:param>
@@ -13582,53 +13636,99 @@
13582
13636
  </xsl:when>
13583
13637
  <xsl:otherwise>
13584
13638
  <xsl:if test="string-length($str) &gt; 0">
13585
- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/>
13639
+
13640
+ <!-- <xsl:variable name="horizontal_mode" select="normalize-space(ancestor::*[local-name() = 'span'][@class = 'horizontal'] and 1 = 1)"/> -->
13586
13641
  <xsl:variable name="char" select="substring($str,1,1)"/>
13587
- <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm">
13588
- <xsl:if test="normalize-space($writing-mode) != ''">
13589
- <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
13590
- <xsl:attribute name="reference-orientation">90</xsl:attribute>
13591
- </xsl:if>
13592
- <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
13593
- <xsl:attribute name="reference-orientation">0</xsl:attribute>
13594
- </xsl:if>
13595
- <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
13596
- <!-- Rotate 180°:
13597
- U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
13598
- U+3002 IDEOGRAPHIC FULL STOP (。)
13599
- U+FE52 SMALL FULL STOP (﹒)
13600
- U+FF0E FULLWIDTH FULL STOP ()
13601
- -->
13602
- <xsl:attribute name="reference-orientation">-90</xsl:attribute>
13603
- </xsl:if>
13604
- <fo:block-container width="1em">
13605
- <fo:block line-height="1em">
13606
- <xsl:choose>
13607
- <xsl:when test="$horizontal_mode = 'true'">
13608
- <xsl:value-of select="$str"/>
13609
- </xsl:when>
13610
- <xsl:otherwise>
13642
+ <xsl:variable name="char_next" select="substring($str,2,1)"/>
13643
+
13644
+ <xsl:variable name="char_half_width" select="normalize-space(java:matches(java:java.lang.String.new($char), concat('([', $regex_ja_spec_half_width, ']{1,})')))"/>
13645
+
13646
+ <xsl:choose>
13647
+ <xsl:when test="$char_half_width = 'true'">
13648
+ <fo:inline>
13649
+ <xsl:attribute name="baseline-shift">7%</xsl:attribute>
13650
+ <xsl:value-of select="$char"/>
13651
+ </fo:inline>
13652
+ </xsl:when>
13653
+ <xsl:otherwise>
13654
+ <!-- namespace-uri(ancestor::*[local-name() = 'title']) != '' to skip title from $contents -->
13655
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_prev = '' and ../preceding-sibling::node())">
13656
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
13657
+ </xsl:if>
13658
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP" text-align-last="center">
13659
+ <xsl:if test="normalize-space($writing-mode) != ''">
13660
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
13661
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
13662
+ </xsl:if>
13663
+ <xsl:if test="normalize-space(java:matches(java:java.lang.String.new($char), concat('(', $regex_ja_spec, '{1,})'))) = 'true'">
13664
+ <xsl:attribute name="reference-orientation">0</xsl:attribute>
13665
+ </xsl:if>
13666
+ <xsl:if test="$char = '゜' or $char = '。' or $char = '﹒' or $char = '.'">
13667
+ <!-- Rotate 180°:
13668
+ U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (゜)
13669
+ U+3002 IDEOGRAPHIC FULL STOP (。)
13670
+ U+FE52 SMALL FULL STOP (﹒)
13671
+ U+FF0E FULLWIDTH FULL STOP (.)
13672
+ -->
13673
+ <xsl:attribute name="reference-orientation">-90</xsl:attribute>
13674
+ </xsl:if>
13675
+ <fo:block-container width="1em" role="SKIP"><!-- border="0.5pt solid blue" -->
13676
+ <fo:block line-height="1em" role="SKIP">
13677
+ <!-- <xsl:choose>
13678
+ <xsl:when test="$horizontal_mode = 'true'">
13679
+ <xsl:value-of select="$str"/>
13680
+ </xsl:when>
13681
+ <xsl:otherwise>
13682
+ <xsl:value-of select="$char"/>
13683
+ </xsl:otherwise>
13684
+ </xsl:choose> -->
13611
13685
  <xsl:value-of select="$char"/>
13612
- </xsl:otherwise>
13613
- </xsl:choose>
13614
- </fo:block>
13615
- </fo:block-container>
13616
- </fo:inline-container>
13617
- <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}')"><xsl:value-of select="$zero_width_space"/></xsl:if>
13618
-
13619
- <xsl:if test="$horizontal_mode = 'false'">
13620
- <xsl:call-template name="insertVerticalChar">
13621
- <xsl:with-param name="str" select="substring($str, 2)"/>
13622
- <xsl:with-param name="writing-mode" select="$writing-mode"/>
13623
- <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
13624
- <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
13625
- </xsl:call-template>
13626
- </xsl:if>
13686
+ </fo:block>
13687
+ </fo:block-container>
13688
+ </fo:inline-container>
13689
+ <xsl:if test="namespace-uri(ancestor::*[local-name() = 'title']) != '' and ($char_next != '' or ../following-sibling::node())">
13690
+ <fo:inline padding-left="1mm"><xsl:value-of select="$zero_width_space"/></fo:inline>
13691
+ </xsl:if>
13692
+ </xsl:otherwise>
13693
+ </xsl:choose>
13694
+
13695
+ <xsl:if test="$add_zero_width_space = 'true' and ($char = ',' or $char = '.' or $char = ' ' or $char = '·' or $char = ')' or $char = ']' or $char = '}' or $char = '/')"><xsl:value-of select="$zero_width_space"/></xsl:if>
13696
+ <!-- <xsl:if test="$horizontal_mode = 'false'"> -->
13697
+ <xsl:call-template name="insertVerticalChar">
13698
+ <xsl:with-param name="str" select="substring($str, 2)"/>
13699
+ <xsl:with-param name="char_prev" select="$char"/>
13700
+ <xsl:with-param name="writing-mode" select="$writing-mode"/>
13701
+ <xsl:with-param name="reference-orientation" select="$reference-orientation"/>
13702
+ <xsl:with-param name="add_zero_width_space" select="$add_zero_width_space"/>
13703
+ </xsl:call-template>
13704
+ <!-- </xsl:if> -->
13627
13705
  </xsl:if>
13628
13706
  </xsl:otherwise>
13629
13707
  </xsl:choose>
13630
13708
  </xsl:template>
13631
13709
 
13710
+ <xsl:template name="insertHorizontalChars">
13711
+ <xsl:param name="str"/>
13712
+ <xsl:param name="writing-mode">lr-tb</xsl:param>
13713
+ <xsl:param name="reference-orientation">90</xsl:param>
13714
+ <xsl:param name="add_zero_width_space">false</xsl:param>
13715
+ <xsl:choose>
13716
+ <xsl:otherwise>
13717
+ <fo:inline-container text-align="center" alignment-baseline="central" width="1em" margin="0" padding="0" text-indent="0mm" last-line-end-indent="0mm" start-indent="0mm" end-indent="0mm" role="SKIP">
13718
+ <xsl:if test="normalize-space($writing-mode) != ''">
13719
+ <xsl:attribute name="writing-mode"><xsl:value-of select="$writing-mode"/></xsl:attribute>
13720
+ <xsl:attribute name="reference-orientation">90</xsl:attribute>
13721
+ </xsl:if>
13722
+ <fo:block-container width="1em" role="SKIP"> <!-- border="0.5pt solid green" -->
13723
+ <fo:block line-height="1em" role="SKIP">
13724
+ <xsl:value-of select="$str"/>
13725
+ </fo:block>
13726
+ </fo:block-container>
13727
+ </fo:inline-container>
13728
+ </xsl:otherwise>
13729
+ </xsl:choose>
13730
+ </xsl:template>
13731
+
13632
13732
  <xsl:template name="number-to-words">
13633
13733
  <xsl:param name="number"/>
13634
13734
  <xsl:param name="first"/>
@@ -267,11 +267,11 @@ Detailed in https://www.relaton.org/model/creator/</a:documentation>
267
267
  <a:documentation>An identifier of the person according to an international identifier scheme</a:documentation>
268
268
  </ref>
269
269
  </zeroOrMore>
270
- <zeroOrMore>
270
+ <optional>
271
271
  <ref name="contact">
272
272
  <a:documentation>Contact information for the person, including URI, address, phone number, and email</a:documentation>
273
273
  </ref>
274
- </zeroOrMore>
274
+ </optional>
275
275
  </element>
276
276
  </define>
277
277
  <define name="fullname">
@@ -454,11 +454,11 @@ real names (if the person is named with a pseudonym or user name); previous lega
454
454
  <a:documentation>An identifier of the organization according to an international identifier scheme</a:documentation>
455
455
  </ref>
456
456
  </zeroOrMore>
457
- <zeroOrMore>
457
+ <optional>
458
458
  <ref name="contact">
459
459
  <a:documentation>Contact information for the organization, including address, phone number, and email</a:documentation>
460
460
  </ref>
461
- </zeroOrMore>
461
+ </optional>
462
462
  <optional>
463
463
  <ref name="logo">
464
464
  <a:documentation>A logo for the organization</a:documentation>
@@ -540,12 +540,18 @@ real names (if the person is named with a pseudonym or user name); previous lega
540
540
  <!-- TODO may change -->
541
541
  <define name="contact">
542
542
  <a:documentation>Contact information for a person or organization</a:documentation>
543
- <choice>
543
+ <zeroOrMore>
544
544
  <ref name="address"/>
545
+ </zeroOrMore>
546
+ <zeroOrMore>
545
547
  <ref name="phone"/>
548
+ </zeroOrMore>
549
+ <zeroOrMore>
546
550
  <ref name="email"/>
551
+ </zeroOrMore>
552
+ <zeroOrMore>
547
553
  <ref name="uri"/>
548
- </choice>
554
+ </zeroOrMore>
549
555
  </define>
550
556
  <define name="phone">
551
557
  <a:documentation>The phone number associated with a person or organization</a:documentation>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Ogc
3
- VERSION = "2.6.8".freeze
3
+ VERSION = "2.6.10".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ogc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.8
4
+ version: 2.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-10 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iso-639
@@ -315,7 +315,7 @@ homepage: https://github.com/metanorma/metanorma-ogc
315
315
  licenses:
316
316
  - BSD-2-Clause
317
317
  metadata: {}
318
- post_install_message:
318
+ post_install_message:
319
319
  rdoc_options: []
320
320
  require_paths:
321
321
  - lib
@@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
331
  version: '0'
332
332
  requirements: []
333
333
  rubygems_version: 3.3.27
334
- signing_key:
334
+ signing_key:
335
335
  specification_version: 4
336
336
  summary: Metanorma for the Open Geospatial Consortium.
337
337
  test_files: []