public ExercisePeriod(XmlNode xmlNode)
 {
     XmlNode earliestExerciseDateTenorNode = xmlNode.SelectSingleNode("earliestExerciseDateTenor");
     
     if (earliestExerciseDateTenorNode != null)
     {
         if (earliestExerciseDateTenorNode.Attributes["href"] != null || earliestExerciseDateTenorNode.Attributes["id"] != null) 
         {
             if (earliestExerciseDateTenorNode.Attributes["id"] != null) 
             {
                 earliestExerciseDateTenorIDRef_ = earliestExerciseDateTenorNode.Attributes["id"].Value;
                 Period ob = new Period(earliestExerciseDateTenorNode);
                 IDManager.SetID(earliestExerciseDateTenorIDRef_, ob);
             }
             else if (earliestExerciseDateTenorNode.Attributes["href"] != null)
             {
                 earliestExerciseDateTenorIDRef_ = earliestExerciseDateTenorNode.Attributes["href"].Value;
             }
             else
             {
                 earliestExerciseDateTenor_ = new Period(earliestExerciseDateTenorNode);
             }
         }
         else
         {
             earliestExerciseDateTenor_ = new Period(earliestExerciseDateTenorNode);
         }
     }
     
 
     XmlNode exerciseFrequencyNode = xmlNode.SelectSingleNode("exerciseFrequency");
     
     if (exerciseFrequencyNode != null)
     {
         if (exerciseFrequencyNode.Attributes["href"] != null || exerciseFrequencyNode.Attributes["id"] != null) 
         {
             if (exerciseFrequencyNode.Attributes["id"] != null) 
             {
                 exerciseFrequencyIDRef_ = exerciseFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(exerciseFrequencyNode);
                 IDManager.SetID(exerciseFrequencyIDRef_, ob);
             }
             else if (exerciseFrequencyNode.Attributes["href"] != null)
             {
                 exerciseFrequencyIDRef_ = exerciseFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 exerciseFrequency_ = new Period(exerciseFrequencyNode);
             }
         }
         else
         {
             exerciseFrequency_ = new Period(exerciseFrequencyNode);
         }
     }
     
 
 }
 public TimeDimension(XmlNode xmlNode)
 {
     XmlNode tenorNode = xmlNode.SelectSingleNode("tenor");
     
     if (tenorNode != null)
     {
         if (tenorNode.Attributes["href"] != null || tenorNode.Attributes["id"] != null) 
         {
             if (tenorNode.Attributes["id"] != null) 
             {
                 tenorIDRef_ = tenorNode.Attributes["id"].Value;
                 Period ob = new Period(tenorNode);
                 IDManager.SetID(tenorIDRef_, ob);
             }
             else if (tenorNode.Attributes["href"] != null)
             {
                 tenorIDRef_ = tenorNode.Attributes["href"].Value;
             }
             else
             {
                 tenor_ = new Period(tenorNode);
             }
         }
         else
         {
             tenor_ = new Period(tenorNode);
         }
     }
     
 
     XmlNode dateNode = xmlNode.SelectSingleNode("date");
     
     if (dateNode != null)
     {
         if (dateNode.Attributes["href"] != null || dateNode.Attributes["id"] != null) 
         {
             if (dateNode.Attributes["id"] != null) 
             {
                 dateIDRef_ = dateNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(dateNode);
                 IDManager.SetID(dateIDRef_, ob);
             }
             else if (dateNode.Attributes["href"] != null)
             {
                 dateIDRef_ = dateNode.Attributes["href"].Value;
             }
             else
             {
                 date_ = new XsdTypeDate(dateNode);
             }
         }
         else
         {
             date_ = new XsdTypeDate(dateNode);
         }
     }
     
 
 }
 public ForecastRateIndex(XmlNode xmlNode)
 {
     XmlNodeList floatingRateIndexNodeList = xmlNode.SelectNodes("floatingRateIndex");
     if (floatingRateIndexNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in floatingRateIndexNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floatingRateIndexIDRef = item.Attributes["id"].Name;
                 FloatingRateIndex ob = FloatingRateIndex();
                 IDManager.SetID(floatingRateIndexIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floatingRateIndexIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 floatingRateIndex = new FloatingRateIndex(item);
             }
         }
     }
     
 
     XmlNodeList indexTenorNodeList = xmlNode.SelectNodes("indexTenor");
     if (indexTenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in indexTenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 indexTenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(indexTenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 indexTenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 indexTenor = new Period(item);
             }
         }
     }
     
 
 }
 public Lag(XmlNode xmlNode)
 {
     XmlNodeList lagDurationNodeList = xmlNode.SelectNodes("lagDuration");
     if (lagDurationNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in lagDurationNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 lagDurationIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(lagDurationIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 lagDurationIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 lagDuration = new Period(item);
             }
         }
     }
     
 
     XmlNodeList firstObservationDateOffsetNodeList = xmlNode.SelectNodes("firstObservationDateOffset");
     if (firstObservationDateOffsetNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in firstObservationDateOffsetNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 firstObservationDateOffsetIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(firstObservationDateOffsetIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 firstObservationDateOffsetIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 firstObservationDateOffset = new Period(item);
             }
         }
     }
     
 
 }
 public TimeDimension(XmlNode xmlNode)
 {
     XmlNodeList tenorNodeList = xmlNode.SelectNodes("tenor");
     if (tenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(tenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenor = new Period(item);
             }
         }
     }
     
 
     XmlNodeList dateNodeList = xmlNode.SelectNodes("date");
     if (dateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(dateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 date = new XsdTypeDate(item);
             }
         }
     }
     
 
 }
 public ExercisePeriod(XmlNode xmlNode)
 {
     XmlNodeList earliestExerciseDateTenorNodeList = xmlNode.SelectNodes("earliestExerciseDateTenor");
     if (earliestExerciseDateTenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in earliestExerciseDateTenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 earliestExerciseDateTenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(earliestExerciseDateTenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 earliestExerciseDateTenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 earliestExerciseDateTenor = new Period(item);
             }
         }
     }
     
 
     XmlNodeList exerciseFrequencyNodeList = xmlNode.SelectNodes("exerciseFrequency");
     if (exerciseFrequencyNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exerciseFrequencyNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exerciseFrequencyIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(exerciseFrequencyIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exerciseFrequencyIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exerciseFrequency = new Period(item);
             }
         }
     }
     
 
 }
 public ForecastRateIndex(XmlNode xmlNode)
 {
     XmlNode floatingRateIndexNode = xmlNode.SelectSingleNode("floatingRateIndex");
     
     if (floatingRateIndexNode != null)
     {
         if (floatingRateIndexNode.Attributes["href"] != null || floatingRateIndexNode.Attributes["id"] != null) 
         {
             if (floatingRateIndexNode.Attributes["id"] != null) 
             {
                 floatingRateIndexIDRef_ = floatingRateIndexNode.Attributes["id"].Value;
                 FloatingRateIndex ob = new FloatingRateIndex(floatingRateIndexNode);
                 IDManager.SetID(floatingRateIndexIDRef_, ob);
             }
             else if (floatingRateIndexNode.Attributes["href"] != null)
             {
                 floatingRateIndexIDRef_ = floatingRateIndexNode.Attributes["href"].Value;
             }
             else
             {
                 floatingRateIndex_ = new FloatingRateIndex(floatingRateIndexNode);
             }
         }
         else
         {
             floatingRateIndex_ = new FloatingRateIndex(floatingRateIndexNode);
         }
     }
     
 
     XmlNode indexTenorNode = xmlNode.SelectSingleNode("indexTenor");
     
     if (indexTenorNode != null)
     {
         if (indexTenorNode.Attributes["href"] != null || indexTenorNode.Attributes["id"] != null) 
         {
             if (indexTenorNode.Attributes["id"] != null) 
             {
                 indexTenorIDRef_ = indexTenorNode.Attributes["id"].Value;
                 Period ob = new Period(indexTenorNode);
                 IDManager.SetID(indexTenorIDRef_, ob);
             }
             else if (indexTenorNode.Attributes["href"] != null)
             {
                 indexTenorIDRef_ = indexTenorNode.Attributes["href"].Value;
             }
             else
             {
                 indexTenor_ = new Period(indexTenorNode);
             }
         }
         else
         {
             indexTenor_ = new Period(indexTenorNode);
         }
     }
     
 
 }
 public Lag(XmlNode xmlNode)
 {
     XmlNode lagDurationNode = xmlNode.SelectSingleNode("lagDuration");
     
     if (lagDurationNode != null)
     {
         if (lagDurationNode.Attributes["href"] != null || lagDurationNode.Attributes["id"] != null) 
         {
             if (lagDurationNode.Attributes["id"] != null) 
             {
                 lagDurationIDRef_ = lagDurationNode.Attributes["id"].Value;
                 Period ob = new Period(lagDurationNode);
                 IDManager.SetID(lagDurationIDRef_, ob);
             }
             else if (lagDurationNode.Attributes["href"] != null)
             {
                 lagDurationIDRef_ = lagDurationNode.Attributes["href"].Value;
             }
             else
             {
                 lagDuration_ = new Period(lagDurationNode);
             }
         }
         else
         {
             lagDuration_ = new Period(lagDurationNode);
         }
     }
     
 
     XmlNode firstObservationDateOffsetNode = xmlNode.SelectSingleNode("firstObservationDateOffset");
     
     if (firstObservationDateOffsetNode != null)
     {
         if (firstObservationDateOffsetNode.Attributes["href"] != null || firstObservationDateOffsetNode.Attributes["id"] != null) 
         {
             if (firstObservationDateOffsetNode.Attributes["id"] != null) 
             {
                 firstObservationDateOffsetIDRef_ = firstObservationDateOffsetNode.Attributes["id"].Value;
                 Period ob = new Period(firstObservationDateOffsetNode);
                 IDManager.SetID(firstObservationDateOffsetIDRef_, ob);
             }
             else if (firstObservationDateOffsetNode.Attributes["href"] != null)
             {
                 firstObservationDateOffsetIDRef_ = firstObservationDateOffsetNode.Attributes["href"].Value;
             }
             else
             {
                 firstObservationDateOffset_ = new Period(firstObservationDateOffsetNode);
             }
         }
         else
         {
             firstObservationDateOffset_ = new Period(firstObservationDateOffsetNode);
         }
     }
     
 
 }
 public EarlyTerminationProvision(XmlNode xmlNode)
 {
     XmlNodeList mandatoryEarlyTerminationNodeList = xmlNode.SelectNodes("mandatoryEarlyTermination");
     if (mandatoryEarlyTerminationNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in mandatoryEarlyTerminationNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 mandatoryEarlyTerminationIDRef = item.Attributes["id"].Name;
                 MandatoryEarlyTermination ob = MandatoryEarlyTermination();
                 IDManager.SetID(mandatoryEarlyTerminationIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 mandatoryEarlyTerminationIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 mandatoryEarlyTermination = new MandatoryEarlyTermination(item);
             }
         }
     }
     
 
     XmlNodeList mandatoryEarlyTerminationDateTenorNodeList = xmlNode.SelectNodes("mandatoryEarlyTerminationDateTenor");
     if (mandatoryEarlyTerminationDateTenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in mandatoryEarlyTerminationDateTenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 mandatoryEarlyTerminationDateTenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(mandatoryEarlyTerminationDateTenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 mandatoryEarlyTerminationDateTenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 mandatoryEarlyTerminationDateTenor = new Period(item);
             }
         }
     }
     
 
     XmlNodeList optionalEarlyTerminationNodeList = xmlNode.SelectNodes("optionalEarlyTermination");
     if (optionalEarlyTerminationNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in optionalEarlyTerminationNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 optionalEarlyTerminationIDRef = item.Attributes["id"].Name;
                 OptionalEarlyTermination ob = OptionalEarlyTermination();
                 IDManager.SetID(optionalEarlyTerminationIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 optionalEarlyTerminationIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 optionalEarlyTermination = new OptionalEarlyTermination(item);
             }
         }
     }
     
 
     XmlNodeList optionalEarlyTerminationParametersNodeList = xmlNode.SelectNodes("optionalEarlyTerminationParameters");
     if (optionalEarlyTerminationParametersNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in optionalEarlyTerminationParametersNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 optionalEarlyTerminationParametersIDRef = item.Attributes["id"].Name;
                 ExercisePeriod ob = ExercisePeriod();
                 IDManager.SetID(optionalEarlyTerminationParametersIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 optionalEarlyTerminationParametersIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 optionalEarlyTerminationParameters = new ExercisePeriod(item);
             }
         }
     }
     
 
 }
 public FxDigitalOption(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode effectiveDateNode = xmlNode.SelectSingleNode("effectiveDate");
     
     if (effectiveDateNode != null)
     {
         if (effectiveDateNode.Attributes["href"] != null || effectiveDateNode.Attributes["id"] != null) 
         {
             if (effectiveDateNode.Attributes["id"] != null) 
             {
                 effectiveDateIDRef_ = effectiveDateNode.Attributes["id"].Value;
                 AdjustableOrRelativeDate ob = new AdjustableOrRelativeDate(effectiveDateNode);
                 IDManager.SetID(effectiveDateIDRef_, ob);
             }
             else if (effectiveDateNode.Attributes["href"] != null)
             {
                 effectiveDateIDRef_ = effectiveDateNode.Attributes["href"].Value;
             }
             else
             {
                 effectiveDate_ = new AdjustableOrRelativeDate(effectiveDateNode);
             }
         }
         else
         {
             effectiveDate_ = new AdjustableOrRelativeDate(effectiveDateNode);
         }
     }
     
 
     XmlNode tenorPeriodNode = xmlNode.SelectSingleNode("tenorPeriod");
     
     if (tenorPeriodNode != null)
     {
         if (tenorPeriodNode.Attributes["href"] != null || tenorPeriodNode.Attributes["id"] != null) 
         {
             if (tenorPeriodNode.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef_ = tenorPeriodNode.Attributes["id"].Value;
                 Period ob = new Period(tenorPeriodNode);
                 IDManager.SetID(tenorPeriodIDRef_, ob);
             }
             else if (tenorPeriodNode.Attributes["href"] != null)
             {
                 tenorPeriodIDRef_ = tenorPeriodNode.Attributes["href"].Value;
             }
             else
             {
                 tenorPeriod_ = new Period(tenorPeriodNode);
             }
         }
         else
         {
             tenorPeriod_ = new Period(tenorPeriodNode);
         }
     }
     
 
     XmlNode americanExerciseNode = xmlNode.SelectSingleNode("americanExercise");
     
     if (americanExerciseNode != null)
     {
         if (americanExerciseNode.Attributes["href"] != null || americanExerciseNode.Attributes["id"] != null) 
         {
             if (americanExerciseNode.Attributes["id"] != null) 
             {
                 americanExerciseIDRef_ = americanExerciseNode.Attributes["id"].Value;
                 FxDigitalAmericanExercise ob = new FxDigitalAmericanExercise(americanExerciseNode);
                 IDManager.SetID(americanExerciseIDRef_, ob);
             }
             else if (americanExerciseNode.Attributes["href"] != null)
             {
                 americanExerciseIDRef_ = americanExerciseNode.Attributes["href"].Value;
             }
             else
             {
                 americanExercise_ = new FxDigitalAmericanExercise(americanExerciseNode);
             }
         }
         else
         {
             americanExercise_ = new FxDigitalAmericanExercise(americanExerciseNode);
         }
     }
     
 
     XmlNodeList touchNodeList = xmlNode.SelectNodes("touch");
     
     if (touchNodeList != null)
     {
         this.touch_ = new List<FxTouch>();
         foreach (XmlNode item in touchNodeList)
         {
             if (item.Attributes["href"] != null || item.Attributes["id"] != null) 
             {
                 if (item.Attributes["id"] != null) 
                 {
                     touchIDRef_ = item.Attributes["id"].Value;
                     touch_.Add(new FxTouch(item));
                     IDManager.SetID(touchIDRef_, touch_[touch_.Count - 1 ]);
                 }
                 else if (item.Attributes["href"] != null)
                 {
                     touchIDRef_ = item.Attributes["href"].Value;
                 }
                 else
                 {
                 touch_.Add(new FxTouch(item));
                 }
             }
             else
             {
                 touch_.Add(new FxTouch(item));
             }
         }
     }
     
 
     XmlNode europeanExerciseNode = xmlNode.SelectSingleNode("europeanExercise");
     
     if (europeanExerciseNode != null)
     {
         if (europeanExerciseNode.Attributes["href"] != null || europeanExerciseNode.Attributes["id"] != null) 
         {
             if (europeanExerciseNode.Attributes["id"] != null) 
             {
                 europeanExerciseIDRef_ = europeanExerciseNode.Attributes["id"].Value;
                 FxEuropeanExercise ob = new FxEuropeanExercise(europeanExerciseNode);
                 IDManager.SetID(europeanExerciseIDRef_, ob);
             }
             else if (europeanExerciseNode.Attributes["href"] != null)
             {
                 europeanExerciseIDRef_ = europeanExerciseNode.Attributes["href"].Value;
             }
             else
             {
                 europeanExercise_ = new FxEuropeanExercise(europeanExerciseNode);
             }
         }
         else
         {
             europeanExercise_ = new FxEuropeanExercise(europeanExerciseNode);
         }
     }
     
 
     XmlNodeList triggerNodeList = xmlNode.SelectNodes("trigger");
     
     if (triggerNodeList != null)
     {
         this.trigger_ = new List<FxTrigger>();
         foreach (XmlNode item in triggerNodeList)
         {
             if (item.Attributes["href"] != null || item.Attributes["id"] != null) 
             {
                 if (item.Attributes["id"] != null) 
                 {
                     triggerIDRef_ = item.Attributes["id"].Value;
                     trigger_.Add(new FxTrigger(item));
                     IDManager.SetID(triggerIDRef_, trigger_[trigger_.Count - 1 ]);
                 }
                 else if (item.Attributes["href"] != null)
                 {
                     triggerIDRef_ = item.Attributes["href"].Value;
                 }
                 else
                 {
                 trigger_.Add(new FxTrigger(item));
                 }
             }
             else
             {
                 trigger_.Add(new FxTrigger(item));
             }
         }
     }
     
 
     XmlNode exerciseProcedureNode = xmlNode.SelectSingleNode("exerciseProcedure");
     
     if (exerciseProcedureNode != null)
     {
         if (exerciseProcedureNode.Attributes["href"] != null || exerciseProcedureNode.Attributes["id"] != null) 
         {
             if (exerciseProcedureNode.Attributes["id"] != null) 
             {
                 exerciseProcedureIDRef_ = exerciseProcedureNode.Attributes["id"].Value;
                 ExerciseProcedure ob = new ExerciseProcedure(exerciseProcedureNode);
                 IDManager.SetID(exerciseProcedureIDRef_, ob);
             }
             else if (exerciseProcedureNode.Attributes["href"] != null)
             {
                 exerciseProcedureIDRef_ = exerciseProcedureNode.Attributes["href"].Value;
             }
             else
             {
                 exerciseProcedure_ = new ExerciseProcedure(exerciseProcedureNode);
             }
         }
         else
         {
             exerciseProcedure_ = new ExerciseProcedure(exerciseProcedureNode);
         }
     }
     
 
     XmlNode payoutNode = xmlNode.SelectSingleNode("payout");
     
     if (payoutNode != null)
     {
         if (payoutNode.Attributes["href"] != null || payoutNode.Attributes["id"] != null) 
         {
             if (payoutNode.Attributes["id"] != null) 
             {
                 payoutIDRef_ = payoutNode.Attributes["id"].Value;
                 FxOptionPayout ob = new FxOptionPayout(payoutNode);
                 IDManager.SetID(payoutIDRef_, ob);
             }
             else if (payoutNode.Attributes["href"] != null)
             {
                 payoutIDRef_ = payoutNode.Attributes["href"].Value;
             }
             else
             {
                 payout_ = new FxOptionPayout(payoutNode);
             }
         }
         else
         {
             payout_ = new FxOptionPayout(payoutNode);
         }
     }
     
 
     XmlNodeList premiumNodeList = xmlNode.SelectNodes("premium");
     
     if (premiumNodeList != null)
     {
         this.premium_ = new List<FxOptionPremium>();
         foreach (XmlNode item in premiumNodeList)
         {
             if (item.Attributes["href"] != null || item.Attributes["id"] != null) 
             {
                 if (item.Attributes["id"] != null) 
                 {
                     premiumIDRef_ = item.Attributes["id"].Value;
                     premium_.Add(new FxOptionPremium(item));
                     IDManager.SetID(premiumIDRef_, premium_[premium_.Count - 1 ]);
                 }
                 else if (item.Attributes["href"] != null)
                 {
                     premiumIDRef_ = item.Attributes["href"].Value;
                 }
                 else
                 {
                 premium_.Add(new FxOptionPremium(item));
                 }
             }
             else
             {
                 premium_.Add(new FxOptionPremium(item));
             }
         }
     }
     
 
 }
 public SimpleFra(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode startTermNode = xmlNode.SelectSingleNode("startTerm");
     
     if (startTermNode != null)
     {
         if (startTermNode.Attributes["href"] != null || startTermNode.Attributes["id"] != null) 
         {
             if (startTermNode.Attributes["id"] != null) 
             {
                 startTermIDRef_ = startTermNode.Attributes["id"].Value;
                 Period ob = new Period(startTermNode);
                 IDManager.SetID(startTermIDRef_, ob);
             }
             else if (startTermNode.Attributes["href"] != null)
             {
                 startTermIDRef_ = startTermNode.Attributes["href"].Value;
             }
             else
             {
                 startTerm_ = new Period(startTermNode);
             }
         }
         else
         {
             startTerm_ = new Period(startTermNode);
         }
     }
     
 
     XmlNode endTermNode = xmlNode.SelectSingleNode("endTerm");
     
     if (endTermNode != null)
     {
         if (endTermNode.Attributes["href"] != null || endTermNode.Attributes["id"] != null) 
         {
             if (endTermNode.Attributes["id"] != null) 
             {
                 endTermIDRef_ = endTermNode.Attributes["id"].Value;
                 Period ob = new Period(endTermNode);
                 IDManager.SetID(endTermIDRef_, ob);
             }
             else if (endTermNode.Attributes["href"] != null)
             {
                 endTermIDRef_ = endTermNode.Attributes["href"].Value;
             }
             else
             {
                 endTerm_ = new Period(endTermNode);
             }
         }
         else
         {
             endTerm_ = new Period(endTermNode);
         }
     }
     
 
     XmlNode dayCountFractionNode = xmlNode.SelectSingleNode("dayCountFraction");
     
     if (dayCountFractionNode != null)
     {
         if (dayCountFractionNode.Attributes["href"] != null || dayCountFractionNode.Attributes["id"] != null) 
         {
             if (dayCountFractionNode.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["id"].Value;
                 DayCountFraction ob = new DayCountFraction(dayCountFractionNode);
                 IDManager.SetID(dayCountFractionIDRef_, ob);
             }
             else if (dayCountFractionNode.Attributes["href"] != null)
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["href"].Value;
             }
             else
             {
                 dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
             }
         }
         else
         {
             dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
         }
     }
     
 
 }
 public Bond(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList issuerNameNodeList = xmlNode.SelectNodes("issuerName");
     if (issuerNameNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in issuerNameNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 issuerNameIDRef = item.Attributes["id"].Name;
                 XsdTypeString ob = XsdTypeString();
                 IDManager.SetID(issuerNameIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 issuerNameIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 issuerName = new XsdTypeString(item);
             }
         }
     }
     
 
     XmlNodeList issuerPartyReferenceNodeList = xmlNode.SelectNodes("issuerPartyReference");
     if (issuerPartyReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in issuerPartyReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 issuerPartyReferenceIDRef = item.Attributes["id"].Name;
                 PartyReference ob = PartyReference();
                 IDManager.SetID(issuerPartyReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 issuerPartyReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 issuerPartyReference = new PartyReference(item);
             }
         }
     }
     
 
     XmlNodeList seniorityNodeList = xmlNode.SelectNodes("seniority");
     if (seniorityNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in seniorityNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 seniorityIDRef = item.Attributes["id"].Name;
                 CreditSeniority ob = CreditSeniority();
                 IDManager.SetID(seniorityIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 seniorityIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 seniority = new CreditSeniority(item);
             }
         }
     }
     
 
     XmlNodeList couponTypeNodeList = xmlNode.SelectNodes("couponType");
     if (couponTypeNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in couponTypeNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 couponTypeIDRef = item.Attributes["id"].Name;
                 CouponType ob = CouponType();
                 IDManager.SetID(couponTypeIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 couponTypeIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 couponType = new CouponType(item);
             }
         }
     }
     
 
     XmlNodeList couponRateNodeList = xmlNode.SelectNodes("couponRate");
     if (couponRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in couponRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 couponRateIDRef = item.Attributes["id"].Name;
                 XsdTypeDecimal ob = XsdTypeDecimal();
                 IDManager.SetID(couponRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 couponRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 couponRate = new XsdTypeDecimal(item);
             }
         }
     }
     
 
     XmlNodeList maturityNodeList = xmlNode.SelectNodes("maturity");
     if (maturityNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in maturityNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 maturityIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(maturityIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 maturityIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 maturity = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList parValueNodeList = xmlNode.SelectNodes("parValue");
     if (parValueNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in parValueNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 parValueIDRef = item.Attributes["id"].Name;
                 XsdTypeDecimal ob = XsdTypeDecimal();
                 IDManager.SetID(parValueIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 parValueIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 parValue = new XsdTypeDecimal(item);
             }
         }
     }
     
 
     XmlNodeList faceAmountNodeList = xmlNode.SelectNodes("faceAmount");
     if (faceAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in faceAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 faceAmountIDRef = item.Attributes["id"].Name;
                 XsdTypeDecimal ob = XsdTypeDecimal();
                 IDManager.SetID(faceAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 faceAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 faceAmount = new XsdTypeDecimal(item);
             }
         }
     }
     
 
     XmlNodeList paymentFrequencyNodeList = xmlNode.SelectNodes("paymentFrequency");
     if (paymentFrequencyNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in paymentFrequencyNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(paymentFrequencyIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 paymentFrequencyIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 paymentFrequency = new Period(item);
             }
         }
     }
     
 
     XmlNodeList dayCountFractionNodeList = xmlNode.SelectNodes("dayCountFraction");
     if (dayCountFractionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dayCountFractionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef = item.Attributes["id"].Name;
                 DayCountFraction ob = DayCountFraction();
                 IDManager.SetID(dayCountFractionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dayCountFractionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dayCountFraction = new DayCountFraction(item);
             }
         }
     }
     
 
 }
 public FxOption(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList effectiveDateNodeList = xmlNode.SelectNodes("effectiveDate");
     if (effectiveDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in effectiveDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 effectiveDateIDRef = item.Attributes["id"].Name;
                 AdjustableOrRelativeDate ob = AdjustableOrRelativeDate();
                 IDManager.SetID(effectiveDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 effectiveDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 effectiveDate = new AdjustableOrRelativeDate(item);
             }
         }
     }
     
 
     XmlNodeList tenorPeriodNodeList = xmlNode.SelectNodes("tenorPeriod");
     if (tenorPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(tenorPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorPeriod = new Period(item);
             }
         }
     }
     
 
     XmlNodeList americanExerciseNodeList = xmlNode.SelectNodes("americanExercise");
     if (americanExerciseNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in americanExerciseNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 americanExerciseIDRef = item.Attributes["id"].Name;
                 FxAmericanExercise ob = FxAmericanExercise();
                 IDManager.SetID(americanExerciseIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 americanExerciseIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 americanExercise = new FxAmericanExercise(item);
             }
         }
     }
     
 
     XmlNodeList europeanExerciseNodeList = xmlNode.SelectNodes("europeanExercise");
     if (europeanExerciseNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in europeanExerciseNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 europeanExerciseIDRef = item.Attributes["id"].Name;
                 FxEuropeanExercise ob = FxEuropeanExercise();
                 IDManager.SetID(europeanExerciseIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 europeanExerciseIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 europeanExercise = new FxEuropeanExercise(item);
             }
         }
     }
     
 
     XmlNodeList exerciseProcedureNodeList = xmlNode.SelectNodes("exerciseProcedure");
     if (exerciseProcedureNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exerciseProcedureNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exerciseProcedureIDRef = item.Attributes["id"].Name;
                 ExerciseProcedure ob = ExerciseProcedure();
                 IDManager.SetID(exerciseProcedureIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exerciseProcedureIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exerciseProcedure = new ExerciseProcedure(item);
             }
         }
     }
     
 
     XmlNodeList putCurrencyAmountNodeList = xmlNode.SelectNodes("putCurrencyAmount");
     if (putCurrencyAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in putCurrencyAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 putCurrencyAmountIDRef = item.Attributes["id"].Name;
                 NonNegativeMoney ob = NonNegativeMoney();
                 IDManager.SetID(putCurrencyAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 putCurrencyAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 putCurrencyAmount = new NonNegativeMoney(item);
             }
         }
     }
     
 
     XmlNodeList callCurrencyAmountNodeList = xmlNode.SelectNodes("callCurrencyAmount");
     if (callCurrencyAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in callCurrencyAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 callCurrencyAmountIDRef = item.Attributes["id"].Name;
                 NonNegativeMoney ob = NonNegativeMoney();
                 IDManager.SetID(callCurrencyAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 callCurrencyAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 callCurrencyAmount = new NonNegativeMoney(item);
             }
         }
     }
     
 
     XmlNodeList soldAsNodeList = xmlNode.SelectNodes("soldAs");
     if (soldAsNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in soldAsNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 soldAsIDRef = item.Attributes["id"].Name;
                 PutCallEnum ob = PutCallEnum();
                 IDManager.SetID(soldAsIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 soldAsIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 soldAs = new PutCallEnum(item);
             }
         }
     }
     
 
     XmlNodeList strikeNodeList = xmlNode.SelectNodes("strike");
     if (strikeNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in strikeNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 strikeIDRef = item.Attributes["id"].Name;
                 FxStrikePrice ob = FxStrikePrice();
                 IDManager.SetID(strikeIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 strikeIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 strike = new FxStrikePrice(item);
             }
         }
     }
     
 
     XmlNodeList spotRateNodeList = xmlNode.SelectNodes("spotRate");
     if (spotRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in spotRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 spotRateIDRef = item.Attributes["id"].Name;
                 PositiveDecimal ob = PositiveDecimal();
                 IDManager.SetID(spotRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 spotRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 spotRate = new PositiveDecimal(item);
             }
         }
     }
     
 
     XmlNodeList featuresNodeList = xmlNode.SelectNodes("features");
     if (featuresNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in featuresNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 featuresIDRef = item.Attributes["id"].Name;
                 FxOptionFeatures ob = FxOptionFeatures();
                 IDManager.SetID(featuresIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 featuresIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 features = new FxOptionFeatures(item);
             }
         }
     }
     
 
     XmlNodeList premiumNodeList = xmlNode.SelectNodes("premium");
     
     foreach (XmlNode item in premiumNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 premiumIDRef = item.Attributes["id"].Name;
                 List<FxOptionPremium> ob = new List<FxOptionPremium>();
                 ob.Add(new FxOptionPremium(item));
                 IDManager.SetID(premiumIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 premiumIDRef = item.Attributes["href"].Name;
             }
             else
             {
             premium.Add(new FxOptionPremium(item));
             }
         }
     }
     
 
     XmlNodeList cashSettlementNodeList = xmlNode.SelectNodes("cashSettlement");
     if (cashSettlementNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementIDRef = item.Attributes["id"].Name;
                 FxCashSettlement ob = FxCashSettlement();
                 IDManager.SetID(cashSettlementIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlement = new FxCashSettlement(item);
             }
         }
     }
     
 
 }
 public SimpleFra(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList startTermNodeList = xmlNode.SelectNodes("startTerm");
     if (startTermNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in startTermNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 startTermIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(startTermIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 startTermIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 startTerm = new Period(item);
             }
         }
     }
     
 
     XmlNodeList endTermNodeList = xmlNode.SelectNodes("endTerm");
     if (endTermNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in endTermNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 endTermIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(endTermIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 endTermIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 endTerm = new Period(item);
             }
         }
     }
     
 
     XmlNodeList dayCountFractionNodeList = xmlNode.SelectNodes("dayCountFraction");
     if (dayCountFractionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dayCountFractionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef = item.Attributes["id"].Name;
                 DayCountFraction ob = DayCountFraction();
                 IDManager.SetID(dayCountFractionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dayCountFractionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dayCountFraction = new DayCountFraction(item);
             }
         }
     }
     
 
 }
 public Deposit(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode termNode = xmlNode.SelectSingleNode("term");
     
     if (termNode != null)
     {
         if (termNode.Attributes["href"] != null || termNode.Attributes["id"] != null) 
         {
             if (termNode.Attributes["id"] != null) 
             {
                 termIDRef_ = termNode.Attributes["id"].Value;
                 Period ob = new Period(termNode);
                 IDManager.SetID(termIDRef_, ob);
             }
             else if (termNode.Attributes["href"] != null)
             {
                 termIDRef_ = termNode.Attributes["href"].Value;
             }
             else
             {
                 term_ = new Period(termNode);
             }
         }
         else
         {
             term_ = new Period(termNode);
         }
     }
     
 
     XmlNode paymentFrequencyNode = xmlNode.SelectSingleNode("paymentFrequency");
     
     if (paymentFrequencyNode != null)
     {
         if (paymentFrequencyNode.Attributes["href"] != null || paymentFrequencyNode.Attributes["id"] != null) 
         {
             if (paymentFrequencyNode.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(paymentFrequencyNode);
                 IDManager.SetID(paymentFrequencyIDRef_, ob);
             }
             else if (paymentFrequencyNode.Attributes["href"] != null)
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 paymentFrequency_ = new Period(paymentFrequencyNode);
             }
         }
         else
         {
             paymentFrequency_ = new Period(paymentFrequencyNode);
         }
     }
     
 
     XmlNode dayCountFractionNode = xmlNode.SelectSingleNode("dayCountFraction");
     
     if (dayCountFractionNode != null)
     {
         if (dayCountFractionNode.Attributes["href"] != null || dayCountFractionNode.Attributes["id"] != null) 
         {
             if (dayCountFractionNode.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["id"].Value;
                 DayCountFraction ob = new DayCountFraction(dayCountFractionNode);
                 IDManager.SetID(dayCountFractionIDRef_, ob);
             }
             else if (dayCountFractionNode.Attributes["href"] != null)
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["href"].Value;
             }
             else
             {
                 dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
             }
         }
         else
         {
             dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
         }
     }
     
 
 }
 public NotionalStepRule(XmlNode xmlNode)
 {
     XmlNode calculationPeriodDatesReferenceNode = xmlNode.SelectSingleNode("calculationPeriodDatesReference");
     
     if (calculationPeriodDatesReferenceNode != null)
     {
         if (calculationPeriodDatesReferenceNode.Attributes["href"] != null || calculationPeriodDatesReferenceNode.Attributes["id"] != null) 
         {
             if (calculationPeriodDatesReferenceNode.Attributes["id"] != null) 
             {
                 calculationPeriodDatesReferenceIDRef_ = calculationPeriodDatesReferenceNode.Attributes["id"].Value;
                 CalculationPeriodDatesReference ob = new CalculationPeriodDatesReference(calculationPeriodDatesReferenceNode);
                 IDManager.SetID(calculationPeriodDatesReferenceIDRef_, ob);
             }
             else if (calculationPeriodDatesReferenceNode.Attributes["href"] != null)
             {
                 calculationPeriodDatesReferenceIDRef_ = calculationPeriodDatesReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 calculationPeriodDatesReference_ = new CalculationPeriodDatesReference(calculationPeriodDatesReferenceNode);
             }
         }
         else
         {
             calculationPeriodDatesReference_ = new CalculationPeriodDatesReference(calculationPeriodDatesReferenceNode);
         }
     }
     
 
     XmlNode stepFrequencyNode = xmlNode.SelectSingleNode("stepFrequency");
     
     if (stepFrequencyNode != null)
     {
         if (stepFrequencyNode.Attributes["href"] != null || stepFrequencyNode.Attributes["id"] != null) 
         {
             if (stepFrequencyNode.Attributes["id"] != null) 
             {
                 stepFrequencyIDRef_ = stepFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(stepFrequencyNode);
                 IDManager.SetID(stepFrequencyIDRef_, ob);
             }
             else if (stepFrequencyNode.Attributes["href"] != null)
             {
                 stepFrequencyIDRef_ = stepFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 stepFrequency_ = new Period(stepFrequencyNode);
             }
         }
         else
         {
             stepFrequency_ = new Period(stepFrequencyNode);
         }
     }
     
 
     XmlNode firstNotionalStepDateNode = xmlNode.SelectSingleNode("firstNotionalStepDate");
     
     if (firstNotionalStepDateNode != null)
     {
         if (firstNotionalStepDateNode.Attributes["href"] != null || firstNotionalStepDateNode.Attributes["id"] != null) 
         {
             if (firstNotionalStepDateNode.Attributes["id"] != null) 
             {
                 firstNotionalStepDateIDRef_ = firstNotionalStepDateNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(firstNotionalStepDateNode);
                 IDManager.SetID(firstNotionalStepDateIDRef_, ob);
             }
             else if (firstNotionalStepDateNode.Attributes["href"] != null)
             {
                 firstNotionalStepDateIDRef_ = firstNotionalStepDateNode.Attributes["href"].Value;
             }
             else
             {
                 firstNotionalStepDate_ = new XsdTypeDate(firstNotionalStepDateNode);
             }
         }
         else
         {
             firstNotionalStepDate_ = new XsdTypeDate(firstNotionalStepDateNode);
         }
     }
     
 
     XmlNode lastNotionalStepDateNode = xmlNode.SelectSingleNode("lastNotionalStepDate");
     
     if (lastNotionalStepDateNode != null)
     {
         if (lastNotionalStepDateNode.Attributes["href"] != null || lastNotionalStepDateNode.Attributes["id"] != null) 
         {
             if (lastNotionalStepDateNode.Attributes["id"] != null) 
             {
                 lastNotionalStepDateIDRef_ = lastNotionalStepDateNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(lastNotionalStepDateNode);
                 IDManager.SetID(lastNotionalStepDateIDRef_, ob);
             }
             else if (lastNotionalStepDateNode.Attributes["href"] != null)
             {
                 lastNotionalStepDateIDRef_ = lastNotionalStepDateNode.Attributes["href"].Value;
             }
             else
             {
                 lastNotionalStepDate_ = new XsdTypeDate(lastNotionalStepDateNode);
             }
         }
         else
         {
             lastNotionalStepDate_ = new XsdTypeDate(lastNotionalStepDateNode);
         }
     }
     
 
     XmlNode notionalStepAmountNode = xmlNode.SelectSingleNode("notionalStepAmount");
     
     if (notionalStepAmountNode != null)
     {
         if (notionalStepAmountNode.Attributes["href"] != null || notionalStepAmountNode.Attributes["id"] != null) 
         {
             if (notionalStepAmountNode.Attributes["id"] != null) 
             {
                 notionalStepAmountIDRef_ = notionalStepAmountNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(notionalStepAmountNode);
                 IDManager.SetID(notionalStepAmountIDRef_, ob);
             }
             else if (notionalStepAmountNode.Attributes["href"] != null)
             {
                 notionalStepAmountIDRef_ = notionalStepAmountNode.Attributes["href"].Value;
             }
             else
             {
                 notionalStepAmount_ = new XsdTypeDecimal(notionalStepAmountNode);
             }
         }
         else
         {
             notionalStepAmount_ = new XsdTypeDecimal(notionalStepAmountNode);
         }
     }
     
 
     XmlNode notionalStepRateNode = xmlNode.SelectSingleNode("notionalStepRate");
     
     if (notionalStepRateNode != null)
     {
         if (notionalStepRateNode.Attributes["href"] != null || notionalStepRateNode.Attributes["id"] != null) 
         {
             if (notionalStepRateNode.Attributes["id"] != null) 
             {
                 notionalStepRateIDRef_ = notionalStepRateNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(notionalStepRateNode);
                 IDManager.SetID(notionalStepRateIDRef_, ob);
             }
             else if (notionalStepRateNode.Attributes["href"] != null)
             {
                 notionalStepRateIDRef_ = notionalStepRateNode.Attributes["href"].Value;
             }
             else
             {
                 notionalStepRate_ = new XsdTypeDecimal(notionalStepRateNode);
             }
         }
         else
         {
             notionalStepRate_ = new XsdTypeDecimal(notionalStepRateNode);
         }
     }
     
 
     XmlNode stepRelativeToNode = xmlNode.SelectSingleNode("stepRelativeTo");
     
     if (stepRelativeToNode != null)
     {
         if (stepRelativeToNode.Attributes["href"] != null || stepRelativeToNode.Attributes["id"] != null) 
         {
             if (stepRelativeToNode.Attributes["id"] != null) 
             {
                 stepRelativeToIDRef_ = stepRelativeToNode.Attributes["id"].Value;
                 StepRelativeToEnum ob = new StepRelativeToEnum(stepRelativeToNode);
                 IDManager.SetID(stepRelativeToIDRef_, ob);
             }
             else if (stepRelativeToNode.Attributes["href"] != null)
             {
                 stepRelativeToIDRef_ = stepRelativeToNode.Attributes["href"].Value;
             }
             else
             {
                 stepRelativeTo_ = new StepRelativeToEnum(stepRelativeToNode);
             }
         }
         else
         {
             stepRelativeTo_ = new StepRelativeToEnum(stepRelativeToNode);
         }
     }
     
 
 }
 public TermDeposit(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList payerPartyReferenceNodeList = xmlNode.SelectNodes("payerPartyReference");
     if (payerPartyReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in payerPartyReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 payerPartyReferenceIDRef = item.Attributes["id"].Name;
                 PartyReference ob = PartyReference();
                 IDManager.SetID(payerPartyReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 payerPartyReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 payerPartyReference = new PartyReference(item);
             }
         }
     }
     
 
     XmlNodeList payerAccountReferenceNodeList = xmlNode.SelectNodes("payerAccountReference");
     if (payerAccountReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in payerAccountReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 payerAccountReferenceIDRef = item.Attributes["id"].Name;
                 AccountReference ob = AccountReference();
                 IDManager.SetID(payerAccountReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 payerAccountReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 payerAccountReference = new AccountReference(item);
             }
         }
     }
     
 
     XmlNodeList receiverPartyReferenceNodeList = xmlNode.SelectNodes("receiverPartyReference");
     if (receiverPartyReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in receiverPartyReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 receiverPartyReferenceIDRef = item.Attributes["id"].Name;
                 PartyReference ob = PartyReference();
                 IDManager.SetID(receiverPartyReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 receiverPartyReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 receiverPartyReference = new PartyReference(item);
             }
         }
     }
     
 
     XmlNodeList receiverAccountReferenceNodeList = xmlNode.SelectNodes("receiverAccountReference");
     if (receiverAccountReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in receiverAccountReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 receiverAccountReferenceIDRef = item.Attributes["id"].Name;
                 AccountReference ob = AccountReference();
                 IDManager.SetID(receiverAccountReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 receiverAccountReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 receiverAccountReference = new AccountReference(item);
             }
         }
     }
     
 
     XmlNodeList startDateNodeList = xmlNode.SelectNodes("startDate");
     if (startDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in startDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 startDateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(startDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 startDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 startDate = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList maturityDateNodeList = xmlNode.SelectNodes("maturityDate");
     if (maturityDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in maturityDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 maturityDateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(maturityDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 maturityDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 maturityDate = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList tenorNameNodeList = xmlNode.SelectNodes("tenorName");
     if (tenorNameNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorNameNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorNameIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(tenorNameIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorNameIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorName = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList tenorPeriodNodeList = xmlNode.SelectNodes("tenorPeriod");
     if (tenorPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(tenorPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorPeriod = new Period(item);
             }
         }
     }
     
 
     XmlNodeList principalNodeList = xmlNode.SelectNodes("principal");
     if (principalNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in principalNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 principalIDRef = item.Attributes["id"].Name;
                 PositiveMoney ob = PositiveMoney();
                 IDManager.SetID(principalIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 principalIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 principal = new PositiveMoney(item);
             }
         }
     }
     
 
     XmlNodeList fixedRateNodeList = xmlNode.SelectNodes("fixedRate");
     if (fixedRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in fixedRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 fixedRateIDRef = item.Attributes["id"].Name;
                 PositiveDecimal ob = PositiveDecimal();
                 IDManager.SetID(fixedRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 fixedRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 fixedRate = new PositiveDecimal(item);
             }
         }
     }
     
 
     XmlNodeList dayCountFractionNodeList = xmlNode.SelectNodes("dayCountFraction");
     if (dayCountFractionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dayCountFractionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef = item.Attributes["id"].Name;
                 DayCountFraction ob = DayCountFraction();
                 IDManager.SetID(dayCountFractionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dayCountFractionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dayCountFraction = new DayCountFraction(item);
             }
         }
     }
     
 
     XmlNodeList featuresNodeList = xmlNode.SelectNodes("features");
     if (featuresNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in featuresNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 featuresIDRef = item.Attributes["id"].Name;
                 TermDepositFeatures ob = TermDepositFeatures();
                 IDManager.SetID(featuresIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 featuresIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 features = new TermDepositFeatures(item);
             }
         }
     }
     
 
     XmlNodeList interestNodeList = xmlNode.SelectNodes("interest");
     if (interestNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in interestNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 interestIDRef = item.Attributes["id"].Name;
                 Money ob = Money();
                 IDManager.SetID(interestIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 interestIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 interest = new Money(item);
             }
         }
     }
     
 
     XmlNodeList paymentNodeList = xmlNode.SelectNodes("payment");
     
     foreach (XmlNode item in paymentNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 paymentIDRef = item.Attributes["id"].Name;
                 List<Payment> ob = new List<Payment>();
                 ob.Add(new Payment(item));
                 IDManager.SetID(paymentIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 paymentIDRef = item.Attributes["href"].Name;
             }
             else
             {
             payment.Add(new Payment(item));
             }
         }
     }
     
 
 }
 public FloatingRate(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList floatingRateIndexNodeList = xmlNode.SelectNodes("floatingRateIndex");
     if (floatingRateIndexNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in floatingRateIndexNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floatingRateIndexIDRef = item.Attributes["id"].Name;
                 FloatingRateIndex ob = FloatingRateIndex();
                 IDManager.SetID(floatingRateIndexIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floatingRateIndexIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 floatingRateIndex = new FloatingRateIndex(item);
             }
         }
     }
     
 
     XmlNodeList indexTenorNodeList = xmlNode.SelectNodes("indexTenor");
     if (indexTenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in indexTenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 indexTenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(indexTenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 indexTenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 indexTenor = new Period(item);
             }
         }
     }
     
 
     XmlNodeList floatingRateMultiplierScheduleNodeList = xmlNode.SelectNodes("floatingRateMultiplierSchedule");
     if (floatingRateMultiplierScheduleNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in floatingRateMultiplierScheduleNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floatingRateMultiplierScheduleIDRef = item.Attributes["id"].Name;
                 Schedule ob = Schedule();
                 IDManager.SetID(floatingRateMultiplierScheduleIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floatingRateMultiplierScheduleIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 floatingRateMultiplierSchedule = new Schedule(item);
             }
         }
     }
     
 
     XmlNodeList spreadScheduleNodeList = xmlNode.SelectNodes("spreadSchedule");
     
     foreach (XmlNode item in spreadScheduleNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 spreadScheduleIDRef = item.Attributes["id"].Name;
                 List<SpreadSchedule> ob = new List<SpreadSchedule>();
                 ob.Add(new SpreadSchedule(item));
                 IDManager.SetID(spreadScheduleIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 spreadScheduleIDRef = item.Attributes["href"].Name;
             }
             else
             {
             spreadSchedule.Add(new SpreadSchedule(item));
             }
         }
     }
     
 
     XmlNodeList rateTreatmentNodeList = xmlNode.SelectNodes("rateTreatment");
     if (rateTreatmentNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in rateTreatmentNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 rateTreatmentIDRef = item.Attributes["id"].Name;
                 RateTreatmentEnum ob = RateTreatmentEnum();
                 IDManager.SetID(rateTreatmentIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 rateTreatmentIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 rateTreatment = new RateTreatmentEnum(item);
             }
         }
     }
     
 
     XmlNodeList capRateScheduleNodeList = xmlNode.SelectNodes("capRateSchedule");
     
     foreach (XmlNode item in capRateScheduleNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 capRateScheduleIDRef = item.Attributes["id"].Name;
                 List<StrikeSchedule> ob = new List<StrikeSchedule>();
                 ob.Add(new StrikeSchedule(item));
                 IDManager.SetID(capRateScheduleIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 capRateScheduleIDRef = item.Attributes["href"].Name;
             }
             else
             {
             capRateSchedule.Add(new StrikeSchedule(item));
             }
         }
     }
     
 
     XmlNodeList floorRateScheduleNodeList = xmlNode.SelectNodes("floorRateSchedule");
     
     foreach (XmlNode item in floorRateScheduleNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floorRateScheduleIDRef = item.Attributes["id"].Name;
                 List<StrikeSchedule> ob = new List<StrikeSchedule>();
                 ob.Add(new StrikeSchedule(item));
                 IDManager.SetID(floorRateScheduleIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floorRateScheduleIDRef = item.Attributes["href"].Name;
             }
             else
             {
             floorRateSchedule.Add(new StrikeSchedule(item));
             }
         }
     }
     
 
 }
 public Mortgage(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode insurerNode = xmlNode.SelectSingleNode("insurer");
     
     if (insurerNode != null)
     {
         if (insurerNode.Attributes["href"] != null || insurerNode.Attributes["id"] != null) 
         {
             if (insurerNode.Attributes["id"] != null) 
             {
                 insurerIDRef_ = insurerNode.Attributes["id"].Value;
                 LegalEntity ob = new LegalEntity(insurerNode);
                 IDManager.SetID(insurerIDRef_, ob);
             }
             else if (insurerNode.Attributes["href"] != null)
             {
                 insurerIDRef_ = insurerNode.Attributes["href"].Value;
             }
             else
             {
                 insurer_ = new LegalEntity(insurerNode);
             }
         }
         else
         {
             insurer_ = new LegalEntity(insurerNode);
         }
     }
     
 
     XmlNode insurerReferenceNode = xmlNode.SelectSingleNode("insurerReference");
     
     if (insurerReferenceNode != null)
     {
         if (insurerReferenceNode.Attributes["href"] != null || insurerReferenceNode.Attributes["id"] != null) 
         {
             if (insurerReferenceNode.Attributes["id"] != null) 
             {
                 insurerReferenceIDRef_ = insurerReferenceNode.Attributes["id"].Value;
                 LegalEntityReference ob = new LegalEntityReference(insurerReferenceNode);
                 IDManager.SetID(insurerReferenceIDRef_, ob);
             }
             else if (insurerReferenceNode.Attributes["href"] != null)
             {
                 insurerReferenceIDRef_ = insurerReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 insurerReference_ = new LegalEntityReference(insurerReferenceNode);
             }
         }
         else
         {
             insurerReference_ = new LegalEntityReference(insurerReferenceNode);
         }
     }
     
 
     XmlNode issuerNameNode = xmlNode.SelectSingleNode("issuerName");
     
     if (issuerNameNode != null)
     {
         if (issuerNameNode.Attributes["href"] != null || issuerNameNode.Attributes["id"] != null) 
         {
             if (issuerNameNode.Attributes["id"] != null) 
             {
                 issuerNameIDRef_ = issuerNameNode.Attributes["id"].Value;
                 XsdTypeString ob = new XsdTypeString(issuerNameNode);
                 IDManager.SetID(issuerNameIDRef_, ob);
             }
             else if (issuerNameNode.Attributes["href"] != null)
             {
                 issuerNameIDRef_ = issuerNameNode.Attributes["href"].Value;
             }
             else
             {
                 issuerName_ = new XsdTypeString(issuerNameNode);
             }
         }
         else
         {
             issuerName_ = new XsdTypeString(issuerNameNode);
         }
     }
     
 
     XmlNode issuerPartyReferenceNode = xmlNode.SelectSingleNode("issuerPartyReference");
     
     if (issuerPartyReferenceNode != null)
     {
         if (issuerPartyReferenceNode.Attributes["href"] != null || issuerPartyReferenceNode.Attributes["id"] != null) 
         {
             if (issuerPartyReferenceNode.Attributes["id"] != null) 
             {
                 issuerPartyReferenceIDRef_ = issuerPartyReferenceNode.Attributes["id"].Value;
                 PartyReference ob = new PartyReference(issuerPartyReferenceNode);
                 IDManager.SetID(issuerPartyReferenceIDRef_, ob);
             }
             else if (issuerPartyReferenceNode.Attributes["href"] != null)
             {
                 issuerPartyReferenceIDRef_ = issuerPartyReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 issuerPartyReference_ = new PartyReference(issuerPartyReferenceNode);
             }
         }
         else
         {
             issuerPartyReference_ = new PartyReference(issuerPartyReferenceNode);
         }
     }
     
 
     XmlNode seniorityNode = xmlNode.SelectSingleNode("seniority");
     
     if (seniorityNode != null)
     {
         if (seniorityNode.Attributes["href"] != null || seniorityNode.Attributes["id"] != null) 
         {
             if (seniorityNode.Attributes["id"] != null) 
             {
                 seniorityIDRef_ = seniorityNode.Attributes["id"].Value;
                 CreditSeniority ob = new CreditSeniority(seniorityNode);
                 IDManager.SetID(seniorityIDRef_, ob);
             }
             else if (seniorityNode.Attributes["href"] != null)
             {
                 seniorityIDRef_ = seniorityNode.Attributes["href"].Value;
             }
             else
             {
                 seniority_ = new CreditSeniority(seniorityNode);
             }
         }
         else
         {
             seniority_ = new CreditSeniority(seniorityNode);
         }
     }
     
 
     XmlNode couponTypeNode = xmlNode.SelectSingleNode("couponType");
     
     if (couponTypeNode != null)
     {
         if (couponTypeNode.Attributes["href"] != null || couponTypeNode.Attributes["id"] != null) 
         {
             if (couponTypeNode.Attributes["id"] != null) 
             {
                 couponTypeIDRef_ = couponTypeNode.Attributes["id"].Value;
                 CouponType ob = new CouponType(couponTypeNode);
                 IDManager.SetID(couponTypeIDRef_, ob);
             }
             else if (couponTypeNode.Attributes["href"] != null)
             {
                 couponTypeIDRef_ = couponTypeNode.Attributes["href"].Value;
             }
             else
             {
                 couponType_ = new CouponType(couponTypeNode);
             }
         }
         else
         {
             couponType_ = new CouponType(couponTypeNode);
         }
     }
     
 
     XmlNode couponRateNode = xmlNode.SelectSingleNode("couponRate");
     
     if (couponRateNode != null)
     {
         if (couponRateNode.Attributes["href"] != null || couponRateNode.Attributes["id"] != null) 
         {
             if (couponRateNode.Attributes["id"] != null) 
             {
                 couponRateIDRef_ = couponRateNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(couponRateNode);
                 IDManager.SetID(couponRateIDRef_, ob);
             }
             else if (couponRateNode.Attributes["href"] != null)
             {
                 couponRateIDRef_ = couponRateNode.Attributes["href"].Value;
             }
             else
             {
                 couponRate_ = new XsdTypeDecimal(couponRateNode);
             }
         }
         else
         {
             couponRate_ = new XsdTypeDecimal(couponRateNode);
         }
     }
     
 
     XmlNode maturityNode = xmlNode.SelectSingleNode("maturity");
     
     if (maturityNode != null)
     {
         if (maturityNode.Attributes["href"] != null || maturityNode.Attributes["id"] != null) 
         {
             if (maturityNode.Attributes["id"] != null) 
             {
                 maturityIDRef_ = maturityNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(maturityNode);
                 IDManager.SetID(maturityIDRef_, ob);
             }
             else if (maturityNode.Attributes["href"] != null)
             {
                 maturityIDRef_ = maturityNode.Attributes["href"].Value;
             }
             else
             {
                 maturity_ = new XsdTypeDate(maturityNode);
             }
         }
         else
         {
             maturity_ = new XsdTypeDate(maturityNode);
         }
     }
     
 
     XmlNode paymentFrequencyNode = xmlNode.SelectSingleNode("paymentFrequency");
     
     if (paymentFrequencyNode != null)
     {
         if (paymentFrequencyNode.Attributes["href"] != null || paymentFrequencyNode.Attributes["id"] != null) 
         {
             if (paymentFrequencyNode.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(paymentFrequencyNode);
                 IDManager.SetID(paymentFrequencyIDRef_, ob);
             }
             else if (paymentFrequencyNode.Attributes["href"] != null)
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 paymentFrequency_ = new Period(paymentFrequencyNode);
             }
         }
         else
         {
             paymentFrequency_ = new Period(paymentFrequencyNode);
         }
     }
     
 
     XmlNode dayCountFractionNode = xmlNode.SelectSingleNode("dayCountFraction");
     
     if (dayCountFractionNode != null)
     {
         if (dayCountFractionNode.Attributes["href"] != null || dayCountFractionNode.Attributes["id"] != null) 
         {
             if (dayCountFractionNode.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["id"].Value;
                 DayCountFraction ob = new DayCountFraction(dayCountFractionNode);
                 IDManager.SetID(dayCountFractionIDRef_, ob);
             }
             else if (dayCountFractionNode.Attributes["href"] != null)
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["href"].Value;
             }
             else
             {
                 dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
             }
         }
         else
         {
             dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
         }
     }
     
 
     XmlNode originalPrincipalAmountNode = xmlNode.SelectSingleNode("originalPrincipalAmount");
     
     if (originalPrincipalAmountNode != null)
     {
         if (originalPrincipalAmountNode.Attributes["href"] != null || originalPrincipalAmountNode.Attributes["id"] != null) 
         {
             if (originalPrincipalAmountNode.Attributes["id"] != null) 
             {
                 originalPrincipalAmountIDRef_ = originalPrincipalAmountNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(originalPrincipalAmountNode);
                 IDManager.SetID(originalPrincipalAmountIDRef_, ob);
             }
             else if (originalPrincipalAmountNode.Attributes["href"] != null)
             {
                 originalPrincipalAmountIDRef_ = originalPrincipalAmountNode.Attributes["href"].Value;
             }
             else
             {
                 originalPrincipalAmount_ = new XsdTypeDecimal(originalPrincipalAmountNode);
             }
         }
         else
         {
             originalPrincipalAmount_ = new XsdTypeDecimal(originalPrincipalAmountNode);
         }
     }
     
 
     XmlNode poolNode = xmlNode.SelectSingleNode("pool");
     
     if (poolNode != null)
     {
         if (poolNode.Attributes["href"] != null || poolNode.Attributes["id"] != null) 
         {
             if (poolNode.Attributes["id"] != null) 
             {
                 poolIDRef_ = poolNode.Attributes["id"].Value;
                 AssetPool ob = new AssetPool(poolNode);
                 IDManager.SetID(poolIDRef_, ob);
             }
             else if (poolNode.Attributes["href"] != null)
             {
                 poolIDRef_ = poolNode.Attributes["href"].Value;
             }
             else
             {
                 pool_ = new AssetPool(poolNode);
             }
         }
         else
         {
             pool_ = new AssetPool(poolNode);
         }
     }
     
 
     XmlNode sectorNode = xmlNode.SelectSingleNode("sector");
     
     if (sectorNode != null)
     {
         if (sectorNode.Attributes["href"] != null || sectorNode.Attributes["id"] != null) 
         {
             if (sectorNode.Attributes["id"] != null) 
             {
                 sectorIDRef_ = sectorNode.Attributes["id"].Value;
                 MortgageSector ob = new MortgageSector(sectorNode);
                 IDManager.SetID(sectorIDRef_, ob);
             }
             else if (sectorNode.Attributes["href"] != null)
             {
                 sectorIDRef_ = sectorNode.Attributes["href"].Value;
             }
             else
             {
                 sector_ = new MortgageSector(sectorNode);
             }
         }
         else
         {
             sector_ = new MortgageSector(sectorNode);
         }
     }
     
 
     XmlNode trancheNode = xmlNode.SelectSingleNode("tranche");
     
     if (trancheNode != null)
     {
         if (trancheNode.Attributes["href"] != null || trancheNode.Attributes["id"] != null) 
         {
             if (trancheNode.Attributes["id"] != null) 
             {
                 trancheIDRef_ = trancheNode.Attributes["id"].Value;
                 XsdTypeToken ob = new XsdTypeToken(trancheNode);
                 IDManager.SetID(trancheIDRef_, ob);
             }
             else if (trancheNode.Attributes["href"] != null)
             {
                 trancheIDRef_ = trancheNode.Attributes["href"].Value;
             }
             else
             {
                 tranche_ = new XsdTypeToken(trancheNode);
             }
         }
         else
         {
             tranche_ = new XsdTypeToken(trancheNode);
         }
     }
     
 
 }
 public RateIndex(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList floatingRateIndexNodeList = xmlNode.SelectNodes("floatingRateIndex");
     if (floatingRateIndexNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in floatingRateIndexNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floatingRateIndexIDRef = item.Attributes["id"].Name;
                 FloatingRateIndex ob = FloatingRateIndex();
                 IDManager.SetID(floatingRateIndexIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floatingRateIndexIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 floatingRateIndex = new FloatingRateIndex(item);
             }
         }
     }
     
 
     XmlNodeList termNodeList = xmlNode.SelectNodes("term");
     if (termNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in termNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 termIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(termIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 termIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 term = new Period(item);
             }
         }
     }
     
 
     XmlNodeList paymentFrequencyNodeList = xmlNode.SelectNodes("paymentFrequency");
     if (paymentFrequencyNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in paymentFrequencyNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(paymentFrequencyIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 paymentFrequencyIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 paymentFrequency = new Period(item);
             }
         }
     }
     
 
     XmlNodeList dayCountFractionNodeList = xmlNode.SelectNodes("dayCountFraction");
     if (dayCountFractionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dayCountFractionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef = item.Attributes["id"].Name;
                 DayCountFraction ob = DayCountFraction();
                 IDManager.SetID(dayCountFractionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dayCountFractionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dayCountFraction = new DayCountFraction(item);
             }
         }
     }
     
 
 }
 public EarlyTerminationProvision(XmlNode xmlNode)
 {
     XmlNode mandatoryEarlyTerminationNode = xmlNode.SelectSingleNode("mandatoryEarlyTermination");
     
     if (mandatoryEarlyTerminationNode != null)
     {
         if (mandatoryEarlyTerminationNode.Attributes["href"] != null || mandatoryEarlyTerminationNode.Attributes["id"] != null) 
         {
             if (mandatoryEarlyTerminationNode.Attributes["id"] != null) 
             {
                 mandatoryEarlyTerminationIDRef_ = mandatoryEarlyTerminationNode.Attributes["id"].Value;
                 MandatoryEarlyTermination ob = new MandatoryEarlyTermination(mandatoryEarlyTerminationNode);
                 IDManager.SetID(mandatoryEarlyTerminationIDRef_, ob);
             }
             else if (mandatoryEarlyTerminationNode.Attributes["href"] != null)
             {
                 mandatoryEarlyTerminationIDRef_ = mandatoryEarlyTerminationNode.Attributes["href"].Value;
             }
             else
             {
                 mandatoryEarlyTermination_ = new MandatoryEarlyTermination(mandatoryEarlyTerminationNode);
             }
         }
         else
         {
             mandatoryEarlyTermination_ = new MandatoryEarlyTermination(mandatoryEarlyTerminationNode);
         }
     }
     
 
     XmlNode mandatoryEarlyTerminationDateTenorNode = xmlNode.SelectSingleNode("mandatoryEarlyTerminationDateTenor");
     
     if (mandatoryEarlyTerminationDateTenorNode != null)
     {
         if (mandatoryEarlyTerminationDateTenorNode.Attributes["href"] != null || mandatoryEarlyTerminationDateTenorNode.Attributes["id"] != null) 
         {
             if (mandatoryEarlyTerminationDateTenorNode.Attributes["id"] != null) 
             {
                 mandatoryEarlyTerminationDateTenorIDRef_ = mandatoryEarlyTerminationDateTenorNode.Attributes["id"].Value;
                 Period ob = new Period(mandatoryEarlyTerminationDateTenorNode);
                 IDManager.SetID(mandatoryEarlyTerminationDateTenorIDRef_, ob);
             }
             else if (mandatoryEarlyTerminationDateTenorNode.Attributes["href"] != null)
             {
                 mandatoryEarlyTerminationDateTenorIDRef_ = mandatoryEarlyTerminationDateTenorNode.Attributes["href"].Value;
             }
             else
             {
                 mandatoryEarlyTerminationDateTenor_ = new Period(mandatoryEarlyTerminationDateTenorNode);
             }
         }
         else
         {
             mandatoryEarlyTerminationDateTenor_ = new Period(mandatoryEarlyTerminationDateTenorNode);
         }
     }
     
 
     XmlNode optionalEarlyTerminationNode = xmlNode.SelectSingleNode("optionalEarlyTermination");
     
     if (optionalEarlyTerminationNode != null)
     {
         if (optionalEarlyTerminationNode.Attributes["href"] != null || optionalEarlyTerminationNode.Attributes["id"] != null) 
         {
             if (optionalEarlyTerminationNode.Attributes["id"] != null) 
             {
                 optionalEarlyTerminationIDRef_ = optionalEarlyTerminationNode.Attributes["id"].Value;
                 OptionalEarlyTermination ob = new OptionalEarlyTermination(optionalEarlyTerminationNode);
                 IDManager.SetID(optionalEarlyTerminationIDRef_, ob);
             }
             else if (optionalEarlyTerminationNode.Attributes["href"] != null)
             {
                 optionalEarlyTerminationIDRef_ = optionalEarlyTerminationNode.Attributes["href"].Value;
             }
             else
             {
                 optionalEarlyTermination_ = new OptionalEarlyTermination(optionalEarlyTerminationNode);
             }
         }
         else
         {
             optionalEarlyTermination_ = new OptionalEarlyTermination(optionalEarlyTerminationNode);
         }
     }
     
 
     XmlNode optionalEarlyTerminationParametersNode = xmlNode.SelectSingleNode("optionalEarlyTerminationParameters");
     
     if (optionalEarlyTerminationParametersNode != null)
     {
         if (optionalEarlyTerminationParametersNode.Attributes["href"] != null || optionalEarlyTerminationParametersNode.Attributes["id"] != null) 
         {
             if (optionalEarlyTerminationParametersNode.Attributes["id"] != null) 
             {
                 optionalEarlyTerminationParametersIDRef_ = optionalEarlyTerminationParametersNode.Attributes["id"].Value;
                 ExercisePeriod ob = new ExercisePeriod(optionalEarlyTerminationParametersNode);
                 IDManager.SetID(optionalEarlyTerminationParametersIDRef_, ob);
             }
             else if (optionalEarlyTerminationParametersNode.Attributes["href"] != null)
             {
                 optionalEarlyTerminationParametersIDRef_ = optionalEarlyTerminationParametersNode.Attributes["href"].Value;
             }
             else
             {
                 optionalEarlyTerminationParameters_ = new ExercisePeriod(optionalEarlyTerminationParametersNode);
             }
         }
         else
         {
             optionalEarlyTerminationParameters_ = new ExercisePeriod(optionalEarlyTerminationParametersNode);
         }
     }
     
 
 }
 public FxDigitalOption(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList effectiveDateNodeList = xmlNode.SelectNodes("effectiveDate");
     if (effectiveDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in effectiveDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 effectiveDateIDRef = item.Attributes["id"].Name;
                 AdjustableOrRelativeDate ob = AdjustableOrRelativeDate();
                 IDManager.SetID(effectiveDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 effectiveDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 effectiveDate = new AdjustableOrRelativeDate(item);
             }
         }
     }
     
 
     XmlNodeList tenorPeriodNodeList = xmlNode.SelectNodes("tenorPeriod");
     if (tenorPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(tenorPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorPeriod = new Period(item);
             }
         }
     }
     
 
     XmlNodeList americanExerciseNodeList = xmlNode.SelectNodes("americanExercise");
     if (americanExerciseNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in americanExerciseNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 americanExerciseIDRef = item.Attributes["id"].Name;
                 FxDigitalAmericanExercise ob = FxDigitalAmericanExercise();
                 IDManager.SetID(americanExerciseIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 americanExerciseIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 americanExercise = new FxDigitalAmericanExercise(item);
             }
         }
     }
     
 
     XmlNodeList touchNodeList = xmlNode.SelectNodes("touch");
     
     foreach (XmlNode item in touchNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 touchIDRef = item.Attributes["id"].Name;
                 List<FxTouch> ob = new List<FxTouch>();
                 ob.Add(new FxTouch(item));
                 IDManager.SetID(touchIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 touchIDRef = item.Attributes["href"].Name;
             }
             else
             {
             touch.Add(new FxTouch(item));
             }
         }
     }
     
 
     XmlNodeList europeanExerciseNodeList = xmlNode.SelectNodes("europeanExercise");
     if (europeanExerciseNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in europeanExerciseNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 europeanExerciseIDRef = item.Attributes["id"].Name;
                 FxEuropeanExercise ob = FxEuropeanExercise();
                 IDManager.SetID(europeanExerciseIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 europeanExerciseIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 europeanExercise = new FxEuropeanExercise(item);
             }
         }
     }
     
 
     XmlNodeList triggerNodeList = xmlNode.SelectNodes("trigger");
     
     foreach (XmlNode item in triggerNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 triggerIDRef = item.Attributes["id"].Name;
                 List<FxTrigger> ob = new List<FxTrigger>();
                 ob.Add(new FxTrigger(item));
                 IDManager.SetID(triggerIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 triggerIDRef = item.Attributes["href"].Name;
             }
             else
             {
             trigger.Add(new FxTrigger(item));
             }
         }
     }
     
 
     XmlNodeList exerciseProcedureNodeList = xmlNode.SelectNodes("exerciseProcedure");
     if (exerciseProcedureNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exerciseProcedureNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exerciseProcedureIDRef = item.Attributes["id"].Name;
                 ExerciseProcedure ob = ExerciseProcedure();
                 IDManager.SetID(exerciseProcedureIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exerciseProcedureIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exerciseProcedure = new ExerciseProcedure(item);
             }
         }
     }
     
 
     XmlNodeList payoutNodeList = xmlNode.SelectNodes("payout");
     if (payoutNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in payoutNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 payoutIDRef = item.Attributes["id"].Name;
                 FxOptionPayout ob = FxOptionPayout();
                 IDManager.SetID(payoutIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 payoutIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 payout = new FxOptionPayout(item);
             }
         }
     }
     
 
     XmlNodeList premiumNodeList = xmlNode.SelectNodes("premium");
     
     foreach (XmlNode item in premiumNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 premiumIDRef = item.Attributes["id"].Name;
                 List<FxOptionPremium> ob = new List<FxOptionPremium>();
                 ob.Add(new FxOptionPremium(item));
                 IDManager.SetID(premiumIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 premiumIDRef = item.Attributes["href"].Name;
             }
             else
             {
             premium.Add(new FxOptionPremium(item));
             }
         }
     }
     
 
 }
 public SimpleCreditDefaultSwap(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList referenceEntityNodeList = xmlNode.SelectNodes("referenceEntity");
     if (referenceEntityNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in referenceEntityNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 referenceEntityIDRef = item.Attributes["id"].Name;
                 LegalEntity ob = LegalEntity();
                 IDManager.SetID(referenceEntityIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 referenceEntityIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 referenceEntity = new LegalEntity(item);
             }
         }
     }
     
 
     XmlNodeList creditEntityReferenceNodeList = xmlNode.SelectNodes("creditEntityReference");
     if (creditEntityReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in creditEntityReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 creditEntityReferenceIDRef = item.Attributes["id"].Name;
                 LegalEntityReference ob = LegalEntityReference();
                 IDManager.SetID(creditEntityReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 creditEntityReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 creditEntityReference = new LegalEntityReference(item);
             }
         }
     }
     
 
     XmlNodeList termNodeList = xmlNode.SelectNodes("term");
     if (termNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in termNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 termIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(termIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 termIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 term = new Period(item);
             }
         }
     }
     
 
     XmlNodeList paymentFrequencyNodeList = xmlNode.SelectNodes("paymentFrequency");
     if (paymentFrequencyNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in paymentFrequencyNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(paymentFrequencyIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 paymentFrequencyIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 paymentFrequency = new Period(item);
             }
         }
     }
     
 
 }
 public TermDeposit(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode payerPartyReferenceNode = xmlNode.SelectSingleNode("payerPartyReference");
     
     if (payerPartyReferenceNode != null)
     {
         if (payerPartyReferenceNode.Attributes["href"] != null || payerPartyReferenceNode.Attributes["id"] != null) 
         {
             if (payerPartyReferenceNode.Attributes["id"] != null) 
             {
                 payerPartyReferenceIDRef_ = payerPartyReferenceNode.Attributes["id"].Value;
                 PartyReference ob = new PartyReference(payerPartyReferenceNode);
                 IDManager.SetID(payerPartyReferenceIDRef_, ob);
             }
             else if (payerPartyReferenceNode.Attributes["href"] != null)
             {
                 payerPartyReferenceIDRef_ = payerPartyReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 payerPartyReference_ = new PartyReference(payerPartyReferenceNode);
             }
         }
         else
         {
             payerPartyReference_ = new PartyReference(payerPartyReferenceNode);
         }
     }
     
 
     XmlNode payerAccountReferenceNode = xmlNode.SelectSingleNode("payerAccountReference");
     
     if (payerAccountReferenceNode != null)
     {
         if (payerAccountReferenceNode.Attributes["href"] != null || payerAccountReferenceNode.Attributes["id"] != null) 
         {
             if (payerAccountReferenceNode.Attributes["id"] != null) 
             {
                 payerAccountReferenceIDRef_ = payerAccountReferenceNode.Attributes["id"].Value;
                 AccountReference ob = new AccountReference(payerAccountReferenceNode);
                 IDManager.SetID(payerAccountReferenceIDRef_, ob);
             }
             else if (payerAccountReferenceNode.Attributes["href"] != null)
             {
                 payerAccountReferenceIDRef_ = payerAccountReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 payerAccountReference_ = new AccountReference(payerAccountReferenceNode);
             }
         }
         else
         {
             payerAccountReference_ = new AccountReference(payerAccountReferenceNode);
         }
     }
     
 
     XmlNode receiverPartyReferenceNode = xmlNode.SelectSingleNode("receiverPartyReference");
     
     if (receiverPartyReferenceNode != null)
     {
         if (receiverPartyReferenceNode.Attributes["href"] != null || receiverPartyReferenceNode.Attributes["id"] != null) 
         {
             if (receiverPartyReferenceNode.Attributes["id"] != null) 
             {
                 receiverPartyReferenceIDRef_ = receiverPartyReferenceNode.Attributes["id"].Value;
                 PartyReference ob = new PartyReference(receiverPartyReferenceNode);
                 IDManager.SetID(receiverPartyReferenceIDRef_, ob);
             }
             else if (receiverPartyReferenceNode.Attributes["href"] != null)
             {
                 receiverPartyReferenceIDRef_ = receiverPartyReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 receiverPartyReference_ = new PartyReference(receiverPartyReferenceNode);
             }
         }
         else
         {
             receiverPartyReference_ = new PartyReference(receiverPartyReferenceNode);
         }
     }
     
 
     XmlNode receiverAccountReferenceNode = xmlNode.SelectSingleNode("receiverAccountReference");
     
     if (receiverAccountReferenceNode != null)
     {
         if (receiverAccountReferenceNode.Attributes["href"] != null || receiverAccountReferenceNode.Attributes["id"] != null) 
         {
             if (receiverAccountReferenceNode.Attributes["id"] != null) 
             {
                 receiverAccountReferenceIDRef_ = receiverAccountReferenceNode.Attributes["id"].Value;
                 AccountReference ob = new AccountReference(receiverAccountReferenceNode);
                 IDManager.SetID(receiverAccountReferenceIDRef_, ob);
             }
             else if (receiverAccountReferenceNode.Attributes["href"] != null)
             {
                 receiverAccountReferenceIDRef_ = receiverAccountReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 receiverAccountReference_ = new AccountReference(receiverAccountReferenceNode);
             }
         }
         else
         {
             receiverAccountReference_ = new AccountReference(receiverAccountReferenceNode);
         }
     }
     
 
     XmlNode startDateNode = xmlNode.SelectSingleNode("startDate");
     
     if (startDateNode != null)
     {
         if (startDateNode.Attributes["href"] != null || startDateNode.Attributes["id"] != null) 
         {
             if (startDateNode.Attributes["id"] != null) 
             {
                 startDateIDRef_ = startDateNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(startDateNode);
                 IDManager.SetID(startDateIDRef_, ob);
             }
             else if (startDateNode.Attributes["href"] != null)
             {
                 startDateIDRef_ = startDateNode.Attributes["href"].Value;
             }
             else
             {
                 startDate_ = new XsdTypeDate(startDateNode);
             }
         }
         else
         {
             startDate_ = new XsdTypeDate(startDateNode);
         }
     }
     
 
     XmlNode maturityDateNode = xmlNode.SelectSingleNode("maturityDate");
     
     if (maturityDateNode != null)
     {
         if (maturityDateNode.Attributes["href"] != null || maturityDateNode.Attributes["id"] != null) 
         {
             if (maturityDateNode.Attributes["id"] != null) 
             {
                 maturityDateIDRef_ = maturityDateNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(maturityDateNode);
                 IDManager.SetID(maturityDateIDRef_, ob);
             }
             else if (maturityDateNode.Attributes["href"] != null)
             {
                 maturityDateIDRef_ = maturityDateNode.Attributes["href"].Value;
             }
             else
             {
                 maturityDate_ = new XsdTypeDate(maturityDateNode);
             }
         }
         else
         {
             maturityDate_ = new XsdTypeDate(maturityDateNode);
         }
     }
     
 
     XmlNode tenorNameNode = xmlNode.SelectSingleNode("tenorName");
     
     if (tenorNameNode != null)
     {
         if (tenorNameNode.Attributes["href"] != null || tenorNameNode.Attributes["id"] != null) 
         {
             if (tenorNameNode.Attributes["id"] != null) 
             {
                 tenorNameIDRef_ = tenorNameNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(tenorNameNode);
                 IDManager.SetID(tenorNameIDRef_, ob);
             }
             else if (tenorNameNode.Attributes["href"] != null)
             {
                 tenorNameIDRef_ = tenorNameNode.Attributes["href"].Value;
             }
             else
             {
                 tenorName_ = new XsdTypeBoolean(tenorNameNode);
             }
         }
         else
         {
             tenorName_ = new XsdTypeBoolean(tenorNameNode);
         }
     }
     
 
     XmlNode tenorPeriodNode = xmlNode.SelectSingleNode("tenorPeriod");
     
     if (tenorPeriodNode != null)
     {
         if (tenorPeriodNode.Attributes["href"] != null || tenorPeriodNode.Attributes["id"] != null) 
         {
             if (tenorPeriodNode.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef_ = tenorPeriodNode.Attributes["id"].Value;
                 Period ob = new Period(tenorPeriodNode);
                 IDManager.SetID(tenorPeriodIDRef_, ob);
             }
             else if (tenorPeriodNode.Attributes["href"] != null)
             {
                 tenorPeriodIDRef_ = tenorPeriodNode.Attributes["href"].Value;
             }
             else
             {
                 tenorPeriod_ = new Period(tenorPeriodNode);
             }
         }
         else
         {
             tenorPeriod_ = new Period(tenorPeriodNode);
         }
     }
     
 
     XmlNode principalNode = xmlNode.SelectSingleNode("principal");
     
     if (principalNode != null)
     {
         if (principalNode.Attributes["href"] != null || principalNode.Attributes["id"] != null) 
         {
             if (principalNode.Attributes["id"] != null) 
             {
                 principalIDRef_ = principalNode.Attributes["id"].Value;
                 PositiveMoney ob = new PositiveMoney(principalNode);
                 IDManager.SetID(principalIDRef_, ob);
             }
             else if (principalNode.Attributes["href"] != null)
             {
                 principalIDRef_ = principalNode.Attributes["href"].Value;
             }
             else
             {
                 principal_ = new PositiveMoney(principalNode);
             }
         }
         else
         {
             principal_ = new PositiveMoney(principalNode);
         }
     }
     
 
     XmlNode fixedRateNode = xmlNode.SelectSingleNode("fixedRate");
     
     if (fixedRateNode != null)
     {
         if (fixedRateNode.Attributes["href"] != null || fixedRateNode.Attributes["id"] != null) 
         {
             if (fixedRateNode.Attributes["id"] != null) 
             {
                 fixedRateIDRef_ = fixedRateNode.Attributes["id"].Value;
                 PositiveDecimal ob = new PositiveDecimal(fixedRateNode);
                 IDManager.SetID(fixedRateIDRef_, ob);
             }
             else if (fixedRateNode.Attributes["href"] != null)
             {
                 fixedRateIDRef_ = fixedRateNode.Attributes["href"].Value;
             }
             else
             {
                 fixedRate_ = new PositiveDecimal(fixedRateNode);
             }
         }
         else
         {
             fixedRate_ = new PositiveDecimal(fixedRateNode);
         }
     }
     
 
     XmlNode dayCountFractionNode = xmlNode.SelectSingleNode("dayCountFraction");
     
     if (dayCountFractionNode != null)
     {
         if (dayCountFractionNode.Attributes["href"] != null || dayCountFractionNode.Attributes["id"] != null) 
         {
             if (dayCountFractionNode.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["id"].Value;
                 DayCountFraction ob = new DayCountFraction(dayCountFractionNode);
                 IDManager.SetID(dayCountFractionIDRef_, ob);
             }
             else if (dayCountFractionNode.Attributes["href"] != null)
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["href"].Value;
             }
             else
             {
                 dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
             }
         }
         else
         {
             dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
         }
     }
     
 
     XmlNode featuresNode = xmlNode.SelectSingleNode("features");
     
     if (featuresNode != null)
     {
         if (featuresNode.Attributes["href"] != null || featuresNode.Attributes["id"] != null) 
         {
             if (featuresNode.Attributes["id"] != null) 
             {
                 featuresIDRef_ = featuresNode.Attributes["id"].Value;
                 TermDepositFeatures ob = new TermDepositFeatures(featuresNode);
                 IDManager.SetID(featuresIDRef_, ob);
             }
             else if (featuresNode.Attributes["href"] != null)
             {
                 featuresIDRef_ = featuresNode.Attributes["href"].Value;
             }
             else
             {
                 features_ = new TermDepositFeatures(featuresNode);
             }
         }
         else
         {
             features_ = new TermDepositFeatures(featuresNode);
         }
     }
     
 
     XmlNode interestNode = xmlNode.SelectSingleNode("interest");
     
     if (interestNode != null)
     {
         if (interestNode.Attributes["href"] != null || interestNode.Attributes["id"] != null) 
         {
             if (interestNode.Attributes["id"] != null) 
             {
                 interestIDRef_ = interestNode.Attributes["id"].Value;
                 Money ob = new Money(interestNode);
                 IDManager.SetID(interestIDRef_, ob);
             }
             else if (interestNode.Attributes["href"] != null)
             {
                 interestIDRef_ = interestNode.Attributes["href"].Value;
             }
             else
             {
                 interest_ = new Money(interestNode);
             }
         }
         else
         {
             interest_ = new Money(interestNode);
         }
     }
     
 
     XmlNodeList paymentNodeList = xmlNode.SelectNodes("payment");
     
     if (paymentNodeList != null)
     {
         this.payment_ = new List<Payment>();
         foreach (XmlNode item in paymentNodeList)
         {
             if (item.Attributes["href"] != null || item.Attributes["id"] != null) 
             {
                 if (item.Attributes["id"] != null) 
                 {
                     paymentIDRef_ = item.Attributes["id"].Value;
                     payment_.Add(new Payment(item));
                     IDManager.SetID(paymentIDRef_, payment_[payment_.Count - 1 ]);
                 }
                 else if (item.Attributes["href"] != null)
                 {
                     paymentIDRef_ = item.Attributes["href"].Value;
                 }
                 else
                 {
                 payment_.Add(new Payment(item));
                 }
             }
             else
             {
                 payment_.Add(new Payment(item));
             }
         }
     }
     
 
 }
 public SwapCurveValuation(XmlNode xmlNode)
 {
     XmlNodeList floatingRateIndexNodeList = xmlNode.SelectNodes("floatingRateIndex");
     if (floatingRateIndexNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in floatingRateIndexNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 floatingRateIndexIDRef = item.Attributes["id"].Name;
                 FloatingRateIndex ob = FloatingRateIndex();
                 IDManager.SetID(floatingRateIndexIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 floatingRateIndexIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 floatingRateIndex = new FloatingRateIndex(item);
             }
         }
     }
     
 
     XmlNodeList indexTenorNodeList = xmlNode.SelectNodes("indexTenor");
     if (indexTenorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in indexTenorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 indexTenorIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(indexTenorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 indexTenorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 indexTenor = new Period(item);
             }
         }
     }
     
 
     XmlNodeList spreadNodeList = xmlNode.SelectNodes("spread");
     if (spreadNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in spreadNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 spreadIDRef = item.Attributes["id"].Name;
                 XsdTypeDecimal ob = XsdTypeDecimal();
                 IDManager.SetID(spreadIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 spreadIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 spread = new XsdTypeDecimal(item);
             }
         }
     }
     
 
     XmlNodeList sideNodeList = xmlNode.SelectNodes("side");
     if (sideNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in sideNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 sideIDRef = item.Attributes["id"].Name;
                 QuotationSideEnum ob = QuotationSideEnum();
                 IDManager.SetID(sideIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 sideIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 side = new QuotationSideEnum(item);
             }
         }
     }
     
 
 }
 public FxSingleLeg(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList exchangedCurrency1NodeList = xmlNode.SelectNodes("exchangedCurrency1");
     if (exchangedCurrency1NodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exchangedCurrency1NodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exchangedCurrency1IDRef = item.Attributes["id"].Name;
                 Payment ob = Payment();
                 IDManager.SetID(exchangedCurrency1IDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exchangedCurrency1IDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exchangedCurrency1 = new Payment(item);
             }
         }
     }
     
 
     XmlNodeList exchangedCurrency2NodeList = xmlNode.SelectNodes("exchangedCurrency2");
     if (exchangedCurrency2NodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exchangedCurrency2NodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exchangedCurrency2IDRef = item.Attributes["id"].Name;
                 Payment ob = Payment();
                 IDManager.SetID(exchangedCurrency2IDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exchangedCurrency2IDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exchangedCurrency2 = new Payment(item);
             }
         }
     }
     
 
     XmlNodeList dealtCurrencyNodeList = xmlNode.SelectNodes("dealtCurrency");
     if (dealtCurrencyNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dealtCurrencyNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dealtCurrencyIDRef = item.Attributes["id"].Name;
                 DealtCurrencyEnum ob = DealtCurrencyEnum();
                 IDManager.SetID(dealtCurrencyIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dealtCurrencyIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dealtCurrency = new DealtCurrencyEnum(item);
             }
         }
     }
     
 
     XmlNodeList tenorNameNodeList = xmlNode.SelectNodes("tenorName");
     if (tenorNameNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorNameNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorNameIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(tenorNameIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorNameIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorName = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList tenorPeriodNodeList = xmlNode.SelectNodes("tenorPeriod");
     if (tenorPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in tenorPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 tenorPeriodIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(tenorPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 tenorPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 tenorPeriod = new Period(item);
             }
         }
     }
     
 
     XmlNodeList valueDateNodeList = xmlNode.SelectNodes("valueDate");
     if (valueDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in valueDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 valueDateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(valueDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 valueDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 valueDate = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList currency1ValueDateNodeList = xmlNode.SelectNodes("currency1ValueDate");
     if (currency1ValueDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in currency1ValueDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 currency1ValueDateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(currency1ValueDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 currency1ValueDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 currency1ValueDate = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList currency2ValueDateNodeList = xmlNode.SelectNodes("currency2ValueDate");
     if (currency2ValueDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in currency2ValueDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 currency2ValueDateIDRef = item.Attributes["id"].Name;
                 XsdTypeDate ob = XsdTypeDate();
                 IDManager.SetID(currency2ValueDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 currency2ValueDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 currency2ValueDate = new XsdTypeDate(item);
             }
         }
     }
     
 
     XmlNodeList exchangeRateNodeList = xmlNode.SelectNodes("exchangeRate");
     if (exchangeRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in exchangeRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 exchangeRateIDRef = item.Attributes["id"].Name;
                 ExchangeRate ob = ExchangeRate();
                 IDManager.SetID(exchangeRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 exchangeRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 exchangeRate = new ExchangeRate(item);
             }
         }
     }
     
 
     XmlNodeList nonDeliverableSettlementNodeList = xmlNode.SelectNodes("nonDeliverableSettlement");
     if (nonDeliverableSettlementNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in nonDeliverableSettlementNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 nonDeliverableSettlementIDRef = item.Attributes["id"].Name;
                 FxCashSettlement ob = FxCashSettlement();
                 IDManager.SetID(nonDeliverableSettlementIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 nonDeliverableSettlementIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 nonDeliverableSettlement = new FxCashSettlement(item);
             }
         }
     }
     
 
 }
 public WeatherLegCalculation(XmlNode xmlNode)
 {
     XmlNode settlementLevelNode = xmlNode.SelectSingleNode("settlementLevel");
     
     if (settlementLevelNode != null)
     {
         if (settlementLevelNode.Attributes["href"] != null || settlementLevelNode.Attributes["id"] != null) 
         {
             if (settlementLevelNode.Attributes["id"] != null) 
             {
                 settlementLevelIDRef_ = settlementLevelNode.Attributes["id"].Value;
                 WeatherSettlementLevelEnum ob = new WeatherSettlementLevelEnum(settlementLevelNode);
                 IDManager.SetID(settlementLevelIDRef_, ob);
             }
             else if (settlementLevelNode.Attributes["href"] != null)
             {
                 settlementLevelIDRef_ = settlementLevelNode.Attributes["href"].Value;
             }
             else
             {
                 settlementLevel_ = new WeatherSettlementLevelEnum(settlementLevelNode);
             }
         }
         else
         {
             settlementLevel_ = new WeatherSettlementLevelEnum(settlementLevelNode);
         }
     }
     
 
     XmlNode referenceLevelEqualsZeroNode = xmlNode.SelectSingleNode("referenceLevelEqualsZero");
     
     if (referenceLevelEqualsZeroNode != null)
     {
         if (referenceLevelEqualsZeroNode.Attributes["href"] != null || referenceLevelEqualsZeroNode.Attributes["id"] != null) 
         {
             if (referenceLevelEqualsZeroNode.Attributes["id"] != null) 
             {
                 referenceLevelEqualsZeroIDRef_ = referenceLevelEqualsZeroNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(referenceLevelEqualsZeroNode);
                 IDManager.SetID(referenceLevelEqualsZeroIDRef_, ob);
             }
             else if (referenceLevelEqualsZeroNode.Attributes["href"] != null)
             {
                 referenceLevelEqualsZeroIDRef_ = referenceLevelEqualsZeroNode.Attributes["href"].Value;
             }
             else
             {
                 referenceLevelEqualsZero_ = new XsdTypeBoolean(referenceLevelEqualsZeroNode);
             }
         }
         else
         {
             referenceLevelEqualsZero_ = new XsdTypeBoolean(referenceLevelEqualsZeroNode);
         }
     }
     
 
     XmlNode calculationDateNode = xmlNode.SelectSingleNode("calculationDate");
     
     if (calculationDateNode != null)
     {
         if (calculationDateNode.Attributes["href"] != null || calculationDateNode.Attributes["id"] != null) 
         {
             if (calculationDateNode.Attributes["id"] != null) 
             {
                 calculationDateIDRef_ = calculationDateNode.Attributes["id"].Value;
                 Period ob = new Period(calculationDateNode);
                 IDManager.SetID(calculationDateIDRef_, ob);
             }
             else if (calculationDateNode.Attributes["href"] != null)
             {
                 calculationDateIDRef_ = calculationDateNode.Attributes["href"].Value;
             }
             else
             {
                 calculationDate_ = new Period(calculationDateNode);
             }
         }
         else
         {
             calculationDate_ = new Period(calculationDateNode);
         }
     }
     
 
     XmlNode businessDaysNode = xmlNode.SelectSingleNode("businessDays");
     
     if (businessDaysNode != null)
     {
         if (businessDaysNode.Attributes["href"] != null || businessDaysNode.Attributes["id"] != null) 
         {
             if (businessDaysNode.Attributes["id"] != null) 
             {
                 businessDaysIDRef_ = businessDaysNode.Attributes["id"].Value;
                 BusinessCenter ob = new BusinessCenter(businessDaysNode);
                 IDManager.SetID(businessDaysIDRef_, ob);
             }
             else if (businessDaysNode.Attributes["href"] != null)
             {
                 businessDaysIDRef_ = businessDaysNode.Attributes["href"].Value;
             }
             else
             {
                 businessDays_ = new BusinessCenter(businessDaysNode);
             }
         }
         else
         {
             businessDays_ = new BusinessCenter(businessDaysNode);
         }
     }
     
 
     XmlNode dataCorrectionNode = xmlNode.SelectSingleNode("dataCorrection");
     
     if (dataCorrectionNode != null)
     {
         if (dataCorrectionNode.Attributes["href"] != null || dataCorrectionNode.Attributes["id"] != null) 
         {
             if (dataCorrectionNode.Attributes["id"] != null) 
             {
                 dataCorrectionIDRef_ = dataCorrectionNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(dataCorrectionNode);
                 IDManager.SetID(dataCorrectionIDRef_, ob);
             }
             else if (dataCorrectionNode.Attributes["href"] != null)
             {
                 dataCorrectionIDRef_ = dataCorrectionNode.Attributes["href"].Value;
             }
             else
             {
                 dataCorrection_ = new XsdTypeBoolean(dataCorrectionNode);
             }
         }
         else
         {
             dataCorrection_ = new XsdTypeBoolean(dataCorrectionNode);
         }
     }
     
 
     XmlNode correctionPeriodNode = xmlNode.SelectSingleNode("correctionPeriod");
     
     if (correctionPeriodNode != null)
     {
         if (correctionPeriodNode.Attributes["href"] != null || correctionPeriodNode.Attributes["id"] != null) 
         {
             if (correctionPeriodNode.Attributes["id"] != null) 
             {
                 correctionPeriodIDRef_ = correctionPeriodNode.Attributes["id"].Value;
                 Period ob = new Period(correctionPeriodNode);
                 IDManager.SetID(correctionPeriodIDRef_, ob);
             }
             else if (correctionPeriodNode.Attributes["href"] != null)
             {
                 correctionPeriodIDRef_ = correctionPeriodNode.Attributes["href"].Value;
             }
             else
             {
                 correctionPeriod_ = new Period(correctionPeriodNode);
             }
         }
         else
         {
             correctionPeriod_ = new Period(correctionPeriodNode);
         }
     }
     
 
     XmlNode maximumPaymentAmountNode = xmlNode.SelectSingleNode("maximumPaymentAmount");
     
     if (maximumPaymentAmountNode != null)
     {
         if (maximumPaymentAmountNode.Attributes["href"] != null || maximumPaymentAmountNode.Attributes["id"] != null) 
         {
             if (maximumPaymentAmountNode.Attributes["id"] != null) 
             {
                 maximumPaymentAmountIDRef_ = maximumPaymentAmountNode.Attributes["id"].Value;
                 NonNegativeMoney ob = new NonNegativeMoney(maximumPaymentAmountNode);
                 IDManager.SetID(maximumPaymentAmountIDRef_, ob);
             }
             else if (maximumPaymentAmountNode.Attributes["href"] != null)
             {
                 maximumPaymentAmountIDRef_ = maximumPaymentAmountNode.Attributes["href"].Value;
             }
             else
             {
                 maximumPaymentAmount_ = new NonNegativeMoney(maximumPaymentAmountNode);
             }
         }
         else
         {
             maximumPaymentAmount_ = new NonNegativeMoney(maximumPaymentAmountNode);
         }
     }
     
 
     XmlNode maximumTransactionPaymentAmountNode = xmlNode.SelectSingleNode("maximumTransactionPaymentAmount");
     
     if (maximumTransactionPaymentAmountNode != null)
     {
         if (maximumTransactionPaymentAmountNode.Attributes["href"] != null || maximumTransactionPaymentAmountNode.Attributes["id"] != null) 
         {
             if (maximumTransactionPaymentAmountNode.Attributes["id"] != null) 
             {
                 maximumTransactionPaymentAmountIDRef_ = maximumTransactionPaymentAmountNode.Attributes["id"].Value;
                 NonNegativeMoney ob = new NonNegativeMoney(maximumTransactionPaymentAmountNode);
                 IDManager.SetID(maximumTransactionPaymentAmountIDRef_, ob);
             }
             else if (maximumTransactionPaymentAmountNode.Attributes["href"] != null)
             {
                 maximumTransactionPaymentAmountIDRef_ = maximumTransactionPaymentAmountNode.Attributes["href"].Value;
             }
             else
             {
                 maximumTransactionPaymentAmount_ = new NonNegativeMoney(maximumTransactionPaymentAmountNode);
             }
         }
         else
         {
             maximumTransactionPaymentAmount_ = new NonNegativeMoney(maximumTransactionPaymentAmountNode);
         }
     }
     
 
     XmlNode roundingNode = xmlNode.SelectSingleNode("rounding");
     
     if (roundingNode != null)
     {
         if (roundingNode.Attributes["href"] != null || roundingNode.Attributes["id"] != null) 
         {
             if (roundingNode.Attributes["id"] != null) 
             {
                 roundingIDRef_ = roundingNode.Attributes["id"].Value;
                 Rounding ob = new Rounding(roundingNode);
                 IDManager.SetID(roundingIDRef_, ob);
             }
             else if (roundingNode.Attributes["href"] != null)
             {
                 roundingIDRef_ = roundingNode.Attributes["href"].Value;
             }
             else
             {
                 rounding_ = new Rounding(roundingNode);
             }
         }
         else
         {
             rounding_ = new Rounding(roundingNode);
         }
     }
     
 
 }
 public WeatherLegCalculation(XmlNode xmlNode)
 {
     XmlNodeList settlementLevelNodeList = xmlNode.SelectNodes("settlementLevel");
     if (settlementLevelNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in settlementLevelNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 settlementLevelIDRef = item.Attributes["id"].Name;
                 WeatherSettlementLevelEnum ob = WeatherSettlementLevelEnum();
                 IDManager.SetID(settlementLevelIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 settlementLevelIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 settlementLevel = new WeatherSettlementLevelEnum(item);
             }
         }
     }
     
 
     XmlNodeList referenceLevelEqualsZeroNodeList = xmlNode.SelectNodes("referenceLevelEqualsZero");
     if (referenceLevelEqualsZeroNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in referenceLevelEqualsZeroNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 referenceLevelEqualsZeroIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(referenceLevelEqualsZeroIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 referenceLevelEqualsZeroIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 referenceLevelEqualsZero = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList calculationDateNodeList = xmlNode.SelectNodes("calculationDate");
     if (calculationDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in calculationDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 calculationDateIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(calculationDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 calculationDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 calculationDate = new Period(item);
             }
         }
     }
     
 
     XmlNodeList businessDaysNodeList = xmlNode.SelectNodes("businessDays");
     if (businessDaysNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in businessDaysNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 businessDaysIDRef = item.Attributes["id"].Name;
                 BusinessCenter ob = BusinessCenter();
                 IDManager.SetID(businessDaysIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 businessDaysIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 businessDays = new BusinessCenter(item);
             }
         }
     }
     
 
     XmlNodeList dataCorrectionNodeList = xmlNode.SelectNodes("dataCorrection");
     if (dataCorrectionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dataCorrectionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dataCorrectionIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(dataCorrectionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dataCorrectionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dataCorrection = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList correctionPeriodNodeList = xmlNode.SelectNodes("correctionPeriod");
     if (correctionPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in correctionPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 correctionPeriodIDRef = item.Attributes["id"].Name;
                 Period ob = Period();
                 IDManager.SetID(correctionPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 correctionPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 correctionPeriod = new Period(item);
             }
         }
     }
     
 
     XmlNodeList maximumPaymentAmountNodeList = xmlNode.SelectNodes("maximumPaymentAmount");
     if (maximumPaymentAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in maximumPaymentAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 maximumPaymentAmountIDRef = item.Attributes["id"].Name;
                 NonNegativeMoney ob = NonNegativeMoney();
                 IDManager.SetID(maximumPaymentAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 maximumPaymentAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 maximumPaymentAmount = new NonNegativeMoney(item);
             }
         }
     }
     
 
     XmlNodeList maximumTransactionPaymentAmountNodeList = xmlNode.SelectNodes("maximumTransactionPaymentAmount");
     if (maximumTransactionPaymentAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in maximumTransactionPaymentAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 maximumTransactionPaymentAmountIDRef = item.Attributes["id"].Name;
                 NonNegativeMoney ob = NonNegativeMoney();
                 IDManager.SetID(maximumTransactionPaymentAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 maximumTransactionPaymentAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 maximumTransactionPaymentAmount = new NonNegativeMoney(item);
             }
         }
     }
     
 
     XmlNodeList roundingNodeList = xmlNode.SelectNodes("rounding");
     if (roundingNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in roundingNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 roundingIDRef = item.Attributes["id"].Name;
                 Rounding ob = Rounding();
                 IDManager.SetID(roundingIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 roundingIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 rounding = new Rounding(item);
             }
         }
     }
     
 
 }
 public SimpleCreditDefaultSwap(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode referenceEntityNode = xmlNode.SelectSingleNode("referenceEntity");
     
     if (referenceEntityNode != null)
     {
         if (referenceEntityNode.Attributes["href"] != null || referenceEntityNode.Attributes["id"] != null) 
         {
             if (referenceEntityNode.Attributes["id"] != null) 
             {
                 referenceEntityIDRef_ = referenceEntityNode.Attributes["id"].Value;
                 LegalEntity ob = new LegalEntity(referenceEntityNode);
                 IDManager.SetID(referenceEntityIDRef_, ob);
             }
             else if (referenceEntityNode.Attributes["href"] != null)
             {
                 referenceEntityIDRef_ = referenceEntityNode.Attributes["href"].Value;
             }
             else
             {
                 referenceEntity_ = new LegalEntity(referenceEntityNode);
             }
         }
         else
         {
             referenceEntity_ = new LegalEntity(referenceEntityNode);
         }
     }
     
 
     XmlNode creditEntityReferenceNode = xmlNode.SelectSingleNode("creditEntityReference");
     
     if (creditEntityReferenceNode != null)
     {
         if (creditEntityReferenceNode.Attributes["href"] != null || creditEntityReferenceNode.Attributes["id"] != null) 
         {
             if (creditEntityReferenceNode.Attributes["id"] != null) 
             {
                 creditEntityReferenceIDRef_ = creditEntityReferenceNode.Attributes["id"].Value;
                 LegalEntityReference ob = new LegalEntityReference(creditEntityReferenceNode);
                 IDManager.SetID(creditEntityReferenceIDRef_, ob);
             }
             else if (creditEntityReferenceNode.Attributes["href"] != null)
             {
                 creditEntityReferenceIDRef_ = creditEntityReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 creditEntityReference_ = new LegalEntityReference(creditEntityReferenceNode);
             }
         }
         else
         {
             creditEntityReference_ = new LegalEntityReference(creditEntityReferenceNode);
         }
     }
     
 
     XmlNode termNode = xmlNode.SelectSingleNode("term");
     
     if (termNode != null)
     {
         if (termNode.Attributes["href"] != null || termNode.Attributes["id"] != null) 
         {
             if (termNode.Attributes["id"] != null) 
             {
                 termIDRef_ = termNode.Attributes["id"].Value;
                 Period ob = new Period(termNode);
                 IDManager.SetID(termIDRef_, ob);
             }
             else if (termNode.Attributes["href"] != null)
             {
                 termIDRef_ = termNode.Attributes["href"].Value;
             }
             else
             {
                 term_ = new Period(termNode);
             }
         }
         else
         {
             term_ = new Period(termNode);
         }
     }
     
 
     XmlNode paymentFrequencyNode = xmlNode.SelectSingleNode("paymentFrequency");
     
     if (paymentFrequencyNode != null)
     {
         if (paymentFrequencyNode.Attributes["href"] != null || paymentFrequencyNode.Attributes["id"] != null) 
         {
             if (paymentFrequencyNode.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(paymentFrequencyNode);
                 IDManager.SetID(paymentFrequencyIDRef_, ob);
             }
             else if (paymentFrequencyNode.Attributes["href"] != null)
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 paymentFrequency_ = new Period(paymentFrequencyNode);
             }
         }
         else
         {
             paymentFrequency_ = new Period(paymentFrequencyNode);
         }
     }
     
 
 }
 public Bond(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNode issuerNameNode = xmlNode.SelectSingleNode("issuerName");
     
     if (issuerNameNode != null)
     {
         if (issuerNameNode.Attributes["href"] != null || issuerNameNode.Attributes["id"] != null) 
         {
             if (issuerNameNode.Attributes["id"] != null) 
             {
                 issuerNameIDRef_ = issuerNameNode.Attributes["id"].Value;
                 XsdTypeString ob = new XsdTypeString(issuerNameNode);
                 IDManager.SetID(issuerNameIDRef_, ob);
             }
             else if (issuerNameNode.Attributes["href"] != null)
             {
                 issuerNameIDRef_ = issuerNameNode.Attributes["href"].Value;
             }
             else
             {
                 issuerName_ = new XsdTypeString(issuerNameNode);
             }
         }
         else
         {
             issuerName_ = new XsdTypeString(issuerNameNode);
         }
     }
     
 
     XmlNode issuerPartyReferenceNode = xmlNode.SelectSingleNode("issuerPartyReference");
     
     if (issuerPartyReferenceNode != null)
     {
         if (issuerPartyReferenceNode.Attributes["href"] != null || issuerPartyReferenceNode.Attributes["id"] != null) 
         {
             if (issuerPartyReferenceNode.Attributes["id"] != null) 
             {
                 issuerPartyReferenceIDRef_ = issuerPartyReferenceNode.Attributes["id"].Value;
                 PartyReference ob = new PartyReference(issuerPartyReferenceNode);
                 IDManager.SetID(issuerPartyReferenceIDRef_, ob);
             }
             else if (issuerPartyReferenceNode.Attributes["href"] != null)
             {
                 issuerPartyReferenceIDRef_ = issuerPartyReferenceNode.Attributes["href"].Value;
             }
             else
             {
                 issuerPartyReference_ = new PartyReference(issuerPartyReferenceNode);
             }
         }
         else
         {
             issuerPartyReference_ = new PartyReference(issuerPartyReferenceNode);
         }
     }
     
 
     XmlNode seniorityNode = xmlNode.SelectSingleNode("seniority");
     
     if (seniorityNode != null)
     {
         if (seniorityNode.Attributes["href"] != null || seniorityNode.Attributes["id"] != null) 
         {
             if (seniorityNode.Attributes["id"] != null) 
             {
                 seniorityIDRef_ = seniorityNode.Attributes["id"].Value;
                 CreditSeniority ob = new CreditSeniority(seniorityNode);
                 IDManager.SetID(seniorityIDRef_, ob);
             }
             else if (seniorityNode.Attributes["href"] != null)
             {
                 seniorityIDRef_ = seniorityNode.Attributes["href"].Value;
             }
             else
             {
                 seniority_ = new CreditSeniority(seniorityNode);
             }
         }
         else
         {
             seniority_ = new CreditSeniority(seniorityNode);
         }
     }
     
 
     XmlNode couponTypeNode = xmlNode.SelectSingleNode("couponType");
     
     if (couponTypeNode != null)
     {
         if (couponTypeNode.Attributes["href"] != null || couponTypeNode.Attributes["id"] != null) 
         {
             if (couponTypeNode.Attributes["id"] != null) 
             {
                 couponTypeIDRef_ = couponTypeNode.Attributes["id"].Value;
                 CouponType ob = new CouponType(couponTypeNode);
                 IDManager.SetID(couponTypeIDRef_, ob);
             }
             else if (couponTypeNode.Attributes["href"] != null)
             {
                 couponTypeIDRef_ = couponTypeNode.Attributes["href"].Value;
             }
             else
             {
                 couponType_ = new CouponType(couponTypeNode);
             }
         }
         else
         {
             couponType_ = new CouponType(couponTypeNode);
         }
     }
     
 
     XmlNode couponRateNode = xmlNode.SelectSingleNode("couponRate");
     
     if (couponRateNode != null)
     {
         if (couponRateNode.Attributes["href"] != null || couponRateNode.Attributes["id"] != null) 
         {
             if (couponRateNode.Attributes["id"] != null) 
             {
                 couponRateIDRef_ = couponRateNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(couponRateNode);
                 IDManager.SetID(couponRateIDRef_, ob);
             }
             else if (couponRateNode.Attributes["href"] != null)
             {
                 couponRateIDRef_ = couponRateNode.Attributes["href"].Value;
             }
             else
             {
                 couponRate_ = new XsdTypeDecimal(couponRateNode);
             }
         }
         else
         {
             couponRate_ = new XsdTypeDecimal(couponRateNode);
         }
     }
     
 
     XmlNode maturityNode = xmlNode.SelectSingleNode("maturity");
     
     if (maturityNode != null)
     {
         if (maturityNode.Attributes["href"] != null || maturityNode.Attributes["id"] != null) 
         {
             if (maturityNode.Attributes["id"] != null) 
             {
                 maturityIDRef_ = maturityNode.Attributes["id"].Value;
                 XsdTypeDate ob = new XsdTypeDate(maturityNode);
                 IDManager.SetID(maturityIDRef_, ob);
             }
             else if (maturityNode.Attributes["href"] != null)
             {
                 maturityIDRef_ = maturityNode.Attributes["href"].Value;
             }
             else
             {
                 maturity_ = new XsdTypeDate(maturityNode);
             }
         }
         else
         {
             maturity_ = new XsdTypeDate(maturityNode);
         }
     }
     
 
     XmlNode parValueNode = xmlNode.SelectSingleNode("parValue");
     
     if (parValueNode != null)
     {
         if (parValueNode.Attributes["href"] != null || parValueNode.Attributes["id"] != null) 
         {
             if (parValueNode.Attributes["id"] != null) 
             {
                 parValueIDRef_ = parValueNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(parValueNode);
                 IDManager.SetID(parValueIDRef_, ob);
             }
             else if (parValueNode.Attributes["href"] != null)
             {
                 parValueIDRef_ = parValueNode.Attributes["href"].Value;
             }
             else
             {
                 parValue_ = new XsdTypeDecimal(parValueNode);
             }
         }
         else
         {
             parValue_ = new XsdTypeDecimal(parValueNode);
         }
     }
     
 
     XmlNode faceAmountNode = xmlNode.SelectSingleNode("faceAmount");
     
     if (faceAmountNode != null)
     {
         if (faceAmountNode.Attributes["href"] != null || faceAmountNode.Attributes["id"] != null) 
         {
             if (faceAmountNode.Attributes["id"] != null) 
             {
                 faceAmountIDRef_ = faceAmountNode.Attributes["id"].Value;
                 XsdTypeDecimal ob = new XsdTypeDecimal(faceAmountNode);
                 IDManager.SetID(faceAmountIDRef_, ob);
             }
             else if (faceAmountNode.Attributes["href"] != null)
             {
                 faceAmountIDRef_ = faceAmountNode.Attributes["href"].Value;
             }
             else
             {
                 faceAmount_ = new XsdTypeDecimal(faceAmountNode);
             }
         }
         else
         {
             faceAmount_ = new XsdTypeDecimal(faceAmountNode);
         }
     }
     
 
     XmlNode paymentFrequencyNode = xmlNode.SelectSingleNode("paymentFrequency");
     
     if (paymentFrequencyNode != null)
     {
         if (paymentFrequencyNode.Attributes["href"] != null || paymentFrequencyNode.Attributes["id"] != null) 
         {
             if (paymentFrequencyNode.Attributes["id"] != null) 
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["id"].Value;
                 Period ob = new Period(paymentFrequencyNode);
                 IDManager.SetID(paymentFrequencyIDRef_, ob);
             }
             else if (paymentFrequencyNode.Attributes["href"] != null)
             {
                 paymentFrequencyIDRef_ = paymentFrequencyNode.Attributes["href"].Value;
             }
             else
             {
                 paymentFrequency_ = new Period(paymentFrequencyNode);
             }
         }
         else
         {
             paymentFrequency_ = new Period(paymentFrequencyNode);
         }
     }
     
 
     XmlNode dayCountFractionNode = xmlNode.SelectSingleNode("dayCountFraction");
     
     if (dayCountFractionNode != null)
     {
         if (dayCountFractionNode.Attributes["href"] != null || dayCountFractionNode.Attributes["id"] != null) 
         {
             if (dayCountFractionNode.Attributes["id"] != null) 
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["id"].Value;
                 DayCountFraction ob = new DayCountFraction(dayCountFractionNode);
                 IDManager.SetID(dayCountFractionIDRef_, ob);
             }
             else if (dayCountFractionNode.Attributes["href"] != null)
             {
                 dayCountFractionIDRef_ = dayCountFractionNode.Attributes["href"].Value;
             }
             else
             {
                 dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
             }
         }
         else
         {
             dayCountFraction_ = new DayCountFraction(dayCountFractionNode);
         }
     }
     
 
 }
示例#31
0
        public FxSwapLeg(XmlNode xmlNode)
            : base(xmlNode)
        {
            XmlNode tradeIdentifierReferenceNode = xmlNode.SelectSingleNode("tradeIdentifierReference");

            if (tradeIdentifierReferenceNode != null)
            {
                if (tradeIdentifierReferenceNode.Attributes["href"] != null || tradeIdentifierReferenceNode.Attributes["id"] != null)
                {
                    if (tradeIdentifierReferenceNode.Attributes["id"] != null)
                    {
                        tradeIdentifierReferenceIDRef_ = tradeIdentifierReferenceNode.Attributes["id"].Value;
                        PartyTradeIdentifierReference ob = new PartyTradeIdentifierReference(tradeIdentifierReferenceNode);
                        IDManager.SetID(tradeIdentifierReferenceIDRef_, ob);
                    }
                    else if (tradeIdentifierReferenceNode.Attributes["href"] != null)
                    {
                        tradeIdentifierReferenceIDRef_ = tradeIdentifierReferenceNode.Attributes["href"].Value;
                    }
                    else
                    {
                        tradeIdentifierReference_ = new PartyTradeIdentifierReference(tradeIdentifierReferenceNode);
                    }
                }
                else
                {
                    tradeIdentifierReference_ = new PartyTradeIdentifierReference(tradeIdentifierReferenceNode);
                }
            }


            XmlNode exchangedCurrency1Node = xmlNode.SelectSingleNode("exchangedCurrency1");

            if (exchangedCurrency1Node != null)
            {
                if (exchangedCurrency1Node.Attributes["href"] != null || exchangedCurrency1Node.Attributes["id"] != null)
                {
                    if (exchangedCurrency1Node.Attributes["id"] != null)
                    {
                        exchangedCurrency1IDRef_ = exchangedCurrency1Node.Attributes["id"].Value;
                        Payment ob = new Payment(exchangedCurrency1Node);
                        IDManager.SetID(exchangedCurrency1IDRef_, ob);
                    }
                    else if (exchangedCurrency1Node.Attributes["href"] != null)
                    {
                        exchangedCurrency1IDRef_ = exchangedCurrency1Node.Attributes["href"].Value;
                    }
                    else
                    {
                        exchangedCurrency1_ = new Payment(exchangedCurrency1Node);
                    }
                }
                else
                {
                    exchangedCurrency1_ = new Payment(exchangedCurrency1Node);
                }
            }


            XmlNode exchangedCurrency2Node = xmlNode.SelectSingleNode("exchangedCurrency2");

            if (exchangedCurrency2Node != null)
            {
                if (exchangedCurrency2Node.Attributes["href"] != null || exchangedCurrency2Node.Attributes["id"] != null)
                {
                    if (exchangedCurrency2Node.Attributes["id"] != null)
                    {
                        exchangedCurrency2IDRef_ = exchangedCurrency2Node.Attributes["id"].Value;
                        Payment ob = new Payment(exchangedCurrency2Node);
                        IDManager.SetID(exchangedCurrency2IDRef_, ob);
                    }
                    else if (exchangedCurrency2Node.Attributes["href"] != null)
                    {
                        exchangedCurrency2IDRef_ = exchangedCurrency2Node.Attributes["href"].Value;
                    }
                    else
                    {
                        exchangedCurrency2_ = new Payment(exchangedCurrency2Node);
                    }
                }
                else
                {
                    exchangedCurrency2_ = new Payment(exchangedCurrency2Node);
                }
            }


            XmlNode dealtCurrencyNode = xmlNode.SelectSingleNode("dealtCurrency");

            if (dealtCurrencyNode != null)
            {
                if (dealtCurrencyNode.Attributes["href"] != null || dealtCurrencyNode.Attributes["id"] != null)
                {
                    if (dealtCurrencyNode.Attributes["id"] != null)
                    {
                        dealtCurrencyIDRef_ = dealtCurrencyNode.Attributes["id"].Value;
                        DealtCurrencyEnum ob = new DealtCurrencyEnum(dealtCurrencyNode);
                        IDManager.SetID(dealtCurrencyIDRef_, ob);
                    }
                    else if (dealtCurrencyNode.Attributes["href"] != null)
                    {
                        dealtCurrencyIDRef_ = dealtCurrencyNode.Attributes["href"].Value;
                    }
                    else
                    {
                        dealtCurrency_ = new DealtCurrencyEnum(dealtCurrencyNode);
                    }
                }
                else
                {
                    dealtCurrency_ = new DealtCurrencyEnum(dealtCurrencyNode);
                }
            }


            XmlNode tenorNameNode = xmlNode.SelectSingleNode("tenorName");

            if (tenorNameNode != null)
            {
                if (tenorNameNode.Attributes["href"] != null || tenorNameNode.Attributes["id"] != null)
                {
                    if (tenorNameNode.Attributes["id"] != null)
                    {
                        tenorNameIDRef_ = tenorNameNode.Attributes["id"].Value;
                        XsdTypeBoolean ob = new XsdTypeBoolean(tenorNameNode);
                        IDManager.SetID(tenorNameIDRef_, ob);
                    }
                    else if (tenorNameNode.Attributes["href"] != null)
                    {
                        tenorNameIDRef_ = tenorNameNode.Attributes["href"].Value;
                    }
                    else
                    {
                        tenorName_ = new XsdTypeBoolean(tenorNameNode);
                    }
                }
                else
                {
                    tenorName_ = new XsdTypeBoolean(tenorNameNode);
                }
            }


            XmlNode tenorPeriodNode = xmlNode.SelectSingleNode("tenorPeriod");

            if (tenorPeriodNode != null)
            {
                if (tenorPeriodNode.Attributes["href"] != null || tenorPeriodNode.Attributes["id"] != null)
                {
                    if (tenorPeriodNode.Attributes["id"] != null)
                    {
                        tenorPeriodIDRef_ = tenorPeriodNode.Attributes["id"].Value;
                        Period ob = new Period(tenorPeriodNode);
                        IDManager.SetID(tenorPeriodIDRef_, ob);
                    }
                    else if (tenorPeriodNode.Attributes["href"] != null)
                    {
                        tenorPeriodIDRef_ = tenorPeriodNode.Attributes["href"].Value;
                    }
                    else
                    {
                        tenorPeriod_ = new Period(tenorPeriodNode);
                    }
                }
                else
                {
                    tenorPeriod_ = new Period(tenorPeriodNode);
                }
            }


            XmlNode valueDateNode = xmlNode.SelectSingleNode("valueDate");

            if (valueDateNode != null)
            {
                if (valueDateNode.Attributes["href"] != null || valueDateNode.Attributes["id"] != null)
                {
                    if (valueDateNode.Attributes["id"] != null)
                    {
                        valueDateIDRef_ = valueDateNode.Attributes["id"].Value;
                        XsdTypeDate ob = new XsdTypeDate(valueDateNode);
                        IDManager.SetID(valueDateIDRef_, ob);
                    }
                    else if (valueDateNode.Attributes["href"] != null)
                    {
                        valueDateIDRef_ = valueDateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        valueDate_ = new XsdTypeDate(valueDateNode);
                    }
                }
                else
                {
                    valueDate_ = new XsdTypeDate(valueDateNode);
                }
            }


            XmlNode currency1ValueDateNode = xmlNode.SelectSingleNode("currency1ValueDate");

            if (currency1ValueDateNode != null)
            {
                if (currency1ValueDateNode.Attributes["href"] != null || currency1ValueDateNode.Attributes["id"] != null)
                {
                    if (currency1ValueDateNode.Attributes["id"] != null)
                    {
                        currency1ValueDateIDRef_ = currency1ValueDateNode.Attributes["id"].Value;
                        XsdTypeDate ob = new XsdTypeDate(currency1ValueDateNode);
                        IDManager.SetID(currency1ValueDateIDRef_, ob);
                    }
                    else if (currency1ValueDateNode.Attributes["href"] != null)
                    {
                        currency1ValueDateIDRef_ = currency1ValueDateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        currency1ValueDate_ = new XsdTypeDate(currency1ValueDateNode);
                    }
                }
                else
                {
                    currency1ValueDate_ = new XsdTypeDate(currency1ValueDateNode);
                }
            }


            XmlNode currency2ValueDateNode = xmlNode.SelectSingleNode("currency2ValueDate");

            if (currency2ValueDateNode != null)
            {
                if (currency2ValueDateNode.Attributes["href"] != null || currency2ValueDateNode.Attributes["id"] != null)
                {
                    if (currency2ValueDateNode.Attributes["id"] != null)
                    {
                        currency2ValueDateIDRef_ = currency2ValueDateNode.Attributes["id"].Value;
                        XsdTypeDate ob = new XsdTypeDate(currency2ValueDateNode);
                        IDManager.SetID(currency2ValueDateIDRef_, ob);
                    }
                    else if (currency2ValueDateNode.Attributes["href"] != null)
                    {
                        currency2ValueDateIDRef_ = currency2ValueDateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        currency2ValueDate_ = new XsdTypeDate(currency2ValueDateNode);
                    }
                }
                else
                {
                    currency2ValueDate_ = new XsdTypeDate(currency2ValueDateNode);
                }
            }


            XmlNode exchangeRateNode = xmlNode.SelectSingleNode("exchangeRate");

            if (exchangeRateNode != null)
            {
                if (exchangeRateNode.Attributes["href"] != null || exchangeRateNode.Attributes["id"] != null)
                {
                    if (exchangeRateNode.Attributes["id"] != null)
                    {
                        exchangeRateIDRef_ = exchangeRateNode.Attributes["id"].Value;
                        ExchangeRate ob = new ExchangeRate(exchangeRateNode);
                        IDManager.SetID(exchangeRateIDRef_, ob);
                    }
                    else if (exchangeRateNode.Attributes["href"] != null)
                    {
                        exchangeRateIDRef_ = exchangeRateNode.Attributes["href"].Value;
                    }
                    else
                    {
                        exchangeRate_ = new ExchangeRate(exchangeRateNode);
                    }
                }
                else
                {
                    exchangeRate_ = new ExchangeRate(exchangeRateNode);
                }
            }


            XmlNode nonDeliverableSettlementNode = xmlNode.SelectSingleNode("nonDeliverableSettlement");

            if (nonDeliverableSettlementNode != null)
            {
                if (nonDeliverableSettlementNode.Attributes["href"] != null || nonDeliverableSettlementNode.Attributes["id"] != null)
                {
                    if (nonDeliverableSettlementNode.Attributes["id"] != null)
                    {
                        nonDeliverableSettlementIDRef_ = nonDeliverableSettlementNode.Attributes["id"].Value;
                        FxCashSettlement ob = new FxCashSettlement(nonDeliverableSettlementNode);
                        IDManager.SetID(nonDeliverableSettlementIDRef_, ob);
                    }
                    else if (nonDeliverableSettlementNode.Attributes["href"] != null)
                    {
                        nonDeliverableSettlementIDRef_ = nonDeliverableSettlementNode.Attributes["href"].Value;
                    }
                    else
                    {
                        nonDeliverableSettlement_ = new FxCashSettlement(nonDeliverableSettlementNode);
                    }
                }
                else
                {
                    nonDeliverableSettlement_ = new FxCashSettlement(nonDeliverableSettlementNode);
                }
            }
        }