private static void Generate(XmlDocument source, XslTransform transform, XsltArgumentList args, string output, XslTransform template, List<string> sourceDirectories) {
using (TextWriter textwriter = new StreamWriter(new FileStream(output, FileMode.Create))) {
XmlTextWriter writer = new XmlTextWriter(textwriter);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.IndentChar = ' ';
try {
XmlDocument intermediate = new XmlDocument();
intermediate.PreserveWhitespace = true;
intermediate.Load(transform.Transform(source, args, new ManifestResourceResolver(sourceDirectories.ToArray ()))); // FIXME?
template.Transform(intermediate, new XsltArgumentList(), new XhtmlWriter (writer), null);
} catch (Exception e) {
throw new ApplicationException("An error occured while generating " + output, e);
}
}
}