Just for fun, I took a quick run at converting our style sheets from XSLT1.0 to XSLT2.0 this week and got the following error:

Error on line 451 of eadcbs6-su1.xsl:
  XPTY0004: A sequence of more than one item is not allowed as the first argument of
  string() (<head/>, <p/>)
  at xsl:call-template name="toc" (file:/G:/LIB/Special%20Collections/Digital%20Projects/EAD/saxon/../styles/eadcbs6-su1.xsl#230)
  in built-in template rule
Transformation failed: Run-time errors were reported

Line 451, in context, looks like this:

      <xsl:if test="string(archdesc/acqinfo/*)
      or string(archdesc/processinfo/*)
      or string(archdesc/prefercite/*)
      or string(archdesc/custodialhist/*)
      or string(archdesc/processinfo/*)
      or string(archdesc/appraisal/*)
      or string(archdesc/accruals/*)
      or string(archdesc/*/acqinfo/*)
      or string(archdesc/*/processinfo/*)
      or string(archdesc/*/prefercite/*)
      or string(archdesc/*/custodialhist/*)
      or string(archdesc/*/processinfo/*)
      or string(archdesc/*/appraisal/*)
      or string(archdesc/*/accruals/*)">     <= line 451
         <p class="toclink">
            <a class="toc" href="#adminlink">
               <xsl:text>Administrative Information</xsl:text>

I've checked the W3C document at (which, while not impenetrable, is not exactly crystal clear either) and am not sure what the problem is.  Surely I can test multiple conditions, so is it a syntax thing?


Michele Combs
Librarian for Manuscripts and Archives Processing
Special Collections Research Center
Syracuse University
[log in to unmask]