Search Results for

    Show / Hide Table of Contents

    Exporting Web Services (Delphi)

    Note

    This demo is available in your FlexCel installation at <FlexCel Install Folder>\Demo\Delphi\Modules\20.Reports\27.Exporting Web Services and also at https:​//​github.​com/​tmssoftware/​TMS-​FlexCel.​VCL-​demos/​tree/​master/​Delphi/​Modules/​20.​Reports/​27.​Exporting Web Services

    Overview

    A demo that accesses the NOAA Meteorological web service and returns an Excel file with the forecast. Just in case you do not have an Internet connection available, some sample data is included to work offline too.

    Concepts

    How to export the data on a Web Service to Excel or PDF.

    Files

    ndfdXML.pas

    // ************************************************************************ //
    // The types declared in this file were generated from data read from the
    // WSDL File described below:
    // WSDL     : http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl
    //  >Import : http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl>0
    // Version  : 1.0
    // (25/09/2014 14:06:51 - - $Rev: 45757 $)
    // ************************************************************************ //
    
    unit ndfdXML;
    
    interface
    
    uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
    
    type
    
      // ************************************************************************ //
      // The following types, referred to in the WSDL document are not being represented
      // in this file. They are either aliases[@] of other types represented or were referred
      // to but never[!] declared in the document. The types from the latter category
      // typically map to predefined/known XML or Embarcadero types; however, they could also 
      // indicate incorrect WSDL documents that failed to declare or import a schema type.
      // ************************************************************************ //
      // !:date            - "http://www.w3.org/2001/XMLSchema"[]
      // !:integer         - "http://www.w3.org/2001/XMLSchema"[]
      // !:decimal         - "http://www.w3.org/2001/XMLSchema"[]
      // !:dateTime        - "http://www.w3.org/2001/XMLSchema"[]
      // !:boolean         - "http://www.w3.org/2001/XMLSchema"[Gbl]
      // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
    
      weatherParametersType = class;                { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblCplx] }
    
      {$SCOPEDENUMS ON}
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      displayLevelType = (_1, _2, _3, _4, _12, _34, _1234);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      featureTypeType = (Forecast_Gml2Point, Forecast_Gml2AllWx, Forecast_GmlsfPoint, Forecast_GmlObs, NdfdMultiPointCoverage, Ndfd_KmlPoint);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      compTypeType = (IsEqual, Between, GreaterThan, GreaterThanEqualTo, LessThan, LessThanEqualTo);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      formatType = (_24_hourly, _12_hourly);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      productType = (time_series, glance);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      sectorType = (conus, nhemi, alaska, guam, hawaii, puertori, npacocn);
    
      { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      unitType = (e, m);
    
      {$SCOPEDENUMS OFF}
    
    
    
      // ************************************************************************ //
      // XML       : weatherParametersType, global, <complexType>
      // Namespace : http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd
      // ************************************************************************ //
      weatherParametersType = class(TRemotable)
      private
        Fmaxt: Boolean;
        Fmint: Boolean;
        Ftemp: Boolean;
        Fdew: Boolean;
        Fpop12: Boolean;
        Fqpf: Boolean;
        Fsky: Boolean;
        Fsnow: Boolean;
        Fwspd: Boolean;
        Fwdir: Boolean;
        Fwx: Boolean;
        Fwaveh: Boolean;
        Ficons: Boolean;
        Frh: Boolean;
        Fappt: Boolean;
        Fincw34: Boolean;
        Fincw50: Boolean;
        Fincw64: Boolean;
        Fcumw34: Boolean;
        Fcumw50: Boolean;
        Fcumw64: Boolean;
        Fcritfireo: Boolean;
        Fdryfireo: Boolean;
        Fconhazo: Boolean;
        Fptornado: Boolean;
        Fphail: Boolean;
        Fptstmwinds: Boolean;
        Fpxtornado: Boolean;
        Fpxhail: Boolean;
        Fpxtstmwinds: Boolean;
        Fptotsvrtstm: Boolean;
        Fpxtotsvrtstm: Boolean;
        Ftmpabv14d: Boolean;
        Ftmpblw14d: Boolean;
        Ftmpabv30d: Boolean;
        Ftmpblw30d: Boolean;
        Ftmpabv90d: Boolean;
        Ftmpblw90d: Boolean;
        Fprcpabv14d: Boolean;
        Fprcpblw14d: Boolean;
        Fprcpabv30d: Boolean;
        Fprcpblw30d: Boolean;
        Fprcpabv90d: Boolean;
        Fprcpblw90d: Boolean;
        Fprecipa_r: Boolean;
        Fsky_r: Boolean;
        Ftd_r: Boolean;
        Ftemp_r: Boolean;
        Fwdir_r: Boolean;
        Fwspd_r: Boolean;
        Fwwa: Boolean;
        Fwgust: Boolean;
        Ficeaccum: Boolean;
        Fmaxrh: Boolean;
        Fminrh: Boolean;
      published
        property maxt:         Boolean  read Fmaxt write Fmaxt;
        property mint:         Boolean  read Fmint write Fmint;
        property temp:         Boolean  read Ftemp write Ftemp;
        property dew:          Boolean  read Fdew write Fdew;
        property pop12:        Boolean  read Fpop12 write Fpop12;
        property qpf:          Boolean  read Fqpf write Fqpf;
        property sky:          Boolean  read Fsky write Fsky;
        property snow:         Boolean  read Fsnow write Fsnow;
        property wspd:         Boolean  read Fwspd write Fwspd;
        property wdir:         Boolean  read Fwdir write Fwdir;
        property wx:           Boolean  read Fwx write Fwx;
        property waveh:        Boolean  read Fwaveh write Fwaveh;
        property icons:        Boolean  read Ficons write Ficons;
        property rh:           Boolean  read Frh write Frh;
        property appt:         Boolean  read Fappt write Fappt;
        property incw34:       Boolean  read Fincw34 write Fincw34;
        property incw50:       Boolean  read Fincw50 write Fincw50;
        property incw64:       Boolean  read Fincw64 write Fincw64;
        property cumw34:       Boolean  read Fcumw34 write Fcumw34;
        property cumw50:       Boolean  read Fcumw50 write Fcumw50;
        property cumw64:       Boolean  read Fcumw64 write Fcumw64;
        property critfireo:    Boolean  read Fcritfireo write Fcritfireo;
        property dryfireo:     Boolean  read Fdryfireo write Fdryfireo;
        property conhazo:      Boolean  read Fconhazo write Fconhazo;
        property ptornado:     Boolean  read Fptornado write Fptornado;
        property phail:        Boolean  read Fphail write Fphail;
        property ptstmwinds:   Boolean  read Fptstmwinds write Fptstmwinds;
        property pxtornado:    Boolean  read Fpxtornado write Fpxtornado;
        property pxhail:       Boolean  read Fpxhail write Fpxhail;
        property pxtstmwinds:  Boolean  read Fpxtstmwinds write Fpxtstmwinds;
        property ptotsvrtstm:  Boolean  read Fptotsvrtstm write Fptotsvrtstm;
        property pxtotsvrtstm: Boolean  read Fpxtotsvrtstm write Fpxtotsvrtstm;
        property tmpabv14d:    Boolean  read Ftmpabv14d write Ftmpabv14d;
        property tmpblw14d:    Boolean  read Ftmpblw14d write Ftmpblw14d;
        property tmpabv30d:    Boolean  read Ftmpabv30d write Ftmpabv30d;
        property tmpblw30d:    Boolean  read Ftmpblw30d write Ftmpblw30d;
        property tmpabv90d:    Boolean  read Ftmpabv90d write Ftmpabv90d;
        property tmpblw90d:    Boolean  read Ftmpblw90d write Ftmpblw90d;
        property prcpabv14d:   Boolean  read Fprcpabv14d write Fprcpabv14d;
        property prcpblw14d:   Boolean  read Fprcpblw14d write Fprcpblw14d;
        property prcpabv30d:   Boolean  read Fprcpabv30d write Fprcpabv30d;
        property prcpblw30d:   Boolean  read Fprcpblw30d write Fprcpblw30d;
        property prcpabv90d:   Boolean  read Fprcpabv90d write Fprcpabv90d;
        property prcpblw90d:   Boolean  read Fprcpblw90d write Fprcpblw90d;
        property precipa_r:    Boolean  read Fprecipa_r write Fprecipa_r;
        property sky_r:        Boolean  read Fsky_r write Fsky_r;
        property td_r:         Boolean  read Ftd_r write Ftd_r;
        property temp_r:       Boolean  read Ftemp_r write Ftemp_r;
        property wdir_r:       Boolean  read Fwdir_r write Fwdir_r;
        property wspd_r:       Boolean  read Fwspd_r write Fwspd_r;
        property wwa:          Boolean  read Fwwa write Fwwa;
        property wgust:        Boolean  read Fwgust write Fwgust;
        property iceaccum:     Boolean  read Ficeaccum write Ficeaccum;
        property maxrh:        Boolean  read Fmaxrh write Fmaxrh;
        property minrh:        Boolean  read Fminrh write Fminrh;
      end;
    
      listLatLonType  = string;         { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      zipCodeListType = string;         { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
      listCityNamesType = string;       { "http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd"[GblSmpl] }
    
      // ************************************************************************ //
      // Namespace : http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl
      // soapAction: http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl#%operationName%
      // transport : http://schemas.xmlsoap.org/soap/http
      // style     : rpc
      // use       : encoded
      // binding   : ndfdXMLBinding
      // service   : ndfdXML
      // port      : ndfdXMLPort
      // URL       : http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php
      // ************************************************************************ //
      ndfdXMLPortType = interface(IInvokable)
      ['{1E6F1B25-B6D9-BB0E-5BE9-05D3A60F2020}']
        function  NDFDgen(const latitude: TXSDecimal; const longitude: TXSDecimal; const product: productType; const startTime: TXSDateTime; const endTime: TXSDateTime; const Unit_: unitType; 
                          const weatherParameters: weatherParametersType): string; stdcall;
        function  NDFDgenByDay(const latitude: TXSDecimal; const longitude: TXSDecimal; const startDate: TXSDate; const numDays: Int64; const Unit_: unitType; const format: formatType
                               ): string; stdcall;
        function  NDFDgenLatLonList(const listLatLon: listLatLonType; const product: productType; const startTime: TXSDateTime; const endTime: TXSDateTime; const Unit_: unitType; const weatherParameters: weatherParametersType
                                    ): string; stdcall;
        function  NDFDgenByDayLatLonList(const listLatLon: listLatLonType; const startDate: TXSDate; const numDays: Int64; const Unit_: unitType; const format: formatType): string; stdcall;
        function  GmlLatLonList(const listLatLon: listLatLonType; const requestedTime: TXSDateTime; const featureType: featureTypeType; const weatherParameters: weatherParametersType): string; stdcall;
        function  GmlTimeSeries(const listLatLon: listLatLonType; const startTime: TXSDateTime; const endTime: TXSDateTime; const compType: compTypeType; const featureType: featureTypeType; const propertyName: string
                                ): string; stdcall;
        function  LatLonListSubgrid(const lowerLeftLatitude: TXSDecimal; const lowerLeftLongitude: TXSDecimal; const upperRightLatitude: TXSDecimal; const upperRightLongitude: TXSDecimal; const resolution: TXSDecimal): listLatLonType; stdcall;
        function  LatLonListLine(const endPoint1Lat: TXSDecimal; const endPoint1Lon: TXSDecimal; const endPoint2Lat: TXSDecimal; const endPoint2Lon: TXSDecimal): listLatLonType; stdcall;
        function  LatLonListZipCode(const zipCodeList: zipCodeListType): listLatLonType; stdcall;
        function  LatLonListSquare(const centerPointLat: TXSDecimal; const centerPointLon: TXSDecimal; const distanceLat: TXSDecimal; const distanceLon: TXSDecimal; const resolution: TXSDecimal): listLatLonType; stdcall;
        function  CornerPoints(const sector: sectorType): listLatLonType; stdcall;
        function  LatLonListCityNames(const displayLevel: displayLevelType): listCityNamesType; stdcall;
      end;
    
    function GetndfdXMLPortType(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): ndfdXMLPortType;
    
    
    implementation
      uses SysUtils;
    
    function GetndfdXMLPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ndfdXMLPortType;
    const
      defWSDL = 'http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl';
      defURL  = 'http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php';
      defSvc  = 'ndfdXML';
      defPrt  = 'ndfdXMLPort';
    var
      RIO: THTTPRIO;
    begin
      Result := nil;
      if (Addr = '') then
      begin
        if UseWSDL then
          Addr := defWSDL
        else
          Addr := defURL;
      end;
      if HTTPRIO = nil then
        RIO := THTTPRIO.Create(nil)
      else
        RIO := HTTPRIO;
      try
        Result := (RIO as ndfdXMLPortType);
        if UseWSDL then
        begin
          RIO.WSDLLocation := Addr;
          RIO.Service := defSvc;
          RIO.Port := defPrt;
        end else
          RIO.URL := Addr;
      finally
        if (Result = nil) and (HTTPRIO = nil) then
          RIO.Free;
      end;
    end;
    
    
    initialization
      { ndfdXMLPortType }
      InvRegistry.RegisterInterface(TypeInfo(ndfdXMLPortType), 'http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl', '');
      InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ndfdXMLPortType), 'http://graphical.weather.gov/xml/DWMLgen/wsdl/ndfdXML.wsdl#%operationName%');
      { ndfdXMLPortType.NDFDgen }
      InvRegistry.RegisterParamInfo(TypeInfo(ndfdXMLPortType), 'NDFDgen', 'Unit_', 'Unit', '');
      { ndfdXMLPortType.NDFDgenByDay }
      InvRegistry.RegisterParamInfo(TypeInfo(ndfdXMLPortType), 'NDFDgenByDay', 'Unit_', 'Unit', '');
      { ndfdXMLPortType.NDFDgenLatLonList }
      InvRegistry.RegisterParamInfo(TypeInfo(ndfdXMLPortType), 'NDFDgenLatLonList', 'Unit_', 'Unit', '');
      { ndfdXMLPortType.NDFDgenByDayLatLonList }
      InvRegistry.RegisterParamInfo(TypeInfo(ndfdXMLPortType), 'NDFDgenByDayLatLonList', 'Unit_', 'Unit', '');
      RemClassRegistry.RegisterXSInfo(TypeInfo(displayLevelType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'displayLevelType');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_1', '1');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_2', '2');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_3', '3');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_4', '4');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_12', '12');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_34', '34');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(displayLevelType), '_1234', '1234');
      RemClassRegistry.RegisterXSInfo(TypeInfo(featureTypeType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'featureTypeType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(compTypeType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'compTypeType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(formatType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'formatType');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(formatType), '_24_hourly', '24 hourly');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(formatType), '_12_hourly', '12 hourly');
      RemClassRegistry.RegisterXSInfo(TypeInfo(productType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'productType');
      RemClassRegistry.RegisterExternalPropName(TypeInfo(productType), 'time_series', 'time-series');
      RemClassRegistry.RegisterXSInfo(TypeInfo(sectorType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'sectorType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(unitType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'unitType');
      RemClassRegistry.RegisterXSClass(weatherParametersType, 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'weatherParametersType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(listLatLonType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'listLatLonType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(zipCodeListType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'zipCodeListType');
      RemClassRegistry.RegisterXSInfo(TypeInfo(listCityNamesType), 'http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd', 'listCityNamesType');
    
    end.
    

    UDataModel.pas

    unit UDataModel;
    
    interface
    uses SysUtils, Generics.Collections;
    
    type
    
      TWeather = class
        private
          FDay: TDateTime;
          FLow: double;
          FHigh: double;
          FIcon: TBytes;
    
        public
          property Day: TDateTime read FDay;
          property Low: double read FLow;
          property High: double read FHigh;
          property Icon: TBytes read FIcon;
    
          constructor Create(const aDay: TDateTime; const aLow, aHigh: double; const aIcon: TBytes);
      end;
    
      TWeatherList = class(TObjectList<TWeather>)
      end;
    
    
    implementation
    
    { TWeather }
    
    constructor TWeather.Create(const aDay: TDateTime; const aLow, aHigh: double;
      const aIcon: TBytes);
    begin
      FDay := aDay;
      FLow := aLow;
      FHigh := aHigh;
      FIcon := aIcon;
    end;
    
    end.
    

    ULatLong.pas

    unit ULatLong;
    
    interface
    type
      TLatLong = record
        public
        Latitude,
        Longitude: Currency;
    
        constructor Create(const aLatitude, aLongitude: Currency);
    
      end;
    implementation
    
    { LatLong }
    
    constructor TLatLong.Create(const aLatitude, aLongitude: Currency);
    begin
      Latitude := aLatitude;
      Longitude := aLongitude;
    end;
    
    end.
    

    UMainForm.pas

    unit UMainForm;
    {*This program is inspired on the progam by Mikhail Arkhipov
     * at http://blogs.msdn.com/mikhailarkhipov/archive/2004/08/12/213963.aspx
     * Thanks!
     */
    
    /* UPDATE: This was patched with the info on
     * http://weblogs.asp.net/jan/archive/2004/01/28/63771.aspx
     * to make it work.
     *
     * Thanks again...
     *
     * UPDATE 2!
     * The NOAA broke the service again, and it has not fixed it for more than a year.
     * I give up. We will use http://www.webservicex.net/WeatherForecast.asmx instead.
     * The code for NOAA is still there on the SetupNOAA method, just not used so you can see it (and try it if it ever starts working again)
     *
     * UPDATE 3!
     * Now WebserviceX is not working, going back to NOAA. As you can see, it isn't very trustable that a webservice will be there in the
     * future, so this demo might not work in online mode when you try it. But you can always look at in in offline mode.
     * *}
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics,
      XMLDoc, XMLIntf, Generics.Collections, ULatLong, Types,
      UDataModel,
      Controls, Forms, Dialogs, StdCtrls;
    
    type
      TMainForm = class(TForm)
        edCity: TComboBox;
        lblCity: TLabel;
        cbOffline: TCheckBox;
        btnExportPdf: TButton;
        btnCancel: TButton;
        btnExportExcel: TButton;
        SaveDialogExcel: TSaveDialog;
        SaveDialogPdf: TSaveDialog;
        procedure btnExportExcelClick(Sender: TObject);
        procedure btnExportPdfClick(Sender: TObject);
        procedure edCityKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
        procedure btnCancelClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        Cities: TDictionary<string, TLatLong>;
        procedure LoadCities;
        procedure Export(const SaveDialog: TSaveDialog; const ToPdf: boolean);
        function DataPath: string;
        function ReadData(const CityCoords: TLatLong; const OnLine: Boolean): string;
        function ReadOnlineData(const CityCoords: TLatLong): string;
        function GetCity(const Cities: TDictionary<string, TLatLong>; const CityName: string): TLatLong;
        function ReadOfflineData: string;
        function GetWeatherList(const dtStart: TDateTime; const xml: string): TWeatherList;
        function GetIcon(const Url: string; const UseOfflineData: boolean): TBytes;
        function LoadFileIcon(const FileName: string): TBytes;
        function LoadWebIcon(const Url: string): TBytes;
        function GetInvariantFormat: TFormatSettings;
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      MainForm: TMainForm;
    
    implementation
    uses
      FlexCel.VCLSupport, FlexCel.Core, FlexCel.XlsAdapter, FlexCel.Report, FlexCel.Render,
      ndfdXML, XSBuiltIns, DateUtils,
      IdHTTP, IdComponent,
      {$if CompilerVersion >= 23.0} System.UITypes, {$IFEND}
      IOUtils, StrUtils, ShellApi, XMLMapping;
    
    {$R *.dfm}
    
    procedure TMainForm.btnCancelClick(Sender: TObject);
    begin
      Close;
    end;
    
    procedure TMainForm.btnExportExcelClick(Sender: TObject);
    begin
      Export(SaveDialogExcel, false);
    end;
    
    procedure TMainForm.btnExportPdfClick(Sender: TObject);
    begin
      Export(SaveDialogPdf, true);
    end;
    
    procedure TMainForm.edCityKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      edCity.DroppedDown := false;
    end;
    
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      LoadCities;
    end;
    
    procedure TMainForm.FormDestroy(Sender: TObject);
    begin
      Cities.Free;
    end;
    
    function TMainForm.DataPath: string;
    begin
      Result := TPath.Combine(TPath.Combine(TPath.GetDirectoryName(ParamStr(0)),'..'),'..') + TPath.DirectorySeparatorChar;
    
    end;
    
    function TMainForm.GetInvariantFormat: TFormatSettings;
    begin
      Result := TFormatSettings.Create('en-US');
    end;
    
    procedure TMainForm.LoadCities;
    var
      xml: IXmlDocument;
      latLonList,
      cityNameList: IXMLNode;
      lats, cits: string;
      latsparsed,
      citsParsed,
      ll: TStringDynArray;
      i: Integer;
      Invariant: TFormatSettings;
    begin
      Cities := TDictionary<string, TLatLong>.Create;
      Invariant := GetInvariantFormat;
      xml := TXmlDocument.Create(nil);
    
        xml.LoadFromFile(TPath.Combine(DataPath, 'cities.xml'));
        latLonList := xml.DocumentElement.ChildNodes.FindNode('latLonList');
        cityNameList := xml.DocumentElement.ChildNodes.FindNode('cityNameList');
    
        lats := latLonList.Text;
        cits := cityNameList.Text;
    
        latsParsed := SplitString(lats, ' ');
        citsParsed := SplitString(cits, '|');
    
        if Length(citsParsed) <> Length(latsParsed) then raise Exception.Create('Invalid city list');
    
        for i := 0 to Length(citsParsed) - 1 do
        begin
          ll := SplitString(latsParsed[i], ',');
          if (Length(ll) <> 2) then raise Exception.Create('Invalid city list');
    
          Cities.Add(citsParsed[i], TLatLong.Create(StrToCurr(ll[0], Invariant), StrToCurr(ll[1], Invariant)));
          edcity.Items.Add(citsParsed[i]);
        end;
    
        edCity.Text := 'New York,NY';
    
    end;
    
    function TMainForm.GetCity(const Cities: TDictionary<string, TLatLong>; const CityName: string): TLatLong;
    begin
      if (not Cities.TryGetValue(CityName, Result)) then raise Exception.Create('Can''t find the city ' + CityName);
    end;
    
    function TMainForm.LoadFileIcon(const FileName: string): TBytes;
    var
      fs: TFileStream;
    begin
      fs := TFileStream.Create(FileName, fmOpenRead);
      try
        SetLength(Result, fs.Size);
        if (Length(Result) > 0) then fs.Read(Result[0], Length(Result));
      finally
        fs.Free;
      end;
    end;
    
    function TMainForm.LoadWebIcon(const Url: string): TBytes;
    var
      Http: TIdHTTP;
      ms: TMemoryStream;
    begin
      Http := TIdHTTP.Create(nil);
      try
        ms := TMemoryStream.Create;
        try
          Http.Get(Url, ms);
          SetLength(Result, ms.Size);
          ms.Position := 0;
          ms.Read(Result[0], Length(Result));
        finally
          ms.Free;
        end;
      finally
        Http.Free;
      end;
    end;
    
    function TMainForm.GetIcon(const Url: string; const UseOfflineData: boolean): TBytes;
    begin
      if (Trim(url) = '') then exit(nil); //no image
      if UseOfflineData then Result := LoadFileIcon(TPath.Combine(DataPath, TPath.GetFileName(url)))
      else Result := LoadWebIcon(Url);
    
    end;
    
    function TMainForm.GetWeatherList(const dtStart: TDateTime; const xml: string): TWeatherList;
    var
      doc: IXMLDocument;
      dwml: IXMLDwml;
      LowList,
      HighList: IXmlTempValTypeList;
      MinTemp, MaxTemp: double;
      Url: string;
      i, j, k, z: Integer;
      Invariant: TFormatSettings;
    
    begin
      Invariant := GetInvariantFormat;
    
      doc := TXMLDocument.Create(nil);
      doc.LoadFromXML(xml);
      dwml := Getdwml(doc);
      Result := TWeatherList.Create();
      try
        for i := 0 to dwml.Data.Count - 1 do
        begin
          for j := 0 to dwml.Data[i].Parameters.Count - 1 do
          begin
            LowList := nil;
            HighList := nil;
            for k := 0 to dwml.Data[i].Parameters[j].Temperature.Count - 1 do
            begin
              if dwml.Data[i].Parameters[j].Temperature[k].Type_ = 'minimum'
                then LowList := dwml.Data[i].Parameters[j].Temperature[k].Value;
              if dwml.Data[i].Parameters[j].Temperature[k].Type_ = 'maximum'
                then HighList := dwml.Data[i].Parameters[j].Temperature[k].Value;
    
            end;
    
            if (LowList = nil) or (HighList = nil) then exit;
    
            for k := 0 to dwml.Data[i].Parameters[j].Conditionsicon.Count - 1 do
            begin
              for z := 0 to dwml.Data[i].Parameters[j].Conditionsicon[k].Iconlink.Count - 1 do
              begin
                if (z >= LowList.Count) or (z >= HighList.Count) then exit;
    
                MinTemp := 0;
                MaxTemp := 0;
                Url := dwml.Data[i].Parameters[j].Conditionsicon[k].Iconlink[z];
                if Trim(LowList[z].Text) <> '' then MinTemp := StrToFloat(LowList[z].Text, Invariant);
                if Trim(HighList[z].Text) <> '' then MaxTemp := StrToFloat(HighList[z].Text, Invariant);
                Result.Add(TWeather.Create(IncDay(dtStart, i),
                                           MinTemp,
                                           MaxTemp,
                                           GetIcon(Url, cbOffline.Checked)));
              end;
            end;
    
          end;
        end;
      Except
        Result.Free;
        raise;
      end;
    end;
    
    procedure TMainForm.Export(const SaveDialog: TSaveDialog; const ToPdf: boolean);
    var
      Xls: TExcelFile;
      Pdf: TFlexCelPdfExport;
      Report: TFlexCelReport;
      CityCoords: TLatLong;
      Data: String;
      CityName: String;
      Weather: TWeatherList;
    begin
      CityName := edCity.Text;
      CityCoords := GetCity(Cities, CityName);
      Data := ReadData(CityCoords, not cbOffline.Checked);
    
      if not SaveDialog.Execute then exit;
    
      Report := TFlexCelReport.Create(true);
      try
        Report.SetValue('Latitude', CityCoords.Latitude);
        Report.SetValue('Longitude', CityCoords.Longitude);
        Report.SetValue('Place', CityName);
    
        Weather := GetWeatherList(now, Data);
        try
          Report.AddTable<TWeather>('weather', Weather, TDisposeMode.DoNotDispose);
          if (ToPdf) then
          begin
            Xls := TXlsFile.Create(DataPath + 'Exporting Web Services.template.xls');
            try
              Report.Run(Xls);
              Pdf := TFlexCelPdfExport.Create(Xls, true);
              try
                Pdf.Export(SaveDialog.FileName);
              finally
                Pdf.Free;
              end;
            finally
              Xls.Free;
            end;
          end else
          begin
            Report.Run(DataPath + 'Exporting Web Services.template.xls', SaveDialog.FileName);
          end;
        finally
          Weather.Free;
        end;
      finally
        Report.Free;
      end;
    
      if MessageDlg('Do you want to open the generated file?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        ShellExecute(0, 'open', PCHAR(SaveDialog.FileName), nil, nil, SW_SHOWNORMAL);
      end;
    
    end;
    
    function TMainForm.ReadData(const CityCoords: TLatLong;
      const OnLine: Boolean): string;
    begin
      if Online then Result := ReadOnlineData(CityCoords)
      else Result := ReadOfflineData;
    end;
    
    function TMainForm.ReadOfflineData: string;
    var
      fs: TFileStream;
      b: TBytes;
    begin
      fs := TFileStream.Create(DataPath + 'OfflineData.xml', fmOpenRead);
      try
        SetLength(b, fs.Size);
        fs.Read(b[0], Length(b));
        Result := TEncoding.UTF8.GetString(b);
      finally
        fs.Free;
      end;
    
    end;
    
    function TMainForm.ReadOnlineData(const CityCoords: TLatLong): string;
    var
      nf: ndfdXMLPortType;
      dtNow: TDateTime;
      dtStart, dtEnd: TXSDateTime;
      wp: weatherParametersType;
      Lat, Long: TXSDecimal;
      Invariant: TFormatSettings;
    begin
      Invariant := GetInvariantFormat;
      dtNow := now;
      dtStart := nil;
      dtEnd := nil;
      Lat := nil;
      Long := nil;
      try
        dtStart := TXSDateTime.Create;
        dtStart.AsDateTime := dtNow;
        dtEnd := TXSDateTime.Create;
        dtEnd.AsDateTime := IncDay(dtNow, 7);
    
    
        Lat := TXSDecimal.Create;
        Lat.XSToNative(CurrToStr(CityCoords.Latitude, Invariant));
    
        Long := TXSDecimal.Create;
        Long.XSToNative(CurrToStr(CityCoords.Longitude, Invariant));
    
        nf := GetndfdXMLPortType;
        wp := weatherParametersType.Create;
        try
          Result := nf.NDFDgen(Lat, Long, productType.glance, dtStart, dtEnd, unitType.m, wp);
        finally
          wp.Free;
        end;
      finally
        dtStart.Free;
        dtEnd.Free;
        Lat.Free;
        Long.Free;
      end;
    end;
    
    end.
    

    XMLMapping.pas

    {*****************************************************************************************************************************}
    {                                                                                                                             }
    {                                                      XML Data Binding                                                       }
    {                                                                                                                             }
    {         Generated on: 25/09/2014 23:11:50                                                                                   }
    {       Generated from: http://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd                                              }
    {                                                                                                                             }
    {*****************************************************************************************************************************}
    
    unit XMLMapping;
    
    interface
    
    uses xmldom, XMLDoc, XMLIntf;
    
    type
    
    { Forward Decls }
    
      IXMLDwml = interface;
      IXMLHeadType = interface;
      IXMLProductType = interface;
      IXMLCreationdateType = interface;
      IXMLSourceType = interface;
      IXMLProductioncenterType = interface;
      IXMLDataType = interface;
      IXMLDataTypeList = interface;
      IXMLLocationType = interface;
      IXMLLocationTypeList = interface;
      IXMLPointType = interface;
      IXMLNwszoneType = interface;
      IXMLAreaType = interface;
      IXMLCircleType = interface;
      IXMLRadiusType = interface;
      IXMLRectangleType = interface;
      IXMLCityType = interface;
      IXMLHeightType = interface;
      IXMLLevelType = interface;
      IXMLLayerType = interface;
      IXMLMoreWeatherInformationType = interface;
      IXMLMoreWeatherInformationTypeList = interface;
      IXMLTimelayoutElementType = interface;
      IXMLTimelayoutElementTypeList = interface;
      IXMLStartvalidtimeType = interface;
      IXMLStartvalidtimeTypeList = interface;
      IXMLParametersType = interface;
      IXMLParametersTypeList = interface;
      IXMLCategoriesType = interface;
      IXMLCategoriesTypeList = interface;
      IXMLValueListType = interface;
      IXMLValueListTypeList = interface;
      IXMLTemperature = interface;
      IXMLTemperatureList = interface;
      IXMLTempValType = interface;
      IXMLTempValTypeList = interface;
      IXMLValueWithUncertainty = interface;
      IXMLValueWithUncertaintyList = interface;
      IXMLUncertaintyType = interface;
      IXMLError = interface;
      IXMLPrecipitation = interface;
      IXMLPrecipitationList = interface;
      IXMLDecimalValType = interface;
      IXMLDecimalValTypeList = interface;
      IXMLProbabilityofprecipitation = interface;
      IXMLProbabilityofprecipitationList = interface;
      IXMLPercentageValType = interface;
      IXMLPercentageValTypeList = interface;
      IXMLFireweather = interface;
      IXMLFireweatherList = interface;
      IXMLConvectivehazard = interface;
      IXMLConvectivehazardList = interface;
      IXMLOutlook = interface;
      IXMLSeverecomponent = interface;
      IXMLSeverecomponentList = interface;
      IXMLValue = interface;
      IXMLValueList = interface;
      IXMLClimateanomaly = interface;
      IXMLClimateanomalyList = interface;
      IXMLAnomalyType = interface;
      IXMLAnomalyTypeList = interface;
      IXMLWindspeed = interface;
      IXMLWindspeedList = interface;
      IXMLWspdValType = interface;
      IXMLWspdValTypeList = interface;
      IXMLDirection = interface;
      IXMLDirectionList = interface;
      IXMLWdirValType = interface;
      IXMLWdirValTypeList = interface;
      IXMLCloudamount = interface;
      IXMLCloudamountList = interface;
      IXMLHumidity = interface;
      IXMLHumidityList = interface;
      IXMLWeather = interface;
      IXMLWeatherList = interface;
      IXMLWeatherconditions = interface;
      IXMLWeatherconditionsList = interface;
      IXMLConditionsicon = interface;
      IXMLConditionsiconList = interface;
      IXMLHazards = interface;
      IXMLHazardsList = interface;
      IXMLHazardconditions = interface;
      IXMLHazardconditionsList = interface;
      IXMLHazard = interface;
      IXMLWordedForecast = interface;
      IXMLPressure = interface;
      IXMLPressureList = interface;
      IXMLProbabilisticCondition = interface;
      IXMLProbabilisticConditionList = interface;
      IXMLValueForRangeType = interface;
      IXMLValueForRangeTypeList = interface;
      IXMLWaterstate = interface;
      IXMLWaterstateList = interface;
      IXMLWaves = interface;
      IXMLWavesList = interface;
      IXMLSwell = interface;
      IXMLSwellList = interface;
      IXMLSeas = interface;
      IXMLSeasList = interface;
      IXMLNonNegativeIntegerList = interface;
      IXMLDateTimeList = interface;
      IXMLAnyURIList = interface;
      IXMLString_List = interface;
    
    { IXMLDwml }
    
      IXMLDwml = interface(IXMLNode)
        ['{E2FA236E-2095-4A07-B755-5B9EF9F502C3}']
        { Property Accessors }
        function Get_Version: UnicodeString;
        function Get_Head: IXMLHeadType;
        function Get_Data: IXMLDataTypeList;
        function Get_MinResolution: UnicodeString;
        function Get_LatLonList: UnicodeString;
        function Get_CityNameList: UnicodeString;
        procedure Set_Version(Value: UnicodeString);
        procedure Set_MinResolution(Value: UnicodeString);
        procedure Set_LatLonList(Value: UnicodeString);
        procedure Set_CityNameList(Value: UnicodeString);
        { Methods & Properties }
        property Version: UnicodeString read Get_Version write Set_Version;
        property Head: IXMLHeadType read Get_Head;
        property Data: IXMLDataTypeList read Get_Data;
        property MinResolution: UnicodeString read Get_MinResolution write Set_MinResolution;
        property LatLonList: UnicodeString read Get_LatLonList write Set_LatLonList;
        property CityNameList: UnicodeString read Get_CityNameList write Set_CityNameList;
      end;
    
    { IXMLHeadType }
    
      IXMLHeadType = interface(IXMLNode)
        ['{49A96FB4-A869-43F0-A89C-678B20B90563}']
        { Property Accessors }
        function Get_Product: IXMLProductType;
        function Get_Source: IXMLSourceType;
        { Methods & Properties }
        property Product: IXMLProductType read Get_Product;
        property Source: IXMLSourceType read Get_Source;
      end;
    
    { IXMLProductType }
    
      IXMLProductType = interface(IXMLNode)
        ['{C53D23ED-40C7-4F42-AFB3-E46CA1AA2F2E}']
        { Property Accessors }
        function Get_Concisename: UnicodeString;
        function Get_Operationalmode: UnicodeString;
        function Get_SrsName: UnicodeString;
        function Get_Title: UnicodeString;
        function Get_Field: UnicodeString;
        function Get_Category: UnicodeString;
        function Get_Creationdate: IXMLCreationdateType;
        procedure Set_Concisename(Value: UnicodeString);
        procedure Set_Operationalmode(Value: UnicodeString);
        procedure Set_SrsName(Value: UnicodeString);
        procedure Set_Title(Value: UnicodeString);
        procedure Set_Field(Value: UnicodeString);
        procedure Set_Category(Value: UnicodeString);
        { Methods & Properties }
        property Concisename: UnicodeString read Get_Concisename write Set_Concisename;
        property Operationalmode: UnicodeString read Get_Operationalmode write Set_Operationalmode;
        property SrsName: UnicodeString read Get_SrsName write Set_SrsName;
        property Title: UnicodeString read Get_Title write Set_Title;
        property Field: UnicodeString read Get_Field write Set_Field;
        property Category: UnicodeString read Get_Category write Set_Category;
        property Creationdate: IXMLCreationdateType read Get_Creationdate;
      end;
    
    { IXMLCreationdateType }
    
      IXMLCreationdateType = interface(IXMLNode)
        ['{298426AA-5763-4682-81C9-ED38796884CB}']
        { Property Accessors }
        function Get_Refreshfrequency: UnicodeString;
        procedure Set_Refreshfrequency(Value: UnicodeString);
        { Methods & Properties }
        property Refreshfrequency: UnicodeString read Get_Refreshfrequency write Set_Refreshfrequency;
      end;
    
    { IXMLSourceType }
    
      IXMLSourceType = interface(IXMLNode)
        ['{B59A0976-F9B8-4BE5-A049-1F01A79739EA}']
        { Property Accessors }
        function Get_Moreinformation: UnicodeString;
        function Get_Productioncenter: IXMLProductioncenterType;
        function Get_Disclaimer: UnicodeString;
        function Get_Credit: UnicodeString;
        function Get_Creditlogo: UnicodeString;
        function Get_Feedback: UnicodeString;
        procedure Set_Moreinformation(Value: UnicodeString);
        procedure Set_Disclaimer(Value: UnicodeString);
        procedure Set_Credit(Value: UnicodeString);
        procedure Set_Creditlogo(Value: UnicodeString);
        procedure Set_Feedback(Value: UnicodeString);
        { Methods & Properties }
        property Moreinformation: UnicodeString read Get_Moreinformation write Set_Moreinformation;
        property Productioncenter: IXMLProductioncenterType read Get_Productioncenter;
        property Disclaimer: UnicodeString read Get_Disclaimer write Set_Disclaimer;
        property Credit: UnicodeString read Get_Credit write Set_Credit;
        property Creditlogo: UnicodeString read Get_Creditlogo write Set_Creditlogo;
        property Feedback: UnicodeString read Get_Feedback write Set_Feedback;
      end;
    
    { IXMLProductioncenterType }
    
      IXMLProductioncenterType = interface(IXMLNode)
        ['{074FA7D0-9D66-4209-963C-DF50DB30AB13}']
        { Property Accessors }
        function Get_Subcenter: UnicodeString;
        procedure Set_Subcenter(Value: UnicodeString);
        { Methods & Properties }
        property Subcenter: UnicodeString read Get_Subcenter write Set_Subcenter;
      end;
    
    { IXMLDataType }
    
      IXMLDataType = interface(IXMLNode)
        ['{A3A07AA7-B64C-4A78-81AC-C8DAD6A266A8}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Location: IXMLLocationTypeList;
        function Get_MoreWeatherInformation: IXMLMoreWeatherInformationTypeList;
        function Get_Timelayout: IXMLTimelayoutElementTypeList;
        function Get_Parameters: IXMLParametersTypeList;
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Location: IXMLLocationTypeList read Get_Location;
        property MoreWeatherInformation: IXMLMoreWeatherInformationTypeList read Get_MoreWeatherInformation;
        property Timelayout: IXMLTimelayoutElementTypeList read Get_Timelayout;
        property Parameters: IXMLParametersTypeList read Get_Parameters;
      end;
    
    { IXMLDataTypeList }
    
      IXMLDataTypeList = interface(IXMLNodeCollection)
        ['{3CE23E73-3851-470E-B22A-33743DAF015B}']
        { Methods & Properties }
        function Add: IXMLDataType;
        function Insert(const Index: Integer): IXMLDataType;
    
        function Get_Item(Index: Integer): IXMLDataType;
        property Items[Index: Integer]: IXMLDataType read Get_Item; default;
      end;
    
    { IXMLLocationType }
    
      IXMLLocationType = interface(IXMLNode)
        ['{A47559A0-CEA0-415E-BE00-783BFCEA08F2}']
        { Property Accessors }
        function Get_Locationkey: UnicodeString;
        function Get_Description: UnicodeString;
        function Get_Point: IXMLPointType;
        function Get_Nwszone: IXMLNwszoneType;
        function Get_Area: IXMLAreaType;
        function Get_City: IXMLCityType;
        function Get_Areadescription: UnicodeString;
        function Get_Height: IXMLHeightType;
        function Get_Level: IXMLLevelType;
        function Get_Layer: IXMLLayerType;
        procedure Set_Locationkey(Value: UnicodeString);
        procedure Set_Description(Value: UnicodeString);
        procedure Set_Areadescription(Value: UnicodeString);
        { Methods & Properties }
        property Locationkey: UnicodeString read Get_Locationkey write Set_Locationkey;
        property Description: UnicodeString read Get_Description write Set_Description;
        property Point: IXMLPointType read Get_Point;
        property Nwszone: IXMLNwszoneType read Get_Nwszone;
        property Area: IXMLAreaType read Get_Area;
        property City: IXMLCityType read Get_City;
        property Areadescription: UnicodeString read Get_Areadescription write Set_Areadescription;
        property Height: IXMLHeightType read Get_Height;
        property Level: IXMLLevelType read Get_Level;
        property Layer: IXMLLayerType read Get_Layer;
      end;
    
    { IXMLLocationTypeList }
    
      IXMLLocationTypeList = interface(IXMLNodeCollection)
        ['{56EF8DD3-A574-40F5-905C-F4B7C4F86979}']
        { Methods & Properties }
        function Add: IXMLLocationType;
        function Insert(const Index: Integer): IXMLLocationType;
    
        function Get_Item(Index: Integer): IXMLLocationType;
        property Items[Index: Integer]: IXMLLocationType read Get_Item; default;
      end;
    
    { IXMLPointType }
    
      IXMLPointType = interface(IXMLNode)
        ['{E22CB1AE-B403-4C3A-A2B7-FED9027D062D}']
        { Property Accessors }
        function Get_Latitude: UnicodeString;
        function Get_Longitude: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_Latitude(Value: UnicodeString);
        procedure Set_Longitude(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
        { Methods & Properties }
        property Latitude: UnicodeString read Get_Latitude write Set_Latitude;
        property Longitude: UnicodeString read Get_Longitude write Set_Longitude;
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
      end;
    
    { IXMLNwszoneType }
    
      IXMLNwszoneType = interface(IXMLNode)
        ['{F4A7A734-43CD-4E02-A036-25B2FDBB5119}']
        { Property Accessors }
        function Get_State: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_State(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
        { Methods & Properties }
        property State: UnicodeString read Get_State write Set_State;
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
      end;
    
    { IXMLAreaType }
    
      IXMLAreaType = interface(IXMLNode)
        ['{F604E0F9-9C8E-438E-8505-5AA606C61728}']
        { Property Accessors }
        function Get_Areatype: UnicodeString;
        function Get_Circle: IXMLCircleType;
        function Get_Rectangle: IXMLRectangleType;
        procedure Set_Areatype(Value: UnicodeString);
        { Methods & Properties }
        property Areatype: UnicodeString read Get_Areatype write Set_Areatype;
        property Circle: IXMLCircleType read Get_Circle;
        property Rectangle: IXMLRectangleType read Get_Rectangle;
      end;
    
    { IXMLCircleType }
    
      IXMLCircleType = interface(IXMLNode)
        ['{7F094A52-BB6D-457F-81E0-35A13D0F3B4B}']
        { Property Accessors }
        function Get_Summarization: UnicodeString;
        function Get_Point: IXMLPointType;
        function Get_Radius: IXMLRadiusType;
        procedure Set_Summarization(Value: UnicodeString);
        { Methods & Properties }
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
        property Point: IXMLPointType read Get_Point;
        property Radius: IXMLRadiusType read Get_Radius;
      end;
    
    { IXMLRadiusType }
    
      IXMLRadiusType = interface(IXMLNode)
        ['{8113FF8E-9F22-4F18-8E6F-56A38E7F3811}']
        { Property Accessors }
        function Get_Radiusunits: UnicodeString;
        procedure Set_Radiusunits(Value: UnicodeString);
        { Methods & Properties }
        property Radiusunits: UnicodeString read Get_Radiusunits write Set_Radiusunits;
      end;
    
    { IXMLRectangleType }
    
      IXMLRectangleType = interface(IXMLNodeCollection)
        ['{93F85AA2-4466-4D09-B6ED-4CCBD2220559}']
        { Property Accessors }
        function Get_Summarization: UnicodeString;
        function Get_Point(Index: Integer): IXMLPointType;
        procedure Set_Summarization(Value: UnicodeString);
        { Methods & Properties }
        function Add: IXMLPointType;
        function Insert(const Index: Integer): IXMLPointType;
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
        property Point[Index: Integer]: IXMLPointType read Get_Point; default;
      end;
    
    { IXMLCityType }
    
      IXMLCityType = interface(IXMLNode)
        ['{E4150AE8-0D4E-463E-B4AF-2A190173E87B}']
        { Property Accessors }
        function Get_State: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_State(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
        { Methods & Properties }
        property State: UnicodeString read Get_State write Set_State;
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
      end;
    
    { IXMLHeightType }
    
      IXMLHeightType = interface(IXMLNode)
        ['{2F6C61DE-A1A9-4D2A-B043-3A1BC35121C1}']
        { Property Accessors }
        function Get_Datum: UnicodeString;
        function Get_Heightunits: UnicodeString;
        procedure Set_Datum(Value: UnicodeString);
        procedure Set_Heightunits(Value: UnicodeString);
        { Methods & Properties }
        property Datum: UnicodeString read Get_Datum write Set_Datum;
        property Heightunits: UnicodeString read Get_Heightunits write Set_Heightunits;
      end;
    
    { IXMLLevelType }
    
      IXMLLevelType = interface(IXMLNode)
        ['{8AB3896F-43A5-425E-8814-75CA30D08BE1}']
        { Property Accessors }
        function Get_Verticalcoordinate: UnicodeString;
        procedure Set_Verticalcoordinate(Value: UnicodeString);
        { Methods & Properties }
        property Verticalcoordinate: UnicodeString read Get_Verticalcoordinate write Set_Verticalcoordinate;
      end;
    
    { IXMLLayerType }
    
      IXMLLayerType = interface(IXMLNode)
        ['{89B97DC3-0B05-4C56-81CD-5E1A9E6E3675}']
        { Property Accessors }
        function Get_Verticalcoordinate: UnicodeString;
        procedure Set_Verticalcoordinate(Value: UnicodeString);
        { Methods & Properties }
        property Verticalcoordinate: UnicodeString read Get_Verticalcoordinate write Set_Verticalcoordinate;
      end;
    
    { IXMLMoreWeatherInformationType }
    
      IXMLMoreWeatherInformationType = interface(IXMLNode)
        ['{6330AEA8-C7BA-44C8-B252-1E5925B5E3F5}']
        { Property Accessors }
        function Get_Applicablelocation: UnicodeString;
        procedure Set_Applicablelocation(Value: UnicodeString);
        { Methods & Properties }
        property Applicablelocation: UnicodeString read Get_Applicablelocation write Set_Applicablelocation;
      end;
    
    { IXMLMoreWeatherInformationTypeList }
    
      IXMLMoreWeatherInformationTypeList = interface(IXMLNodeCollection)
        ['{A039DFDD-9176-4878-AB30-9174CA2C23B4}']
        { Methods & Properties }
        function Add: IXMLMoreWeatherInformationType;
        function Insert(const Index: Integer): IXMLMoreWeatherInformationType;
    
        function Get_Item(Index: Integer): IXMLMoreWeatherInformationType;
        property Items[Index: Integer]: IXMLMoreWeatherInformationType read Get_Item; default;
      end;
    
    { IXMLTimelayoutElementType }
    
      IXMLTimelayoutElementType = interface(IXMLNode)
        ['{25C3A58B-2141-4344-8AE8-1E20C5DBA950}']
        { Property Accessors }
        function Get_Timecoordinate: UnicodeString;
        function Get_Summarization: UnicodeString;
        function Get_Layoutkey: UnicodeString;
        function Get_Startvalidtime: IXMLStartvalidtimeTypeList;
        function Get_Endvalidtime: IXMLDateTimeList;
        procedure Set_Timecoordinate(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
        procedure Set_Layoutkey(Value: UnicodeString);
        { Methods & Properties }
        property Timecoordinate: UnicodeString read Get_Timecoordinate write Set_Timecoordinate;
        property Summarization: UnicodeString read Get_Summarization write Set_Summarization;
        property Layoutkey: UnicodeString read Get_Layoutkey write Set_Layoutkey;
        property Startvalidtime: IXMLStartvalidtimeTypeList read Get_Startvalidtime;
        property Endvalidtime: IXMLDateTimeList read Get_Endvalidtime;
      end;
    
    { IXMLTimelayoutElementTypeList }
    
      IXMLTimelayoutElementTypeList = interface(IXMLNodeCollection)
        ['{9208F31D-5150-4041-A61F-C43923DD24AF}']
        { Methods & Properties }
        function Add: IXMLTimelayoutElementType;
        function Insert(const Index: Integer): IXMLTimelayoutElementType;
    
        function Get_Item(Index: Integer): IXMLTimelayoutElementType;
        property Items[Index: Integer]: IXMLTimelayoutElementType read Get_Item; default;
      end;
    
    { IXMLStartvalidtimeType }
    
      IXMLStartvalidtimeType = interface(IXMLNode)
        ['{2168E6E5-FB41-436C-A3CB-F30FF4458AC4}']
        { Property Accessors }
        function Get_Periodname: UnicodeString;
        procedure Set_Periodname(Value: UnicodeString);
        { Methods & Properties }
        property Periodname: UnicodeString read Get_Periodname write Set_Periodname;
      end;
    
    { IXMLStartvalidtimeTypeList }
    
      IXMLStartvalidtimeTypeList = interface(IXMLNodeCollection)
        ['{6F062C79-EB7F-4B14-B489-C542AD481C07}']
        { Methods & Properties }
        function Add: IXMLStartvalidtimeType;
        function Insert(const Index: Integer): IXMLStartvalidtimeType;
    
        function Get_Item(Index: Integer): IXMLStartvalidtimeType;
        property Items[Index: Integer]: IXMLStartvalidtimeType read Get_Item; default;
      end;
    
    { IXMLParametersType }
    
      IXMLParametersType = interface(IXMLNode)
        ['{3979E775-2545-46A5-A147-5906A336FDB4}']
        { Property Accessors }
        function Get_Applicablelocation: UnicodeString;
        function Get_Categories: IXMLCategoriesTypeList;
        function Get_Temperature: IXMLTemperatureList;
        function Get_Precipitation: IXMLPrecipitationList;
        function Get_Probabilityofprecipitation: IXMLProbabilityofprecipitationList;
        function Get_Fireweather: IXMLFireweatherList;
        function Get_Convectivehazard: IXMLConvectivehazardList;
        function Get_Climateanomaly: IXMLClimateanomalyList;
        function Get_Windspeed: IXMLWindspeedList;
        function Get_Direction: IXMLDirectionList;
        function Get_Cloudamount: IXMLCloudamountList;
        function Get_Humidity: IXMLHumidityList;
        function Get_Weather: IXMLWeatherList;
        function Get_Conditionsicon: IXMLConditionsiconList;
        function Get_Hazards: IXMLHazardsList;
        function Get_WordedForecast: IXMLWordedForecast;
        function Get_Pressure: IXMLPressureList;
        function Get_ProbabilisticCondition: IXMLProbabilisticConditionList;
        function Get_Waterstate: IXMLWaterstateList;
        procedure Set_Applicablelocation(Value: UnicodeString);
        { Methods & Properties }
        property Applicablelocation: UnicodeString read Get_Applicablelocation write Set_Applicablelocation;
        property Categories: IXMLCategoriesTypeList read Get_Categories;
        property Temperature: IXMLTemperatureList read Get_Temperature;
        property Precipitation: IXMLPrecipitationList read Get_Precipitation;
        property Probabilityofprecipitation: IXMLProbabilityofprecipitationList read Get_Probabilityofprecipitation;
        property Fireweather: IXMLFireweatherList read Get_Fireweather;
        property Convectivehazard: IXMLConvectivehazardList read Get_Convectivehazard;
        property Climateanomaly: IXMLClimateanomalyList read Get_Climateanomaly;
        property Windspeed: IXMLWindspeedList read Get_Windspeed;
        property Direction: IXMLDirectionList read Get_Direction;
        property Cloudamount: IXMLCloudamountList read Get_Cloudamount;
        property Humidity: IXMLHumidityList read Get_Humidity;
        property Weather: IXMLWeatherList read Get_Weather;
        property Conditionsicon: IXMLConditionsiconList read Get_Conditionsicon;
        property Hazards: IXMLHazardsList read Get_Hazards;
        property WordedForecast: IXMLWordedForecast read Get_WordedForecast;
        property Pressure: IXMLPressureList read Get_Pressure;
        property ProbabilisticCondition: IXMLProbabilisticConditionList read Get_ProbabilisticCondition;
        property Waterstate: IXMLWaterstateList read Get_Waterstate;
      end;
    
    { IXMLParametersTypeList }
    
      IXMLParametersTypeList = interface(IXMLNodeCollection)
        ['{774E83F2-E0C6-41E9-AFAF-61D3D14C39CB}']
        { Methods & Properties }
        function Add: IXMLParametersType;
        function Insert(const Index: Integer): IXMLParametersType;
    
        function Get_Item(Index: Integer): IXMLParametersType;
        property Items[Index: Integer]: IXMLParametersType read Get_Item; default;
      end;
    
    { IXMLCategoriesType }
    
      IXMLCategoriesType = interface(IXMLNode)
        ['{D6F637A6-6A5D-4BC8-BA9C-545BBE17CFDD}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Categorieskey: UnicodeString;
        function Get_ValueList: IXMLValueListType;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        procedure Set_Categorieskey(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Probabilitytype: UnicodeString read Get_Probabilitytype write Set_Probabilitytype;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Categorieskey: UnicodeString read Get_Categorieskey write Set_Categorieskey;
        property ValueList: IXMLValueListType read Get_ValueList;
      end;
    
    { IXMLCategoriesTypeList }
    
      IXMLCategoriesTypeList = interface(IXMLNodeCollection)
        ['{27864505-4C68-4E84-B3D8-3461F4821702}']
        { Methods & Properties }
        function Add: IXMLCategoriesType;
        function Insert(const Index: Integer): IXMLCategoriesType;
    
        function Get_Item(Index: Integer): IXMLCategoriesType;
        property Items[Index: Integer]: IXMLCategoriesType read Get_Item; default;
      end;
    
    { IXMLValueListType }
    
      IXMLValueListType = interface(IXMLNode)
        ['{2FEC65A6-4003-4F63-A899-F9E86751A5C8}']
        { Property Accessors }
        function Get_Median: UnicodeString;
        function Get_ConfidenceInterval50: UnicodeString;
        function Get_ConfidenceInterval80: UnicodeString;
        function Get_Skew80: UnicodeString;
        procedure Set_Median(Value: UnicodeString);
        procedure Set_ConfidenceInterval50(Value: UnicodeString);
        procedure Set_ConfidenceInterval80(Value: UnicodeString);
        procedure Set_Skew80(Value: UnicodeString);
        { Methods & Properties }
        property Median: UnicodeString read Get_Median write Set_Median;
        property ConfidenceInterval50: UnicodeString read Get_ConfidenceInterval50 write Set_ConfidenceInterval50;
        property ConfidenceInterval80: UnicodeString read Get_ConfidenceInterval80 write Set_ConfidenceInterval80;
        property Skew80: UnicodeString read Get_Skew80 write Set_Skew80;
      end;
    
    { IXMLValueListTypeList }
    
      IXMLValueListTypeList = interface(IXMLNodeCollection)
        ['{51D51DBF-84B1-4BA3-975A-624BAF4A76BF}']
        { Methods & Properties }
        function Add: IXMLValueListType;
        function Insert(const Index: Integer): IXMLValueListType;
    
        function Get_Item(Index: Integer): IXMLValueListType;
        property Items[Index: Integer]: IXMLValueListType read Get_Item; default;
      end;
    
    { IXMLTemperature }
    
      IXMLTemperature = interface(IXMLNode)
        ['{2639DD19-20A7-4468-88B8-DB5BE94B97F0}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLTempValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property LikelihoodUnits: UnicodeString read Get_LikelihoodUnits write Set_LikelihoodUnits;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Applicablecategories: UnicodeString read Get_Applicablecategories write Set_Applicablecategories;
        property Probabilitytype: UnicodeString read Get_Probabilitytype write Set_Probabilitytype;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLTempValTypeList read Get_Value;
        property ValueList: IXMLValueListTypeList read Get_ValueList;
        property ValueWithUncertainty: IXMLValueWithUncertaintyList read Get_ValueWithUncertainty;
      end;
    
    { IXMLTemperatureList }
    
      IXMLTemperatureList = interface(IXMLNodeCollection)
        ['{948DABB9-E2C2-4FE8-9CA5-7F90C301DC62}']
        { Methods & Properties }
        function Add: IXMLTemperature;
        function Insert(const Index: Integer): IXMLTemperature;
    
        function Get_Item(Index: Integer): IXMLTemperature;
        property Items[Index: Integer]: IXMLTemperature read Get_Item; default;
      end;
    
    { IXMLTempValType }
    
      IXMLTempValType = interface(IXMLNode)
        ['{F205CEDA-1353-4248-9E2B-A9CEC528FC8A}']
        { Property Accessors }
        function Get_Upperrange: Integer;
        function Get_Lowerrange: Integer;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: Integer);
        procedure Set_Lowerrange(Value: Integer);
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Upperrange: Integer read Get_Upperrange write Set_Upperrange;
        property Lowerrange: Integer read Get_Lowerrange write Set_Lowerrange;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
      end;
    
    { IXMLTempValTypeList }
    
      IXMLTempValTypeList = interface(IXMLNodeCollection)
        ['{AF4660AD-0732-490A-9F60-7213AE03548B}']
        { Methods & Properties }
        function Add: IXMLTempValType;
        function Insert(const Index: Integer): IXMLTempValType;
    
        function Get_Item(Index: Integer): IXMLTempValType;
        property Items[Index: Integer]: IXMLTempValType read Get_Item; default;
      end;
    
    { IXMLValueWithUncertainty }
    
      IXMLValueWithUncertainty = interface(IXMLNode)
        ['{95BCCDC0-A5A1-4757-9714-B0F098527BBF}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Value: IXMLTempValType;
        function Get_Uncertainty: IXMLUncertaintyType;
        function Get_NumberWithEquality: UnicodeString;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_NumberWithEquality(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Value: IXMLTempValType read Get_Value;
        property Uncertainty: IXMLUncertaintyType read Get_Uncertainty;
        property NumberWithEquality: UnicodeString read Get_NumberWithEquality write Set_NumberWithEquality;
      end;
    
    { IXMLValueWithUncertaintyList }
    
      IXMLValueWithUncertaintyList = interface(IXMLNodeCollection)
        ['{BBA2FF18-91B3-4A67-AD36-9C26829EA4CD}']
        { Methods & Properties }
        function Add: IXMLValueWithUncertainty;
        function Insert(const Index: Integer): IXMLValueWithUncertainty;
    
        function Get_Item(Index: Integer): IXMLValueWithUncertainty;
        property Items[Index: Integer]: IXMLValueWithUncertainty read Get_Item; default;
      end;
    
    { IXMLUncertaintyType }
    
      IXMLUncertaintyType = interface(IXMLNode)
        ['{EBC6D20E-F28D-4D26-B0A1-4F016C0B0057}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Error: IXMLError;
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Error: IXMLError read Get_Error;
      end;
    
    { IXMLError }
    
      IXMLError = interface(IXMLNode)
        ['{3322E9EA-3C48-4C25-AAFC-49EE68AA405C}']
        { Property Accessors }
        function Get_Qualifier: UnicodeString;
        procedure Set_Qualifier(Value: UnicodeString);
        { Methods & Properties }
        property Qualifier: UnicodeString read Get_Qualifier write Set_Qualifier;
      end;
    
    { IXMLPrecipitation }
    
      IXMLPrecipitation = interface(IXMLNode)
        ['{534400A7-4778-46FE-846A-DD576A965FE2}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLDecimalValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property LikelihoodUnits: UnicodeString read Get_LikelihoodUnits write Set_LikelihoodUnits;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Probabilitytype: UnicodeString read Get_Probabilitytype write Set_Probabilitytype;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLDecimalValTypeList read Get_Value;
        property ValueList: IXMLValueListTypeList read Get_ValueList;
        property ValueWithUncertainty: IXMLValueWithUncertaintyList read Get_ValueWithUncertainty;
      end;
    
    { IXMLPrecipitationList }
    
      IXMLPrecipitationList = interface(IXMLNodeCollection)
        ['{4AD8B55B-5148-4F35-9051-72DB33F3D90B}']
        { Methods & Properties }
        function Add: IXMLPrecipitation;
        function Insert(const Index: Integer): IXMLPrecipitation;
    
        function Get_Item(Index: Integer): IXMLPrecipitation;
        property Items[Index: Integer]: IXMLPrecipitation read Get_Item; default;
      end;
    
    { IXMLDecimalValType }
    
      IXMLDecimalValType = interface(IXMLNode)
        ['{6B812AA1-D328-4EF3-AB8B-4996C74D4579}']
        { Property Accessors }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Upperrange: LongWord read Get_Upperrange write Set_Upperrange;
        property Lowerrange: LongWord read Get_Lowerrange write Set_Lowerrange;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
      end;
    
    { IXMLDecimalValTypeList }
    
      IXMLDecimalValTypeList = interface(IXMLNodeCollection)
        ['{90C97817-D880-4BA8-A713-7E928718FFD5}']
        { Methods & Properties }
        function Add: IXMLDecimalValType;
        function Insert(const Index: Integer): IXMLDecimalValType;
    
        function Get_Item(Index: Integer): IXMLDecimalValType;
        property Items[Index: Integer]: IXMLDecimalValType read Get_Item; default;
      end;
    
    { IXMLProbabilityofprecipitation }
    
      IXMLProbabilityofprecipitation = interface(IXMLNode)
        ['{9824090F-3202-4A96-AD04-1B22FAD3DC2B}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property LikelihoodUnits: UnicodeString read Get_LikelihoodUnits write Set_LikelihoodUnits;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Applicablecategories: UnicodeString read Get_Applicablecategories write Set_Applicablecategories;
        property Probabilitytype: UnicodeString read Get_Probabilitytype write Set_Probabilitytype;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLPercentageValTypeList read Get_Value;
        property ValueList: IXMLValueListTypeList read Get_ValueList;
      end;
    
    { IXMLProbabilityofprecipitationList }
    
      IXMLProbabilityofprecipitationList = interface(IXMLNodeCollection)
        ['{46275599-309E-48FF-90E8-DEB126362061}']
        { Methods & Properties }
        function Add: IXMLProbabilityofprecipitation;
        function Insert(const Index: Integer): IXMLProbabilityofprecipitation;
    
        function Get_Item(Index: Integer): IXMLProbabilityofprecipitation;
        property Items[Index: Integer]: IXMLProbabilityofprecipitation read Get_Item; default;
      end;
    
    { IXMLPercentageValType }
    
      IXMLPercentageValType = interface(IXMLNode)
        ['{2FA7992E-BCC4-466F-8F2D-A7892BA0D107}']
        { Property Accessors }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Upperrange: LongWord read Get_Upperrange write Set_Upperrange;
        property Lowerrange: LongWord read Get_Lowerrange write Set_Lowerrange;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
      end;
    
    { IXMLPercentageValTypeList }
    
      IXMLPercentageValTypeList = interface(IXMLNodeCollection)
        ['{C1203563-393E-49BE-A7CF-21C55EAF55FA}']
        { Methods & Properties }
        function Add: IXMLPercentageValType;
        function Insert(const Index: Integer): IXMLPercentageValType;
    
        function Get_Item(Index: Integer): IXMLPercentageValType;
        property Items[Index: Integer]: IXMLPercentageValType read Get_Item; default;
      end;
    
    { IXMLFireweather }
    
      IXMLFireweather = interface(IXMLNode)
        ['{C7B5959A-CF8D-4212-9C9C-412ECE3C76AA}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLValueList read Get_Value;
      end;
    
    { IXMLFireweatherList }
    
      IXMLFireweatherList = interface(IXMLNodeCollection)
        ['{B08CCAFC-B134-4F36-9F6E-3B957A431224}']
        { Methods & Properties }
        function Add: IXMLFireweather;
        function Insert(const Index: Integer): IXMLFireweather;
    
        function Get_Item(Index: Integer): IXMLFireweather;
        property Items[Index: Integer]: IXMLFireweather read Get_Item; default;
      end;
    
    { IXMLConvectivehazard }
    
      IXMLConvectivehazard = interface(IXMLNode)
        ['{28901AD9-97C5-47CA-BC52-558D51B5676C}']
        { Property Accessors }
        function Get_Outlook: IXMLOutlook;
        function Get_Severecomponent: IXMLSeverecomponentList;
        { Methods & Properties }
        property Outlook: IXMLOutlook read Get_Outlook;
        property Severecomponent: IXMLSeverecomponentList read Get_Severecomponent;
      end;
    
    { IXMLConvectivehazardList }
    
      IXMLConvectivehazardList = interface(IXMLNodeCollection)
        ['{7C2E2EBC-CCEF-4E14-9ECE-12BD87BD2081}']
        { Methods & Properties }
        function Add: IXMLConvectivehazard;
        function Insert(const Index: Integer): IXMLConvectivehazard;
    
        function Get_Item(Index: Integer): IXMLConvectivehazard;
        property Items[Index: Integer]: IXMLConvectivehazard read Get_Item; default;
      end;
    
    { IXMLOutlook }
    
      IXMLOutlook = interface(IXMLNode)
        ['{D96F8826-11E1-4104-B759-7AD99A6FF80C}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLValueList read Get_Value;
      end;
    
    { IXMLSeverecomponent }
    
      IXMLSeverecomponent = interface(IXMLNode)
        ['{45296031-B2C2-4320-B709-8CBB47676BC4}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLValueList read Get_Value;
      end;
    
    { IXMLSeverecomponentList }
    
      IXMLSeverecomponentList = interface(IXMLNodeCollection)
        ['{07CF13A1-438F-43C1-89EB-FF817D15B0F1}']
        { Methods & Properties }
        function Add: IXMLSeverecomponent;
        function Insert(const Index: Integer): IXMLSeverecomponent;
    
        function Get_Item(Index: Integer): IXMLSeverecomponent;
        property Items[Index: Integer]: IXMLSeverecomponent read Get_Item; default;
      end;
    
    { IXMLValue }
    
      IXMLValue = interface(IXMLNode)
        ['{9928FCE8-328C-4AE4-8955-1F3543274046}']
        { Property Accessors }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        { Methods & Properties }
        property Upperrange: LongWord read Get_Upperrange write Set_Upperrange;
        property Lowerrange: LongWord read Get_Lowerrange write Set_Lowerrange;
      end;
    
    { IXMLValueList }
    
      IXMLValueList = interface(IXMLNodeCollection)
        ['{56314207-9B68-4E3E-BDB8-F3B14882FD23}']
        { Methods & Properties }
        function Add: IXMLValue;
        function Insert(const Index: Integer): IXMLValue;
    
        function Get_Item(Index: Integer): IXMLValue;
        property Items[Index: Integer]: IXMLValue read Get_Item; default;
      end;
    
    { IXMLClimateanomaly }
    
      IXMLClimateanomaly = interface(IXMLNode)
        ['{415CD271-9278-447A-9875-286ED1C6DB7B}']
        { Property Accessors }
        function Get_Weekly: IXMLAnomalyTypeList;
        function Get_Monthly: IXMLAnomalyTypeList;
        function Get_Seasonal: IXMLAnomalyTypeList;
        { Methods & Properties }
        property Weekly: IXMLAnomalyTypeList read Get_Weekly;
        property Monthly: IXMLAnomalyTypeList read Get_Monthly;
        property Seasonal: IXMLAnomalyTypeList read Get_Seasonal;
      end;
    
    { IXMLClimateanomalyList }
    
      IXMLClimateanomalyList = interface(IXMLNodeCollection)
        ['{9397D81D-530E-4F42-84E7-23C9CF582D75}']
        { Methods & Properties }
        function Add: IXMLClimateanomaly;
        function Insert(const Index: Integer): IXMLClimateanomaly;
    
        function Get_Item(Index: Integer): IXMLClimateanomaly;
        property Items[Index: Integer]: IXMLClimateanomaly read Get_Item; default;
      end;
    
    { IXMLAnomalyType }
    
      IXMLAnomalyType = interface(IXMLNode)
        ['{61B5413E-AD00-4713-89C7-BE1D85B7A4FD}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLValueList read Get_Value;
      end;
    
    { IXMLAnomalyTypeList }
    
      IXMLAnomalyTypeList = interface(IXMLNodeCollection)
        ['{FF1E91A4-E14B-4FF2-9E35-0B9FF36A9C33}']
        { Methods & Properties }
        function Add: IXMLAnomalyType;
        function Insert(const Index: Integer): IXMLAnomalyType;
    
        function Get_Item(Index: Integer): IXMLAnomalyType;
        property Items[Index: Integer]: IXMLAnomalyType read Get_Item; default;
      end;
    
    { IXMLWindspeed }
    
      IXMLWindspeed = interface(IXMLNode)
        ['{C89448E1-1E60-4D7B-B86A-95EEE646ECAE}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLWspdValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLWspdValTypeList read Get_Value;
        property ValueWithUncertainty: IXMLValueWithUncertaintyList read Get_ValueWithUncertainty;
      end;
    
    { IXMLWindspeedList }
    
      IXMLWindspeedList = interface(IXMLNodeCollection)
        ['{AC9AE092-553A-4DB6-82E1-BDB386FFD169}']
        { Methods & Properties }
        function Add: IXMLWindspeed;
        function Insert(const Index: Integer): IXMLWindspeed;
    
        function Get_Item(Index: Integer): IXMLWindspeed;
        property Items[Index: Integer]: IXMLWindspeed read Get_Item; default;
      end;
    
    { IXMLWspdValType }
    
      IXMLWspdValType = interface(IXMLNode)
        ['{C635F830-7EE3-4A28-9510-29DDE784887D}']
        { Property Accessors }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Upperrange: LongWord read Get_Upperrange write Set_Upperrange;
        property Lowerrange: LongWord read Get_Lowerrange write Set_Lowerrange;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
      end;
    
    { IXMLWspdValTypeList }
    
      IXMLWspdValTypeList = interface(IXMLNodeCollection)
        ['{D46E873D-0E8B-4B44-B0B9-3F694FAC0D85}']
        { Methods & Properties }
        function Add: IXMLWspdValType;
        function Insert(const Index: Integer): IXMLWspdValType;
    
        function Get_Item(Index: Integer): IXMLWspdValType;
        property Items[Index: Integer]: IXMLWspdValType read Get_Item; default;
      end;
    
    { IXMLDirection }
    
      IXMLDirection = interface(IXMLNode)
        ['{22C14062-95E8-425A-A538-A57B33A36263}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLWdirValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLWdirValTypeList read Get_Value;
        property ValueWithUncertainty: IXMLValueWithUncertaintyList read Get_ValueWithUncertainty;
      end;
    
    { IXMLDirectionList }
    
      IXMLDirectionList = interface(IXMLNodeCollection)
        ['{AF4C7566-907F-41E7-B6AD-F1FC56FE5C3A}']
        { Methods & Properties }
        function Add: IXMLDirection;
        function Insert(const Index: Integer): IXMLDirection;
    
        function Get_Item(Index: Integer): IXMLDirection;
        property Items[Index: Integer]: IXMLDirection read Get_Item; default;
      end;
    
    { IXMLWdirValType }
    
      IXMLWdirValType = interface(IXMLNode)
        ['{7027D65B-6FA6-4477-AA74-5BC258A4709A}']
        { Property Accessors }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
        { Methods & Properties }
        property Upperrange: LongWord read Get_Upperrange write Set_Upperrange;
        property Lowerrange: LongWord read Get_Lowerrange write Set_Lowerrange;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
      end;
    
    { IXMLWdirValTypeList }
    
      IXMLWdirValTypeList = interface(IXMLNodeCollection)
        ['{9C68D0BE-2302-4F7C-AF13-833D694D855F}']
        { Methods & Properties }
        function Add: IXMLWdirValType;
        function Insert(const Index: Integer): IXMLWdirValType;
    
        function Get_Item(Index: Integer): IXMLWdirValType;
        property Items[Index: Integer]: IXMLWdirValType read Get_Item; default;
      end;
    
    { IXMLCloudamount }
    
      IXMLCloudamount = interface(IXMLNode)
        ['{79093039-3753-4005-B5B2-FFACE7B0FBB5}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLPercentageValTypeList read Get_Value;
        property ValueWithUncertainty: IXMLValueWithUncertaintyList read Get_ValueWithUncertainty;
      end;
    
    { IXMLCloudamountList }
    
      IXMLCloudamountList = interface(IXMLNodeCollection)
        ['{940FF66D-287A-44F7-9EA3-3D0BFD212287}']
        { Methods & Properties }
        function Add: IXMLCloudamount;
        function Insert(const Index: Integer): IXMLCloudamount;
    
        function Get_Item(Index: Integer): IXMLCloudamount;
        property Items[Index: Integer]: IXMLCloudamount read Get_Item; default;
      end;
    
    { IXMLHumidity }
    
      IXMLHumidity = interface(IXMLNode)
        ['{F4BD6E96-1A83-48A4-83AA-AE333CC2BCCE}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLValueList read Get_Value;
      end;
    
    { IXMLHumidityList }
    
      IXMLHumidityList = interface(IXMLNodeCollection)
        ['{13113142-81A2-48D9-9D92-2F9E471306D5}']
        { Methods & Properties }
        function Add: IXMLHumidity;
        function Insert(const Index: Integer): IXMLHumidity;
    
        function Get_Item(Index: Integer): IXMLHumidity;
        property Items[Index: Integer]: IXMLHumidity read Get_Item; default;
      end;
    
    { IXMLWeather }
    
      IXMLWeather = interface(IXMLNode)
        ['{727AFD5F-FC92-448D-BD15-FF95CF583354}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_Name: IXMLString_List;
        function Get_Weatherconditions: IXMLWeatherconditionsList;
        procedure Set_Timelayout(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Name: IXMLString_List read Get_Name;
        property Weatherconditions: IXMLWeatherconditionsList read Get_Weatherconditions;
      end;
    
    { IXMLWeatherList }
    
      IXMLWeatherList = interface(IXMLNodeCollection)
        ['{7CC36A73-67D2-498A-BED8-2B3BD325C0F3}']
        { Methods & Properties }
        function Add: IXMLWeather;
        function Insert(const Index: Integer): IXMLWeather;
    
        function Get_Item(Index: Integer): IXMLWeather;
        property Items[Index: Integer]: IXMLWeather read Get_Item; default;
      end;
    
    { IXMLWeatherconditions }
    
      IXMLWeatherconditions = interface(IXMLNodeCollection)
        ['{61FB88CB-BB11-472A-BF23-86619A7D5CBF}']
        { Property Accessors }
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Weathersummary: UnicodeString;
        function Get_Value(Index: Integer): IXMLValue;
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Weathersummary(Value: UnicodeString);
        { Methods & Properties }
        function Add: IXMLValue;
        function Insert(const Index: Integer): IXMLValue;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Weathersummary: UnicodeString read Get_Weathersummary write Set_Weathersummary;
        property Value[Index: Integer]: IXMLValue read Get_Value; default;
      end;
    
    { IXMLWeatherconditionsList }
    
      IXMLWeatherconditionsList = interface(IXMLNodeCollection)
        ['{2FD03FCC-CACF-48A1-82C4-738F438DAE65}']
        { Methods & Properties }
        function Add: IXMLWeatherconditions;
        function Insert(const Index: Integer): IXMLWeatherconditions;
    
        function Get_Item(Index: Integer): IXMLWeatherconditions;
        property Items[Index: Integer]: IXMLWeatherconditions read Get_Item; default;
      end;
    
    { IXMLConditionsicon }
    
      IXMLConditionsicon = interface(IXMLNode)
        ['{666E7483-32C7-44EA-85F4-649AAE92B59F}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_Type_: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Iconlink: IXMLAnyURIList;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Iconlink: IXMLAnyURIList read Get_Iconlink;
      end;
    
    { IXMLConditionsiconList }
    
      IXMLConditionsiconList = interface(IXMLNodeCollection)
        ['{D32C960C-D8FA-4C7E-B67C-95231A5F4E6D}']
        { Methods & Properties }
        function Add: IXMLConditionsicon;
        function Insert(const Index: Integer): IXMLConditionsicon;
    
        function Get_Item(Index: Integer): IXMLConditionsicon;
        property Items[Index: Integer]: IXMLConditionsicon read Get_Item; default;
      end;
    
    { IXMLHazards }
    
      IXMLHazards = interface(IXMLNode)
        ['{29533A48-3713-497A-AD33-05A87A65BD3B}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_Name: IXMLString_List;
        function Get_Hazardconditions: IXMLHazardconditionsList;
        procedure Set_Timelayout(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Name: IXMLString_List read Get_Name;
        property Hazardconditions: IXMLHazardconditionsList read Get_Hazardconditions;
      end;
    
    { IXMLHazardsList }
    
      IXMLHazardsList = interface(IXMLNodeCollection)
        ['{056F7228-7F8E-48E7-ABE8-C3CBA2BD8F67}']
        { Methods & Properties }
        function Add: IXMLHazards;
        function Insert(const Index: Integer): IXMLHazards;
    
        function Get_Item(Index: Integer): IXMLHazards;
        property Items[Index: Integer]: IXMLHazards read Get_Item; default;
      end;
    
    { IXMLHazardconditions }
    
      IXMLHazardconditions = interface(IXMLNodeCollection)
        ['{049B3586-F98F-44A9-98C8-FC3ABACE7973}']
        { Property Accessors }
        function Get_Hazard(Index: Integer): IXMLHazard;
        { Methods & Properties }
        function Add: IXMLHazard;
        function Insert(const Index: Integer): IXMLHazard;
        property Hazard[Index: Integer]: IXMLHazard read Get_Hazard; default;
      end;
    
    { IXMLHazardconditionsList }
    
      IXMLHazardconditionsList = interface(IXMLNodeCollection)
        ['{7BBB8DD0-0E3E-4AE8-A5D7-466A2779E060}']
        { Methods & Properties }
        function Add: IXMLHazardconditions;
        function Insert(const Index: Integer): IXMLHazardconditions;
    
        function Get_Item(Index: Integer): IXMLHazardconditions;
        property Items[Index: Integer]: IXMLHazardconditions read Get_Item; default;
      end;
    
    { IXMLHazard }
    
      IXMLHazard = interface(IXMLNode)
        ['{3B9FF185-06CC-4A11-8638-23155D2E6DF1}']
        { Property Accessors }
        function Get_HazardCode: UnicodeString;
        function Get_Phenomena: UnicodeString;
        function Get_Significance: UnicodeString;
        function Get_HazardType: UnicodeString;
        function Get_EventTrackingNumber: Integer;
        function Get_Headline: UnicodeString;
        function Get_HazardTextURL: UnicodeString;
        function Get_HazardIcon: UnicodeString;
        procedure Set_HazardCode(Value: UnicodeString);
        procedure Set_Phenomena(Value: UnicodeString);
        procedure Set_Significance(Value: UnicodeString);
        procedure Set_HazardType(Value: UnicodeString);
        procedure Set_EventTrackingNumber(Value: Integer);
        procedure Set_Headline(Value: UnicodeString);
        procedure Set_HazardTextURL(Value: UnicodeString);
        procedure Set_HazardIcon(Value: UnicodeString);
        { Methods & Properties }
        property HazardCode: UnicodeString read Get_HazardCode write Set_HazardCode;
        property Phenomena: UnicodeString read Get_Phenomena write Set_Phenomena;
        property Significance: UnicodeString read Get_Significance write Set_Significance;
        property HazardType: UnicodeString read Get_HazardType write Set_HazardType;
        property EventTrackingNumber: Integer read Get_EventTrackingNumber write Set_EventTrackingNumber;
        property Headline: UnicodeString read Get_Headline write Set_Headline;
        property HazardTextURL: UnicodeString read Get_HazardTextURL write Set_HazardTextURL;
        property HazardIcon: UnicodeString read Get_HazardIcon write Set_HazardIcon;
      end;
    
    { IXMLWordedForecast }
    
      IXMLWordedForecast = interface(IXMLNode)
        ['{4639CEA2-7EC9-474B-8438-EA08B1616F20}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_DataSource: UnicodeString;
        function Get_WordGenerator: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Text: IXMLString_List;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_DataSource(Value: UnicodeString);
        procedure Set_WordGenerator(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property DataSource: UnicodeString read Get_DataSource write Set_DataSource;
        property WordGenerator: UnicodeString read Get_WordGenerator write Set_WordGenerator;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Text: IXMLString_List read Get_Text;
      end;
    
    { IXMLPressure }
    
      IXMLPressure = interface(IXMLNode)
        ['{1337D4C9-B9D6-4F2F-9F44-5D9C0D730108}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLDecimalValTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLDecimalValTypeList read Get_Value;
      end;
    
    { IXMLPressureList }
    
      IXMLPressureList = interface(IXMLNodeCollection)
        ['{6E717E49-F459-4F75-9FC7-65CA4CE8D804}']
        { Methods & Properties }
        function Add: IXMLPressure;
        function Insert(const Index: Integer): IXMLPressure;
    
        function Get_Item(Index: Integer): IXMLPressure;
        property Items[Index: Integer]: IXMLPressure read Get_Item; default;
      end;
    
    { IXMLProbabilisticCondition }
    
      IXMLProbabilisticCondition = interface(IXMLNode)
        ['{584FA26B-10D8-4283-934B-554D33011948}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueForRange: IXMLValueForRangeTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property LikelihoodUnits: UnicodeString read Get_LikelihoodUnits write Set_LikelihoodUnits;
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Applicablecategories: UnicodeString read Get_Applicablecategories write Set_Applicablecategories;
        property Probabilitytype: UnicodeString read Get_Probabilitytype write Set_Probabilitytype;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLPercentageValTypeList read Get_Value;
        property ValueForRange: IXMLValueForRangeTypeList read Get_ValueForRange;
      end;
    
    { IXMLProbabilisticConditionList }
    
      IXMLProbabilisticConditionList = interface(IXMLNodeCollection)
        ['{9544F25F-E9AB-4BFE-A1E6-3287A74DBB27}']
        { Methods & Properties }
        function Add: IXMLProbabilisticCondition;
        function Insert(const Index: Integer): IXMLProbabilisticCondition;
    
        function Get_Item(Index: Integer): IXMLProbabilisticCondition;
        property Items[Index: Integer]: IXMLProbabilisticCondition read Get_Item; default;
      end;
    
    { IXMLValueForRangeType }
    
      IXMLValueForRangeType = interface(IXMLNode)
        ['{F3475F4E-0366-4D3D-8551-DB0C9A075D29}']
        { Property Accessors }
        function Get_Value: IXMLPercentageValTypeList;
        function Get_Gt: UnicodeString;
        function Get_Ge: UnicodeString;
        function Get_Lt: UnicodeString;
        function Get_Le: UnicodeString;
        function Get_Eq: UnicodeString;
        procedure Set_Gt(Value: UnicodeString);
        procedure Set_Ge(Value: UnicodeString);
        procedure Set_Lt(Value: UnicodeString);
        procedure Set_Le(Value: UnicodeString);
        procedure Set_Eq(Value: UnicodeString);
        { Methods & Properties }
        property Value: IXMLPercentageValTypeList read Get_Value;
        property Gt: UnicodeString read Get_Gt write Set_Gt;
        property Ge: UnicodeString read Get_Ge write Set_Ge;
        property Lt: UnicodeString read Get_Lt write Set_Lt;
        property Le: UnicodeString read Get_Le write Set_Le;
        property Eq: UnicodeString read Get_Eq write Set_Eq;
      end;
    
    { IXMLValueForRangeTypeList }
    
      IXMLValueForRangeTypeList = interface(IXMLNodeCollection)
        ['{24A882FF-0879-401D-A042-4568582C81E9}']
        { Methods & Properties }
        function Add: IXMLValueForRangeType;
        function Insert(const Index: Integer): IXMLValueForRangeType;
    
        function Get_Item(Index: Integer): IXMLValueForRangeType;
        property Items[Index: Integer]: IXMLValueForRangeType read Get_Item; default;
      end;
    
    { IXMLWaterstate }
    
      IXMLWaterstate = interface(IXMLNode)
        ['{4561FD71-9297-45BB-8B96-31FAF9EB03FC}']
        { Property Accessors }
        function Get_Timelayout: UnicodeString;
        function Get_Waves: IXMLWavesList;
        function Get_Swell: IXMLSwellList;
        function Get_Seas: IXMLSeasList;
        function Get_Icecoverage: IXMLNonNegativeIntegerList;
        procedure Set_Timelayout(Value: UnicodeString);
        { Methods & Properties }
        property Timelayout: UnicodeString read Get_Timelayout write Set_Timelayout;
        property Waves: IXMLWavesList read Get_Waves;
        property Swell: IXMLSwellList read Get_Swell;
        property Seas: IXMLSeasList read Get_Seas;
        property Icecoverage: IXMLNonNegativeIntegerList read Get_Icecoverage;
      end;
    
    { IXMLWaterstateList }
    
      IXMLWaterstateList = interface(IXMLNodeCollection)
        ['{A0A73533-2413-4D73-A90E-50228A9AFE9D}']
        { Methods & Properties }
        function Add: IXMLWaterstate;
        function Insert(const Index: Integer): IXMLWaterstate;
    
        function Get_Item(Index: Integer): IXMLWaterstate;
        property Items[Index: Integer]: IXMLWaterstate read Get_Item; default;
      end;
    
    { IXMLWaves }
    
      IXMLWaves = interface(IXMLNode)
        ['{99BB2675-9E60-47F4-A150-927CCDC10A57}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Period: LongWord;
        function Get_Steepness: LongWord;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLNonNegativeIntegerList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Period(Value: LongWord);
        procedure Set_Steepness(Value: LongWord);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Period: LongWord read Get_Period write Set_Period;
        property Steepness: LongWord read Get_Steepness write Set_Steepness;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLNonNegativeIntegerList read Get_Value;
      end;
    
    { IXMLWavesList }
    
      IXMLWavesList = interface(IXMLNodeCollection)
        ['{106DC785-5795-4EB5-AA69-3CC8AF893093}']
        { Methods & Properties }
        function Add: IXMLWaves;
        function Insert(const Index: Integer): IXMLWaves;
    
        function Get_Item(Index: Integer): IXMLWaves;
        property Items[Index: Integer]: IXMLWaves read Get_Item; default;
      end;
    
    { IXMLSwell }
    
      IXMLSwell = interface(IXMLNode)
        ['{E39E0805-79BF-431E-A453-735E1C28C9F7}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Period: LongWord;
        function Get_Steepness: LongWord;
        function Get_Name: UnicodeString;
        function Get_Value: UnicodeString;
        function Get_Direction: IXMLDirection;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Period(Value: LongWord);
        procedure Set_Steepness(Value: LongWord);
        procedure Set_Name(Value: UnicodeString);
        procedure Set_Value(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Period: LongWord read Get_Period write Set_Period;
        property Steepness: LongWord read Get_Steepness write Set_Steepness;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: UnicodeString read Get_Value write Set_Value;
        property Direction: IXMLDirection read Get_Direction;
      end;
    
    { IXMLSwellList }
    
      IXMLSwellList = interface(IXMLNodeCollection)
        ['{8417684A-E223-4501-8583-76F67EC69693}']
        { Methods & Properties }
        function Add: IXMLSwell;
        function Insert(const Index: Integer): IXMLSwell;
    
        function Get_Item(Index: Integer): IXMLSwell;
        property Items[Index: Integer]: IXMLSwell read Get_Item; default;
      end;
    
    { IXMLSeas }
    
      IXMLSeas = interface(IXMLNode)
        ['{4E8014FD-BB4A-45CA-BC79-4F58502DA59D}']
        { Property Accessors }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLNonNegativeIntegerList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        { Methods & Properties }
        property Type_: UnicodeString read Get_Type_ write Set_Type_;
        property Units: UnicodeString read Get_Units write Set_Units;
        property Categoricaltable: UnicodeString read Get_Categoricaltable write Set_Categoricaltable;
        property Conversiontable: UnicodeString read Get_Conversiontable write Set_Conversiontable;
        property Name: UnicodeString read Get_Name write Set_Name;
        property Value: IXMLNonNegativeIntegerList read Get_Value;
      end;
    
    { IXMLSeasList }
    
      IXMLSeasList = interface(IXMLNodeCollection)
        ['{C2C81026-7BE7-4A43-A431-B83F37D4B4AD}']
        { Methods & Properties }
        function Add: IXMLSeas;
        function Insert(const Index: Integer): IXMLSeas;
    
        function Get_Item(Index: Integer): IXMLSeas;
        property Items[Index: Integer]: IXMLSeas read Get_Item; default;
      end;
    
    { IXMLNonNegativeIntegerList }
    
      IXMLNonNegativeIntegerList = interface(IXMLNodeCollection)
        ['{A5DF5D2E-B247-4AC2-BE1B-9758D06C3C49}']
        { Methods & Properties }
        function Add(const Value: LongWord): IXMLNode;
        function Insert(const Index: Integer; const Value: LongWord): IXMLNode;
    
        function Get_Item(Index: Integer): LongWord;
        property Items[Index: Integer]: LongWord read Get_Item; default;
      end;
    
    { IXMLDateTimeList }
    
      IXMLDateTimeList = interface(IXMLNodeCollection)
        ['{61B62890-013A-4535-99B3-ECACC39D9D20}']
        { Methods & Properties }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
        property Items[Index: Integer]: UnicodeString read Get_Item; default;
      end;
    
    { IXMLAnyURIList }
    
      IXMLAnyURIList = interface(IXMLNodeCollection)
        ['{A2A0B2BF-E82C-4774-B6A1-AD2AB7A679E1}']
        { Methods & Properties }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
        property Items[Index: Integer]: UnicodeString read Get_Item; default;
      end;
    
    
    { IXMLString_List }
    
      IXMLString_List = interface(IXMLNodeCollection)
        ['{24F8442B-E713-42BC-A4AA-D63E3065F460}']
        { Methods & Properties }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
        property Items[Index: Integer]: UnicodeString read Get_Item; default;
      end;
    
    { Forward Decls }
    
      TXMLDwml = class;
      TXMLHeadType = class;
      TXMLProductType = class;
      TXMLCreationdateType = class;
      TXMLSourceType = class;
      TXMLProductioncenterType = class;
      TXMLDataType = class;
      TXMLDataTypeList = class;
      TXMLLocationType = class;
      TXMLLocationTypeList = class;
      TXMLPointType = class;
      TXMLNwszoneType = class;
      TXMLAreaType = class;
      TXMLCircleType = class;
      TXMLRadiusType = class;
      TXMLRectangleType = class;
      TXMLCityType = class;
      TXMLHeightType = class;
      TXMLLevelType = class;
      TXMLLayerType = class;
      TXMLMoreWeatherInformationType = class;
      TXMLMoreWeatherInformationTypeList = class;
      TXMLTimelayoutElementType = class;
      TXMLTimelayoutElementTypeList = class;
      TXMLStartvalidtimeType = class;
      TXMLStartvalidtimeTypeList = class;
      TXMLParametersType = class;
      TXMLParametersTypeList = class;
      TXMLCategoriesType = class;
      TXMLCategoriesTypeList = class;
      TXMLValueListType = class;
      TXMLValueListTypeList = class;
      TXMLTemperature = class;
      TXMLTemperatureList = class;
      TXMLTempValType = class;
      TXMLTempValTypeList = class;
      TXMLValueWithUncertainty = class;
      TXMLValueWithUncertaintyList = class;
      TXMLUncertaintyType = class;
      TXMLError = class;
      TXMLPrecipitation = class;
      TXMLPrecipitationList = class;
      TXMLDecimalValType = class;
      TXMLDecimalValTypeList = class;
      TXMLProbabilityofprecipitation = class;
      TXMLProbabilityofprecipitationList = class;
      TXMLPercentageValType = class;
      TXMLPercentageValTypeList = class;
      TXMLFireweather = class;
      TXMLFireweatherList = class;
      TXMLConvectivehazard = class;
      TXMLConvectivehazardList = class;
      TXMLOutlook = class;
      TXMLSeverecomponent = class;
      TXMLSeverecomponentList = class;
      TXMLValue = class;
      TXMLValueList = class;
      TXMLClimateanomaly = class;
      TXMLClimateanomalyList = class;
      TXMLAnomalyType = class;
      TXMLAnomalyTypeList = class;
      TXMLWindspeed = class;
      TXMLWindspeedList = class;
      TXMLWspdValType = class;
      TXMLWspdValTypeList = class;
      TXMLDirection = class;
      TXMLDirectionList = class;
      TXMLWdirValType = class;
      TXMLWdirValTypeList = class;
      TXMLCloudamount = class;
      TXMLCloudamountList = class;
      TXMLHumidity = class;
      TXMLHumidityList = class;
      TXMLWeather = class;
      TXMLWeatherList = class;
      TXMLWeatherconditions = class;
      TXMLWeatherconditionsList = class;
      TXMLConditionsicon = class;
      TXMLConditionsiconList = class;
      TXMLHazards = class;
      TXMLHazardsList = class;
      TXMLHazardconditions = class;
      TXMLHazardconditionsList = class;
      TXMLHazard = class;
      TXMLWordedForecast = class;
      TXMLPressure = class;
      TXMLPressureList = class;
      TXMLProbabilisticCondition = class;
      TXMLProbabilisticConditionList = class;
      TXMLValueForRangeType = class;
      TXMLValueForRangeTypeList = class;
      TXMLWaterstate = class;
      TXMLWaterstateList = class;
      TXMLWaves = class;
      TXMLWavesList = class;
      TXMLSwell = class;
      TXMLSwellList = class;
      TXMLSeas = class;
      TXMLSeasList = class;
      TXMLNonNegativeIntegerList = class;
      TXMLDateTimeList = class;
      TXMLAnyURIList = class;
      TXMLString_List = class;
    
    { TXMLDwml }
    
      TXMLDwml = class(TXMLNode, IXMLDwml)
      private
        FData: IXMLDataTypeList;
      protected
        { IXMLDwml }
        function Get_Version: UnicodeString;
        function Get_Head: IXMLHeadType;
        function Get_Data: IXMLDataTypeList;
        function Get_MinResolution: UnicodeString;
        function Get_LatLonList: UnicodeString;
        function Get_CityNameList: UnicodeString;
        procedure Set_Version(Value: UnicodeString);
        procedure Set_MinResolution(Value: UnicodeString);
        procedure Set_LatLonList(Value: UnicodeString);
        procedure Set_CityNameList(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLHeadType }
    
      TXMLHeadType = class(TXMLNode, IXMLHeadType)
      protected
        { IXMLHeadType }
        function Get_Product: IXMLProductType;
        function Get_Source: IXMLSourceType;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLProductType }
    
      TXMLProductType = class(TXMLNode, IXMLProductType)
      protected
        { IXMLProductType }
        function Get_Concisename: UnicodeString;
        function Get_Operationalmode: UnicodeString;
        function Get_SrsName: UnicodeString;
        function Get_Title: UnicodeString;
        function Get_Field: UnicodeString;
        function Get_Category: UnicodeString;
        function Get_Creationdate: IXMLCreationdateType;
        procedure Set_Concisename(Value: UnicodeString);
        procedure Set_Operationalmode(Value: UnicodeString);
        procedure Set_SrsName(Value: UnicodeString);
        procedure Set_Title(Value: UnicodeString);
        procedure Set_Field(Value: UnicodeString);
        procedure Set_Category(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLCreationdateType }
    
      TXMLCreationdateType = class(TXMLNode, IXMLCreationdateType)
      protected
        { IXMLCreationdateType }
        function Get_Refreshfrequency: UnicodeString;
        procedure Set_Refreshfrequency(Value: UnicodeString);
      end;
    
    { TXMLSourceType }
    
      TXMLSourceType = class(TXMLNode, IXMLSourceType)
      protected
        { IXMLSourceType }
        function Get_Moreinformation: UnicodeString;
        function Get_Productioncenter: IXMLProductioncenterType;
        function Get_Disclaimer: UnicodeString;
        function Get_Credit: UnicodeString;
        function Get_Creditlogo: UnicodeString;
        function Get_Feedback: UnicodeString;
        procedure Set_Moreinformation(Value: UnicodeString);
        procedure Set_Disclaimer(Value: UnicodeString);
        procedure Set_Credit(Value: UnicodeString);
        procedure Set_Creditlogo(Value: UnicodeString);
        procedure Set_Feedback(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLProductioncenterType }
    
      TXMLProductioncenterType = class(TXMLNode, IXMLProductioncenterType)
      protected
        { IXMLProductioncenterType }
        function Get_Subcenter: UnicodeString;
        procedure Set_Subcenter(Value: UnicodeString);
      end;
    
    { TXMLDataType }
    
      TXMLDataType = class(TXMLNode, IXMLDataType)
      private
        FLocation: IXMLLocationTypeList;
        FMoreWeatherInformation: IXMLMoreWeatherInformationTypeList;
        FTimelayout: IXMLTimelayoutElementTypeList;
        FParameters: IXMLParametersTypeList;
      protected
        { IXMLDataType }
        function Get_Type_: UnicodeString;
        function Get_Location: IXMLLocationTypeList;
        function Get_MoreWeatherInformation: IXMLMoreWeatherInformationTypeList;
        function Get_Timelayout: IXMLTimelayoutElementTypeList;
        function Get_Parameters: IXMLParametersTypeList;
        procedure Set_Type_(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLDataTypeList }
    
      TXMLDataTypeList = class(TXMLNodeCollection, IXMLDataTypeList)
      protected
        { IXMLDataTypeList }
        function Add: IXMLDataType;
        function Insert(const Index: Integer): IXMLDataType;
    
        function Get_Item(Index: Integer): IXMLDataType;
      end;
    
    { TXMLLocationType }
    
      TXMLLocationType = class(TXMLNode, IXMLLocationType)
      protected
        { IXMLLocationType }
        function Get_Locationkey: UnicodeString;
        function Get_Description: UnicodeString;
        function Get_Point: IXMLPointType;
        function Get_Nwszone: IXMLNwszoneType;
        function Get_Area: IXMLAreaType;
        function Get_City: IXMLCityType;
        function Get_Areadescription: UnicodeString;
        function Get_Height: IXMLHeightType;
        function Get_Level: IXMLLevelType;
        function Get_Layer: IXMLLayerType;
        procedure Set_Locationkey(Value: UnicodeString);
        procedure Set_Description(Value: UnicodeString);
        procedure Set_Areadescription(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLLocationTypeList }
    
      TXMLLocationTypeList = class(TXMLNodeCollection, IXMLLocationTypeList)
      protected
        { IXMLLocationTypeList }
        function Add: IXMLLocationType;
        function Insert(const Index: Integer): IXMLLocationType;
    
        function Get_Item(Index: Integer): IXMLLocationType;
      end;
    
    { TXMLPointType }
    
      TXMLPointType = class(TXMLNode, IXMLPointType)
      protected
        { IXMLPointType }
        function Get_Latitude: UnicodeString;
        function Get_Longitude: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_Latitude(Value: UnicodeString);
        procedure Set_Longitude(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
      end;
    
    { TXMLNwszoneType }
    
      TXMLNwszoneType = class(TXMLNode, IXMLNwszoneType)
      protected
        { IXMLNwszoneType }
        function Get_State: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_State(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
      end;
    
    { TXMLAreaType }
    
      TXMLAreaType = class(TXMLNode, IXMLAreaType)
      protected
        { IXMLAreaType }
        function Get_Areatype: UnicodeString;
        function Get_Circle: IXMLCircleType;
        function Get_Rectangle: IXMLRectangleType;
        procedure Set_Areatype(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLCircleType }
    
      TXMLCircleType = class(TXMLNode, IXMLCircleType)
      protected
        { IXMLCircleType }
        function Get_Summarization: UnicodeString;
        function Get_Point: IXMLPointType;
        function Get_Radius: IXMLRadiusType;
        procedure Set_Summarization(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLRadiusType }
    
      TXMLRadiusType = class(TXMLNode, IXMLRadiusType)
      protected
        { IXMLRadiusType }
        function Get_Radiusunits: UnicodeString;
        procedure Set_Radiusunits(Value: UnicodeString);
      end;
    
    { TXMLRectangleType }
    
      TXMLRectangleType = class(TXMLNodeCollection, IXMLRectangleType)
      protected
        { IXMLRectangleType }
        function Get_Summarization: UnicodeString;
        function Get_Point(Index: Integer): IXMLPointType;
        procedure Set_Summarization(Value: UnicodeString);
        function Add: IXMLPointType;
        function Insert(const Index: Integer): IXMLPointType;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLCityType }
    
      TXMLCityType = class(TXMLNode, IXMLCityType)
      protected
        { IXMLCityType }
        function Get_State: UnicodeString;
        function Get_Summarization: UnicodeString;
        procedure Set_State(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
      end;
    
    { TXMLHeightType }
    
      TXMLHeightType = class(TXMLNode, IXMLHeightType)
      protected
        { IXMLHeightType }
        function Get_Datum: UnicodeString;
        function Get_Heightunits: UnicodeString;
        procedure Set_Datum(Value: UnicodeString);
        procedure Set_Heightunits(Value: UnicodeString);
      end;
    
    { TXMLLevelType }
    
      TXMLLevelType = class(TXMLNode, IXMLLevelType)
      protected
        { IXMLLevelType }
        function Get_Verticalcoordinate: UnicodeString;
        procedure Set_Verticalcoordinate(Value: UnicodeString);
      end;
    
    { TXMLLayerType }
    
      TXMLLayerType = class(TXMLNode, IXMLLayerType)
      protected
        { IXMLLayerType }
        function Get_Verticalcoordinate: UnicodeString;
        procedure Set_Verticalcoordinate(Value: UnicodeString);
      end;
    
    { TXMLMoreWeatherInformationType }
    
      TXMLMoreWeatherInformationType = class(TXMLNode, IXMLMoreWeatherInformationType)
      protected
        { IXMLMoreWeatherInformationType }
        function Get_Applicablelocation: UnicodeString;
        procedure Set_Applicablelocation(Value: UnicodeString);
      end;
    
    { TXMLMoreWeatherInformationTypeList }
    
      TXMLMoreWeatherInformationTypeList = class(TXMLNodeCollection, IXMLMoreWeatherInformationTypeList)
      protected
        { IXMLMoreWeatherInformationTypeList }
        function Add: IXMLMoreWeatherInformationType;
        function Insert(const Index: Integer): IXMLMoreWeatherInformationType;
    
        function Get_Item(Index: Integer): IXMLMoreWeatherInformationType;
      end;
    
    { TXMLTimelayoutElementType }
    
      TXMLTimelayoutElementType = class(TXMLNode, IXMLTimelayoutElementType)
      private
        FStartvalidtime: IXMLStartvalidtimeTypeList;
        FEndvalidtime: IXMLDateTimeList;
      protected
        { IXMLTimelayoutElementType }
        function Get_Timecoordinate: UnicodeString;
        function Get_Summarization: UnicodeString;
        function Get_Layoutkey: UnicodeString;
        function Get_Startvalidtime: IXMLStartvalidtimeTypeList;
        function Get_Endvalidtime: IXMLDateTimeList;
        procedure Set_Timecoordinate(Value: UnicodeString);
        procedure Set_Summarization(Value: UnicodeString);
        procedure Set_Layoutkey(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLTimelayoutElementTypeList }
    
      TXMLTimelayoutElementTypeList = class(TXMLNodeCollection, IXMLTimelayoutElementTypeList)
      protected
        { IXMLTimelayoutElementTypeList }
        function Add: IXMLTimelayoutElementType;
        function Insert(const Index: Integer): IXMLTimelayoutElementType;
    
        function Get_Item(Index: Integer): IXMLTimelayoutElementType;
      end;
    
    { TXMLStartvalidtimeType }
    
      TXMLStartvalidtimeType = class(TXMLNode, IXMLStartvalidtimeType)
      protected
        { IXMLStartvalidtimeType }
        function Get_Periodname: UnicodeString;
        procedure Set_Periodname(Value: UnicodeString);
      end;
    
    { TXMLStartvalidtimeTypeList }
    
      TXMLStartvalidtimeTypeList = class(TXMLNodeCollection, IXMLStartvalidtimeTypeList)
      protected
        { IXMLStartvalidtimeTypeList }
        function Add: IXMLStartvalidtimeType;
        function Insert(const Index: Integer): IXMLStartvalidtimeType;
    
        function Get_Item(Index: Integer): IXMLStartvalidtimeType;
      end;
    
    { TXMLParametersType }
    
      TXMLParametersType = class(TXMLNode, IXMLParametersType)
      private
        FCategories: IXMLCategoriesTypeList;
        FTemperature: IXMLTemperatureList;
        FPrecipitation: IXMLPrecipitationList;
        FProbabilityofprecipitation: IXMLProbabilityofprecipitationList;
        FFireweather: IXMLFireweatherList;
        FConvectivehazard: IXMLConvectivehazardList;
        FClimateanomaly: IXMLClimateanomalyList;
        FWindspeed: IXMLWindspeedList;
        FDirection: IXMLDirectionList;
        FCloudamount: IXMLCloudamountList;
        FHumidity: IXMLHumidityList;
        FWeather: IXMLWeatherList;
        FConditionsicon: IXMLConditionsiconList;
        FHazards: IXMLHazardsList;
        FPressure: IXMLPressureList;
        FProbabilisticCondition: IXMLProbabilisticConditionList;
        FWaterstate: IXMLWaterstateList;
      protected
        { IXMLParametersType }
        function Get_Applicablelocation: UnicodeString;
        function Get_Categories: IXMLCategoriesTypeList;
        function Get_Temperature: IXMLTemperatureList;
        function Get_Precipitation: IXMLPrecipitationList;
        function Get_Probabilityofprecipitation: IXMLProbabilityofprecipitationList;
        function Get_Fireweather: IXMLFireweatherList;
        function Get_Convectivehazard: IXMLConvectivehazardList;
        function Get_Climateanomaly: IXMLClimateanomalyList;
        function Get_Windspeed: IXMLWindspeedList;
        function Get_Direction: IXMLDirectionList;
        function Get_Cloudamount: IXMLCloudamountList;
        function Get_Humidity: IXMLHumidityList;
        function Get_Weather: IXMLWeatherList;
        function Get_Conditionsicon: IXMLConditionsiconList;
        function Get_Hazards: IXMLHazardsList;
        function Get_WordedForecast: IXMLWordedForecast;
        function Get_Pressure: IXMLPressureList;
        function Get_ProbabilisticCondition: IXMLProbabilisticConditionList;
        function Get_Waterstate: IXMLWaterstateList;
        procedure Set_Applicablelocation(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLParametersTypeList }
    
      TXMLParametersTypeList = class(TXMLNodeCollection, IXMLParametersTypeList)
      protected
        { IXMLParametersTypeList }
        function Add: IXMLParametersType;
        function Insert(const Index: Integer): IXMLParametersType;
    
        function Get_Item(Index: Integer): IXMLParametersType;
      end;
    
    { TXMLCategoriesType }
    
      TXMLCategoriesType = class(TXMLNode, IXMLCategoriesType)
      protected
        { IXMLCategoriesType }
        function Get_Type_: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Categorieskey: UnicodeString;
        function Get_ValueList: IXMLValueListType;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
        procedure Set_Categorieskey(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLCategoriesTypeList }
    
      TXMLCategoriesTypeList = class(TXMLNodeCollection, IXMLCategoriesTypeList)
      protected
        { IXMLCategoriesTypeList }
        function Add: IXMLCategoriesType;
        function Insert(const Index: Integer): IXMLCategoriesType;
    
        function Get_Item(Index: Integer): IXMLCategoriesType;
      end;
    
    { TXMLValueListType }
    
      TXMLValueListType = class(TXMLNode, IXMLValueListType)
      protected
        { IXMLValueListType }
        function Get_Median: UnicodeString;
        function Get_ConfidenceInterval50: UnicodeString;
        function Get_ConfidenceInterval80: UnicodeString;
        function Get_Skew80: UnicodeString;
        procedure Set_Median(Value: UnicodeString);
        procedure Set_ConfidenceInterval50(Value: UnicodeString);
        procedure Set_ConfidenceInterval80(Value: UnicodeString);
        procedure Set_Skew80(Value: UnicodeString);
      end;
    
    { TXMLValueListTypeList }
    
      TXMLValueListTypeList = class(TXMLNodeCollection, IXMLValueListTypeList)
      protected
        { IXMLValueListTypeList }
        function Add: IXMLValueListType;
        function Insert(const Index: Integer): IXMLValueListType;
    
        function Get_Item(Index: Integer): IXMLValueListType;
      end;
    
    { TXMLTemperature }
    
      TXMLTemperature = class(TXMLNode, IXMLTemperature)
      private
        FValue: IXMLTempValTypeList;
        FValueList: IXMLValueListTypeList;
        FValueWithUncertainty: IXMLValueWithUncertaintyList;
      protected
        { IXMLTemperature }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLTempValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLTemperatureList }
    
      TXMLTemperatureList = class(TXMLNodeCollection, IXMLTemperatureList)
      protected
        { IXMLTemperatureList }
        function Add: IXMLTemperature;
        function Insert(const Index: Integer): IXMLTemperature;
    
        function Get_Item(Index: Integer): IXMLTemperature;
      end;
    
    { TXMLTempValType }
    
      TXMLTempValType = class(TXMLNode, IXMLTempValType)
      protected
        { IXMLTempValType }
        function Get_Upperrange: Integer;
        function Get_Lowerrange: Integer;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: Integer);
        procedure Set_Lowerrange(Value: Integer);
        procedure Set_Type_(Value: UnicodeString);
      end;
    
    { TXMLTempValTypeList }
    
      TXMLTempValTypeList = class(TXMLNodeCollection, IXMLTempValTypeList)
      protected
        { IXMLTempValTypeList }
        function Add: IXMLTempValType;
        function Insert(const Index: Integer): IXMLTempValType;
    
        function Get_Item(Index: Integer): IXMLTempValType;
      end;
    
    { TXMLValueWithUncertainty }
    
      TXMLValueWithUncertainty = class(TXMLNode, IXMLValueWithUncertainty)
      protected
        { IXMLValueWithUncertainty }
        function Get_Type_: UnicodeString;
        function Get_Value: IXMLTempValType;
        function Get_Uncertainty: IXMLUncertaintyType;
        function Get_NumberWithEquality: UnicodeString;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_NumberWithEquality(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLValueWithUncertaintyList }
    
      TXMLValueWithUncertaintyList = class(TXMLNodeCollection, IXMLValueWithUncertaintyList)
      protected
        { IXMLValueWithUncertaintyList }
        function Add: IXMLValueWithUncertainty;
        function Insert(const Index: Integer): IXMLValueWithUncertainty;
    
        function Get_Item(Index: Integer): IXMLValueWithUncertainty;
      end;
    
    { TXMLUncertaintyType }
    
      TXMLUncertaintyType = class(TXMLNode, IXMLUncertaintyType)
      protected
        { IXMLUncertaintyType }
        function Get_Type_: UnicodeString;
        function Get_Error: IXMLError;
        procedure Set_Type_(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLError }
    
      TXMLError = class(TXMLNode, IXMLError)
      protected
        { IXMLError }
        function Get_Qualifier: UnicodeString;
        procedure Set_Qualifier(Value: UnicodeString);
      end;
    
    { TXMLPrecipitation }
    
      TXMLPrecipitation = class(TXMLNode, IXMLPrecipitation)
      private
        FValue: IXMLDecimalValTypeList;
        FValueList: IXMLValueListTypeList;
        FValueWithUncertainty: IXMLValueWithUncertaintyList;
      protected
        { IXMLPrecipitation }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLDecimalValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLPrecipitationList }
    
      TXMLPrecipitationList = class(TXMLNodeCollection, IXMLPrecipitationList)
      protected
        { IXMLPrecipitationList }
        function Add: IXMLPrecipitation;
        function Insert(const Index: Integer): IXMLPrecipitation;
    
        function Get_Item(Index: Integer): IXMLPrecipitation;
      end;
    
    { TXMLDecimalValType }
    
      TXMLDecimalValType = class(TXMLNode, IXMLDecimalValType)
      protected
        { IXMLDecimalValType }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
      end;
    
    { TXMLDecimalValTypeList }
    
      TXMLDecimalValTypeList = class(TXMLNodeCollection, IXMLDecimalValTypeList)
      protected
        { IXMLDecimalValTypeList }
        function Add: IXMLDecimalValType;
        function Insert(const Index: Integer): IXMLDecimalValType;
    
        function Get_Item(Index: Integer): IXMLDecimalValType;
      end;
    
    { TXMLProbabilityofprecipitation }
    
      TXMLProbabilityofprecipitation = class(TXMLNode, IXMLProbabilityofprecipitation)
      private
        FValue: IXMLPercentageValTypeList;
        FValueList: IXMLValueListTypeList;
      protected
        { IXMLProbabilityofprecipitation }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueList: IXMLValueListTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLProbabilityofprecipitationList }
    
      TXMLProbabilityofprecipitationList = class(TXMLNodeCollection, IXMLProbabilityofprecipitationList)
      protected
        { IXMLProbabilityofprecipitationList }
        function Add: IXMLProbabilityofprecipitation;
        function Insert(const Index: Integer): IXMLProbabilityofprecipitation;
    
        function Get_Item(Index: Integer): IXMLProbabilityofprecipitation;
      end;
    
    { TXMLPercentageValType }
    
      TXMLPercentageValType = class(TXMLNode, IXMLPercentageValType)
      protected
        { IXMLPercentageValType }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
      end;
    
    { TXMLPercentageValTypeList }
    
      TXMLPercentageValTypeList = class(TXMLNodeCollection, IXMLPercentageValTypeList)
      protected
        { IXMLPercentageValTypeList }
        function Add: IXMLPercentageValType;
        function Insert(const Index: Integer): IXMLPercentageValType;
    
        function Get_Item(Index: Integer): IXMLPercentageValType;
      end;
    
    { TXMLFireweather }
    
      TXMLFireweather = class(TXMLNode, IXMLFireweather)
      private
        FValue: IXMLValueList;
      protected
        { IXMLFireweather }
        function Get_Type_: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLFireweatherList }
    
      TXMLFireweatherList = class(TXMLNodeCollection, IXMLFireweatherList)
      protected
        { IXMLFireweatherList }
        function Add: IXMLFireweather;
        function Insert(const Index: Integer): IXMLFireweather;
    
        function Get_Item(Index: Integer): IXMLFireweather;
      end;
    
    { TXMLConvectivehazard }
    
      TXMLConvectivehazard = class(TXMLNode, IXMLConvectivehazard)
      private
        FSeverecomponent: IXMLSeverecomponentList;
      protected
        { IXMLConvectivehazard }
        function Get_Outlook: IXMLOutlook;
        function Get_Severecomponent: IXMLSeverecomponentList;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLConvectivehazardList }
    
      TXMLConvectivehazardList = class(TXMLNodeCollection, IXMLConvectivehazardList)
      protected
        { IXMLConvectivehazardList }
        function Add: IXMLConvectivehazard;
        function Insert(const Index: Integer): IXMLConvectivehazard;
    
        function Get_Item(Index: Integer): IXMLConvectivehazard;
      end;
    
    { TXMLOutlook }
    
      TXMLOutlook = class(TXMLNode, IXMLOutlook)
      private
        FValue: IXMLValueList;
      protected
        { IXMLOutlook }
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLSeverecomponent }
    
      TXMLSeverecomponent = class(TXMLNode, IXMLSeverecomponent)
      private
        FValue: IXMLValueList;
      protected
        { IXMLSeverecomponent }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLSeverecomponentList }
    
      TXMLSeverecomponentList = class(TXMLNodeCollection, IXMLSeverecomponentList)
      protected
        { IXMLSeverecomponentList }
        function Add: IXMLSeverecomponent;
        function Insert(const Index: Integer): IXMLSeverecomponent;
    
        function Get_Item(Index: Integer): IXMLSeverecomponent;
      end;
    
    { TXMLValue }
    
      TXMLValue = class(TXMLNode, IXMLValue)
      protected
        { IXMLValue }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
      end;
    
    { TXMLValueList }
    
      TXMLValueList = class(TXMLNodeCollection, IXMLValueList)
      protected
        { IXMLValueList }
        function Add: IXMLValue;
        function Insert(const Index: Integer): IXMLValue;
    
        function Get_Item(Index: Integer): IXMLValue;
      end;
    
    { TXMLClimateanomaly }
    
      TXMLClimateanomaly = class(TXMLNode, IXMLClimateanomaly)
      private
        FWeekly: IXMLAnomalyTypeList;
        FMonthly: IXMLAnomalyTypeList;
        FSeasonal: IXMLAnomalyTypeList;
      protected
        { IXMLClimateanomaly }
        function Get_Weekly: IXMLAnomalyTypeList;
        function Get_Monthly: IXMLAnomalyTypeList;
        function Get_Seasonal: IXMLAnomalyTypeList;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLClimateanomalyList }
    
      TXMLClimateanomalyList = class(TXMLNodeCollection, IXMLClimateanomalyList)
      protected
        { IXMLClimateanomalyList }
        function Add: IXMLClimateanomaly;
        function Insert(const Index: Integer): IXMLClimateanomaly;
    
        function Get_Item(Index: Integer): IXMLClimateanomaly;
      end;
    
    { TXMLAnomalyType }
    
      TXMLAnomalyType = class(TXMLNode, IXMLAnomalyType)
      private
        FValue: IXMLValueList;
      protected
        { IXMLAnomalyType }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLAnomalyTypeList }
    
      TXMLAnomalyTypeList = class(TXMLNodeCollection, IXMLAnomalyTypeList)
      protected
        { IXMLAnomalyTypeList }
        function Add: IXMLAnomalyType;
        function Insert(const Index: Integer): IXMLAnomalyType;
    
        function Get_Item(Index: Integer): IXMLAnomalyType;
      end;
    
    { TXMLWindspeed }
    
      TXMLWindspeed = class(TXMLNode, IXMLWindspeed)
      private
        FValue: IXMLWspdValTypeList;
        FValueWithUncertainty: IXMLValueWithUncertaintyList;
      protected
        { IXMLWindspeed }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLWspdValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLWindspeedList }
    
      TXMLWindspeedList = class(TXMLNodeCollection, IXMLWindspeedList)
      protected
        { IXMLWindspeedList }
        function Add: IXMLWindspeed;
        function Insert(const Index: Integer): IXMLWindspeed;
    
        function Get_Item(Index: Integer): IXMLWindspeed;
      end;
    
    { TXMLWspdValType }
    
      TXMLWspdValType = class(TXMLNode, IXMLWspdValType)
      protected
        { IXMLWspdValType }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
      end;
    
    { TXMLWspdValTypeList }
    
      TXMLWspdValTypeList = class(TXMLNodeCollection, IXMLWspdValTypeList)
      protected
        { IXMLWspdValTypeList }
        function Add: IXMLWspdValType;
        function Insert(const Index: Integer): IXMLWspdValType;
    
        function Get_Item(Index: Integer): IXMLWspdValType;
      end;
    
    { TXMLDirection }
    
      TXMLDirection = class(TXMLNode, IXMLDirection)
      private
        FValue: IXMLWdirValTypeList;
        FValueWithUncertainty: IXMLValueWithUncertaintyList;
      protected
        { IXMLDirection }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLWdirValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLDirectionList }
    
      TXMLDirectionList = class(TXMLNodeCollection, IXMLDirectionList)
      protected
        { IXMLDirectionList }
        function Add: IXMLDirection;
        function Insert(const Index: Integer): IXMLDirection;
    
        function Get_Item(Index: Integer): IXMLDirection;
      end;
    
    { TXMLWdirValType }
    
      TXMLWdirValType = class(TXMLNode, IXMLWdirValType)
      protected
        { IXMLWdirValType }
        function Get_Upperrange: LongWord;
        function Get_Lowerrange: LongWord;
        function Get_Type_: UnicodeString;
        procedure Set_Upperrange(Value: LongWord);
        procedure Set_Lowerrange(Value: LongWord);
        procedure Set_Type_(Value: UnicodeString);
      end;
    
    { TXMLWdirValTypeList }
    
      TXMLWdirValTypeList = class(TXMLNodeCollection, IXMLWdirValTypeList)
      protected
        { IXMLWdirValTypeList }
        function Add: IXMLWdirValType;
        function Insert(const Index: Integer): IXMLWdirValType;
    
        function Get_Item(Index: Integer): IXMLWdirValType;
      end;
    
    { TXMLCloudamount }
    
      TXMLCloudamount = class(TXMLNode, IXMLCloudamount)
      private
        FValue: IXMLPercentageValTypeList;
        FValueWithUncertainty: IXMLValueWithUncertaintyList;
      protected
        { IXMLCloudamount }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLCloudamountList }
    
      TXMLCloudamountList = class(TXMLNodeCollection, IXMLCloudamountList)
      protected
        { IXMLCloudamountList }
        function Add: IXMLCloudamount;
        function Insert(const Index: Integer): IXMLCloudamount;
    
        function Get_Item(Index: Integer): IXMLCloudamount;
      end;
    
    { TXMLHumidity }
    
      TXMLHumidity = class(TXMLNode, IXMLHumidity)
      private
        FValue: IXMLValueList;
      protected
        { IXMLHumidity }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLValueList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLHumidityList }
    
      TXMLHumidityList = class(TXMLNodeCollection, IXMLHumidityList)
      protected
        { IXMLHumidityList }
        function Add: IXMLHumidity;
        function Insert(const Index: Integer): IXMLHumidity;
    
        function Get_Item(Index: Integer): IXMLHumidity;
      end;
    
    { TXMLWeather }
    
      TXMLWeather = class(TXMLNode, IXMLWeather)
      private
        FName: IXMLString_List;
        FWeatherconditions: IXMLWeatherconditionsList;
      protected
        { IXMLWeather }
        function Get_Timelayout: UnicodeString;
        function Get_Name: IXMLString_List;
        function Get_Weatherconditions: IXMLWeatherconditionsList;
        procedure Set_Timelayout(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLWeatherList }
    
      TXMLWeatherList = class(TXMLNodeCollection, IXMLWeatherList)
      protected
        { IXMLWeatherList }
        function Add: IXMLWeather;
        function Insert(const Index: Integer): IXMLWeather;
    
        function Get_Item(Index: Integer): IXMLWeather;
      end;
    
    { TXMLWeatherconditions }
    
      TXMLWeatherconditions = class(TXMLNodeCollection, IXMLWeatherconditions)
      protected
        { IXMLWeatherconditions }
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Weathersummary: UnicodeString;
        function Get_Value(Index: Integer): IXMLValue;
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Weathersummary(Value: UnicodeString);
        function Add: IXMLValue;
        function Insert(const Index: Integer): IXMLValue;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLWeatherconditionsList }
    
      TXMLWeatherconditionsList = class(TXMLNodeCollection, IXMLWeatherconditionsList)
      protected
        { IXMLWeatherconditionsList }
        function Add: IXMLWeatherconditions;
        function Insert(const Index: Integer): IXMLWeatherconditions;
    
        function Get_Item(Index: Integer): IXMLWeatherconditions;
      end;
    
    { TXMLConditionsicon }
    
      TXMLConditionsicon = class(TXMLNode, IXMLConditionsicon)
      private
        FIconlink: IXMLAnyURIList;
      protected
        { IXMLConditionsicon }
        function Get_Timelayout: UnicodeString;
        function Get_Type_: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Iconlink: IXMLAnyURIList;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLConditionsiconList }
    
      TXMLConditionsiconList = class(TXMLNodeCollection, IXMLConditionsiconList)
      protected
        { IXMLConditionsiconList }
        function Add: IXMLConditionsicon;
        function Insert(const Index: Integer): IXMLConditionsicon;
    
        function Get_Item(Index: Integer): IXMLConditionsicon;
      end;
    
    { TXMLHazards }
    
      TXMLHazards = class(TXMLNode, IXMLHazards)
      private
        FName: IXMLString_List;
        FHazardconditions: IXMLHazardconditionsList;
      protected
        { IXMLHazards }
        function Get_Timelayout: UnicodeString;
        function Get_Name: IXMLString_List;
        function Get_Hazardconditions: IXMLHazardconditionsList;
        procedure Set_Timelayout(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLHazardsList }
    
      TXMLHazardsList = class(TXMLNodeCollection, IXMLHazardsList)
      protected
        { IXMLHazardsList }
        function Add: IXMLHazards;
        function Insert(const Index: Integer): IXMLHazards;
    
        function Get_Item(Index: Integer): IXMLHazards;
      end;
    
    { TXMLHazardconditions }
    
      TXMLHazardconditions = class(TXMLNodeCollection, IXMLHazardconditions)
      protected
        { IXMLHazardconditions }
        function Get_Hazard(Index: Integer): IXMLHazard;
        function Add: IXMLHazard;
        function Insert(const Index: Integer): IXMLHazard;
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLHazardconditionsList }
    
      TXMLHazardconditionsList = class(TXMLNodeCollection, IXMLHazardconditionsList)
      protected
        { IXMLHazardconditionsList }
        function Add: IXMLHazardconditions;
        function Insert(const Index: Integer): IXMLHazardconditions;
    
        function Get_Item(Index: Integer): IXMLHazardconditions;
      end;
    
    { TXMLHazard }
    
      TXMLHazard = class(TXMLNode, IXMLHazard)
      protected
        { IXMLHazard }
        function Get_HazardCode: UnicodeString;
        function Get_Phenomena: UnicodeString;
        function Get_Significance: UnicodeString;
        function Get_HazardType: UnicodeString;
        function Get_EventTrackingNumber: Integer;
        function Get_Headline: UnicodeString;
        function Get_HazardTextURL: UnicodeString;
        function Get_HazardIcon: UnicodeString;
        procedure Set_HazardCode(Value: UnicodeString);
        procedure Set_Phenomena(Value: UnicodeString);
        procedure Set_Significance(Value: UnicodeString);
        procedure Set_HazardType(Value: UnicodeString);
        procedure Set_EventTrackingNumber(Value: Integer);
        procedure Set_Headline(Value: UnicodeString);
        procedure Set_HazardTextURL(Value: UnicodeString);
        procedure Set_HazardIcon(Value: UnicodeString);
      end;
    
    { TXMLWordedForecast }
    
      TXMLWordedForecast = class(TXMLNode, IXMLWordedForecast)
      private
        FText: IXMLString_List;
      protected
        { IXMLWordedForecast }
        function Get_Timelayout: UnicodeString;
        function Get_DataSource: UnicodeString;
        function Get_WordGenerator: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Text: IXMLString_List;
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_DataSource(Value: UnicodeString);
        procedure Set_WordGenerator(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLPressure }
    
      TXMLPressure = class(TXMLNode, IXMLPressure)
      private
        FValue: IXMLDecimalValTypeList;
      protected
        { IXMLPressure }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLDecimalValTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLPressureList }
    
      TXMLPressureList = class(TXMLNodeCollection, IXMLPressureList)
      protected
        { IXMLPressureList }
        function Add: IXMLPressure;
        function Insert(const Index: Integer): IXMLPressure;
    
        function Get_Item(Index: Integer): IXMLPressure;
      end;
    
    { TXMLProbabilisticCondition }
    
      TXMLProbabilisticCondition = class(TXMLNode, IXMLProbabilisticCondition)
      private
        FValue: IXMLPercentageValTypeList;
        FValueForRange: IXMLValueForRangeTypeList;
      protected
        { IXMLProbabilisticCondition }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_LikelihoodUnits: UnicodeString;
        function Get_Timelayout: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Applicablecategories: UnicodeString;
        function Get_Probabilitytype: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLPercentageValTypeList;
        function Get_ValueForRange: IXMLValueForRangeTypeList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_LikelihoodUnits(Value: UnicodeString);
        procedure Set_Timelayout(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Applicablecategories(Value: UnicodeString);
        procedure Set_Probabilitytype(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLProbabilisticConditionList }
    
      TXMLProbabilisticConditionList = class(TXMLNodeCollection, IXMLProbabilisticConditionList)
      protected
        { IXMLProbabilisticConditionList }
        function Add: IXMLProbabilisticCondition;
        function Insert(const Index: Integer): IXMLProbabilisticCondition;
    
        function Get_Item(Index: Integer): IXMLProbabilisticCondition;
      end;
    
    { TXMLValueForRangeType }
    
      TXMLValueForRangeType = class(TXMLNode, IXMLValueForRangeType)
      private
        FValue: IXMLPercentageValTypeList;
      protected
        { IXMLValueForRangeType }
        function Get_Value: IXMLPercentageValTypeList;
        function Get_Gt: UnicodeString;
        function Get_Ge: UnicodeString;
        function Get_Lt: UnicodeString;
        function Get_Le: UnicodeString;
        function Get_Eq: UnicodeString;
        procedure Set_Gt(Value: UnicodeString);
        procedure Set_Ge(Value: UnicodeString);
        procedure Set_Lt(Value: UnicodeString);
        procedure Set_Le(Value: UnicodeString);
        procedure Set_Eq(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLValueForRangeTypeList }
    
      TXMLValueForRangeTypeList = class(TXMLNodeCollection, IXMLValueForRangeTypeList)
      protected
        { IXMLValueForRangeTypeList }
        function Add: IXMLValueForRangeType;
        function Insert(const Index: Integer): IXMLValueForRangeType;
    
        function Get_Item(Index: Integer): IXMLValueForRangeType;
      end;
    
    { TXMLWaterstate }
    
      TXMLWaterstate = class(TXMLNode, IXMLWaterstate)
      private
        FWaves: IXMLWavesList;
        FSwell: IXMLSwellList;
        FSeas: IXMLSeasList;
        FIcecoverage: IXMLNonNegativeIntegerList;
      protected
        { IXMLWaterstate }
        function Get_Timelayout: UnicodeString;
        function Get_Waves: IXMLWavesList;
        function Get_Swell: IXMLSwellList;
        function Get_Seas: IXMLSeasList;
        function Get_Icecoverage: IXMLNonNegativeIntegerList;
        procedure Set_Timelayout(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLWaterstateList }
    
      TXMLWaterstateList = class(TXMLNodeCollection, IXMLWaterstateList)
      protected
        { IXMLWaterstateList }
        function Add: IXMLWaterstate;
        function Insert(const Index: Integer): IXMLWaterstate;
    
        function Get_Item(Index: Integer): IXMLWaterstate;
      end;
    
    { TXMLWaves }
    
      TXMLWaves = class(TXMLNode, IXMLWaves)
      private
        FValue: IXMLNonNegativeIntegerList;
      protected
        { IXMLWaves }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Period: LongWord;
        function Get_Steepness: LongWord;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLNonNegativeIntegerList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Period(Value: LongWord);
        procedure Set_Steepness(Value: LongWord);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLWavesList }
    
      TXMLWavesList = class(TXMLNodeCollection, IXMLWavesList)
      protected
        { IXMLWavesList }
        function Add: IXMLWaves;
        function Insert(const Index: Integer): IXMLWaves;
    
        function Get_Item(Index: Integer): IXMLWaves;
      end;
    
    { TXMLSwell }
    
      TXMLSwell = class(TXMLNode, IXMLSwell)
      protected
        { IXMLSwell }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Period: LongWord;
        function Get_Steepness: LongWord;
        function Get_Name: UnicodeString;
        function Get_Value: UnicodeString;
        function Get_Direction: IXMLDirection;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Period(Value: LongWord);
        procedure Set_Steepness(Value: LongWord);
        procedure Set_Name(Value: UnicodeString);
        procedure Set_Value(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLSwellList }
    
      TXMLSwellList = class(TXMLNodeCollection, IXMLSwellList)
      protected
        { IXMLSwellList }
        function Add: IXMLSwell;
        function Insert(const Index: Integer): IXMLSwell;
    
        function Get_Item(Index: Integer): IXMLSwell;
      end;
    
    { TXMLSeas }
    
      TXMLSeas = class(TXMLNode, IXMLSeas)
      private
        FValue: IXMLNonNegativeIntegerList;
      protected
        { IXMLSeas }
        function Get_Type_: UnicodeString;
        function Get_Units: UnicodeString;
        function Get_Categoricaltable: UnicodeString;
        function Get_Conversiontable: UnicodeString;
        function Get_Name: UnicodeString;
        function Get_Value: IXMLNonNegativeIntegerList;
        procedure Set_Type_(Value: UnicodeString);
        procedure Set_Units(Value: UnicodeString);
        procedure Set_Categoricaltable(Value: UnicodeString);
        procedure Set_Conversiontable(Value: UnicodeString);
        procedure Set_Name(Value: UnicodeString);
      public
        procedure AfterConstruction; override;
      end;
    
    { TXMLSeasList }
    
      TXMLSeasList = class(TXMLNodeCollection, IXMLSeasList)
      protected
        { IXMLSeasList }
        function Add: IXMLSeas;
        function Insert(const Index: Integer): IXMLSeas;
    
        function Get_Item(Index: Integer): IXMLSeas;
      end;
    
    { TXMLNonNegativeIntegerList }
    
      TXMLNonNegativeIntegerList = class(TXMLNodeCollection, IXMLNonNegativeIntegerList)
      protected
        { IXMLNonNegativeIntegerList }
        function Add(const Value: LongWord): IXMLNode;
        function Insert(const Index: Integer; const Value: LongWord): IXMLNode;
    
        function Get_Item(Index: Integer): LongWord;
      end;
    
    { TXMLDateTimeList }
    
      TXMLDateTimeList = class(TXMLNodeCollection, IXMLDateTimeList)
      protected
        { IXMLDateTimeList }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
      end;
    
    { TXMLAnyURIList }
    
      TXMLAnyURIList = class(TXMLNodeCollection, IXMLAnyURIList)
      protected
        { IXMLAnyURIList }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
      end;
    
    { TXMLString_List }
    
      TXMLString_List = class(TXMLNodeCollection, IXMLString_List)
      protected
        { IXMLString_List }
        function Add(const Value: UnicodeString): IXMLNode;
        function Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    
        function Get_Item(Index: Integer): UnicodeString;
      end;
    
    { Global Functions }
    
    function Getdwml(Doc: IXMLDocument): IXMLDwml;
    function Loaddwml(const FileName: string): IXMLDwml;
    function Newdwml: IXMLDwml;
    
    const
      TargetNamespace = '';
    
    implementation
    
    { Global Functions }
    
    function Getdwml(Doc: IXMLDocument): IXMLDwml;
    begin
      Result := Doc.GetDocBinding('dwml', TXMLDwml, TargetNamespace) as IXMLDwml;
    end;
    
    function Loaddwml(const FileName: string): IXMLDwml;
    begin
      Result := LoadXMLDocument(FileName).GetDocBinding('dwml', TXMLDwml, TargetNamespace) as IXMLDwml;
    end;
    
    function Newdwml: IXMLDwml;
    begin
      Result := NewXMLDocument.GetDocBinding('dwml', TXMLDwml, TargetNamespace) as IXMLDwml;
    end;
    
    { TXMLDwml }
    
    procedure TXMLDwml.AfterConstruction;
    begin
      RegisterChildNode('head', TXMLHeadType);
      RegisterChildNode('data', TXMLDataType);
      FData := CreateCollection(TXMLDataTypeList, IXMLDataType, 'data') as IXMLDataTypeList;
      inherited;
    end;
    
    function TXMLDwml.Get_Version: UnicodeString;
    begin
      Result := AttributeNodes['version'].Text;
    end;
    
    procedure TXMLDwml.Set_Version(Value: UnicodeString);
    begin
      SetAttribute('version', Value);
    end;
    
    function TXMLDwml.Get_Head: IXMLHeadType;
    begin
      Result := ChildNodes['head'] as IXMLHeadType;
    end;
    
    function TXMLDwml.Get_Data: IXMLDataTypeList;
    begin
      Result := FData;
    end;
    
    function TXMLDwml.Get_MinResolution: UnicodeString;
    begin
      Result := ChildNodes['minResolution'].Text;
    end;
    
    procedure TXMLDwml.Set_MinResolution(Value: UnicodeString);
    begin
      ChildNodes['minResolution'].NodeValue := Value;
    end;
    
    function TXMLDwml.Get_LatLonList: UnicodeString;
    begin
      Result := ChildNodes['latLonList'].Text;
    end;
    
    procedure TXMLDwml.Set_LatLonList(Value: UnicodeString);
    begin
      ChildNodes['latLonList'].NodeValue := Value;
    end;
    
    function TXMLDwml.Get_CityNameList: UnicodeString;
    begin
      Result := ChildNodes['cityNameList'].Text;
    end;
    
    procedure TXMLDwml.Set_CityNameList(Value: UnicodeString);
    begin
      ChildNodes['cityNameList'].NodeValue := Value;
    end;
    
    { TXMLHeadType }
    
    procedure TXMLHeadType.AfterConstruction;
    begin
      RegisterChildNode('product', TXMLProductType);
      RegisterChildNode('source', TXMLSourceType);
      inherited;
    end;
    
    function TXMLHeadType.Get_Product: IXMLProductType;
    begin
      Result := ChildNodes['product'] as IXMLProductType;
    end;
    
    function TXMLHeadType.Get_Source: IXMLSourceType;
    begin
      Result := ChildNodes['source'] as IXMLSourceType;
    end;
    
    { TXMLProductType }
    
    procedure TXMLProductType.AfterConstruction;
    begin
      RegisterChildNode('creation-date', TXMLCreationdateType);
      inherited;
    end;
    
    function TXMLProductType.Get_Concisename: UnicodeString;
    begin
      Result := AttributeNodes['concise-name'].Text;
    end;
    
    procedure TXMLProductType.Set_Concisename(Value: UnicodeString);
    begin
      SetAttribute('concise-name', Value);
    end;
    
    function TXMLProductType.Get_Operationalmode: UnicodeString;
    begin
      Result := AttributeNodes['operational-mode'].Text;
    end;
    
    procedure TXMLProductType.Set_Operationalmode(Value: UnicodeString);
    begin
      SetAttribute('operational-mode', Value);
    end;
    
    function TXMLProductType.Get_SrsName: UnicodeString;
    begin
      Result := AttributeNodes['srsName'].Text;
    end;
    
    procedure TXMLProductType.Set_SrsName(Value: UnicodeString);
    begin
      SetAttribute('srsName', Value);
    end;
    
    function TXMLProductType.Get_Title: UnicodeString;
    begin
      Result := ChildNodes['title'].Text;
    end;
    
    procedure TXMLProductType.Set_Title(Value: UnicodeString);
    begin
      ChildNodes['title'].NodeValue := Value;
    end;
    
    function TXMLProductType.Get_Field: UnicodeString;
    begin
      Result := ChildNodes['field'].Text;
    end;
    
    procedure TXMLProductType.Set_Field(Value: UnicodeString);
    begin
      ChildNodes['field'].NodeValue := Value;
    end;
    
    function TXMLProductType.Get_Category: UnicodeString;
    begin
      Result := ChildNodes['category'].Text;
    end;
    
    procedure TXMLProductType.Set_Category(Value: UnicodeString);
    begin
      ChildNodes['category'].NodeValue := Value;
    end;
    
    function TXMLProductType.Get_Creationdate: IXMLCreationdateType;
    begin
      Result := ChildNodes['creation-date'] as IXMLCreationdateType;
    end;
    
    { TXMLCreationdateType }
    
    function TXMLCreationdateType.Get_Refreshfrequency: UnicodeString;
    begin
      Result := AttributeNodes['refresh-frequency'].Text;
    end;
    
    procedure TXMLCreationdateType.Set_Refreshfrequency(Value: UnicodeString);
    begin
      SetAttribute('refresh-frequency', Value);
    end;
    
    { TXMLSourceType }
    
    procedure TXMLSourceType.AfterConstruction;
    begin
      RegisterChildNode('production-center', TXMLProductioncenterType);
      inherited;
    end;
    
    function TXMLSourceType.Get_Moreinformation: UnicodeString;
    begin
      Result := ChildNodes['more-information'].Text;
    end;
    
    procedure TXMLSourceType.Set_Moreinformation(Value: UnicodeString);
    begin
      ChildNodes['more-information'].NodeValue := Value;
    end;
    
    function TXMLSourceType.Get_Productioncenter: IXMLProductioncenterType;
    begin
      Result := ChildNodes['production-center'] as IXMLProductioncenterType;
    end;
    
    function TXMLSourceType.Get_Disclaimer: UnicodeString;
    begin
      Result := ChildNodes['disclaimer'].Text;
    end;
    
    procedure TXMLSourceType.Set_Disclaimer(Value: UnicodeString);
    begin
      ChildNodes['disclaimer'].NodeValue := Value;
    end;
    
    function TXMLSourceType.Get_Credit: UnicodeString;
    begin
      Result := ChildNodes['credit'].Text;
    end;
    
    procedure TXMLSourceType.Set_Credit(Value: UnicodeString);
    begin
      ChildNodes['credit'].NodeValue := Value;
    end;
    
    function TXMLSourceType.Get_Creditlogo: UnicodeString;
    begin
      Result := ChildNodes['credit-logo'].Text;
    end;
    
    procedure TXMLSourceType.Set_Creditlogo(Value: UnicodeString);
    begin
      ChildNodes['credit-logo'].NodeValue := Value;
    end;
    
    function TXMLSourceType.Get_Feedback: UnicodeString;
    begin
      Result := ChildNodes['feedback'].Text;
    end;
    
    procedure TXMLSourceType.Set_Feedback(Value: UnicodeString);
    begin
      ChildNodes['feedback'].NodeValue := Value;
    end;
    
    { TXMLProductioncenterType }
    
    function TXMLProductioncenterType.Get_Subcenter: UnicodeString;
    begin
      Result := ChildNodes['sub-center'].Text;
    end;
    
    procedure TXMLProductioncenterType.Set_Subcenter(Value: UnicodeString);
    begin
      ChildNodes['sub-center'].NodeValue := Value;
    end;
    
    { TXMLDataType }
    
    procedure TXMLDataType.AfterConstruction;
    begin
      RegisterChildNode('location', TXMLLocationType);
      RegisterChildNode('moreWeatherInformation', TXMLMoreWeatherInformationType);
      RegisterChildNode('time-layout', TXMLTimelayoutElementType);
      RegisterChildNode('parameters', TXMLParametersType);
      FLocation := CreateCollection(TXMLLocationTypeList, IXMLLocationType, 'location') as IXMLLocationTypeList;
      FMoreWeatherInformation := CreateCollection(TXMLMoreWeatherInformationTypeList, IXMLMoreWeatherInformationType, 'moreWeatherInformation') as IXMLMoreWeatherInformationTypeList;
      FTimelayout := CreateCollection(TXMLTimelayoutElementTypeList, IXMLTimelayoutElementType, 'time-layout') as IXMLTimelayoutElementTypeList;
      FParameters := CreateCollection(TXMLParametersTypeList, IXMLParametersType, 'parameters') as IXMLParametersTypeList;
      inherited;
    end;
    
    function TXMLDataType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLDataType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLDataType.Get_Location: IXMLLocationTypeList;
    begin
      Result := FLocation;
    end;
    
    function TXMLDataType.Get_MoreWeatherInformation: IXMLMoreWeatherInformationTypeList;
    begin
      Result := FMoreWeatherInformation;
    end;
    
    function TXMLDataType.Get_Timelayout: IXMLTimelayoutElementTypeList;
    begin
      Result := FTimelayout;
    end;
    
    function TXMLDataType.Get_Parameters: IXMLParametersTypeList;
    begin
      Result := FParameters;
    end;
    
    { TXMLDataTypeList }
    
    function TXMLDataTypeList.Add: IXMLDataType;
    begin
      Result := AddItem(-1) as IXMLDataType;
    end;
    
    function TXMLDataTypeList.Insert(const Index: Integer): IXMLDataType;
    begin
      Result := AddItem(Index) as IXMLDataType;
    end;
    
    function TXMLDataTypeList.Get_Item(Index: Integer): IXMLDataType;
    begin
      Result := List[Index] as IXMLDataType;
    end;
    
    { TXMLLocationType }
    
    procedure TXMLLocationType.AfterConstruction;
    begin
      RegisterChildNode('point', TXMLPointType);
      RegisterChildNode('nws-zone', TXMLNwszoneType);
      RegisterChildNode('area', TXMLAreaType);
      RegisterChildNode('city', TXMLCityType);
      RegisterChildNode('height', TXMLHeightType);
      RegisterChildNode('level', TXMLLevelType);
      RegisterChildNode('layer', TXMLLayerType);
      inherited;
    end;
    
    function TXMLLocationType.Get_Locationkey: UnicodeString;
    begin
      Result := ChildNodes['location-key'].Text;
    end;
    
    procedure TXMLLocationType.Set_Locationkey(Value: UnicodeString);
    begin
      ChildNodes['location-key'].NodeValue := Value;
    end;
    
    function TXMLLocationType.Get_Description: UnicodeString;
    begin
      Result := ChildNodes['description'].Text;
    end;
    
    procedure TXMLLocationType.Set_Description(Value: UnicodeString);
    begin
      ChildNodes['description'].NodeValue := Value;
    end;
    
    function TXMLLocationType.Get_Point: IXMLPointType;
    begin
      Result := ChildNodes['point'] as IXMLPointType;
    end;
    
    function TXMLLocationType.Get_Nwszone: IXMLNwszoneType;
    begin
      Result := ChildNodes['nws-zone'] as IXMLNwszoneType;
    end;
    
    function TXMLLocationType.Get_Area: IXMLAreaType;
    begin
      Result := ChildNodes['area'] as IXMLAreaType;
    end;
    
    function TXMLLocationType.Get_City: IXMLCityType;
    begin
      Result := ChildNodes['city'] as IXMLCityType;
    end;
    
    function TXMLLocationType.Get_Areadescription: UnicodeString;
    begin
      Result := ChildNodes['area-description'].Text;
    end;
    
    procedure TXMLLocationType.Set_Areadescription(Value: UnicodeString);
    begin
      ChildNodes['area-description'].NodeValue := Value;
    end;
    
    function TXMLLocationType.Get_Height: IXMLHeightType;
    begin
      Result := ChildNodes['height'] as IXMLHeightType;
    end;
    
    function TXMLLocationType.Get_Level: IXMLLevelType;
    begin
      Result := ChildNodes['level'] as IXMLLevelType;
    end;
    
    function TXMLLocationType.Get_Layer: IXMLLayerType;
    begin
      Result := ChildNodes['layer'] as IXMLLayerType;
    end;
    
    { TXMLLocationTypeList }
    
    function TXMLLocationTypeList.Add: IXMLLocationType;
    begin
      Result := AddItem(-1) as IXMLLocationType;
    end;
    
    function TXMLLocationTypeList.Insert(const Index: Integer): IXMLLocationType;
    begin
      Result := AddItem(Index) as IXMLLocationType;
    end;
    
    function TXMLLocationTypeList.Get_Item(Index: Integer): IXMLLocationType;
    begin
      Result := List[Index] as IXMLLocationType;
    end;
    
    { TXMLPointType }
    
    function TXMLPointType.Get_Latitude: UnicodeString;
    begin
      Result := AttributeNodes['latitude'].Text;
    end;
    
    procedure TXMLPointType.Set_Latitude(Value: UnicodeString);
    begin
      SetAttribute('latitude', Value);
    end;
    
    function TXMLPointType.Get_Longitude: UnicodeString;
    begin
      Result := AttributeNodes['longitude'].Text;
    end;
    
    procedure TXMLPointType.Set_Longitude(Value: UnicodeString);
    begin
      SetAttribute('longitude', Value);
    end;
    
    function TXMLPointType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLPointType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    { TXMLNwszoneType }
    
    function TXMLNwszoneType.Get_State: UnicodeString;
    begin
      Result := AttributeNodes['state'].Text;
    end;
    
    procedure TXMLNwszoneType.Set_State(Value: UnicodeString);
    begin
      SetAttribute('state', Value);
    end;
    
    function TXMLNwszoneType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLNwszoneType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    { TXMLAreaType }
    
    procedure TXMLAreaType.AfterConstruction;
    begin
      RegisterChildNode('circle', TXMLCircleType);
      RegisterChildNode('rectangle', TXMLRectangleType);
      inherited;
    end;
    
    function TXMLAreaType.Get_Areatype: UnicodeString;
    begin
      Result := AttributeNodes['area-type'].Text;
    end;
    
    procedure TXMLAreaType.Set_Areatype(Value: UnicodeString);
    begin
      SetAttribute('area-type', Value);
    end;
    
    function TXMLAreaType.Get_Circle: IXMLCircleType;
    begin
      Result := ChildNodes['circle'] as IXMLCircleType;
    end;
    
    function TXMLAreaType.Get_Rectangle: IXMLRectangleType;
    begin
      Result := ChildNodes['rectangle'] as IXMLRectangleType;
    end;
    
    { TXMLCircleType }
    
    procedure TXMLCircleType.AfterConstruction;
    begin
      RegisterChildNode('point', TXMLPointType);
      RegisterChildNode('radius', TXMLRadiusType);
      inherited;
    end;
    
    function TXMLCircleType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLCircleType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    function TXMLCircleType.Get_Point: IXMLPointType;
    begin
      Result := ChildNodes['point'] as IXMLPointType;
    end;
    
    function TXMLCircleType.Get_Radius: IXMLRadiusType;
    begin
      Result := ChildNodes['radius'] as IXMLRadiusType;
    end;
    
    { TXMLRadiusType }
    
    function TXMLRadiusType.Get_Radiusunits: UnicodeString;
    begin
      Result := AttributeNodes['radius-units'].Text;
    end;
    
    procedure TXMLRadiusType.Set_Radiusunits(Value: UnicodeString);
    begin
      SetAttribute('radius-units', Value);
    end;
    
    { TXMLRectangleType }
    
    procedure TXMLRectangleType.AfterConstruction;
    begin
      RegisterChildNode('point', TXMLPointType);
      ItemTag := 'point';
      ItemInterface := IXMLPointType;
      inherited;
    end;
    
    function TXMLRectangleType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLRectangleType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    function TXMLRectangleType.Get_Point(Index: Integer): IXMLPointType;
    begin
      Result := List[Index] as IXMLPointType;
    end;
    
    function TXMLRectangleType.Add: IXMLPointType;
    begin
      Result := AddItem(-1) as IXMLPointType;
    end;
    
    function TXMLRectangleType.Insert(const Index: Integer): IXMLPointType;
    begin
      Result := AddItem(Index) as IXMLPointType;
    end;
    
    { TXMLCityType }
    
    function TXMLCityType.Get_State: UnicodeString;
    begin
      Result := AttributeNodes['state'].Text;
    end;
    
    procedure TXMLCityType.Set_State(Value: UnicodeString);
    begin
      SetAttribute('state', Value);
    end;
    
    function TXMLCityType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLCityType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    { TXMLHeightType }
    
    function TXMLHeightType.Get_Datum: UnicodeString;
    begin
      Result := AttributeNodes['datum'].Text;
    end;
    
    procedure TXMLHeightType.Set_Datum(Value: UnicodeString);
    begin
      SetAttribute('datum', Value);
    end;
    
    function TXMLHeightType.Get_Heightunits: UnicodeString;
    begin
      Result := AttributeNodes['height-units'].Text;
    end;
    
    procedure TXMLHeightType.Set_Heightunits(Value: UnicodeString);
    begin
      SetAttribute('height-units', Value);
    end;
    
    { TXMLLevelType }
    
    function TXMLLevelType.Get_Verticalcoordinate: UnicodeString;
    begin
      Result := AttributeNodes['vertical-coordinate'].Text;
    end;
    
    procedure TXMLLevelType.Set_Verticalcoordinate(Value: UnicodeString);
    begin
      SetAttribute('vertical-coordinate', Value);
    end;
    
    { TXMLLayerType }
    
    function TXMLLayerType.Get_Verticalcoordinate: UnicodeString;
    begin
      Result := AttributeNodes['vertical-coordinate'].Text;
    end;
    
    procedure TXMLLayerType.Set_Verticalcoordinate(Value: UnicodeString);
    begin
      SetAttribute('vertical-coordinate', Value);
    end;
    
    { TXMLMoreWeatherInformationType }
    
    function TXMLMoreWeatherInformationType.Get_Applicablelocation: UnicodeString;
    begin
      Result := AttributeNodes['applicable-location'].Text;
    end;
    
    procedure TXMLMoreWeatherInformationType.Set_Applicablelocation(Value: UnicodeString);
    begin
      SetAttribute('applicable-location', Value);
    end;
    
    { TXMLMoreWeatherInformationTypeList }
    
    function TXMLMoreWeatherInformationTypeList.Add: IXMLMoreWeatherInformationType;
    begin
      Result := AddItem(-1) as IXMLMoreWeatherInformationType;
    end;
    
    function TXMLMoreWeatherInformationTypeList.Insert(const Index: Integer): IXMLMoreWeatherInformationType;
    begin
      Result := AddItem(Index) as IXMLMoreWeatherInformationType;
    end;
    
    function TXMLMoreWeatherInformationTypeList.Get_Item(Index: Integer): IXMLMoreWeatherInformationType;
    begin
      Result := List[Index] as IXMLMoreWeatherInformationType;
    end;
    
    { TXMLTimelayoutElementType }
    
    procedure TXMLTimelayoutElementType.AfterConstruction;
    begin
      RegisterChildNode('start-valid-time', TXMLStartvalidtimeType);
      FStartvalidtime := CreateCollection(TXMLStartvalidtimeTypeList, IXMLStartvalidtimeType, 'start-valid-time') as IXMLStartvalidtimeTypeList;
      FEndvalidtime := CreateCollection(TXMLDateTimeList, IXMLNode, 'end-valid-time') as IXMLDateTimeList;
      inherited;
    end;
    
    function TXMLTimelayoutElementType.Get_Timecoordinate: UnicodeString;
    begin
      Result := AttributeNodes['time-coordinate'].Text;
    end;
    
    procedure TXMLTimelayoutElementType.Set_Timecoordinate(Value: UnicodeString);
    begin
      SetAttribute('time-coordinate', Value);
    end;
    
    function TXMLTimelayoutElementType.Get_Summarization: UnicodeString;
    begin
      Result := AttributeNodes['summarization'].Text;
    end;
    
    procedure TXMLTimelayoutElementType.Set_Summarization(Value: UnicodeString);
    begin
      SetAttribute('summarization', Value);
    end;
    
    function TXMLTimelayoutElementType.Get_Layoutkey: UnicodeString;
    begin
      Result := ChildNodes['layout-key'].Text;
    end;
    
    procedure TXMLTimelayoutElementType.Set_Layoutkey(Value: UnicodeString);
    begin
      ChildNodes['layout-key'].NodeValue := Value;
    end;
    
    function TXMLTimelayoutElementType.Get_Startvalidtime: IXMLStartvalidtimeTypeList;
    begin
      Result := FStartvalidtime;
    end;
    
    function TXMLTimelayoutElementType.Get_Endvalidtime: IXMLDateTimeList;
    begin
      Result := FEndvalidtime;
    end;
    
    { TXMLTimelayoutElementTypeList }
    
    function TXMLTimelayoutElementTypeList.Add: IXMLTimelayoutElementType;
    begin
      Result := AddItem(-1) as IXMLTimelayoutElementType;
    end;
    
    function TXMLTimelayoutElementTypeList.Insert(const Index: Integer): IXMLTimelayoutElementType;
    begin
      Result := AddItem(Index) as IXMLTimelayoutElementType;
    end;
    
    function TXMLTimelayoutElementTypeList.Get_Item(Index: Integer): IXMLTimelayoutElementType;
    begin
      Result := List[Index] as IXMLTimelayoutElementType;
    end;
    
    { TXMLStartvalidtimeType }
    
    function TXMLStartvalidtimeType.Get_Periodname: UnicodeString;
    begin
      Result := AttributeNodes['period-name'].Text;
    end;
    
    procedure TXMLStartvalidtimeType.Set_Periodname(Value: UnicodeString);
    begin
      SetAttribute('period-name', Value);
    end;
    
    { TXMLStartvalidtimeTypeList }
    
    function TXMLStartvalidtimeTypeList.Add: IXMLStartvalidtimeType;
    begin
      Result := AddItem(-1) as IXMLStartvalidtimeType;
    end;
    
    function TXMLStartvalidtimeTypeList.Insert(const Index: Integer): IXMLStartvalidtimeType;
    begin
      Result := AddItem(Index) as IXMLStartvalidtimeType;
    end;
    
    function TXMLStartvalidtimeTypeList.Get_Item(Index: Integer): IXMLStartvalidtimeType;
    begin
      Result := List[Index] as IXMLStartvalidtimeType;
    end;
    
    { TXMLParametersType }
    
    procedure TXMLParametersType.AfterConstruction;
    begin
      RegisterChildNode('categories', TXMLCategoriesType);
      RegisterChildNode('temperature', TXMLTemperature);
      RegisterChildNode('precipitation', TXMLPrecipitation);
      RegisterChildNode('probability-of-precipitation', TXMLProbabilityofprecipitation);
      RegisterChildNode('fire-weather', TXMLFireweather);
      RegisterChildNode('convective-hazard', TXMLConvectivehazard);
      RegisterChildNode('climate-anomaly', TXMLClimateanomaly);
      RegisterChildNode('wind-speed', TXMLWindspeed);
      RegisterChildNode('direction', TXMLDirection);
      RegisterChildNode('cloud-amount', TXMLCloudamount);
      RegisterChildNode('humidity', TXMLHumidity);
      RegisterChildNode('weather', TXMLWeather);
      RegisterChildNode('conditions-icon', TXMLConditionsicon);
      RegisterChildNode('hazards', TXMLHazards);
      RegisterChildNode('wordedForecast', TXMLWordedForecast);
      RegisterChildNode('pressure', TXMLPressure);
      RegisterChildNode('probabilisticCondition', TXMLProbabilisticCondition);
      RegisterChildNode('water-state', TXMLWaterstate);
      FCategories := CreateCollection(TXMLCategoriesTypeList, IXMLCategoriesType, 'categories') as IXMLCategoriesTypeList;
      FTemperature := CreateCollection(TXMLTemperatureList, IXMLTemperature, 'temperature') as IXMLTemperatureList;
      FPrecipitation := CreateCollection(TXMLPrecipitationList, IXMLPrecipitation, 'precipitation') as IXMLPrecipitationList;
      FProbabilityofprecipitation := CreateCollection(TXMLProbabilityofprecipitationList, IXMLProbabilityofprecipitation, 'probability-of-precipitation') as IXMLProbabilityofprecipitationList;
      FFireweather := CreateCollection(TXMLFireweatherList, IXMLFireweather, 'fire-weather') as IXMLFireweatherList;
      FConvectivehazard := CreateCollection(TXMLConvectivehazardList, IXMLConvectivehazard, 'convective-hazard') as IXMLConvectivehazardList;
      FClimateanomaly := CreateCollection(TXMLClimateanomalyList, IXMLClimateanomaly, 'climate-anomaly') as IXMLClimateanomalyList;
      FWindspeed := CreateCollection(TXMLWindspeedList, IXMLWindspeed, 'wind-speed') as IXMLWindspeedList;
      FDirection := CreateCollection(TXMLDirectionList, IXMLDirection, 'direction') as IXMLDirectionList;
      FCloudamount := CreateCollection(TXMLCloudamountList, IXMLCloudamount, 'cloud-amount') as IXMLCloudamountList;
      FHumidity := CreateCollection(TXMLHumidityList, IXMLHumidity, 'humidity') as IXMLHumidityList;
      FWeather := CreateCollection(TXMLWeatherList, IXMLWeather, 'weather') as IXMLWeatherList;
      FConditionsicon := CreateCollection(TXMLConditionsiconList, IXMLConditionsicon, 'conditions-icon') as IXMLConditionsiconList;
      FHazards := CreateCollection(TXMLHazardsList, IXMLHazards, 'hazards') as IXMLHazardsList;
      FPressure := CreateCollection(TXMLPressureList, IXMLPressure, 'pressure') as IXMLPressureList;
      FProbabilisticCondition := CreateCollection(TXMLProbabilisticConditionList, IXMLProbabilisticCondition, 'probabilisticCondition') as IXMLProbabilisticConditionList;
      FWaterstate := CreateCollection(TXMLWaterstateList, IXMLWaterstate, 'water-state') as IXMLWaterstateList;
      inherited;
    end;
    
    function TXMLParametersType.Get_Applicablelocation: UnicodeString;
    begin
      Result := AttributeNodes['applicable-location'].Text;
    end;
    
    procedure TXMLParametersType.Set_Applicablelocation(Value: UnicodeString);
    begin
      SetAttribute('applicable-location', Value);
    end;
    
    function TXMLParametersType.Get_Categories: IXMLCategoriesTypeList;
    begin
      Result := FCategories;
    end;
    
    function TXMLParametersType.Get_Temperature: IXMLTemperatureList;
    begin
      Result := FTemperature;
    end;
    
    function TXMLParametersType.Get_Precipitation: IXMLPrecipitationList;
    begin
      Result := FPrecipitation;
    end;
    
    function TXMLParametersType.Get_Probabilityofprecipitation: IXMLProbabilityofprecipitationList;
    begin
      Result := FProbabilityofprecipitation;
    end;
    
    function TXMLParametersType.Get_Fireweather: IXMLFireweatherList;
    begin
      Result := FFireweather;
    end;
    
    function TXMLParametersType.Get_Convectivehazard: IXMLConvectivehazardList;
    begin
      Result := FConvectivehazard;
    end;
    
    function TXMLParametersType.Get_Climateanomaly: IXMLClimateanomalyList;
    begin
      Result := FClimateanomaly;
    end;
    
    function TXMLParametersType.Get_Windspeed: IXMLWindspeedList;
    begin
      Result := FWindspeed;
    end;
    
    function TXMLParametersType.Get_Direction: IXMLDirectionList;
    begin
      Result := FDirection;
    end;
    
    function TXMLParametersType.Get_Cloudamount: IXMLCloudamountList;
    begin
      Result := FCloudamount;
    end;
    
    function TXMLParametersType.Get_Humidity: IXMLHumidityList;
    begin
      Result := FHumidity;
    end;
    
    function TXMLParametersType.Get_Weather: IXMLWeatherList;
    begin
      Result := FWeather;
    end;
    
    function TXMLParametersType.Get_Conditionsicon: IXMLConditionsiconList;
    begin
      Result := FConditionsicon;
    end;
    
    function TXMLParametersType.Get_Hazards: IXMLHazardsList;
    begin
      Result := FHazards;
    end;
    
    function TXMLParametersType.Get_WordedForecast: IXMLWordedForecast;
    begin
      Result := ChildNodes['wordedForecast'] as IXMLWordedForecast;
    end;
    
    function TXMLParametersType.Get_Pressure: IXMLPressureList;
    begin
      Result := FPressure;
    end;
    
    function TXMLParametersType.Get_ProbabilisticCondition: IXMLProbabilisticConditionList;
    begin
      Result := FProbabilisticCondition;
    end;
    
    function TXMLParametersType.Get_Waterstate: IXMLWaterstateList;
    begin
      Result := FWaterstate;
    end;
    
    { TXMLParametersTypeList }
    
    function TXMLParametersTypeList.Add: IXMLParametersType;
    begin
      Result := AddItem(-1) as IXMLParametersType;
    end;
    
    function TXMLParametersTypeList.Insert(const Index: Integer): IXMLParametersType;
    begin
      Result := AddItem(Index) as IXMLParametersType;
    end;
    
    function TXMLParametersTypeList.Get_Item(Index: Integer): IXMLParametersType;
    begin
      Result := List[Index] as IXMLParametersType;
    end;
    
    { TXMLCategoriesType }
    
    procedure TXMLCategoriesType.AfterConstruction;
    begin
      RegisterChildNode('valueList', TXMLValueListType);
      inherited;
    end;
    
    function TXMLCategoriesType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLCategoriesType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLCategoriesType.Get_Probabilitytype: UnicodeString;
    begin
      Result := AttributeNodes['probability-type'].Text;
    end;
    
    procedure TXMLCategoriesType.Set_Probabilitytype(Value: UnicodeString);
    begin
      SetAttribute('probability-type', Value);
    end;
    
    function TXMLCategoriesType.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLCategoriesType.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLCategoriesType.Get_Categorieskey: UnicodeString;
    begin
      Result := ChildNodes['categories-key'].Text;
    end;
    
    procedure TXMLCategoriesType.Set_Categorieskey(Value: UnicodeString);
    begin
      ChildNodes['categories-key'].NodeValue := Value;
    end;
    
    function TXMLCategoriesType.Get_ValueList: IXMLValueListType;
    begin
      Result := ChildNodes['valueList'] as IXMLValueListType;
    end;
    
    { TXMLCategoriesTypeList }
    
    function TXMLCategoriesTypeList.Add: IXMLCategoriesType;
    begin
      Result := AddItem(-1) as IXMLCategoriesType;
    end;
    
    function TXMLCategoriesTypeList.Insert(const Index: Integer): IXMLCategoriesType;
    begin
      Result := AddItem(Index) as IXMLCategoriesType;
    end;
    
    function TXMLCategoriesTypeList.Get_Item(Index: Integer): IXMLCategoriesType;
    begin
      Result := List[Index] as IXMLCategoriesType;
    end;
    
    { TXMLValueListType }
    
    function TXMLValueListType.Get_Median: UnicodeString;
    begin
      Result := AttributeNodes['median'].Text;
    end;
    
    procedure TXMLValueListType.Set_Median(Value: UnicodeString);
    begin
      SetAttribute('median', Value);
    end;
    
    function TXMLValueListType.Get_ConfidenceInterval50: UnicodeString;
    begin
      Result := AttributeNodes['confidenceInterval50'].Text;
    end;
    
    procedure TXMLValueListType.Set_ConfidenceInterval50(Value: UnicodeString);
    begin
      SetAttribute('confidenceInterval50', Value);
    end;
    
    function TXMLValueListType.Get_ConfidenceInterval80: UnicodeString;
    begin
      Result := AttributeNodes['confidenceInterval80'].Text;
    end;
    
    procedure TXMLValueListType.Set_ConfidenceInterval80(Value: UnicodeString);
    begin
      SetAttribute('confidenceInterval80', Value);
    end;
    
    function TXMLValueListType.Get_Skew80: UnicodeString;
    begin
      Result := AttributeNodes['skew80'].Text;
    end;
    
    procedure TXMLValueListType.Set_Skew80(Value: UnicodeString);
    begin
      SetAttribute('skew80', Value);
    end;
    
    { TXMLValueListTypeList }
    
    function TXMLValueListTypeList.Add: IXMLValueListType;
    begin
      Result := AddItem(-1) as IXMLValueListType;
    end;
    
    function TXMLValueListTypeList.Insert(const Index: Integer): IXMLValueListType;
    begin
      Result := AddItem(Index) as IXMLValueListType;
    end;
    
    function TXMLValueListTypeList.Get_Item(Index: Integer): IXMLValueListType;
    begin
      Result := List[Index] as IXMLValueListType;
    end;
    
    { TXMLTemperature }
    
    procedure TXMLTemperature.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLTempValType);
      RegisterChildNode('valueList', TXMLValueListType);
      RegisterChildNode('valueWithUncertainty', TXMLValueWithUncertainty);
      FValue := CreateCollection(TXMLTempValTypeList, IXMLTempValType, 'value') as IXMLTempValTypeList;
      FValueList := CreateCollection(TXMLValueListTypeList, IXMLValueListType, 'valueList') as IXMLValueListTypeList;
      FValueWithUncertainty := CreateCollection(TXMLValueWithUncertaintyList, IXMLValueWithUncertainty, 'valueWithUncertainty') as IXMLValueWithUncertaintyList;
      inherited;
    end;
    
    function TXMLTemperature.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLTemperature.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLTemperature.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLTemperature.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLTemperature.Get_LikelihoodUnits: UnicodeString;
    begin
      Result := AttributeNodes['likelihoodUnits'].Text;
    end;
    
    procedure TXMLTemperature.Set_LikelihoodUnits(Value: UnicodeString);
    begin
      SetAttribute('likelihoodUnits', Value);
    end;
    
    function TXMLTemperature.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLTemperature.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLTemperature.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLTemperature.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLTemperature.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLTemperature.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLTemperature.Get_Applicablecategories: UnicodeString;
    begin
      Result := AttributeNodes['applicable-categories'].Text;
    end;
    
    procedure TXMLTemperature.Set_Applicablecategories(Value: UnicodeString);
    begin
      SetAttribute('applicable-categories', Value);
    end;
    
    function TXMLTemperature.Get_Probabilitytype: UnicodeString;
    begin
      Result := AttributeNodes['probability-type'].Text;
    end;
    
    procedure TXMLTemperature.Set_Probabilitytype(Value: UnicodeString);
    begin
      SetAttribute('probability-type', Value);
    end;
    
    function TXMLTemperature.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLTemperature.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLTemperature.Get_Value: IXMLTempValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLTemperature.Get_ValueList: IXMLValueListTypeList;
    begin
      Result := FValueList;
    end;
    
    function TXMLTemperature.Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
    begin
      Result := FValueWithUncertainty;
    end;
    
    { TXMLTemperatureList }
    
    function TXMLTemperatureList.Add: IXMLTemperature;
    begin
      Result := AddItem(-1) as IXMLTemperature;
    end;
    
    function TXMLTemperatureList.Insert(const Index: Integer): IXMLTemperature;
    begin
      Result := AddItem(Index) as IXMLTemperature;
    end;
    
    function TXMLTemperatureList.Get_Item(Index: Integer): IXMLTemperature;
    begin
      Result := List[Index] as IXMLTemperature;
    end;
    
    { TXMLTempValType }
    
    function TXMLTempValType.Get_Upperrange: Integer;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLTempValType.Set_Upperrange(Value: Integer);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLTempValType.Get_Lowerrange: Integer;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLTempValType.Set_Lowerrange(Value: Integer);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    function TXMLTempValType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLTempValType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    { TXMLTempValTypeList }
    
    function TXMLTempValTypeList.Add: IXMLTempValType;
    begin
      Result := AddItem(-1) as IXMLTempValType;
    end;
    
    function TXMLTempValTypeList.Insert(const Index: Integer): IXMLTempValType;
    begin
      Result := AddItem(Index) as IXMLTempValType;
    end;
    
    function TXMLTempValTypeList.Get_Item(Index: Integer): IXMLTempValType;
    begin
      Result := List[Index] as IXMLTempValType;
    end;
    
    { TXMLValueWithUncertainty }
    
    procedure TXMLValueWithUncertainty.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLTempValType);
      RegisterChildNode('uncertainty', TXMLUncertaintyType);
      inherited;
    end;
    
    function TXMLValueWithUncertainty.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLValueWithUncertainty.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLValueWithUncertainty.Get_Value: IXMLTempValType;
    begin
      Result := ChildNodes['value'] as IXMLTempValType;
    end;
    
    function TXMLValueWithUncertainty.Get_Uncertainty: IXMLUncertaintyType;
    begin
      Result := ChildNodes['uncertainty'] as IXMLUncertaintyType;
    end;
    
    function TXMLValueWithUncertainty.Get_NumberWithEquality: UnicodeString;
    begin
      Result := ChildNodes['numberWithEquality'].Text;
    end;
    
    procedure TXMLValueWithUncertainty.Set_NumberWithEquality(Value: UnicodeString);
    begin
      ChildNodes['numberWithEquality'].NodeValue := Value;
    end;
    
    { TXMLValueWithUncertaintyList }
    
    function TXMLValueWithUncertaintyList.Add: IXMLValueWithUncertainty;
    begin
      Result := AddItem(-1) as IXMLValueWithUncertainty;
    end;
    
    function TXMLValueWithUncertaintyList.Insert(const Index: Integer): IXMLValueWithUncertainty;
    begin
      Result := AddItem(Index) as IXMLValueWithUncertainty;
    end;
    
    function TXMLValueWithUncertaintyList.Get_Item(Index: Integer): IXMLValueWithUncertainty;
    begin
      Result := List[Index] as IXMLValueWithUncertainty;
    end;
    
    { TXMLUncertaintyType }
    
    procedure TXMLUncertaintyType.AfterConstruction;
    begin
      RegisterChildNode('error', TXMLError);
      inherited;
    end;
    
    function TXMLUncertaintyType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLUncertaintyType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLUncertaintyType.Get_Error: IXMLError;
    begin
      Result := ChildNodes['error'] as IXMLError;
    end;
    
    { TXMLError }
    
    function TXMLError.Get_Qualifier: UnicodeString;
    begin
      Result := AttributeNodes['qualifier'].Text;
    end;
    
    procedure TXMLError.Set_Qualifier(Value: UnicodeString);
    begin
      SetAttribute('qualifier', Value);
    end;
    
    { TXMLPrecipitation }
    
    procedure TXMLPrecipitation.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLDecimalValType);
      RegisterChildNode('valueList', TXMLValueListType);
      RegisterChildNode('valueWithUncertainty', TXMLValueWithUncertainty);
      FValue := CreateCollection(TXMLDecimalValTypeList, IXMLDecimalValType, 'value') as IXMLDecimalValTypeList;
      FValueList := CreateCollection(TXMLValueListTypeList, IXMLValueListType, 'valueList') as IXMLValueListTypeList;
      FValueWithUncertainty := CreateCollection(TXMLValueWithUncertaintyList, IXMLValueWithUncertainty, 'valueWithUncertainty') as IXMLValueWithUncertaintyList;
      inherited;
    end;
    
    function TXMLPrecipitation.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLPrecipitation.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLPrecipitation.Get_LikelihoodUnits: UnicodeString;
    begin
      Result := AttributeNodes['likelihoodUnits'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_LikelihoodUnits(Value: UnicodeString);
    begin
      SetAttribute('likelihoodUnits', Value);
    end;
    
    function TXMLPrecipitation.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLPrecipitation.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLPrecipitation.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLPrecipitation.Get_Probabilitytype: UnicodeString;
    begin
      Result := AttributeNodes['probability-type'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Probabilitytype(Value: UnicodeString);
    begin
      SetAttribute('probability-type', Value);
    end;
    
    function TXMLPrecipitation.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLPrecipitation.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLPrecipitation.Get_Value: IXMLDecimalValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLPrecipitation.Get_ValueList: IXMLValueListTypeList;
    begin
      Result := FValueList;
    end;
    
    function TXMLPrecipitation.Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
    begin
      Result := FValueWithUncertainty;
    end;
    
    { TXMLPrecipitationList }
    
    function TXMLPrecipitationList.Add: IXMLPrecipitation;
    begin
      Result := AddItem(-1) as IXMLPrecipitation;
    end;
    
    function TXMLPrecipitationList.Insert(const Index: Integer): IXMLPrecipitation;
    begin
      Result := AddItem(Index) as IXMLPrecipitation;
    end;
    
    function TXMLPrecipitationList.Get_Item(Index: Integer): IXMLPrecipitation;
    begin
      Result := List[Index] as IXMLPrecipitation;
    end;
    
    { TXMLDecimalValType }
    
    function TXMLDecimalValType.Get_Upperrange: LongWord;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLDecimalValType.Set_Upperrange(Value: LongWord);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLDecimalValType.Get_Lowerrange: LongWord;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLDecimalValType.Set_Lowerrange(Value: LongWord);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    function TXMLDecimalValType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLDecimalValType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    { TXMLDecimalValTypeList }
    
    function TXMLDecimalValTypeList.Add: IXMLDecimalValType;
    begin
      Result := AddItem(-1) as IXMLDecimalValType;
    end;
    
    function TXMLDecimalValTypeList.Insert(const Index: Integer): IXMLDecimalValType;
    begin
      Result := AddItem(Index) as IXMLDecimalValType;
    end;
    
    function TXMLDecimalValTypeList.Get_Item(Index: Integer): IXMLDecimalValType;
    begin
      Result := List[Index] as IXMLDecimalValType;
    end;
    
    { TXMLProbabilityofprecipitation }
    
    procedure TXMLProbabilityofprecipitation.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLPercentageValType);
      RegisterChildNode('valueList', TXMLValueListType);
      FValue := CreateCollection(TXMLPercentageValTypeList, IXMLPercentageValType, 'value') as IXMLPercentageValTypeList;
      FValueList := CreateCollection(TXMLValueListTypeList, IXMLValueListType, 'valueList') as IXMLValueListTypeList;
      inherited;
    end;
    
    function TXMLProbabilityofprecipitation.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_LikelihoodUnits: UnicodeString;
    begin
      Result := AttributeNodes['likelihoodUnits'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_LikelihoodUnits(Value: UnicodeString);
    begin
      SetAttribute('likelihoodUnits', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Applicablecategories: UnicodeString;
    begin
      Result := AttributeNodes['applicable-categories'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Applicablecategories(Value: UnicodeString);
    begin
      SetAttribute('applicable-categories', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Probabilitytype: UnicodeString;
    begin
      Result := AttributeNodes['probability-type'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Probabilitytype(Value: UnicodeString);
    begin
      SetAttribute('probability-type', Value);
    end;
    
    function TXMLProbabilityofprecipitation.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLProbabilityofprecipitation.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLProbabilityofprecipitation.Get_Value: IXMLPercentageValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLProbabilityofprecipitation.Get_ValueList: IXMLValueListTypeList;
    begin
      Result := FValueList;
    end;
    
    { TXMLProbabilityofprecipitationList }
    
    function TXMLProbabilityofprecipitationList.Add: IXMLProbabilityofprecipitation;
    begin
      Result := AddItem(-1) as IXMLProbabilityofprecipitation;
    end;
    
    function TXMLProbabilityofprecipitationList.Insert(const Index: Integer): IXMLProbabilityofprecipitation;
    begin
      Result := AddItem(Index) as IXMLProbabilityofprecipitation;
    end;
    
    function TXMLProbabilityofprecipitationList.Get_Item(Index: Integer): IXMLProbabilityofprecipitation;
    begin
      Result := List[Index] as IXMLProbabilityofprecipitation;
    end;
    
    { TXMLPercentageValType }
    
    function TXMLPercentageValType.Get_Upperrange: LongWord;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLPercentageValType.Set_Upperrange(Value: LongWord);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLPercentageValType.Get_Lowerrange: LongWord;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLPercentageValType.Set_Lowerrange(Value: LongWord);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    function TXMLPercentageValType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLPercentageValType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    { TXMLPercentageValTypeList }
    
    function TXMLPercentageValTypeList.Add: IXMLPercentageValType;
    begin
      Result := AddItem(-1) as IXMLPercentageValType;
    end;
    
    function TXMLPercentageValTypeList.Insert(const Index: Integer): IXMLPercentageValType;
    begin
      Result := AddItem(Index) as IXMLPercentageValType;
    end;
    
    function TXMLPercentageValTypeList.Get_Item(Index: Integer): IXMLPercentageValType;
    begin
      Result := List[Index] as IXMLPercentageValType;
    end;
    
    { TXMLFireweather }
    
    procedure TXMLFireweather.AfterConstruction;
    begin
      FValue := CreateCollection(TXMLValueList, IXMLNode, 'value') as IXMLValueList;
      inherited;
    end;
    
    function TXMLFireweather.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLFireweather.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLFireweather.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLFireweather.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLFireweather.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLFireweather.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLFireweather.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLFireweather.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLFireweather.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLFireweather.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLFireweather.Get_Value: IXMLValueList;
    begin
      Result := FValue;
    end;
    
    { TXMLFireweatherList }
    
    function TXMLFireweatherList.Add: IXMLFireweather;
    begin
      Result := AddItem(-1) as IXMLFireweather;
    end;
    
    function TXMLFireweatherList.Insert(const Index: Integer): IXMLFireweather;
    begin
      Result := AddItem(Index) as IXMLFireweather;
    end;
    
    function TXMLFireweatherList.Get_Item(Index: Integer): IXMLFireweather;
    begin
      Result := List[Index] as IXMLFireweather;
    end;
    
    { TXMLConvectivehazard }
    
    procedure TXMLConvectivehazard.AfterConstruction;
    begin
      RegisterChildNode('outlook', TXMLOutlook);
      RegisterChildNode('severe-component', TXMLSeverecomponent);
      FSeverecomponent := CreateCollection(TXMLSeverecomponentList, IXMLSeverecomponent, 'severe-component') as IXMLSeverecomponentList;
      inherited;
    end;
    
    function TXMLConvectivehazard.Get_Outlook: IXMLOutlook;
    begin
      Result := ChildNodes['outlook'] as IXMLOutlook;
    end;
    
    function TXMLConvectivehazard.Get_Severecomponent: IXMLSeverecomponentList;
    begin
      Result := FSeverecomponent;
    end;
    
    { TXMLConvectivehazardList }
    
    function TXMLConvectivehazardList.Add: IXMLConvectivehazard;
    begin
      Result := AddItem(-1) as IXMLConvectivehazard;
    end;
    
    function TXMLConvectivehazardList.Insert(const Index: Integer): IXMLConvectivehazard;
    begin
      Result := AddItem(Index) as IXMLConvectivehazard;
    end;
    
    function TXMLConvectivehazardList.Get_Item(Index: Integer): IXMLConvectivehazard;
    begin
      Result := List[Index] as IXMLConvectivehazard;
    end;
    
    { TXMLOutlook }
    
    procedure TXMLOutlook.AfterConstruction;
    begin
      FValue := CreateCollection(TXMLValueList, IXMLNode, 'value') as IXMLValueList;
      inherited;
    end;
    
    function TXMLOutlook.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLOutlook.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLOutlook.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLOutlook.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLOutlook.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLOutlook.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLOutlook.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLOutlook.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLOutlook.Get_Value: IXMLValueList;
    begin
      Result := FValue;
    end;
    
    { TXMLSeverecomponent }
    
    procedure TXMLSeverecomponent.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLValue);
      FValue := CreateCollection(TXMLValueList, IXMLValue, 'value') as IXMLValueList;
      inherited;
    end;
    
    function TXMLSeverecomponent.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLSeverecomponent.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLSeverecomponent.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLSeverecomponent.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLSeverecomponent.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLSeverecomponent.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLSeverecomponent.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLSeverecomponent.Get_Value: IXMLValueList;
    begin
      Result := FValue;
    end;
    
    { TXMLSeverecomponentList }
    
    function TXMLSeverecomponentList.Add: IXMLSeverecomponent;
    begin
      Result := AddItem(-1) as IXMLSeverecomponent;
    end;
    
    function TXMLSeverecomponentList.Insert(const Index: Integer): IXMLSeverecomponent;
    begin
      Result := AddItem(Index) as IXMLSeverecomponent;
    end;
    
    function TXMLSeverecomponentList.Get_Item(Index: Integer): IXMLSeverecomponent;
    begin
      Result := List[Index] as IXMLSeverecomponent;
    end;
    
    { TXMLValue }
    
    function TXMLValue.Get_Upperrange: LongWord;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLValue.Set_Upperrange(Value: LongWord);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLValue.Get_Lowerrange: LongWord;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLValue.Set_Lowerrange(Value: LongWord);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    { TXMLValueList }
    
    function TXMLValueList.Add: IXMLValue;
    begin
      Result := AddItem(-1) as IXMLValue;
    end;
    
    function TXMLValueList.Insert(const Index: Integer): IXMLValue;
    begin
      Result := AddItem(Index) as IXMLValue;
    end;
    
    function TXMLValueList.Get_Item(Index: Integer): IXMLValue;
    begin
      Result := List[Index] as IXMLValue;
    end;
    
    { TXMLClimateanomaly }
    
    procedure TXMLClimateanomaly.AfterConstruction;
    begin
      RegisterChildNode('weekly', TXMLAnomalyType);
      RegisterChildNode('monthly', TXMLAnomalyType);
      RegisterChildNode('seasonal', TXMLAnomalyType);
      FWeekly := CreateCollection(TXMLAnomalyTypeList, IXMLAnomalyType, 'weekly') as IXMLAnomalyTypeList;
      FMonthly := CreateCollection(TXMLAnomalyTypeList, IXMLAnomalyType, 'monthly') as IXMLAnomalyTypeList;
      FSeasonal := CreateCollection(TXMLAnomalyTypeList, IXMLAnomalyType, 'seasonal') as IXMLAnomalyTypeList;
      inherited;
    end;
    
    function TXMLClimateanomaly.Get_Weekly: IXMLAnomalyTypeList;
    begin
      Result := FWeekly;
    end;
    
    function TXMLClimateanomaly.Get_Monthly: IXMLAnomalyTypeList;
    begin
      Result := FMonthly;
    end;
    
    function TXMLClimateanomaly.Get_Seasonal: IXMLAnomalyTypeList;
    begin
      Result := FSeasonal;
    end;
    
    { TXMLClimateanomalyList }
    
    function TXMLClimateanomalyList.Add: IXMLClimateanomaly;
    begin
      Result := AddItem(-1) as IXMLClimateanomaly;
    end;
    
    function TXMLClimateanomalyList.Insert(const Index: Integer): IXMLClimateanomaly;
    begin
      Result := AddItem(Index) as IXMLClimateanomaly;
    end;
    
    function TXMLClimateanomalyList.Get_Item(Index: Integer): IXMLClimateanomaly;
    begin
      Result := List[Index] as IXMLClimateanomaly;
    end;
    
    { TXMLAnomalyType }
    
    procedure TXMLAnomalyType.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLValue);
      FValue := CreateCollection(TXMLValueList, IXMLValue, 'value') as IXMLValueList;
      inherited;
    end;
    
    function TXMLAnomalyType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLAnomalyType.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLAnomalyType.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLAnomalyType.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLAnomalyType.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLAnomalyType.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLAnomalyType.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLAnomalyType.Get_Value: IXMLValueList;
    begin
      Result := FValue;
    end;
    
    { TXMLAnomalyTypeList }
    
    function TXMLAnomalyTypeList.Add: IXMLAnomalyType;
    begin
      Result := AddItem(-1) as IXMLAnomalyType;
    end;
    
    function TXMLAnomalyTypeList.Insert(const Index: Integer): IXMLAnomalyType;
    begin
      Result := AddItem(Index) as IXMLAnomalyType;
    end;
    
    function TXMLAnomalyTypeList.Get_Item(Index: Integer): IXMLAnomalyType;
    begin
      Result := List[Index] as IXMLAnomalyType;
    end;
    
    { TXMLWindspeed }
    
    procedure TXMLWindspeed.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLWspdValType);
      RegisterChildNode('valueWithUncertainty', TXMLValueWithUncertainty);
      FValue := CreateCollection(TXMLWspdValTypeList, IXMLWspdValType, 'value') as IXMLWspdValTypeList;
      FValueWithUncertainty := CreateCollection(TXMLValueWithUncertaintyList, IXMLValueWithUncertainty, 'valueWithUncertainty') as IXMLValueWithUncertaintyList;
      inherited;
    end;
    
    function TXMLWindspeed.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLWindspeed.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLWindspeed.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLWindspeed.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLWindspeed.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLWindspeed.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLWindspeed.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLWindspeed.Get_Value: IXMLWspdValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLWindspeed.Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
    begin
      Result := FValueWithUncertainty;
    end;
    
    { TXMLWindspeedList }
    
    function TXMLWindspeedList.Add: IXMLWindspeed;
    begin
      Result := AddItem(-1) as IXMLWindspeed;
    end;
    
    function TXMLWindspeedList.Insert(const Index: Integer): IXMLWindspeed;
    begin
      Result := AddItem(Index) as IXMLWindspeed;
    end;
    
    function TXMLWindspeedList.Get_Item(Index: Integer): IXMLWindspeed;
    begin
      Result := List[Index] as IXMLWindspeed;
    end;
    
    { TXMLWspdValType }
    
    function TXMLWspdValType.Get_Upperrange: LongWord;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLWspdValType.Set_Upperrange(Value: LongWord);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLWspdValType.Get_Lowerrange: LongWord;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLWspdValType.Set_Lowerrange(Value: LongWord);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    function TXMLWspdValType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLWspdValType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    { TXMLWspdValTypeList }
    
    function TXMLWspdValTypeList.Add: IXMLWspdValType;
    begin
      Result := AddItem(-1) as IXMLWspdValType;
    end;
    
    function TXMLWspdValTypeList.Insert(const Index: Integer): IXMLWspdValType;
    begin
      Result := AddItem(Index) as IXMLWspdValType;
    end;
    
    function TXMLWspdValTypeList.Get_Item(Index: Integer): IXMLWspdValType;
    begin
      Result := List[Index] as IXMLWspdValType;
    end;
    
    { TXMLDirection }
    
    procedure TXMLDirection.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLWdirValType);
      RegisterChildNode('valueWithUncertainty', TXMLValueWithUncertainty);
      FValue := CreateCollection(TXMLWdirValTypeList, IXMLWdirValType, 'value') as IXMLWdirValTypeList;
      FValueWithUncertainty := CreateCollection(TXMLValueWithUncertaintyList, IXMLValueWithUncertainty, 'valueWithUncertainty') as IXMLValueWithUncertaintyList;
      inherited;
    end;
    
    function TXMLDirection.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLDirection.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLDirection.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLDirection.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLDirection.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLDirection.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLDirection.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLDirection.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLDirection.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLDirection.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLDirection.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLDirection.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLDirection.Get_Value: IXMLWdirValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLDirection.Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
    begin
      Result := FValueWithUncertainty;
    end;
    
    { TXMLDirectionList }
    
    function TXMLDirectionList.Add: IXMLDirection;
    begin
      Result := AddItem(-1) as IXMLDirection;
    end;
    
    function TXMLDirectionList.Insert(const Index: Integer): IXMLDirection;
    begin
      Result := AddItem(Index) as IXMLDirection;
    end;
    
    function TXMLDirectionList.Get_Item(Index: Integer): IXMLDirection;
    begin
      Result := List[Index] as IXMLDirection;
    end;
    
    { TXMLWdirValType }
    
    function TXMLWdirValType.Get_Upperrange: LongWord;
    begin
      Result := AttributeNodes['upper-range'].NodeValue;
    end;
    
    procedure TXMLWdirValType.Set_Upperrange(Value: LongWord);
    begin
      SetAttribute('upper-range', Value);
    end;
    
    function TXMLWdirValType.Get_Lowerrange: LongWord;
    begin
      Result := AttributeNodes['lower-range'].NodeValue;
    end;
    
    procedure TXMLWdirValType.Set_Lowerrange(Value: LongWord);
    begin
      SetAttribute('lower-range', Value);
    end;
    
    function TXMLWdirValType.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLWdirValType.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    { TXMLWdirValTypeList }
    
    function TXMLWdirValTypeList.Add: IXMLWdirValType;
    begin
      Result := AddItem(-1) as IXMLWdirValType;
    end;
    
    function TXMLWdirValTypeList.Insert(const Index: Integer): IXMLWdirValType;
    begin
      Result := AddItem(Index) as IXMLWdirValType;
    end;
    
    function TXMLWdirValTypeList.Get_Item(Index: Integer): IXMLWdirValType;
    begin
      Result := List[Index] as IXMLWdirValType;
    end;
    
    { TXMLCloudamount }
    
    procedure TXMLCloudamount.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLPercentageValType);
      RegisterChildNode('valueWithUncertainty', TXMLValueWithUncertainty);
      FValue := CreateCollection(TXMLPercentageValTypeList, IXMLPercentageValType, 'value') as IXMLPercentageValTypeList;
      FValueWithUncertainty := CreateCollection(TXMLValueWithUncertaintyList, IXMLValueWithUncertainty, 'valueWithUncertainty') as IXMLValueWithUncertaintyList;
      inherited;
    end;
    
    function TXMLCloudamount.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLCloudamount.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLCloudamount.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLCloudamount.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLCloudamount.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLCloudamount.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLCloudamount.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLCloudamount.Get_Value: IXMLPercentageValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLCloudamount.Get_ValueWithUncertainty: IXMLValueWithUncertaintyList;
    begin
      Result := FValueWithUncertainty;
    end;
    
    { TXMLCloudamountList }
    
    function TXMLCloudamountList.Add: IXMLCloudamount;
    begin
      Result := AddItem(-1) as IXMLCloudamount;
    end;
    
    function TXMLCloudamountList.Insert(const Index: Integer): IXMLCloudamount;
    begin
      Result := AddItem(Index) as IXMLCloudamount;
    end;
    
    function TXMLCloudamountList.Get_Item(Index: Integer): IXMLCloudamount;
    begin
      Result := List[Index] as IXMLCloudamount;
    end;
    
    { TXMLHumidity }
    
    procedure TXMLHumidity.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLValue);
      FValue := CreateCollection(TXMLValueList, IXMLValue, 'value') as IXMLValueList;
      inherited;
    end;
    
    function TXMLHumidity.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLHumidity.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLHumidity.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLHumidity.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLHumidity.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLHumidity.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLHumidity.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLHumidity.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLHumidity.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLHumidity.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLHumidity.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLHumidity.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLHumidity.Get_Value: IXMLValueList;
    begin
      Result := FValue;
    end;
    
    { TXMLHumidityList }
    
    function TXMLHumidityList.Add: IXMLHumidity;
    begin
      Result := AddItem(-1) as IXMLHumidity;
    end;
    
    function TXMLHumidityList.Insert(const Index: Integer): IXMLHumidity;
    begin
      Result := AddItem(Index) as IXMLHumidity;
    end;
    
    function TXMLHumidityList.Get_Item(Index: Integer): IXMLHumidity;
    begin
      Result := List[Index] as IXMLHumidity;
    end;
    
    { TXMLWeather }
    
    procedure TXMLWeather.AfterConstruction;
    begin
      RegisterChildNode('weather-conditions', TXMLWeatherconditions);
      FName := CreateCollection(TXMLString_List, IXMLNode, 'name') as IXMLString_List;
      FWeatherconditions := CreateCollection(TXMLWeatherconditionsList, IXMLWeatherconditions, 'weather-conditions') as IXMLWeatherconditionsList;
      inherited;
    end;
    
    function TXMLWeather.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLWeather.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLWeather.Get_Name: IXMLString_List;
    begin
      Result := FName;
    end;
    
    function TXMLWeather.Get_Weatherconditions: IXMLWeatherconditionsList;
    begin
      Result := FWeatherconditions;
    end;
    
    { TXMLWeatherList }
    
    function TXMLWeatherList.Add: IXMLWeather;
    begin
      Result := AddItem(-1) as IXMLWeather;
    end;
    
    function TXMLWeatherList.Insert(const Index: Integer): IXMLWeather;
    begin
      Result := AddItem(Index) as IXMLWeather;
    end;
    
    function TXMLWeatherList.Get_Item(Index: Integer): IXMLWeather;
    begin
      Result := List[Index] as IXMLWeather;
    end;
    
    { TXMLWeatherconditions }
    
    procedure TXMLWeatherconditions.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLValue);
      ItemTag := 'value';
      ItemInterface := IXMLValue;
      inherited;
    end;
    
    function TXMLWeatherconditions.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLWeatherconditions.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLWeatherconditions.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLWeatherconditions.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLWeatherconditions.Get_Weathersummary: UnicodeString;
    begin
      Result := AttributeNodes['weather-summary'].Text;
    end;
    
    procedure TXMLWeatherconditions.Set_Weathersummary(Value: UnicodeString);
    begin
      SetAttribute('weather-summary', Value);
    end;
    
    function TXMLWeatherconditions.Get_Value(Index: Integer): IXMLValue;
    begin
      Result := List[Index] as IXMLValue;
    end;
    
    function TXMLWeatherconditions.Add: IXMLValue;
    begin
      Result := AddItem(-1) as IXMLValue;
    end;
    
    function TXMLWeatherconditions.Insert(const Index: Integer): IXMLValue;
    begin
      Result := AddItem(Index) as IXMLValue;
    end;
    
    { TXMLWeatherconditionsList }
    
    function TXMLWeatherconditionsList.Add: IXMLWeatherconditions;
    begin
      Result := AddItem(-1) as IXMLWeatherconditions;
    end;
    
    function TXMLWeatherconditionsList.Insert(const Index: Integer): IXMLWeatherconditions;
    begin
      Result := AddItem(Index) as IXMLWeatherconditions;
    end;
    
    function TXMLWeatherconditionsList.Get_Item(Index: Integer): IXMLWeatherconditions;
    begin
      Result := List[Index] as IXMLWeatherconditions;
    end;
    
    { TXMLConditionsicon }
    
    procedure TXMLConditionsicon.AfterConstruction;
    begin
      FIconlink := CreateCollection(TXMLAnyURIList, IXMLNode, 'icon-link') as IXMLAnyURIList;
      inherited;
    end;
    
    function TXMLConditionsicon.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLConditionsicon.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLConditionsicon.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLConditionsicon.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLConditionsicon.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLConditionsicon.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLConditionsicon.Get_Iconlink: IXMLAnyURIList;
    begin
      Result := FIconlink;
    end;
    
    { TXMLConditionsiconList }
    
    function TXMLConditionsiconList.Add: IXMLConditionsicon;
    begin
      Result := AddItem(-1) as IXMLConditionsicon;
    end;
    
    function TXMLConditionsiconList.Insert(const Index: Integer): IXMLConditionsicon;
    begin
      Result := AddItem(Index) as IXMLConditionsicon;
    end;
    
    function TXMLConditionsiconList.Get_Item(Index: Integer): IXMLConditionsicon;
    begin
      Result := List[Index] as IXMLConditionsicon;
    end;
    
    { TXMLHazards }
    
    procedure TXMLHazards.AfterConstruction;
    begin
      RegisterChildNode('hazard-conditions', TXMLHazardconditions);
      FName := CreateCollection(TXMLString_List, IXMLNode, 'name') as IXMLString_List;
      FHazardconditions := CreateCollection(TXMLHazardconditionsList, IXMLHazardconditions, 'hazard-conditions') as IXMLHazardconditionsList;
      inherited;
    end;
    
    function TXMLHazards.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLHazards.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLHazards.Get_Name: IXMLString_List;
    begin
      Result := FName;
    end;
    
    function TXMLHazards.Get_Hazardconditions: IXMLHazardconditionsList;
    begin
      Result := FHazardconditions;
    end;
    
    { TXMLHazardsList }
    
    function TXMLHazardsList.Add: IXMLHazards;
    begin
      Result := AddItem(-1) as IXMLHazards;
    end;
    
    function TXMLHazardsList.Insert(const Index: Integer): IXMLHazards;
    begin
      Result := AddItem(Index) as IXMLHazards;
    end;
    
    function TXMLHazardsList.Get_Item(Index: Integer): IXMLHazards;
    begin
      Result := List[Index] as IXMLHazards;
    end;
    
    { TXMLHazardconditions }
    
    procedure TXMLHazardconditions.AfterConstruction;
    begin
      RegisterChildNode('hazard', TXMLHazard);
      ItemTag := 'hazard';
      ItemInterface := IXMLHazard;
      inherited;
    end;
    
    function TXMLHazardconditions.Get_Hazard(Index: Integer): IXMLHazard;
    begin
      Result := List[Index] as IXMLHazard;
    end;
    
    function TXMLHazardconditions.Add: IXMLHazard;
    begin
      Result := AddItem(-1) as IXMLHazard;
    end;
    
    function TXMLHazardconditions.Insert(const Index: Integer): IXMLHazard;
    begin
      Result := AddItem(Index) as IXMLHazard;
    end;
    
    { TXMLHazardconditionsList }
    
    function TXMLHazardconditionsList.Add: IXMLHazardconditions;
    begin
      Result := AddItem(-1) as IXMLHazardconditions;
    end;
    
    function TXMLHazardconditionsList.Insert(const Index: Integer): IXMLHazardconditions;
    begin
      Result := AddItem(Index) as IXMLHazardconditions;
    end;
    
    function TXMLHazardconditionsList.Get_Item(Index: Integer): IXMLHazardconditions;
    begin
      Result := List[Index] as IXMLHazardconditions;
    end;
    
    { TXMLHazard }
    
    function TXMLHazard.Get_HazardCode: UnicodeString;
    begin
      Result := AttributeNodes['hazardCode'].Text;
    end;
    
    procedure TXMLHazard.Set_HazardCode(Value: UnicodeString);
    begin
      SetAttribute('hazardCode', Value);
    end;
    
    function TXMLHazard.Get_Phenomena: UnicodeString;
    begin
      Result := AttributeNodes['phenomena'].Text;
    end;
    
    procedure TXMLHazard.Set_Phenomena(Value: UnicodeString);
    begin
      SetAttribute('phenomena', Value);
    end;
    
    function TXMLHazard.Get_Significance: UnicodeString;
    begin
      Result := AttributeNodes['significance'].Text;
    end;
    
    procedure TXMLHazard.Set_Significance(Value: UnicodeString);
    begin
      SetAttribute('significance', Value);
    end;
    
    function TXMLHazard.Get_HazardType: UnicodeString;
    begin
      Result := AttributeNodes['hazardType'].Text;
    end;
    
    procedure TXMLHazard.Set_HazardType(Value: UnicodeString);
    begin
      SetAttribute('hazardType', Value);
    end;
    
    function TXMLHazard.Get_EventTrackingNumber: Integer;
    begin
      Result := AttributeNodes['eventTrackingNumber'].NodeValue;
    end;
    
    procedure TXMLHazard.Set_EventTrackingNumber(Value: Integer);
    begin
      SetAttribute('eventTrackingNumber', Value);
    end;
    
    function TXMLHazard.Get_Headline: UnicodeString;
    begin
      Result := AttributeNodes['headline'].Text;
    end;
    
    procedure TXMLHazard.Set_Headline(Value: UnicodeString);
    begin
      SetAttribute('headline', Value);
    end;
    
    function TXMLHazard.Get_HazardTextURL: UnicodeString;
    begin
      Result := ChildNodes['hazardTextURL'].Text;
    end;
    
    procedure TXMLHazard.Set_HazardTextURL(Value: UnicodeString);
    begin
      ChildNodes['hazardTextURL'].NodeValue := Value;
    end;
    
    function TXMLHazard.Get_HazardIcon: UnicodeString;
    begin
      Result := ChildNodes['hazardIcon'].Text;
    end;
    
    procedure TXMLHazard.Set_HazardIcon(Value: UnicodeString);
    begin
      ChildNodes['hazardIcon'].NodeValue := Value;
    end;
    
    { TXMLWordedForecast }
    
    procedure TXMLWordedForecast.AfterConstruction;
    begin
      FText := CreateCollection(TXMLString_List, IXMLNode, 'text') as IXMLString_List;
      inherited;
    end;
    
    function TXMLWordedForecast.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLWordedForecast.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLWordedForecast.Get_DataSource: UnicodeString;
    begin
      Result := AttributeNodes['dataSource'].Text;
    end;
    
    procedure TXMLWordedForecast.Set_DataSource(Value: UnicodeString);
    begin
      SetAttribute('dataSource', Value);
    end;
    
    function TXMLWordedForecast.Get_WordGenerator: UnicodeString;
    begin
      Result := AttributeNodes['wordGenerator'].Text;
    end;
    
    procedure TXMLWordedForecast.Set_WordGenerator(Value: UnicodeString);
    begin
      SetAttribute('wordGenerator', Value);
    end;
    
    function TXMLWordedForecast.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLWordedForecast.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLWordedForecast.Get_Text: IXMLString_List;
    begin
      Result := FText;
    end;
    
    { TXMLPressure }
    
    procedure TXMLPressure.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLDecimalValType);
      FValue := CreateCollection(TXMLDecimalValTypeList, IXMLDecimalValType, 'value') as IXMLDecimalValTypeList;
      inherited;
    end;
    
    function TXMLPressure.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLPressure.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLPressure.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLPressure.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLPressure.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLPressure.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLPressure.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLPressure.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLPressure.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLPressure.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLPressure.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLPressure.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLPressure.Get_Value: IXMLDecimalValTypeList;
    begin
      Result := FValue;
    end;
    
    { TXMLPressureList }
    
    function TXMLPressureList.Add: IXMLPressure;
    begin
      Result := AddItem(-1) as IXMLPressure;
    end;
    
    function TXMLPressureList.Insert(const Index: Integer): IXMLPressure;
    begin
      Result := AddItem(Index) as IXMLPressure;
    end;
    
    function TXMLPressureList.Get_Item(Index: Integer): IXMLPressure;
    begin
      Result := List[Index] as IXMLPressure;
    end;
    
    { TXMLProbabilisticCondition }
    
    procedure TXMLProbabilisticCondition.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLPercentageValType);
      RegisterChildNode('valueForRange', TXMLValueForRangeType);
      FValue := CreateCollection(TXMLPercentageValTypeList, IXMLPercentageValType, 'value') as IXMLPercentageValTypeList;
      FValueForRange := CreateCollection(TXMLValueForRangeTypeList, IXMLValueForRangeType, 'valueForRange') as IXMLValueForRangeTypeList;
      inherited;
    end;
    
    function TXMLProbabilisticCondition.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_LikelihoodUnits: UnicodeString;
    begin
      Result := AttributeNodes['likelihoodUnits'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_LikelihoodUnits(Value: UnicodeString);
    begin
      SetAttribute('likelihoodUnits', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Applicablecategories: UnicodeString;
    begin
      Result := AttributeNodes['applicable-categories'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Applicablecategories(Value: UnicodeString);
    begin
      SetAttribute('applicable-categories', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Probabilitytype: UnicodeString;
    begin
      Result := AttributeNodes['probability-type'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Probabilitytype(Value: UnicodeString);
    begin
      SetAttribute('probability-type', Value);
    end;
    
    function TXMLProbabilisticCondition.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLProbabilisticCondition.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLProbabilisticCondition.Get_Value: IXMLPercentageValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLProbabilisticCondition.Get_ValueForRange: IXMLValueForRangeTypeList;
    begin
      Result := FValueForRange;
    end;
    
    { TXMLProbabilisticConditionList }
    
    function TXMLProbabilisticConditionList.Add: IXMLProbabilisticCondition;
    begin
      Result := AddItem(-1) as IXMLProbabilisticCondition;
    end;
    
    function TXMLProbabilisticConditionList.Insert(const Index: Integer): IXMLProbabilisticCondition;
    begin
      Result := AddItem(Index) as IXMLProbabilisticCondition;
    end;
    
    function TXMLProbabilisticConditionList.Get_Item(Index: Integer): IXMLProbabilisticCondition;
    begin
      Result := List[Index] as IXMLProbabilisticCondition;
    end;
    
    { TXMLValueForRangeType }
    
    procedure TXMLValueForRangeType.AfterConstruction;
    begin
      RegisterChildNode('value', TXMLPercentageValType);
      FValue := CreateCollection(TXMLPercentageValTypeList, IXMLPercentageValType, 'value') as IXMLPercentageValTypeList;
      inherited;
    end;
    
    function TXMLValueForRangeType.Get_Value: IXMLPercentageValTypeList;
    begin
      Result := FValue;
    end;
    
    function TXMLValueForRangeType.Get_Gt: UnicodeString;
    begin
      Result := ChildNodes['gt'].Text;
    end;
    
    procedure TXMLValueForRangeType.Set_Gt(Value: UnicodeString);
    begin
      ChildNodes['gt'].NodeValue := Value;
    end;
    
    function TXMLValueForRangeType.Get_Ge: UnicodeString;
    begin
      Result := ChildNodes['ge'].Text;
    end;
    
    procedure TXMLValueForRangeType.Set_Ge(Value: UnicodeString);
    begin
      ChildNodes['ge'].NodeValue := Value;
    end;
    
    function TXMLValueForRangeType.Get_Lt: UnicodeString;
    begin
      Result := ChildNodes['lt'].Text;
    end;
    
    procedure TXMLValueForRangeType.Set_Lt(Value: UnicodeString);
    begin
      ChildNodes['lt'].NodeValue := Value;
    end;
    
    function TXMLValueForRangeType.Get_Le: UnicodeString;
    begin
      Result := ChildNodes['le'].Text;
    end;
    
    procedure TXMLValueForRangeType.Set_Le(Value: UnicodeString);
    begin
      ChildNodes['le'].NodeValue := Value;
    end;
    
    function TXMLValueForRangeType.Get_Eq: UnicodeString;
    begin
      Result := ChildNodes['eq'].Text;
    end;
    
    procedure TXMLValueForRangeType.Set_Eq(Value: UnicodeString);
    begin
      ChildNodes['eq'].NodeValue := Value;
    end;
    
    { TXMLValueForRangeTypeList }
    
    function TXMLValueForRangeTypeList.Add: IXMLValueForRangeType;
    begin
      Result := AddItem(-1) as IXMLValueForRangeType;
    end;
    
    function TXMLValueForRangeTypeList.Insert(const Index: Integer): IXMLValueForRangeType;
    begin
      Result := AddItem(Index) as IXMLValueForRangeType;
    end;
    
    function TXMLValueForRangeTypeList.Get_Item(Index: Integer): IXMLValueForRangeType;
    begin
      Result := List[Index] as IXMLValueForRangeType;
    end;
    
    { TXMLWaterstate }
    
    procedure TXMLWaterstate.AfterConstruction;
    begin
      RegisterChildNode('waves', TXMLWaves);
      RegisterChildNode('swell', TXMLSwell);
      RegisterChildNode('seas', TXMLSeas);
      FWaves := CreateCollection(TXMLWavesList, IXMLWaves, 'waves') as IXMLWavesList;
      FSwell := CreateCollection(TXMLSwellList, IXMLSwell, 'swell') as IXMLSwellList;
      FSeas := CreateCollection(TXMLSeasList, IXMLSeas, 'seas') as IXMLSeasList;
      FIcecoverage := CreateCollection(TXMLNonNegativeIntegerList, IXMLNode, 'ice-coverage') as IXMLNonNegativeIntegerList;
      inherited;
    end;
    
    function TXMLWaterstate.Get_Timelayout: UnicodeString;
    begin
      Result := AttributeNodes['time-layout'].Text;
    end;
    
    procedure TXMLWaterstate.Set_Timelayout(Value: UnicodeString);
    begin
      SetAttribute('time-layout', Value);
    end;
    
    function TXMLWaterstate.Get_Waves: IXMLWavesList;
    begin
      Result := FWaves;
    end;
    
    function TXMLWaterstate.Get_Swell: IXMLSwellList;
    begin
      Result := FSwell;
    end;
    
    function TXMLWaterstate.Get_Seas: IXMLSeasList;
    begin
      Result := FSeas;
    end;
    
    function TXMLWaterstate.Get_Icecoverage: IXMLNonNegativeIntegerList;
    begin
      Result := FIcecoverage;
    end;
    
    { TXMLWaterstateList }
    
    function TXMLWaterstateList.Add: IXMLWaterstate;
    begin
      Result := AddItem(-1) as IXMLWaterstate;
    end;
    
    function TXMLWaterstateList.Insert(const Index: Integer): IXMLWaterstate;
    begin
      Result := AddItem(Index) as IXMLWaterstate;
    end;
    
    function TXMLWaterstateList.Get_Item(Index: Integer): IXMLWaterstate;
    begin
      Result := List[Index] as IXMLWaterstate;
    end;
    
    { TXMLWaves }
    
    procedure TXMLWaves.AfterConstruction;
    begin
      FValue := CreateCollection(TXMLNonNegativeIntegerList, IXMLNode, 'value') as IXMLNonNegativeIntegerList;
      inherited;
    end;
    
    function TXMLWaves.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLWaves.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLWaves.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLWaves.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLWaves.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLWaves.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLWaves.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLWaves.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLWaves.Get_Period: LongWord;
    begin
      Result := AttributeNodes['period'].NodeValue;
    end;
    
    procedure TXMLWaves.Set_Period(Value: LongWord);
    begin
      SetAttribute('period', Value);
    end;
    
    function TXMLWaves.Get_Steepness: LongWord;
    begin
      Result := AttributeNodes['steepness'].NodeValue;
    end;
    
    procedure TXMLWaves.Set_Steepness(Value: LongWord);
    begin
      SetAttribute('steepness', Value);
    end;
    
    function TXMLWaves.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLWaves.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLWaves.Get_Value: IXMLNonNegativeIntegerList;
    begin
      Result := FValue;
    end;
    
    { TXMLWavesList }
    
    function TXMLWavesList.Add: IXMLWaves;
    begin
      Result := AddItem(-1) as IXMLWaves;
    end;
    
    function TXMLWavesList.Insert(const Index: Integer): IXMLWaves;
    begin
      Result := AddItem(Index) as IXMLWaves;
    end;
    
    function TXMLWavesList.Get_Item(Index: Integer): IXMLWaves;
    begin
      Result := List[Index] as IXMLWaves;
    end;
    
    { TXMLSwell }
    
    procedure TXMLSwell.AfterConstruction;
    begin
      RegisterChildNode('direction', TXMLDirection);
      inherited;
    end;
    
    function TXMLSwell.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLSwell.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLSwell.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLSwell.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLSwell.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLSwell.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLSwell.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLSwell.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLSwell.Get_Period: LongWord;
    begin
      Result := AttributeNodes['period'].NodeValue;
    end;
    
    procedure TXMLSwell.Set_Period(Value: LongWord);
    begin
      SetAttribute('period', Value);
    end;
    
    function TXMLSwell.Get_Steepness: LongWord;
    begin
      Result := AttributeNodes['steepness'].NodeValue;
    end;
    
    procedure TXMLSwell.Set_Steepness(Value: LongWord);
    begin
      SetAttribute('steepness', Value);
    end;
    
    function TXMLSwell.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLSwell.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLSwell.Get_Value: UnicodeString;
    begin
      Result := ChildNodes['value'].Text;
    end;
    
    procedure TXMLSwell.Set_Value(Value: UnicodeString);
    begin
      ChildNodes['value'].NodeValue := Value;
    end;
    
    function TXMLSwell.Get_Direction: IXMLDirection;
    begin
      Result := ChildNodes['direction'] as IXMLDirection;
    end;
    
    { TXMLSwellList }
    
    function TXMLSwellList.Add: IXMLSwell;
    begin
      Result := AddItem(-1) as IXMLSwell;
    end;
    
    function TXMLSwellList.Insert(const Index: Integer): IXMLSwell;
    begin
      Result := AddItem(Index) as IXMLSwell;
    end;
    
    function TXMLSwellList.Get_Item(Index: Integer): IXMLSwell;
    begin
      Result := List[Index] as IXMLSwell;
    end;
    
    { TXMLSeas }
    
    procedure TXMLSeas.AfterConstruction;
    begin
      FValue := CreateCollection(TXMLNonNegativeIntegerList, IXMLNode, 'value') as IXMLNonNegativeIntegerList;
      inherited;
    end;
    
    function TXMLSeas.Get_Type_: UnicodeString;
    begin
      Result := AttributeNodes['type'].Text;
    end;
    
    procedure TXMLSeas.Set_Type_(Value: UnicodeString);
    begin
      SetAttribute('type', Value);
    end;
    
    function TXMLSeas.Get_Units: UnicodeString;
    begin
      Result := AttributeNodes['units'].Text;
    end;
    
    procedure TXMLSeas.Set_Units(Value: UnicodeString);
    begin
      SetAttribute('units', Value);
    end;
    
    function TXMLSeas.Get_Categoricaltable: UnicodeString;
    begin
      Result := AttributeNodes['categorical-table'].Text;
    end;
    
    procedure TXMLSeas.Set_Categoricaltable(Value: UnicodeString);
    begin
      SetAttribute('categorical-table', Value);
    end;
    
    function TXMLSeas.Get_Conversiontable: UnicodeString;
    begin
      Result := AttributeNodes['conversion-table'].Text;
    end;
    
    procedure TXMLSeas.Set_Conversiontable(Value: UnicodeString);
    begin
      SetAttribute('conversion-table', Value);
    end;
    
    function TXMLSeas.Get_Name: UnicodeString;
    begin
      Result := ChildNodes['name'].Text;
    end;
    
    procedure TXMLSeas.Set_Name(Value: UnicodeString);
    begin
      ChildNodes['name'].NodeValue := Value;
    end;
    
    function TXMLSeas.Get_Value: IXMLNonNegativeIntegerList;
    begin
      Result := FValue;
    end;
    
    { TXMLSeasList }
    
    function TXMLSeasList.Add: IXMLSeas;
    begin
      Result := AddItem(-1) as IXMLSeas;
    end;
    
    function TXMLSeasList.Insert(const Index: Integer): IXMLSeas;
    begin
      Result := AddItem(Index) as IXMLSeas;
    end;
    
    function TXMLSeasList.Get_Item(Index: Integer): IXMLSeas;
    begin
      Result := List[Index] as IXMLSeas;
    end;
    
    { TXMLNonNegativeIntegerList }
    
    function TXMLNonNegativeIntegerList.Add(const Value: LongWord): IXMLNode;
    begin
      Result := AddItem(-1);
      Result.NodeValue := Value;
    end;
    
    function TXMLNonNegativeIntegerList.Insert(const Index: Integer; const Value: LongWord): IXMLNode;
    begin
      Result := AddItem(Index);
      Result.NodeValue := Value;
    end;
    
    function TXMLNonNegativeIntegerList.Get_Item(Index: Integer): LongWord;
    begin
      Result := List[Index].NodeValue;
    end;
    
    { TXMLDateTimeList }
    
    function TXMLDateTimeList.Add(const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(-1);
      Result.NodeValue := Value;
    end;
    
    function TXMLDateTimeList.Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(Index);
      Result.NodeValue := Value;
    end;
    
    function TXMLDateTimeList.Get_Item(Index: Integer): UnicodeString;
    begin
      Result := List[Index].NodeValue;
    end;
    
    { TXMLAnyURIList }
    
    function TXMLAnyURIList.Add(const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(-1);
      Result.NodeValue := Value;
    end;
    
    function TXMLAnyURIList.Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(Index);
      Result.NodeValue := Value;
    end;
    
    function TXMLAnyURIList.Get_Item(Index: Integer): UnicodeString;
    begin
      Result := List[Index].NodeValue;
    end;
    
    { TXMLString_List }
    
    function TXMLString_List.Add(const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(-1);
      Result.NodeValue := Value;
    end;
    
    function TXMLString_List.Insert(const Index: Integer; const Value: UnicodeString): IXMLNode;
    begin
      Result := AddItem(Index);
      Result.NodeValue := Value;
    end;
    
    function TXMLString_List.Get_Item(Index: Integer): UnicodeString;
    begin
      Result := List[Index].NodeValue;
    end;
    
    end.
    
    In This Article
    Back to top FlexCel Studio for VCL and FireMonkey v7.24
    © 2002 - 2025 tmssoftware.com