/// <summary> /// More http://www.w3.org/TR/REC-xml/#sec-pi. /// </summary> /// <param name="c">The next input character.</param> /// <param name="pi">The processing instruction token.</param> DtdToken ProcessingContent(Char c, DtdPIToken pi) { while (c != Specification.EOF) { if (c == Specification.QM) { c = _src.Next; if (c == Specification.GT) { pi.Content = _stringBuffer.ToString(); return(pi); } _stringBuffer.Append(Specification.QM); } else { _stringBuffer.Append(c); c = _src.Next; } } throw Errors.Xml(ErrorCode.EOF); }
/// <summary> /// More http://www.w3.org/TR/REC-xml/#sec-pi. /// </summary> /// <param name="c">The next input character.</param> /// <param name="pi">The processing instruction token.</param> DtdToken ProcessingTarget(Char c, DtdPIToken pi) { while (c.IsXmlName()) { _stringBuffer.Append(c); c = _stream.Next; } pi.Target = _stringBuffer.ToString(); _stringBuffer.Clear(); if (String.Compare(pi.Target, Tags.XML, StringComparison.OrdinalIgnoreCase) == 0) { return(TextDecl(c)); } if (c == Specification.QM) { c = _stream.Next; if (c == Specification.GT) { return(pi); } } else if (c.IsSpaceCharacter()) { return(ProcessingContent(_stream.Next, pi)); } throw Errors.Xml(ErrorCode.XmlInvalidPI); }
/// <summary> /// More http://www.w3.org/TR/REC-xml/#sec-pi. /// </summary> /// <param name="c">The next input character.</param> /// <param name="pi">The processing instruction token.</param> DtdToken ProcessingContent(Char c, DtdPIToken pi) { while (c != Specification.EOF) { if (c == Specification.QM) { c = _src.Next; if (c == Specification.GT) { pi.Content = _stringBuffer.ToString(); return pi; } _stringBuffer.Append(Specification.QM); } else { _stringBuffer.Append(c); c = _src.Next; } } throw Errors.Xml(ErrorCode.EOF); }
/// <summary> /// More http://www.w3.org/TR/REC-xml/#sec-pi. /// </summary> /// <param name="c">The next input character.</param> /// <param name="pi">The processing instruction token.</param> DtdToken ProcessingTarget(Char c, DtdPIToken pi) { while (c.IsXmlName()) { _stringBuffer.Append(c); c = _stream.Next; } pi.Target = _stringBuffer.ToString(); _stringBuffer.Clear(); if (String.Compare(pi.Target, Tags.XML, StringComparison.OrdinalIgnoreCase) == 0) return TextDecl(c); if (c == Specification.QM) { c = _stream.Next; if(c == Specification.GT) return pi; } else if (c.IsSpaceCharacter()) return ProcessingContent(_stream.Next, pi); throw Errors.Xml(ErrorCode.XmlInvalidPI); }