void InitCollections()
        {
            nodeTypes = new ExtensionNodeTypeCollection(this);
            nodeSets  = new NodeSetIdCollection();

            foreach (XmlNode n in Element.ChildNodes)
            {
                XmlElement nt = n as XmlElement;
                if (nt == null)
                {
                    continue;
                }
                if (nt.LocalName == "ExtensionNode")
                {
                    ExtensionNodeType etype = new ExtensionNodeType(nt);
                    nodeTypes.Add(etype);
                }
                else if (nt.LocalName == "ExtensionNodeSet")
                {
                    string id = nt.GetAttribute("id");
                    if (id.Length > 0)
                    {
                        nodeSets.Add(id);
                    }
                    else
                    {
                        missingNodeSetId = true;
                    }
                }
            }
        }
 internal void MergeWith(string thisAddinId, NodeSetIdCollection other)
 {
     foreach (string[] ns in other.list)
     {
         if (ns [1] != thisAddinId && !list.Contains(ns))
         {
             list.Add(ns);
         }
     }
 }
 internal void Clear()
 {
     Element   = null;
     nodeSets  = null;
     nodeTypes = null;
 }