I've run across this issue in a different context, but can't figure out
how to apply it here.
I have this function (within a large stylesheet). It works if I
comment out the two lines indicated with the comments, but I get a "E
net.sf.saxon.xpath.DynamicError: A sequence of more than one item is
not allowed as the result of function bib:reftype()" error otherwise.
Is there some way to get this to work? I'm not really sure how much of
the related code I need to show to have this make any sense!
<xsl:function name="bib:reftype" as="xs:string">
<xsl:param name="bibref" as="element(mods:mods)?"/>
<xsl:choose>
<xsl:when test="$bibref/mods:relatedItem/@type = 'host'">
<xsl:variable name="issuance"
select="$bibref/mods:relatedItem/mods:originInfo/mods:issuance"/>
<xsl:choose>
<xsl:when test="bib:refclass($bibref) = 'part-inSerial'">
<xsl:text>article</xsl:text>
<!-- this code introduces a sequence error; don't know why
-->
<xsl:text>-</xsl:text>
<xsl:value-of select="$bibref/mods:relatedItem/mods:genre"/>
</xsl:when>
<xsl:when test="bib:refclass($bibref) = 'part-inMonograph'">
<xsl:choose>
<xsl:when test="$bibref/mods:genre">
<xsl:value-of select="$bibref/mods:genre"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>chapter</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$bibref/mods:genre"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>book</xsl:otherwise>
</xsl:choose>
</xsl:function>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--