Thanks to all for their input. I've tested a few things and I found that:
a) When I match the root node, anything I put there comes out after the doctype
b) I can't use processing instruction since that isn't what this is so it won't come out in the right format.
c) xsl:output doesn't provide a way for defining things outside the doctype either (not surprising)
d) a couple of people have mentioned that this is "unorthodox" . I've been looking at a lot of programming stuff lately (ASP, for examples) and it seems not uncommon to have things like <%@ Page Language="VB" %> appear at the very top of HTML pages. I guess most people don't care if their HTML validates ;)
So we'll work on an alternate solution. Maybe we can run something as on onLoad event.
Thanks all --