private void PromoteInnerRegions(XmlNode parent)
{
Debug.Assert(parent != null);
Debug.Assert(parent.NodeType != XmlNodeType.Attribute); // We need to get get the grand-parent region
Debug.Assert(parent != DocumentElement); // We cannot promote children of the DocumentElement
XmlNode prevSibling = parent;
XmlBoundElement parentRegionRowElem;
_mapper.GetRegion(parent.ParentNode, out parentRegionRowElem);
TreeIterator iter = new TreeIterator(parent);
bool fMore = iter.NextRowElement();
while (fMore)
{
Debug.Assert(iter.CurrentNode is XmlBoundElement && ((XmlBoundElement)(iter.CurrentNode)).Row != null);
XmlBoundElement rowElemChild = (XmlBoundElement)(iter.CurrentNode);
fMore = iter.NextRightRowElement();
PromoteChild(rowElemChild, prevSibling);
SetNestedParentRegion(rowElemChild, parentRegionRowElem);
}
}