Your code works for me, Charles. (I'm running it as XSLT 2.0 using
Saxon-HE 9.5.1.3J on the commandline.)
HOWEVER, the select= attribute of your <xsl:sort> will try to select *all*
of the <surname> descendants of each child of each <biblStruct>. If
there is more than one, you will get "max 1 item allowed on
xsl:sort/@select" or some such. E.g.
<biblStruct>
<monogr>
<title>Mooses Come Walking</title>
<author>
<persName>
<forename>Arlo</forename> <surname>Guthrie</surname>
</persName>
</author>
<respStmt>
<resp>illustrator</resp>
<persName>
<forename>Alice</forename> <surname>Brock</surname>
</persName>
</respStmt>
<imprint>
<publisher>Chronicle Books</publisher>
<pubPlace>San Francisco</pubPlace>
<date when="1995"/>
</imprint>
</monogr>
<idno type="ISBN">0-8118-1051-8</idno>
</biblStruct>
dies with that kind of message. (Besides, even if it worked, it would
sort differently depending on whether <author> or <respStmt> happened
to appear first, which is fragile. And yes, Alice Brock is the
"Alice" of _Alice's Restaurant_.)
Using TEI-P5 <biblStruct> format, I'm trying to sort a bibliography
by surname. Some sample entries are like this (such that <surname>
falls under varying paths):
<biblStruct
xml:id="Buswell-1989"><monogr><author><surname>Buswell</surname><forename>Robert
E., Jr.</forename></author><title level="m">The Formation of Ch'an
Ideology in China and
Korea</title><imprint><pubPlace>Princeton</pubPlace><publisher>Princeton
UP</publisher><date>1989</date></imprint></monogr></biblStruct>
<biblStruct xml:id="Chan-1967a"><monogr><editor
role="editor"><surname>Chan</surname><forename>Wing-tsit</forename></editor><title
level="m">Neo-Confucian Terms Explained</title><imprint><pubPlace>New
York</pubPlace><publisher>Columbia University
Press</publisher><date>1986</date></imprint></monogr></biblStruct>
<biblStruct
xml:id="Chien-1988"><analytic><author><surname>Ch'ien</surname><forename>Edward
T.</forename></author><title level="a">The Neo-Confucian
Confrontation with Buddhism: A Structural And Historical
Analysis</title></analytic><monogr><title level="j">Journal of
Chinese Philosophy</title><imprint><biblScope
type="vol">15</biblScope><date>1988</date><biblScope
type="pages">347–348</biblScope></imprint></monogr></biblStruct>
My code for handling <biblStruct> has been working fine for a number
of years, but I just recently tried to add the sort by <surname>. The
relevant part of the code looks like this (including my most recent
attempt at sorting, which generates error messages):
<!-- Bibliographical renderings -->
<xsl:template match="TEI//listBibl">
<xsl:for-each select="biblStruct">
<xsl:sort select="*//surname"/>
<p style="text-indent:-10mm;margin-left:10mm">
<xsl:if test="@n">
<span style="font-weight:bold;margin-left:2mm">
<xsl:value-of select="@n"/>
<xsl:text>-	</xsl:text>
</span>
</xsl:if>
<xsl:apply-templates/>
</p>
</xsl:for-each>
</xsl:template>
Any advice would be greatly appreciated. Once I get this working, I'd
also like to do a second sort, based on the <title>. This is to get
output in Chicago Full Note style.
Regards,
Chuck
--
---------------------------
A. Charles Muller
Graduate School of Humanities and Sociology
Faculty of Letters
University of Tokyo
7-3-1 Hongō, Bunkyō-ku
Tokyo 113-8654, Japan
Office Phone: 03-5841-3735
Web Site: Resources for East Asian Language and Thought
http://www.acmuller.net
Twitter: @H_Buddhism
--
Syd Bauman, EMT-Paramedic
Senior XML Programmer/Analyst
Northeastern University Women Writers Project
s(_dot_)bauman(_at_)neu(_dot_)edu or
Syd_Bauman(_at_)alumni(_dot_)Brown(_dot_)edu
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--