This chapter described four design patterns for writing XSLT stylesheets:
Fill-in-the-blanks
Navigational
Rule-based
Computational
The approach to problems in the computational stylesheets may seem unfamiliar, because XSLT is a pure functional programming language, with no assignment statements or other side effects that constrain the order of execution. The result of this is that many of the more complex algorithms need to be written using recursive functions or templates.