public CoalStandardQuality(XmlNode xmlNode)
 {
     XmlNodeList moistureNodeList = xmlNode.SelectNodes("moisture");
     if (moistureNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in moistureNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 moistureIDRef = item.Attributes["id"].Name;
                 CoalAttributePercentage ob = CoalAttributePercentage();
                 IDManager.SetID(moistureIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 moistureIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 moisture = new CoalAttributePercentage(item);
             }
         }
     }
     
 
     XmlNodeList ashNodeList = xmlNode.SelectNodes("ash");
     if (ashNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in ashNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 ashIDRef = item.Attributes["id"].Name;
                 CoalAttributePercentage ob = CoalAttributePercentage();
                 IDManager.SetID(ashIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 ashIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 ash = new CoalAttributePercentage(item);
             }
         }
     }
     
 
     XmlNodeList sulfurNodeList = xmlNode.SelectNodes("sulfur");
     if (sulfurNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in sulfurNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 sulfurIDRef = item.Attributes["id"].Name;
                 CoalAttributePercentage ob = CoalAttributePercentage();
                 IDManager.SetID(sulfurIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 sulfurIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 sulfur = new CoalAttributePercentage(item);
             }
         }
     }
     
 
     XmlNodeList SO2NodeList = xmlNode.SelectNodes("SO2");
     if (SO2NodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in SO2NodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 SO2IDRef = item.Attributes["id"].Name;
                 CoalAttributePercentage ob = CoalAttributePercentage();
                 IDManager.SetID(SO2IDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 SO2IDRef = item.Attributes["href"].Name;
             }
             else
             {
                 SO2 = new CoalAttributePercentage(item);
             }
         }
     }
     
 
     XmlNodeList volatileNodeList = xmlNode.SelectNodes("volatile");
     if (volatileNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in volatileNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 volatileIDRef = item.Attributes["id"].Name;
                 CoalAttributePercentage ob = CoalAttributePercentage();
                 IDManager.SetID(volatileIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 volatileIDRef = item.Attributes["href"].Name;
             }
             else
             {
 public CoalStandardQuality(XmlNode xmlNode)
 {
     XmlNode moistureNode = xmlNode.SelectSingleNode("moisture");
     
     if (moistureNode != null)
     {
         if (moistureNode.Attributes["href"] != null || moistureNode.Attributes["id"] != null) 
         {
             if (moistureNode.Attributes["id"] != null) 
             {
                 moistureIDRef_ = moistureNode.Attributes["id"].Value;
                 CoalAttributePercentage ob = new CoalAttributePercentage(moistureNode);
                 IDManager.SetID(moistureIDRef_, ob);
             }
             else if (moistureNode.Attributes["href"] != null)
             {
                 moistureIDRef_ = moistureNode.Attributes["href"].Value;
             }
             else
             {
                 moisture_ = new CoalAttributePercentage(moistureNode);
             }
         }
         else
         {
             moisture_ = new CoalAttributePercentage(moistureNode);
         }
     }
     
 
     XmlNode ashNode = xmlNode.SelectSingleNode("ash");
     
     if (ashNode != null)
     {
         if (ashNode.Attributes["href"] != null || ashNode.Attributes["id"] != null) 
         {
             if (ashNode.Attributes["id"] != null) 
             {
                 ashIDRef_ = ashNode.Attributes["id"].Value;
                 CoalAttributePercentage ob = new CoalAttributePercentage(ashNode);
                 IDManager.SetID(ashIDRef_, ob);
             }
             else if (ashNode.Attributes["href"] != null)
             {
                 ashIDRef_ = ashNode.Attributes["href"].Value;
             }
             else
             {
                 ash_ = new CoalAttributePercentage(ashNode);
             }
         }
         else
         {
             ash_ = new CoalAttributePercentage(ashNode);
         }
     }
     
 
     XmlNode sulfurNode = xmlNode.SelectSingleNode("sulfur");
     
     if (sulfurNode != null)
     {
         if (sulfurNode.Attributes["href"] != null || sulfurNode.Attributes["id"] != null) 
         {
             if (sulfurNode.Attributes["id"] != null) 
             {
                 sulfurIDRef_ = sulfurNode.Attributes["id"].Value;
                 CoalAttributePercentage ob = new CoalAttributePercentage(sulfurNode);
                 IDManager.SetID(sulfurIDRef_, ob);
             }
             else if (sulfurNode.Attributes["href"] != null)
             {
                 sulfurIDRef_ = sulfurNode.Attributes["href"].Value;
             }
             else
             {
                 sulfur_ = new CoalAttributePercentage(sulfurNode);
             }
         }
         else
         {
             sulfur_ = new CoalAttributePercentage(sulfurNode);
         }
     }
     
 
     XmlNode SO2Node = xmlNode.SelectSingleNode("SO2");
     
     if (SO2Node != null)
     {
         if (SO2Node.Attributes["href"] != null || SO2Node.Attributes["id"] != null) 
         {
             if (SO2Node.Attributes["id"] != null) 
             {
                 SO2IDRef_ = SO2Node.Attributes["id"].Value;
                 CoalAttributePercentage ob = new CoalAttributePercentage(SO2Node);
                 IDManager.SetID(SO2IDRef_, ob);
             }
             else if (SO2Node.Attributes["href"] != null)
             {
                 SO2IDRef_ = SO2Node.Attributes["href"].Value;
             }
             else
             {
                 SO2_ = new CoalAttributePercentage(SO2Node);
             }
         }
         else
         {
             SO2_ = new CoalAttributePercentage(SO2Node);
         }
     }
     
 
     XmlNode volatileNode = xmlNode.SelectSingleNode("volatile");
     
     if (volatileNode != null)
     {
         if (volatileNode.Attributes["href"] != null || volatileNode.Attributes["id"] != null) 
         {
             if (volatileNode.Attributes["id"] != null) 
             {
                 volatileIDRef_ = volatileNode.Attributes["id"].Value;
                 CoalAttributePercentage ob = new CoalAttributePercentage(volatileNode);
                 IDManager.SetID(volatileIDRef_, ob);
             }
             else if (volatileNode.Attributes["href"] != null)
             {
                 volatileIDRef_ = volatileNode.Attributes["href"].Value;
             }
             else
             {
                 volatile_ = new CoalAttributePercentage(volatileNode);
             }
         }
         else
         {
             volatile_ = new CoalAttributePercentage(volatileNode);
         }
     }
     
 
     XmlNode BTUperLBNode = xmlNode.SelectSingleNode("BTUperLB");
     
     if (BTUperLBNode != null)
     {
         if (BTUperLBNode.Attributes["href"] != null || BTUperLBNode.Attributes["id"] != null) 
         {
             if (BTUperLBNode.Attributes["id"] != null) 
             {
                 BTUperLBIDRef_ = BTUperLBNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(BTUperLBNode);
                 IDManager.SetID(BTUperLBIDRef_, ob);
             }
             else if (BTUperLBNode.Attributes["href"] != null)
             {
                 BTUperLBIDRef_ = BTUperLBNode.Attributes["href"].Value;
             }
             else
             {
                 BTUperLB_ = new CoalAttributeDecimal(BTUperLBNode);
             }
         }
         else
         {
             BTUperLB_ = new CoalAttributeDecimal(BTUperLBNode);
         }
     }
     
 
     XmlNode topSizeNode = xmlNode.SelectSingleNode("topSize");
     
     if (topSizeNode != null)
     {
         if (topSizeNode.Attributes["href"] != null || topSizeNode.Attributes["id"] != null) 
         {
             if (topSizeNode.Attributes["id"] != null) 
             {
                 topSizeIDRef_ = topSizeNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(topSizeNode);
                 IDManager.SetID(topSizeIDRef_, ob);
             }
             else if (topSizeNode.Attributes["href"] != null)
             {
                 topSizeIDRef_ = topSizeNode.Attributes["href"].Value;
             }
             else
             {
                 topSize_ = new CoalAttributeDecimal(topSizeNode);
             }
         }
         else
         {
             topSize_ = new CoalAttributeDecimal(topSizeNode);
         }
     }
     
 
     XmlNode finesPassingScreenNode = xmlNode.SelectSingleNode("finesPassingScreen");
     
     if (finesPassingScreenNode != null)
     {
         if (finesPassingScreenNode.Attributes["href"] != null || finesPassingScreenNode.Attributes["id"] != null) 
         {
             if (finesPassingScreenNode.Attributes["id"] != null) 
             {
                 finesPassingScreenIDRef_ = finesPassingScreenNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(finesPassingScreenNode);
                 IDManager.SetID(finesPassingScreenIDRef_, ob);
             }
             else if (finesPassingScreenNode.Attributes["href"] != null)
             {
                 finesPassingScreenIDRef_ = finesPassingScreenNode.Attributes["href"].Value;
             }
             else
             {
                 finesPassingScreen_ = new CoalAttributeDecimal(finesPassingScreenNode);
             }
         }
         else
         {
             finesPassingScreen_ = new CoalAttributeDecimal(finesPassingScreenNode);
         }
     }
     
 
     XmlNode grindabilityNode = xmlNode.SelectSingleNode("grindability");
     
     if (grindabilityNode != null)
     {
         if (grindabilityNode.Attributes["href"] != null || grindabilityNode.Attributes["id"] != null) 
         {
             if (grindabilityNode.Attributes["id"] != null) 
             {
                 grindabilityIDRef_ = grindabilityNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(grindabilityNode);
                 IDManager.SetID(grindabilityIDRef_, ob);
             }
             else if (grindabilityNode.Attributes["href"] != null)
             {
                 grindabilityIDRef_ = grindabilityNode.Attributes["href"].Value;
             }
             else
             {
                 grindability_ = new CoalAttributeDecimal(grindabilityNode);
             }
         }
         else
         {
             grindability_ = new CoalAttributeDecimal(grindabilityNode);
         }
     }
     
 
     XmlNode ashFusionTemperatureNode = xmlNode.SelectSingleNode("ashFusionTemperature");
     
     if (ashFusionTemperatureNode != null)
     {
         if (ashFusionTemperatureNode.Attributes["href"] != null || ashFusionTemperatureNode.Attributes["id"] != null) 
         {
             if (ashFusionTemperatureNode.Attributes["id"] != null) 
             {
                 ashFusionTemperatureIDRef_ = ashFusionTemperatureNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(ashFusionTemperatureNode);
                 IDManager.SetID(ashFusionTemperatureIDRef_, ob);
             }
             else if (ashFusionTemperatureNode.Attributes["href"] != null)
             {
                 ashFusionTemperatureIDRef_ = ashFusionTemperatureNode.Attributes["href"].Value;
             }
             else
             {
                 ashFusionTemperature_ = new CoalAttributeDecimal(ashFusionTemperatureNode);
             }
         }
         else
         {
             ashFusionTemperature_ = new CoalAttributeDecimal(ashFusionTemperatureNode);
         }
     }
     
 
     XmlNode initialDeformationNode = xmlNode.SelectSingleNode("initialDeformation");
     
     if (initialDeformationNode != null)
     {
         if (initialDeformationNode.Attributes["href"] != null || initialDeformationNode.Attributes["id"] != null) 
         {
             if (initialDeformationNode.Attributes["id"] != null) 
             {
                 initialDeformationIDRef_ = initialDeformationNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(initialDeformationNode);
                 IDManager.SetID(initialDeformationIDRef_, ob);
             }
             else if (initialDeformationNode.Attributes["href"] != null)
             {
                 initialDeformationIDRef_ = initialDeformationNode.Attributes["href"].Value;
             }
             else
             {
                 initialDeformation_ = new CoalAttributeDecimal(initialDeformationNode);
             }
         }
         else
         {
             initialDeformation_ = new CoalAttributeDecimal(initialDeformationNode);
         }
     }
     
 
     XmlNode softeningHeightWidthNode = xmlNode.SelectSingleNode("softeningHeightWidth");
     
     if (softeningHeightWidthNode != null)
     {
         if (softeningHeightWidthNode.Attributes["href"] != null || softeningHeightWidthNode.Attributes["id"] != null) 
         {
             if (softeningHeightWidthNode.Attributes["id"] != null) 
             {
                 softeningHeightWidthIDRef_ = softeningHeightWidthNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(softeningHeightWidthNode);
                 IDManager.SetID(softeningHeightWidthIDRef_, ob);
             }
             else if (softeningHeightWidthNode.Attributes["href"] != null)
             {
                 softeningHeightWidthIDRef_ = softeningHeightWidthNode.Attributes["href"].Value;
             }
             else
             {
                 softeningHeightWidth_ = new CoalAttributeDecimal(softeningHeightWidthNode);
             }
         }
         else
         {
             softeningHeightWidth_ = new CoalAttributeDecimal(softeningHeightWidthNode);
         }
     }
     
 
     XmlNode softeningHeightHalfWidthNode = xmlNode.SelectSingleNode("softeningHeightHalfWidth");
     
     if (softeningHeightHalfWidthNode != null)
     {
         if (softeningHeightHalfWidthNode.Attributes["href"] != null || softeningHeightHalfWidthNode.Attributes["id"] != null) 
         {
             if (softeningHeightHalfWidthNode.Attributes["id"] != null) 
             {
                 softeningHeightHalfWidthIDRef_ = softeningHeightHalfWidthNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
                 IDManager.SetID(softeningHeightHalfWidthIDRef_, ob);
             }
             else if (softeningHeightHalfWidthNode.Attributes["href"] != null)
             {
                 softeningHeightHalfWidthIDRef_ = softeningHeightHalfWidthNode.Attributes["href"].Value;
             }
             else
             {
                 softeningHeightHalfWidth_ = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
             }
         }
         else
         {
             softeningHeightHalfWidth_ = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
         }
     }
     
 
     XmlNode fluidNode = xmlNode.SelectSingleNode("fluid");
     
     if (fluidNode != null)
     {
         if (fluidNode.Attributes["href"] != null || fluidNode.Attributes["id"] != null) 
         {
             if (fluidNode.Attributes["id"] != null) 
             {
                 fluidIDRef_ = fluidNode.Attributes["id"].Value;
                 CoalAttributeDecimal ob = new CoalAttributeDecimal(fluidNode);
                 IDManager.SetID(fluidIDRef_, ob);
             }
             else if (fluidNode.Attributes["href"] != null)
             {
                 fluidIDRef_ = fluidNode.Attributes["href"].Value;
             }
             else
             {
                 fluid_ = new CoalAttributeDecimal(fluidNode);
             }
         }
         else
         {
             fluid_ = new CoalAttributeDecimal(fluidNode);
         }
     }
     
 
 }
        public CoalStandardQuality(XmlNode xmlNode)
        {
            XmlNodeList moistureNodeList = xmlNode.SelectNodes("moisture");

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

            foreach (XmlNode item in moistureNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        moistureIDRef = item.Attributes["id"].Name;
                        CoalAttributePercentage ob = CoalAttributePercentage();
                        IDManager.SetID(moistureIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        moistureIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        moisture = new CoalAttributePercentage(item);
                    }
                }
            }


            XmlNodeList ashNodeList = xmlNode.SelectNodes("ash");

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

            foreach (XmlNode item in ashNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        ashIDRef = item.Attributes["id"].Name;
                        CoalAttributePercentage ob = CoalAttributePercentage();
                        IDManager.SetID(ashIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        ashIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        ash = new CoalAttributePercentage(item);
                    }
                }
            }


            XmlNodeList sulfurNodeList = xmlNode.SelectNodes("sulfur");

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

            foreach (XmlNode item in sulfurNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        sulfurIDRef = item.Attributes["id"].Name;
                        CoalAttributePercentage ob = CoalAttributePercentage();
                        IDManager.SetID(sulfurIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        sulfurIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        sulfur = new CoalAttributePercentage(item);
                    }
                }
            }


            XmlNodeList SO2NodeList = xmlNode.SelectNodes("SO2");

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

            foreach (XmlNode item in SO2NodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        SO2IDRef = item.Attributes["id"].Name;
                        CoalAttributePercentage ob = CoalAttributePercentage();
                        IDManager.SetID(SO2IDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        SO2IDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        SO2 = new CoalAttributePercentage(item);
                    }
                }
            }


            XmlNodeList volatileNodeList = xmlNode.SelectNodes("volatile");

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

            foreach (XmlNode item in volatileNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        volatileIDRef = item.Attributes["id"].Name;
                        CoalAttributePercentage ob = CoalAttributePercentage();
                        IDManager.SetID(volatileIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        volatileIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
        public CoalStandardQuality(XmlNode xmlNode)
        {
            XmlNode moistureNode = xmlNode.SelectSingleNode("moisture");

            if (moistureNode != null)
            {
                if (moistureNode.Attributes["href"] != null || moistureNode.Attributes["id"] != null)
                {
                    if (moistureNode.Attributes["id"] != null)
                    {
                        moistureIDRef_ = moistureNode.Attributes["id"].Value;
                        CoalAttributePercentage ob = new CoalAttributePercentage(moistureNode);
                        IDManager.SetID(moistureIDRef_, ob);
                    }
                    else if (moistureNode.Attributes["href"] != null)
                    {
                        moistureIDRef_ = moistureNode.Attributes["href"].Value;
                    }
                    else
                    {
                        moisture_ = new CoalAttributePercentage(moistureNode);
                    }
                }
                else
                {
                    moisture_ = new CoalAttributePercentage(moistureNode);
                }
            }


            XmlNode ashNode = xmlNode.SelectSingleNode("ash");

            if (ashNode != null)
            {
                if (ashNode.Attributes["href"] != null || ashNode.Attributes["id"] != null)
                {
                    if (ashNode.Attributes["id"] != null)
                    {
                        ashIDRef_ = ashNode.Attributes["id"].Value;
                        CoalAttributePercentage ob = new CoalAttributePercentage(ashNode);
                        IDManager.SetID(ashIDRef_, ob);
                    }
                    else if (ashNode.Attributes["href"] != null)
                    {
                        ashIDRef_ = ashNode.Attributes["href"].Value;
                    }
                    else
                    {
                        ash_ = new CoalAttributePercentage(ashNode);
                    }
                }
                else
                {
                    ash_ = new CoalAttributePercentage(ashNode);
                }
            }


            XmlNode sulfurNode = xmlNode.SelectSingleNode("sulfur");

            if (sulfurNode != null)
            {
                if (sulfurNode.Attributes["href"] != null || sulfurNode.Attributes["id"] != null)
                {
                    if (sulfurNode.Attributes["id"] != null)
                    {
                        sulfurIDRef_ = sulfurNode.Attributes["id"].Value;
                        CoalAttributePercentage ob = new CoalAttributePercentage(sulfurNode);
                        IDManager.SetID(sulfurIDRef_, ob);
                    }
                    else if (sulfurNode.Attributes["href"] != null)
                    {
                        sulfurIDRef_ = sulfurNode.Attributes["href"].Value;
                    }
                    else
                    {
                        sulfur_ = new CoalAttributePercentage(sulfurNode);
                    }
                }
                else
                {
                    sulfur_ = new CoalAttributePercentage(sulfurNode);
                }
            }


            XmlNode SO2Node = xmlNode.SelectSingleNode("SO2");

            if (SO2Node != null)
            {
                if (SO2Node.Attributes["href"] != null || SO2Node.Attributes["id"] != null)
                {
                    if (SO2Node.Attributes["id"] != null)
                    {
                        SO2IDRef_ = SO2Node.Attributes["id"].Value;
                        CoalAttributePercentage ob = new CoalAttributePercentage(SO2Node);
                        IDManager.SetID(SO2IDRef_, ob);
                    }
                    else if (SO2Node.Attributes["href"] != null)
                    {
                        SO2IDRef_ = SO2Node.Attributes["href"].Value;
                    }
                    else
                    {
                        SO2_ = new CoalAttributePercentage(SO2Node);
                    }
                }
                else
                {
                    SO2_ = new CoalAttributePercentage(SO2Node);
                }
            }


            XmlNode volatileNode = xmlNode.SelectSingleNode("volatile");

            if (volatileNode != null)
            {
                if (volatileNode.Attributes["href"] != null || volatileNode.Attributes["id"] != null)
                {
                    if (volatileNode.Attributes["id"] != null)
                    {
                        volatileIDRef_ = volatileNode.Attributes["id"].Value;
                        CoalAttributePercentage ob = new CoalAttributePercentage(volatileNode);
                        IDManager.SetID(volatileIDRef_, ob);
                    }
                    else if (volatileNode.Attributes["href"] != null)
                    {
                        volatileIDRef_ = volatileNode.Attributes["href"].Value;
                    }
                    else
                    {
                        volatile_ = new CoalAttributePercentage(volatileNode);
                    }
                }
                else
                {
                    volatile_ = new CoalAttributePercentage(volatileNode);
                }
            }


            XmlNode BTUperLBNode = xmlNode.SelectSingleNode("BTUperLB");

            if (BTUperLBNode != null)
            {
                if (BTUperLBNode.Attributes["href"] != null || BTUperLBNode.Attributes["id"] != null)
                {
                    if (BTUperLBNode.Attributes["id"] != null)
                    {
                        BTUperLBIDRef_ = BTUperLBNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(BTUperLBNode);
                        IDManager.SetID(BTUperLBIDRef_, ob);
                    }
                    else if (BTUperLBNode.Attributes["href"] != null)
                    {
                        BTUperLBIDRef_ = BTUperLBNode.Attributes["href"].Value;
                    }
                    else
                    {
                        BTUperLB_ = new CoalAttributeDecimal(BTUperLBNode);
                    }
                }
                else
                {
                    BTUperLB_ = new CoalAttributeDecimal(BTUperLBNode);
                }
            }


            XmlNode topSizeNode = xmlNode.SelectSingleNode("topSize");

            if (topSizeNode != null)
            {
                if (topSizeNode.Attributes["href"] != null || topSizeNode.Attributes["id"] != null)
                {
                    if (topSizeNode.Attributes["id"] != null)
                    {
                        topSizeIDRef_ = topSizeNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(topSizeNode);
                        IDManager.SetID(topSizeIDRef_, ob);
                    }
                    else if (topSizeNode.Attributes["href"] != null)
                    {
                        topSizeIDRef_ = topSizeNode.Attributes["href"].Value;
                    }
                    else
                    {
                        topSize_ = new CoalAttributeDecimal(topSizeNode);
                    }
                }
                else
                {
                    topSize_ = new CoalAttributeDecimal(topSizeNode);
                }
            }


            XmlNode finesPassingScreenNode = xmlNode.SelectSingleNode("finesPassingScreen");

            if (finesPassingScreenNode != null)
            {
                if (finesPassingScreenNode.Attributes["href"] != null || finesPassingScreenNode.Attributes["id"] != null)
                {
                    if (finesPassingScreenNode.Attributes["id"] != null)
                    {
                        finesPassingScreenIDRef_ = finesPassingScreenNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(finesPassingScreenNode);
                        IDManager.SetID(finesPassingScreenIDRef_, ob);
                    }
                    else if (finesPassingScreenNode.Attributes["href"] != null)
                    {
                        finesPassingScreenIDRef_ = finesPassingScreenNode.Attributes["href"].Value;
                    }
                    else
                    {
                        finesPassingScreen_ = new CoalAttributeDecimal(finesPassingScreenNode);
                    }
                }
                else
                {
                    finesPassingScreen_ = new CoalAttributeDecimal(finesPassingScreenNode);
                }
            }


            XmlNode grindabilityNode = xmlNode.SelectSingleNode("grindability");

            if (grindabilityNode != null)
            {
                if (grindabilityNode.Attributes["href"] != null || grindabilityNode.Attributes["id"] != null)
                {
                    if (grindabilityNode.Attributes["id"] != null)
                    {
                        grindabilityIDRef_ = grindabilityNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(grindabilityNode);
                        IDManager.SetID(grindabilityIDRef_, ob);
                    }
                    else if (grindabilityNode.Attributes["href"] != null)
                    {
                        grindabilityIDRef_ = grindabilityNode.Attributes["href"].Value;
                    }
                    else
                    {
                        grindability_ = new CoalAttributeDecimal(grindabilityNode);
                    }
                }
                else
                {
                    grindability_ = new CoalAttributeDecimal(grindabilityNode);
                }
            }


            XmlNode ashFusionTemperatureNode = xmlNode.SelectSingleNode("ashFusionTemperature");

            if (ashFusionTemperatureNode != null)
            {
                if (ashFusionTemperatureNode.Attributes["href"] != null || ashFusionTemperatureNode.Attributes["id"] != null)
                {
                    if (ashFusionTemperatureNode.Attributes["id"] != null)
                    {
                        ashFusionTemperatureIDRef_ = ashFusionTemperatureNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(ashFusionTemperatureNode);
                        IDManager.SetID(ashFusionTemperatureIDRef_, ob);
                    }
                    else if (ashFusionTemperatureNode.Attributes["href"] != null)
                    {
                        ashFusionTemperatureIDRef_ = ashFusionTemperatureNode.Attributes["href"].Value;
                    }
                    else
                    {
                        ashFusionTemperature_ = new CoalAttributeDecimal(ashFusionTemperatureNode);
                    }
                }
                else
                {
                    ashFusionTemperature_ = new CoalAttributeDecimal(ashFusionTemperatureNode);
                }
            }


            XmlNode initialDeformationNode = xmlNode.SelectSingleNode("initialDeformation");

            if (initialDeformationNode != null)
            {
                if (initialDeformationNode.Attributes["href"] != null || initialDeformationNode.Attributes["id"] != null)
                {
                    if (initialDeformationNode.Attributes["id"] != null)
                    {
                        initialDeformationIDRef_ = initialDeformationNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(initialDeformationNode);
                        IDManager.SetID(initialDeformationIDRef_, ob);
                    }
                    else if (initialDeformationNode.Attributes["href"] != null)
                    {
                        initialDeformationIDRef_ = initialDeformationNode.Attributes["href"].Value;
                    }
                    else
                    {
                        initialDeformation_ = new CoalAttributeDecimal(initialDeformationNode);
                    }
                }
                else
                {
                    initialDeformation_ = new CoalAttributeDecimal(initialDeformationNode);
                }
            }


            XmlNode softeningHeightWidthNode = xmlNode.SelectSingleNode("softeningHeightWidth");

            if (softeningHeightWidthNode != null)
            {
                if (softeningHeightWidthNode.Attributes["href"] != null || softeningHeightWidthNode.Attributes["id"] != null)
                {
                    if (softeningHeightWidthNode.Attributes["id"] != null)
                    {
                        softeningHeightWidthIDRef_ = softeningHeightWidthNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(softeningHeightWidthNode);
                        IDManager.SetID(softeningHeightWidthIDRef_, ob);
                    }
                    else if (softeningHeightWidthNode.Attributes["href"] != null)
                    {
                        softeningHeightWidthIDRef_ = softeningHeightWidthNode.Attributes["href"].Value;
                    }
                    else
                    {
                        softeningHeightWidth_ = new CoalAttributeDecimal(softeningHeightWidthNode);
                    }
                }
                else
                {
                    softeningHeightWidth_ = new CoalAttributeDecimal(softeningHeightWidthNode);
                }
            }


            XmlNode softeningHeightHalfWidthNode = xmlNode.SelectSingleNode("softeningHeightHalfWidth");

            if (softeningHeightHalfWidthNode != null)
            {
                if (softeningHeightHalfWidthNode.Attributes["href"] != null || softeningHeightHalfWidthNode.Attributes["id"] != null)
                {
                    if (softeningHeightHalfWidthNode.Attributes["id"] != null)
                    {
                        softeningHeightHalfWidthIDRef_ = softeningHeightHalfWidthNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
                        IDManager.SetID(softeningHeightHalfWidthIDRef_, ob);
                    }
                    else if (softeningHeightHalfWidthNode.Attributes["href"] != null)
                    {
                        softeningHeightHalfWidthIDRef_ = softeningHeightHalfWidthNode.Attributes["href"].Value;
                    }
                    else
                    {
                        softeningHeightHalfWidth_ = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
                    }
                }
                else
                {
                    softeningHeightHalfWidth_ = new CoalAttributeDecimal(softeningHeightHalfWidthNode);
                }
            }


            XmlNode fluidNode = xmlNode.SelectSingleNode("fluid");

            if (fluidNode != null)
            {
                if (fluidNode.Attributes["href"] != null || fluidNode.Attributes["id"] != null)
                {
                    if (fluidNode.Attributes["id"] != null)
                    {
                        fluidIDRef_ = fluidNode.Attributes["id"].Value;
                        CoalAttributeDecimal ob = new CoalAttributeDecimal(fluidNode);
                        IDManager.SetID(fluidIDRef_, ob);
                    }
                    else if (fluidNode.Attributes["href"] != null)
                    {
                        fluidIDRef_ = fluidNode.Attributes["href"].Value;
                    }
                    else
                    {
                        fluid_ = new CoalAttributeDecimal(fluidNode);
                    }
                }
                else
                {
                    fluid_ = new CoalAttributeDecimal(fluidNode);
                }
            }
        }