Kořenový element xsl:transform nebo xsl:stylesheet uzavírá celý XSLT styl a specifikuje NS prefix pro XSLT elementy.
V kořenovém elementu je:
Deklarace parametrů (a jejich implic. hodnoty) - elt. xsl:param. Parametry lze nastavit při volání XSLT procesoru - např. java net.sf.saxon.Transform -o outfile.xml infile.xml style.xsl -Dparam=paramvalue
Deklarace a inicializace proměnných - elt. xsl:variable - proměnné jsou de facto totéž, co parametry, ale nejsou nastavitelné zvenčí.
Je třeba si uvědomit, že XSLT (bez procesorově-specifických rozšíření) je čistý funkcionální jazyk, tj. aplikace šablony nemá vedlejší efekt -> proměnné lze přiřadit jednou, pak už jen číst!
Deklarace (formátu) výstupu - elt. xsl:output
...kromě toho tam mohou být další, méně používané XSL elementy - viz např. dokumentace SAXONu
pak následují vlastní šablony - elt. xsl:template