Using Stylus Studio Default Templates

Every stylesheet in Stylus Studio can use two built-in templates, even though they are not explicitly defined. This section covers the following topics to help you use these templates:

Contents of a New Stylesheet Created by Stylus Studio

When Stylus Studio creates a new stylesheet, the stylesheet includes the following built-in templates:

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

Every XSLT stylesheet contains these templates whether or not they are explicitly specified. In other words, the XSLT processor behaves as if they are there even when they are not explicitly specified in the stylesheet.

About the Root/Element Built-In Template

The first built-in template matches *|/. This means it matches every element in the source document and it matches the root node. This is the root/element built-in template.

This root/element built-in template contains only the xsl:apply-templates instruction. The xsl:apply-templates instruction does not specify a select attribute, which means that the XSLT processor operates on the children of the node for which the root/element template was instantiated.

What does the XSLT processor do when it operates on these children nodes? It searches for a template that matches each node. If there is no such template and if the node is an element, the XSLT processor instantiates the root/element built-in template. If the node is a text node and there is no matching template, the XSLT processor instantiates the text/attribute built-in template.

If the node for which the root/element built-in template is instantiated has no children, the XSLT processor does no processing for this node and proceeds to the next selected node.

The XSLT processor instantiates the root/element built-in template when it cannot find a template that explicitly matches the root node or an element in the source document. As you know, the XSLT processor always begins processing by instantiating the template that matches the root node. If you do not define such a template in your stylesheet, the XSLT processor begins processing by instantiating the root/element built-in template.

About the Text/Attribute Built-In Template

The second specified built-in template matches text()|@*. This means it matches the text contents of every text node and every attribute in the source document. This is the text/attribute template.

This template contains only the xsl:value-of instruction. Its select attribute specifies an expression for selecting an XML node. The "." expression identifies the current node, which is the node the template was instantiated for.

This template copies the text contained in the current text node or attribute to the result document.

XMLSCHEMA-DEV Blog

XML Schema-DEV is an active community for XML Schema-releated development - join the discussion on XML Schema standards, tools, implementations and more. Bookmark this RSS or ATOM feed today!

Investments and Financial Companies That Use Stylus Studio

Stylus Studio provides XML tools & components to leading investment and financial companies! See which top investment and financial companies are banking on Stylus Studio 2006 to simplify their dollars and cents.

Government Agencies That Use Stylus Studio

Government agencies all around the nation are pledging their allegiance to Stylus Studio. Come see which government agencies are using the only XML IDE by the people and for the people.

Industrial & Farm Equipment

Industrial & farm equipment manufacturers are mowing away the time it takes for data integration with the power of Stylus Studio 2006! See which top industrial and farm equipment manufacturers are cowboying up with Stylus Studio.

Stylus Most Wanted

 
Free Stylus Studio XML Training:
W3C Member