Boolean DeclarationNameBefore(Char c, DtdToken decl) { while (c.IsSpaceCharacter()) c = src.Next; if (c == Specification.NULL) { RaiseErrorOccurred(ErrorCode.NULL); stringBuffer.Clear(); stringBuffer.Append(Specification.REPLACEMENT); return DeclarationName(src.Next, decl); } else if (c == Specification.GT) { RaiseErrorOccurred(ErrorCode.TagClosedWrong); return false; } else if (c == Specification.EOF) { RaiseErrorOccurred(ErrorCode.EOF); src.Back(); return false; } stringBuffer.Clear(); stringBuffer.Append(c); return DeclarationName(src.Next, decl); }
/// <summary> /// Consumes the given token. /// </summary> /// <param name="token">The token to consume.</param> void Consume(DtdToken token) { switch (token.Type) { case DtdTokenType.Attribute: _result.AddAttribute(((DtdAttributeToken)token).ToElement()); break; case DtdTokenType.Element: _result.AddElement(((DtdElementToken)token).ToElement()); break; case DtdTokenType.Entity: AddEntity((DtdEntityToken)token); break; case DtdTokenType.Notation: _result.AddNotation(((DtdNotationToken)token).ToElement()); break; case DtdTokenType.TextDecl: throw Errors.Xml(ErrorCode.XmlInvalidPI); case DtdTokenType.Comment: case DtdTokenType.ProcessingInstruction: break; } }
Boolean DeclarationName(Char c, DtdToken decl) { while (true) { if (c.IsSpaceCharacter()) { decl.Name = stringBuffer.ToString(); stringBuffer.Clear(); return DeclarationNameAfter(src.Next); } else if (c == Specification.GT) { decl.Name = stringBuffer.ToString(); return false; } else if (c == Specification.NULL) { RaiseErrorOccurred(ErrorCode.NULL); stringBuffer.Append(Specification.REPLACEMENT); } else if (c == Specification.EOF) { RaiseErrorOccurred(ErrorCode.EOF); src.Back(); decl.Name = stringBuffer.ToString(); return false; } else stringBuffer.Append(c); c = src.Next; } }
void Consume(DtdToken token) { switch (token.Type) { case DtdTokenType.Attribute: _result.AddAttribute(((DtdAttributeToken)token).ToElement()); break; case DtdTokenType.Comment: _result.AddComment(((DtdCommentToken)token).ToElement()); break; case DtdTokenType.Element: _result.AddElement(((DtdElementToken)token).ToElement()); break; case DtdTokenType.Entity: _result.AddEntity(((DtdEntityToken)token).ToElement()); break; case DtdTokenType.Notation: _result.AddNotation(((DtdNotationToken)token).ToElement()); break; case DtdTokenType.ProcessingInstruction: _result.AddProcessingInstruction(((DtdPIToken)token).ToElement()); break; } }
/// <summary> /// Consume the given prolog token (first token to consume). /// </summary> /// <param name="token">The token to consume.</param> void Prolog(DtdToken token) { if (_tokenizer.IsExternal && token.Type == DtdTokenType.TextDecl) { var pi = (DtdDeclToken)token; if (!String.IsNullOrEmpty(pi.Encoding)) { SetEncoding(_src, pi.Encoding); } } else { Consume(token); } }
/// <summary> /// Consume the given prolog token (first token to consume). /// </summary> /// <param name="token">The token to consume.</param> void Prolog(DtdToken token) { if (_tokenizer.IsExternal && token.Type == DtdTokenType.TextDecl) { var pi = (DtdDeclToken)token; if (!String.IsNullOrEmpty(pi.Encoding)) SetEncoding(_src, pi.Encoding); } else Consume(token); }
Boolean DeclarationNameBefore(Char c, DtdToken decl) { while (c.IsSpaceCharacter()) c = _src.Next; if (c == Specification.NULL) { RaiseErrorOccurred(ErrorCode.NULL); _stringBuffer.Clear(); _stringBuffer.Append(Specification.REPLACEMENT); return DeclarationName(_src.Next, decl); } else if (c == Specification.GT) { RaiseErrorOccurred(ErrorCode.TagClosedWrong); return false; } else if (c == Specification.EOF) { RaiseErrorOccurred(ErrorCode.EOF); _src.Back(); return false; } _stringBuffer.Clear(); _stringBuffer.Append(c); return DeclarationName(_src.Next, decl); }
Boolean DeclarationName(Char c, DtdToken decl) { while (true) { if (c.IsSpaceCharacter()) { decl.Name = _stringBuffer.ToString(); _stringBuffer.Clear(); return DeclarationNameAfter(_src.Next); } else if (c == Specification.GT) { decl.Name = _stringBuffer.ToString(); return false; } else if (c == Specification.NULL) { RaiseErrorOccurred(ErrorCode.NULL); _stringBuffer.Append(Specification.REPLACEMENT); } else if (c == Specification.EOF) { RaiseErrorOccurred(ErrorCode.EOF); _src.Back(); decl.Name = _stringBuffer.ToString(); return false; } else _stringBuffer.Append(c); c = _src.Next; } }
Boolean DeclarationName(Char c, DtdToken decl) { while (c.IsXmlName()) { _stringBuffer.Append(c); c = _stream.Next; } if (c == Specification.PERCENT) { PEReference(_stream.Next); return DeclarationName(_stream.Current, decl); } decl.Name = _stringBuffer.ToString(); _stringBuffer.Clear(); if (c == Specification.EOF) throw Errors.Xml(ErrorCode.EOF); return c.IsSpaceCharacter(); }