This class normalizes the concept of parent for XmlTreeNode and XmlNode node. The reason for this is that XmlTreeNode.Parent returns null on root level nodes and XmlNode.ParentNode returns null on XmlAttributes. So this class provides one uniform way to insert and remove both TreeNodes and their associated XmlNodes.