Re: Var references in "match" attribute of xsl:template?

Subject: Re: Var references in "match" attribute of xsl:template?
From: dkarr@xxxxxxxx (David M. Karr)
Date: 10 Nov 2000 12:05:37 -0800
>>>>> "Jeni" == Jeni Tennison <mail@xxxxxxxxxxxxxxxx> 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@xxxxxxxx  ; 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


Current Thread