private XmlWriter CreateMemWriter(XmlWriterSettings settings)
        {
            XmlWriterSettings wSettings = settings.Clone();
            wSettings.CloseOutput = false;
            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters = false;
            XmlWriter w = null;

            switch (WriterType)
            {
                case WriterType.UTF8Writer:
                    wSettings.Encoding = Encoding.UTF8;
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    w = WriterHelper.Create(_strWriter, wSettings);
                    break;
                case WriterType.UnicodeWriter:
                    wSettings.Encoding = Encoding.Unicode;
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    w = WriterHelper.Create(_strWriter, wSettings);
                    break;
                case WriterType.WrappedWriter:
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    XmlWriter ww = WriterHelper.Create(_strWriter, wSettings);
                    w = WriterHelper.Create(ww, wSettings);
                    break;
                case WriterType.CharCheckingWriter:
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    XmlWriter cw = WriterHelper.Create(_strWriter, wSettings);
                    XmlWriterSettings cws = settings.Clone();
                    cws.CheckCharacters = true;
                    w = WriterHelper.Create(cw, cws);
                    break;
                case WriterType.UTF8WriterIndent:
                    wSettings.Encoding = Encoding.UTF8;
                    wSettings.Indent = true;
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    w = WriterHelper.Create(_strWriter, wSettings);
                    break;
                case WriterType.UnicodeWriterIndent:
                    wSettings.Encoding = Encoding.Unicode;
                    wSettings.Indent = true;
                    if (_strWriter != null) _strWriter.Dispose();
                    _strWriter = new StringWriter();
                    w = WriterHelper.Create(_strWriter, wSettings);
                    break;
                default:
                    throw new Exception("Unknown writer type");
            }
            return w;
        }
        public XmlWriter CreateMemWriter(XmlWriterUtils utils, Stream writerStream, XmlWriterSettings settings)
        {
            XmlWriterSettings wSettings = settings.Clone();

            wSettings.CloseOutput        = false;
            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters    = false;
            XmlWriter w = null;

            switch (utils.WriterType)
            {
            case WriterType.UTF8Writer:
                wSettings.Encoding = Encoding.UTF8;
                w = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                break;

            case WriterType.UnicodeWriter:
                wSettings.Encoding = Encoding.Unicode;
                w = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                break;

            case WriterType.WrappedWriter:
                XmlWriter ww = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                w = WriterHelper.Create(ww, wSettings, overrideAsync: true, async: utils.Async);
                break;

            case WriterType.CharCheckingWriter:
                XmlWriter         cw  = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                XmlWriterSettings cws = settings.Clone();
                cws.CheckCharacters = true;
                w = WriterHelper.Create(cw, cws, overrideAsync: true, async: utils.Async);
                break;

            case WriterType.CustomWriter:
                wSettings.Async = utils.Async;
                w = new CustomWriter(writerStream, wSettings);
                break;

            case WriterType.UTF8WriterIndent:
                wSettings.Encoding = Encoding.UTF8;
                wSettings.Indent   = true;
                w = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                break;

            case WriterType.UnicodeWriterIndent:
                wSettings.Encoding = Encoding.Unicode;
                wSettings.Indent   = true;
                w = WriterHelper.Create(writerStream, wSettings, overrideAsync: true, async: utils.Async);
                break;

            default:
                throw new Exception("Unknown writer type");
            }
            return(w);
        }
        public static XmlWriterSettings Override(this XmlWriterSettings settings, Action <XmlWriterSettings> overrider)
        {
            var overriddenSettings = settings.Clone();

            overrider(overriddenSettings);
            return(overriddenSettings);
        }
        public static Binding WithSolidHttpTransport(this Binding binding, TestingServer server, XmlWriterSettings writerSettings = null)
        {
            var settings = writerSettings?.Clone() ?? new XmlWriterSettings();

            settings.CloseOutput = false;

            var custom = binding as CustomBinding;

            if (custom == null)
            {
                custom = new CustomBinding(binding);
            }

            var http = custom
                       .Elements
                       .OfType <HttpTransportBindingElement>()
                       .Where(e => e.Scheme == "http" || e.Scheme == "https")
                       .FirstOrDefault()
            ;

            if (http != null)
            {
                var solid = new SolidHttpTransportBindingElement(server, settings);
                custom.Elements.Remove(http);
                custom.Elements.Add(solid);
            }
            return(custom);
        }
        public void Clone_1()
        {
            XmlWriterSettings wSettings = new XmlWriterSettings();

            wSettings.Encoding                = Encoding.UTF8;
            wSettings.OmitXmlDeclaration      = true;
            wSettings.NewLineHandling         = NewLineHandling.Entitize;
            wSettings.NewLineChars            = "\n";
            wSettings.IndentChars             = "                ";
            wSettings.NewLineOnAttributes     = true;
            wSettings.CloseOutput             = true;
            wSettings.CheckCharacters         = false;
            wSettings.ConformanceLevel        = ConformanceLevel.Document;
            wSettings.WriteEndDocumentOnClose = false;

            XmlWriterSettings newSettings = wSettings.Clone();

            CError.Equals(wSettings.Encoding, newSettings.Encoding, "Encoding");
            CError.Equals(wSettings.OmitXmlDeclaration, newSettings.OmitXmlDeclaration, "OmitXmlDeclaration");
            CError.Equals(wSettings.NewLineHandling, newSettings.NewLineHandling, "NewLineHandling");
            CError.Equals(wSettings.NewLineChars, newSettings.NewLineChars, "NewLineChars");
            CError.Equals(wSettings.Indent, newSettings.Indent, "Indent");
            CError.Equals(wSettings.IndentChars, newSettings.IndentChars, "IndentChars");
            CError.Equals(wSettings.NewLineOnAttributes, newSettings.NewLineOnAttributes, "NewLineOnAttributes");
            CError.Equals(wSettings.CloseOutput, newSettings.CloseOutput, "CloseOutput");
            CError.Equals(wSettings.CheckCharacters, newSettings.CheckCharacters, "CheckCharacters");
            CError.Equals(wSettings.ConformanceLevel, newSettings.ConformanceLevel, "ConformanceLevel");
            CError.Equals(wSettings.WriteEndDocumentOnClose, newSettings.WriteEndDocumentOnClose, "WriteEndDocumentOnClose");
        }
Example #6
0
 public AtomFormatter(IEnumerable <ISyndicationAttribute> knownAttributes, XmlWriterSettings settings)
 {
     _buffer = new StringBuilder();
     _writer = XmlUtils.CreateXmlWriter(settings?.Clone() ?? new XmlWriterSettings(),
                                        EnsureAtomNs(knownAttributes ?? Enumerable.Empty <ISyndicationAttribute>()),
                                        _buffer);
 }
Example #7
0
        private static XmlWriterSettings GetWriterSettings(TextWriter writer)
        {
            var result = _writer_settings.Clone();

            result.Encoding     = writer.Encoding;
            result.NewLineChars = writer.NewLine;
            return(result);
        }
Example #8
0
        public object transformToDoc(IXmlDomNode node)
        {
            XmlDocument doc = new XmlDocument();

            doc.PreserveWhitespace = true;

            using (MemoryStream stream = new MemoryStream())
            {
                XmlWriterSettings settings = GetOutputSettings();
                if (settings.Encoding is UTF8Encoding)
                {
                    // no BOM in UTF-8 please!
                    settings          = settings.Clone();
                    settings.Encoding = new UTF8Encoding(false);
                }

                using (XmlWriter writer = XmlWriter.Create(stream, settings))
                {
                    // transform the document
                    try
                    {
                        TransformToWriter(node.UnderlyingObject, xsltArgumentList, writer);
                    }
                    catch (XsltException e)
                    {
                        if (e.InnerException != null)
                        {
                            // ScriptDiedException etc.
                            throw e.InnerException;
                        }

                        PhpException.Throw(PhpError.Warning, e.Message);
                        return(false);
                    }
                    catch (InvalidOperationException e)
                    {
                        PhpException.Throw(PhpError.Warning, e.Message);
                        return(false);
                    }
                }

                stream.Seek(0, SeekOrigin.Begin);

                // build the resulting XML document
                try
                {
                    doc.Load(stream);
                }
                catch (XmlException e)
                {
                    PhpException.Throw(PhpError.Warning, e.Message);
                    return(false);
                }
            }

            return(new DOMDocument(doc));
        }
Example #9
0
        public string GetXML()
        {
            var s = new StringBuilder();
            var x = new XmlWriterSettings();

            x.Indent             = true;
            x.OmitXmlDeclaration = true;
            var w = XmlWriter.Create(s, x);

            WriteXMLContents(w);
            w.Flush();
            x.Clone();
            return(s.ToString());
        }
Example #10
0
        public LiveLogXMLWriter(Stream output, XmlWriterSettings baseSettings, long maxSizeInBytes)
        {
            if (maxSizeInBytes > 0 && maxSizeInBytes % 4 != 0)
            {
                throw new ArgumentException("Max size must be multiple of 4", nameof(maxSizeInBytes));
            }

            this.output               = output;
            this.closeOutput          = baseSettings.CloseOutput;
            this.settings             = baseSettings.Clone();
            this.settings.CloseOutput = false;
            this.settings.Encoding    = unicodeEncodingNoBOM;
            this.maxSize              = maxSizeInBytes;
        }
Example #11
0
        private XmlWriterSettings ToXmlStringSettingsCore(XmlWriterSettings settings)
        {
            // To support document fragments, lower the conformance level
            if (settings == null)
            {
                return(new XmlWriterSettings {
                    OmitXmlDeclaration = true,
                    ConformanceLevel = ConformanceLevel.Auto,
                });
            }
            var result = settings.Clone();

            result.ConformanceLevel = ConformanceLevel.Auto;
            return(settings);
        }
        public static XmlWriterSettings Override(this XmlWriterSettings settings, Action <XmlWriterSettings> overrider)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (overrider == null)
            {
                throw new ArgumentNullException(nameof(overrider));
            }
            var overriddenSettings = settings.Clone();

            overrider(overriddenSettings);
            return(overriddenSettings);
        }
Example #13
0
        public void AsyncPropagation()
        {
            var sw = new StringWriter();
            var s  = new XmlWriterSettings();

            s.Async = true;
            var w = XmlWriter.Create(sw, s);

            var c = s.Clone();

            Assert.IsTrue(c.Async);
            c.Reset();
            Assert.IsFalse(c.Async);

            var w2 = XmlWriter.Create(w, c);

            Assert.IsTrue(w2.Settings.Async);
        }
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'Entitize'", Param = NewLineHandling.Entitize, Priority = 2)]
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'Replace'", Param = NewLineHandling.Replace, Priority = 2)]
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'None'", Param = NewLineHandling.None, Priority = 2)]
        public int EOF_Handling_19()
        {
            if (WriterType == WriterType.UTF8WriterIndent || WriterType == WriterType.UnicodeWriterIndent)
            {
                CError.Skip("skipped");
            }
            XmlWriterSettings wSettings = new XmlWriterSettings();

            wSettings.NewLineHandling = (NewLineHandling)CurVariation.Param;
            wSettings.CheckCharacters = false;
            XmlWriter         ww = CreateMemWriter(wSettings);
            XmlWriterSettings ws = wSettings.Clone();

            ws.NewLineHandling = NewLineHandling.Replace;
            ws.CheckCharacters = true;
            XmlWriter w = WriterHelper.Create(ww, ws);

            string NewLines = "\r \n " + nl;

            w.WriteStartElement("root");
            w.WriteCData(NewLines);
            w.WriteChars(NewLines.ToCharArray(), 0, NewLines.Length);
            w.WriteEndElement();
            w.WriteProcessingInstruction("pi", NewLines);
            w.WriteWhitespace(NewLines);
            w.WriteComment(NewLines);
            w.Dispose();

            string expOut;

            if ((NewLineHandling)CurVariation.Param == NewLineHandling.Entitize)
            {
                expOut = "<root><![CDATA[" + NewLines + "]]>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "</root>" + "<?pi " + NewLines + "?>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "<!--" + NewLines + "-->";
            }
            else
            {
                expOut = ExpectedOutput("<root><![CDATA[" + NewLines + "]]>" + NewLines + "</root><?pi " + NewLines + "?>" + NewLines + "<!--" + NewLines + "-->", NewLineHandling.Replace, false);
            }

            VerifyOutput(expOut);
            return(TEST_PASS);
        }
Example #15
0
        void DoCloseOutputTest(bool close)
        {
            XmlWriterSettings tmp = testSettings.Clone();

            tmp.CloseOutput = close;

            MyStream output = new MyStream();

            using (LiveLogXMLWriter livewriter = new LiveLogXMLWriter(output, tmp, 1000))
            {
                livewriter.BeginWriteMessage(false).WriteString("aaa");
                livewriter.EndWriteMessage();
                livewriter.BeginWriteMessage(false).WriteString("bbb");
                livewriter.EndWriteMessage();
                livewriter.BeginWriteMessage(true).WriteString("ccc");
                livewriter.EndWriteMessage();
            }

            Assert.AreEqual(close, output.IsDisposed);
        }
Example #16
0
        public string GetXML()
        {
            var s = new StringBuilder();
            var x = new XmlWriterSettings();

            //x.ConformanceLevel= ConformanceLevel.Fragment;
            x.Indent             = true;
            x.OmitXmlDeclaration = true;
            var w = XmlWriter.Create(s, x);

            WriteXMLContents(w);
            w.Flush();
            x.Clone();

//#if DEBUG
//            System.Diagnostics.Debug.WriteLine(s.ToString());
//#endif

            return(s.ToString());
        }
Example #17
0
        public object transformToXml(DOMDocument doc)
        {
            // writing to a StringWriter would result in forcing UTF-16 encoding
            using (MemoryStream stream = new MemoryStream())
            {
                XmlWriterSettings settings = GetOutputSettings();
                if (settings.Encoding is UTF8Encoding)
                {
                    // no BOM in UTF-8 please!
                    settings          = settings.Clone();
                    settings.Encoding = new UTF8Encoding(false);
                }

                using (XmlWriter writer = XmlWriter.Create(stream, settings))
                {
                    // transform the document
                    try
                    {
                        TransformToWriter(doc.XmlNode, xsltArgumentList, writer);
                    }
                    catch (XsltException e)
                    {
                        if (e.InnerException != null)
                        {
                            // ScriptDiedException etc.
                            throw e.InnerException;
                        }

                        PhpException.Throw(PhpError.Warning, e.Message);
                        return(false);
                    }
                    catch (InvalidOperationException e)
                    {
                        PhpException.Throw(PhpError.Warning, e.Message);
                        return(false);
                    }
                }

                return(new PhpBytes(stream.ToArray()));
            }
        }
Example #18
0
 public IServiceRepository Get(IServiceRepository parameter)
 => parameter.RegisterInstance(Encoding.UTF8)
 .RegisterInstance(_names)
 .RegisterInstance(_reader.Clone())
 .RegisterInstance(_writer.Clone())
 .RegisterInstance <IIdentifierFormatter>(IdentifierFormatter.Default)
 .RegisterInstance <IReaderFormatter>(ReaderFormatter.Default)
 .RegisterInstance <IFormattedContentSpecification>(FormattedContentSpecification.Default)
 .RegisterInstance <IListContentsSpecification>(
     new ListContentsSpecification(
         IsTypeSpecification <
             IListInnerContent>
         .Default
         .And(ElementSpecification
              .Default)))
 .Register <IInnerContentActivation, XmlInnerContentActivation>()
 .Register <IFormatReaderContexts, FormatReaderContexts>()
 .Register <IFormatWriters <System.Xml.XmlWriter>, FormatWriters>()
 .Register <IXmlReaderFactory, XmlReaderFactory>()
 .Register <IFormatReaders <System.Xml.XmlReader>, FormatReaders>()
 .Register <IExtendedXmlSerializer, ExtendedXmlSerializer>();
        public void EOF_Handling_19(XmlWriterUtils utils, NewLineHandling nlHandling)
        {
            XmlWriterSettings wSettings = new XmlWriterSettings();

            wSettings.NewLineHandling = nlHandling;
            wSettings.CheckCharacters = false;
            XmlWriter         ww = CreateMemWriter(utils, wSettings);
            XmlWriterSettings ws = wSettings.Clone();

            ws.NewLineHandling = NewLineHandling.Replace;
            ws.CheckCharacters = true;
            XmlWriter w = WriterHelper.Create(ww, ws, overrideAsync: true, async: utils.Async);

            string NewLines = "\r \n " + Environment.NewLine;

            w.WriteStartElement("root");
            w.WriteCData(NewLines);
            w.WriteChars(NewLines.ToCharArray(), 0, NewLines.Length);
            w.WriteEndElement();
            w.WriteProcessingInstruction("pi", NewLines);
            w.WriteWhitespace(NewLines);
            w.WriteComment(NewLines);
            w.Dispose();

            string expOut;

            if (nlHandling == NewLineHandling.Entitize)
            {
                expOut = "<root><![CDATA[" + NewLines + "]]>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "</root>" + "<?pi " + NewLines + "?>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "<!--" + NewLines + "-->";
            }
            else
            {
                expOut = ExpectedOutput("<root><![CDATA[" + NewLines + "]]>" + NewLines + "</root><?pi " + NewLines + "?>" + NewLines + "<!--" + NewLines + "-->", NewLineHandling.Replace, false);
            }

            VerifyOutput(expOut);
            return;
        }
Example #20
0
        private bool TransformInternal(IXPathNavigable input, Stream stream)
        {
            XmlWriterSettings settings = GetOutputSettings();

            if (settings.Encoding is UTF8Encoding)
            {
                // no BOM in UTF-8 please!
                settings          = settings.Clone();
                settings.Encoding = new UTF8Encoding(false);
            }

            using (XmlWriter writer = XmlWriter.Create(stream, settings))
            {
                // transform the document
                try
                {
                    TransformToWriter(input, xsltArgumentList, writer);
                }
                catch (XsltException e)
                {
                    if (e.InnerException != null)
                    {
                        // ScriptDiedException etc.
                        throw e.InnerException;
                    }

                    PhpException.Throw(PhpError.Warning, e.Message);
                    return(false);
                }
                catch (InvalidOperationException e)
                {
                    PhpException.Throw(PhpError.Warning, e.Message);
                    return(false);
                }
            }

            return(true);
        }
 //[Variation(Desc = "NamespaceHandling wrap with OmitDuplicates.Default", Param = NamespaceHandling.Default)]
 //[Variation(Desc = "NamespaceHandling wrap with OmitDuplicates.OmitDuplicates", Param = NamespaceHandling.OmitDuplicates)]
 public int NS_Handling_4b()
 {
     XmlWriterSettings wSettings = new XmlWriterSettings();
     wSettings.NamespaceHandling = (NamespaceHandling)this.CurVariation.Param;
     using (XmlWriter ww = CreateMemWriter(wSettings))
     {
         XmlWriterSettings ws = wSettings.Clone();
         ws.NamespaceHandling = NamespaceHandling.OmitDuplicates;
         ws.CheckCharacters = true;
         using (XmlWriter w = WriterHelper.Create(ww, ws))
         {
             CError.Compare(w != null, "XmlWriter creation failed");
             CError.Compare(w.Settings.NamespaceHandling, (NamespaceHandling)this.CurVariation.Param, "Invalid NamespaceHandling assignment");
         }
     }
     return TEST_PASS;
 }
Example #22
0
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'Entitize'", Param = NewLineHandling.Entitize, Priority = 2)]
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'Replace'", Param = NewLineHandling.Replace, Priority = 2)]
        //[Variation(Desc = "Wrapped writer tests for various types of nodes with 'None'", Param = NewLineHandling.None, Priority = 2)]
        public int EOF_Handling_19()
        {
            if (WriterType == WriterType.UTF8WriterIndent || WriterType == WriterType.UnicodeWriterIndent)
                CError.Skip("skipped");
            XmlWriterSettings wSettings = new XmlWriterSettings();
            wSettings.NewLineHandling = (NewLineHandling)CurVariation.Param;
            wSettings.CheckCharacters = false;
            XmlWriter ww = CreateMemWriter(wSettings);
            XmlWriterSettings ws = wSettings.Clone();
            ws.NewLineHandling = NewLineHandling.Replace;
            ws.CheckCharacters = true;
            XmlWriter w = WriterHelper.Create(ww, ws);

            string NewLines = "\r \n " + nl;

            w.WriteStartElement("root");
            w.WriteCData(NewLines);
            w.WriteChars(NewLines.ToCharArray(), 0, NewLines.Length);
            w.WriteEndElement();
            w.WriteProcessingInstruction("pi", NewLines);
            w.WriteWhitespace(NewLines);
            w.WriteComment(NewLines);
            w.Dispose();

            string expOut;
            if ((NewLineHandling)CurVariation.Param == NewLineHandling.Entitize)
                expOut = "<root><![CDATA[" + NewLines + "]]>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "</root>" + "<?pi " + NewLines + "?>" + ExpectedOutput(NewLines, NewLineHandling.Entitize, false) + "<!--" + NewLines + "-->";
            else
                expOut = ExpectedOutput("<root><![CDATA[" + NewLines + "]]>" + NewLines + "</root><?pi " + NewLines + "?>" + NewLines + "<!--" + NewLines + "-->", NewLineHandling.Replace, false);

            VerifyOutput(expOut);
            return TEST_PASS;
        }
        private XmlWriter CreateMemWriter(XmlWriterSettings settings)
        {
            XmlWriterSettings wSettings = settings.Clone();

            wSettings.CloseOutput        = false;
            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters    = false;
            XmlWriter w = null;

            switch (WriterType)
            {
            case WriterType.UTF8Writer:
                wSettings.Encoding = Encoding.UTF8;
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                w          = WriterHelper.Create(_strWriter, wSettings);
                break;

            case WriterType.UnicodeWriter:
                wSettings.Encoding = Encoding.Unicode;
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                w          = WriterHelper.Create(_strWriter, wSettings);
                break;

            case WriterType.WrappedWriter:
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                XmlWriter ww = WriterHelper.Create(_strWriter, wSettings);
                w = WriterHelper.Create(ww, wSettings);
                break;

            case WriterType.CharCheckingWriter:
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                XmlWriter         cw  = WriterHelper.Create(_strWriter, wSettings);
                XmlWriterSettings cws = settings.Clone();
                cws.CheckCharacters = true;
                w = WriterHelper.Create(cw, cws);
                break;

            case WriterType.UTF8WriterIndent:
                wSettings.Encoding = Encoding.UTF8;
                wSettings.Indent   = true;
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                w          = WriterHelper.Create(_strWriter, wSettings);
                break;

            case WriterType.UnicodeWriterIndent:
                wSettings.Encoding = Encoding.Unicode;
                wSettings.Indent   = true;
                if (_strWriter != null)
                {
                    _strWriter.Dispose();
                }
                _strWriter = new StringWriter();
                w          = WriterHelper.Create(_strWriter, wSettings);
                break;

            default:
                throw new Exception("Unknown writer type");
            }
            return(w);
        }
Example #24
0
        public XmlWriter CreateMemWriter(Stream writerStream, XmlWriterSettings settings)
        {
            XmlWriterSettings wSettings = settings.Clone();
            wSettings.CloseOutput = false;
            wSettings.OmitXmlDeclaration = true;
            wSettings.CheckCharacters = false;
            XmlWriter w = null;

            switch (WriterType)
            {
                case WriterType.UTF8Writer:
                    wSettings.Encoding = Encoding.UTF8;
                    w = WriterHelper.Create(writerStream, wSettings);
                    break;
                case WriterType.UnicodeWriter:
                    wSettings.Encoding = Encoding.Unicode;
                    w = WriterHelper.Create(writerStream, wSettings);
                    break;
                case WriterType.WrappedWriter:
                    XmlWriter ww = WriterHelper.Create(writerStream, wSettings);
                    w = WriterHelper.Create(ww, wSettings);
                    break;
                case WriterType.CharCheckingWriter:
                    XmlWriter cw = WriterHelper.Create(writerStream, wSettings);
                    XmlWriterSettings cws = settings.Clone();
                    cws.CheckCharacters = true;
                    w = WriterHelper.Create(cw, cws);
                    break;
                case WriterType.CustomWriter:
                    w = new CustomWriter(writerStream, wSettings);
                    break;
                case WriterType.UTF8WriterIndent:
                    wSettings.Encoding = Encoding.UTF8;
                    wSettings.Indent = true;
                    w = WriterHelper.Create(writerStream, wSettings);
                    break;
                case WriterType.UnicodeWriterIndent:
                    wSettings.Encoding = Encoding.Unicode;
                    wSettings.Indent = true;
                    w = WriterHelper.Create(writerStream, wSettings);
                    break;
                default:
                    throw new Exception("Unknown writer type");
            }
            return w;
        }
Example #25
0
        //[Variation(id=2, Desc="Test for Clone()", Pri=0)]
        public int Clone_1()
        {
            XmlWriterSettings wSettings = new XmlWriterSettings();
            wSettings.Encoding = Encoding.UTF8;
            wSettings.OmitXmlDeclaration = true;
            wSettings.NewLineHandling = NewLineHandling.Entitize;
            wSettings.NewLineChars = "\n";
            wSettings.IndentChars = "                ";
            wSettings.NewLineOnAttributes = true;
            wSettings.CloseOutput = true;
            wSettings.CheckCharacters = false;
            wSettings.ConformanceLevel = ConformanceLevel.Document;
            wSettings.WriteEndDocumentOnClose = false;

            XmlWriterSettings newSettings = wSettings.Clone();

            CError.Equals(wSettings.Encoding, newSettings.Encoding, "Encoding");
            CError.Equals(wSettings.OmitXmlDeclaration, newSettings.OmitXmlDeclaration, "OmitXmlDeclaration");
            CError.Equals(wSettings.NewLineHandling, newSettings.NewLineHandling, "NewLineHandling");
            CError.Equals(wSettings.NewLineChars, newSettings.NewLineChars, "NewLineChars");
            CError.Equals(wSettings.Indent, newSettings.Indent, "Indent");
            CError.Equals(wSettings.IndentChars, newSettings.IndentChars, "IndentChars");
            CError.Equals(wSettings.NewLineOnAttributes, newSettings.NewLineOnAttributes, "NewLineOnAttributes");
            CError.Equals(wSettings.CloseOutput, newSettings.CloseOutput, "CloseOutput");
            CError.Equals(wSettings.CheckCharacters, newSettings.CheckCharacters, "CheckCharacters");
            CError.Equals(wSettings.ConformanceLevel, newSettings.ConformanceLevel, "ConformanceLevel");
            CError.Equals(wSettings.WriteEndDocumentOnClose, newSettings.WriteEndDocumentOnClose, "WriteEndDocumentOnClose");

            return TEST_PASS;
        }
Example #26
0
        XmlWriter CreateWriterImpl()
        {
            this.CleanUp();

            switch (writerType1)
            {
            case WriterType.UTF8Writer:

                _writerStream                = new MemoryStream();
                _wSettings.CloseOutput       = false;
                _wSettings.Encoding          = Encoding.UTF8;
                _wSettings.NamespaceHandling = NamespaceHandling.Default;
                _xmlWriter = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                break;

            case WriterType.UnicodeWriter:
                _writerStream                = new MemoryStream();
                _wSettings.CloseOutput       = false;
                _wSettings.Encoding          = Encoding.Unicode;
                _wSettings.NamespaceHandling = NamespaceHandling.OmitDuplicates;
                _xmlWriter = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                break;

            case WriterType.CustomWriter:
                _writerStream          = new MemoryStream();
                _wSettings.CloseOutput = false;
                if (_overrideAsync)
                {
                    _wSettings.Async = _async;
                }
                _xmlWriter = new CustomWriter(_writerStream, _wSettings);
                FilePathUtil.addStream(_fileName, _writerStream);
                break;

            case WriterType.UTF8WriterIndent:
                _writerStream          = new MemoryStream();
                _wSettings.CloseOutput = false;
                _wSettings.Encoding    = Encoding.UTF8;
                _wSettings.Indent      = true;
                _xmlWriter             = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                break;

            case WriterType.UnicodeWriterIndent:
                _writerStream          = new MemoryStream();
                _wSettings.CloseOutput = false;
                _wSettings.Encoding    = Encoding.Unicode;
                _wSettings.Indent      = true;
                _xmlWriter             = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                break;

            case WriterType.CharCheckingWriter:
                _writerStream              = new MemoryStream();
                _wSettings.CloseOutput     = false;
                _wSettings.CheckCharacters = false;
                XmlWriter ww = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                XmlWriterSettings ws = _wSettings.Clone();
                ws.CheckCharacters = true;
                _xmlWriter         = WriterHelper.Create(ww, ws, _overrideAsync, _async);
                break;

            case WriterType.WrappedWriter:
                _writerStream          = new MemoryStream();
                _wSettings.CloseOutput = false;
                XmlWriter w = WriterHelper.Create(_writerStream, _wSettings, _overrideAsync, _async);
                FilePathUtil.addStream(_fileName, _writerStream);
                _xmlWriter = WriterHelper.Create(w, _wSettings, _overrideAsync, _async);
                break;

            default:
                throw new Exception("Incorrect writer type");
            }
            return(_xmlWriter);
        }
Example #27
0
 public RssFormatter(IEnumerable <ISyndicationAttribute> knownAttributes, XmlWriterSettings settings)
 {
     _buffer = new StringBuilder();
     _writer = XmlUtils.CreateXmlWriter(settings?.Clone() ?? new XmlWriterSettings(), knownAttributes, _buffer);
 }