public CoalAttributePercentage(XmlNode xmlNode)
 {
     XmlNodeList standardContentNodeList = xmlNode.SelectNodes("standardContent");
     if (standardContentNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in standardContentNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 standardContentIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(standardContentIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 standardContentIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 standardContent = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList rejectionLimitNodeList = xmlNode.SelectNodes("rejectionLimit");
     if (rejectionLimitNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in rejectionLimitNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 rejectionLimitIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(rejectionLimitIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 rejectionLimitIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 rejectionLimit = new RestrictedPercentage(item);
             }
         }
     }
     
 
 }
 public AverageDailyTradingVolumeLimit(XmlNode xmlNode)
 {
     XmlNodeList limitationPercentageNodeList = xmlNode.SelectNodes("limitationPercentage");
     if (limitationPercentageNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in limitationPercentageNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 limitationPercentageIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(limitationPercentageIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 limitationPercentageIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 limitationPercentage = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList limitationPeriodNodeList = xmlNode.SelectNodes("limitationPeriod");
     if (limitationPeriodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in limitationPeriodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 limitationPeriodIDRef = item.Attributes["id"].Name;
                 XsdTypeNonNegativeInteger ob = XsdTypeNonNegativeInteger();
                 IDManager.SetID(limitationPeriodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 limitationPeriodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 limitationPeriod = new XsdTypeNonNegativeInteger(item);
             }
         }
     }
     
 
 }
 public PercentageTolerance(XmlNode xmlNode)
 {
     XmlNodeList postitiveNodeList = xmlNode.SelectNodes("postitive");
     if (postitiveNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in postitiveNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 postitiveIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(postitiveIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 postitiveIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 postitive = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList negativeNodeList = xmlNode.SelectNodes("negative");
     if (negativeNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in negativeNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 negativeIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(negativeIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 negativeIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 negative = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList optionNodeList = xmlNode.SelectNodes("option");
     if (optionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in optionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 optionIDRef = item.Attributes["id"].Name;
                 PartyReference ob = PartyReference();
                 IDManager.SetID(optionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 optionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 option = new PartyReference(item);
             }
         }
     }
     
 
 }
 public CashSettlementTerms(XmlNode xmlNode)
 : base(xmlNode)
 {
     XmlNodeList valuationDateNodeList = xmlNode.SelectNodes("valuationDate");
     if (valuationDateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in valuationDateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 valuationDateIDRef = item.Attributes["id"].Name;
                 ValuationDate ob = ValuationDate();
                 IDManager.SetID(valuationDateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 valuationDateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 valuationDate = new ValuationDate(item);
             }
         }
     }
     
 
     XmlNodeList valuationTimeNodeList = xmlNode.SelectNodes("valuationTime");
     if (valuationTimeNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in valuationTimeNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 valuationTimeIDRef = item.Attributes["id"].Name;
                 BusinessCenterTime ob = BusinessCenterTime();
                 IDManager.SetID(valuationTimeIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 valuationTimeIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 valuationTime = new BusinessCenterTime(item);
             }
         }
     }
     
 
     XmlNodeList quotationMethodNodeList = xmlNode.SelectNodes("quotationMethod");
     if (quotationMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in quotationMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 quotationMethodIDRef = item.Attributes["id"].Name;
                 QuotationRateTypeEnum ob = QuotationRateTypeEnum();
                 IDManager.SetID(quotationMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 quotationMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 quotationMethod = new QuotationRateTypeEnum(item);
             }
         }
     }
     
 
     XmlNodeList quotationAmountNodeList = xmlNode.SelectNodes("quotationAmount");
     if (quotationAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in quotationAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 quotationAmountIDRef = item.Attributes["id"].Name;
                 Money ob = Money();
                 IDManager.SetID(quotationAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 quotationAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 quotationAmount = new Money(item);
             }
         }
     }
     
 
     XmlNodeList minimumQuotationAmountNodeList = xmlNode.SelectNodes("minimumQuotationAmount");
     if (minimumQuotationAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in minimumQuotationAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 minimumQuotationAmountIDRef = item.Attributes["id"].Name;
                 Money ob = Money();
                 IDManager.SetID(minimumQuotationAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 minimumQuotationAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 minimumQuotationAmount = new Money(item);
             }
         }
     }
     
 
     XmlNodeList dealerNodeList = xmlNode.SelectNodes("dealer");
     
     foreach (XmlNode item in dealerNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dealerIDRef = item.Attributes["id"].Name;
                 XsdTypeString ob = new XsdTypeString();
                 ob.Add(new XsdTypeString(item));
                 IDManager.SetID(dealerIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dealerIDRef = item.Attributes["href"].Name;
             }
             else
             {
             dealer.Add(new XsdTypeString(item));
             }
         }
     }
     
 
     XmlNodeList cashSettlementBusinessDaysNodeList = xmlNode.SelectNodes("cashSettlementBusinessDays");
     if (cashSettlementBusinessDaysNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementBusinessDaysNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementBusinessDaysIDRef = item.Attributes["id"].Name;
                 XsdTypeNonNegativeInteger ob = XsdTypeNonNegativeInteger();
                 IDManager.SetID(cashSettlementBusinessDaysIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementBusinessDaysIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlementBusinessDays = new XsdTypeNonNegativeInteger(item);
             }
         }
     }
     
 
     XmlNodeList cashSettlementAmountNodeList = xmlNode.SelectNodes("cashSettlementAmount");
     if (cashSettlementAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in cashSettlementAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 cashSettlementAmountIDRef = item.Attributes["id"].Name;
                 Money ob = Money();
                 IDManager.SetID(cashSettlementAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 cashSettlementAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 cashSettlementAmount = new Money(item);
             }
         }
     }
     
 
     XmlNodeList recoveryFactorNodeList = xmlNode.SelectNodes("recoveryFactor");
     if (recoveryFactorNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in recoveryFactorNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 recoveryFactorIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(recoveryFactorIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 recoveryFactorIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 recoveryFactor = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList fixedSettlementNodeList = xmlNode.SelectNodes("fixedSettlement");
     if (fixedSettlementNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in fixedSettlementNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 fixedSettlementIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(fixedSettlementIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 fixedSettlementIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 fixedSettlement = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList accruedInterestNodeList = xmlNode.SelectNodes("accruedInterest");
     if (accruedInterestNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in accruedInterestNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 accruedInterestIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(accruedInterestIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 accruedInterestIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 accruedInterest = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList valuationMethodNodeList = xmlNode.SelectNodes("valuationMethod");
     if (valuationMethodNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in valuationMethodNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 valuationMethodIDRef = item.Attributes["id"].Name;
                 ValuationMethodEnum ob = ValuationMethodEnum();
                 IDManager.SetID(valuationMethodIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 valuationMethodIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 valuationMethod = new ValuationMethodEnum(item);
             }
         }
     }
     
 
 }
 public ConstituentWeight(XmlNode xmlNode)
 {
     XmlNodeList openUnitsNodeList = xmlNode.SelectNodes("openUnits");
     if (openUnitsNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in openUnitsNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 openUnitsIDRef = item.Attributes["id"].Name;
                 XsdTypeDecimal ob = XsdTypeDecimal();
                 IDManager.SetID(openUnitsIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 openUnitsIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 openUnits = new XsdTypeDecimal(item);
             }
         }
     }
     
 
     XmlNodeList basketPercentageNodeList = xmlNode.SelectNodes("basketPercentage");
     if (basketPercentageNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in basketPercentageNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 basketPercentageIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(basketPercentageIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 basketPercentageIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 basketPercentage = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList basketAmountNodeList = xmlNode.SelectNodes("basketAmount");
     if (basketAmountNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in basketAmountNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 basketAmountIDRef = item.Attributes["id"].Name;
                 Money ob = Money();
                 IDManager.SetID(basketAmountIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 basketAmountIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 basketAmount = new Money(item);
             }
         }
     }
     
 
 }
 public AdditionalDisruptionEvents(XmlNode xmlNode)
 {
     XmlNodeList changeInLawNodeList = xmlNode.SelectNodes("changeInLaw");
     if (changeInLawNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in changeInLawNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 changeInLawIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(changeInLawIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 changeInLawIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 changeInLaw = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList failureToDeliverNodeList = xmlNode.SelectNodes("failureToDeliver");
     if (failureToDeliverNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in failureToDeliverNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 failureToDeliverIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(failureToDeliverIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 failureToDeliverIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 failureToDeliver = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList insolvencyFilingNodeList = xmlNode.SelectNodes("insolvencyFiling");
     if (insolvencyFilingNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in insolvencyFilingNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 insolvencyFilingIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(insolvencyFilingIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 insolvencyFilingIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 insolvencyFiling = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList hedgingDisruptionNodeList = xmlNode.SelectNodes("hedgingDisruption");
     if (hedgingDisruptionNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in hedgingDisruptionNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 hedgingDisruptionIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(hedgingDisruptionIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 hedgingDisruptionIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 hedgingDisruption = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList lossOfStockBorrowNodeList = xmlNode.SelectNodes("lossOfStockBorrow");
     if (lossOfStockBorrowNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in lossOfStockBorrowNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 lossOfStockBorrowIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(lossOfStockBorrowIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 lossOfStockBorrowIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 lossOfStockBorrow = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList maximumStockLoanRateNodeList = xmlNode.SelectNodes("maximumStockLoanRate");
     if (maximumStockLoanRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in maximumStockLoanRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 maximumStockLoanRateIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(maximumStockLoanRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 maximumStockLoanRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 maximumStockLoanRate = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList increasedCostOfStockBorrowNodeList = xmlNode.SelectNodes("increasedCostOfStockBorrow");
     if (increasedCostOfStockBorrowNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in increasedCostOfStockBorrowNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 increasedCostOfStockBorrowIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(increasedCostOfStockBorrowIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 increasedCostOfStockBorrowIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 increasedCostOfStockBorrow = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList initialStockLoanRateNodeList = xmlNode.SelectNodes("initialStockLoanRate");
     if (initialStockLoanRateNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in initialStockLoanRateNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 initialStockLoanRateIDRef = item.Attributes["id"].Name;
                 RestrictedPercentage ob = RestrictedPercentage();
                 IDManager.SetID(initialStockLoanRateIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 initialStockLoanRateIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 initialStockLoanRate = new RestrictedPercentage(item);
             }
         }
     }
     
 
     XmlNodeList increasedCostOfHedgingNodeList = xmlNode.SelectNodes("increasedCostOfHedging");
     if (increasedCostOfHedgingNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in increasedCostOfHedgingNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 increasedCostOfHedgingIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(increasedCostOfHedgingIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 increasedCostOfHedgingIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 increasedCostOfHedging = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList determiningPartyReferenceNodeList = xmlNode.SelectNodes("determiningPartyReference");
     if (determiningPartyReferenceNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in determiningPartyReferenceNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 determiningPartyReferenceIDRef = item.Attributes["id"].Name;
                 PartyReference ob = PartyReference();
                 IDManager.SetID(determiningPartyReferenceIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 determiningPartyReferenceIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 determiningPartyReference = new PartyReference(item);
             }
         }
     }
     
 
     XmlNodeList foreignOwnershipEventNodeList = xmlNode.SelectNodes("foreignOwnershipEvent");
     if (foreignOwnershipEventNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in foreignOwnershipEventNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 foreignOwnershipEventIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(foreignOwnershipEventIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 foreignOwnershipEventIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 foreignOwnershipEvent = new XsdTypeBoolean(item);
             }
         }
     }
     
 
 }