I have created a custom blog web template (which I started by copying and pasting the OOTB blog site definition) and in order to customize the way blog posts are displayed, I have to make some changes to the "blog.xsl" file.
NB: Since I am working on an Office 365 / sandbox solution, changing the "blog.xsl" in the 14 hive is definitely not an option -- nor is deploying a customized version of the file to the file system.
So I have instead created a copy of the "blog.xsl" file within Visual Studio, made my customizations to it, and deployed it to the Style Library. So far so good. The final step is just to hook up the various views in my blog lists' "schema.xml" files to point to my customized XSL file.
The list view's XslLink property appears to be hard-coded to point to the "14\TEMPLATE\LAYOUTS\XSL" directory. For example, the OOTB blog site definition just contains the following for its list views:
Notice there is no path specified. If I attempt to put either an absolute or relative URL into this field (e.g. /Style Library/XSL/blog.xsl), an exception is thrown on the page and the following message is output to the ULS logs:
Error while executing web part: System.NotSupportedException: The given path's format is not supported.
How do I point a list view to a custom XSL file that is deployed to the content database (as opposed to the filesystem)?