public WeatherIndexData(XmlNode xmlNode)
        {
            XmlNodeList referenceLevelNodeList = xmlNode.SelectNodes("referenceLevel");

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

            foreach (XmlNode item in referenceLevelNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        referenceLevelIDRef = item.Attributes["id"].Name;
                        ReferenceLevel ob = ReferenceLevel();
                        IDManager.SetID(referenceLevelIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        referenceLevelIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        referenceLevel = new ReferenceLevel(item);
                    }
                }
            }


            XmlNodeList dataProviderNodeList = xmlNode.SelectNodes("dataProvider");

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

            foreach (XmlNode item in dataProviderNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        dataProviderIDRef = item.Attributes["id"].Name;
                        DataProvider ob = DataProvider();
                        IDManager.SetID(dataProviderIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        dataProviderIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        dataProvider = new DataProvider(item);
                    }
                }
            }


            XmlNodeList finalEditedDataNodeList = xmlNode.SelectNodes("finalEditedData");

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

            foreach (XmlNode item in finalEditedDataNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        finalEditedDataIDRef = item.Attributes["id"].Name;
                        XsdTypeBoolean ob = XsdTypeBoolean();
                        IDManager.SetID(finalEditedDataIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        finalEditedDataIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        finalEditedData = new XsdTypeBoolean(item);
                    }
                }
            }


            XmlNodeList weatherStationNodeList = xmlNode.SelectNodes("weatherStation");

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

            foreach (XmlNode item in weatherStationNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        weatherStationIDRef = item.Attributes["id"].Name;
                        WeatherStation ob = WeatherStation();
                        IDManager.SetID(weatherStationIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        weatherStationIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        weatherStation = new WeatherStation(item);
                    }
                }
            }


            XmlNodeList weatherStationFallbackNodeList = xmlNode.SelectNodes("weatherStationFallback");

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

            foreach (XmlNode item in weatherStationFallbackNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        weatherStationFallbackIDRef = item.Attributes["id"].Name;
                        WeatherStation ob = WeatherStation();
                        IDManager.SetID(weatherStationFallbackIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        weatherStationFallbackIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        weatherStationFallback = new WeatherStation(item);
                    }
                }
            }


            XmlNodeList weatherStationSecondFallbackNodeList = xmlNode.SelectNodes("weatherStationSecondFallback");

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

            foreach (XmlNode item in weatherStationSecondFallbackNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        weatherStationSecondFallbackIDRef = item.Attributes["id"].Name;
                        WeatherStation ob = WeatherStation();
                        IDManager.SetID(weatherStationSecondFallbackIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        weatherStationSecondFallbackIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        weatherStationSecondFallback = new WeatherStation(item);
                    }
                }
            }


            XmlNodeList alternativeDataProviderNodeList = xmlNode.SelectNodes("alternativeDataProvider");

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

            foreach (XmlNode item in alternativeDataProviderNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        alternativeDataProviderIDRef = item.Attributes["id"].Name;
                        XsdTypeBoolean ob = XsdTypeBoolean();
                        IDManager.SetID(alternativeDataProviderIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        alternativeDataProviderIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        alternativeDataProvider = new XsdTypeBoolean(item);
                    }
                }
            }


            XmlNodeList synopticDataFallbackNodeList = xmlNode.SelectNodes("synopticDataFallback");

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

            foreach (XmlNode item in synopticDataFallbackNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        synopticDataFallbackIDRef = item.Attributes["id"].Name;
                        XsdTypeBoolean ob = XsdTypeBoolean();
                        IDManager.SetID(synopticDataFallbackIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        synopticDataFallbackIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        synopticDataFallback = new XsdTypeBoolean(item);
                    }
                }
            }


            XmlNodeList adjustmentToFallbackWeatherStationNodeList = xmlNode.SelectNodes("adjustmentToFallbackWeatherStation");

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

            foreach (XmlNode item in adjustmentToFallbackWeatherStationNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        adjustmentToFallbackWeatherStationIDRef = item.Attributes["id"].Name;
                        XsdTypeBoolean ob = XsdTypeBoolean();
                        IDManager.SetID(adjustmentToFallbackWeatherStationIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        adjustmentToFallbackWeatherStationIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        adjustmentToFallbackWeatherStation = new XsdTypeBoolean(item);
                    }
                }
            }


            XmlNodeList primaryDisruptionFallbacksNodeList = xmlNode.SelectNodes("primaryDisruptionFallbacks");

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

            foreach (XmlNode item in primaryDisruptionFallbacksNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        primaryDisruptionFallbacksIDRef = item.Attributes["id"].Name;
                        DisruptionFallback ob = DisruptionFallback();
                        IDManager.SetID(primaryDisruptionFallbacksIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        primaryDisruptionFallbacksIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        primaryDisruptionFallbacks = new DisruptionFallback(item);
                    }
                }
            }


            XmlNodeList secondaryDisruptionFallbacksNodeList = xmlNode.SelectNodes("secondaryDisruptionFallbacks");

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

            foreach (XmlNode item in secondaryDisruptionFallbacksNodeList)
            {
                if (item.Attributes["href"] != null || item.Attributes["id"] == null)
                {
                    if (item.Attributes["id"] != null)
                    {
                        secondaryDisruptionFallbacksIDRef = item.Attributes["id"].Name;
                        DisruptionFallback ob = DisruptionFallback();
                        IDManager.SetID(secondaryDisruptionFallbacksIDRef, ob);
                    }
                    else if (item.Attributes.ToString() == "href")
                    {
                        secondaryDisruptionFallbacksIDRef = item.Attributes["href"].Name;
                    }
                    else
                    {
                        secondaryDisruptionFallbacks = new DisruptionFallback(item);
                    }
                }
            }
        }
 public WeatherIndexData(XmlNode xmlNode)
 {
     XmlNode referenceLevelNode = xmlNode.SelectSingleNode("referenceLevel");
     
     if (referenceLevelNode != null)
     {
         if (referenceLevelNode.Attributes["href"] != null || referenceLevelNode.Attributes["id"] != null) 
         {
             if (referenceLevelNode.Attributes["id"] != null) 
             {
                 referenceLevelIDRef_ = referenceLevelNode.Attributes["id"].Value;
                 ReferenceLevel ob = new ReferenceLevel(referenceLevelNode);
                 IDManager.SetID(referenceLevelIDRef_, ob);
             }
             else if (referenceLevelNode.Attributes["href"] != null)
             {
                 referenceLevelIDRef_ = referenceLevelNode.Attributes["href"].Value;
             }
             else
             {
                 referenceLevel_ = new ReferenceLevel(referenceLevelNode);
             }
         }
         else
         {
             referenceLevel_ = new ReferenceLevel(referenceLevelNode);
         }
     }
     
 
     XmlNode dataProviderNode = xmlNode.SelectSingleNode("dataProvider");
     
     if (dataProviderNode != null)
     {
         if (dataProviderNode.Attributes["href"] != null || dataProviderNode.Attributes["id"] != null) 
         {
             if (dataProviderNode.Attributes["id"] != null) 
             {
                 dataProviderIDRef_ = dataProviderNode.Attributes["id"].Value;
                 DataProvider ob = new DataProvider(dataProviderNode);
                 IDManager.SetID(dataProviderIDRef_, ob);
             }
             else if (dataProviderNode.Attributes["href"] != null)
             {
                 dataProviderIDRef_ = dataProviderNode.Attributes["href"].Value;
             }
             else
             {
                 dataProvider_ = new DataProvider(dataProviderNode);
             }
         }
         else
         {
             dataProvider_ = new DataProvider(dataProviderNode);
         }
     }
     
 
     XmlNode finalEditedDataNode = xmlNode.SelectSingleNode("finalEditedData");
     
     if (finalEditedDataNode != null)
     {
         if (finalEditedDataNode.Attributes["href"] != null || finalEditedDataNode.Attributes["id"] != null) 
         {
             if (finalEditedDataNode.Attributes["id"] != null) 
             {
                 finalEditedDataIDRef_ = finalEditedDataNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(finalEditedDataNode);
                 IDManager.SetID(finalEditedDataIDRef_, ob);
             }
             else if (finalEditedDataNode.Attributes["href"] != null)
             {
                 finalEditedDataIDRef_ = finalEditedDataNode.Attributes["href"].Value;
             }
             else
             {
                 finalEditedData_ = new XsdTypeBoolean(finalEditedDataNode);
             }
         }
         else
         {
             finalEditedData_ = new XsdTypeBoolean(finalEditedDataNode);
         }
     }
     
 
     XmlNode weatherStationNode = xmlNode.SelectSingleNode("weatherStation");
     
     if (weatherStationNode != null)
     {
         if (weatherStationNode.Attributes["href"] != null || weatherStationNode.Attributes["id"] != null) 
         {
             if (weatherStationNode.Attributes["id"] != null) 
             {
                 weatherStationIDRef_ = weatherStationNode.Attributes["id"].Value;
                 WeatherStation ob = new WeatherStation(weatherStationNode);
                 IDManager.SetID(weatherStationIDRef_, ob);
             }
             else if (weatherStationNode.Attributes["href"] != null)
             {
                 weatherStationIDRef_ = weatherStationNode.Attributes["href"].Value;
             }
             else
             {
                 weatherStation_ = new WeatherStation(weatherStationNode);
             }
         }
         else
         {
             weatherStation_ = new WeatherStation(weatherStationNode);
         }
     }
     
 
     XmlNode weatherStationFallbackNode = xmlNode.SelectSingleNode("weatherStationFallback");
     
     if (weatherStationFallbackNode != null)
     {
         if (weatherStationFallbackNode.Attributes["href"] != null || weatherStationFallbackNode.Attributes["id"] != null) 
         {
             if (weatherStationFallbackNode.Attributes["id"] != null) 
             {
                 weatherStationFallbackIDRef_ = weatherStationFallbackNode.Attributes["id"].Value;
                 WeatherStation ob = new WeatherStation(weatherStationFallbackNode);
                 IDManager.SetID(weatherStationFallbackIDRef_, ob);
             }
             else if (weatherStationFallbackNode.Attributes["href"] != null)
             {
                 weatherStationFallbackIDRef_ = weatherStationFallbackNode.Attributes["href"].Value;
             }
             else
             {
                 weatherStationFallback_ = new WeatherStation(weatherStationFallbackNode);
             }
         }
         else
         {
             weatherStationFallback_ = new WeatherStation(weatherStationFallbackNode);
         }
     }
     
 
     XmlNode weatherStationSecondFallbackNode = xmlNode.SelectSingleNode("weatherStationSecondFallback");
     
     if (weatherStationSecondFallbackNode != null)
     {
         if (weatherStationSecondFallbackNode.Attributes["href"] != null || weatherStationSecondFallbackNode.Attributes["id"] != null) 
         {
             if (weatherStationSecondFallbackNode.Attributes["id"] != null) 
             {
                 weatherStationSecondFallbackIDRef_ = weatherStationSecondFallbackNode.Attributes["id"].Value;
                 WeatherStation ob = new WeatherStation(weatherStationSecondFallbackNode);
                 IDManager.SetID(weatherStationSecondFallbackIDRef_, ob);
             }
             else if (weatherStationSecondFallbackNode.Attributes["href"] != null)
             {
                 weatherStationSecondFallbackIDRef_ = weatherStationSecondFallbackNode.Attributes["href"].Value;
             }
             else
             {
                 weatherStationSecondFallback_ = new WeatherStation(weatherStationSecondFallbackNode);
             }
         }
         else
         {
             weatherStationSecondFallback_ = new WeatherStation(weatherStationSecondFallbackNode);
         }
     }
     
 
     XmlNode alternativeDataProviderNode = xmlNode.SelectSingleNode("alternativeDataProvider");
     
     if (alternativeDataProviderNode != null)
     {
         if (alternativeDataProviderNode.Attributes["href"] != null || alternativeDataProviderNode.Attributes["id"] != null) 
         {
             if (alternativeDataProviderNode.Attributes["id"] != null) 
             {
                 alternativeDataProviderIDRef_ = alternativeDataProviderNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(alternativeDataProviderNode);
                 IDManager.SetID(alternativeDataProviderIDRef_, ob);
             }
             else if (alternativeDataProviderNode.Attributes["href"] != null)
             {
                 alternativeDataProviderIDRef_ = alternativeDataProviderNode.Attributes["href"].Value;
             }
             else
             {
                 alternativeDataProvider_ = new XsdTypeBoolean(alternativeDataProviderNode);
             }
         }
         else
         {
             alternativeDataProvider_ = new XsdTypeBoolean(alternativeDataProviderNode);
         }
     }
     
 
     XmlNode synopticDataFallbackNode = xmlNode.SelectSingleNode("synopticDataFallback");
     
     if (synopticDataFallbackNode != null)
     {
         if (synopticDataFallbackNode.Attributes["href"] != null || synopticDataFallbackNode.Attributes["id"] != null) 
         {
             if (synopticDataFallbackNode.Attributes["id"] != null) 
             {
                 synopticDataFallbackIDRef_ = synopticDataFallbackNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(synopticDataFallbackNode);
                 IDManager.SetID(synopticDataFallbackIDRef_, ob);
             }
             else if (synopticDataFallbackNode.Attributes["href"] != null)
             {
                 synopticDataFallbackIDRef_ = synopticDataFallbackNode.Attributes["href"].Value;
             }
             else
             {
                 synopticDataFallback_ = new XsdTypeBoolean(synopticDataFallbackNode);
             }
         }
         else
         {
             synopticDataFallback_ = new XsdTypeBoolean(synopticDataFallbackNode);
         }
     }
     
 
     XmlNode adjustmentToFallbackWeatherStationNode = xmlNode.SelectSingleNode("adjustmentToFallbackWeatherStation");
     
     if (adjustmentToFallbackWeatherStationNode != null)
     {
         if (adjustmentToFallbackWeatherStationNode.Attributes["href"] != null || adjustmentToFallbackWeatherStationNode.Attributes["id"] != null) 
         {
             if (adjustmentToFallbackWeatherStationNode.Attributes["id"] != null) 
             {
                 adjustmentToFallbackWeatherStationIDRef_ = adjustmentToFallbackWeatherStationNode.Attributes["id"].Value;
                 XsdTypeBoolean ob = new XsdTypeBoolean(adjustmentToFallbackWeatherStationNode);
                 IDManager.SetID(adjustmentToFallbackWeatherStationIDRef_, ob);
             }
             else if (adjustmentToFallbackWeatherStationNode.Attributes["href"] != null)
             {
                 adjustmentToFallbackWeatherStationIDRef_ = adjustmentToFallbackWeatherStationNode.Attributes["href"].Value;
             }
             else
             {
                 adjustmentToFallbackWeatherStation_ = new XsdTypeBoolean(adjustmentToFallbackWeatherStationNode);
             }
         }
         else
         {
             adjustmentToFallbackWeatherStation_ = new XsdTypeBoolean(adjustmentToFallbackWeatherStationNode);
         }
     }
     
 
     XmlNode primaryDisruptionFallbacksNode = xmlNode.SelectSingleNode("primaryDisruptionFallbacks");
     
     if (primaryDisruptionFallbacksNode != null)
     {
         if (primaryDisruptionFallbacksNode.Attributes["href"] != null || primaryDisruptionFallbacksNode.Attributes["id"] != null) 
         {
             if (primaryDisruptionFallbacksNode.Attributes["id"] != null) 
             {
                 primaryDisruptionFallbacksIDRef_ = primaryDisruptionFallbacksNode.Attributes["id"].Value;
                 DisruptionFallback ob = new DisruptionFallback(primaryDisruptionFallbacksNode);
                 IDManager.SetID(primaryDisruptionFallbacksIDRef_, ob);
             }
             else if (primaryDisruptionFallbacksNode.Attributes["href"] != null)
             {
                 primaryDisruptionFallbacksIDRef_ = primaryDisruptionFallbacksNode.Attributes["href"].Value;
             }
             else
             {
                 primaryDisruptionFallbacks_ = new DisruptionFallback(primaryDisruptionFallbacksNode);
             }
         }
         else
         {
             primaryDisruptionFallbacks_ = new DisruptionFallback(primaryDisruptionFallbacksNode);
         }
     }
     
 
     XmlNode secondaryDisruptionFallbacksNode = xmlNode.SelectSingleNode("secondaryDisruptionFallbacks");
     
     if (secondaryDisruptionFallbacksNode != null)
     {
         if (secondaryDisruptionFallbacksNode.Attributes["href"] != null || secondaryDisruptionFallbacksNode.Attributes["id"] != null) 
         {
             if (secondaryDisruptionFallbacksNode.Attributes["id"] != null) 
             {
                 secondaryDisruptionFallbacksIDRef_ = secondaryDisruptionFallbacksNode.Attributes["id"].Value;
                 DisruptionFallback ob = new DisruptionFallback(secondaryDisruptionFallbacksNode);
                 IDManager.SetID(secondaryDisruptionFallbacksIDRef_, ob);
             }
             else if (secondaryDisruptionFallbacksNode.Attributes["href"] != null)
             {
                 secondaryDisruptionFallbacksIDRef_ = secondaryDisruptionFallbacksNode.Attributes["href"].Value;
             }
             else
             {
                 secondaryDisruptionFallbacks_ = new DisruptionFallback(secondaryDisruptionFallbacksNode);
             }
         }
         else
         {
             secondaryDisruptionFallbacks_ = new DisruptionFallback(secondaryDisruptionFallbacksNode);
         }
     }
     
 
 }
 public WeatherIndexData(XmlNode xmlNode)
 {
     XmlNodeList referenceLevelNodeList = xmlNode.SelectNodes("referenceLevel");
     if (referenceLevelNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in referenceLevelNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 referenceLevelIDRef = item.Attributes["id"].Name;
                 ReferenceLevel ob = ReferenceLevel();
                 IDManager.SetID(referenceLevelIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 referenceLevelIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 referenceLevel = new ReferenceLevel(item);
             }
         }
     }
     
 
     XmlNodeList dataProviderNodeList = xmlNode.SelectNodes("dataProvider");
     if (dataProviderNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in dataProviderNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 dataProviderIDRef = item.Attributes["id"].Name;
                 DataProvider ob = DataProvider();
                 IDManager.SetID(dataProviderIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 dataProviderIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 dataProvider = new DataProvider(item);
             }
         }
     }
     
 
     XmlNodeList finalEditedDataNodeList = xmlNode.SelectNodes("finalEditedData");
     if (finalEditedDataNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in finalEditedDataNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 finalEditedDataIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(finalEditedDataIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 finalEditedDataIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 finalEditedData = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList weatherStationNodeList = xmlNode.SelectNodes("weatherStation");
     if (weatherStationNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in weatherStationNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 weatherStationIDRef = item.Attributes["id"].Name;
                 WeatherStation ob = WeatherStation();
                 IDManager.SetID(weatherStationIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 weatherStationIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 weatherStation = new WeatherStation(item);
             }
         }
     }
     
 
     XmlNodeList weatherStationFallbackNodeList = xmlNode.SelectNodes("weatherStationFallback");
     if (weatherStationFallbackNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in weatherStationFallbackNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 weatherStationFallbackIDRef = item.Attributes["id"].Name;
                 WeatherStation ob = WeatherStation();
                 IDManager.SetID(weatherStationFallbackIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 weatherStationFallbackIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 weatherStationFallback = new WeatherStation(item);
             }
         }
     }
     
 
     XmlNodeList weatherStationSecondFallbackNodeList = xmlNode.SelectNodes("weatherStationSecondFallback");
     if (weatherStationSecondFallbackNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in weatherStationSecondFallbackNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 weatherStationSecondFallbackIDRef = item.Attributes["id"].Name;
                 WeatherStation ob = WeatherStation();
                 IDManager.SetID(weatherStationSecondFallbackIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 weatherStationSecondFallbackIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 weatherStationSecondFallback = new WeatherStation(item);
             }
         }
     }
     
 
     XmlNodeList alternativeDataProviderNodeList = xmlNode.SelectNodes("alternativeDataProvider");
     if (alternativeDataProviderNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in alternativeDataProviderNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 alternativeDataProviderIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(alternativeDataProviderIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 alternativeDataProviderIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 alternativeDataProvider = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList synopticDataFallbackNodeList = xmlNode.SelectNodes("synopticDataFallback");
     if (synopticDataFallbackNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in synopticDataFallbackNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 synopticDataFallbackIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(synopticDataFallbackIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 synopticDataFallbackIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 synopticDataFallback = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList adjustmentToFallbackWeatherStationNodeList = xmlNode.SelectNodes("adjustmentToFallbackWeatherStation");
     if (adjustmentToFallbackWeatherStationNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in adjustmentToFallbackWeatherStationNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 adjustmentToFallbackWeatherStationIDRef = item.Attributes["id"].Name;
                 XsdTypeBoolean ob = XsdTypeBoolean();
                 IDManager.SetID(adjustmentToFallbackWeatherStationIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 adjustmentToFallbackWeatherStationIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 adjustmentToFallbackWeatherStation = new XsdTypeBoolean(item);
             }
         }
     }
     
 
     XmlNodeList primaryDisruptionFallbacksNodeList = xmlNode.SelectNodes("primaryDisruptionFallbacks");
     if (primaryDisruptionFallbacksNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in primaryDisruptionFallbacksNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 primaryDisruptionFallbacksIDRef = item.Attributes["id"].Name;
                 DisruptionFallback ob = DisruptionFallback();
                 IDManager.SetID(primaryDisruptionFallbacksIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 primaryDisruptionFallbacksIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 primaryDisruptionFallbacks = new DisruptionFallback(item);
             }
         }
     }
     
 
     XmlNodeList secondaryDisruptionFallbacksNodeList = xmlNode.SelectNodes("secondaryDisruptionFallbacks");
     if (secondaryDisruptionFallbacksNodeList.Count > 1 )
     {
             throw new Exception();
     }
     
     foreach (XmlNode item in secondaryDisruptionFallbacksNodeList)
     {
         if (item.Attributes["href"] != null || item.Attributes["id"] == null) 
         {
             if (item.Attributes["id"] != null) 
             {
                 secondaryDisruptionFallbacksIDRef = item.Attributes["id"].Name;
                 DisruptionFallback ob = DisruptionFallback();
                 IDManager.SetID(secondaryDisruptionFallbacksIDRef, ob);
             }
             else if (item.Attributes.ToString() == "href")
             {
                 secondaryDisruptionFallbacksIDRef = item.Attributes["href"].Name;
             }
             else
             {
                 secondaryDisruptionFallbacks = new DisruptionFallback(item);
             }
         }
     }
     
 
 }
        public WeatherIndexData(XmlNode xmlNode)
        {
            XmlNode referenceLevelNode = xmlNode.SelectSingleNode("referenceLevel");

            if (referenceLevelNode != null)
            {
                if (referenceLevelNode.Attributes["href"] != null || referenceLevelNode.Attributes["id"] != null)
                {
                    if (referenceLevelNode.Attributes["id"] != null)
                    {
                        referenceLevelIDRef_ = referenceLevelNode.Attributes["id"].Value;
                        ReferenceLevel ob = new ReferenceLevel(referenceLevelNode);
                        IDManager.SetID(referenceLevelIDRef_, ob);
                    }
                    else if (referenceLevelNode.Attributes["href"] != null)
                    {
                        referenceLevelIDRef_ = referenceLevelNode.Attributes["href"].Value;
                    }
                    else
                    {
                        referenceLevel_ = new ReferenceLevel(referenceLevelNode);
                    }
                }
                else
                {
                    referenceLevel_ = new ReferenceLevel(referenceLevelNode);
                }
            }


            XmlNode dataProviderNode = xmlNode.SelectSingleNode("dataProvider");

            if (dataProviderNode != null)
            {
                if (dataProviderNode.Attributes["href"] != null || dataProviderNode.Attributes["id"] != null)
                {
                    if (dataProviderNode.Attributes["id"] != null)
                    {
                        dataProviderIDRef_ = dataProviderNode.Attributes["id"].Value;
                        DataProvider ob = new DataProvider(dataProviderNode);
                        IDManager.SetID(dataProviderIDRef_, ob);
                    }
                    else if (dataProviderNode.Attributes["href"] != null)
                    {
                        dataProviderIDRef_ = dataProviderNode.Attributes["href"].Value;
                    }
                    else
                    {
                        dataProvider_ = new DataProvider(dataProviderNode);
                    }
                }
                else
                {
                    dataProvider_ = new DataProvider(dataProviderNode);
                }
            }


            XmlNode finalEditedDataNode = xmlNode.SelectSingleNode("finalEditedData");

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


            XmlNode weatherStationNode = xmlNode.SelectSingleNode("weatherStation");

            if (weatherStationNode != null)
            {
                if (weatherStationNode.Attributes["href"] != null || weatherStationNode.Attributes["id"] != null)
                {
                    if (weatherStationNode.Attributes["id"] != null)
                    {
                        weatherStationIDRef_ = weatherStationNode.Attributes["id"].Value;
                        WeatherStation ob = new WeatherStation(weatherStationNode);
                        IDManager.SetID(weatherStationIDRef_, ob);
                    }
                    else if (weatherStationNode.Attributes["href"] != null)
                    {
                        weatherStationIDRef_ = weatherStationNode.Attributes["href"].Value;
                    }
                    else
                    {
                        weatherStation_ = new WeatherStation(weatherStationNode);
                    }
                }
                else
                {
                    weatherStation_ = new WeatherStation(weatherStationNode);
                }
            }


            XmlNode weatherStationFallbackNode = xmlNode.SelectSingleNode("weatherStationFallback");

            if (weatherStationFallbackNode != null)
            {
                if (weatherStationFallbackNode.Attributes["href"] != null || weatherStationFallbackNode.Attributes["id"] != null)
                {
                    if (weatherStationFallbackNode.Attributes["id"] != null)
                    {
                        weatherStationFallbackIDRef_ = weatherStationFallbackNode.Attributes["id"].Value;
                        WeatherStation ob = new WeatherStation(weatherStationFallbackNode);
                        IDManager.SetID(weatherStationFallbackIDRef_, ob);
                    }
                    else if (weatherStationFallbackNode.Attributes["href"] != null)
                    {
                        weatherStationFallbackIDRef_ = weatherStationFallbackNode.Attributes["href"].Value;
                    }
                    else
                    {
                        weatherStationFallback_ = new WeatherStation(weatherStationFallbackNode);
                    }
                }
                else
                {
                    weatherStationFallback_ = new WeatherStation(weatherStationFallbackNode);
                }
            }


            XmlNode weatherStationSecondFallbackNode = xmlNode.SelectSingleNode("weatherStationSecondFallback");

            if (weatherStationSecondFallbackNode != null)
            {
                if (weatherStationSecondFallbackNode.Attributes["href"] != null || weatherStationSecondFallbackNode.Attributes["id"] != null)
                {
                    if (weatherStationSecondFallbackNode.Attributes["id"] != null)
                    {
                        weatherStationSecondFallbackIDRef_ = weatherStationSecondFallbackNode.Attributes["id"].Value;
                        WeatherStation ob = new WeatherStation(weatherStationSecondFallbackNode);
                        IDManager.SetID(weatherStationSecondFallbackIDRef_, ob);
                    }
                    else if (weatherStationSecondFallbackNode.Attributes["href"] != null)
                    {
                        weatherStationSecondFallbackIDRef_ = weatherStationSecondFallbackNode.Attributes["href"].Value;
                    }
                    else
                    {
                        weatherStationSecondFallback_ = new WeatherStation(weatherStationSecondFallbackNode);
                    }
                }
                else
                {
                    weatherStationSecondFallback_ = new WeatherStation(weatherStationSecondFallbackNode);
                }
            }


            XmlNode alternativeDataProviderNode = xmlNode.SelectSingleNode("alternativeDataProvider");

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


            XmlNode synopticDataFallbackNode = xmlNode.SelectSingleNode("synopticDataFallback");

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


            XmlNode adjustmentToFallbackWeatherStationNode = xmlNode.SelectSingleNode("adjustmentToFallbackWeatherStation");

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


            XmlNode primaryDisruptionFallbacksNode = xmlNode.SelectSingleNode("primaryDisruptionFallbacks");

            if (primaryDisruptionFallbacksNode != null)
            {
                if (primaryDisruptionFallbacksNode.Attributes["href"] != null || primaryDisruptionFallbacksNode.Attributes["id"] != null)
                {
                    if (primaryDisruptionFallbacksNode.Attributes["id"] != null)
                    {
                        primaryDisruptionFallbacksIDRef_ = primaryDisruptionFallbacksNode.Attributes["id"].Value;
                        DisruptionFallback ob = new DisruptionFallback(primaryDisruptionFallbacksNode);
                        IDManager.SetID(primaryDisruptionFallbacksIDRef_, ob);
                    }
                    else if (primaryDisruptionFallbacksNode.Attributes["href"] != null)
                    {
                        primaryDisruptionFallbacksIDRef_ = primaryDisruptionFallbacksNode.Attributes["href"].Value;
                    }
                    else
                    {
                        primaryDisruptionFallbacks_ = new DisruptionFallback(primaryDisruptionFallbacksNode);
                    }
                }
                else
                {
                    primaryDisruptionFallbacks_ = new DisruptionFallback(primaryDisruptionFallbacksNode);
                }
            }


            XmlNode secondaryDisruptionFallbacksNode = xmlNode.SelectSingleNode("secondaryDisruptionFallbacks");

            if (secondaryDisruptionFallbacksNode != null)
            {
                if (secondaryDisruptionFallbacksNode.Attributes["href"] != null || secondaryDisruptionFallbacksNode.Attributes["id"] != null)
                {
                    if (secondaryDisruptionFallbacksNode.Attributes["id"] != null)
                    {
                        secondaryDisruptionFallbacksIDRef_ = secondaryDisruptionFallbacksNode.Attributes["id"].Value;
                        DisruptionFallback ob = new DisruptionFallback(secondaryDisruptionFallbacksNode);
                        IDManager.SetID(secondaryDisruptionFallbacksIDRef_, ob);
                    }
                    else if (secondaryDisruptionFallbacksNode.Attributes["href"] != null)
                    {
                        secondaryDisruptionFallbacksIDRef_ = secondaryDisruptionFallbacksNode.Attributes["href"].Value;
                    }
                    else
                    {
                        secondaryDisruptionFallbacks_ = new DisruptionFallback(secondaryDisruptionFallbacksNode);
                    }
                }
                else
                {
                    secondaryDisruptionFallbacks_ = new DisruptionFallback(secondaryDisruptionFallbacksNode);
                }
            }
        }