stylesheet_1-input.xml
<?xml version="1.0"?>
<products>
<product>
<name>Delta</name>
</product>
</products>
stylesheet_1-stylesheet.xsl
<?xml version="1.0"?>
<xsl:stylesheet
version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template
match="/">
<Products>
<Product>
<Name>
<xsl:value-of
select="products/product/name"/>
</Name>
</Product>
</Products>
</xsl:template>
</xsl:stylesheet>
stylesheet_1-output.xml
<?xml version="1.0" encoding="UTF-8"?>
<Products><Product><Name>Delta</Name></Product></Products>
Note that if we don't use xsl:output to control serialization, it defaults to XML, the use of the XML declaration, the use of UNICODE, and no indention (one long line).
The element xsl :transform can be used as an alias for xsl:stylesheet. Stupid to have two element names for the same element. The name xsl:transform is hardly ever used and should have been deleted from the spec.
Updated 2009-03-19