Exemplo n.º 1
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-SDDecl.
        /// </summary>
        /// <param name="decl">The current declaration token.</param>
        private XmlToken DeclarationStandaloneBeforeValue(XmlDeclarationToken decl)
        {
            var c = SkipSpaces();

            if (c != Symbols.DoubleQuote && c != Symbols.SingleQuote)
            {
                throw XmlParseError.XmlDeclarationInvalid.At(GetCurrentPosition());
            }

            return(DeclarationStandaloneValue(decl, c));
        }
Exemplo n.º 2
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-SDDecl.
        /// </summary>
        /// <param name="decl">The current declaration token.</param>
        private XmlToken DeclarationStandaloneAfterName(XmlDeclarationToken decl)
        {
            var c = SkipSpaces();

            if (c != Symbols.Equality)
            {
                throw XmlParseError.XmlDeclarationInvalid.At(GetCurrentPosition());
            }

            return(DeclarationStandaloneBeforeValue(decl));
        }
Exemplo n.º 3
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-SDDecl.
        /// </summary>
        /// <param name="decl">The current declaration token.</param>
        private XmlToken DeclarationAfterEncoding(XmlDeclarationToken decl)
        {
            var c = SkipSpaces();

            if (ContinuesWithSensitive(AttributeNames.Standalone))
            {
                Advance(9);
                return(DeclarationStandaloneAfterName(decl));
            }

            return(DeclarationEnd(c, decl));
        }
Exemplo n.º 4
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-XMLDecl.
        /// </summary>
        /// <param name="c">The next input character.</param>
        /// <param name="decl">The current declaration token.</param>
        private XmlDeclarationToken DeclarationEnd(Char c, XmlDeclarationToken decl)
        {
            while (c.IsSpaceCharacter())
            {
                c = GetNext();
            }

            if (c != Symbols.QuestionMark || GetNext() != Symbols.GreaterThan)
            {
                throw XmlParseError.XmlDeclarationInvalid.At(GetCurrentPosition());
            }

            return(decl);
        }
Exemplo n.º 5
0
        /// <summary>
        /// More http://www.w3.org/TR/REC-xml/#NT-EncodingDecl.
        /// </summary>
        /// <param name="decl">The current declaration token.</param>
        private XmlToken DeclarationEncodingBeforeValue(XmlDeclarationToken decl)
        {
            var c = SkipSpaces();

            if (c == Symbols.DoubleQuote || c == Symbols.SingleQuote)
            {
                var q = c;
                c = GetNext();

                if (c.IsLetter())
                {
                    StringBuffer.Append(c);
                    return(DeclarationEncodingValue(decl, q));
                }
            }

            throw XmlParseError.XmlDeclarationInvalid.At(GetCurrentPosition());
        }