/// <summary> /// Deletes the the given node and its children from its parent. /// Takes care about adjusting the flags. </summary> /// <param name="node"> the top-most node to delete. </param> internal static void DeleteNode(XmpNode node) { XmpNode parent = node.Parent; if (node.Options.Qualifier) { // root is qualifier parent.RemoveQualifier(node); } else { // root is NO qualifier parent.RemoveChild(node); } // delete empty Schema nodes if (!parent.HasChildren() && parent.Options.SchemaNode) { parent.Parent.RemoveChild(parent); } }