示例#1
0
        internal void EncodeNormalValue(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            writer.WriteElement("Test", "Value");

            Assert.Equal("<Test>Value</Test>", writer.ToString());
        }
示例#2
0
        internal void EncodeSyntaxCharacters(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            writer.WriteElement("Test", "<&>");

            Assert.Equal("<Test>&lt;&amp;&gt;</Test>", writer.ToString());
        }
示例#3
0
    internal void EncodeNormalValue(XmlStandard standard)
    {
        FastXmlWriter writer = new FastXmlWriter(50, standard);

        writer.WriteElement("Test", "Value");

        Assert.Equal("<Test>Value</Test>", Encoding.UTF8.GetString(writer.GetBytes()));
    }
示例#4
0
        internal void EncodeSurrogatePair(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            writer.WriteElement("Test", "💩");

            string actual = writer.ToString();

            Assert.Equal("<Test>💩</Test>", actual);
        }
示例#5
0
        /// <summary>Create a new <see cref="FastXmlWriter" /> with the specified capacity.</summary>
        /// <param name="capacity">The capacity of the XML writer. Note that it does not expand any further.</param>
        /// <param name="xmlStandard">The XML standard to use</param>
        /// <param name="invalidChars">What should the writer do when it encounters an invalid character</param>
        /// <param name="discouragedChars">What should the writer do when it encounters a discouraged character</param>
        public FastXmlWriter(int capacity, XmlStandard xmlStandard = XmlStandard.Xml10, XmlCharMode invalidChars = XmlCharMode.ThrowException, XmlCharMode discouragedChars = XmlCharMode.ThrowException)
        {
            if (invalidChars == XmlCharMode.EntityEncode)
            {
                throw new ArgumentException("EntityEncode mode is not supported for invalid XML characters");
            }

            _xmlStandard         = xmlStandard;
            _invalidCharMode     = invalidChars;
            _discouragedCharMode = discouragedChars;

            _xml = new StringBuilder(capacity);
        }
示例#6
0
        internal void XDocumentCompatibility(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(ushort.MaxValue + 200, standard, XmlCharMode.Omit, XmlCharMode.Omit);
            StringBuilder sb     = new StringBuilder(ushort.MaxValue);

            for (int i = 0; i < ushort.MaxValue; i++)
            {
                sb.Append((char)i);
            }

            writer.WriteElement("test", sb.ToString());

            XDocument _ = XDocument.Parse(writer.ToString());
        }
示例#7
0
    internal void XmlDocumentCompatibility(XmlStandard standard)
    {
        FastXmlWriter writer = new FastXmlWriter(ushort.MaxValue + 200, standard, XmlCharMode.Omit, XmlCharMode.Omit);
        StringBuilder sb     = new StringBuilder(ushort.MaxValue);

        for (int i = 0; i < ushort.MaxValue; i++)
        {
            sb.Append((char)i);
        }

        writer.WriteElement("test", sb.ToString());

        XmlDocument xmlDoc = new XmlDocument();

        using MemoryStream ms = new MemoryStream(writer.GetBytes());
        xmlDoc.Load(ms);
    }
示例#8
0
        internal void EncodeDiscouragedValue(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            Assert.Throws <XmlException>(() => writer.WriteElement("Test", "Value" + '\u007F')); // \u007F is discouraged in both standards
        }
示例#9
0
        internal void EncodeNullValue(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            Assert.Throws <XmlException>(() => writer.WriteElement("Test", "Value\0Value"));
        }
示例#10
0
        internal void EncodeInvalidSurrogateValue(XmlStandard standard)
        {
            FastXmlWriter writer = new FastXmlWriter(50, standard);

            Assert.Throws <XmlException>(() => writer.WriteElement("Test", "Value" + '\uD800')); //standalone high surrogate
        }