The options for the fn:transform function fall (fairly neatly) into three
categories. Those relating to: the top-level stylesheet module or package; the
invocation method; and the transformation results. Note that the
vendor-options may relate to any of these categories.
A combination of options is allowed if and only if it corresponds to a choice of column
from each of the following tables (there is one table per category described above). In
the tables, an option labelled with * means that it is required, otherwise it is
optional. The table column headings are used as a descriptive guide only. Combinations
of options that are not allowed raise an error (e.g. using package-version
with stylesheet-node; template-params with
initial-function; initial-match-selection with
initial-function).
For XSLT 3.0 transformations:
Stylesheet/Package
| * stylesheet-location | * stylesheet-node | * stylesheet-text | * package-name | * package-node | * package-location |
| package-version | |||||
| xslt-version | |||||
| stylesheet-base-uri | |||||
| stylesheet-params | |||||
| cache | |||||
| static-params | |||||
| global-context-item | |||||
Invocation
| Apply Templates | Call Template | Function Call |
| invocation:"apply-templates" | invocation:"call-template" | invocation:"function-call" |
| * initial-match-selection | initial-template | * initial-function |
| initial-mode | * function-params | |
| template-params | ||
| tunnel-params | ||
Transformation results
| base-output-uri |
| delivery-format |
| serialization-params |
Other options (vendor-options may relate to any of the above categories)
| vendor-options |
For an XSLT 2.0 transformation, the first two tables can be simplified, to give the following corresponding tables:
Stylesheet
| * stylesheet-location | * stylesheet-node | * stylesheet-text |
| xslt-version | ||
| stylesheet-base-uri | ||
| stylesheet-params | ||
| cache | ||
Invocation
| Apply Templates | Call Template |
| * source-node | * initial-template |
| initial-mode | source-node |