| SAXONICA | 
XSLT does not guarantee the order of execution of instructions. In principle, the 
            sql:close instruction could be evaluated before the sql:query
            instruction, which would obviously be disastrous.
         
In practice, Saxon's order of execution for XSLT instructions is reasonably predictable
            unless you use variables, or unless you invoke stylesheet functions from within an XPath
            expression. Using the SQL extension instructions within templates that are directly invoked
            is thus fairly safe, but it is not a good idea to invoke them as a side-effect of computing
            a variable or invoking a function. The exceptions are sql:connect and
            sql:query: if you use these instructions to evaluate the content of a variable,
            then of course they will be executed before any instruction that uses the value of the
            variable.