public string[] TransformModel(string xmlFilePath) { var xmlFile = FileSystem.ResolveFile(xmlFilePath); if (!xmlFile.Exists()) { throw new FileNotFoundException(xmlFilePath); } var basePath = Path.GetDirectoryName(xmlFile.Name); TextReader inputXmlContent = null; using (var fsInputStream = xmlFile.Content.GetStream(FileAccess.Read)) { var vfsResolver = new VfsXmlResolver(FileSystem, basePath); var xmlRdr = XmlReader.Create( new StreamReader(fsInputStream), null, new XmlParserContext(null, null, null, XmlSpace.Default) { BaseURI = vfsResolver.AbsoluteBaseUri.ToString() }); var xIncludingXmlRdr = new Mvp.Xml.XInclude.XIncludingReader(xmlRdr); xIncludingXmlRdr.XmlResolver = vfsResolver; var xPathDoc = new XPathDocument(xIncludingXmlRdr); var nav = xPathDoc.CreateNavigator(); inputXmlContent = new StringReader(nav.OuterXml); } return(TransformModel(inputXmlContent, basePath, Path.GetFileNameWithoutExtension(xmlFile.Name))); }
protected XslCompiledTransform GetXslTransform(string xslPath) { var xslFile = FileSystem.ResolveFile(xslPath); if (!xslFile.Exists()) { throw new FileNotFoundException(xslPath); } var xslt = new XslCompiledTransform(); var xmlResolver = new VfsXmlResolver(FileSystem, Path.GetDirectoryName(xslPath)); using (var xslInputStream = xslFile.Content.GetStream(FileAccess.Read)) { xslt.Load(new XmlTextReader(new StreamReader(xslInputStream)), XsltSettings.Default, xmlResolver); } return(xslt); }