{Copyright or © or Copr. :

CNRS - Laboratoire Mouvement & Perception
franck.buloup@univmed.fr

This software is a computer program whose purpose is to highly simplify  
the use of ADwinPro realtime systems when you develop experimental
protocols  on life's sciences area.

This software is governed by the CeCILL  license under French law and
abiding by the rules of distribution of free software.  You can  use, 
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info". 

As a counterpart to the access to the source code and  rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty  and the software's author,  the holder of the
economic rights,  and the successive licensors  have only  limited
liability. 

In this respect, the user's attention is drawn to the risks associated
with loading,  using,  modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean  that it is complicated to manipulate,  and  that  also
therefore means  that it is reserved for developers  and  experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or 
data to be ensured and,  more generally, to use and operate it in the 
same conditions as regards security. 

The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.}
unit XMLClasses;

interface

uses xmldom, XMLDoc, XMLIntf, Classes;

type

{ Décl. Forward }

  IXMLROOTType = interface;
  IXMLEXPERIENCEType = interface;
  IXMLDESCRIPTIFType = interface;
  IXMLDESCRIPTIFTypeList = interface;
  IXMLCTRLEANType = interface;
  IXMLCTRLSANType = interface;
  IXMLCTRLESNUMType = interface;
  IXMLEANType = interface;
  IXMLEANTypeList = interface;
  IXMLSANType = interface;
  IXMLSANTypeList = interface;
  IXMLSNUMType = interface;
  IXMLSNUMTypeList = interface;
  IXMLENUMType = interface;
  IXMLENUMTypeList = interface;
  IXMLCANINTType = interface;
  IXMLCANINTTypeList = interface;
  IXMLPSERIEType = interface;
  IXMLPSERIETypeList = interface;
  IXMLSTType = interface;
  IXMLSTTypeList = interface;
  IXMLBLOCType = interface;
  IXMLBLOCTypeList = interface;
  IXMLFONCTIONType = interface;
  IXMLFONCTIONTypeList = interface;
  IXMLENTREEType = interface;
  IXMLENTREETypeList = interface;
  IXMLSORTIEType = interface;
  IXMLSORTIETypeList = interface;
  IXMLPARAMType = interface;
  IXMLPARAMTypeList = interface;

{ IXMLROOTType }

  IXMLROOTType = interface(IXMLNode)
    ['{29051642-13B6-4397-8D9E-6443D5F24EC6}']
    { Accesseurs de propriétés }
    function Get_EXPERIENCE: IXMLEXPERIENCEType;
    function Get_CTRLEAN: IXMLCTRLEANType;
    function Get_CTRLSAN: IXMLCTRLSANType;
    function Get_CTRLESNUM: IXMLCTRLESNUMType;
    function Get_EAN: IXMLEANTypeList;
    function Get_SAN: IXMLSANTypeList;
    function Get_SNUM: IXMLSNUMTypeList;
    function Get_ENUM: IXMLENUMTypeList;
    function Get_CANINT: IXMLCANINTTypeList;
    function Get_PSERIE: IXMLPSERIETypeList;
    function Get_ST: IXMLSTTypeList;
    { Méthodes & propriétés }
    property EXPERIENCE: IXMLEXPERIENCEType read Get_EXPERIENCE;
    property CTRLEAN: IXMLCTRLEANType read Get_CTRLEAN;
    property CTRLSAN: IXMLCTRLSANType read Get_CTRLSAN;
    property CTRLESNUM: IXMLCTRLESNUMType read Get_CTRLESNUM;
    property EAN: IXMLEANTypeList read Get_EAN;
    property SAN: IXMLSANTypeList read Get_SAN;
    property SNUM: IXMLSNUMTypeList read Get_SNUM;
    property ENUM: IXMLENUMTypeList read Get_ENUM;
    property CANINT: IXMLCANINTTypeList read Get_CANINT;
    property PSERIE: IXMLPSERIETypeList read Get_PSERIE;
    property ST: IXMLSTTypeList read Get_ST;
  end;

{ IXMLEXPERIENCEType }

  IXMLEXPERIENCEType = interface(IXMLNode)
    ['{94CBD9AF-0AD8-4FBB-91E4-12D7DB8417B7}']
    { Accesseurs de propriétés }
    function Get_FEG: Integer;
    function Get_NBSESSIONS: Integer;
    function Get_NOM: WideString;
    function Get_DUMMYNODEEXPE: WideString;
    function Get_DESCRIPTIF: IXMLDESCRIPTIFTypeList;
    procedure Set_FEG(Value: Integer);
    procedure Set_NBSESSIONS(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_DUMMYNODEEXPE(Value: WideString);
    { Méthodes & propriétés }
    property FEG: Integer read Get_FEG write Set_FEG;
    property NBSESSIONS: Integer read Get_NBSESSIONS write Set_NBSESSIONS;
    property NOM: WideString read Get_NOM write Set_NOM;
    property DUMMYNODEEXPE: WideString read Get_DUMMYNODEEXPE write Set_DUMMYNODEEXPE;
    property DESCRIPTIF: IXMLDESCRIPTIFTypeList read Get_DESCRIPTIF;
  end;

{ IXMLDESCRIPTIFType }

  IXMLDESCRIPTIFType = interface(IXMLNode)
    ['{7F96636F-F396-4386-80E7-278BCCADAC9D}']
    { Accesseurs de propriétés }
    function Get_TEXT: WideString;
    procedure Set_TEXT(Value: WideString);
    { Méthodes & propriétés }
    property TEXT: WideString read Get_TEXT write Set_TEXT;
  end;

{ IXMLDESCRIPTIFTypeList }

  IXMLDESCRIPTIFTypeList = interface(IXMLNodeCollection)
    ['{AE7C85B4-5A07-458C-8784-A47A73A419EB}']
    { Méthodes & propriétés }
    function Add: IXMLDESCRIPTIFType;
    function Insert(const Index: Integer): IXMLDESCRIPTIFType;
    function Get_Item(Index: Integer): IXMLDESCRIPTIFType;
    property Items[Index: Integer]: IXMLDESCRIPTIFType read Get_Item; default;
  end;

{ IXMLCTRLEANType }

  IXMLCTRLEANType = interface(IXMLNode)
    ['{EE884664-CB46-4FE3-855F-57A11237CA0D}']
    { Accesseurs de propriétés }
    function Get_AMPLITUDE: WideString;
    function Get_SEDIFF: WideString;
    procedure Set_AMPLITUDE(Value: WideString);
    procedure Set_SEDIFF(Value: WideString);
    { Méthodes & propriétés }
    property AMPLITUDE: WideString read Get_AMPLITUDE write Set_AMPLITUDE;
    property SEDIFF: WideString read Get_SEDIFF write Set_SEDIFF;
  end;

{ IXMLCTRLSANType }

  IXMLCTRLSANType = interface(IXMLNode)
    ['{23161443-BE6D-43FC-92FC-6782B4C1A4AE}']
    { Accesseurs de propriétés }
    function Get_AMPLITUDE: WideString;
    procedure Set_AMPLITUDE(Value: WideString);
    { Méthodes & propriétés }
    property AMPLITUDE: WideString read Get_AMPLITUDE write Set_AMPLITUDE;
  end;

{ IXMLCTRLESNUMType }

  IXMLCTRLESNUMType = interface(IXMLNode)
    ['{744B5B47-466F-40C2-8662-4D73D5B6EBD4}']
    { Accesseurs de propriétés }
    function Get_FE: Double;
    procedure Set_FE(Value: Double);
    { Méthodes & propriétés }
    property FE: Double read Get_FE write Set_FE;
  end;

{ IXMLEANType }

  IXMLEANType = interface(IXMLNode)
    ['{7CA96FE8-2866-485B-9380-275090027D74}']
    { Accesseurs de propriétés }
    function Get_FE: Double;
    function Get_GAIN: Integer;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    function Get_UNITE: WideString;
    procedure Set_FE(Value: Double);
    procedure Set_GAIN(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    procedure Set_UNITE(Value: WideString);
    { Méthodes & propriétés }
    property FE: Double read Get_FE write Set_FE;
    property GAIN: Integer read Get_GAIN write Set_GAIN;
    property NOM: WideString read Get_NOM write Set_NOM;
    property NUMERO: Integer read Get_NUMERO write Set_NUMERO;
    property UNITE: WideString read Get_UNITE write Set_UNITE;
  end;

{ IXMLEANTypeList }

  IXMLEANTypeList = interface(IXMLNodeCollection)
    ['{2AD92C6B-5815-4379-9073-53C2E267BD4B}']
    { Méthodes & propriétés }
    function Add: IXMLEANType;
    function Insert(const Index: Integer): IXMLEANType;
    function Get_Item(Index: Integer): IXMLEANType;
    property Items[Index: Integer]: IXMLEANType read Get_Item; default;
  end;

{ IXMLSANType }

  IXMLSANType = interface(IXMLNode)
    ['{77790154-BE0A-4607-A739-0F9261919632}']
    { Accesseurs de propriétés }
    function Get_FE: Double;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_FE(Value: Double);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    { Méthodes & propriétés }
    property FE: Double read Get_FE write Set_FE;
    property NOM: WideString read Get_NOM write Set_NOM;
    property NUMERO: Integer read Get_NUMERO write Set_NUMERO;
  end;

{ IXMLSANTypeList }

  IXMLSANTypeList = interface(IXMLNodeCollection)
    ['{B7BE1A6F-B146-4A0E-B505-BDF520C84D77}']
    { Méthodes & propriétés }
    function Add: IXMLSANType;
    function Insert(const Index: Integer): IXMLSANType;
    function Get_Item(Index: Integer): IXMLSANType;
    property Items[Index: Integer]: IXMLSANType read Get_Item; default;
  end;

{ IXMLSNUMType }

  IXMLSNUMType = interface(IXMLNode)
    ['{3A3DE485-A4FE-4927-BE73-758126744EE9}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
    property NUMERO: Integer read Get_NUMERO write Set_NUMERO;
  end;

{ IXMLSNUMTypeList }

  IXMLSNUMTypeList = interface(IXMLNodeCollection)
    ['{0D3DEAA0-78D4-4428-8A7F-8106C287CBA8}']
    { Méthodes & propriétés }
    function Add: IXMLSNUMType;
    function Insert(const Index: Integer): IXMLSNUMType;
    function Get_Item(Index: Integer): IXMLSNUMType;
    property Items[Index: Integer]: IXMLSNUMType read Get_Item; default;
  end;

{ IXMLENUMType }

  IXMLENUMType = interface(IXMLNode)
    ['{17DBCC5B-3034-4006-B6F9-A69A198BF0D5}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
    property NUMERO: Integer read Get_NUMERO write Set_NUMERO;
  end;

{ IXMLENUMTypeList }

  IXMLENUMTypeList = interface(IXMLNodeCollection)
    ['{94918CAE-4A1A-4616-B9A0-AEB20BC91468}']
    { Méthodes & propriétés }
    function Add: IXMLENUMType;
    function Insert(const Index: Integer): IXMLENUMType;
    function Get_Item(Index: Integer): IXMLENUMType;
    property Items[Index: Integer]: IXMLENUMType read Get_Item; default;
  end;

{ IXMLCANINTType }

  IXMLCANINTType = interface(IXMLNode)
    ['{12DF7B9F-3604-4426-A46C-338F978BA013}']
    { Accesseurs de propriétés }
    function Get_FENUMPAR: Double;
    function Get_GENRE: WideString;
    function Get_NOM: WideString;
    procedure Set_FENUMPAR(Value: Double);
    procedure Set_GENRE(Value: WideString);
    procedure Set_NOM(Value: WideString);
    { Méthodes & propriétés }
    property FENUMPAR: Double read Get_FENUMPAR write Set_FENUMPAR;
    property GENRE: WideString read Get_GENRE write Set_GENRE;
    property NOM: WideString read Get_NOM write Set_NOM;
  end;

{ IXMLCANINTTypeList }

  IXMLCANINTTypeList = interface(IXMLNodeCollection)
    ['{BEF99E62-2C45-4F22-B1EC-79373605B6F0}']
    { Méthodes & propriétés }
    function Add: IXMLCANINTType;
    function Insert(const Index: Integer): IXMLCANINTType;
    function Get_Item(Index: Integer): IXMLCANINTType;
    property Items[Index: Integer]: IXMLCANINTType read Get_Item; default;
  end;

{ IXMLPSERIEType }

  IXMLPSERIEType = interface(IXMLNode)
    ['{D56A2CF6-3597-40EA-A0F2-70C9A2978917}']
    { Accesseurs de propriétés }
    function Get_BAUDRATE: Integer;
    function Get_FLUX: WideString;
    function Get_FREQUENCE: Double;
    function Get_MODE: WideString;
    function Get_NBBITDATA: Integer;
    function Get_NBBITSTOP: Double;
    function Get_NBCAPTEURS: Integer;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    function Get_PARITE: WideString;
    function Get_SYSTEME: WideString;
    procedure Set_BAUDRATE(Value: Integer);
    procedure Set_FLUX(Value: WideString);
    procedure Set_FREQUENCE(Value: Double);
    procedure Set_MODE(Value: WideString);
    procedure Set_NBBITDATA(Value: Integer);
    procedure Set_NBBITSTOP(Value: Double);
    procedure Set_NBCAPTEURS(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    procedure Set_PARITE(Value: WideString);
    procedure Set_SYSTEME(Value: WideString);
    { Méthodes & propriétés }
    property BAUDRATE: Integer read Get_BAUDRATE write Set_BAUDRATE;
    property FLUX: WideString read Get_FLUX write Set_FLUX;
    property FREQUENCE: Double read Get_FREQUENCE write Set_FREQUENCE;
    property MODE: WideString read Get_MODE write Set_MODE;
    property NBBITDATA: Integer read Get_NBBITDATA write Set_NBBITDATA;
    property NBBITSTOP: Double read Get_NBBITSTOP write Set_NBBITSTOP;
    property NBCAPTEURS: Integer read Get_NBCAPTEURS write Set_NBCAPTEURS;
    property NOM: WideString read Get_NOM write Set_NOM;
    property NUMERO: Integer read Get_NUMERO write Set_NUMERO;
    property PARITE: WideString read Get_PARITE write Set_PARITE;
    property SYSTEME: WideString read Get_SYSTEME write Set_SYSTEME;
  end;

{ IXMLPSERIETypeList }

  IXMLPSERIETypeList = interface(IXMLNodeCollection)
    ['{A91F1EEA-A743-4234-8C47-3C523CB0BDF5}']
    { Méthodes & propriétés }
    function Add: IXMLPSERIEType;
    function Insert(const Index: Integer): IXMLPSERIEType;
    function Get_Item(Index: Integer): IXMLPSERIEType;
    property Items[Index: Integer]: IXMLPSERIEType read Get_Item; default;
  end;

{ IXMLSTType }

  IXMLSTType = interface(IXMLNode)
    ['{2B6F6AD7-6DF7-4963-9063-2AA8A95FA5E8}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    function Get_DUMMYNODEST: WideString;
    function Get_BLOC: IXMLBLOCTypeList;
    procedure Set_NOM(Value: WideString);
    procedure Set_DUMMYNODEST(Value: WideString);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
    property DUMMYNODEST: WideString read Get_DUMMYNODEST write Set_DUMMYNODEST;
    property BLOC: IXMLBLOCTypeList read Get_BLOC;
  end;

{ IXMLSTTypeList }

  IXMLSTTypeList = interface(IXMLNodeCollection)
    ['{B554E7E4-5333-40F8-9648-F453649C44A1}']
    { Méthodes & propriétés }
    function Add: IXMLSTType;
    function Insert(const Index: Integer): IXMLSTType;
    function Get_Item(Index: Integer): IXMLSTType;
    property Items[Index: Integer]: IXMLSTType read Get_Item; default;
  end;

{ IXMLBLOCType }

  IXMLBLOCType = interface(IXMLNode)
    ['{CD0C95EE-31E9-4CF5-98C4-E909A3EB697F}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    function Get_ADBASICCODE1: WideString;
    function Get_ADBASICCODE2: WideString;
    function Get_DELPHICODE1: WideString;
    function Get_DELPHICODE2: WideString;
    function Get_GENRE: WideString;
    function Get_PARAM1: WideString;
    function Get_PARAM2: WideString;
    function Get_PARAM3: WideString;
    function Get_DUMMYNODEBLOC: WideString;
    function Get_BLOC: IXMLBLOCTypeList;
    function Get_FONCTION: IXMLFONCTIONTypeList;
    procedure Set_NOM(Value: WideString);
    procedure Set_ADBASICCODE1(Value: WideString);
    procedure Set_ADBASICCODE2(Value: WideString);
    procedure Set_DELPHICODE1(Value: WideString);
    procedure Set_DELPHICODE2(Value: WideString);
    procedure Set_GENRE(Value: WideString);
    procedure Set_PARAM1(Value: WideString);
    procedure Set_PARAM2(Value: WideString);
    procedure Set_PARAM3(Value: WideString);
    procedure Set_DUMMYNODEBLOC(Value: WideString);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
    property ADBASICCODE1: WideString read Get_ADBASICCODE1 write Set_ADBASICCODE1;
    property ADBASICCODE2: WideString read Get_ADBASICCODE2 write Set_ADBASICCODE2;
    property DELPHICODE1: WideString read Get_DELPHICODE1 write Set_DELPHICODE1;
    property DELPHICODE2: WideString read Get_DELPHICODE2 write Set_DELPHICODE2;
    property GENRE: WideString read Get_GENRE write Set_GENRE;
    property PARAM1: WideString read Get_PARAM1 write Set_PARAM1;
    property PARAM2: WideString read Get_PARAM2 write Set_PARAM2;
    property PARAM3: WideString read Get_PARAM3 write Set_PARAM3;
    property DUMMYNODEBLOC: WideString read Get_DUMMYNODEBLOC write Set_DUMMYNODEBLOC;
    property BLOC: IXMLBLOCTypeList read Get_BLOC;
    property FONCTION: IXMLFONCTIONTypeList read Get_FONCTION;
  end;

{ IXMLBLOCTypeList }

  IXMLBLOCTypeList = interface(IXMLNodeCollection)
    ['{F1868264-847C-4612-B540-03B3A2D9FB36}']
    { Méthodes & propriétés }
    function Add: IXMLBLOCType;
    function Insert(const Index: Integer): IXMLBLOCType;
    function Get_Item(Index: Integer): IXMLBLOCType;
    property Items[Index: Integer]: IXMLBLOCType read Get_Item; default;
  end;

{ IXMLFONCTIONType }

  IXMLFONCTIONType = interface(IXMLNode)
    ['{1B3666D1-5630-4122-A61E-0C0266B8F41A}']
    { Accesseurs de propriétés }
    function Get_DUREE: Double;
    function Get_FICHIER: WideString;
    function Get_ENTREE: IXMLENTREETypeList;
    function Get_SORTIE: IXMLSORTIETypeList;
    function Get_PARAM: IXMLPARAMTypeList;
    procedure Set_DUREE(Value: Double);
    procedure Set_FICHIER(Value: WideString);
    { Méthodes & propriétés }
    property DUREE: Double read Get_DUREE write Set_DUREE;
    property FICHIER: WideString read Get_FICHIER write Set_FICHIER;
    property ENTREE: IXMLENTREETypeList read Get_ENTREE;
    property SORTIE: IXMLSORTIETypeList read Get_SORTIE;
    property PARAM: IXMLPARAMTypeList read Get_PARAM;
  end;

{ IXMLFONCTIONTypeList }

  IXMLFONCTIONTypeList = interface(IXMLNodeCollection)
    ['{D33A10C1-86C3-4C92-A56A-8D726FA40720}']
    { Méthodes & propriétés }
    function Add: IXMLFONCTIONType;
    function Insert(const Index: Integer): IXMLFONCTIONType;
    function Get_Item(Index: Integer): IXMLFONCTIONType;
    property Items[Index: Integer]: IXMLFONCTIONType read Get_Item; default;
  end;

{ IXMLENTREEType }

  IXMLENTREEType = interface(IXMLNode)
    ['{AF3E50F3-31C0-4B72-9B7F-43ECEF748EDD}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
  end;

{ IXMLENTREETypeList }

  IXMLENTREETypeList = interface(IXMLNodeCollection)
    ['{5F652AD0-674D-4BF6-9370-E8579BB5E373}']
    { Méthodes & propriétés }
    function Add: IXMLENTREEType;
    function Insert(const Index: Integer): IXMLENTREEType;
    function Get_Item(Index: Integer): IXMLENTREEType;
    property Items[Index: Integer]: IXMLENTREEType read Get_Item; default;
  end;

{ IXMLSORTIEType }

  IXMLSORTIEType = interface(IXMLNode)
    ['{26FD8871-552B-4D9E-B085-8D9BA9545BE3}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
  end;

{ IXMLSORTIETypeList }

  IXMLSORTIETypeList = interface(IXMLNodeCollection)
    ['{F98E9ADD-2333-4286-89E1-CB510FE412D8}']
    { Méthodes & propriétés }
    function Add: IXMLSORTIEType;
    function Insert(const Index: Integer): IXMLSORTIEType;
    function Get_Item(Index: Integer): IXMLSORTIEType;
    property Items[Index: Integer]: IXMLSORTIEType read Get_Item; default;
  end;

{ IXMLPARAMType }

  IXMLPARAMType = interface(IXMLNode)
    ['{4DC9D114-1289-403E-ADF5-01CAFEC1B4E4}']
    { Accesseurs de propriétés }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
    { Méthodes & propriétés }
    property NOM: WideString read Get_NOM write Set_NOM;
  end;

{ IXMLPARAMTypeList }

  IXMLPARAMTypeList = interface(IXMLNodeCollection)
    ['{1E198CF5-EB89-4564-ABA7-8A753513B10C}']
    { Méthodes & propriétés }
    function Add: IXMLPARAMType;
    function Insert(const Index: Integer): IXMLPARAMType;
    function Get_Item(Index: Integer): IXMLPARAMType;
    property Items[Index: Integer]: IXMLPARAMType read Get_Item; default;
  end;

{ Décl. Forward }

  TXMLROOTType = class;
  TXMLEXPERIENCEType = class;
  TXMLDESCRIPTIFType = class;
  TXMLDESCRIPTIFTypeList = class;
  TXMLCTRLEANType = class;
  TXMLCTRLSANType = class;
  TXMLCTRLESNUMType = class;
  TXMLEANType = class;
  TXMLEANTypeList = class;
  TXMLSANType = class;
  TXMLSANTypeList = class;
  TXMLSNUMType = class;
  TXMLSNUMTypeList = class;
  TXMLENUMType = class;
  TXMLENUMTypeList = class;
  TXMLCANINTType = class;
  TXMLCANINTTypeList = class;
  TXMLPSERIEType = class;
  TXMLPSERIETypeList = class;
  TXMLSTType = class;
  TXMLSTTypeList = class;
  TXMLBLOCType = class;
  TXMLBLOCTypeList = class;
  TXMLFONCTIONType = class;
  TXMLFONCTIONTypeList = class;
  TXMLENTREEType = class;
  TXMLENTREETypeList = class;
  TXMLSORTIEType = class;
  TXMLSORTIETypeList = class;
  TXMLPARAMType = class;
  TXMLPARAMTypeList = class;

{ TXMLROOTType }

  TXMLROOTType = class(TXMLNode, IXMLROOTType)
  private
    FEAN: IXMLEANTypeList;
    FSAN: IXMLSANTypeList;
    FSNUM: IXMLSNUMTypeList;
    FENUM: IXMLENUMTypeList;
    FCANINT: IXMLCANINTTypeList;
    FPSERIE: IXMLPSERIETypeList;
    FST: IXMLSTTypeList;
  protected
    { IXMLROOTType }
    function Get_EXPERIENCE: IXMLEXPERIENCEType;
    function Get_CTRLEAN: IXMLCTRLEANType;
    function Get_CTRLSAN: IXMLCTRLSANType;
    function Get_CTRLESNUM: IXMLCTRLESNUMType;
    function Get_EAN: IXMLEANTypeList;
    function Get_SAN: IXMLSANTypeList;
    function Get_SNUM: IXMLSNUMTypeList;
    function Get_ENUM: IXMLENUMTypeList;
    function Get_CANINT: IXMLCANINTTypeList;
    function Get_PSERIE: IXMLPSERIETypeList;
    function Get_ST: IXMLSTTypeList;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLEXPERIENCEType }

  TXMLEXPERIENCEType = class(TXMLNode, IXMLEXPERIENCEType)
  private
    FDESCRIPTIF: IXMLDESCRIPTIFTypeList;
  protected
    { IXMLEXPERIENCEType }
    function Get_FEG: Integer;
    function Get_NBSESSIONS: Integer;
    function Get_NOM: WideString;
    function Get_DUMMYNODEEXPE: WideString;
    function Get_DESCRIPTIF: IXMLDESCRIPTIFTypeList;
    procedure Set_FEG(Value: Integer);
    procedure Set_NBSESSIONS(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_DUMMYNODEEXPE(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLDESCRIPTIFType }

  TXMLDESCRIPTIFType = class(TXMLNode, IXMLDESCRIPTIFType)
  protected
    { IXMLDESCRIPTIFType }
    function Get_TEXT: WideString;
    procedure Set_TEXT(Value: WideString);
  end;

{ TXMLDESCRIPTIFTypeList }

  TXMLDESCRIPTIFTypeList = class(TXMLNodeCollection, IXMLDESCRIPTIFTypeList)
  protected
    { IXMLDESCRIPTIFTypeList }
    function Add: IXMLDESCRIPTIFType;
    function Insert(const Index: Integer): IXMLDESCRIPTIFType;
    function Get_Item(Index: Integer): IXMLDESCRIPTIFType;
  end;

{ TXMLCTRLEANType }

  TXMLCTRLEANType = class(TXMLNode, IXMLCTRLEANType)
  protected
    { IXMLCTRLEANType }
    function Get_AMPLITUDE: WideString;
    function Get_SEDIFF: WideString;
    procedure Set_AMPLITUDE(Value: WideString);
    procedure Set_SEDIFF(Value: WideString);
  end;

{ TXMLCTRLSANType }

  TXMLCTRLSANType = class(TXMLNode, IXMLCTRLSANType)
  protected
    { IXMLCTRLSANType }
    function Get_AMPLITUDE: WideString;
    procedure Set_AMPLITUDE(Value: WideString);
  end;

{ TXMLCTRLESNUMType }

  TXMLCTRLESNUMType = class(TXMLNode, IXMLCTRLESNUMType)
  protected
    { IXMLCTRLESNUMType }
    function Get_FE: Double;
    procedure Set_FE(Value: Double);
  end;

{ TXMLEANType }

  TXMLEANType = class(TXMLNode, IXMLEANType)
  protected
    { IXMLEANType }
    function Get_FE: Double;
    function Get_GAIN: Integer;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    function Get_UNITE: WideString;
    procedure Set_FE(Value: Double);
    procedure Set_GAIN(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    procedure Set_UNITE(Value: WideString);
  end;

{ TXMLEANTypeList }

  TXMLEANTypeList = class(TXMLNodeCollection, IXMLEANTypeList)
  protected
    { IXMLEANTypeList }
    function Add: IXMLEANType;
    function Insert(const Index: Integer): IXMLEANType;
    function Get_Item(Index: Integer): IXMLEANType;
  end;

{ TXMLSANType }

  TXMLSANType = class(TXMLNode, IXMLSANType)
  protected
    { IXMLSANType }
    function Get_FE: Double;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_FE(Value: Double);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
  end;

{ TXMLSANTypeList }

  TXMLSANTypeList = class(TXMLNodeCollection, IXMLSANTypeList)
  protected
    { IXMLSANTypeList }
    function Add: IXMLSANType;
    function Insert(const Index: Integer): IXMLSANType;
    function Get_Item(Index: Integer): IXMLSANType;
  end;

{ TXMLSNUMType }

  TXMLSNUMType = class(TXMLNode, IXMLSNUMType)
  protected
    { IXMLSNUMType }
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
  end;

{ TXMLSNUMTypeList }

  TXMLSNUMTypeList = class(TXMLNodeCollection, IXMLSNUMTypeList)
  protected
    { IXMLSNUMTypeList }
    function Add: IXMLSNUMType;
    function Insert(const Index: Integer): IXMLSNUMType;
    function Get_Item(Index: Integer): IXMLSNUMType;
  end;

{ TXMLENUMType }

  TXMLENUMType = class(TXMLNode, IXMLENUMType)
  protected
    { IXMLENUMType }
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
  end;

{ TXMLENUMTypeList }

  TXMLENUMTypeList = class(TXMLNodeCollection, IXMLENUMTypeList)
  protected
    { IXMLENUMTypeList }
    function Add: IXMLENUMType;
    function Insert(const Index: Integer): IXMLENUMType;
    function Get_Item(Index: Integer): IXMLENUMType;
  end;

{ TXMLCANINTType }

  TXMLCANINTType = class(TXMLNode, IXMLCANINTType)
  protected
    { IXMLCANINTType }
    function Get_FENUMPAR: Double;
    function Get_GENRE: WideString;
    function Get_NOM: WideString;
    procedure Set_FENUMPAR(Value: Double);
    procedure Set_GENRE(Value: WideString);
    procedure Set_NOM(Value: WideString);
  end;

{ TXMLCANINTTypeList }

  TXMLCANINTTypeList = class(TXMLNodeCollection, IXMLCANINTTypeList)
  protected
    { IXMLCANINTTypeList }
    function Add: IXMLCANINTType;
    function Insert(const Index: Integer): IXMLCANINTType;
    function Get_Item(Index: Integer): IXMLCANINTType;
  end;

{ TXMLPSERIEType }

  TXMLPSERIEType = class(TXMLNode, IXMLPSERIEType)
  protected
    { IXMLPSERIEType }
    function Get_BAUDRATE: Integer;
    function Get_FLUX: WideString;
    function Get_FREQUENCE: Double;
    function Get_MODE: WideString;
    function Get_NBBITDATA: Integer;
    function Get_NBBITSTOP: Double;
    function Get_NBCAPTEURS: Integer;
    function Get_NOM: WideString;
    function Get_NUMERO: Integer;
    function Get_PARITE: WideString;
    function Get_SYSTEME: WideString;
    procedure Set_BAUDRATE(Value: Integer);
    procedure Set_FLUX(Value: WideString);
    procedure Set_FREQUENCE(Value: Double);
    procedure Set_MODE(Value: WideString);
    procedure Set_NBBITDATA(Value: Integer);
    procedure Set_NBBITSTOP(Value: Double);
    procedure Set_NBCAPTEURS(Value: Integer);
    procedure Set_NOM(Value: WideString);
    procedure Set_NUMERO(Value: Integer);
    procedure Set_PARITE(Value: WideString);
    procedure Set_SYSTEME(Value: WideString);
  end;

{ TXMLPSERIETypeList }

  TXMLPSERIETypeList = class(TXMLNodeCollection, IXMLPSERIETypeList)
  protected
    { IXMLPSERIETypeList }
    function Add: IXMLPSERIEType;
    function Insert(const Index: Integer): IXMLPSERIEType;
    function Get_Item(Index: Integer): IXMLPSERIEType;
  end;

{ TXMLSTType }

  TXMLSTType = class(TXMLNode, IXMLSTType)
  private
    FBLOC: IXMLBLOCTypeList;
  protected
    { IXMLSTType }
    function Get_NOM: WideString;
    function Get_DUMMYNODEST: WideString;
    function Get_BLOC: IXMLBLOCTypeList;
    procedure Set_NOM(Value: WideString);
    procedure Set_DUMMYNODEST(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLSTTypeList }

  TXMLSTTypeList = class(TXMLNodeCollection, IXMLSTTypeList)
  protected
    { IXMLSTTypeList }
    function Add: IXMLSTType;
    function Insert(const Index: Integer): IXMLSTType;
    function Get_Item(Index: Integer): IXMLSTType;
  end;

{ TXMLBLOCType }

  TXMLBLOCType = class(TXMLNode, IXMLBLOCType)
  private
    FBLOC: IXMLBLOCTypeList;
    FFONCTION: IXMLFONCTIONTypeList;
  protected
    { IXMLBLOCType }
    function Get_NOM: WideString;
    function Get_ADBASICCODE1: WideString;
    function Get_ADBASICCODE2: WideString;
    function Get_DELPHICODE1: WideString;
    function Get_DELPHICODE2: WideString;
    function Get_GENRE: WideString;
    function Get_PARAM1: WideString;
    function Get_PARAM2: WideString;
    function Get_PARAM3: WideString;
    function Get_DUMMYNODEBLOC: WideString;
    function Get_BLOC: IXMLBLOCTypeList;
    function Get_FONCTION: IXMLFONCTIONTypeList;
    procedure Set_NOM(Value: WideString);
    procedure Set_ADBASICCODE1(Value: WideString);
    procedure Set_ADBASICCODE2(Value: WideString);
    procedure Set_DELPHICODE1(Value: WideString);
    procedure Set_DELPHICODE2(Value: WideString);
    procedure Set_GENRE(Value: WideString);
    procedure Set_PARAM1(Value: WideString);
    procedure Set_PARAM2(Value: WideString);
    procedure Set_PARAM3(Value: WideString);
    procedure Set_DUMMYNODEBLOC(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLBLOCTypeList }

  TXMLBLOCTypeList = class(TXMLNodeCollection, IXMLBLOCTypeList)
  protected
    { IXMLBLOCTypeList }
    function Add: IXMLBLOCType;
    function Insert(const Index: Integer): IXMLBLOCType;
    function Get_Item(Index: Integer): IXMLBLOCType;
  end;

{ TXMLFONCTIONType }

  TXMLFONCTIONType = class(TXMLNode, IXMLFONCTIONType)
  private
    FENTREE: IXMLENTREETypeList;
    FSORTIE: IXMLSORTIETypeList;
    FPARAM: IXMLPARAMTypeList;
  protected
    { IXMLFONCTIONType }
    function Get_DUREE: Double;
    function Get_FICHIER: WideString;
    function Get_ENTREE: IXMLENTREETypeList;
    function Get_SORTIE: IXMLSORTIETypeList;
    function Get_PARAM: IXMLPARAMTypeList;
    procedure Set_DUREE(Value: Double);
    procedure Set_FICHIER(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLFONCTIONTypeList }

  TXMLFONCTIONTypeList = class(TXMLNodeCollection, IXMLFONCTIONTypeList)
  protected
    { IXMLFONCTIONTypeList }
    function Add: IXMLFONCTIONType;
    function Insert(const Index: Integer): IXMLFONCTIONType;
    function Get_Item(Index: Integer): IXMLFONCTIONType;
  end;

{ TXMLENTREEType }

  TXMLENTREEType = class(TXMLNode, IXMLENTREEType)
  protected
    { IXMLENTREEType }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
  end;

{ TXMLENTREETypeList }

  TXMLENTREETypeList = class(TXMLNodeCollection, IXMLENTREETypeList)
  protected
    { IXMLENTREETypeList }
    function Add: IXMLENTREEType;
    function Insert(const Index: Integer): IXMLENTREEType;
    function Get_Item(Index: Integer): IXMLENTREEType;
  end;

{ TXMLSORTIEType }

  TXMLSORTIEType = class(TXMLNode, IXMLSORTIEType)
  protected
    { IXMLSORTIEType }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
  end;

{ TXMLSORTIETypeList }

  TXMLSORTIETypeList = class(TXMLNodeCollection, IXMLSORTIETypeList)
  protected
    { IXMLSORTIETypeList }
    function Add: IXMLSORTIEType;
    function Insert(const Index: Integer): IXMLSORTIEType;
    function Get_Item(Index: Integer): IXMLSORTIEType;
  end;

{ TXMLPARAMType }

  TXMLPARAMType = class(TXMLNode, IXMLPARAMType)
  protected
    { IXMLPARAMType }
    function Get_NOM: WideString;
    procedure Set_NOM(Value: WideString);
  end;

{ TXMLPARAMTypeList }

  TXMLPARAMTypeList = class(TXMLNodeCollection, IXMLPARAMTypeList)
  protected
    { IXMLPARAMTypeList }
    function Add: IXMLPARAMType;
    function Insert(const Index: Integer): IXMLPARAMType;
    function Get_Item(Index: Integer): IXMLPARAMType;
  end;

{ Fonctions globales }

function GetROOT(Doc: IXMLDocument): IXMLROOTType;
function LoadROOT(const FileName: WideString): IXMLROOTType;
function NewROOT(Doc: IXMLDocument): IXMLROOTType;
procedure Wash(ROOTNode: IXMLROOTType);

const
  TargetNamespace = '';

implementation

{ Fonctions globales }

function GetROOT(Doc: IXMLDocument): IXMLROOTType;
begin
  Result := Doc.GetDocBinding('ROOT', TXMLROOTType, TargetNamespace) as IXMLROOTType;
end;

function LoadROOT(const FileName: WideString): IXMLROOTType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('ROOT', TXMLROOTType, TargetNamespace) as IXMLROOTType;
end;

function NewROOT(Doc: IXMLDocument): IXMLROOTType;
begin
  Result := Doc.GetDocBinding('ROOT', TXMLROOTType, TargetNamespace) as IXMLROOTType;
end;

procedure Wash(ROOTNode: IXMLROOTType);
var i : integer;
    LignesXML : TStringList;
    NomFichier : string;
begin
  LignesXML :=TStringList.Create;
  LignesXML.AddStrings(RootNode.OwnerDocument.XML);
  i := 0;
  repeat
    if pos('<',LignesXML[i]) = 0
    then LignesXML.Delete(i)
    else inc(i);
  until i = LignesXML.Count;
  NomFichier := RootNode.OwnerDocument.FileName;
  LignesXML.SaveToFile(NomFichier);
  LignesXML.Free;
  RootNode.OwnerDocument.XML.Clear;
  RootNode.OwnerDocument.LoadFromFile(NomFichier);
end;

{ TXMLROOTType }

procedure TXMLROOTType.AfterConstruction;
begin
  RegisterChildNode('EXPERIENCE', TXMLEXPERIENCEType);
  RegisterChildNode('CTRLEAN', TXMLCTRLEANType);
  RegisterChildNode('CTRLSAN', TXMLCTRLSANType);
  RegisterChildNode('CTRLESNUM', TXMLCTRLESNUMType);
  RegisterChildNode('EAN', TXMLEANType);
  RegisterChildNode('SAN', TXMLSANType);
  RegisterChildNode('SNUM', TXMLSNUMType);
  RegisterChildNode('ENUM', TXMLENUMType);
  RegisterChildNode('CANINT', TXMLCANINTType);
  RegisterChildNode('PSERIE', TXMLPSERIEType);
  RegisterChildNode('ST', TXMLSTType);
  FEAN := CreateCollection(TXMLEANTypeList, IXMLEANType, 'EAN') as IXMLEANTypeList;
  FSAN := CreateCollection(TXMLSANTypeList, IXMLSANType, 'SAN') as IXMLSANTypeList;
  FSNUM := CreateCollection(TXMLSNUMTypeList, IXMLSNUMType, 'SNUM') as IXMLSNUMTypeList;
  FENUM := CreateCollection(TXMLENUMTypeList, IXMLENUMType, 'ENUM') as IXMLENUMTypeList;
  FCANINT := CreateCollection(TXMLCANINTTypeList, IXMLCANINTType, 'CANINT') as IXMLCANINTTypeList;
  FPSERIE := CreateCollection(TXMLPSERIETypeList, IXMLPSERIEType, 'PSERIE') as IXMLPSERIETypeList;
  FST := CreateCollection(TXMLSTTypeList, IXMLSTType, 'ST') as IXMLSTTypeList;
  inherited;
end;

function TXMLROOTType.Get_EXPERIENCE: IXMLEXPERIENCEType;
begin
  Result := ChildNodes['EXPERIENCE'] as IXMLEXPERIENCEType;
end;

function TXMLROOTType.Get_CTRLEAN: IXMLCTRLEANType;
begin
  Result := ChildNodes['CTRLEAN'] as IXMLCTRLEANType;
end;

function TXMLROOTType.Get_CTRLSAN: IXMLCTRLSANType;
begin
  Result := ChildNodes['CTRLSAN'] as IXMLCTRLSANType;
end;

function TXMLROOTType.Get_CTRLESNUM: IXMLCTRLESNUMType;
begin
  Result := ChildNodes['CTRLESNUM'] as IXMLCTRLESNUMType;
end;

function TXMLROOTType.Get_EAN: IXMLEANTypeList;
begin
  Result := FEAN;
end;

function TXMLROOTType.Get_SAN: IXMLSANTypeList;
begin
  Result := FSAN;
end;

function TXMLROOTType.Get_SNUM: IXMLSNUMTypeList;
begin
  Result := FSNUM;
end;

function TXMLROOTType.Get_ENUM: IXMLENUMTypeList;
begin
  Result := FENUM;
end;

function TXMLROOTType.Get_CANINT: IXMLCANINTTypeList;
begin
  Result := FCANINT;
end;

function TXMLROOTType.Get_PSERIE: IXMLPSERIETypeList;
begin
  Result := FPSERIE;
end;

function TXMLROOTType.Get_ST: IXMLSTTypeList;
begin
  Result := FST;
end;

{ TXMLEXPERIENCEType }

procedure TXMLEXPERIENCEType.AfterConstruction;
begin
  RegisterChildNode('DESCRIPTIF', TXMLDESCRIPTIFType);
  FDESCRIPTIF := CreateCollection(TXMLDESCRIPTIFTypeList, IXMLDESCRIPTIFType, 'DESCRIPTIF') as IXMLDESCRIPTIFTypeList;
  inherited;
end;

function TXMLEXPERIENCEType.Get_FEG: Integer;
begin
  Result := AttributeNodes['FEG'].NodeValue;
end;

procedure TXMLEXPERIENCEType.Set_FEG(Value: Integer);
begin
  SetAttribute('FEG', Value);
end;

function TXMLEXPERIENCEType.Get_NBSESSIONS: Integer;
begin
  Result := AttributeNodes['NBSESSIONS'].NodeValue;
end;

procedure TXMLEXPERIENCEType.Set_NBSESSIONS(Value: Integer);
begin
  SetAttribute('NBSESSIONS', Value);
end;

function TXMLEXPERIENCEType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLEXPERIENCEType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLEXPERIENCEType.Get_DUMMYNODEEXPE: WideString;
begin
  Result := ChildNodes['DUMMYNODEEXPE'].Text;
end;

procedure TXMLEXPERIENCEType.Set_DUMMYNODEEXPE(Value: WideString);
begin
  ChildNodes['DUMMYNODEEXPE'].NodeValue := Value;
end;

function TXMLEXPERIENCEType.Get_DESCRIPTIF: IXMLDESCRIPTIFTypeList;
begin
  Result := FDESCRIPTIF;
end;

{ TXMLDESCRIPTIFType }

function TXMLDESCRIPTIFType.Get_TEXT: WideString;
begin
  Result := AttributeNodes['TEXT'].Text;
end;

procedure TXMLDESCRIPTIFType.Set_TEXT(Value: WideString);
begin
  SetAttribute('TEXT', Value);
end;

{ TXMLDESCRIPTIFTypeList }

function TXMLDESCRIPTIFTypeList.Add: IXMLDESCRIPTIFType;
begin
  Result := AddItem(-1) as IXMLDESCRIPTIFType;
end;

function TXMLDESCRIPTIFTypeList.Insert(const Index: Integer): IXMLDESCRIPTIFType;
begin
  Result := AddItem(Index) as IXMLDESCRIPTIFType;
end;
function TXMLDESCRIPTIFTypeList.Get_Item(Index: Integer): IXMLDESCRIPTIFType;
begin
  Result := List[Index] as IXMLDESCRIPTIFType;
end;

{ TXMLCTRLEANType }

function TXMLCTRLEANType.Get_AMPLITUDE: WideString;
begin
  Result := AttributeNodes['AMPLITUDE'].Text;
end;

procedure TXMLCTRLEANType.Set_AMPLITUDE(Value: WideString);
begin
  SetAttribute('AMPLITUDE', Value);
end;

function TXMLCTRLEANType.Get_SEDIFF: WideString;
begin
  Result := AttributeNodes['SEDIFF'].Text;
end;

procedure TXMLCTRLEANType.Set_SEDIFF(Value: WideString);
begin
  SetAttribute('SEDIFF', Value);
end;

{ TXMLCTRLSANType }

function TXMLCTRLSANType.Get_AMPLITUDE: WideString;
begin
  Result := AttributeNodes['AMPLITUDE'].Text;
end;

procedure TXMLCTRLSANType.Set_AMPLITUDE(Value: WideString);
begin
  SetAttribute('AMPLITUDE', Value);
end;

{ TXMLCTRLESNUMType }

function TXMLCTRLESNUMType.Get_FE: Double;
begin
  Result := AttributeNodes['FE'].NodeValue;
end;

procedure TXMLCTRLESNUMType.Set_FE(Value: Double);
begin
  SetAttribute('FE', Value);
end;

{ TXMLEANType }

function TXMLEANType.Get_FE: Double;
begin
  Result := AttributeNodes['FE'].NodeValue;
end;

procedure TXMLEANType.Set_FE(Value: Double);
begin
  SetAttribute('FE', Value);
end;

function TXMLEANType.Get_GAIN: Integer;
begin
  Result := AttributeNodes['GAIN'].NodeValue;
end;

procedure TXMLEANType.Set_GAIN(Value: Integer);
begin
  SetAttribute('GAIN', Value);
end;

function TXMLEANType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLEANType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLEANType.Get_NUMERO: Integer;
begin
  Result := AttributeNodes['NUMERO'].NodeValue;
end;

procedure TXMLEANType.Set_NUMERO(Value: Integer);
begin
  SetAttribute('NUMERO', Value);
end;

function TXMLEANType.Get_UNITE: WideString;
begin
  Result := AttributeNodes['UNITE'].Text;
end;

procedure TXMLEANType.Set_UNITE(Value: WideString);
begin
  SetAttribute('UNITE', Value);
end;

{ TXMLEANTypeList }

function TXMLEANTypeList.Add: IXMLEANType;
begin
  Result := AddItem(-1) as IXMLEANType;
end;

function TXMLEANTypeList.Insert(const Index: Integer): IXMLEANType;
begin
  Result := AddItem(Index) as IXMLEANType;
end;
function TXMLEANTypeList.Get_Item(Index: Integer): IXMLEANType;
begin
  Result := List[Index] as IXMLEANType;
end;

{ TXMLSANType }

function TXMLSANType.Get_FE: Double;
begin
  Result := AttributeNodes['FE'].NodeValue;
end;

procedure TXMLSANType.Set_FE(Value: Double);
begin
  SetAttribute('FE', Value);
end;

function TXMLSANType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLSANType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLSANType.Get_NUMERO: Integer;
begin
  Result := AttributeNodes['NUMERO'].NodeValue;
end;

procedure TXMLSANType.Set_NUMERO(Value: Integer);
begin
  SetAttribute('NUMERO', Value);
end;

{ TXMLSANTypeList }

function TXMLSANTypeList.Add: IXMLSANType;
begin
  Result := AddItem(-1) as IXMLSANType;
end;

function TXMLSANTypeList.Insert(const Index: Integer): IXMLSANType;
begin
  Result := AddItem(Index) as IXMLSANType;
end;
function TXMLSANTypeList.Get_Item(Index: Integer): IXMLSANType;
begin
  Result := List[Index] as IXMLSANType;
end;

{ TXMLSNUMType }

function TXMLSNUMType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLSNUMType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLSNUMType.Get_NUMERO: Integer;
begin
  Result := AttributeNodes['NUMERO'].NodeValue;
end;

procedure TXMLSNUMType.Set_NUMERO(Value: Integer);
begin
  SetAttribute('NUMERO', Value);
end;

{ TXMLSNUMTypeList }

function TXMLSNUMTypeList.Add: IXMLSNUMType;
begin
  Result := AddItem(-1) as IXMLSNUMType;
end;

function TXMLSNUMTypeList.Insert(const Index: Integer): IXMLSNUMType;
begin
  Result := AddItem(Index) as IXMLSNUMType;
end;
function TXMLSNUMTypeList.Get_Item(Index: Integer): IXMLSNUMType;
begin
  Result := List[Index] as IXMLSNUMType;
end;

{ TXMLENUMType }

function TXMLENUMType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLENUMType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLENUMType.Get_NUMERO: Integer;
begin
  Result := AttributeNodes['NUMERO'].NodeValue;
end;

procedure TXMLENUMType.Set_NUMERO(Value: Integer);
begin
  SetAttribute('NUMERO', Value);
end;

{ TXMLENUMTypeList }

function TXMLENUMTypeList.Add: IXMLENUMType;
begin
  Result := AddItem(-1) as IXMLENUMType;
end;

function TXMLENUMTypeList.Insert(const Index: Integer): IXMLENUMType;
begin
  Result := AddItem(Index) as IXMLENUMType;
end;
function TXMLENUMTypeList.Get_Item(Index: Integer): IXMLENUMType;
begin
  Result := List[Index] as IXMLENUMType;
end;

{ TXMLCANINTType }

function TXMLCANINTType.Get_FENUMPAR: Double;
begin
  Result := AttributeNodes['FENUMPAR'].NodeValue;
end;

procedure TXMLCANINTType.Set_FENUMPAR(Value: Double);
begin
  SetAttribute('FENUMPAR', Value);
end;

function TXMLCANINTType.Get_GENRE: WideString;
begin
  Result := AttributeNodes['GENRE'].Text;
end;

procedure TXMLCANINTType.Set_GENRE(Value: WideString);
begin
  SetAttribute('GENRE', Value);
end;

function TXMLCANINTType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLCANINTType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

{ TXMLCANINTTypeList }

function TXMLCANINTTypeList.Add: IXMLCANINTType;
begin
  Result := AddItem(-1) as IXMLCANINTType;
end;

function TXMLCANINTTypeList.Insert(const Index: Integer): IXMLCANINTType;
begin
  Result := AddItem(Index) as IXMLCANINTType;
end;
function TXMLCANINTTypeList.Get_Item(Index: Integer): IXMLCANINTType;
begin
  Result := List[Index] as IXMLCANINTType;
end;

{ TXMLPSERIEType }

function TXMLPSERIEType.Get_BAUDRATE: Integer;
begin
  Result := AttributeNodes['BAUDRATE'].NodeValue;
end;

procedure TXMLPSERIEType.Set_BAUDRATE(Value: Integer);
begin
  SetAttribute('BAUDRATE', Value);
end;

function TXMLPSERIEType.Get_FLUX: WideString;
begin
  Result := AttributeNodes['FLUX'].Text;
end;

procedure TXMLPSERIEType.Set_FLUX(Value: WideString);
begin
  SetAttribute('FLUX', Value);
end;

function TXMLPSERIEType.Get_FREQUENCE: Double;
begin
  Result := AttributeNodes['FREQUENCE'].NodeValue;
end;

procedure TXMLPSERIEType.Set_FREQUENCE(Value: Double);
begin
  SetAttribute('FREQUENCE', Value);
end;

function TXMLPSERIEType.Get_MODE: WideString;
begin
  Result := AttributeNodes['MODE'].Text;
end;

procedure TXMLPSERIEType.Set_MODE(Value: WideString);
begin
  SetAttribute('MODE', Value);
end;

function TXMLPSERIEType.Get_NBBITDATA: Integer;
begin
  Result := AttributeNodes['NBBITDATA'].NodeValue;
end;

procedure TXMLPSERIEType.Set_NBBITDATA(Value: Integer);
begin
  SetAttribute('NBBITDATA', Value);
end;

function TXMLPSERIEType.Get_NBBITSTOP: Double;
begin
  Result := AttributeNodes['NBBITSTOP'].NodeValue;
end;

procedure TXMLPSERIEType.Set_NBBITSTOP(Value: Double);
begin
  SetAttribute('NBBITSTOP', Value);
end;

function TXMLPSERIEType.Get_NBCAPTEURS: Integer;
begin
  Result := AttributeNodes['NBCAPTEURS'].NodeValue;
end;

procedure TXMLPSERIEType.Set_NBCAPTEURS(Value: Integer);
begin
  SetAttribute('NBCAPTEURS', Value);
end;

function TXMLPSERIEType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLPSERIEType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLPSERIEType.Get_NUMERO: Integer;
begin
  Result := AttributeNodes['NUMERO'].NodeValue;
end;

procedure TXMLPSERIEType.Set_NUMERO(Value: Integer);
begin
  SetAttribute('NUMERO', Value);
end;

function TXMLPSERIEType.Get_PARITE: WideString;
begin
  Result := AttributeNodes['PARITE'].Text;
end;

procedure TXMLPSERIEType.Set_PARITE(Value: WideString);
begin
  SetAttribute('PARITE', Value);
end;

function TXMLPSERIEType.Get_SYSTEME: WideString;
begin
  Result := AttributeNodes['SYSTEME'].Text;
end;

procedure TXMLPSERIEType.Set_SYSTEME(Value: WideString);
begin
  SetAttribute('SYSTEME', Value);
end;

{ TXMLPSERIETypeList }

function TXMLPSERIETypeList.Add: IXMLPSERIEType;
begin
  Result := AddItem(-1) as IXMLPSERIEType;
end;

function TXMLPSERIETypeList.Insert(const Index: Integer): IXMLPSERIEType;
begin
  Result := AddItem(Index) as IXMLPSERIEType;
end;
function TXMLPSERIETypeList.Get_Item(Index: Integer): IXMLPSERIEType;
begin
  Result := List[Index] as IXMLPSERIEType;
end;

{ TXMLSTType }

procedure TXMLSTType.AfterConstruction;
begin
  RegisterChildNode('BLOC', TXMLBLOCType);
  FBLOC := CreateCollection(TXMLBLOCTypeList, IXMLBLOCType, 'BLOC') as IXMLBLOCTypeList;
  inherited;
end;

function TXMLSTType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLSTType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLSTType.Get_DUMMYNODEST: WideString;
begin
  Result := ChildNodes['DUMMYNODEST'].Text;
end;

procedure TXMLSTType.Set_DUMMYNODEST(Value: WideString);
begin
  ChildNodes['DUMMYNODEST'].NodeValue := Value;
end;

function TXMLSTType.Get_BLOC: IXMLBLOCTypeList;
begin
  Result := FBLOC;
end;

{ TXMLSTTypeList }

function TXMLSTTypeList.Add: IXMLSTType;
begin
  Result := AddItem(-1) as IXMLSTType;
end;

function TXMLSTTypeList.Insert(const Index: Integer): IXMLSTType;
begin
  Result := AddItem(Index) as IXMLSTType;
end;
function TXMLSTTypeList.Get_Item(Index: Integer): IXMLSTType;
begin
  Result := List[Index] as IXMLSTType;
end;

{ TXMLBLOCType }

procedure TXMLBLOCType.AfterConstruction;
begin
  RegisterChildNode('BLOC', TXMLBLOCType);
  RegisterChildNode('FONCTION', TXMLFONCTIONType);
  FBLOC := CreateCollection(TXMLBLOCTypeList, IXMLBLOCType, 'BLOC') as IXMLBLOCTypeList;
  FFONCTION := CreateCollection(TXMLFONCTIONTypeList, IXMLFONCTIONType, 'FONCTION') as IXMLFONCTIONTypeList;
  inherited;
end;

function TXMLBLOCType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLBLOCType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

function TXMLBLOCType.Get_ADBASICCODE1: WideString;
begin
  Result := AttributeNodes['ADBASICCODE1'].Text;
end;

procedure TXMLBLOCType.Set_ADBASICCODE1(Value: WideString);
begin
  SetAttribute('ADBASICCODE1', Value);
end;

function TXMLBLOCType.Get_ADBASICCODE2: WideString;
begin
  Result := AttributeNodes['ADBASICCODE2'].Text;
end;

procedure TXMLBLOCType.Set_ADBASICCODE2(Value: WideString);
begin
  SetAttribute('ADBASICCODE2', Value);
end;

function TXMLBLOCType.Get_DELPHICODE1: WideString;
begin
  Result := AttributeNodes['DELPHICODE1'].Text;
end;

procedure TXMLBLOCType.Set_DELPHICODE1(Value: WideString);
begin
  SetAttribute('DELPHICODE1', Value);
end;

function TXMLBLOCType.Get_DELPHICODE2: WideString;
begin
  Result := AttributeNodes['DELPHICODE2'].Text;
end;

procedure TXMLBLOCType.Set_DELPHICODE2(Value: WideString);
begin
  SetAttribute('DELPHICODE2', Value);
end;

function TXMLBLOCType.Get_GENRE: WideString;
begin
  Result := AttributeNodes['GENRE'].Text;
end;

procedure TXMLBLOCType.Set_GENRE(Value: WideString);
begin
  SetAttribute('GENRE', Value);
end;

function TXMLBLOCType.Get_PARAM1: WideString;
begin
  Result := AttributeNodes['PARAM1'].Text;
end;

procedure TXMLBLOCType.Set_PARAM1(Value: WideString);
begin
  SetAttribute('PARAM1', Value);
end;

function TXMLBLOCType.Get_PARAM2: WideString;
begin
  Result := AttributeNodes['PARAM2'].Text;
end;

procedure TXMLBLOCType.Set_PARAM2(Value: WideString);
begin
  SetAttribute('PARAM2', Value);
end;

function TXMLBLOCType.Get_PARAM3: WideString;
begin
  Result := AttributeNodes['PARAM3'].NodeValue;
end;

procedure TXMLBLOCType.Set_PARAM3(Value: WideString);
begin
  SetAttribute('PARAM3', Value);
end;

function TXMLBLOCType.Get_DUMMYNODEBLOC: WideString;
begin
  Result := ChildNodes['DUMMYNODEBLOC'].Text;
end;

procedure TXMLBLOCType.Set_DUMMYNODEBLOC(Value: WideString);
begin
  ChildNodes['DUMMYNODEBLOC'].NodeValue := Value;
end;

function TXMLBLOCType.Get_BLOC: IXMLBLOCTypeList;
begin
  Result := FBLOC;
end;

function TXMLBLOCType.Get_FONCTION: IXMLFONCTIONTypeList;
begin
  Result := FFONCTION;
end;

{ TXMLBLOCTypeList }

function TXMLBLOCTypeList.Add: IXMLBLOCType;
begin
  Result := AddItem(-1) as IXMLBLOCType;
end;

function TXMLBLOCTypeList.Insert(const Index: Integer): IXMLBLOCType;
begin
  Result := AddItem(Index) as IXMLBLOCType;
end;
function TXMLBLOCTypeList.Get_Item(Index: Integer): IXMLBLOCType;
begin
  Result := List[Index] as IXMLBLOCType;
end;

{ TXMLFONCTIONType }

procedure TXMLFONCTIONType.AfterConstruction;
begin
  RegisterChildNode('ENTREE', TXMLENTREEType);
  RegisterChildNode('SORTIE', TXMLSORTIEType);
  RegisterChildNode('PARAM', TXMLPARAMType);
  FENTREE := CreateCollection(TXMLENTREETypeList, IXMLENTREEType, 'ENTREE') as IXMLENTREETypeList;
  FSORTIE := CreateCollection(TXMLSORTIETypeList, IXMLSORTIEType, 'SORTIE') as IXMLSORTIETypeList;
  FPARAM := CreateCollection(TXMLPARAMTypeList, IXMLPARAMType, 'PARAM') as IXMLPARAMTypeList;
  inherited;
end;

function TXMLFONCTIONType.Get_DUREE: Double;
begin
  Result := AttributeNodes['DUREE'].NodeValue;
end;

procedure TXMLFONCTIONType.Set_DUREE(Value: Double);
begin
  SetAttribute('DUREE', Value);
end;

function TXMLFONCTIONType.Get_FICHIER: WideString;
begin
  Result := AttributeNodes['FICHIER'].Text;
end;

procedure TXMLFONCTIONType.Set_FICHIER(Value: WideString);
begin
  SetAttribute('FICHIER', Value);
end;

function TXMLFONCTIONType.Get_ENTREE: IXMLENTREETypeList;
begin
  Result := FENTREE;
end;

function TXMLFONCTIONType.Get_SORTIE: IXMLSORTIETypeList;
begin
  Result := FSORTIE;
end;

function TXMLFONCTIONType.Get_PARAM: IXMLPARAMTypeList;
begin
  Result := FPARAM;
end;

{ TXMLFONCTIONTypeList }

function TXMLFONCTIONTypeList.Add: IXMLFONCTIONType;
begin
  Result := AddItem(-1) as IXMLFONCTIONType;
end;

function TXMLFONCTIONTypeList.Insert(const Index: Integer): IXMLFONCTIONType;
begin
  Result := AddItem(Index) as IXMLFONCTIONType;
end;
function TXMLFONCTIONTypeList.Get_Item(Index: Integer): IXMLFONCTIONType;
begin
  Result := List[Index] as IXMLFONCTIONType;
end;

{ TXMLENTREEType }

function TXMLENTREEType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLENTREEType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

{ TXMLENTREETypeList }

function TXMLENTREETypeList.Add: IXMLENTREEType;
begin
  Result := AddItem(-1) as IXMLENTREEType;
end;

function TXMLENTREETypeList.Insert(const Index: Integer): IXMLENTREEType;
begin
  Result := AddItem(Index) as IXMLENTREEType;
end;
function TXMLENTREETypeList.Get_Item(Index: Integer): IXMLENTREEType;
begin
  Result := List[Index] as IXMLENTREEType;
end;

{ TXMLSORTIEType }

function TXMLSORTIEType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLSORTIEType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

{ TXMLSORTIETypeList }

function TXMLSORTIETypeList.Add: IXMLSORTIEType;
begin
  Result := AddItem(-1) as IXMLSORTIEType;
end;

function TXMLSORTIETypeList.Insert(const Index: Integer): IXMLSORTIEType;
begin
  Result := AddItem(Index) as IXMLSORTIEType;
end;
function TXMLSORTIETypeList.Get_Item(Index: Integer): IXMLSORTIEType;
begin
  Result := List[Index] as IXMLSORTIEType;
end;

{ TXMLPARAMType }

function TXMLPARAMType.Get_NOM: WideString;
begin
  Result := AttributeNodes['NOM'].Text;
end;

procedure TXMLPARAMType.Set_NOM(Value: WideString);
begin
  SetAttribute('NOM', Value);
end;

{ TXMLPARAMTypeList }

function TXMLPARAMTypeList.Add: IXMLPARAMType;
begin
  Result := AddItem(-1) as IXMLPARAMType;
end;

function TXMLPARAMTypeList.Insert(const Index: Integer): IXMLPARAMType;
begin
  Result := AddItem(Index) as IXMLPARAMType;
end;
function TXMLPARAMTypeList.Get_Item(Index: Integer): IXMLPARAMType;
begin
  Result := List[Index] as IXMLPARAMType;
end;

end. 
