public void From_XML(System.Xml.Linq.XElement xml)
        {
            var attr = xml.Attribute("type");
            if (attr != null)
            {
                var b = Domain_Types.qemu;
                Enum.TryParse(attr.Value, true, out b);
                type = b;
            }
            Metadata.From_XML(xml);
            BootLoader.From_XML(xml);
            CPU.From_XML(xml);
            Memory.From_XML(xml);
            System_Features.From_XML(xml);

            var element = xml.Element("clock");
            if (element != null)
            {
                attr = xml.Attribute("offset");
                if (attr != null)
                {
                    clock = (Clock_Types)Enum.Parse(typeof(Clock_Types), attr.Value);
                }
            }
            element = xml.Element("devices");
            if (element != null)
            {
                var emul = element.Element("emulator");
                if (emul != null) emulator = emul.Value;
                Drives.From_XML(element);
                graphics.From_XML(element);
                element = element.Element("interface");
                if (element != null) Iface.From_XML(element);
            }
        }
 private void Reset()
 {
     type = Domain_Types.qemu;//default is software emulation of hardware, which is slow, but i am testing vm within a VM and its my only choice-- DEAL WITH IT!
     Metadata = new General_Metadata();
     BootLoader = new BIOS_Bootloader();
     CPU = new CPU_Layout();
     Memory = new Memory_Allocation();
     System_Features = new Features();
     Iface = new Iface();
     clock = Clock_Types.utc;// utc for everything except windows which uses localtime
     Drives = new Libvirt.Models.Concrete.Drive_Collection();
     graphics = new Graphics();
     emulator = "/usr/bin/qemu-system-x86_64";
 }