Hi Long,
At 03:53 PM 1/10/2003, you wrote:
I have the following code which does not work.
if I replace the mode="$BID" with mode="id1" in line 4, it works.
so my question is
does the mode attribute take a variable?
No, it doesn't (too bad).
if it does not, what should I do?
You could have a single alternate mode for B (say, call it "id"), and then
differentiate among templates matching your different B elements in their
matches:
<xsl:template match="B[(_at_)id = 'id1']" mode="id">
...
</xsl:template>
<xsl:template match="B[(_at_)id = 'id2']" mode="id">
...
</xsl:template>
...or do any of several other things (for example, xsl:choose) to achieve
the same effect (processing conditioned on the value of the id element).
It may also interest you to know that if these are *real* (i.e.
DTD-declared) ID attributes, you can do
<xsl:template match="id('id1')" mode="id">
...
</xsl:template>
since the id() function (which returns an element by the value of its ID
attribute) can appear in a match pattern. But your attribute needs to be
declared as type ID for this to work.
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
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list