示例#1
0
        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);
            }            
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        public void Constructor_NullValueForAssembly_ThrowsException()
        {
            /* Arrange */
            string resourceNamespace = "Enkoni.Framework.Tests.TestData";

            /* Act */
            XmlResourceResolver testSubject = new XmlResourceResolver(null, resourceNamespace);
        }
示例#5
0
        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));
        }
示例#6
0
        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);
        }
示例#7
0
        public void Constructor_EmptyValueForNamespace_DoesNotThrowException()
        {
            /* Arrange */
            Assembly resourceAssembly = Assembly.GetExecutingAssembly();

            /* Act */
            XmlResourceResolver testSubject = new XmlResourceResolver(resourceAssembly, string.Empty);

            /* Assert */
            Assert.IsNotNull(testSubject);
        }
示例#8
0
        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));
        }
示例#9
0
        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));
        }
示例#10
0
        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));
        }
示例#11
0
        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");
        }