public SettlementPeriods(XmlNode xmlNode)
        {
            XmlNode durationNode = xmlNode.SelectSingleNode("duration");

            if (durationNode != null)
            {
                if (durationNode.Attributes["href"] != null || durationNode.Attributes["id"] != null)
                {
                    if (durationNode.Attributes["id"] != null)
                    {
                        durationIDRef_ = durationNode.Attributes["id"].Value;
                        SettlementPeriodDurationEnum ob = new SettlementPeriodDurationEnum(durationNode);
                        IDManager.SetID(durationIDRef_, ob);
                    }
                    else if (durationNode.Attributes["href"] != null)
                    {
                        durationIDRef_ = durationNode.Attributes["href"].Value;
                    }
                    else
                    {
                        duration_ = new SettlementPeriodDurationEnum(durationNode);
                    }
                }
                else
                {
                    duration_ = new SettlementPeriodDurationEnum(durationNode);
                }
            }


            XmlNodeList applicableDayNodeList = xmlNode.SelectNodes("applicableDay");

            if (applicableDayNodeList != null)
            {
                this.applicableDay_ = new List <DayOfWeekEnum>();
                foreach (XmlNode item in applicableDayNodeList)
                {
                    if (item.Attributes["href"] != null || item.Attributes["id"] != null)
                    {
                        if (item.Attributes["id"] != null)
                        {
                            applicableDayIDRef_ = item.Attributes["id"].Value;
                            applicableDay_.Add(new DayOfWeekEnum(item));
                            IDManager.SetID(applicableDayIDRef_, applicableDay_[applicableDay_.Count - 1]);
                        }
                        else if (item.Attributes["href"] != null)
                        {
                            applicableDayIDRef_ = item.Attributes["href"].Value;
                        }
                        else
                        {
                            applicableDay_.Add(new DayOfWeekEnum(item));
                        }
                    }
                    else
                    {
                        applicableDay_.Add(new DayOfWeekEnum(item));
                    }
                }
            }


            XmlNode startTimeNode = xmlNode.SelectSingleNode("startTime");

            if (startTimeNode != null)
            {
                if (startTimeNode.Attributes["href"] != null || startTimeNode.Attributes["id"] != null)
                {
                    if (startTimeNode.Attributes["id"] != null)
                    {
                        startTimeIDRef_ = startTimeNode.Attributes["id"].Value;
                        OffsetPrevailingTime ob = new OffsetPrevailingTime(startTimeNode);
                        IDManager.SetID(startTimeIDRef_, ob);
                    }
                    else if (startTimeNode.Attributes["href"] != null)
                    {
                        startTimeIDRef_ = startTimeNode.Attributes["href"].Value;
                    }
                    else
                    {
                        startTime_ = new OffsetPrevailingTime(startTimeNode);
                    }
                }
                else
                {
                    startTime_ = new OffsetPrevailingTime(startTimeNode);
                }
            }


            XmlNode endTimeNode = xmlNode.SelectSingleNode("endTime");

            if (endTimeNode != null)
            {
                if (endTimeNode.Attributes["href"] != null || endTimeNode.Attributes["id"] != null)
                {
                    if (endTimeNode.Attributes["id"] != null)
                    {
                        endTimeIDRef_ = endTimeNode.Attributes["id"].Value;
                        OffsetPrevailingTime ob = new OffsetPrevailingTime(endTimeNode);
                        IDManager.SetID(endTimeIDRef_, ob);
                    }
                    else if (endTimeNode.Attributes["href"] != null)
                    {
                        endTimeIDRef_ = endTimeNode.Attributes["href"].Value;
                    }
                    else
                    {
                        endTime_ = new OffsetPrevailingTime(endTimeNode);
                    }
                }
                else
                {
                    endTime_ = new OffsetPrevailingTime(endTimeNode);
                }
            }


            XmlNode excludeHolidaysNode = xmlNode.SelectSingleNode("excludeHolidays");

            if (excludeHolidaysNode != null)
            {
                if (excludeHolidaysNode.Attributes["href"] != null || excludeHolidaysNode.Attributes["id"] != null)
                {
                    if (excludeHolidaysNode.Attributes["id"] != null)
                    {
                        excludeHolidaysIDRef_ = excludeHolidaysNode.Attributes["id"].Value;
                        CommodityBusinessCalendar ob = new CommodityBusinessCalendar(excludeHolidaysNode);
                        IDManager.SetID(excludeHolidaysIDRef_, ob);
                    }
                    else if (excludeHolidaysNode.Attributes["href"] != null)
                    {
                        excludeHolidaysIDRef_ = excludeHolidaysNode.Attributes["href"].Value;
                    }
                    else
                    {
                        excludeHolidays_ = new CommodityBusinessCalendar(excludeHolidaysNode);
                    }
                }
                else
                {
                    excludeHolidays_ = new CommodityBusinessCalendar(excludeHolidaysNode);
                }
            }


            XmlNode includeHolidaysNode = xmlNode.SelectSingleNode("includeHolidays");

            if (includeHolidaysNode != null)
            {
                if (includeHolidaysNode.Attributes["href"] != null || includeHolidaysNode.Attributes["id"] != null)
                {
                    if (includeHolidaysNode.Attributes["id"] != null)
                    {
                        includeHolidaysIDRef_ = includeHolidaysNode.Attributes["id"].Value;
                        CommodityBusinessCalendar ob = new CommodityBusinessCalendar(includeHolidaysNode);
                        IDManager.SetID(includeHolidaysIDRef_, ob);
                    }
                    else if (includeHolidaysNode.Attributes["href"] != null)
                    {
                        includeHolidaysIDRef_ = includeHolidaysNode.Attributes["href"].Value;
                    }
                    else
                    {
                        includeHolidays_ = new CommodityBusinessCalendar(includeHolidaysNode);
                    }
                }
                else
                {
                    includeHolidays_ = new CommodityBusinessCalendar(includeHolidaysNode);
                }
            }
        }
        public SettlementPeriods(XmlNode xmlNode)
        {
            XmlNodeList durationNodeList = xmlNode.SelectNodes("duration");

            if (durationNodeList.Count > 1)
            {
                throw new Exception();
            }

            foreach (XmlNode item in durationNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        durationIDRef = item.Attributes["id"].Name;
                        SettlementPeriodDurationEnum ob = SettlementPeriodDurationEnum();
                        IDManager.SetID(durationIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        durationIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        duration = new SettlementPeriodDurationEnum(item);
                    }
                }
            }


            XmlNodeList applicableDayNodeList = xmlNode.SelectNodes("applicableDay");

            foreach (XmlNode item in applicableDayNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        applicableDayIDRef = item.Attributes["id"].Name;
                        List <DayOfWeekEnum> ob = new List <DayOfWeekEnum>();
                        ob.Add(new DayOfWeekEnum(item));
                        IDManager.SetID(applicableDayIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        applicableDayIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        applicableDay.Add(new DayOfWeekEnum(item));
                    }
                }
            }


            XmlNodeList startTimeNodeList = xmlNode.SelectNodes("startTime");

            if (startTimeNodeList.Count > 1)
            {
                throw new Exception();
            }

            foreach (XmlNode item in startTimeNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        startTimeIDRef = item.Attributes["id"].Name;
                        OffsetPrevailingTime ob = OffsetPrevailingTime();
                        IDManager.SetID(startTimeIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        startTimeIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        startTime = new OffsetPrevailingTime(item);
                    }
                }
            }


            XmlNodeList endTimeNodeList = xmlNode.SelectNodes("endTime");

            if (endTimeNodeList.Count > 1)
            {
                throw new Exception();
            }

            foreach (XmlNode item in endTimeNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        endTimeIDRef = item.Attributes["id"].Name;
                        OffsetPrevailingTime ob = OffsetPrevailingTime();
                        IDManager.SetID(endTimeIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        endTimeIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        endTime = new OffsetPrevailingTime(item);
                    }
                }
            }


            XmlNodeList excludeHolidaysNodeList = xmlNode.SelectNodes("excludeHolidays");

            if (excludeHolidaysNodeList.Count > 1)
            {
                throw new Exception();
            }

            foreach (XmlNode item in excludeHolidaysNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        excludeHolidaysIDRef = item.Attributes["id"].Name;
                        CommodityBusinessCalendar ob = CommodityBusinessCalendar();
                        IDManager.SetID(excludeHolidaysIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        excludeHolidaysIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        excludeHolidays = new CommodityBusinessCalendar(item);
                    }
                }
            }


            XmlNodeList includeHolidaysNodeList = xmlNode.SelectNodes("includeHolidays");

            if (includeHolidaysNodeList.Count > 1)
            {
                throw new Exception();
            }

            foreach (XmlNode item in includeHolidaysNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        includeHolidaysIDRef = item.Attributes["id"].Name;
                        CommodityBusinessCalendar ob = CommodityBusinessCalendar();
                        IDManager.SetID(includeHolidaysIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        includeHolidaysIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        includeHolidays = new CommodityBusinessCalendar(item);
                    }
                }
            }
        }
 public SettlementPeriods(XmlNode xmlNode)
 {
     XmlNode durationNode = xmlNode.SelectSingleNode("duration");
     
     if (durationNode != null)
     {
         if (durationNode.Attributes["href"] != null || durationNode.Attributes["id"] != null) 
         {
             if (durationNode.Attributes["id"] != null) 
             {
                 durationIDRef_ = durationNode.Attributes["id"].Value;
                 SettlementPeriodDurationEnum ob = new SettlementPeriodDurationEnum(durationNode);
                 IDManager.SetID(durationIDRef_, ob);
             }
             else if (durationNode.Attributes["href"] != null)
             {
                 durationIDRef_ = durationNode.Attributes["href"].Value;
             }
             else
             {
                 duration_ = new SettlementPeriodDurationEnum(durationNode);
             }
         }
         else
         {
             duration_ = new SettlementPeriodDurationEnum(durationNode);
         }
     }
     
 
     XmlNodeList applicableDayNodeList = xmlNode.SelectNodes("applicableDay");
     
     if (applicableDayNodeList != null)
     {
         this.applicableDay_ = new List<DayOfWeekEnum>();
         foreach (XmlNode item in applicableDayNodeList)
         {
             if (item.Attributes["href"] != null || item.Attributes["id"] != null) 
             {
                 if (item.Attributes["id"] != null) 
                 {
                     applicableDayIDRef_ = item.Attributes["id"].Value;
                     applicableDay_.Add(new DayOfWeekEnum(item));
                     IDManager.SetID(applicableDayIDRef_, applicableDay_[applicableDay_.Count - 1 ]);
                 }
                 else if (item.Attributes["href"] != null)
                 {
                     applicableDayIDRef_ = item.Attributes["href"].Value;
                 }
                 else
                 {
                 applicableDay_.Add(new DayOfWeekEnum(item));
                 }
             }
             else
             {
                 applicableDay_.Add(new DayOfWeekEnum(item));
             }
         }
     }
     
 
     XmlNode startTimeNode = xmlNode.SelectSingleNode("startTime");
     
     if (startTimeNode != null)
     {
         if (startTimeNode.Attributes["href"] != null || startTimeNode.Attributes["id"] != null) 
         {
             if (startTimeNode.Attributes["id"] != null) 
             {
                 startTimeIDRef_ = startTimeNode.Attributes["id"].Value;
                 OffsetPrevailingTime ob = new OffsetPrevailingTime(startTimeNode);
                 IDManager.SetID(startTimeIDRef_, ob);
             }
             else if (startTimeNode.Attributes["href"] != null)
             {
                 startTimeIDRef_ = startTimeNode.Attributes["href"].Value;
             }
             else
             {
                 startTime_ = new OffsetPrevailingTime(startTimeNode);
             }
         }
         else
         {
             startTime_ = new OffsetPrevailingTime(startTimeNode);
         }
     }
     
 
     XmlNode endTimeNode = xmlNode.SelectSingleNode("endTime");
     
     if (endTimeNode != null)
     {
         if (endTimeNode.Attributes["href"] != null || endTimeNode.Attributes["id"] != null) 
         {
             if (endTimeNode.Attributes["id"] != null) 
             {
                 endTimeIDRef_ = endTimeNode.Attributes["id"].Value;
                 OffsetPrevailingTime ob = new OffsetPrevailingTime(endTimeNode);
                 IDManager.SetID(endTimeIDRef_, ob);
             }
             else if (endTimeNode.Attributes["href"] != null)
             {
                 endTimeIDRef_ = endTimeNode.Attributes["href"].Value;
             }
             else
             {
                 endTime_ = new OffsetPrevailingTime(endTimeNode);
             }
         }
         else
         {
             endTime_ = new OffsetPrevailingTime(endTimeNode);
         }
     }
     
 
     XmlNode excludeHolidaysNode = xmlNode.SelectSingleNode("excludeHolidays");
     
     if (excludeHolidaysNode != null)
     {
         if (excludeHolidaysNode.Attributes["href"] != null || excludeHolidaysNode.Attributes["id"] != null) 
         {
             if (excludeHolidaysNode.Attributes["id"] != null) 
             {
                 excludeHolidaysIDRef_ = excludeHolidaysNode.Attributes["id"].Value;
                 CommodityBusinessCalendar ob = new CommodityBusinessCalendar(excludeHolidaysNode);
                 IDManager.SetID(excludeHolidaysIDRef_, ob);
             }
             else if (excludeHolidaysNode.Attributes["href"] != null)
             {
                 excludeHolidaysIDRef_ = excludeHolidaysNode.Attributes["href"].Value;
             }
             else
             {
                 excludeHolidays_ = new CommodityBusinessCalendar(excludeHolidaysNode);
             }
         }
         else
         {
             excludeHolidays_ = new CommodityBusinessCalendar(excludeHolidaysNode);
         }
     }
     
 
     XmlNode includeHolidaysNode = xmlNode.SelectSingleNode("includeHolidays");
     
     if (includeHolidaysNode != null)
     {
         if (includeHolidaysNode.Attributes["href"] != null || includeHolidaysNode.Attributes["id"] != null) 
         {
             if (includeHolidaysNode.Attributes["id"] != null) 
             {
                 includeHolidaysIDRef_ = includeHolidaysNode.Attributes["id"].Value;
                 CommodityBusinessCalendar ob = new CommodityBusinessCalendar(includeHolidaysNode);
                 IDManager.SetID(includeHolidaysIDRef_, ob);
             }
             else if (includeHolidaysNode.Attributes["href"] != null)
             {
                 includeHolidaysIDRef_ = includeHolidaysNode.Attributes["href"].Value;
             }
             else
             {
                 includeHolidays_ = new CommodityBusinessCalendar(includeHolidaysNode);
             }
         }
         else
         {
             includeHolidays_ = new CommodityBusinessCalendar(includeHolidaysNode);
         }
     }
     
 
 }