It is used to process nodes selected by an expression instead of processing
all children. The value of the select attribute is an expression. The expression
must evaluate to a node-set. unless a sorting specification is present
the selected set of nodes is processed in document order.
It allows an element to be processed multiple times, each
time producing a different result. If <xsl:template> does not have a match
attribute then it must not have a mode attribute also. If an <xsl:apply-templates>
element has a mode attribute, it applies only to those template rules from <xsl:template>
elements that have a mode attribute with the same value; if an <xsl:apply-templates>
element does not have a mode attribute, it applies only to those template rules
from <xsl:template> elements that do not have a mode attribute.