Instantiating a <STYLE> element in the result tree is simple and effective for fairly small CSS rule sets. A better solution for larger blocks of CSS code is to place them in a separate, external CSS style sheet file, and then instantiate, in the result tree, an HTML <LINK> element that refers to the external file.
Assume that the CSS style sheet is in a file called book.css. The XSLT style sheet bookextcss.xsl refers to this external CSS style sheet. A template rule for processing the <book> element is shown below. The values of the rel and type attributes should always be "stylesheet" and "text/css", respectively. The value of the href attribute will be the URI of whatever style sheet is to be used.
XML File (bookextcss.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="bookextcss.xsl" ?>
<book>
<book_title>Jambing on the Trixles</book_title>
<author> Randall, Tristan</author>
</book>
CSS File (book.css)
H1
{ font-family: Arial,Univers,sans-serif;
font-size: 36pt
}
XSLT File (bookextcss.xsl)
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="book">
<HTML>
<HEAD>
<TITLE>Book Info</TITLE>
<link rel="stylesheet" type="text/css" href="book.css" />
</HEAD>
<BODY><xsl:apply-templates/></BODY>
</HTML>
</xsl:template>
<xsl:template match="book_title">
<H1><xsl:value-of select="."/></H1>
</xsl:template>
</xsl:stylesheet>
XSLT Processor Output
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=UTF-16"> <TITLE>Book Info</TITLE> <LINK rel="stylesheet" type="text/css" href="book.css"> </HEAD> <BODY><H1>Jambing on the Trixles</H1> Randall, Tristan</BODY> </HTML>
Formatted Output

Incorporating <STYLE> Elements into an XSLT File