private void LoadRows(XmlBoundElement rowElem, XmlNode node)
{
Debug.Assert(node != null);
XmlBoundElement be = node as XmlBoundElement;
if (be != null)
{
DataTable dt = _mapper.SearchMatchingTableSchema(rowElem, be);
if (dt != null)
{
DataRow r = GetRowFromElement(be);
Debug.Assert(r == null);
// If the rowElement was just created and has an un-initialized
if (be.ElementState == ElementState.None)
be.ElementState = ElementState.WeakFoliation;
r = dt.CreateEmptyRow();
Bind(r, be);
// the region rowElem is now be
Debug.Assert(be.Row != null);
rowElem = be;
}
}
// recurse down for children
for (XmlNode child = node.FirstChild; child != null; child = child.NextSibling)
LoadRows(rowElem, child);
}