Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Question on flow >Thread Next - Re: Question on flow Re: Question on flowTo: NULL Date: 4/2/2008 1:48:00 PM tshad wrote: > It seems that only the 1st template is the driving template, similar to > Main() in C or the startup function in any program. If I don't call any > other function, from a startup function then only the startup function gets > executed even if there there are other functions in my program (discounting > events, of course). > > In XSLT, it seems that the 1st template is like your startup routine. No, processing does not start at the first template. Processing starts at the root node (document node) of your primary XML input document, see <URL:http://www.w3.org/TR/xslt#section-Processing-Model>. Then the best matching template is used and its content determines which nodes are processed next. And there is a built-in template (<URL:http://www.w3.org/TR/xslt#built-in-rule>) <xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template> which makes sure the child nodes of the root node are processed. So in your sample XML input the above built-in template is the first template to be applied, then the child nodes of the root node (document node) are processed which is the 'REPORT' element. As you have a matching template for 'REPORT' elements that template is applied. And the xsl:apply-templates in that template determine which nodes are processed next, and pattern matching determines which templates are applied to these nodes. -- Martin Honnen --- MVP XML http://JavaScript.FAQTs.com/ | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
