I can chime in on the subject of switching from XSLT 1.0 to XSLT 2.0 for serving up your finding aids. While people usually (logically) assume that if there is a 1.0 and a 2.0 of something, eventually everyone will switch to 2.0, that is NOT the case with XSLT. The main reason you would not want to use XSLT 2.0 for serving up finding aids is, as you said, that there is no browser support for 2.0, meaning the browser cannot transform your XML for you. You would have to transform all your XML files to HTML files yourself and then stick those HTML files out there on the web. That's not a total deal breaker of course, it just makes things more complicated. As an example, the Southern Historical Collection at UNC-Chapel Hill moved to XSLT 2.0 in 2009 for finding aids because they had some things they wanted to do that required 2.0 capabilities and they were willing to trade off the browser transformation. They have a script they can run that regenerates their HTML from XML for them. However, not only is there currently no browser support for XSLT 2.0, there will almost certainly never be any browser support for it. While Microsoft originally had plans to support XSLT 2.0 in the browser, they officially abandoned these plans years ago and no other browser had plans to try supporting it. The only processor that supports transformation of 2.0 is Saxon, created and maintained by Michael Kay (editor of the W3C spec for XSLT 2.0) himself. It requires either Java or Microsoft.NET. So in fact as far as anyone knows, no one had plans to support 2.0 in the future other than Michael Kay. For a technology to only have a single source of support to rely on makes it a pretty iffy option in many people's eyes. XSLT 2.0 is used mostly for transforming XML to XML, as Mark and others are using it. If you're wondering why no one is moving towards supporting 2.0, I think that XSLT was missing some crucial data functionality in the 1.0 version and while 2.0 provides a lot of awesome new functionality (sequences, grouping, multiple result trees, xpath 2.0, user-defined functions), it came too late and people are moving away from it already. Also, XSLT in general is based on functional programming ideas and is declarative, therefore, unintuitive, to many people with prior training in other programming languages and not really worth the time it would take them to learn. For simple XML changes, other programming languages often have their own libraries for XML that are more convenient to use. That said, I think XSL is very good at fulfilling its intended purpose and there is definitely an enthusiastic base of users out there. If you ever have a tricky XSL problem, consider taking it to the XSL-list (http://www.mulberrytech.com/xsl/xsl-list/). I've always gotten an elegant solution to things that were stumping me there within hours. Michael Kay himself will answer you if no one else does! Joyce On Fri, Jun 3, 2011 at 9:48 AM, Michele R Combs <[log in to unmask]> wrote: > Oh right -- I don't have to test for content, I just test for existence of the element. �Duh. �Thanks :) > > Are you switching to 2.0 for your production version, or just for your own edification and jollification? �According to what I could find out 2.0 isn't widely supported yet (e.g. by browsers), so I'm not sure we want to switch just yet. > > Michele > > -----Original Message----- > From: Encoded Archival Description List [mailto:[log in to unmask]] On Behalf Of Custer, Mark > Sent: Friday, June 03, 2011 9:37 AM > To: [log in to unmask] > Subject: Re: XSLT 1.0 => 2.0 > > Hi Michele, > > I just took a quick glance, and I think that your conditional would be valid if you just remove all of those "string" functions. > > As an aside, I just recently worked on some of my first XSLT 2.0 style sheets, and it was very nice to shorten some code that took up way too many lines in 1.0. �Have fun! > > Mark > > -----Original Message----- > From: Encoded Archival Description List [mailto:[log in to unmask]] On Behalf Of Michele R Combs > Sent: Friday, June 03, 2011 9:13 AM > To: [log in to unmask] > Subject: XSLT 1.0 => 2.0 > > 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> > � � � � � �</a> > � � � � </p> > � � �</xsl:if> > > I've checked the W3C document at http://www.w3.org/TR/xslt20/#incompatibilities (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 > > ++++++++++++++++ > Michele Combs > Librarian for Manuscripts and Archives Processing Special Collections Research Center Syracuse University > 315-443-2081 > [log in to unmask] > -- Joyce Chapman NCSU Libraries Metadata and Cataloging/ Digital Library Initiatives [log in to unmask]