static bool IsXml(string data, out bool isFragment, out bool isHtml)
{
string trimedData = data.Trim();
bool result = trimedData.StartsWith("<") && !trimedData.StartsWith("<![CDATA[");
isFragment = false;
isHtml = false;
if (result)
{
using (TextReader tr = new StringReader(trimedData))
{
using (XmlReader reader = XmlReader.Create(tr, IsXmlReaderSettings))
{
try
{
long nodeCount = 0;
while (reader.Read() && !isHtml && !isFragment && reader.NodeType != XmlNodeType.Document)
{
nodeCount++;
if (reader.NodeType != XmlNodeType.CDATA)
{
if (reader.NodeType == XmlNodeType.Element && reader.Name.ToLower() == "html" && reader.Depth == 0)
{
isHtml = true;
result = false;
}
if (reader.NodeType == XmlNodeType.Element && nodeCount > 1 && reader.Depth == 0)
{
isFragment = true;
}
}
}
}
catch (Exception ex)
{
Dev2Logger.Log.Error("DataListUtil", ex);
tr.Close();
reader.Close();
isFragment = false;
result = false;
}
}
}
}
return result;
}
}