internal override XmlNode CreateXmlNode(XmlNode topNode)
 {
     TopNode = topNode;
     CreateNode(leftPath);
     topNode.AppendChild(_left.CreateXmlNode(TopNode.SelectSingleNode(leftPath, NameSpaceManager)));
     CreateNode(rightPath);
     topNode.AppendChild(_right.CreateXmlNode(TopNode.SelectSingleNode(rightPath, NameSpaceManager)));
     CreateNode(topPath);
     topNode.AppendChild(_top.CreateXmlNode(TopNode.SelectSingleNode(topPath, NameSpaceManager)));
     CreateNode(bottomPath);
     topNode.AppendChild(_bottom.CreateXmlNode(TopNode.SelectSingleNode(bottomPath, NameSpaceManager)));
     CreateNode(diagonalPath);
     topNode.AppendChild(_diagonal.CreateXmlNode(TopNode.SelectSingleNode(diagonalPath, NameSpaceManager)));
     if (_diagonalUp)
     {
         SetXmlNodeString(diagonalUpPath, "1");
     }
     if (_diagonalDown)
     {
         SetXmlNodeString(diagonalDownPath, "1");
     }
     return(topNode);
 }