Q:

XSL transform to include css

I'm attempting to duplicate an xml via XSLT and the CSS from the source XML is being placed in the body of the xhtml xml file and the head element appears to be empty. How do I get the CSS reference in the correct place so that it formats the newly created XML file. 
Source XML
<?xml version="1.0" encoding="utf-8"?>

<?DOCTYPE album SYSTEM "music_inventory.dtd"?>
<?xml-stylesheet type="text/css" href="music_inventory.css"?>
<music_inventory>
 <album id="LEDZEP" type="full_length" albumart="http://upload.wikimedia.org/wikipedia/en/c/cb/Led_Zeppelin_-_Mothership.jpg">
  <artist>Led Zepplin</artist>
  <name>Mothership</name>
  <year>1968</year>
  <label>Atlantic</label>
  <disc>1</disc>
  <totaldiscs>1</totaldiscs>
  <tracklist>
   <track id="1">Good Times Bad Times</track>
   <track id="2">Communication Breakdown</track>
   <track id="3">Dazed and Confused</track>
   <track id="4">Babe I'm gonna Leave You</track>
   <track id="5">Whole Lotta Love</track>
   <track id="6">Ramble On</track>
   <track id="7">Heartbreaker</track>
   <track id="8">Immigrant Song</track>
   <track id="9">Since I've Been Loving You</track>
   <track id="10">Rock and Roll</track>
   <track id="11">Black Dog</track>
   <track id="12">When the Levee Breaks</track>
   <track id="13">Stairway to Heaven</track>
  </tracklist>
 </album>
 <album id="SUBL" type="full_length" albumart="http://upload.wikimedia.org/wikipedia/en/thumb/9/94/Sublime_Self-Titled.jpg/220px-Sublime_Self-Titled.jpg">
  <artist>Sublime</artist>
  <name>Sublime</name>
  <year>1996</year>
  <label>MCA</label>
  <disc>1</disc>
  <totaldiscs>1</totaldiscs>
  <tracklist>
   <track id="1">Garden Grove</track>
   <track id="2">What I Got</track>
   <track id="3">Wrong Way</track>
   <track id="4">Same in the End</track>
   <track id="5">April 29, 1992 (Miami)</track>
   <track id="6">Santeria</track>
   <track id="7">Seed</track>
   <track id="8">Jailhouse</track>
   <track id="9">Pawn Shop</track>
   <track id="10">Paddle Out</track>
   <track id="11">The Ballad of Johnny Butt</track>
   <track id="12">Burritos</track>
   <track id="13">Under My Voodoo</track>
   <track id="14">Get Ready</track>
   <track id="15">Caress Me Down</track>
   <track id="16">What I Got (Reprise)</track>
   <track id="17">Doin' Time</track>
  </tracklist>
 </album>
</music_inventory>

XSL
    <xsl:stylesheet 
       version="1.0"
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns="http://www.w3.org/1999/xhtml"
       >

       <xsl:output method="xml" />

       <xsl:template match="* | @* | processing-instruction()">
          <xsl:copy>
              <xsl:apply-templates select="* | @* | text() | processing-instruction()"/>
          </xsl:copy>
       </xsl:template>

      <xsl:param name="albumid">SUBL</xsl:param>
       <xsl:template match="/">
         <html> 
         <body>
          <xsl:apply-templates/>
         </body>
         </html>
       </xsl:template>
       <xsl:template match="music_inventory">
         <xsl:apply-templates select="album[@id=$albumid]"/>
       </xsl:template>

       <!--creates hyperlink-->
       <xsl:template match="album/name">
        <id>
         <a xmlns="http://www.w3.org/1999/xhtml"
          href="{../@id}.xhtml">
           <xsl:value-of select="."/>
         </a>
        </id>
       </xsl:template>

    </xsl:stylesheet>

Resulting XML (note the placement of the stylesheet reference)
    <?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml">
<body><?xml-stylesheet type="text/css" href="music_inventory.css"?><album xmlns="" id="SUBL" type="full_length" albumart="http://upload.wikimedia.org/wikipedia/en/thumb/9/94/Sublime_Self-Titled.jpg/220px-Sublime_Self-Titled.jpg">
      <artist>Sublime</artist>
      <id xmlns="http://www.w3.org/1999/xhtml"><a href="SUBL.xhtml">Sublime</a></id>
      <year>1996</year>
      <label>MCA</label>
      <disc>1</disc>
      <totaldiscs>1</totaldiscs>
      <tracklist>
       <track id="1">Garden Grove</track>
       <track id="2">What I Got</track>
       <track id="3">Wrong Way</track>
       <track id="4">Same in the End</track>
       <track id="5">April 29, 1992 (Miami)</track>
       <track id="6">Santeria</track>
       <track id="7">Seed</track>
       <track id="8">Jailhouse</track>
       <track id="9">Pawn Shop</track>
       <track id="10">Paddle Out</track>
       <track id="11">The Ballad of Johnny Butt</track>
       <track id="12">Burritos</track>
       <track id="13">Under My Voodoo</track>
       <track id="14">Get Ready</track>
       <track id="15">Caress Me Down</track>
       <track id="16">What I Got (Reprise)</track>
       <track id="17">Doin' Time</track>
      </tracklist>
     </album></body></html>

A:

The template matching / has the problem. You may use this stylesheet:
<xsl:stylesheet  version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" >
    <xsl:output method="xml" />
    <xsl:template match="node() | @*">
        <xsl:copy>
            <xsl:apply-templates select="node() | @*"/>
        </xsl:copy>
    </xsl:template>
    <xsl:param name="albumid">SUBL</xsl:param>
    <xsl:template match="/">
        <xsl:apply-templates select="processing-instruction()"/>
        <html>
            <body>
                <xsl:apply-templates select="*"/>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="music_inventory">
        <xsl:apply-templates select="album[@id=$albumid]"/>
    </xsl:template>
    <!--creates hyperlink-->
    <xsl:template match="album/name">
        <id>
            <a xmlns="http://www.w3.org/1999/xhtml" href="{../@id}.xhtml">
                <xsl:value-of select="."/>
            </a>
        </id>
    </xsl:template>
</xsl:stylesheet>

