lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.0 vs lib/isodoc/un/un.recommendation.xsl in metanorma-un-0.5.1
- old
+ new
@@ -15,10 +15,11 @@
<xsl:variable name="contents">
<contents>
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
+ <xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
</contents>
</xsl:variable>
<xsl:variable name="lang">
<xsl:call-template name="getLang"/>
@@ -172,12 +173,12 @@
</fo:block-container>
</fo:static-content>
<xsl:call-template name="insertHeaderPreface"/>
<xsl:call-template name="insertFooter"/>
<fo:flow flow-name="xsl-region-body" text-align="justify">
- <fo:block>
- <xsl:apply-templates select="/un:un-standard/un:preface/*"/>
+ <fo:block>
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="document-preface-master" force-page-count="even" line-height="115%">
@@ -292,10 +293,11 @@
</xsl:if>
<fo:block>
<xsl:apply-templates select="/un:un-standard/un:sections/*"/>
<xsl:apply-templates select="/un:un-standard/un:annex"/>
+ <xsl:apply-templates select="/un:un-standard/un:bibliography/un:references"/>
</fo:block>
<fo:block-container margin-left="50mm" width="30mm" border-bottom="1pt solid black">
<fo:block> </fo:block>
@@ -1190,10 +1192,11 @@
</xsl:attribute-set><xsl:attribute-set name="example-body-style">
+
</xsl:attribute-set><xsl:attribute-set name="example-name-style">
@@ -1209,12 +1212,14 @@
<xsl:attribute name="font-size">10pt</xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
<xsl:attribute name="keep-with-next">always</xsl:attribute>
+
+
</xsl:attribute-set><xsl:attribute-set name="example-p-style">
@@ -1228,10 +1233,12 @@
<xsl:attribute name="margin-top">12pt</xsl:attribute>
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
<xsl:attribute name="margin-left">15mm</xsl:attribute>
+
+
</xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
@@ -1252,10 +1259,11 @@
<xsl:attribute name="margin-top">12pt</xsl:attribute>
<xsl:attribute name="margin-bottom">0pt</xsl:attribute>
<xsl:attribute name="keep-with-next">always</xsl:attribute>
<xsl:attribute name="text-indent">0mm</xsl:attribute>
+
</xsl:attribute-set><xsl:attribute-set name="appendix-style">
</xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
@@ -1371,11 +1379,11 @@
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="margin-bottom">6pt</xsl:attribute>
<xsl:attribute name="keep-with-next">always</xsl:attribute>
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
-
+
</xsl:attribute-set><xsl:attribute-set name="formula-style">
</xsl:attribute-set><xsl:attribute-set name="image-style">
<xsl:attribute name="text-align">center</xsl:attribute>
@@ -1414,11 +1422,47 @@
</xsl:attribute-set><xsl:attribute-set name="deprecates-style">
</xsl:attribute-set><xsl:attribute-set name="definition-style">
- </xsl:attribute-set><xsl:template match="text()">
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
+
+ <!-- Normative references -->
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
+ <!-- Terms and definitions -->
+ <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"/>
+ <!-- Another main sections -->
+ <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"/>
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
+ <!-- Bibliography -->
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
+ </xsl:template><xsl:template name="processMainSectionsDefault">
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
+
+ <!-- Normative references -->
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
+ <!-- Terms and definitions -->
+ <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']]"/>
+ <!-- Another main sections -->
+ <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'])]"/>
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
+ <!-- Bibliography -->
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
+ </xsl:template><xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template><xsl:template match="*[local-name()='br']">
<xsl:value-of select="$linebreak"/>
</xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
<!-- <xsl:call-template name="add-zero-spaces"/> -->
@@ -1495,10 +1539,11 @@
+
<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">
@@ -1515,10 +1560,11 @@
+
<xsl:for-each select="xalan:nodeset($colwidths)//column">
<xsl:choose>
<xsl:when test=". = 1 or . = 0">
<fo:table-column column-width="proportional-column-width(2)"/>
</xsl:when>
@@ -1765,10 +1811,18 @@
<xsl:apply-templates/>
</fo:table-row>
</xsl:template><xsl:template match="*[local-name()='th']">
<fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
+ <xsl:attribute name="text-align">
+ <xsl:choose>
+ <xsl:when test="@align">
+ <xsl:value-of select="@align"/>
+ </xsl:when>
+ <xsl:otherwise>center</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
@@ -1789,10 +1843,11 @@
</xsl:if>
</xsl:if>
<xsl:attribute name="text-indent">0mm</xsl:attribute>
+
<xsl:if test="@colspan">
<xsl:attribute name="number-columns-spanned">
<xsl:value-of select="@colspan"/>
</xsl:attribute>
</xsl:if>
@@ -1805,10 +1860,18 @@
<xsl:apply-templates/>
</fo:block>
</fo:table-cell>
</xsl:template><xsl:template match="*[local-name()='td']">
<fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
+ <xsl:attribute name="text-align">
+ <xsl:choose>
+ <xsl:when test="@align">
+ <xsl:value-of select="@align"/>
+ </xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
@@ -3033,10 +3096,121 @@
</xsl:if>
</xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'label']">
<fo:block xsl:use-attribute-sets="recommendation-label-style">
<xsl:apply-templates/>
</fo:block>
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
+ <fo:block-container margin-left="0mm" margin-right="0mm">
+ <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
+ <xsl:variable name="simple-table">
+ <xsl:call-template name="getSimpleTable"/>
+ </xsl:variable>
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
+ <fo:table-column column-width="35mm"/>
+ <fo:table-column column-width="115mm"/>
+ </xsl:if>
+ <xsl:apply-templates mode="requirement"/>
+ </fo:table>
+ <!-- fn processing -->
+ <xsl:if test=".//*[local-name() = 'fn']">
+ <xsl:for-each select="*[local-name() = 'tbody']">
+ <fo:block font-size="90%" border-bottom="1.pt solid black">
+ <xsl:call-template name="fn_display"/>
+ </fo:block>
+ </xsl:for-each>
+ </xsl:if>
+ </fo:block-container>
+ </fo:block-container>
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
+ <fo:table-header>
+ <xsl:apply-templates mode="requirement"/>
+ </fo:table-header>
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
+ <fo:table-body>
+ <xsl:apply-templates mode="requirement"/>
+ </fo:table-body>
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
+ <fo:table-row>
+ <xsl:apply-templates mode="requirement"/>
+ </fo:table-row>
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
+ <fo:table-cell text-align="{@align}">
+ <xsl:attribute name="text-align">
+ <xsl:choose>
+ <xsl:when test="@align">
+ <xsl:value-of select="@align"/>
+ </xsl:when>
+ <xsl:otherwise>center</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="@colspan">
+ <xsl:attribute name="number-columns-spanned">
+ <xsl:value-of select="@colspan"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@rowspan">
+ <xsl:attribute name="number-rows-spanned">
+ <xsl:value-of select="@rowspan"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
+ </xsl:if>
+
+ <fo:block>
+ <xsl:apply-templates/>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
+ <fo:table-cell text-align="{@align}">
+ <xsl:attribute name="text-align">
+ <xsl:choose>
+ <xsl:when test="@align">
+ <xsl:value-of select="@align"/>
+ </xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="@colspan">
+ <xsl:attribute name="number-columns-spanned">
+ <xsl:value-of select="@colspan"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@rowspan">
+ <xsl:attribute name="number-rows-spanned">
+ <xsl:value-of select="@rowspan"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+
+ <fo:block>
+ <xsl:apply-templates/>
+ </fo:block>
+ </fo:table-cell>
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
+ <xsl:apply-templates/>
+ </fo:block>
+ </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
+ <fo:block margin-bottom="10pt">
+ <xsl:apply-templates/>
+ </fo:block>
</xsl:template><xsl:template match="*[local-name() = 'termexample']">
<fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
<xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
<xsl:apply-templates/>
</fo:block>
@@ -3317,11 +3491,11 @@
</fo:block>
</xsl:template><xsl:template match="*[local-name() = 'definitions']">
<fo:block id="{@id}">
<xsl:apply-templates/>
</fo:block>
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
<fo:block id="{@id}">
<xsl:apply-templates/>
</fo:block>
</xsl:template><xsl:template match="*[local-name() = 'annex']">
@@ -3574,10 +3748,11 @@
-
+
+
</xsl:variable>
<xsl:if test="$documentNS != $XSLNS">
<xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
</xsl:if>
</xsl:template><xsl:template name="getLanguage">
\ No newline at end of file