private void ReadElement (DataRow row)
{
// Consume attributes
if (reader.MoveToFirstAttribute ()) {
do {
if (reader.NamespaceURI == XmlConstants.XmlnsNS
#if NET_2_0
|| reader.NamespaceURI == XmlConstants.XmlNS
#endif
)
continue;
ReadElementAttribute (row);
} while (reader.MoveToNextAttribute ());
reader.MoveToElement ();
}
// If not empty element, read content.
if (reader.IsEmptyElement) {
reader.Skip ();
reader.MoveToContent ();
} else {
int depth = reader.Depth;
reader.Read ();
reader.MoveToContent ();
do {
ReadElementContent (row);
} while (reader.Depth > depth && !reader.EOF);
if (reader.IsEmptyElement)
reader.Read ();
if (reader.NodeType == XmlNodeType.EndElement)
reader.ReadEndElement ();
reader.MoveToContent ();
}
}