<xsl:stylesheet>

The <xsl:stylesheet> element (or the equivalent <xsl:transform> element) is the outermost element of a stylesheet.

Namespace Declaration

A pseudo-attribute required to identify the document as an XSLT stylesheet. Typically this is xmlns:xsl="http://www.w3.org/1999/XSL/Transform".

Syntax

<xsl:stylesheet
	version="NUMBER"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	id="NAME"
	extension-element-prefixes="LIST-OF-NAMES"
	exclude-result-prefixes="LIST-OF-NAMES">
		ENTIRE STYLESHEET
</xsl:stylesheet>

Required Attributes

version
Specifies the version of XSLT required by this stylesheet.

Optional Attributes

exclude-result-prefixes
Specifies any namespace used in this document that should not be sent to the output document. The list is whitespace separated.
extension-element-prefixes
Specifies a space-separated list of any namespace prefixes for extension elements in this document.
default-collation
Specifies the default collation used by all XPath expressions appearing in attributes or text value templates that have the element as an ancestor, unless overridden by another default-collation attribute on an inner element. It also determines the collation used by certain XSLT constructs (such as <xsl:key> and xsl:for-each-group) within its scope.
default-mode
Defines the default value for the mode attribute of all <xsl:template> and <xsl:apply-templates> elements within its scope.
default-validation
Defines the default value of the validation attribute of all relevant instructions appearing within its scope.
expand-text
Determines whether descendant text nodes of the element are treated as text value templates.
id
Specifies an id for this stylesheet. This is most often used when the stylesheet is embedded in another XML document.
input-type-annotations
Specifies whether type annotations are stripped from the element so the same results are produced whether the source documents have been validated against a schema or not.
use-when
Determines whether the element and all the nodes that have it as ancestor are excluded from the stylesheet.
xpath-default-namespace
Specifies the namespace that will be used if the element name is unprefixed or an unprefixed type name within an XPath expression.

Type

Required outermost element of stylesheet.

Specifications

Specification Status Comment
XSLT 3.0
The definition of '<xsl:stylesheet>' in that specification.
Recommendation Added the attributes default-mode, expand-text, and use-when.
XSLT 2.0 Added the attributes xpath-default-namespace, default-validation, default-collation, and input-type-annotations and made all attributes except version optional.
XSLT 1.0 Initial definition

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
stylesheetChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support YesOpera Full support YesSafari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support 3Samsung Internet Android Full support 1.0
exclude-result-prefixesChrome ? Edge ? Firefox Full support YesIE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android ?
extension-element-prefixesChrome ? Edge ? Firefox No support NoIE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
idChrome ? Edge ? Firefox Partial support 7
Notes
Partial support 7
Notes
Notes Supported only if explicitly called out by an inline DTD.
IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Partial support 7
Notes
Partial support 7
Notes
Notes Supported only if explicitly called out by an inline DTD.
Opera Android ? Safari iOS ? Samsung Internet Android ?
versionChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support YesOpera Full support YesSafari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support 3Samsung Internet Android Full support 1.0

Legend

Full support
Full support
Partial support
Partial support
No support
No support
Compatibility unknown
Compatibility unknown
See implementation notes.
See implementation notes.