private void ReadTopLevelElement ()
{
if (mode == XmlReadMode.Fragment &&
(XmlHelper.Decode (reader.LocalName) !=
dataset.DataSetName ||
reader.NamespaceURI != dataset.Namespace))
reader.Skip ();
else if (mode == XmlReadMode.Fragment ||
IsTopLevelDataSet ()) {
int depth = reader.Depth;
reader.Read ();
reader.MoveToContent ();
do {
ReadDataSetContent ();
} while (reader.Depth > depth && !reader.EOF);
if (reader.NodeType == XmlNodeType.EndElement)
reader.ReadEndElement ();
reader.MoveToContent ();
}
else
ReadDataSetContent ();
}