Bruce,
At 01:22 AM 9/16/2004, you wrote:
<reftype name="book">
<title font-style="italic" after=", "/>
<creator>
<names form="full"/>
</creator>
<origin before="(" after="), ">
<place after=":"/>
<publisher/>
</origin>
With this template ...
<xsl:template match="cs:origin">
<xsl:param name="source"/>
<xsl:apply-templates>
<xsl:with-param name="source" select="."/>
</xsl:apply-templates>
</xsl:template>
As you surmised, $source should refer to the node in the mods data, not the
cs data, so this should be
<xsl:template match="cs:origin">
<xsl:param name="source"/>
<xsl:apply-templates>
<xsl:with-param name="source" select="$source"/>
</xsl:apply-templates>
</xsl:template>
As you traverse down the branches of the cs: tree, you need to keep track
of what branch of the mods: tree you were in before you jumped into the
other tree, so that inside these templates you can get their data.
If we could talk this true at a whiteboard I could make this clear in a
minute ... unfortunately, as I said, this processing-two-trees stuff is
like XSLT on steroids.
In any case, yes ...
.... am I right that I am passing cs:origin as the source to the children,
where I really need to be passing the original mods:mods source. A child
looks like:
<xsl:template match="cs:place">
<xsl:param name="source"/>
<xsl:apply-templates select="$source/mods:originInfo/mods:place"/>
</xsl:template>
I'm not sure, but is this where tunneling should come in? And if yes, how
do I actually use it in this context?
Exactly right.
Tunneling parameters would only mean that your cs:origin template need not
actually declare and pass $source, so
<xsl:template match="cs:origin">
<xsl:apply-templates/>
</xsl:template>
(i.e. the built-in template) would work as well as what I have above.
Bob DuCharme has a nice column about tunneling parameters on XML.com:
http://www.xml.com/pub/a/2004/03/24/tr.html
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================