public CashSettlement(XmlNode xmlNode)
 {
     XmlNode cashSettlementValuationTimeNode = xmlNode.SelectSingleNode("cashSettlementValuationTime");
     
     if (cashSettlementValuationTimeNode != null)
     {
         if (cashSettlementValuationTimeNode.Attributes["href"] != null || cashSettlementValuationTimeNode.Attributes["id"] != null) 
         {
             if (cashSettlementValuationTimeNode.Attributes["id"] != null) 
             {
                 cashSettlementValuationTimeIDRef_ = cashSettlementValuationTimeNode.Attributes["id"].Value;
                 BusinessCenterTime ob = new BusinessCenterTime(cashSettlementValuationTimeNode);
                 IDManager.SetID(cashSettlementValuationTimeIDRef_, ob);
             }
             else if (cashSettlementValuationTimeNode.Attributes["href"] != null)
             {
                 cashSettlementValuationTimeIDRef_ = cashSettlementValuationTimeNode.Attributes["href"].Value;
             }
             else
             {
                 cashSettlementValuationTime_ = new BusinessCenterTime(cashSettlementValuationTimeNode);
             }
         }
         else
         {
             cashSettlementValuationTime_ = new BusinessCenterTime(cashSettlementValuationTimeNode);
         }
     }
     
 
     XmlNode cashSettlementValuationDateNode = xmlNode.SelectSingleNode("cashSettlementValuationDate");
     
     if (cashSettlementValuationDateNode != null)
     {
         if (cashSettlementValuationDateNode.Attributes["href"] != null || cashSettlementValuationDateNode.Attributes["id"] != null) 
         {
             if (cashSettlementValuationDateNode.Attributes["id"] != null) 
             {
                 cashSettlementValuationDateIDRef_ = cashSettlementValuationDateNode.Attributes["id"].Value;
                 RelativeDateOffset ob = new RelativeDateOffset(cashSettlementValuationDateNode);
                 IDManager.SetID(cashSettlementValuationDateIDRef_, ob);
             }
             else if (cashSettlementValuationDateNode.Attributes["href"] != null)
             {
                 cashSettlementValuationDateIDRef_ = cashSettlementValuationDateNode.Attributes["href"].Value;
             }
             else
             {
                 cashSettlementValuationDate_ = new RelativeDateOffset(cashSettlementValuationDateNode);
             }
         }
         else
         {
             cashSettlementValuationDate_ = new RelativeDateOffset(cashSettlementValuationDateNode);
         }
     }
     
 
     XmlNode cashSettlementPaymentDateNode = xmlNode.SelectSingleNode("cashSettlementPaymentDate");
     
     if (cashSettlementPaymentDateNode != null)
     {
         if (cashSettlementPaymentDateNode.Attributes["href"] != null || cashSettlementPaymentDateNode.Attributes["id"] != null) 
         {
             if (cashSettlementPaymentDateNode.Attributes["id"] != null) 
             {
                 cashSettlementPaymentDateIDRef_ = cashSettlementPaymentDateNode.Attributes["id"].Value;
                 CashSettlementPaymentDate ob = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
                 IDManager.SetID(cashSettlementPaymentDateIDRef_, ob);
             }
             else if (cashSettlementPaymentDateNode.Attributes["href"] != null)
             {
                 cashSettlementPaymentDateIDRef_ = cashSettlementPaymentDateNode.Attributes["href"].Value;
             }
             else
             {
                 cashSettlementPaymentDate_ = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
             }
         }
         else
         {
             cashSettlementPaymentDate_ = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
         }
     }
     
 
     XmlNode cashPriceMethodNode = xmlNode.SelectSingleNode("cashPriceMethod");
     
     if (cashPriceMethodNode != null)
     {
         if (cashPriceMethodNode.Attributes["href"] != null || cashPriceMethodNode.Attributes["id"] != null) 
         {
             if (cashPriceMethodNode.Attributes["id"] != null) 
             {
                 cashPriceMethodIDRef_ = cashPriceMethodNode.Attributes["id"].Value;
                 CashPriceMethod ob = new CashPriceMethod(cashPriceMethodNode);
                 IDManager.SetID(cashPriceMethodIDRef_, ob);
             }
             else if (cashPriceMethodNode.Attributes["href"] != null)
             {
                 cashPriceMethodIDRef_ = cashPriceMethodNode.Attributes["href"].Value;
             }
             else
             {
                 cashPriceMethod_ = new CashPriceMethod(cashPriceMethodNode);
             }
         }
         else
         {
             cashPriceMethod_ = new CashPriceMethod(cashPriceMethodNode);
         }
     }
     
 
     XmlNode cashPriceAlternateMethodNode = xmlNode.SelectSingleNode("cashPriceAlternateMethod");
     
     if (cashPriceAlternateMethodNode != null)
     {
         if (cashPriceAlternateMethodNode.Attributes["href"] != null || cashPriceAlternateMethodNode.Attributes["id"] != null) 
         {
             if (cashPriceAlternateMethodNode.Attributes["id"] != null) 
             {
                 cashPriceAlternateMethodIDRef_ = cashPriceAlternateMethodNode.Attributes["id"].Value;
                 CashPriceMethod ob = new CashPriceMethod(cashPriceAlternateMethodNode);
                 IDManager.SetID(cashPriceAlternateMethodIDRef_, ob);
             }
             else if (cashPriceAlternateMethodNode.Attributes["href"] != null)
             {
                 cashPriceAlternateMethodIDRef_ = cashPriceAlternateMethodNode.Attributes["href"].Value;
             }
             else
             {
                 cashPriceAlternateMethod_ = new CashPriceMethod(cashPriceAlternateMethodNode);
             }
         }
         else
         {
             cashPriceAlternateMethod_ = new CashPriceMethod(cashPriceAlternateMethodNode);
         }
     }
     
 
     XmlNode parYieldCurveAdjustedMethodNode = xmlNode.SelectSingleNode("parYieldCurveAdjustedMethod");
     
     if (parYieldCurveAdjustedMethodNode != null)
     {
         if (parYieldCurveAdjustedMethodNode.Attributes["href"] != null || parYieldCurveAdjustedMethodNode.Attributes["id"] != null) 
         {
             if (parYieldCurveAdjustedMethodNode.Attributes["id"] != null) 
             {
                 parYieldCurveAdjustedMethodIDRef_ = parYieldCurveAdjustedMethodNode.Attributes["id"].Value;
                 YieldCurveMethod ob = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
                 IDManager.SetID(parYieldCurveAdjustedMethodIDRef_, ob);
             }
             else if (parYieldCurveAdjustedMethodNode.Attributes["href"] != null)
             {
                 parYieldCurveAdjustedMethodIDRef_ = parYieldCurveAdjustedMethodNode.Attributes["href"].Value;
             }
             else
             {
                 parYieldCurveAdjustedMethod_ = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
             }
         }
         else
         {
             parYieldCurveAdjustedMethod_ = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
         }
     }
     
 
     XmlNode zeroCouponYieldAdjustedMethodNode = xmlNode.SelectSingleNode("zeroCouponYieldAdjustedMethod");
     
     if (zeroCouponYieldAdjustedMethodNode != null)
     {
         if (zeroCouponYieldAdjustedMethodNode.Attributes["href"] != null || zeroCouponYieldAdjustedMethodNode.Attributes["id"] != null) 
         {
             if (zeroCouponYieldAdjustedMethodNode.Attributes["id"] != null) 
             {
                 zeroCouponYieldAdjustedMethodIDRef_ = zeroCouponYieldAdjustedMethodNode.Attributes["id"].Value;
                 YieldCurveMethod ob = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
                 IDManager.SetID(zeroCouponYieldAdjustedMethodIDRef_, ob);
             }
             else if (zeroCouponYieldAdjustedMethodNode.Attributes["href"] != null)
             {
                 zeroCouponYieldAdjustedMethodIDRef_ = zeroCouponYieldAdjustedMethodNode.Attributes["href"].Value;
             }
             else
             {
                 zeroCouponYieldAdjustedMethod_ = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
             }
         }
         else
         {
             zeroCouponYieldAdjustedMethod_ = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
         }
     }
     
 
     XmlNode parYieldCurveUnadjustedMethodNode = xmlNode.SelectSingleNode("parYieldCurveUnadjustedMethod");
     
     if (parYieldCurveUnadjustedMethodNode != null)
     {
         if (parYieldCurveUnadjustedMethodNode.Attributes["href"] != null || parYieldCurveUnadjustedMethodNode.Attributes["id"] != null) 
         {
             if (parYieldCurveUnadjustedMethodNode.Attributes["id"] != null) 
             {
                 parYieldCurveUnadjustedMethodIDRef_ = parYieldCurveUnadjustedMethodNode.Attributes["id"].Value;
                 YieldCurveMethod ob = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
                 IDManager.SetID(parYieldCurveUnadjustedMethodIDRef_, ob);
             }
             else if (parYieldCurveUnadjustedMethodNode.Attributes["href"] != null)
             {
                 parYieldCurveUnadjustedMethodIDRef_ = parYieldCurveUnadjustedMethodNode.Attributes["href"].Value;
             }
             else
             {
                 parYieldCurveUnadjustedMethod_ = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
             }
         }
         else
         {
             parYieldCurveUnadjustedMethod_ = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
         }
     }
     
 
     XmlNode crossCurrencyMethodNode = xmlNode.SelectSingleNode("crossCurrencyMethod");
     
     if (crossCurrencyMethodNode != null)
     {
         if (crossCurrencyMethodNode.Attributes["href"] != null || crossCurrencyMethodNode.Attributes["id"] != null) 
         {
             if (crossCurrencyMethodNode.Attributes["id"] != null) 
             {
                 crossCurrencyMethodIDRef_ = crossCurrencyMethodNode.Attributes["id"].Value;
                 CrossCurrencyMethod ob = new CrossCurrencyMethod(crossCurrencyMethodNode);
                 IDManager.SetID(crossCurrencyMethodIDRef_, ob);
             }
             else if (crossCurrencyMethodNode.Attributes["href"] != null)
             {
                 crossCurrencyMethodIDRef_ = crossCurrencyMethodNode.Attributes["href"].Value;
             }
             else
             {
                 crossCurrencyMethod_ = new CrossCurrencyMethod(crossCurrencyMethodNode);
             }
         }
         else
         {
             crossCurrencyMethod_ = new CrossCurrencyMethod(crossCurrencyMethodNode);
         }
     }
     
 
     XmlNode collateralizedCashPriceMethodNode = xmlNode.SelectSingleNode("collateralizedCashPriceMethod");
     
     if (collateralizedCashPriceMethodNode != null)
     {
         if (collateralizedCashPriceMethodNode.Attributes["href"] != null || collateralizedCashPriceMethodNode.Attributes["id"] != null) 
         {
             if (collateralizedCashPriceMethodNode.Attributes["id"] != null) 
             {
                 collateralizedCashPriceMethodIDRef_ = collateralizedCashPriceMethodNode.Attributes["id"].Value;
                 YieldCurveMethod ob = new YieldCurveMethod(collateralizedCashPriceMethodNode);
                 IDManager.SetID(collateralizedCashPriceMethodIDRef_, ob);
             }
             else if (collateralizedCashPriceMethodNode.Attributes["href"] != null)
             {
                 collateralizedCashPriceMethodIDRef_ = collateralizedCashPriceMethodNode.Attributes["href"].Value;
             }
             else
             {
                 collateralizedCashPriceMethod_ = new YieldCurveMethod(collateralizedCashPriceMethodNode);
             }
         }
         else
         {
             collateralizedCashPriceMethod_ = new YieldCurveMethod(collateralizedCashPriceMethodNode);
         }
     }
     
 
 }
        public CashSettlement(XmlNode xmlNode)
        {
            XmlNode cashSettlementValuationTimeNode = xmlNode.SelectSingleNode("cashSettlementValuationTime");

            if (cashSettlementValuationTimeNode != null)
            {
                if (cashSettlementValuationTimeNode.Attributes["href"] != null || cashSettlementValuationTimeNode.Attributes["id"] != null)
                {
                    if (cashSettlementValuationTimeNode.Attributes["id"] != null)
                    {
                        cashSettlementValuationTimeIDRef_ = cashSettlementValuationTimeNode.Attributes["id"].Value;
                        BusinessCenterTime ob = new BusinessCenterTime(cashSettlementValuationTimeNode);
                        IDManager.SetID(cashSettlementValuationTimeIDRef_, ob);
                    }
                    else if (cashSettlementValuationTimeNode.Attributes["href"] != null)
                    {
                        cashSettlementValuationTimeIDRef_ = cashSettlementValuationTimeNode.Attributes["href"].Value;
                    }
                    else
                    {
                        cashSettlementValuationTime_ = new BusinessCenterTime(cashSettlementValuationTimeNode);
                    }
                }
                else
                {
                    cashSettlementValuationTime_ = new BusinessCenterTime(cashSettlementValuationTimeNode);
                }
            }


            XmlNode cashSettlementValuationDateNode = xmlNode.SelectSingleNode("cashSettlementValuationDate");

            if (cashSettlementValuationDateNode != null)
            {
                if (cashSettlementValuationDateNode.Attributes["href"] != null || cashSettlementValuationDateNode.Attributes["id"] != null)
                {
                    if (cashSettlementValuationDateNode.Attributes["id"] != null)
                    {
                        cashSettlementValuationDateIDRef_ = cashSettlementValuationDateNode.Attributes["id"].Value;
                        RelativeDateOffset ob = new RelativeDateOffset(cashSettlementValuationDateNode);
                        IDManager.SetID(cashSettlementValuationDateIDRef_, ob);
                    }
                    else if (cashSettlementValuationDateNode.Attributes["href"] != null)
                    {
                        cashSettlementValuationDateIDRef_ = cashSettlementValuationDateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        cashSettlementValuationDate_ = new RelativeDateOffset(cashSettlementValuationDateNode);
                    }
                }
                else
                {
                    cashSettlementValuationDate_ = new RelativeDateOffset(cashSettlementValuationDateNode);
                }
            }


            XmlNode cashSettlementPaymentDateNode = xmlNode.SelectSingleNode("cashSettlementPaymentDate");

            if (cashSettlementPaymentDateNode != null)
            {
                if (cashSettlementPaymentDateNode.Attributes["href"] != null || cashSettlementPaymentDateNode.Attributes["id"] != null)
                {
                    if (cashSettlementPaymentDateNode.Attributes["id"] != null)
                    {
                        cashSettlementPaymentDateIDRef_ = cashSettlementPaymentDateNode.Attributes["id"].Value;
                        CashSettlementPaymentDate ob = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
                        IDManager.SetID(cashSettlementPaymentDateIDRef_, ob);
                    }
                    else if (cashSettlementPaymentDateNode.Attributes["href"] != null)
                    {
                        cashSettlementPaymentDateIDRef_ = cashSettlementPaymentDateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        cashSettlementPaymentDate_ = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
                    }
                }
                else
                {
                    cashSettlementPaymentDate_ = new CashSettlementPaymentDate(cashSettlementPaymentDateNode);
                }
            }


            XmlNode cashPriceMethodNode = xmlNode.SelectSingleNode("cashPriceMethod");

            if (cashPriceMethodNode != null)
            {
                if (cashPriceMethodNode.Attributes["href"] != null || cashPriceMethodNode.Attributes["id"] != null)
                {
                    if (cashPriceMethodNode.Attributes["id"] != null)
                    {
                        cashPriceMethodIDRef_ = cashPriceMethodNode.Attributes["id"].Value;
                        CashPriceMethod ob = new CashPriceMethod(cashPriceMethodNode);
                        IDManager.SetID(cashPriceMethodIDRef_, ob);
                    }
                    else if (cashPriceMethodNode.Attributes["href"] != null)
                    {
                        cashPriceMethodIDRef_ = cashPriceMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        cashPriceMethod_ = new CashPriceMethod(cashPriceMethodNode);
                    }
                }
                else
                {
                    cashPriceMethod_ = new CashPriceMethod(cashPriceMethodNode);
                }
            }


            XmlNode cashPriceAlternateMethodNode = xmlNode.SelectSingleNode("cashPriceAlternateMethod");

            if (cashPriceAlternateMethodNode != null)
            {
                if (cashPriceAlternateMethodNode.Attributes["href"] != null || cashPriceAlternateMethodNode.Attributes["id"] != null)
                {
                    if (cashPriceAlternateMethodNode.Attributes["id"] != null)
                    {
                        cashPriceAlternateMethodIDRef_ = cashPriceAlternateMethodNode.Attributes["id"].Value;
                        CashPriceMethod ob = new CashPriceMethod(cashPriceAlternateMethodNode);
                        IDManager.SetID(cashPriceAlternateMethodIDRef_, ob);
                    }
                    else if (cashPriceAlternateMethodNode.Attributes["href"] != null)
                    {
                        cashPriceAlternateMethodIDRef_ = cashPriceAlternateMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        cashPriceAlternateMethod_ = new CashPriceMethod(cashPriceAlternateMethodNode);
                    }
                }
                else
                {
                    cashPriceAlternateMethod_ = new CashPriceMethod(cashPriceAlternateMethodNode);
                }
            }


            XmlNode parYieldCurveAdjustedMethodNode = xmlNode.SelectSingleNode("parYieldCurveAdjustedMethod");

            if (parYieldCurveAdjustedMethodNode != null)
            {
                if (parYieldCurveAdjustedMethodNode.Attributes["href"] != null || parYieldCurveAdjustedMethodNode.Attributes["id"] != null)
                {
                    if (parYieldCurveAdjustedMethodNode.Attributes["id"] != null)
                    {
                        parYieldCurveAdjustedMethodIDRef_ = parYieldCurveAdjustedMethodNode.Attributes["id"].Value;
                        YieldCurveMethod ob = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
                        IDManager.SetID(parYieldCurveAdjustedMethodIDRef_, ob);
                    }
                    else if (parYieldCurveAdjustedMethodNode.Attributes["href"] != null)
                    {
                        parYieldCurveAdjustedMethodIDRef_ = parYieldCurveAdjustedMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        parYieldCurveAdjustedMethod_ = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
                    }
                }
                else
                {
                    parYieldCurveAdjustedMethod_ = new YieldCurveMethod(parYieldCurveAdjustedMethodNode);
                }
            }


            XmlNode zeroCouponYieldAdjustedMethodNode = xmlNode.SelectSingleNode("zeroCouponYieldAdjustedMethod");

            if (zeroCouponYieldAdjustedMethodNode != null)
            {
                if (zeroCouponYieldAdjustedMethodNode.Attributes["href"] != null || zeroCouponYieldAdjustedMethodNode.Attributes["id"] != null)
                {
                    if (zeroCouponYieldAdjustedMethodNode.Attributes["id"] != null)
                    {
                        zeroCouponYieldAdjustedMethodIDRef_ = zeroCouponYieldAdjustedMethodNode.Attributes["id"].Value;
                        YieldCurveMethod ob = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
                        IDManager.SetID(zeroCouponYieldAdjustedMethodIDRef_, ob);
                    }
                    else if (zeroCouponYieldAdjustedMethodNode.Attributes["href"] != null)
                    {
                        zeroCouponYieldAdjustedMethodIDRef_ = zeroCouponYieldAdjustedMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        zeroCouponYieldAdjustedMethod_ = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
                    }
                }
                else
                {
                    zeroCouponYieldAdjustedMethod_ = new YieldCurveMethod(zeroCouponYieldAdjustedMethodNode);
                }
            }


            XmlNode parYieldCurveUnadjustedMethodNode = xmlNode.SelectSingleNode("parYieldCurveUnadjustedMethod");

            if (parYieldCurveUnadjustedMethodNode != null)
            {
                if (parYieldCurveUnadjustedMethodNode.Attributes["href"] != null || parYieldCurveUnadjustedMethodNode.Attributes["id"] != null)
                {
                    if (parYieldCurveUnadjustedMethodNode.Attributes["id"] != null)
                    {
                        parYieldCurveUnadjustedMethodIDRef_ = parYieldCurveUnadjustedMethodNode.Attributes["id"].Value;
                        YieldCurveMethod ob = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
                        IDManager.SetID(parYieldCurveUnadjustedMethodIDRef_, ob);
                    }
                    else if (parYieldCurveUnadjustedMethodNode.Attributes["href"] != null)
                    {
                        parYieldCurveUnadjustedMethodIDRef_ = parYieldCurveUnadjustedMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        parYieldCurveUnadjustedMethod_ = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
                    }
                }
                else
                {
                    parYieldCurveUnadjustedMethod_ = new YieldCurveMethod(parYieldCurveUnadjustedMethodNode);
                }
            }


            XmlNode crossCurrencyMethodNode = xmlNode.SelectSingleNode("crossCurrencyMethod");

            if (crossCurrencyMethodNode != null)
            {
                if (crossCurrencyMethodNode.Attributes["href"] != null || crossCurrencyMethodNode.Attributes["id"] != null)
                {
                    if (crossCurrencyMethodNode.Attributes["id"] != null)
                    {
                        crossCurrencyMethodIDRef_ = crossCurrencyMethodNode.Attributes["id"].Value;
                        CrossCurrencyMethod ob = new CrossCurrencyMethod(crossCurrencyMethodNode);
                        IDManager.SetID(crossCurrencyMethodIDRef_, ob);
                    }
                    else if (crossCurrencyMethodNode.Attributes["href"] != null)
                    {
                        crossCurrencyMethodIDRef_ = crossCurrencyMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        crossCurrencyMethod_ = new CrossCurrencyMethod(crossCurrencyMethodNode);
                    }
                }
                else
                {
                    crossCurrencyMethod_ = new CrossCurrencyMethod(crossCurrencyMethodNode);
                }
            }


            XmlNode collateralizedCashPriceMethodNode = xmlNode.SelectSingleNode("collateralizedCashPriceMethod");

            if (collateralizedCashPriceMethodNode != null)
            {
                if (collateralizedCashPriceMethodNode.Attributes["href"] != null || collateralizedCashPriceMethodNode.Attributes["id"] != null)
                {
                    if (collateralizedCashPriceMethodNode.Attributes["id"] != null)
                    {
                        collateralizedCashPriceMethodIDRef_ = collateralizedCashPriceMethodNode.Attributes["id"].Value;
                        YieldCurveMethod ob = new YieldCurveMethod(collateralizedCashPriceMethodNode);
                        IDManager.SetID(collateralizedCashPriceMethodIDRef_, ob);
                    }
                    else if (collateralizedCashPriceMethodNode.Attributes["href"] != null)
                    {
                        collateralizedCashPriceMethodIDRef_ = collateralizedCashPriceMethodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        collateralizedCashPriceMethod_ = new YieldCurveMethod(collateralizedCashPriceMethodNode);
                    }
                }
                else
                {
                    collateralizedCashPriceMethod_ = new YieldCurveMethod(collateralizedCashPriceMethodNode);
                }
            }
        }
        public CashSettlement(XmlNode xmlNode)
        {
            XmlNodeList cashSettlementValuationTimeNodeList = xmlNode.SelectNodes("cashSettlementValuationTime");

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

            foreach (XmlNode item in cashSettlementValuationTimeNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        cashSettlementValuationTimeIDRef = item.Attributes["id"].Name;
                        BusinessCenterTime ob = BusinessCenterTime();
                        IDManager.SetID(cashSettlementValuationTimeIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        cashSettlementValuationTimeIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        cashSettlementValuationTime = new BusinessCenterTime(item);
                    }
                }
            }


            XmlNodeList cashSettlementValuationDateNodeList = xmlNode.SelectNodes("cashSettlementValuationDate");

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

            foreach (XmlNode item in cashSettlementValuationDateNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        cashSettlementValuationDateIDRef = item.Attributes["id"].Name;
                        RelativeDateOffset ob = RelativeDateOffset();
                        IDManager.SetID(cashSettlementValuationDateIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        cashSettlementValuationDateIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        cashSettlementValuationDate = new RelativeDateOffset(item);
                    }
                }
            }


            XmlNodeList cashSettlementPaymentDateNodeList = xmlNode.SelectNodes("cashSettlementPaymentDate");

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

            foreach (XmlNode item in cashSettlementPaymentDateNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        cashSettlementPaymentDateIDRef = item.Attributes["id"].Name;
                        CashSettlementPaymentDate ob = CashSettlementPaymentDate();
                        IDManager.SetID(cashSettlementPaymentDateIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        cashSettlementPaymentDateIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        cashSettlementPaymentDate = new CashSettlementPaymentDate(item);
                    }
                }
            }


            XmlNodeList cashPriceMethodNodeList = xmlNode.SelectNodes("cashPriceMethod");

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

            foreach (XmlNode item in cashPriceMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        cashPriceMethodIDRef = item.Attributes["id"].Name;
                        CashPriceMethod ob = CashPriceMethod();
                        IDManager.SetID(cashPriceMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        cashPriceMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        cashPriceMethod = new CashPriceMethod(item);
                    }
                }
            }


            XmlNodeList cashPriceAlternateMethodNodeList = xmlNode.SelectNodes("cashPriceAlternateMethod");

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

            foreach (XmlNode item in cashPriceAlternateMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        cashPriceAlternateMethodIDRef = item.Attributes["id"].Name;
                        CashPriceMethod ob = CashPriceMethod();
                        IDManager.SetID(cashPriceAlternateMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        cashPriceAlternateMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        cashPriceAlternateMethod = new CashPriceMethod(item);
                    }
                }
            }


            XmlNodeList parYieldCurveAdjustedMethodNodeList = xmlNode.SelectNodes("parYieldCurveAdjustedMethod");

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

            foreach (XmlNode item in parYieldCurveAdjustedMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        parYieldCurveAdjustedMethodIDRef = item.Attributes["id"].Name;
                        YieldCurveMethod ob = YieldCurveMethod();
                        IDManager.SetID(parYieldCurveAdjustedMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        parYieldCurveAdjustedMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        parYieldCurveAdjustedMethod = new YieldCurveMethod(item);
                    }
                }
            }


            XmlNodeList zeroCouponYieldAdjustedMethodNodeList = xmlNode.SelectNodes("zeroCouponYieldAdjustedMethod");

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

            foreach (XmlNode item in zeroCouponYieldAdjustedMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        zeroCouponYieldAdjustedMethodIDRef = item.Attributes["id"].Name;
                        YieldCurveMethod ob = YieldCurveMethod();
                        IDManager.SetID(zeroCouponYieldAdjustedMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        zeroCouponYieldAdjustedMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        zeroCouponYieldAdjustedMethod = new YieldCurveMethod(item);
                    }
                }
            }


            XmlNodeList parYieldCurveUnadjustedMethodNodeList = xmlNode.SelectNodes("parYieldCurveUnadjustedMethod");

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

            foreach (XmlNode item in parYieldCurveUnadjustedMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        parYieldCurveUnadjustedMethodIDRef = item.Attributes["id"].Name;
                        YieldCurveMethod ob = YieldCurveMethod();
                        IDManager.SetID(parYieldCurveUnadjustedMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        parYieldCurveUnadjustedMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        parYieldCurveUnadjustedMethod = new YieldCurveMethod(item);
                    }
                }
            }


            XmlNodeList crossCurrencyMethodNodeList = xmlNode.SelectNodes("crossCurrencyMethod");

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

            foreach (XmlNode item in crossCurrencyMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        crossCurrencyMethodIDRef = item.Attributes["id"].Name;
                        CrossCurrencyMethod ob = CrossCurrencyMethod();
                        IDManager.SetID(crossCurrencyMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        crossCurrencyMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        crossCurrencyMethod = new CrossCurrencyMethod(item);
                    }
                }
            }


            XmlNodeList collateralizedCashPriceMethodNodeList = xmlNode.SelectNodes("collateralizedCashPriceMethod");

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

            foreach (XmlNode item in collateralizedCashPriceMethodNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        collateralizedCashPriceMethodIDRef = item.Attributes["id"].Name;
                        YieldCurveMethod ob = YieldCurveMethod();
                        IDManager.SetID(collateralizedCashPriceMethodIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        collateralizedCashPriceMethodIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        collateralizedCashPriceMethod = new YieldCurveMethod(item);
                    }
                }
            }
        }
 public CashSettlement(XmlNode xmlNode)
 {
     XmlNodeList cashSettlementValuationTimeNodeList = xmlNode.SelectNodes("cashSettlementValuationTime");
     if (cashSettlementValuationTimeNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementValuationTimeNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementValuationTimeIDRef = item.Attributes["id"].Name;
                 BusinessCenterTime ob = BusinessCenterTime();
                 IDManager.SetID(cashSettlementValuationTimeIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementValuationTimeIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlementValuationTime = new BusinessCenterTime(item);
             }
         }
     }
     
 
     XmlNodeList cashSettlementValuationDateNodeList = xmlNode.SelectNodes("cashSettlementValuationDate");
     if (cashSettlementValuationDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementValuationDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementValuationDateIDRef = item.Attributes["id"].Name;
                 RelativeDateOffset ob = RelativeDateOffset();
                 IDManager.SetID(cashSettlementValuationDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementValuationDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlementValuationDate = new RelativeDateOffset(item);
             }
         }
     }
     
 
     XmlNodeList cashSettlementPaymentDateNodeList = xmlNode.SelectNodes("cashSettlementPaymentDate");
     if (cashSettlementPaymentDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementPaymentDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementPaymentDateIDRef = item.Attributes["id"].Name;
                 CashSettlementPaymentDate ob = CashSettlementPaymentDate();
                 IDManager.SetID(cashSettlementPaymentDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementPaymentDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlementPaymentDate = new CashSettlementPaymentDate(item);
             }
         }
     }
     
 
     XmlNodeList cashPriceMethodNodeList = xmlNode.SelectNodes("cashPriceMethod");
     if (cashPriceMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashPriceMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashPriceMethodIDRef = item.Attributes["id"].Name;
                 CashPriceMethod ob = CashPriceMethod();
                 IDManager.SetID(cashPriceMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashPriceMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashPriceMethod = new CashPriceMethod(item);
             }
         }
     }
     
 
     XmlNodeList cashPriceAlternateMethodNodeList = xmlNode.SelectNodes("cashPriceAlternateMethod");
     if (cashPriceAlternateMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashPriceAlternateMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashPriceAlternateMethodIDRef = item.Attributes["id"].Name;
                 CashPriceMethod ob = CashPriceMethod();
                 IDManager.SetID(cashPriceAlternateMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashPriceAlternateMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashPriceAlternateMethod = new CashPriceMethod(item);
             }
         }
     }
     
 
     XmlNodeList parYieldCurveAdjustedMethodNodeList = xmlNode.SelectNodes("parYieldCurveAdjustedMethod");
     if (parYieldCurveAdjustedMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in parYieldCurveAdjustedMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 parYieldCurveAdjustedMethodIDRef = item.Attributes["id"].Name;
                 YieldCurveMethod ob = YieldCurveMethod();
                 IDManager.SetID(parYieldCurveAdjustedMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 parYieldCurveAdjustedMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 parYieldCurveAdjustedMethod = new YieldCurveMethod(item);
             }
         }
     }
     
 
     XmlNodeList zeroCouponYieldAdjustedMethodNodeList = xmlNode.SelectNodes("zeroCouponYieldAdjustedMethod");
     if (zeroCouponYieldAdjustedMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in zeroCouponYieldAdjustedMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 zeroCouponYieldAdjustedMethodIDRef = item.Attributes["id"].Name;
                 YieldCurveMethod ob = YieldCurveMethod();
                 IDManager.SetID(zeroCouponYieldAdjustedMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 zeroCouponYieldAdjustedMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 zeroCouponYieldAdjustedMethod = new YieldCurveMethod(item);
             }
         }
     }
     
 
     XmlNodeList parYieldCurveUnadjustedMethodNodeList = xmlNode.SelectNodes("parYieldCurveUnadjustedMethod");
     if (parYieldCurveUnadjustedMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in parYieldCurveUnadjustedMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 parYieldCurveUnadjustedMethodIDRef = item.Attributes["id"].Name;
                 YieldCurveMethod ob = YieldCurveMethod();
                 IDManager.SetID(parYieldCurveUnadjustedMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 parYieldCurveUnadjustedMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 parYieldCurveUnadjustedMethod = new YieldCurveMethod(item);
             }
         }
     }
     
 
     XmlNodeList crossCurrencyMethodNodeList = xmlNode.SelectNodes("crossCurrencyMethod");
     if (crossCurrencyMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in crossCurrencyMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 crossCurrencyMethodIDRef = item.Attributes["id"].Name;
                 CrossCurrencyMethod ob = CrossCurrencyMethod();
                 IDManager.SetID(crossCurrencyMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 crossCurrencyMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 crossCurrencyMethod = new CrossCurrencyMethod(item);
             }
         }
     }
     
 
     XmlNodeList collateralizedCashPriceMethodNodeList = xmlNode.SelectNodes("collateralizedCashPriceMethod");
     if (collateralizedCashPriceMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in collateralizedCashPriceMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 collateralizedCashPriceMethodIDRef = item.Attributes["id"].Name;
                 YieldCurveMethod ob = YieldCurveMethod();
                 IDManager.SetID(collateralizedCashPriceMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 collateralizedCashPriceMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 collateralizedCashPriceMethod = new YieldCurveMethod(item);
             }
         }
     }
     
 
 }