public static void TransformHtml(XmlSerializer serializer, object report, Type reportType, string outputFilePath, GeneratorConfiguration generatorConfiguration, string xsltFile) { var xmlOutputWriter = new StringWriter(); serializer.Serialize(xmlOutputWriter, report); XslCompiledTransform xslt = new XslCompiledTransform(); var xsltSettings = new XsltSettings(true, false); XmlResolver resourceResolver; var reportName = reportType.Name.Replace("Generator", ""); using (var xsltReader = GetTemplateReader(reportType, reportName, xsltFile)) { resourceResolver = new XmlResourceResolver(); xslt.Load(xsltReader, xsltSettings, resourceResolver); } var xmlOutputReader = new XmlTextReader(new StringReader(xmlOutputWriter.ToString())); XsltArgumentList argumentList = new XsltArgumentList(); argumentList.AddParam("feature-language", "", generatorConfiguration.FeatureLanguage.Name); argumentList.AddParam("tool-language", "", generatorConfiguration.ToolLanguage.Name); using (var xmlTextWriter = new XmlTextWriter(outputFilePath, Encoding.UTF8)) { xslt.Transform(xmlOutputReader, argumentList, xmlTextWriter, resourceResolver); } }
public XmlPrimeDriver() { var uriResolver = new XmlUrlResolver(); xmlReaderSettings = new XmlReaderSettings { NameTable = nameTable, XmlResolver = uriResolver, ProhibitDtd = false }; xmlReaderSettings.CloseInput = true; xsltSettings = new XsltSettings(nameTable) { ContextItemType = XdmType.Node }; xsltSettings.ModuleResolver = new XmlUrlResolver(); xsltSettings.CodeGeneration = CodeGeneration.DynamicMethods; xmlReaderSettingsSchemaAware = new XmlReaderSettings { NameTable = nameTable, XmlResolver = uriResolver, ProhibitDtd = false }; xmlReaderSettingsSchemaAware.CloseInput = true; xsltSettingsSchemaAware = new XsltSettings(nameTable) { ContextItemType = XdmType.Node }; xsltSettingsSchemaAware.ModuleResolver = new XmlUrlResolver(); xsltSettingsSchemaAware.CodeGeneration = CodeGeneration.DynamicMethods; //var xmlReaderSettingsUnparsedText = new XmlReaderSettings { XmlResolver = uriResolver }; //xmlReaderSettingsUnparsedText.CloseInput = true; documentResolver = new XmlReaderDocumentResolver(xmlReaderSettings); documentResolverSchemaAware = new XmlReaderDocumentResolver(xmlReaderSettingsSchemaAware); resourceResolver = new XmlResourceResolver(uriResolver); }
protected override XmlDocument LoadXmlTestResult() { //transform MsTest result to nunit and return xmlTestResultDoc = new XmlDocument(); xmlTestResultDoc.Load(reportParameters.XmlTestResult); namespaceURI = xmlTestResultDoc.SelectSingleNode("/*").NamespaceURI; var nameTable = GetNameTable(); XslCompiledTransform xslt = new XslCompiledTransform(); using (var xsltReader = new ResourceXmlReader(typeof(MsTestExecutionReportGenerator), "MsTestToNUnit.xslt", nameTable)) { var resourceResolver = new XmlResourceResolver(); var xsltSettings = new XsltSettings(true, false); xslt.Load(xsltReader, xsltSettings, resourceResolver); } var writerStream = new MemoryStream(); using (var xmlTextWriter = new XmlTextWriter(writerStream, Encoding.UTF8)) { xslt.Transform(xmlTestResultDoc, xmlTextWriter); } writerStream = new MemoryStream(writerStream.GetBuffer()); XmlDocument result = new XmlDocument(); result.Load(writerStream); return(result); }
public void Constructor_NullValueForAssembly_ThrowsException() { /* Arrange */ string resourceNamespace = "Enkoni.Framework.Tests.TestData"; /* Act */ XmlResourceResolver testSubject = new XmlResourceResolver(null, resourceNamespace); }
public void GetEntity_ReturnTypeNotStream_ExecutesBaseClassBehavior() { /* Arrange */ Assembly resourceAssembly = Assembly.GetExecutingAssembly(); string resourceNamespace = "UnitTests.TestData"; XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, resourceNamespace); /* Act */ object result = testSubject.GetEntity(new Uri("http://tempuri.org/MySchema.xsd"), null, typeof(string)); }
public void GetEntity_NullValueForUri_ExecutesBaseClassBehavior() { /* Arrange */ Assembly resourceAssembly = Assembly.GetExecutingAssembly(); string resourceNamespace = "UnitTests.TestData"; XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, resourceNamespace); /* Act */ object result = testSubject.GetEntity(null, null, null); }
public void Constructor_EmptyValueForNamespace_DoesNotThrowException() { /* Arrange */ Assembly resourceAssembly = Assembly.GetExecutingAssembly(); /* Act */ XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, string.Empty); /* Assert */ Assert.IsNotNull(testSubject); }
public void GetEntity_ReadEmbeddedSchemaWithImport_ReturnsValidStream() { /* Arrange */ Assembly resourceAssembly = Assembly.GetExecutingAssembly(); string resourceNamespace = "Enkoni.Framework.Tests.TestData"; XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, resourceNamespace); /* Act */ object result = testSubject.GetEntity(new Uri("file://mypath/ParentSchemaWithEmbeddedChild.xsd"), null, null); /* Assert */ Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Stream)); }
public void GetEntity_HttpTypeUri_ExecutesBaseClassBehavior() { /* Arrange */ Assembly resourceAssembly = Assembly.GetExecutingAssembly(); string resourceNamespace = "UnitTests.TestData"; XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, resourceNamespace); /* Act */ object result = testSubject.GetEntity(new Uri("http://tempuri.org/MySchema.xsd"), null, null); /* Assert */ Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Stream)); }
public void GetEntity_FileBasedSchemaWithoutImport_ReturnsValidStream() { /* Arrange */ string schemalocation = Path.Combine(this.TestContext.DeploymentDirectory, "FileBasedChildSchema.xsd"); Assembly resourceAssembly = Assembly.GetExecutingAssembly(); string resourceNamespace = "UnitTests.TestData"; XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, resourceNamespace); /* Act */ object result = testSubject.GetEntity(new Uri(schemalocation), null, null); /* Assert */ Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(Stream)); }
internal static XmlResolver Create() { XmlResourceResolver resolver = new XmlResourceResolver(); Assembly assembly = typeof(XhtmlResolverFactory).Assembly; string resourceNamespace = typeof(XhtmlResolverFactory).Namespace; resolver.AddPublicIdMapping("-//W3C//DTD XHTML 1.0 Strict//EN", assembly, resourceNamespace, XhtmlStrictDtd); resolver.AddPublicIdMapping("-//W3C//DTD XHTML 1.0 Transitional//EN", assembly, resourceNamespace, XhtmlTransitionalDtd); resolver.AddPublicIdMapping("-//W3C//DTD XHTML 1.0 Frameset//EN", assembly, resourceNamespace, XhtmlFramesetDtd); resolver.AddPublicIdMapping("xhtml-lat1.ent", assembly, resourceNamespace, XhtmlLat1Ent); resolver.AddPublicIdMapping("xhtml-symbol.ent", assembly, resourceNamespace, XhtmlSymbolEnt); resolver.AddPublicIdMapping("xhtml-special.ent", assembly, resourceNamespace, XhtmlSpecialEnt); return resolver; }
/// <summary>Gets a PDF as stream from an xml-file, rendered by an xsl stylesheet</summary> /// <param name="xmlToPdfInfo">Contains all input information</param> /// <param name="outputStream">resulting PDF as a stream</param> public static void XmlToPdf(XmlToPdfInfo xmlToPdfInfo, OutputStream outputStream) { resolver = xmlToPdfInfo.Resolver; includedDocsList = xmlToPdfInfo.IncludedDocsList;
/// <summary> /// Transforms the XSL template and extracts the subject and body from the result. /// </summary> /// <param name="xslTemplatePath">The XSL template path.</param> /// <param name="arguments">The arguments passed to the XSL transformation.</param> /// <param name="subject">The extracted subject.</param> /// <param name="messageBody">The extracted message body.</param> public void ExtractEmailDetailsFromTemplate(string xslTemplatePath, XsltArgumentList arguments, out string subject, out string messageBody) { XmlDocument initialDoc = new XmlDocument(); XmlElement rootEmailElement = initialDoc.CreateElement("Email"); initialDoc.AppendChild(rootEmailElement); rootEmailElement.AppendChild(initialDoc.CreateElement("MessageSubject")); rootEmailElement.AppendChild(initialDoc.CreateElement("MessageBody")); XmlResourceResolver resourceResolver = new XmlResourceResolver(GetType().Assembly); XPathDocument resultDoc; using (XmlReader templateXmlReader = XmlReader.Create(xslTemplatePath)) using (XmlReader initialXmlReader = new XmlNodeReader(initialDoc)) using (XmlReader resultXmlReader = XslUtils.TransformXml(initialXmlReader, templateXmlReader, arguments, resourceResolver)) { resultDoc = new XPathDocument(resultXmlReader); } XPathNavigator navigator = resultDoc.CreateNavigator(); subject = XPathUtils.SelectNodeText(navigator, "Email/MessageSubject/text()"); subject = subject.Trim(); messageBody = XPathUtils.SelectNodeXml(navigator, "Email/MessageBody"); }