This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Built-in template rule for attributes


Hello all --

Section 5.8 of the XSLT Rec says that the built-in template rule for text 
nodes and attributes is:

    <xsl:template match="text()|@*">
      <xsl:value-of select="."/>
    </xsl:template>

One subtlety that's always confused me is: Why, given this built-in rule, 
is the value of each attribute *not* copied to the result tree? In other 
words, how is this rule different from one in which the match attribute's 
value is simply "text()" rather than "text()|@*" ?

My understanding is that this built-in rule, together with the one for the 
root and element nodes, applies to all text or attribute nodes that are 
children of any element (per the <xsl:apply-templates> element in the 
root/element node built-in). Since XPath dictates that attributes aren't 
children of the elements to which they apply, I understand why attribute 
values wouldn't be copied. I'm just after the logic, therefore, of 
including the |@* in the text/attribute node built-in.

[Have just re-joined XSL-List after a months-long hiatus. Very happy to be 
back!]

================================================================
John E. Simpson          | "I spilled spot remover on my dog.
http://www.flixml.org    | He's gone now." (Steven Wright)
simpson@polaris.net      |


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]