=========================================
Fichiers d'echange de l'application (XML)
=========================================
:Authors: Saint-Genest Gwenael (Hooligan0)
:Version: 1.0-p1 22/01/2004
---------------
1. Introduction
---------------
Dans de nombreux cas, l'application doit echanger des donnees avec d'autres
logiciels. Il s'agira par exemple de pouvoir importer un nouveau schema de
la base de donnees, de pouvoir exporter des listes de mails vers des carnets
d'adresse, ou tout simplement des operations de sauvegarde et de
restauration. Pour des raisons de perenite et d'universalite, le format de
fichier et de donnees qui a ete retenu pour realiser ces echanges est le XML.
Il est simple a partir de ce format et de feuilles de styles d'obtenir tous
les autres formats qui pourraient etre necessaires ou utiles.
Ce document precise ce que peut ou non contenir les fichiers generes ou
importes ainsi que la facon de les exploiter.
---------------------------------------
2. Contenu et organisation des fichiers
---------------------------------------
2.1 Structure minimale
^^^^^^^^^^^^^^^^^^^^^^
Au moment de l'ecriture de ce document, la version de XML utilisee est la
1.0 [1]_ Le codage utilise est UTF-8. Un document XML correctement forme ne
doit avoir qu'un seul element racine [2]_. Le nom utilise pour la racine est
GASELL.
Il en ressort le squelette minimum de document suivant : ::
(...)
.. [1] http://www.w3.org/TR/REC-xml
.. [2] http://www.w3.org/TR/REC-xml#sec-well-formed
2.2 Sections de premier niveau
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Les tags present immediatement apres le (ci apres nommes tags de
niveau 1) representent les donnees des grandes parties de l'application.
Deux parties sont necessaire au fonctionnement interne (database et config),
les autres sont utilisees dans les operations de sauvegarde/restauration ou
d'import/export vers d'autres applications.
- database : Structure de toute ou partie de la base de donnees
- config : La configuration de l'application
- exercices : Tout ce qui tourne autour d'un exercice (entre autres, les
types d'adhesion)
- commissions : Les commissions et le(s) bureaux
- personnes : Toutes les infos sur les personnes (contacts, adhesions,
competences, ...) (objets ?)
- interventions [3]_ : Ce qui touche aux interventions (TODO: a definir)
- comptabilite [3]_ : La nebuleuse gestion de la compta
.. [3] Non disponible actuellement.
----------------------------------
3. Structure de la base de données
----------------------------------
L'un des premiers besoin de l'application est de pouvoir représenter sa base
de donnees. Elle est constituee d'un enssemble de tables qui ont des
proprietes ainsi que des contraintes et des liens entre elles. Le tag de
niveau 1 *database* permet de representer cette structure a un niveau tres
proche de la base de donnees.
* Un tag database_ permet de representer la structure de la base de données.
* A l'intérieur de celui-ci, un ou plusieurs elements *table* representent
chacun une table (nommée par un attribut *name*).
* Chaque *table*, contient des elements *column* (représentant les colonnes).
Voici un exemple de structure : ::
----------------
4. Configuration
----------------
...
---------------------------
Reference des tags utilises
---------------------------
5.1 config
^^^^^^^^^^
plop
5.2 column
^^^^^^^^^^
Cet element contenu dans un element "table" definit le format d'une colone.
Il possede deux parametres obligatoires : "name" qui represente le nom de la
colone et "type" qui represente le format des données qu'elle contient. Il
possede egalement deux paramètres optionnels : "constraint" qui precise les
contraintes de la colone ('primary' pour une clef primaire ou 'references'
pour une clef etrangere) et "references" qui permet dans le cas d'une clef
etrangere de preciser vers ou se fait le lien (ex: 'tab1 on update cascade'
pour preciser que le lien se fait vers la table tab1)
5.3 commissions
^^^^^^^^^^^^^^^
plop
5.4 comptabilite
^^^^^^^^^^^^^^^^
plop
.. _database:
5.5 database
^^^^^^^^^^^^
Tag de niveau 1 qui contient des informations sur la structure de la base de
donnes. Il n'y a aucun parametre obligatoire ni aucun parametre optionnel a
ce tag.
Il peut contenir aucun ou plusieurs tags "table".
5.6 exercices
^^^^^^^^^^^^^
plop
5.7 gasell
^^^^^^^^^^
Ce tag est la racine de tout le document. Pour respecter le standard XML, il
doit etre unique.
Cet element prend deux attributs optionnels : version, qui precise le numero
de version de l'application qui l'a genere; dbversion, qui precise le numero
de version de la base de donnees.
5.8 interventions
^^^^^^^^^^^^^^^^^
plop
5.9 personnes
^^^^^^^^^^^^^
plop
5.10 table
^^^^^^^^^^
Ce tag est contenu dans un element database (cf 5.5). Il permet de definir
le format et les relations d'une table de la base. Il y a un parametre
obligatoire "name" qui definit le nom de la table dans la base.
Cet element peut contenir un ou plusieurs tags "column".