lib/isodoc/un/un.plenary-attachment.xsl in metanorma-un-0.5.12 vs lib/isodoc/un/un.plenary-attachment.xsl in metanorma-un-0.5.13
- old
+ new
@@ -1698,202 +1698,230 @@
</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"/> -->
<xsl:call-template name="add-zero-spaces-java"/>
</xsl:template><xsl:template match="*[local-name()='table']" name="table">
- <xsl:variable name="simple-table">
- <xsl:call-template name="getSimpleTable"/>
- </xsl:variable>
+ <xsl:variable name="table">
+ <xsl:variable name="simple-table">
+ <xsl:call-template name="getSimpleTable"/>
+ </xsl:variable>
-
-
-
- <!-- <xsl:if test="$namespace = 'bipm'">
- <fo:block> </fo:block>
- </xsl:if> -->
-
- <!-- $namespace = 'iso' or -->
-
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
-
-
-
- <xsl:call-template name="fn_name_display"/>
-
-
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
-
- <!-- <xsl:variable name="cols-count">
- <xsl:choose>
- <xsl:when test="*[local-name()='thead']">
- <xsl:call-template name="calculate-columns-numbers">
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="calculate-columns-numbers">
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable> -->
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
-
-
-
- <xsl:variable name="colwidths">
- <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
- <xsl:call-template name="calculate-column-widths">
- <xsl:with-param name="cols-count" select="$cols-count"/>
- <xsl:with-param name="table" select="$simple-table"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
-
- <!-- <xsl:variable name="colwidths2">
- <xsl:call-template name="calculate-column-widths">
- <xsl:with-param name="cols-count" select="$cols-count"/>
- </xsl:call-template>
- </xsl:variable> -->
-
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
-
- <xsl:variable name="margin-left">
- <xsl:choose>
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) > 75">15</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
-
-
- <xsl:attribute name="margin-bottom">18pt</xsl:attribute>
- <xsl:attribute name="font-size">8pt</xsl:attribute>
-
+ <!-- <xsl:if test="$namespace = 'bipm'">
+ <fo:block> </fo:block>
+ </xsl:if> -->
+ <!-- $namespace = 'iso' or -->
-
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
+
+ <xsl:call-template name="fn_name_display"/>
+
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
+ <!-- <xsl:variable name="cols-count">
+ <xsl:choose>
+ <xsl:when test="*[local-name()='thead']">
+ <xsl:call-template name="calculate-columns-numbers">
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="calculate-columns-numbers">
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable> -->
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
- <xsl:variable name="table_attributes">
- <attribute name="table-layout">fixed</attribute>
- <attribute name="width">
- <xsl:choose>
- <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
- <xsl:otherwise>100%</xsl:otherwise>
- </xsl:choose>
- </attribute>
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
+
+ <xsl:variable name="colwidths">
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
+ <xsl:call-template name="calculate-column-widths">
+ <xsl:with-param name="cols-count" select="$cols-count"/>
+ <xsl:with-param name="table" select="$simple-table"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
+
+ <!-- <xsl:variable name="colwidths2">
+ <xsl:call-template name="calculate-column-widths">
+ <xsl:with-param name="cols-count" select="$cols-count"/>
+ </xsl:call-template>
+ </xsl:variable> -->
+
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
+
+ <xsl:variable name="margin-left">
+ <xsl:choose>
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) > 75">15</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
+
+
+ <xsl:attribute name="margin-bottom">18pt</xsl:attribute>
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
+
-
-
- <attribute name="border-top">0.5pt solid black</attribute>
-
+
-
- </xsl:variable>
-
-
- <fo:table id="{@id}" table-omit-footer-at-break="true">
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
- <xsl:attribute name="{@name}">
- <xsl:value-of select="."/>
- </xsl:attribute>
- </xsl:for-each>
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
- <xsl:if test="$isNoteOrFnExist = 'true'">
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
- </xsl:if>
- <xsl:choose>
- <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
- <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
- <fo:table-column column-width="{@width}"/>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <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>
- <xsl:otherwise>
- <fo:table-column column-width="proportional-column-width({.})"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates/>
- </xsl:otherwise>
- </xsl:choose>
+ <xsl:variable name="table_width">
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
+
+
+
+ <xsl:choose>
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+ <xsl:otherwise>100%</xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:variable>
- </fo:table>
-
- <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
- <xsl:call-template name="insertTableFooterInSeparateTable">
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
- <xsl:with-param name="colwidths" select="$colwidths"/>
- <xsl:with-param name="colgroup" select="$colgroup"/>
- </xsl:call-template>
- </xsl:for-each>
-
- <!-- insert footer as table -->
- <!-- <fo:table>
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
- <xsl:attribute name="{@name}">
- <xsl:value-of select="."/>
- </xsl:attribute>
- </xsl:for-each>
+ <xsl:variable name="table_attributes">
+ <attribute name="table-layout">fixed</attribute>
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
+
+
+
+
+
+
+
+ <attribute name="border-top">0.5pt solid black</attribute>
+
+
+
+
+ </xsl:variable>
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
+
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
+
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
+ <xsl:attribute name="{@name}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
+ <xsl:if test="$isNoteOrFnExist = 'true'">
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
+ </xsl:if>
+
<xsl:choose>
- <xsl:when test=". = 1 or . = 0">
- <fo:table-column column-width="proportional-column-width(2)"/>
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
+ <fo:table-column column-width="{@width}"/>
+ </xsl:for-each>
</xsl:when>
<xsl:otherwise>
- <fo:table-column column-width="proportional-column-width({.})"/>
+ <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>
+ <xsl:otherwise>
+ <fo:table-column column-width="proportional-column-width({.})"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
</xsl:otherwise>
</xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </fo:table>
+
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
+ <xsl:call-template name="insertTableFooterInSeparateTable">
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
+ <xsl:with-param name="colwidths" select="$colwidths"/>
+ <xsl:with-param name="colgroup" select="$colgroup"/>
+ </xsl:call-template>
</xsl:for-each>
- </fo:table>-->
-
-
-
-
-
- </fo:block-container>
+
+ <!-- insert footer as table -->
+ <!-- <fo:table>
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
+ <xsl:attribute name="{@name}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+
+ <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>
+ <xsl:otherwise>
+ <fo:table-column column-width="proportional-column-width({.})"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </fo:table>-->
+
+
+
+
+
+ </fo:block-container>
+ </xsl:variable>
+
+
+
+ <xsl:choose>
+ <xsl:when test="@width">
+
+ <!-- centered table when table name is centered (see table-name-style) -->
+
+
+
+ <xsl:copy-of select="$table"/>
+
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$table"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
</xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
<xsl:if test="normalize-space() != ''">
<fo:block xsl:use-attribute-sets="table-name-style">
@@ -2734,11 +2762,11 @@
<xsl:call-template name="calculate-column-widths">
<xsl:with-param name="cols-count" select="2"/>
<xsl:with-param name="table" select="$html-table"/>
</xsl:call-template>
</xsl:variable>
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
<xsl:variable name="maxlength_dt">
<xsl:call-template name="getMaxLength_dt"/>
</xsl:variable>
<xsl:call-template name="setColumnWidth_dl">
<xsl:with-param name="colwidths" select="$colwidths"/>
@@ -2763,18 +2791,27 @@
<fo:table-column column-width="50%"/>
<fo:table-column column-width="50%"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
+ <!-- to set width check most wide chars like `W` -->
<xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) <= 2"> <!-- if dt contains short text like t90, a, etc -->
- <fo:table-column column-width="5%"/>
- <fo:table-column column-width="95%"/>
+ <fo:table-column column-width="7%"/>
+ <fo:table-column column-width="93%"/>
</xsl:when>
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) <= 5"> <!-- if dt contains short text like t90, a, etc -->
- <fo:table-column column-width="10%"/>
- <fo:table-column column-width="90%"/>
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) <= 5"> <!-- if dt contains short text like ABC, etc -->
+ <fo:table-column column-width="15%"/>
+ <fo:table-column column-width="85%"/>
</xsl:when>
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) <= 7"> <!-- if dt contains short text like ABCDEF, etc -->
+ <fo:table-column column-width="20%"/>
+ <fo:table-column column-width="80%"/>
+ </xsl:when>
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) <= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
+ <fo:table-column column-width="25%"/>
+ <fo:table-column column-width="75%"/>
+ </xsl:when>
<!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] > 1.7">
<fo:table-column column-width="60%"/>
<fo:table-column column-width="40%"/>
</xsl:when> -->
<xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] > 1.3">
@@ -3076,10 +3113,14 @@
</xsl:for-each>
</xsl:template><xsl:template name="add-zero-spaces-java">
<xsl:param name="text" select="."/>
<!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
<xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1')"/>
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
+ <xsl:param name="text" select="."/>
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1')"/>
</xsl:template><xsl:template name="add-zero-spaces">
<xsl:param name="text" select="."/>
<xsl:variable name="zero-space-after-chars">-</xsl:variable>
<xsl:variable name="zero-space-after-dot">.</xsl:variable>
<xsl:variable name="zero-space-after-colon">:</xsl:variable>
@@ -3336,10 +3377,15 @@
</xsl:template><xsl:template match="mathml:mtext" mode="mathml">
<xsl:copy>
<!-- replace start and end spaces to non-break space -->
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
</xsl:copy>
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
+ </xsl:copy>
+ <mathml:mspace width="0.5ex"/>
</xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
<xsl:variable name="target">
<xsl:choose>
<xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
<xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
@@ -3357,11 +3403,14 @@
</xsl:when>
<xsl:otherwise>
<fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
<xsl:choose>
<xsl:when test="normalize-space(.) = ''">
- <xsl:value-of select="$target"/>
+ <!-- <xsl:value-of select="$target"/> -->
+ <xsl:call-template name="add-zero-spaces-link-java">
+ <xsl:with-param name="text" select="$target"/>
+ </xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
@@ -3841,10 +3890,12 @@
</xsl:copy>
</xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
<xsl:copy>
<xsl:apply-templates mode="contents_item"/>
</xsl:copy>
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
+ <xsl:copy-of select="."/>
</xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
<xsl:text> </xsl:text>
</xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
<fo:block-container margin-left="0mm">
@@ -4239,15 +4290,17 @@
<xsl:if test="not(ancestor::*[local-name() = 'table'])">
<xsl:attribute name="margin-left">5mm</xsl:attribute>
</xsl:if>
</xsl:if>
+
<fo:block-container margin-left="0mm">
<fo:block xsl:use-attribute-sets="quote-style">
<!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
- <xsl:apply-templates select="./*[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
+
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
</fo:block>
<xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
<fo:block xsl:use-attribute-sets="quote-source-style">
<!-- — ISO, ISO 7301:2011, Clause 1 -->
<xsl:apply-templates select="*[local-name() = 'author']"/>
@@ -4665,20 +4718,20 @@
<xsl:param name="sorting" select="'true'"/>
<xsl:param name="charAtEnd" select="'.'"/>
<xsl:param name="charDelim" select="', '"/>
<xsl:choose>
<xsl:when test="$sorting = 'true' or $sorting = 'yes'">
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
<xsl:sort data-type="text" order="ascending"/>
<xsl:call-template name="insertKeyword">
<xsl:with-param name="charAtEnd" select="$charAtEnd"/>
<xsl:with-param name="charDelim" select="$charDelim"/>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
<xsl:call-template name="insertKeyword">
<xsl:with-param name="charAtEnd" select="$charAtEnd"/>
<xsl:with-param name="charDelim" select="$charDelim"/>
</xsl:call-template>
</xsl:for-each>
@@ -4691,10 +4744,13 @@
<xsl:choose>
<xsl:when test="position() != last()"><xsl:value-of select="$charDelim"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
</xsl:choose>
</xsl:template><xsl:template name="addPDFUAmeta">
+ <xsl:variable name="lang">
+ <xsl:call-template name="getLang"/>
+ </xsl:variable>
<fo:declarations>
<pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
<pdf:dictionary type="normal" key="ViewerPreferences">
<pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
</pdf:dictionary>
@@ -4703,17 +4759,20 @@
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
<!-- Dublin Core properties go here -->
<dc:title>
<xsl:variable name="title">
-
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en' and @type = 'main']"/>
-
-
-
-
-
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
+
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
+
+
+
+
+
+
+ </xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:when test="normalize-space($title) != ''">
<xsl:value-of select="$title"/>
</xsl:when>
@@ -4721,20 +4780,24 @@
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</dc:title>
<dc:creator>
-
-
-
- </dc:creator>
- <dc:description>
- <xsl:variable name="abstract">
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
+ <xsl:if test="position() != last()">; </xsl:if>
+ </xsl:for-each>
- <xsl:copy-of select="/*/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
+ </xsl:for-each>
+ </dc:creator>
+ <dc:description>
+ <xsl:variable name="abstract">
+
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
</xsl:variable>
<xsl:value-of select="normalize-space($abstract)"/>
</dc:description>
\ No newline at end of file