private static void DeserializeElement(XmlNode node, IConfigurationStore store, IConversionManager converter)
 {
     if (ContainersNodeName.Equals(node.Name))
     {
         DeserializeContainers(node.ChildNodes, store);
     }
     else if (FacilitiesNodeName.Equals(node.Name))
     {
         DeserializeFacilities(node.ChildNodes, store, converter);
     }
     else if (InstallersNodeName.Equals(node.Name))
     {
         DeserializeInstallers(node.ChildNodes, store);
     }
     else if (ComponentsNodeName.Equals(node.Name))
     {
         DeserializeComponents(node.ChildNodes, store, converter);
     }
     else
     {
         string message = string.Format(
             "Configuration parser encountered <{0}>, but it was expecting to find " +
             "<{1}>, <{2}> or <{3}>. There might be either a typo on <{0}> or " +
             "you might have forgotten to nest it properly.",
             node.Name, ContainersNodeName, FacilitiesNodeName, ComponentsNodeName);
         throw new Exception(message);
     }
 }
        protected void Deserialize(XmlNode section, IConfigurationStore store)
        {
            foreach (XmlNode node in section)
            {
                if (node.NodeType != XmlNodeType.Element)
                {
                    continue;
                }

                if (IncludeNodeName.Equals(node.Name))
                {
                    ProcessInclude(node, store);
                }
                else if (PropertiesNodeName.Equals(node.Name))
                {
                    DeserializeProperties(node.ChildNodes);
                }
                else if (FacilitiesNodeName.Equals(node.Name))
                {
                    DeserializeFacilities(node.ChildNodes, store);
                }
                else if (ComponentsNodeName.Equals(node.Name))
                {
                    DeserializeComponents(node.ChildNodes, store);
                }
            }
        }