Actually, this was done quite often.
In XSLT 2.0, it is defined in Spec. that providing an initial node context is optional. If the source context of the node is not provided (no source XML document), then it is important to specify the name of the named template that must be executed as the entry point to the transformation.
In XSLT 1.0, you can convert your own main stylesheet file (file) as a source XML document, and, of course, the conversion can completely ignore this source XML document. This method has long been demonstrated and used by Jeni Tennison .
For example:
<?xml-stylesheet type="text/xsl" href="example.xml"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<p>Hello, world!</p>
</xsl:template>
</xsl:stylesheet>
"example.xml", Windows, "example.xml" IE :
, !