Example #1
0
        /// <summary>
        /// Transforms given <see cref="XmlInput"/> into <see cref="XmlReader"/>.
        /// </summary>
        /// <param name="input">Default input XML document</param>
        /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified
        /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
        public XmlReader Transform(XmlInput input, XsltArgumentList arguments)
        {
            XslReader r = new XslReader(this.compiledTransform);

            r.StartTransform(input, AddExsltExtensionObjectsSync(arguments));
            return(r);
        }
Example #2
0
        /// <summary>
        /// Transforms given <see cref="XmlInput"/> into <see cref="XmlReader"/>.
        /// </summary>
        /// <param name="input">Default input XML document</param>
        /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified
        /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
        /// <param name="multiThread">Defines in which mode (multithreaded or singlethreaded)
        /// this instance of XslReader will operate</param>
        /// <param name="initialBufferSize">Initial buffer size (number of nodes, not bytes)</param>
        public XmlReader Transform(XmlInput input, XsltArgumentList arguments, bool multiThread, int initialBufferSize)
        {
            XslReader r = new XslReader(this.compiledTransform, multiThread, initialBufferSize);

            r.StartTransform(input, AddExsltExtensionObjectsSync(arguments));
            return(r);
        }
Example #3
0
        private void TransformToWriter(XmlInput defaultDocument, XsltArgumentList xsltArgs, XmlWriter xmlWriter)
        {
            XsltArgumentList args      = AddExsltExtensionObjects(xsltArgs);
            XmlReader        xmlReader = defaultDocument.source as XmlReader;

            if (xmlReader != null)
            {
                this.compiledTransform.Transform(xmlReader, args, xmlWriter, defaultDocument.resolver);
                return;
            }
            IXPathNavigable nav = defaultDocument.source as IXPathNavigable;

            if (nav != null)
            {
                if (defaultDocument.resolver is DefaultXmlResolver)
                {
                    this.compiledTransform.Transform(nav, args, xmlWriter);
                }
                else
                {
                    TransformIXPathNavigable(nav, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            string str = defaultDocument.source as string;

            if (str != null)
            {
                using (XmlReader reader = XmlReader.Create(str, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            Stream strm = defaultDocument.source as Stream;

            if (strm != null)
            {
                using (XmlReader reader = XmlReader.Create(strm, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            TextReader txtReader = defaultDocument.source as TextReader;

            if (txtReader != null)
            {
                using (XmlReader reader = XmlReader.Create(txtReader, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            throw new Exception("Unexpected XmlInput");
        }
Example #4
0
 /// <summary>
 /// Gets XML Reader settings (customized if there is custom XML resolver)
 /// </summary>
 /// <returns></returns>
 protected XmlReaderSettings GetReaderSettings(XmlInput defaultDocument)
 {
     if (defaultDocument.resolver is DefaultXmlResolver)
     {
         return(DefaultReaderSettings);
     }
     else
     {
         XmlReaderSettings settings = DefaultReaderSettings.Clone();
         settings.XmlResolver = defaultDocument.resolver;
         return(settings);
     }
 }
Example #5
0
        public static string GetXmlString(string stylesheet, string xmlstring, List<XsltExtensionParam> listExtensionParam,
            bool enableDocumentFunction, bool enableScript)
        {
            MvpXslTransform xslt = new MvpXslTransform();
            string text = string.Empty;
            try {
                using (XmlReader strm = XmlReader.Create(new MemoryStream(ASCIIEncoding.Default.GetBytes(stylesheet)))) {
                    if (enableDocumentFunction && enableScript) {
                        XsltSettings xslSettings = new XsltSettings(enableDocumentFunction, enableScript);
                        XmlResolver xmlResolver = new XmlUrlResolver();
                        xslt.Load(strm, xslSettings, xmlResolver);
                    } else if (enableDocumentFunction && !enableScript) {
                        XsltSettings xslSettings = new XsltSettings(enableDocumentFunction, false);
                        XmlResolver xmlResolver = new XmlUrlResolver();
                        xslt.Load(strm, xslSettings, xmlResolver);
                    } else {
                        xslt.Load(strm);
                    }
                }
                using (TextReader stringReader = new StringReader(xmlstring)) {
                    XPathDocument mydata = new XPathDocument(stringReader);
                    XmlInput a = new XmlInput(mydata);
                    using (TextWriter txtWriter = new StringWriter()) {
                        XsltArgumentList b = new XsltArgumentList();
                        foreach (XsltExtensionParam oep in listExtensionParam) {
                            b.AddExtensionObject(oep.Namespace, oep.Object);
                        }
                        xslt.Transform(a, b, new XmlOutput(txtWriter));
                        text = txtWriter.ToString();
                    }
                }
            } catch (Exception ex) {

            }
            return text;
        }
Example #6
0
        public void TestXPointerIndentationBug()
        {

            XmlUrlResolver resolver = new XmlUrlResolver();
            resolver.Credentials = CredentialCache.DefaultCredentials;
            XsltSettings xsltSettings = new XsltSettings();
            xsltSettings.EnableDocumentFunction = true;
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.ProhibitDtd = false;
            XmlReader reader = XmlReader.Create("../../XInclude/tests/Transform.xsl", settings);
            XIncludingReader xInputReader = new XIncludingReader("../../XInclude/tests/FileA.xml");
            try
            {
                MvpXslTransform processor = new MvpXslTransform(false);
                processor.Load(reader, xsltSettings, resolver);                
                //xInputReader.XmlResolver = new XMLBase();
                XmlDocument xInputDoc = new XmlDocument();
                xInputDoc.Load(xInputReader);
                XmlInput xInput = new XmlInput(xInputDoc);
                StringWriter stringW = new StringWriter();
                XmlOutput xOutput = new XmlOutput(stringW);
                processor.Transform(xInput, null, xOutput);
                processor.TemporaryFiles.Delete();
                Assert.AreEqual("<?xml version=\"1.0\" encoding=\"utf-16\"?>NodeA Content", stringW.ToString());
            }
            finally
            {
                 reader.Close();
                 xInputReader.Close();
            }
        }
Example #7
0
        public void TestStringInput()
        {
            MvpXslTransform xslt = GetMvpXslTransform();
			XmlInput input = new XmlInput("../../Common/northwind.xml");
            MemoryStream ms = new MemoryStream();
            xslt.Transform(input, Arguments, new XmlOutput(ms));
            CompareResults(standardResult, ms.ToArray());
        }
Example #8
0
 public void ExsltTest()
 {
     MvpXslTransform xslt = new MvpXslTransform();
     xslt.Load("../../Common/MvpXslTransformTests/exslt-test.xslt");
     XmlInput input = new XmlInput("../../Common/MvpXslTransformTests/test.xml");
     MemoryStream ms = new MemoryStream();
     xslt.Transform(input, Arguments, new XmlOutput(ms));
     string expected = "<out>3</out>";            
     CompareResults(Encoding.ASCII.GetBytes(expected), ms.ToArray());
 }
Example #9
0
 public void ResolverTestStreamInput()
 {
     MvpXslTransform xslt = GetMvpXslTransform2();
     using (FileStream fs = File.OpenRead("../../Common/MvpXslTransformTests/test.xml"))
     {
         XmlInput input = new XmlInput(fs, new MyXmlResolver());
         MemoryStream ms = new MemoryStream();
         xslt.Transform(input, Arguments, new XmlOutput(ms));
         CompareResults(resolverTestStandardResult, ms.ToArray());
     }
 }
Example #10
0
 /// <summary>
 /// Transforms to XmlWriter.
 /// </summary>        
 protected void TransformToWriter(XmlInput defaultDocument, XsltArgumentList xsltArgs, XmlWriter targetWriter)
 {
     XmlWriter xmlWriter;            
     if (this.supportCharacterMaps && this.characterMap != null && this.characterMap.Count > 0)
     {
         xmlWriter = new CharacterMappingXmlWriter(targetWriter, this.characterMap);
     }
     else
     {
         xmlWriter = targetWriter;
     }
     if (this.enforceXHTMLOutput)
     {
         xmlWriter = new XhtmlWriter(xmlWriter);
     }
     XsltArgumentList args = AddExsltExtensionObjectsSync(xsltArgs);
     XmlReader xmlReader = defaultDocument.source as XmlReader;
     if (xmlReader != null)
     {
         this.compiledTransform.Transform(xmlReader, args, xmlWriter, defaultDocument.resolver);
         return;
     }
     IXPathNavigable nav = defaultDocument.source as IXPathNavigable;
     if (nav != null)
     {
         if (defaultDocument.resolver is DefaultXmlResolver)
         {
             this.compiledTransform.Transform(nav, args, xmlWriter);
         }
         else
         {
             TransformIXPathNavigable(nav, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     string str = defaultDocument.source as string;
     if (str != null)
     {
         using (XmlReader reader = XmlReader.Create(str, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     Stream strm = defaultDocument.source as Stream;
     if (strm != null)
     {
         using (XmlReader reader = XmlReader.Create(strm, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     TextReader txtReader = defaultDocument.source as TextReader;
     if (txtReader != null)
     {
         using (XmlReader reader = XmlReader.Create(txtReader, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     throw new Exception("Unexpected XmlInput");
 }
Example #11
0
 /// <summary>
 /// Gets XML Reader settings (customized if there is custom XML resolver)
 /// </summary>        
 /// <returns></returns>
 protected XmlReaderSettings GetReaderSettings(XmlInput defaultDocument)
 {
     if (defaultDocument.resolver is DefaultXmlResolver)
     {
         return DefaultReaderSettings;
     }
     else
     {
         XmlReaderSettings settings = DefaultReaderSettings.Clone();
         settings.XmlResolver = defaultDocument.resolver;
         return settings;
     }
 }
Example #12
0
 /// <summary>
 /// Transforms given <see cref="XmlInput"/> into <see cref="XmlReader"/>.
 /// </summary>
 /// <param name="input">Default input XML document</param>
 /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified 
 /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
 /// <param name="multiThread">Defines in which mode (multithreaded or singlethreaded)
 /// this instance of XslReader will operate</param>
 /// <param name="initialBufferSize">Initial buffer size (number of nodes, not bytes)</param>
 public XmlReader Transform(XmlInput input, XsltArgumentList arguments, bool multiThread, int initialBufferSize)
 {
     XslReader r = new XslReader(this.compiledTransform, multiThread, initialBufferSize);
     r.StartTransform(input, AddExsltExtensionObjectsSync(arguments));
     return r;
 }
Example #13
0
 /// <summary>
 /// Transforms given <see cref="XmlInput"/> into <see cref="XmlReader"/>.
 /// </summary>
 /// <param name="input">Default input XML document</param>
 /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified 
 /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
 public XmlReader Transform(XmlInput input, XsltArgumentList arguments)
 {
     XslReader r = new XslReader(this.compiledTransform);
     r.StartTransform(input, AddExsltExtensionObjectsSync(arguments));
     return r;
 }
Example #14
0
        /// <summary>
        /// Transforms given <see cref="XmlInput"/> into <see cref="XmlOutput"/>.
        /// The <see cref="XsltArgumentList"/> provides additional runtime arguments.
        /// </summary>
        /// <param name="input">Default input XML document.</param>
        /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified 
        /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
        /// <param name="output">Represents the transformation's output.</param>
        /// <returns>Transformation output.</returns>
        public XmlOutput Transform(XmlInput input, XsltArgumentList arguments, XmlOutput output)
        {
            if (input == null) throw new ArgumentNullException("defaltDocument");
            XmlWriter xmlWriter = output.destination as XmlWriter;
            bool closeWriter = false;
            if (xmlWriter == null)
            {
                closeWriter = true;
                while (true)
                {
                    TextWriter txtWriter = output.destination as TextWriter;
                    if (txtWriter != null)
                    {
                        if (multiOutput)
                        {
                            MultiXmlTextWriter mw = new MultiXmlTextWriter(txtWriter, output.XmlResolver);

                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            xmlWriter = XmlWriter.Create(txtWriter, this.compiledTransform.OutputSettings);
                        }
                        break;
                    }
                    Stream strm = output.destination as Stream;
                    if (strm != null)
                    {
                        if (multiOutput)
                        {

                            MultiXmlTextWriter mw = new MultiXmlTextWriter(strm, this.compiledTransform.OutputSettings.Encoding, output.XmlResolver);
                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            xmlWriter = XmlWriter.Create(strm, this.compiledTransform.OutputSettings);
                        }
                        break;
                    }
                    String str = output.destination as String;
                    if (str != null)
                    {
                        if (multiOutput)
                        {
                            MultiXmlTextWriter mw = new MultiXmlTextWriter(str, this.compiledTransform.OutputSettings.Encoding);
                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            XmlWriterSettings outputSettings = this.compiledTransform.OutputSettings.Clone();
                            outputSettings.CloseOutput = true;
                            // BugBug: We should read doc before creating output file in case they are the same
                            xmlWriter = XmlWriter.Create(str, outputSettings);
                        }
                        break;
                    }
                    throw new Exception("Unexpected XmlOutput");
                }
            }
            try
            {
                TransformToWriter(input, arguments, xmlWriter);
            }
            finally
            {
                if (closeWriter)
                {
                    xmlWriter.Close();
                }
            }
            return output;
        }
Example #15
0
        public override void xslTransformer(XPathNavigator xNav, XsltArgumentList xArgs)
        {
            XsltSettings settings = new XsltSettings(true, true);
            XmlUrlResolver r = new XmlUrlResolver();
            r.Credentials = System.Net.CredentialCache.DefaultCredentials;

            MvpXslTransform xslObj = new MvpXslTransform();
            xslObj.SupportCharacterMaps = false;            // causes error reading
            var readersettings = new XmlReaderSettings();

            using (XmlReader xslreader = XmlReader.Create(classXSLObjectSource, readersettings))
            {

                xslObj.Load(xslreader, settings, r);
                XmlInput xm = new XmlInput(xNav);
                XmlOutput xo;

                try
                {
                    if (!(clsFileIO == null))
                    {
                        xo = new XmlOutput(clsFileIO);
                        xslObj.Transform(xm, xArgs, xo);
                        clsTEXTResult = "FILE SAVED";
                    }
                    else if (!(clsHTTPResponse == null))
                    {
                        xo = new XmlOutput(clsHTTPResponse.OutputStream);
                        xslObj.Transform(xm, xArgs, xo);
                        clsTEXTResult = "OUTPUT STREAMED TO HTTP RESPONSE";
                    }
                    else if (!(clsXMLObjectReturn == null))
                    {
                        using (StringWriter sWrit = new StringWriter())
                        {
                            xo = new XmlOutput(sWrit);

                            xslObj.Transform(xm, xArgs, xo);
                            clsXMLObjectReturn.LoadXml(sWrit.ToString());
                        }
                    }
                    else
                    {
                        using (StringWriter sWrit = new StringWriter())
                        {
                            xo = new XmlOutput(sWrit);

                            xslObj.Transform(xm, xArgs, xo);

                            // default - results to text
                            clsTEXTResult = sWrit.ToString();
                        }

                    }
                }
                catch (Exception unhandled)
                {
                    throw unhandled;
                }
                finally
                {
                    xslObj = null;
                    xm = null;
                    xo = null;
                }
            }
        }
Example #16
0
 public void TestIXPathNavigableInput2()
 {
     MvpXslTransform xslt = GetMvpXslTransform();
     XmlInput input = new XmlInput(new XPathDocument("../../Common/northwind.xml", XmlSpace.Preserve));
     MemoryStream ms = new MemoryStream();
     XmlReader r = xslt.Transform(input, Arguments);
     XmlWriter w = XmlWriter.Create(ms);
     w.WriteNode(r, false);
     w.Close();
     CompareResults(standardResult, ms.ToArray());
 }
Example #17
0
 public void TestXmlWriterOutput()
 {
     MvpXslTransform xslt = GetMvpXslTransform();
     XmlInput input = new XmlInput("../../Common/northwind.xml");
     XmlWriter w = XmlWriter.Create("../../Common/MvpXslTransformTests/out.xml");
     xslt.Transform(input, Arguments, new XmlOutput(w));
     w.Close();
     using (FileStream fs = File.OpenRead("../../Common/MvpXslTransformTests/out.xml"))
     {
         byte[] bytes = new byte[fs.Length];
         fs.Read(bytes, 0, bytes.Length);
         CompareResults(standardResult, bytes);
     }
 }
Example #18
0
 public void TestTextReaderInput2()
 {
     MvpXslTransform xslt = GetMvpXslTransform();
     XmlInput input = new XmlInput(new StreamReader("../../northwind.xml", Encoding.GetEncoding("windows-1252")));
     MemoryStream ms = new MemoryStream();
     XmlReader r = xslt.Transform(input, Arguments);
     XmlWriter w = XmlWriter.Create(ms);
     w.WriteNode(r, false);
     w.Close();
     CompareResults(standardResult, ms.ToArray());
 }
Example #19
0
 public void ResolverTestIXPathNavigableInput()
 {
     MvpXslTransform xslt = GetMvpXslTransform2();
     XmlInput input = new XmlInput(new XPathDocument("../../Common/MvpXslTransformTests/test.xml"), new MyXmlResolver());
     MemoryStream ms = new MemoryStream();
     xslt.Transform(input, Arguments, new XmlOutput(ms));
     CompareResults(resolverTestStandardResult, ms.ToArray());
 }
Example #20
0
 public void TestStreamOutput()
 {
     MvpXslTransform xslt = GetMvpXslTransform();
     XmlInput input = new XmlInput("../../northwind.xml");
     using (FileStream outStrm = File.OpenWrite("../../MvpXslTransformTests/out.xml")) {
         xslt.Transform(input, Arguments, new XmlOutput(outStrm));
     }
     using (FileStream fs = File.OpenRead("../../MvpXslTransformTests/out.xml"))
     {
         byte[] bytes = new byte[fs.Length];
         fs.Read(bytes, 0, bytes.Length);
         CompareResults(standardResult, bytes);
     }
 }
Example #21
0
 public void NoExsltTest()
 {
     MvpXslTransform xslt = new MvpXslTransform();
     xslt.Load("../../Common/MvpXslTransformTests/exslt-test.xslt");
     XmlInput input = new XmlInput("../../Common/MvpXslTransformTests/test.xml");
     MemoryStream ms = new MemoryStream();
     xslt.SupportedFunctions = Mvp.Xml.Exslt.ExsltFunctionNamespace.None;
     try
     {
         xslt.Transform(input, Arguments, new XmlOutput(ms));
     }
     catch (XsltException) { return; }
     Assert.Fail("Shoudn't be here.");
 }
Example #22
0
 public void ResolverTestXmlReaderInput()
 {
     MvpXslTransform xslt = GetMvpXslTransform2();
     XmlInput input = new XmlInput(XmlReader.Create("../../MvpXslTransformTests/test.xml"), new MyXmlResolver());
     MemoryStream ms = new MemoryStream();
     xslt.Transform(input, Arguments, new XmlOutput(ms));
     CompareResults(resolverTestStandardResult, ms.ToArray());
 }
Example #23
0
		/// <summary>
		/// Starts XSL transformation of given <see cref="XmlInput"/> object with
		/// specified <see cref="XsltArgumentList"/>. After this method returns
		/// you can read the transformation output out of XslReader object via 
		/// standard <see cref="XmlReader"/> methods such as Read() or MoveXXX().
		/// </summary>
		/// <remarks>If the <c>StartTransform()</c> method is called when previous
		/// transformation isn't over yet, it will be aborted, buffer cleaned and 
		/// XslReader object reset to an initial state automatically.</remarks>
		/// <param name="input">An input XML to be transformed</param>
		/// <param name="args">A collection of global parameter values and
		/// extension objects.</param>
		/// <returns></returns>
		public XmlReader StartTransform(XmlInput input, XsltArgumentList args)
		{
			this.defaulDocument = input;
			this.args = args;
			Start();
			return this;
		}
Example #24
0
        public void TestStreamInput()
        {
            MvpXslTransform xslt = GetMvpXslTransform();
			using (FileStream fs = File.OpenRead("../../Common/northwind.xml"))
            {
                XmlInput input = new XmlInput(fs);
                MemoryStream ms = new MemoryStream();
                xslt.Transform(input, Arguments, new XmlOutput(ms));
                CompareResults(standardResult, ms.ToArray());
            }            
        }
Example #25
0
        /// <summary>
        /// Transforms given <see cref="XmlInput"/> into <see cref="XmlOutput"/>.
        /// The <see cref="XsltArgumentList"/> provides additional runtime arguments.
        /// </summary>
        /// <param name="input">Default input XML document.</param>
        /// <param name="arguments">An <see cref="XsltArgumentList"/> containing the namespace-qualified
        /// arguments used as input to the transform. This value can be a null reference (Nothing in Visual Basic).</param>
        /// <param name="output">Represents the transformation's output.</param>
        /// <returns>Transformation output.</returns>
        public XmlOutput Transform(XmlInput input, XsltArgumentList arguments, XmlOutput output)
        {
            if (input == null)
            {
                throw new ArgumentNullException("defaltDocument");
            }
            XmlWriter xmlWriter   = output.destination as XmlWriter;
            bool      closeWriter = false;

            if (xmlWriter == null)
            {
                closeWriter = true;
                while (true)
                {
                    TextWriter txtWriter = output.destination as TextWriter;
                    if (txtWriter != null)
                    {
                        if (multiOutput)
                        {
                            MultiXmlTextWriter mw = new MultiXmlTextWriter(txtWriter, output.XmlResolver);

                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            xmlWriter = XmlWriter.Create(txtWriter, this.compiledTransform.OutputSettings);
                        }
                        break;
                    }
                    Stream strm = output.destination as Stream;
                    if (strm != null)
                    {
                        if (multiOutput)
                        {
                            MultiXmlTextWriter mw = new MultiXmlTextWriter(strm, this.compiledTransform.OutputSettings.Encoding, output.XmlResolver);
                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            xmlWriter = XmlWriter.Create(strm, this.compiledTransform.OutputSettings);
                        }
                        break;
                    }
                    String str = output.destination as String;
                    if (str != null)
                    {
                        if (multiOutput)
                        {
                            MultiXmlTextWriter mw = new MultiXmlTextWriter(str, this.compiledTransform.OutputSettings.Encoding);
                            if (this.compiledTransform.OutputSettings.Indent)
                            {
                                mw.Formatting = Formatting.Indented;
                            }
                            xmlWriter = mw;
                        }
                        else
                        {
                            XmlWriterSettings outputSettings = this.compiledTransform.OutputSettings.Clone();
                            outputSettings.CloseOutput = true;
                            // BugBug: We should read doc before creating output file in case they are the same
                            xmlWriter = XmlWriter.Create(str, outputSettings);
                        }
                        break;
                    }
                    throw new Exception("Unexpected XmlOutput");
                }
            }
            try
            {
                TransformToWriter(input, arguments, xmlWriter);
            }
            finally
            {
                if (closeWriter)
                {
                    xmlWriter.Close();
                }
            }
            return(output);
        }
Example #26
0
        public void TestTextReaderInput()
        {
            MvpXslTransform xslt = GetMvpXslTransform();
			XmlInput input = new XmlInput(new StreamReader("../../Common/northwind.xml", Encoding.GetEncoding("windows-1252")));
            MemoryStream ms = new MemoryStream();
            xslt.Transform(input, Arguments, new XmlOutput(ms));
            CompareResults(standardResult, ms.ToArray());
        }
Example #27
0
        public void TestIXPathNavigableInput()
        {
            MvpXslTransform xslt = GetMvpXslTransform();
			XmlInput input = new XmlInput(new XPathDocument("../../Common/northwind.xml", XmlSpace.Preserve));
            MemoryStream ms = new MemoryStream();
            xslt.Transform(input, Arguments, new XmlOutput(ms));
            CompareResults(standardResult, ms.ToArray());
        }
Example #28
0
        public void TestXmlReaderInput2()
        {
            MvpXslTransform xslt = GetMvpXslTransform();
			XmlInput input = new XmlInput(XmlReader.Create("../../Common/northwind.xml"));
            MemoryStream ms = new MemoryStream();
            XmlReader r = xslt.Transform(input, Arguments);
            XmlWriter w = XmlWriter.Create(ms);
            w.WriteNode(r, false);
            w.Close();
            CompareResults(standardResult, ms.ToArray());
        }
Example #29
0
        /// <summary>
        /// Transforms to XmlWriter.
        /// </summary>
        protected void TransformToWriter(XmlInput defaultDocument, XsltArgumentList xsltArgs, XmlWriter targetWriter)
        {
            XmlWriter xmlWriter;

            if (this.supportCharacterMaps && this.characterMap != null && this.characterMap.Count > 0)
            {
                xmlWriter = new CharacterMappingXmlWriter(targetWriter, this.characterMap);
            }
            else
            {
                xmlWriter = targetWriter;
            }
            if (this.enforceXHTMLOutput)
            {
                xmlWriter = new XhtmlWriter(xmlWriter);
            }
            XsltArgumentList args      = AddExsltExtensionObjectsSync(xsltArgs);
            XmlReader        xmlReader = defaultDocument.source as XmlReader;

            if (xmlReader != null)
            {
                this.compiledTransform.Transform(xmlReader, args, xmlWriter, defaultDocument.resolver);
                return;
            }
            IXPathNavigable nav = defaultDocument.source as IXPathNavigable;

            if (nav != null)
            {
                if (defaultDocument.resolver is DefaultXmlResolver)
                {
                    this.compiledTransform.Transform(nav, args, xmlWriter);
                }
                else
                {
                    TransformIXPathNavigable(nav, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            string str = defaultDocument.source as string;

            if (str != null)
            {
                using (XmlReader reader = XmlReader.Create(str, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            Stream strm = defaultDocument.source as Stream;

            if (strm != null)
            {
                using (XmlReader reader = XmlReader.Create(strm, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            TextReader txtReader = defaultDocument.source as TextReader;

            if (txtReader != null)
            {
                using (XmlReader reader = XmlReader.Create(txtReader, GetReaderSettings(defaultDocument)))
                {
                    this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
                }
                return;
            }
            throw new Exception("Unexpected XmlInput");
        }
Example #30
0
 private void TransformToWriter(XmlInput defaultDocument, XsltArgumentList xsltArgs, XmlWriter xmlWriter)
 {
     XsltArgumentList args = AddExsltExtensionObjects(xsltArgs);
     XmlReader xmlReader = defaultDocument.source as XmlReader;
     if (xmlReader != null)
     {
         this.compiledTransform.Transform(xmlReader, args, xmlWriter, defaultDocument.resolver);
         return;
     }
     IXPathNavigable nav = defaultDocument.source as IXPathNavigable;
     if (nav != null)
     {
         if (defaultDocument.resolver is DefaultXmlResolver)
         {
             this.compiledTransform.Transform(nav, args, xmlWriter);
         }
         else
         {
             TransformIXPathNavigable(nav, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     string str = defaultDocument.source as string;
     if (str != null)
     {
         using (XmlReader reader = XmlReader.Create(str, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     Stream strm = defaultDocument.source as Stream;
     if (strm != null)
     {
         using (XmlReader reader = XmlReader.Create(strm, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     TextReader txtReader = defaultDocument.source as TextReader;
     if (txtReader != null)
     {
         using (XmlReader reader = XmlReader.Create(txtReader, GetReaderSettings(defaultDocument)))
         {
             this.compiledTransform.Transform(reader, args, xmlWriter, defaultDocument.resolver);
         }
         return;
     }
     throw new Exception("Unexpected XmlInput");
 }