Thanks for the responses, problem solved. Paraphrasing:
If the source XML contains namespace information (xmlns), associate the
namespace ('http://www.loc.gov/mods/v3') with the prefix 'mods' in the
XSLT template. Then prefix all mods elements called by the XSLT with
"mods:", for example:
<xsl:value-of match="mods:mods/mods:subject/mods:topic"/>
A perfect example is given in the first response below.
Regards,
Joseph
Irish Virtual Research Library and Archive
327 James Joyce Library
University College Dublin
Dublin 4
>Take a look at the following from the MODS site:
>http://www.loc.gov/standards/mods/mods.xsl
>This stylesheet converts MODS to a 'simple HTML display'. The opening
>xsl:stylesheet element:
><xsl:stylesheet version="1.0"
>xmlns:xlink="http://www.w3.org/1999/xlink"
>xmlns:mods="http://www.loc.gov/mods/v3"
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>exclude-result-prefixes="mods" >
>associates the namespace ('http://www.loc.gov/mods/v3') with the
>prefix 'mods' you can use to reference elements in the namespace.
>I've always found it useful to start from a known working state, so I
>hope this gets you started.
>Good luck --
>Joe
>>Are you declaring the mods namespace and binding it to a prefix in the
>>stylesheet? E.g. you should have templates with xpaths like
>>"m:titleInfo" where the "m" prefix binds to the correct URI.
>>Bruce
>>>Here's a guess, though: you have xsl templates matching mods
elements, but the templates aren't name-spaced; e.g., you have
>>><xsl:template match="titleInfo"> ...</xsl:template>
>>>which will work fine if you try to match against an un-namespaced
mods record but not a (proper) one in the mods namespace. For that you need
>>><xsl:stylesheet xmlns:mods="http://www.loc.gov/mods/v3">
>>><xsl:template match="mods:titleInfo">...</xsl:template>
>>></xsl:stylesheet>
>>> Dr. Clifford E. Wulfman
>>> Technical Director
>>> Modernist Journals Project
>>> Brown University
|