File: Data.xml <?xml version="1.0"?> <!-- albums.xml --> <list xml:lang="en"> <title>title 1</title> <listitem>item 1</listitem> <listitem>item 2</listitem> <listitem>item 3</listitem> <listitem xml:lang="sw">item 4</listitem> <listitem xml:lang="en-gb">item 5</listitem> <listitem xml:lang="zu">item 6</listitem> <listitem xml:lang="jz">item 7</listitem> </list> File: Transform.xslt <?xml version="1.0"?> <!-- attribute-set.xsl --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:attribute-set name="bold-table"> <xsl:attribute name="style"> font-weight: bold; </xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="spacious-table" use-attribute-sets="bold-table"> <xsl:attribute name="cellpadding">8</xsl:attribute> <xsl:attribute name="cellspacing">8</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="reverse-table"> <xsl:attribute name="bgcolor">black</xsl:attribute> <xsl:attribute name="style">color: white;</xsl:attribute> </xsl:attribute-set> <xsl:template match="/"> <html> <head> <title><xsl:value-of select="/list/title"/></title> </head> <body style="font-family: sans-serif;"> <xsl:apply-templates select="*"/> </body> </html> </xsl:template> <xsl:template match="list"> <h1><xsl:value-of select="title"/></h1> <table xsl:use-attribute-sets="spacious-table" border="2"> <xsl:for-each select="listitem"> <tr> <td xsl:use-attribute-sets="reverse-table"> <xsl:value-of select="."/> </td> </tr> </xsl:for-each> </table> <h1>Here's the same table with different attribute sets:</h1> <table border="2" xsl:use-attribute-sets="bold-table"> <xsl:for-each select="listitem"> <tr> <td> <xsl:value-of select="."/> </td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> Output: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>title 1</title> </head> <body style="font-family: sans-serif;"> <h1>title 1</h1> <table style="
 font-weight: bold; 
 " cellpadding="8" cellspacing="8" border="2"> <tr> <td bgcolor="black" style="color: white;">item 1</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 2</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 3</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 4</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 5</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 6</td> </tr> <tr> <td bgcolor="black" style="color: white;">item 7</td> </tr> </table> <h1>Here's the same table with different attribute sets:</h1> <table style="
 font-weight: bold; 
 " border="2"> <tr> <td>item 1</td> </tr> <tr> <td>item 2</td> </tr> <tr> <td>item 3</td> </tr> <tr> <td>item 4</td> </tr> <tr> <td>item 5</td> </tr> <tr> <td>item 6</td> </tr> <tr> <td>item 7</td> </tr> </table> </body> </html>