private void ProcessAttributes(XmlReader xmlReader, XElement element, IXmlLineInfo lineInfo)
        {
            if (xmlReader.HasAttributes)
            {
                while (xmlReader.MoveToNextAttribute())
                {
                    if (_lastTextRange != null)
                    {
                        _lastTextRange.CloseEndLine = lineInfo.LineNumber;
                        _lastTextRange.CloseEndColumn = lineInfo.LinePosition - 1;
                    }
                    _lastTextRange = new TextRange();
                    _lastTextRange.OpenStartLine = lineInfo.LineNumber;
                    _lastTextRange.OpenStartColumn = lineInfo.LinePosition;

                    XName attributeName = null;
                    if (xmlReader.NamespaceURI == XNamespace.Xmlns.NamespaceName)
                    {
                        if (string.IsNullOrEmpty(xmlReader.Prefix))
                        {
                            attributeName = "xmlns";
                        }
                        else
                        {
                            attributeName = XNamespace.Xmlns + xmlReader.LocalName;
                        }
                    }
                    else
                    {
                        attributeName = XNamespace.Get(xmlReader.NamespaceURI) + xmlReader.LocalName;
                    }
                    var attribute = new XAttribute(attributeName, xmlReader.Value);
                    attribute.SetTextRange(_lastTextRange);
                    element.Add(attribute);
                }
            }
        }