XSLT is Rule-based
The "Hello, World!" example in the previous topic points to an important feature of XSLT programming: It is rule-based and declarative. In XSLT, rules are called template rules. A template rule is an instruction to transform a specified source element in a particular way. To transform a set of data, you must provide a complete set of rules. However, each rule is independent of every other.
The order in which rules are declared (or executed) is not significant. This makes XSLT programming side-effect-free. Although you can introduce side-effects by calling extension functions from within XPath expressions, the native way of programming with XSLT is without any side-effects. In this way, programming with XSLT is significantly different from imperative or procedure-oriented programming.