/// <summary> /// More http://www.w3.org/TR/REC-xml/#NT-Attribute. /// </summary> /// <param name="tag">The current tag token.</param> private XmlToken AttributeName(XmlTagToken tag) { var c = GetNext(); while (c.IsXmlName()) { StringBuffer.Append(c); c = GetNext(); } var name = FlushBuffer(); if (!String.IsNullOrEmpty(tag.GetAttribute(name))) { throw XmlParseError.XmlUniqueAttribute.At(GetCurrentPosition()); } tag.AddAttribute(name); if (c.IsSpaceCharacter()) { do { c = GetNext(); }while (c.IsSpaceCharacter()); } if (c != Symbols.Equality) { throw XmlParseError.XmlInvalidAttribute.At(GetCurrentPosition()); } return(AttributeBeforeValue(tag)); }