| [ Index ] |
PHP Cross Reference of GASELL SVN Trunk |
[Summary view] [Print] [Text view]
1 ========================================= 2 Fichiers d'echange de l'application (XML) 3 ========================================= 4 5 :Authors: Saint-Genest Gwenael (Hooligan0) 6 :Version: 1.0-p1 22/01/2004 7 8 --------------- 9 1. Introduction 10 --------------- 11 12 Dans de nombreux cas, l'application doit echanger des donnees avec d'autres 13 logiciels. Il s'agira par exemple de pouvoir importer un nouveau schema de 14 la base de donnees, de pouvoir exporter des listes de mails vers des carnets 15 d'adresse, ou tout simplement des operations de sauvegarde et de 16 restauration. Pour des raisons de perenite et d'universalite, le format de 17 fichier et de donnees qui a ete retenu pour realiser ces echanges est le XML. 18 Il est simple a partir de ce format et de feuilles de styles d'obtenir tous 19 les autres formats qui pourraient etre necessaires ou utiles. 20 21 Ce document precise ce que peut ou non contenir les fichiers generes ou 22 importes ainsi que la facon de les exploiter. 23 24 --------------------------------------- 25 2. Contenu et organisation des fichiers 26 --------------------------------------- 27 28 2.1 Structure minimale 29 ^^^^^^^^^^^^^^^^^^^^^^ 30 31 Au moment de l'ecriture de ce document, la version de XML utilisee est la 32 1.0 [1]_ Le codage utilise est UTF-8. Un document XML correctement forme ne 33 doit avoir qu'un seul element racine [2]_. Le nom utilise pour la racine est 34 GASELL. 35 36 Il en ressort le squelette minimum de document suivant : :: 37 38 <?xml version="1.0"encoding="UTF-8"?> 39 <gasell> 40 (...) 41 </gasell> 42 43 .. [1] http://www.w3.org/TR/REC-xml 44 .. [2] http://www.w3.org/TR/REC-xml#sec-well-formed 45 46 2.2 Sections de premier niveau 47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 48 49 Les tags present immediatement apres le <gasell> (ci apres nommes tags de 50 niveau 1) representent les donnees des grandes parties de l'application. 51 Deux parties sont necessaire au fonctionnement interne (database et config), 52 les autres sont utilisees dans les operations de sauvegarde/restauration ou 53 d'import/export vers d'autres applications. 54 55 - database : Structure de toute ou partie de la base de donnees 56 - config : La configuration de l'application 57 - exercices : Tout ce qui tourne autour d'un exercice (entre autres, les 58 types d'adhesion) 59 60 - commissions : Les commissions et le(s) bureaux 61 - personnes : Toutes les infos sur les personnes (contacts, adhesions, 62 competences, ...) (objets ?) 63 64 - interventions [3]_ : Ce qui touche aux interventions (TODO: a definir) 65 - comptabilite [3]_ : La nebuleuse gestion de la compta 66 67 .. [3] Non disponible actuellement. 68 69 ---------------------------------- 70 3. Structure de la base de données 71 ---------------------------------- 72 73 L'un des premiers besoin de l'application est de pouvoir représenter sa base 74 de donnees. Elle est constituee d'un enssemble de tables qui ont des 75 proprietes ainsi que des contraintes et des liens entre elles. Le tag de 76 niveau 1 *database* permet de representer cette structure a un niveau tres 77 proche de la base de donnees. 78 79 * Un tag database_ permet de representer la structure de la base de données. 80 * A l'intérieur de celui-ci, un ou plusieurs elements *table* representent 81 chacun une table (nommée par un attribut *name*). 82 * Chaque *table*, contient des elements *column* (représentant les colonnes). 83 84 Voici un exemple de structure : :: 85 86 <?xml version="1.0"encoding="UTF-8"?> 87 <gasell> 88 <database> 89 <table name="table1"> 90 <column name="t1_col1" type="int" constraint="primary"/> 91 <column name="t1_col2" type="varchar"/> 92 </table> 93 <table name="table2"> 94 <column name="t1_col1" type="int" constraint="references" references="table1 on update cascade"/> 95 <column name="t2_col2" type="varchar"/> 96 </table> 97 </database> 98 </gasell> 99 100 ---------------- 101 4. Configuration 102 ---------------- 103 104 ... 105 106 --------------------------- 107 Reference des tags utilises 108 --------------------------- 109 110 5.1 config 111 ^^^^^^^^^^ 112 113 plop 114 115 5.2 column 116 ^^^^^^^^^^ 117 Cet element contenu dans un element "table" definit le format d'une colone. 118 119 Il possede deux parametres obligatoires : "name" qui represente le nom de la 120 colone et "type" qui represente le format des données qu'elle contient. Il 121 possede egalement deux paramètres optionnels : "constraint" qui precise les 122 contraintes de la colone ('primary' pour une clef primaire ou 'references' 123 pour une clef etrangere) et "references" qui permet dans le cas d'une clef 124 etrangere de preciser vers ou se fait le lien (ex: 'tab1 on update cascade' 125 pour preciser que le lien se fait vers la table tab1) 126 127 5.3 commissions 128 ^^^^^^^^^^^^^^^ 129 plop 130 131 5.4 comptabilite 132 ^^^^^^^^^^^^^^^^ 133 134 plop 135 136 .. _database: 137 138 5.5 database 139 ^^^^^^^^^^^^ 140 141 Tag de niveau 1 qui contient des informations sur la structure de la base de 142 donnes. Il n'y a aucun parametre obligatoire ni aucun parametre optionnel a 143 ce tag. 144 145 Il peut contenir aucun ou plusieurs tags "table". 146 147 5.6 exercices 148 ^^^^^^^^^^^^^ 149 150 plop 151 152 5.7 gasell 153 ^^^^^^^^^^ 154 Ce tag est la racine de tout le document. Pour respecter le standard XML, il 155 doit etre unique. 156 157 Cet element prend deux attributs optionnels : version, qui precise le numero 158 de version de l'application qui l'a genere; dbversion, qui precise le numero 159 de version de la base de donnees. 160 161 5.8 interventions 162 ^^^^^^^^^^^^^^^^^ 163 164 plop 165 166 5.9 personnes 167 ^^^^^^^^^^^^^ 168 169 plop 170 171 5.10 table 172 ^^^^^^^^^^ 173 Ce tag est contenu dans un element database (cf 5.5). Il permet de definir 174 le format et les relations d'une table de la base. Il y a un parametre 175 obligatoire "name" qui definit le nom de la table dans la base. 176 177 Cet element peut contenir un ou plusieurs tags "column".
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Tue Jan 6 01:17:25 2009 | Cross-referenced by PHPXref 0.7 |