01 - Le fichier d’information de mise à jour
jeudi 8 avril 2004, par Bech ()
Le fichier d’information d’update
Ce fichier sert de conteneur d’informations sur la version la plus à jour de l’application. il donne le descriptif des fichiers utilisés et présent dans le dossier de l’application et permet de faire des vérifications pour savoir si le poste de l’utilisateur est à jour.
Le fichier est au format XML afin, il me semble, d’être facilement extensible.
Squelette du fichier
<?xml version="1.0" encoding="iso-8859-1"?>
<AUpdate>
<UpdateInfo/>
<Application/>
<Files/>
</AUpdate>
C’est donc bien un fichier XML. le noeud racine est "AUpdate". il contient à son tour 3 noeuds qui sont :
UpdateInfo,
Application,
Files.
Section UpdateInfo
Cette section enregistre la configuration de la mise à jour :
<UpdateInfo>
<UpdatePath>http://sedp.free.fr/Fichiers</UpdatePath>
<UpdateAccess>HTTP</UpdateAccess>
<Hash>MD5</Hash>
<Compress>none</Compress>
<Crypto>none</Crypto>
</UpdateInfo>
| Nom | Description |
|---|---|
| UpdatePath | Chemin ou se trouve les fichiers sur internet |
| UpdateAccess | Accès par FTP ou HTTP |
| Hash | Indique le type de vérification de checksum (MD5 ou none) |
| Compress | Indique la compression par défaut des fichiers (Zip ou None) |
| Crypto | Indique le type de crypto. par défaut (XOR ou None) |
Section application
Cette section contient la description de l’application et de la dernière mise à jour :
<Application>
<Name>Test</Name>
<Version>1.0.0.1</Version>
<Date>20/06/2003</Date>
<UpdateInformations>Nouvelle mise a jour</UpdateInformations>
<Author>Moa</Author>
<Exec>{$APP}\Updater.exe</Exec>
</Application>
| Nom | Description |
|---|---|
| Name | le nom de l’application |
| Version | la dernière version à jour |
| Date | date de la dernière mise à jour |
| UpdateInformations | Informations sur la mise à jour |
| Author | Auteur de la mise à jour |
| Exec | fichier à lancer après la mise à jour |
Section Files
Cette section contient un noeud par fichier et en donne la description :
<Files>
<File>
<FileName>{$APP}\OpenGL12.zip</FileName>
<Hash>21094623014623012349012783</Hash>
<FileUpdateName>{$UPDATE}/OpenGL12.zip</FileUpdateName>
<Compress>none</Compress>
<Crypto>none</Crypto>
<UpdateInformations/>
<Size>744707</Size>
</File>
<Files/>
Chaque noeuds correspond à un fichier.
| Nom | Description |
|---|---|
| FileName | Nom du fichier "destination" |
| Hash | contient le checksum, hashsum du fichier final |
| FileUpdateName | Nom du fichier "source" de la mise à jour |
| Compress | Compression du fichier |
| Crypto | Cryptage du fichier |
| UpdateInformations | Information de MAJ sur le fichier |
| Size | taille du fichier à télécharger |
Exemple de fichier complet
<?xml version="1.0" encoding="iso-8859-1"?>
<AUpdate>
<UpdateInfo>
<UpdatePath>http://www.sed-p.net/Fichiers</UpdatePath>
<UpdateAccess>HTTP</UpdateAccess>
<Hash>MD5</Hash>
<Compress>none</Compress>
<Crypto>none</Crypto>
</UpdateInfo>
<Application>
<Name>Test</Name>
<Version>1.0.0.1</Version>
<Date>20/06/2003</Date>
<UpdateInformations>Nouvelle mise a jour</UpdateInformations>
<Author>Moa</Author>
<Exec>{$APP}\Updater.exe</Exec>
</Application>
<Files>
<File>
<FileName>{$APP}\OpenGL12.zip</FileName>
<Hash>21094623014623012349012783</Hash>
<FileUpdateName>{$UPDATE}/OpenGL12.zip</FileUpdateName>
<Compress>none</Compress>
<Crypto>none</Crypto>
<UpdateInformations/>
<Size>744707</Size>
</File>
<File>
<FileName>{$APP}\Fichier2.gif</FileName>
<Hash>21094623014623012349012783</Hash>
<FileUpdateName>{$UPDATE}/violent17.gif</FileUpdateName>
<Compress>none</Compress>
<Crypto>none</Crypto>
<UpdateInformations/>
<Size>4218</Size>
</File>
</Files>
</AUpdate>
La DTD du fichier (au cas ou)
si j’ai pas fait d’erreurs, cela doit donner ça :
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE AUpdate [
<!ELEMENT AUpdate (UpdateInfo,Application,Files)>
<!ELEMENT UpdateInfo (UpdatePath,UpdateAccess,Hash,Compress,Crypto)>
<!ELEMENT UpdatePath (#PCDATA)>
<!ELEMENT UpdateAccess (#PCDATA)>
<!ELEMENT Hash (#PCDATA)>
<!ELEMENT Compress (#PCDATA)>
<!ELEMENT Crypto (#PCDATA)>
<!ELEMENT Application (Name,Version,Date,UpdateInformations,Author,Exec)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Version (#PCDATA)>
<!ELEMENT Date (#PCDATA)>
<!ELEMENT UpdateInformations (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
<!ELEMENT Exec (#PCDATA)>
<!ELEMENT Files (File*)>
<!ELEMENT File (FileName,Hash,FileUpdateName,Compress,Crypto,Size)>
<!ELEMENT FileName (#PCDATA)>
<!ELEMENT FileUpdateName (#PCDATA)>
<!ELEMENT Size (#PCDATA)>
]>