Exemplo n.º 1
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-Attribute.
        /// </summary>
        /// <param name="tag">The current tag token.</param>
        /// <param name="quote">The quote character.</param>
        private XmlToken AttributeValue(XmlTagToken tag, Char quote)
        {
            var c = GetNext();

            while (c != quote)
            {
                if (c == Symbols.EndOfFile)
                {
                    throw XmlParseError.EOF.At(GetCurrentPosition());
                }

                if (c == Symbols.LessThan)
                {
                    throw XmlParseError.XmlLtInAttributeValue.At(GetCurrentPosition());
                }

                if (c == Symbols.Ampersand)
                {
                    StringBuffer.Append(CharacterReference());
                }
                else
                {
                    StringBuffer.Append(c);
                }

                c = GetNext();
            }

            tag.SetAttributeValue(FlushBuffer());
            return(AttributeAfterValue(tag));
        }