public YieldCurve(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode algorithmNode = xmlNode.SelectSingleNode("algorithm");
     
     if (algorithmNode != null)
     {
         if (algorithmNode.Attributes["href"] != null || algorithmNode.Attributes["id"] != null) 
         {
             if (algorithmNode.Attributes["id"] != null) 
             {
                 algorithmIDRef_ = algorithmNode.Attributes["id"].Value;
                 XsdTypeString ob = new XsdTypeString(algorithmNode);
                 IDManager.SetID(algorithmIDRef_, ob);
             }
             else if (algorithmNode.Attributes["href"] != null)
             {
                 algorithmIDRef_ = algorithmNode.Attributes["href"].Value;
             }
             else
             {
                 algorithm_ = new XsdTypeString(algorithmNode);
             }
         }
         else
         {
             algorithm_ = new XsdTypeString(algorithmNode);
         }
     }
     
 
     XmlNode forecastRateIndexNode = xmlNode.SelectSingleNode("forecastRateIndex");
     
     if (forecastRateIndexNode != null)
     {
         if (forecastRateIndexNode.Attributes["href"] != null || forecastRateIndexNode.Attributes["id"] != null) 
         {
             if (forecastRateIndexNode.Attributes["id"] != null) 
             {
                 forecastRateIndexIDRef_ = forecastRateIndexNode.Attributes["id"].Value;
                 ForecastRateIndex ob = new ForecastRateIndex(forecastRateIndexNode);
                 IDManager.SetID(forecastRateIndexIDRef_, ob);
             }
             else if (forecastRateIndexNode.Attributes["href"] != null)
             {
                 forecastRateIndexIDRef_ = forecastRateIndexNode.Attributes["href"].Value;
             }
             else
             {
                 forecastRateIndex_ = new ForecastRateIndex(forecastRateIndexNode);
             }
         }
         else
         {
             forecastRateIndex_ = new ForecastRateIndex(forecastRateIndexNode);
         }
     }
     
 
 }
 public YieldCurve(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList algorithmNodeList = xmlNode.SelectNodes("algorithm");
     if (algorithmNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in algorithmNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 algorithmIDRef = item.Attributes["id"].Name;
                 XsdTypeString ob = XsdTypeString();
                 IDManager.SetID(algorithmIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 algorithmIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 algorithm = new XsdTypeString(item);
             }
         }
     }
     
 
     XmlNodeList forecastRateIndexNodeList = xmlNode.SelectNodes("forecastRateIndex");
     if (forecastRateIndexNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in forecastRateIndexNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 forecastRateIndexIDRef = item.Attributes["id"].Name;
                 ForecastRateIndex ob = ForecastRateIndex();
                 IDManager.SetID(forecastRateIndexIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 forecastRateIndexIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 forecastRateIndex = new ForecastRateIndex(item);
             }
         }
     }
     
 
 }