private List<VirtualDiskGroup> ParseVolumeGroup(XmlDocument document)
        {
            List<VirtualDiskGroup> virtualDiskGroupList = new List<VirtualDiskGroup>();
            XmlNodeList nodeList = document.SelectNodes(@"//VolumeContainerGroup");
            foreach (XmlNode node in nodeList)
            {
                VirtualDiskGroup virtualDiskGroup = new VirtualDiskGroup();
                virtualDiskGroup.Name = node.Attributes["Name"].Value;
                virtualDiskGroup.InstanceId = node.Attributes["Id"].Value;
                foreach (XmlNode childNode in node.ChildNodes)
                {
                    if ("VolumeID" == childNode.Name)
                    {
                        virtualDiskGroup.VirtualDiskList.Add(childNode.InnerText);
                    }
                }

                virtualDiskGroupList.Add(virtualDiskGroup);
            }

            return virtualDiskGroupList;

        }
        /// <summary>
        /// Parse Virtual disk group
        /// </summary>
        private void ParseVirtualDiskGroup()
        {
            this.virtualDiskGroupList = new List<VirtualDiskGroup>();
            var backupDataInfoList = this.GetSubElements(doc.Root, "BackupData");
            foreach (var backupData in backupDataInfoList)
            {
                // find items corresponding to
                var collectionsList = this.GetSubElements(backupData, "Collections");
                foreach (var collections in collectionsList)
                {
                    var collectionInfoList = this.GetSubElements(collections, "CollectionInfo");
                    foreach (var collectionInfo in collectionInfoList)
                    {
                        VirtualDiskGroup virtualDiskGroup = new VirtualDiskGroup();
                        virtualDiskGroup.VirtualDiskList = new List<string>();
                        foreach (var volumeGroupProperty in collectionInfo.Elements())
                        {
                            if ("Alias" == volumeGroupProperty.Name.LocalName)
                            {
                                virtualDiskGroup.Name = volumeGroupProperty.Value;
                            }
                            else if ("Id" == volumeGroupProperty.Name.LocalName)
                            {
                                virtualDiskGroup.InstanceId = volumeGroupProperty.Value;
                            }
                            else if ("ExplicitVolumes" == volumeGroupProperty.Name.LocalName)
                            {
                                foreach (var volumeInfo in volumeGroupProperty.Elements())
                                {
                                    if ("VolumeInfo" == volumeInfo.Name.LocalName)
                                    {
                                        foreach (var volumeInfoItem in volumeInfo.Elements())
                                        {
                                            if ("Id" == volumeInfoItem.Name.LocalName)
                                            {
                                                VirtualDisk disk =
                                                    this.volumeList.Find(volume => volumeInfoItem.Value == volume.VSN);
                                                if (null != disk)
                                                {
                                                    virtualDiskGroup.VirtualDiskList.Add(disk.InstanceId);
                                                }
                                                else
                                                {
                                                    throw new MissingMemberException(
                                                        string.Format(Resources.MigrationExpectedVolumeNotFound,
                                                            volumeInfoItem.Value));
                                                }

                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        this.virtualDiskGroupList.Add(virtualDiskGroup);
                    }

                }
            }
        }