This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Var references in "match" attribute of xsl:template?
>>>>> "Jeni" == Jeni Tennison <mail@jenitennison.com> writes:
Jeni> David,
>> I vaguely remember I've read that the value of the "match" attribute
>> of "xsl:template" cannot reference a variable in any way. If that's
>> true, then I have to duplicate the domain class name in the
>> "domainClass" setting, and in the top-level "xsl:template" tag. It
>> would be nice if I could define the domain class in a single place,
>> and reference it in all the places it is used. Is there any way to do
>> this?
Jeni> However, I note from your description that:
>> The name of the root tag element is exactly the same as the domain
>> class.
Jeni> By 'root tag element' I guess you mean the document element: the
Jeni> element at the very top of the document tree. If that's the case,
Jeni> then you can always get the name of that element through the XPath:
Jeni> name(/*) [or local-name(/*) if you're using namespaces]
Jeni> i.e. the name of the element that is a child of the root node. You
Jeni> *can* use this expression within the match pattern of a template.
Jeni> You can also match on the document element (the element representing
Jeni> your domain class) with the match pattern:
Jeni> /*
Thanks. Based on this advice, I found I can avoid encoding the name
of the domain class in the XSL completely, by using a top-level match
spec of "/*" and in the template set my "domainClass" variable from
"name()".
--
===============================================================================
David M. Karr ; dkarr@tcsi.com ; w:(425)487-8312 ; TCSI & Best Consulting
Software Engineer ; Unix/Java/C++/X ; BrainBench CJ12P (#12004)
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list