private void ProduceXmlForHost(XenAPI.Host host, LicenseDataStruct previousLicenseData, XmlWriter writer)
            {
                // wait for host to be updated
                for (int i = 0; i < 100 &&
                     Helper.AreEqual2(host.license_params["expiry"], previousLicenseData.ExpiryDate) &&
                     Helper.AreEqual2(host.edition, previousLicenseData.Edition); i++)
                {
                    Thread.Sleep(100);
                }
                writer.WriteStartElement("host");
                writer.WriteAttributeString("uuid", host.uuid);
                foreach (KeyValuePair <String, String> kvp in host.software_version)
                {
                    writer.WriteStartElement("software_version_element");
                    writer.WriteAttributeString("key", kvp.Key);
                    writer.WriteAttributeString("value", kvp.Value);
                    writer.WriteEndElement();
                }
                // edition information
                if (IncludeSKU)
                {
                    string newEdition;
                    if (String.IsNullOrEmpty(CurrentEdition))
                    {
                        if (Helpers.MidnightRideOrGreater(host))
                        {
                            newEdition = host.edition;
                        }
                        else
                        {
                            newEdition = host.license_params.ContainsKey("sku_type") ? host.license_params["sku_type"] : "";
                        }
                    }
                    else
                    {
                        newEdition = CurrentEdition;
                    }
                    writer.WriteStartElement("SKU");
                    writer.WriteAttributeString("from", previousLicenseData.Edition);
                    writer.WriteAttributeString("to", newEdition);
                    writer.WriteEndElement();
                }
                // license expiry information
                writer.WriteStartElement("license_expiry_date");
                writer.WriteAttributeString("from", previousLicenseData.ExpiryDate);
                writer.WriteAttributeString("to", host.license_params["expiry"]);
                writer.WriteEndElement();

                writer.WriteEndElement();
            }
            private void ProduceXmlForHost(XenAPI.Host host, LicenseDataStruct previousLicenseData, XmlWriter writer)
            {

                // wait for host to be updated 
                for (int i = 0; i < 100 &&
                        Helper.AreEqual2(host.license_params["expiry"], previousLicenseData.ExpiryDate) &&
                        Helper.AreEqual2(host.edition, previousLicenseData.Edition); i++)
                {
                    Thread.Sleep(100);
                }
                writer.WriteStartElement("host");
                writer.WriteAttributeString("uuid", host.uuid);
                foreach (KeyValuePair<String, String> kvp in host.software_version)
                {
                    writer.WriteStartElement("software_version_element");
                    writer.WriteAttributeString("key", kvp.Key);
                    writer.WriteAttributeString("value", kvp.Value);
                    writer.WriteEndElement();
                }
                // edition information
                if (IncludeSKU)
                {
                    string newEdition;
                    if (String.IsNullOrEmpty(CurrentEdition))
                    {
                        if (Helpers.MidnightRideOrGreater(host))
                        {
                            newEdition = host.edition;
                        }
                        else
                        {
                            newEdition = host.license_params.ContainsKey("sku_type") ? host.license_params["sku_type"] : "";
                        }
                    }
                    else
                    {
                        newEdition = CurrentEdition;
                    }
                    writer.WriteStartElement("SKU");
                    writer.WriteAttributeString("from", previousLicenseData.Edition);
                    writer.WriteAttributeString("to", newEdition);
                    writer.WriteEndElement();
                }
                // license expiry information
                writer.WriteStartElement("license_expiry_date");
                writer.WriteAttributeString("from", previousLicenseData.ExpiryDate);
                writer.WriteAttributeString("to", host.license_params["expiry"]);
                writer.WriteEndElement();

                writer.WriteEndElement();
            }