metanorma-ogc 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -560,43 +560,8 @@
560
560
  <fo:block id="{@id}" margin-bottom="12pt" start-indent="12mm" text-indent="-12mm" line-height="115%">
561
561
  <xsl:if test=".//ogc:fn">
562
562
  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
563
- </xsl:if>
564
- <xsl:choose>
565
- <xsl:when test="ogc:formattedref">
566
- <xsl:apply-templates select="ogc:formattedref"/>
567
- </xsl:when>
568
- <xsl:otherwise>
569
- <xsl:for-each select="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name">
570
- <xsl:apply-templates/>
571
- <xsl:if test="position() != last()">, </xsl:if>
572
- <xsl:if test="position() = last()">: </xsl:if>
573
- </xsl:for-each>
574
- <!-- ogc:docidentifier -->
575
- <xsl:if test="ogc:docidentifier">
576
- <xsl:value-of select="ogc:docidentifier/@type"/><xsl:text> </xsl:text>
577
- <xsl:value-of select="ogc:docidentifier"/>
578
- </xsl:if>
579
- <xsl:apply-templates select="ogc:note"/>
580
- <xsl:if test="ogc:docidentifier">, </xsl:if>
581
- <fo:inline font-style="italic">
582
- <xsl:choose>
583
- <xsl:when test="ogc:title[@type = 'main' and @language = 'en']">
584
- <xsl:value-of select="ogc:title[@type = 'main' and @language = 'en']"/><xsl:text>. </xsl:text>
585
- </xsl:when>
586
- <xsl:otherwise>
587
- <xsl:value-of select="ogc:title"/><xsl:text>. </xsl:text>
588
- </xsl:otherwise>
589
- </xsl:choose>
590
- </fo:inline>
591
- <xsl:for-each select="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name">
592
- <xsl:apply-templates/>
593
- <xsl:if test="position() != last()">, </xsl:if>
594
- </xsl:for-each>
595
- <xsl:if test="ogc:date[@type='published']/ogc:on">
596
- <xsl:text>(</xsl:text><xsl:value-of select="ogc:date[@type='published']/ogc:on"/><xsl:text>)</xsl:text>
597
- </xsl:if>
598
- </xsl:otherwise>
599
- </xsl:choose>
563
+ </xsl:if>
564
+ <xsl:call-template name="processBibitem"/>
600
565
  </fo:block>
601
566
  </xsl:template>
602
567
 
@@ -716,8 +681,6 @@
716
681
 
717
682
 
718
683
 
719
-
720
-
721
684
  <!-- [position() &gt; 1] -->
722
685
  <xsl:template match="ogc:references[not(@normative='true')]">
723
686
  <fo:block break-after="page"/>
@@ -733,7 +696,6 @@
733
696
  </xsl:template>
734
697
 
735
698
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
736
- <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem"> [position() &gt; 1] -->
737
699
  <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem">
738
700
  <fo:list-block id="{@id}" margin-bottom="12pt" provisional-distance-between-starts="12mm">
739
701
  <fo:list-item>
@@ -746,71 +708,16 @@
746
708
  </fo:list-item-label>
747
709
  <fo:list-item-body start-indent="body-start()">
748
710
  <fo:block>
749
-
750
- <xsl:if test="not(ogc:formattedref)">
751
- <xsl:choose>
752
- <xsl:when test="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:abbreviation">
753
- <xsl:for-each select="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:abbreviation">
754
- <xsl:value-of select="."/>
755
- <xsl:if test="position() != last()">/</xsl:if>
756
- </xsl:for-each>
757
- <xsl:text>: </xsl:text>
758
- </xsl:when>
759
- <xsl:when test="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name">
760
- <xsl:value-of select="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name"/>
761
- <xsl:text>: </xsl:text>
762
- </xsl:when>
763
- </xsl:choose>
764
-
765
- </xsl:if>
766
-
767
- <xsl:if test="ogc:docidentifier">
768
- <xsl:choose>
769
- <xsl:when test="ogc:docidentifier/@type = 'ISO' and ogc:formattedref"/>
770
- <xsl:when test="ogc:docidentifier/@type = 'OGC' and ogc:formattedref"/>
771
- <xsl:otherwise><fo:inline>
772
- <xsl:if test="ogc:docidentifier/@type = 'OGC'">OGC </xsl:if>
773
- <xsl:value-of select="ogc:docidentifier"/><xsl:apply-templates select="ogc:note"/>, </fo:inline></xsl:otherwise>
774
- </xsl:choose>
775
- </xsl:if>
776
-
777
-
778
-
779
- <xsl:choose>
780
- <xsl:when test="ogc:title[@type = 'main' and @language = 'en']">
781
- <xsl:apply-templates select="ogc:title[@type = 'main' and @language = 'en']"/>
782
- </xsl:when>
783
- <xsl:otherwise>
784
- <xsl:apply-templates select="ogc:title"/>
785
- </xsl:otherwise>
786
- </xsl:choose>
787
- <xsl:if test="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name">
788
- <xsl:text>, </xsl:text>
789
- <xsl:for-each select="ogc:contributor[ogc:role/@type='publisher']/ogc:organization/ogc:name">
790
- <xsl:if test="position() != last()">and </xsl:if>
791
- <xsl:value-of select="."/>
792
- </xsl:for-each>
793
-
794
- </xsl:if>
795
- <xsl:if test="ogc:place">
796
- <xsl:text>, </xsl:text>
797
- <xsl:value-of select="ogc:place"/>
798
- </xsl:if>
799
- <xsl:if test="ogc:date[@type='published']/ogc:on">
800
- <xsl:text> (</xsl:text><xsl:value-of select="ogc:date[@type='published']/ogc:on"/><xsl:text>).</xsl:text>
801
- </xsl:if>
802
- <xsl:apply-templates select="ogc:formattedref"/>
711
+ <xsl:call-template name="processBibitem"/>
803
712
  </fo:block>
804
713
  </fo:list-item-body>
805
714
  </fo:list-item>
806
715
  </fo:list-block>
807
716
  </xsl:template>
808
717
 
809
- <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem" mode="contents"/> [position() &gt; 1] -->
810
718
  <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem" mode="contents"/>
811
719
 
812
- <!-- <xsl:template match="ogc:references[@id = '_bibliography']/ogc:bibitem/ogc:title"> [position() &gt; 1]-->
813
- <xsl:template match="ogc:references[not(@normative='true')]/ogc:bibitem/ogc:title">
720
+ <xsl:template match="ogc:bibitem/ogc:title">
814
721
  <fo:inline font-style="italic">
815
722
  <xsl:apply-templates/>
816
723
  </fo:inline>
@@ -2306,14 +2213,36 @@
2306
2213
  <fo:table-cell>
2307
2214
  <fo:block>
2308
2215
 
2309
-
2216
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2217
+ <xsl:if test="local-name(*[1]) != 'stem'">
2218
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2219
+ </xsl:if>
2220
+ </xsl:if> -->
2310
2221
 
2311
2222
  <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2312
2223
 
2313
2224
  </fo:block>
2314
2225
  </fo:table-cell>
2315
2226
  </fo:table-row>
2316
-
2227
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2228
+ <xsl:if test="local-name(*[1]) = 'stem'">
2229
+ <fo:table-row>
2230
+ <fo:table-cell>
2231
+ <fo:block margin-top="6pt">
2232
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2233
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2234
+ </xsl:if>
2235
+ <xsl:text>&#xA0;</xsl:text>
2236
+ </fo:block>
2237
+ </fo:table-cell>
2238
+ <fo:table-cell>
2239
+ <fo:block>
2240
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2241
+ </fo:block>
2242
+ </fo:table-cell>
2243
+ </fo:table-row>
2244
+ </xsl:if>
2245
+ </xsl:if> -->
2317
2246
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2318
2247
  <xsl:apply-templates/>
2319
2248
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
@@ -3075,22 +3004,30 @@
3075
3004
  </fo:block>
3076
3005
  </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3077
3006
  <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3007
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3008
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3009
+ </xsl:if>
3078
3010
  <fo:block-container margin-left="0mm" margin-right="0mm">
3079
- <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
3011
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="1pt solid black">
3012
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3013
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3014
+ </xsl:if>
3080
3015
  <xsl:variable name="simple-table">
3081
3016
  <xsl:call-template name="getSimpleTable"/>
3082
3017
  </xsl:variable>
3083
3018
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3084
3019
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3085
- <fo:table-column column-width="35mm"/>
3086
- <fo:table-column column-width="115mm"/>
3020
+ <!-- <fo:table-column column-width="35mm"/>
3021
+ <fo:table-column column-width="115mm"/> -->
3022
+ <fo:table-column column-width="25%"/>
3023
+ <fo:table-column column-width="75%"/>
3087
3024
  </xsl:if>
3088
3025
  <xsl:apply-templates mode="requirement"/>
3089
3026
  </fo:table>
3090
3027
  <!-- fn processing -->
3091
3028
  <xsl:if test=".//*[local-name() = 'fn']">
3092
3029
  <xsl:for-each select="*[local-name() = 'tbody']">
3093
- <fo:block font-size="90%" border-bottom="1.pt solid black">
3030
+ <fo:block font-size="90%" border-bottom="1pt solid black">
3094
3031
  <xsl:call-template name="fn_display"/>
3095
3032
  </fo:block>
3096
3033
  </xsl:for-each>
@@ -3106,17 +3043,20 @@
3106
3043
  <xsl:apply-templates mode="requirement"/>
3107
3044
  </fo:table-body>
3108
3045
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3109
- <fo:table-row>
3046
+ <fo:table-row height="7mm">
3047
+ <xsl:if test="parent::*[local-name()='thead'] and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission'])">
3048
+ <xsl:attribute name="border">1pt solid black</xsl:attribute>
3049
+ </xsl:if>
3110
3050
  <xsl:apply-templates mode="requirement"/>
3111
3051
  </fo:table-row>
3112
3052
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3113
- <fo:table-cell text-align="{@align}">
3053
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3114
3054
  <xsl:attribute name="text-align">
3115
3055
  <xsl:choose>
3116
3056
  <xsl:when test="@align">
3117
3057
  <xsl:value-of select="@align"/>
3118
3058
  </xsl:when>
3119
- <xsl:otherwise>center</xsl:otherwise>
3059
+ <xsl:otherwise>left</xsl:otherwise>
3120
3060
  </xsl:choose>
3121
3061
  </xsl:attribute>
3122
3062
  <xsl:if test="@colspan">
@@ -3130,21 +3070,25 @@
3130
3070
  </xsl:attribute>
3131
3071
  </xsl:if>
3132
3072
 
3133
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3073
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3134
3074
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3135
3075
  <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
3136
3076
  </xsl:if>
3137
3077
  <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
3138
3078
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3139
3079
  <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3140
- </xsl:if>
3080
+ </xsl:if> -->
3141
3081
 
3142
3082
  <fo:block>
3143
3083
  <xsl:apply-templates/>
3144
3084
  </fo:block>
3145
3085
  </fo:table-cell>
3146
3086
  </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3147
- <fo:table-cell text-align="{@align}">
3087
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3088
+ <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3089
+ <xsl:attribute name="padding">0mm</xsl:attribute>
3090
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
3091
+ </xsl:if>
3148
3092
  <xsl:attribute name="text-align">
3149
3093
  <xsl:choose>
3150
3094
  <xsl:when test="@align">
@@ -3164,24 +3108,25 @@
3164
3108
  </xsl:attribute>
3165
3109
  </xsl:if>
3166
3110
 
3167
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3111
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3168
3112
  <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
3169
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3170
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
3113
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3114
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
3171
3115
  <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3172
3116
  </xsl:if>
3173
- </xsl:if>
3117
+ </xsl:if> -->
3118
+ <!-- 2nd line and below -->
3174
3119
 
3175
3120
  <fo:block>
3176
3121
  <xsl:apply-templates/>
3177
3122
  </fo:block>
3178
3123
  </fo:table-cell>
3179
3124
  </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3180
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
3125
+ <fo:block font-size="11pt" font-weight="bold"> <!-- margin-bottom="4pt" text-align="center" -->
3181
3126
  <xsl:apply-templates/>
3182
3127
  </fo:block>
3183
- </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3184
- <fo:block margin-bottom="10pt">
3128
+ </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3129
+ <fo:block> <!-- margin-bottom="10pt" -->
3185
3130
  <xsl:apply-templates/>
3186
3131
  </fo:block>
3187
3132
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
@@ -3522,6 +3467,195 @@
3522
3467
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3523
3468
  <fo:block><xsl:apply-templates/></fo:block>
3524
3469
  </fo:table-cell>
3470
+ </xsl:template><xsl:template name="processBibitem">
3471
+
3472
+ <xsl:choose>
3473
+ <xsl:when test="*[local-name() = 'formattedref']">
3474
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
3475
+ </xsl:when>
3476
+ <xsl:otherwise>
3477
+ <xsl:variable name="personalAuthors">
3478
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'person']">
3479
+ <xsl:call-template name="processPersonalAuthor"/>
3480
+ </xsl:for-each>
3481
+ <xsl:if test="not(*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'person'])">
3482
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='editor']/*[local-name() = 'person']">
3483
+ <xsl:call-template name="processPersonalAuthor"/>
3484
+ </xsl:for-each>
3485
+ </xsl:if>
3486
+ </xsl:variable>
3487
+
3488
+ <xsl:variable name="city" select="*[local-name() = 'place']"/>
3489
+ <xsl:variable name="year">
3490
+ <xsl:choose>
3491
+ <xsl:when test="*[local-name() = 'date'][@type = 'published']">
3492
+ <xsl:for-each select="*[local-name() = 'date'][@type = 'published']">
3493
+ <xsl:call-template name="renderDate"/>
3494
+ </xsl:for-each>
3495
+ </xsl:when>
3496
+ <xsl:when test="*[local-name() = 'date'][@type = 'issued']">
3497
+ <xsl:for-each select="*[local-name() = 'date'][@type = 'issued']">
3498
+ <xsl:call-template name="renderDate"/>
3499
+ </xsl:for-each>
3500
+ </xsl:when>
3501
+ <xsl:when test="*[local-name() = 'date'][@type = 'circulated']">
3502
+ <xsl:for-each select="*[local-name() = 'date'][@type = 'circulated']">
3503
+ <xsl:call-template name="renderDate"/>
3504
+ </xsl:for-each>
3505
+ </xsl:when>
3506
+ <xsl:otherwise>
3507
+ <xsl:for-each select="*[local-name() = 'date']">
3508
+ <xsl:call-template name="renderDate"/>
3509
+ </xsl:for-each>
3510
+ </xsl:otherwise>
3511
+ </xsl:choose>
3512
+ </xsl:variable>
3513
+
3514
+ <xsl:variable name="uri" select="*[local-name() = 'uri']"/>
3515
+
3516
+
3517
+ <!-- citation structure:
3518
+ {personal names | organisation}: {document identifier}, {title}. {publisher}, {city} ({year})
3519
+ -->
3520
+
3521
+ <!-- Author(s) -->
3522
+ <xsl:choose>
3523
+ <xsl:when test="xalan:nodeset($personalAuthors)//author">
3524
+ <xsl:for-each select="xalan:nodeset($personalAuthors)//author">
3525
+ <xsl:apply-templates/>
3526
+ <xsl:if test="position() != last()">, </xsl:if>
3527
+ </xsl:for-each>
3528
+ <xsl:text>: </xsl:text>
3529
+ </xsl:when>
3530
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'abbreviation']">
3531
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'abbreviation']">
3532
+ <xsl:value-of select="."/>
3533
+ <xsl:if test="position() != last()">/</xsl:if>
3534
+ </xsl:for-each>
3535
+ <xsl:text>: </xsl:text>
3536
+ </xsl:when>
3537
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'name']">
3538
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'name']">
3539
+ <xsl:value-of select="."/>
3540
+ <xsl:if test="position() != last()">, </xsl:if>
3541
+ </xsl:for-each>
3542
+ <xsl:text>: </xsl:text>
3543
+ </xsl:when>
3544
+ </xsl:choose>
3545
+
3546
+
3547
+ <xsl:variable name="document_identifier">
3548
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
3549
+ <xsl:choose>
3550
+ <xsl:when test="normalize-space($_doc_ident) != ''">
3551
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
3552
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
3553
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3554
+ </xsl:if>
3555
+ <xsl:value-of select="$_doc_ident"/>
3556
+ </xsl:when>
3557
+ <xsl:otherwise>
3558
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
3559
+ <xsl:if test="$type != ''">
3560
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3561
+ </xsl:if>
3562
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
3563
+ </xsl:otherwise>
3564
+ </xsl:choose>
3565
+ </xsl:variable>
3566
+
3567
+ <xsl:value-of select="$document_identifier"/>
3568
+
3569
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
3570
+
3571
+ <xsl:variable name="isDraft">
3572
+ <xsl:variable name="stage" select="normalize-space(*[local-name() = 'status']/*[local-name() = 'stage'])"/>
3573
+ <xsl:if test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization'][*[local-name() = 'name']/text() = 'Open Geospatial Consortium'] and $stage != '' and $stage != 'published' and $stage != 'deprecated' and $stage != 'retired'">true</xsl:if>
3574
+ </xsl:variable>
3575
+
3576
+ <xsl:if test="$isDraft = 'true'">
3577
+ <xsl:text> (Draft)</xsl:text>
3578
+ </xsl:if>
3579
+
3580
+ <xsl:text>, </xsl:text>
3581
+
3582
+ <xsl:choose>
3583
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
3584
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
3585
+ </xsl:when>
3586
+ <xsl:otherwise>
3587
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
3588
+ </xsl:otherwise>
3589
+ </xsl:choose>
3590
+
3591
+ <xsl:text>. </xsl:text>
3592
+
3593
+ <xsl:if test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'name']">
3594
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'name']">
3595
+ <xsl:value-of select="."/>
3596
+ <xsl:if test="position() != last()">, </xsl:if>
3597
+ </xsl:for-each>
3598
+ <xsl:if test="normalize-space($city) != ''">, </xsl:if>
3599
+ </xsl:if>
3600
+
3601
+ <xsl:value-of select="$city"/>
3602
+
3603
+ <xsl:if test="(*[local-name() = 'contributor'][*[local-name() = 'role']/@type = 'publisher']/*[local-name() = 'organization']/*[local-name() = 'name'] or normalize-space($city) != '') and normalize-space($year) != ''">
3604
+ <xsl:text> </xsl:text>
3605
+ </xsl:if>
3606
+
3607
+ <xsl:if test="normalize-space($year) != ''">
3608
+ <xsl:text>(</xsl:text>
3609
+ <xsl:value-of select="$year"/>
3610
+ <xsl:text>). </xsl:text>
3611
+ </xsl:if>
3612
+
3613
+ <xsl:if test="normalize-space($uri) != ''">
3614
+ <xsl:text> </xsl:text>
3615
+ <fo:basic-link external-destination="{$uri}" fox:alt-text="{$uri}">
3616
+ <xsl:value-of select="$uri"/>
3617
+ </fo:basic-link>
3618
+ </xsl:if>
3619
+
3620
+ </xsl:otherwise>
3621
+ </xsl:choose>
3622
+
3623
+ </xsl:template><xsl:template name="processPersonalAuthor">
3624
+ <xsl:choose>
3625
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
3626
+ <author>
3627
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'completename']"/>
3628
+ </author>
3629
+ </xsl:when>
3630
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'initial']">
3631
+ <author>
3632
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
3633
+ <xsl:text> </xsl:text>
3634
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'initial']" mode="strip"/>
3635
+ </author>
3636
+ </xsl:when>
3637
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'forename']">
3638
+ <author>
3639
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
3640
+ <xsl:text> </xsl:text>
3641
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'forename']" mode="strip"/>
3642
+ </author>
3643
+ </xsl:when>
3644
+ <xsl:otherwise>
3645
+ <xsl:apply-templates/>
3646
+ </xsl:otherwise>
3647
+ </xsl:choose>
3648
+ </xsl:template><xsl:template name="renderDate">
3649
+ <xsl:if test="normalize-space(*[local-name() = 'on']) != ''">
3650
+ <xsl:value-of select="*[local-name() = 'on']"/>
3651
+ </xsl:if>
3652
+ <xsl:if test="normalize-space(*[local-name() = 'from']) != ''">
3653
+ <xsl:value-of select="concat(*[local-name() = 'from'], '–', *[local-name() = 'to'])"/>
3654
+ </xsl:if>
3655
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'initial']/text()" mode="strip">
3656
+ <xsl:value-of select="translate(.,'. ','')"/>
3657
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
3658
+ <xsl:value-of select="substring(.,1,1)"/>
3525
3659
  </xsl:template><xsl:template name="convertDate">
3526
3660
  <xsl:param name="date"/>
3527
3661
  <xsl:param name="format" select="'short'"/>