xsl-list
[Top] [All Lists]

functions and sequences

2004-12-12 16:09:20
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>