Skip to content

Commit

Permalink
sts2mn.xsl updated for bibdata, #407
Browse files Browse the repository at this point in the history
  • Loading branch information
Intelligent2013 committed Apr 17, 2024
1 parent 0c1166a commit 36f37f4
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 24 deletions.
13 changes: 0 additions & 13 deletions src/main/resources/sts2mn.adoc.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,6 @@
<xsl:variable name="one_document_" select="count(//standard/front/*[contains(local-name(), '-meta')]) = 1 or //standards-document"/>
<xsl:variable name="one_document" select="normalize-space($one_document_)"/>

<xsl:variable name="language1" select="normalize-space(//standard/front/*/doc-ident/language)"/>
<xsl:variable name="language2" select="normalize-space(//standard/front/*/std-ident/content-language)"/>
<xsl:variable name="language3" select="normalize-space(//standard/front/*/content-language)"/>

<xsl:variable name="language"> <!-- see https://www.niso-sts.org/TagLibrary/niso-sts-TL-1-2-html/element/content-language.html -->
<xsl:choose>
<xsl:when test="$language1 != ''"><xsl:value-of select="$language1"/></xsl:when>
<xsl:when test="$language2 != ''"><xsl:value-of select="$language2"/></xsl:when>
<xsl:when test="$language3 != ''"><xsl:value-of select="$language3"/></xsl:when>
<xsl:otherwise>en</xsl:otherwise>
</xsl:choose>
</xsl:variable>

<xsl:variable name="organization">
<xsl:choose>
<xsl:when test="/standard/front/nat-meta/std-ident/originator = 'PAS'">PAS</xsl:when>
Expand Down
13 changes: 13 additions & 0 deletions src/main/resources/sts2mn.common.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -1558,6 +1558,19 @@
</xsl:if>
</xsl:if>
</xsl:template>

<xsl:variable name="language1" select="normalize-space(//standard/front/*/doc-ident/language)"/>
<xsl:variable name="language2" select="normalize-space(//standard/front/*/std-ident/content-language)"/>
<xsl:variable name="language3" select="normalize-space(//standard/front/*/content-language)"/>

<xsl:variable name="language"> <!-- see https://www.niso-sts.org/TagLibrary/niso-sts-TL-1-2-html/element/content-language.html -->
<xsl:choose>
<xsl:when test="$language1 != ''"><xsl:value-of select="$language1"/></xsl:when>
<xsl:when test="$language2 != ''"><xsl:value-of select="$language2"/></xsl:when>
<xsl:when test="$language3 != ''"><xsl:value-of select="$language3"/></xsl:when>
<xsl:otherwise>en</xsl:otherwise>
</xsl:choose>
</xsl:variable>

<xsl:template name="getLang">
<xsl:param name="fromParent">false</xsl:param>
Expand Down
100 changes: 89 additions & 11 deletions src/main/resources/sts2mn.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@
</xsl:choose>
</xsl:variable>

<xsl:variable name="language" select="//standard/front/*/doc-ident/language"/>

<xsl:variable name="_typestandard">
<xsl:choose>
<xsl:when test="$typestandard = ''">
Expand Down Expand Up @@ -374,6 +372,8 @@

<xsl:apply-templates select="custom-meta-group/custom-meta[meta-name = 'ISBN']/meta-value" mode="bibdata"/>

<xsl:apply-templates select="std-ident/isbn[@publication-format = 'PDF']" mode="bibdata"/>

<!-- docnumber -->
<xsl:apply-templates select="std-ident/doc-number" mode="bibdata"/>

Expand All @@ -392,7 +392,9 @@
</xsl:apply-templates>
</xsl:if>

<xsl:apply-templates select="std-org-group"/>
<xsl:apply-templates select="std-org-group" mode="bibdata"/>

<xsl:apply-templates select="authorization" mode="bibdata"/>

<!-- edition -->
<xsl:apply-templates select="std-ident/edition" mode="bibdata"/>
Expand All @@ -403,6 +405,8 @@
<!-- language -->
<xsl:apply-templates select="content-language" mode="bibdata"/>

<xsl:apply-templates select="abstract" mode="bibdata"/>

<!-- status/stage @abbreviation , substage -->
<xsl:apply-templates select="release-version | doc-ident/release-version" mode="bibdata"/>

Expand Down Expand Up @@ -752,6 +756,12 @@
*[contains(local-name(), '-meta')]/std-ident/std-id-group |
*[contains(local-name(), '-meta')]/std-org-group |
*[contains(local-name(), '-meta')]/meta-note |
*[contains(local-name(), '-meta')]/abstract |
*[contains(local-name(), '-meta')]/isbn |
*[contains(local-name(), '-meta')]/std-ident/isbn |
*[contains(local-name(), '-meta')]/std-ident/issn |
*[contains(local-name(), '-meta')]/accrediting-organization |
*[contains(local-name(), '-meta')]/authorization |
front/notes |
front/sec " mode="bibdata_check"/>

Expand Down Expand Up @@ -808,7 +818,11 @@
<xsl:copy-of select="xalan:nodeset($titles)/*[@type='title-part'][1]"/>
</xsl:variable>

<title language="{@xml:lang}" format="text/plain" type="main">
<xsl:variable name="lang">
<xsl:call-template name="getLang"/>
</xsl:variable>

<title language="{$lang}" format="text/plain" type="main">
<xsl:for-each select="xalan:nodeset($title_components)/*">
<xsl:apply-templates mode="bibdata"/>
<xsl:if test="position() != last()"> — </xsl:if>
Expand Down Expand Up @@ -839,7 +853,11 @@
</xsl:call-template>
</xsl:variable>

<xsl:variable name="lang" select="../@xml:lang"/>
<xsl:variable name="lang">
<xsl:call-template name="getLang">
<xsl:with-param name="fromParent">true</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:for-each select="xalan:nodeset($parts)/*">
<xsl:if test="position() = 1">
<title language="{$lang}" format="text/plain" type="title-intro">
Expand All @@ -861,25 +879,45 @@
</xsl:template>

<xsl:template match="title-wrap/full" mode="bibdata">
<title language="{../@xml:lang}" format="text/plain" type="main">
<xsl:variable name="lang">
<xsl:call-template name="getLang">
<xsl:with-param name="fromParent">true</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<title language="{$lang}" format="text/plain" type="main">
<xsl:apply-templates mode="bibdata"/>
</title>
</xsl:template>

<xsl:template match="title-wrap//intro" mode="bibdata">
<title language="{../@xml:lang}" format="text/plain" type="title-intro">
<xsl:variable name="lang">
<xsl:call-template name="getLang">
<xsl:with-param name="fromParent">true</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<title language="{$lang}" format="text/plain" type="title-intro">
<xsl:apply-templates mode="bibdata"/>
</title>
</xsl:template>

<xsl:template match="title-wrap//main" mode="bibdata">
<title language="{../@xml:lang}" format="text/plain" type="title-main">
<xsl:variable name="lang">
<xsl:call-template name="getLang">
<xsl:with-param name="fromParent">true</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<title language="{$lang}" format="text/plain" type="title-main">
<xsl:apply-templates mode="bibdata"/>
</title>
</xsl:template>

<xsl:template match="title-wrap//compl" mode="bibdata">
<title language="{../@xml:lang}" format="text/plain" type="title-part">
<xsl:variable name="lang">
<xsl:call-template name="getLang">
<xsl:with-param name="fromParent">true</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<title language="{$lang}" format="text/plain" type="title-part">
<xsl:apply-templates mode="bibdata"/>
</title>
</xsl:template>
Expand Down Expand Up @@ -922,6 +960,10 @@
<docidentifier type="ISBN"><xsl:apply-templates mode="bibdata"/></docidentifier>
</xsl:template>

<xsl:template match="std-ident/isbn[@publication-format = 'PDF']" mode="bibdata">
<docidentifier type="ISBN"><xsl:apply-templates mode="bibdata"/></docidentifier>
</xsl:template>

<xsl:template name="processMetadata">
<xsl:variable name="metanorma-extension">
<xsl:apply-templates select="custom-meta-group/custom-meta[meta-name = 'TOC Heading Level']/meta-value" mode="bibdata"/>
Expand All @@ -936,6 +978,9 @@
<xsl:apply-templates select="page-count" mode="bibdata"/>
<xsl:apply-templates select="custom-meta-group/custom-meta[not(meta-name = 'TOC Heading Level' or meta-name = 'ISBN' or meta-name = 'horizontal')]" mode="bibdata"/>
<xsl:apply-templates select="permissions/copyright-statement" mode="bibdata"/>
<xsl:apply-templates select="std-ident/isbn[@publication-format = 'HTML']" mode="bibdata"/>
<xsl:apply-templates select="std-ident/issn" mode="bibdata"/>
<xsl:apply-templates select="accrediting-organization" mode="bibdata"/>
</xsl:variable>
<xsl:if test="xalan:nodeset($metanorma-extension)/*">
<metanorma-extension>
Expand Down Expand Up @@ -1010,6 +1055,18 @@
</semantic-metadata>
</xsl:template>

<xsl:template match="isbn[@publication-format = 'HTML']" mode="bibdata">
<semantic-metadata><isbn-html><xsl:apply-templates mode="bibdata"/></isbn-html></semantic-metadata>
</xsl:template>

<xsl:template match="issn" mode="bibdata">
<semantic-metadata><issn><xsl:apply-templates mode="bibdata"/></issn></semantic-metadata>
</xsl:template>

<xsl:template match="accrediting-organization" mode="bibdata">
<semantic-metadata><accrediting-organization><xsl:apply-templates mode="bibdata"/></accrediting-organization></semantic-metadata>
</xsl:template>

<xsl:template match="iso-meta/std-ident/doc-number | nat-meta/std-ident/doc-number | reg-meta/std-ident/doc-number | std-meta/std-ident/doc-number | std-doc-meta/std-ident/doc-number" mode="bibdata">
<docnumber>
<xsl:apply-templates mode="bibdata"/>
Expand Down Expand Up @@ -1087,7 +1144,7 @@
</xsl:if>
</xsl:template>

<xsl:template match="iso-meta/std-org-group | nat-meta/std-org-group | reg-meta/std-org-group | std-meta/std-org-group | std-doc-meta/std-org-group">
<xsl:template match="iso-meta/std-org-group | nat-meta/std-org-group | reg-meta/std-org-group | std-meta/std-org-group | std-doc-meta/std-org-group" mode="bibdata">
<contributor>
<role>
<xsl:attribute name="type">
Expand All @@ -1113,6 +1170,21 @@
</contributor>
</xsl:template>

<xsl:template match="*[contains(local-name(), '-meta')]/authorization" mode="bibdata">
<contributor>
<role type="authorizer" />
<organization>
<name>
<xsl:apply-templates mode="bibdata"/>
<xsl:apply-templates select="@authorize-acronym" mode="bibdata"/>
</name>
</organization>
</contributor>
</xsl:template>

<xsl:template match="authorization/@authorize-acronym" mode="bibdata">
<xsl:value-of select="concat(', ', .)"/>
</xsl:template>

<xsl:template match="*[self::iso-meta or self::nat-meta or self::reg-meta or self::std-meta or self::std-doc-meta]/std-ident/edition[normalize-space() != '']" mode="bibdata">
<edition>
Expand Down Expand Up @@ -1158,7 +1230,13 @@
</xsl:when>
</xsl:choose>
</xsl:template>


<xsl:template match="*[self::iso-meta or self::nat-meta or self::reg-meta or self::std-meta or self::std-doc-meta]/abstract" mode="bibdata">
<abstract>
<xsl:apply-templates select="*[not(self::title)]"/>
</abstract>
</xsl:template>

<xsl:template match="iso-meta/doc-ident/release-version | nat-meta/doc-ident/release-version | reg-meta/doc-ident/release-version | std-meta/doc-ident/release-version | std-meta/release-version" mode="bibdata">
<xsl:variable name="value" select="java:toUpperCase(java:java.lang.String.new(.))"/>

Expand Down

0 comments on commit 36f37f4

Please sign in to comment.