Projet

Général

Profil

AjouterUneBaliseContainers24 » Historique » Version 8

Fabrice Barconnière, 02/10/2013 09:44

1 1 Emmanuel GARETTE
h1. AjouterUneBaliseContainers24
2 1 Emmanuel GARETTE
3 5 Emmanuel GARETTE
h2. Schéma rapide
4 5 Emmanuel GARETTE
5 7 Fabrice Barconnière
Le point d'entrée est "read_dir" de "loader.py".
6 5 Emmanuel GARETTE
7 5 Emmanuel GARETTE
Le fichier dictionnaire XML est chargé dans "lxml_parser.py".
8 7 Fabrice Barconnière
Le fichier creole.dtd est chargé pour parser automatiquement les balises "container" via la fonction "_parse_container".
9 5 Emmanuel GARETTE
10 7 Fabrice Barconnière
Dans "loader.py", la fonction populate_nomdelabalise est exécutée si elle existe. Sinon la liste des données est concaténée.
11 5 Emmanuel GARETTE
12 7 Fabrice Barconnière
Enfin, la fonction gen_nomdelabalise est exécutée si elle existe. Sinon la fonction "gen_generic" est exécutée.
13 5 Emmanuel GARETTE
14 1 Emmanuel GARETTE
h2. Chargement des balises
15 1 Emmanuel GARETTE
16 8 Fabrice Barconnière
Les balises dans la base <files>, <container> et <all> sont chargées automatiquement à partir de la DTD.
17 1 Emmanuel GARETTE
18 8 Fabrice Barconnière
Il faut donc commencer par remplir convenablement la DTD. *Il n'est pas nécessaire de modifier lxml_parser.py*.
19 1 Emmanuel GARETTE
20 1 Emmanuel GARETTE
Un parser simple récupère les informations. Il est nécessaire de suivre ces conventions :
21 1 Emmanuel GARETTE
22 1 Emmanuel GARETTE
* Les <!ELEMENT ...> et <!ATTLIST ...> DOIVENT être sur une ligne ;
23 1 Emmanuel GARETTE
* penser à renseigner l'élément "files", "container" et/ou "all" ;
24 2 Emmanuel GARETTE
* syntaxe element : <!ELEMENT nom_element value>
25 2 Emmanuel GARETTE
> * rien : EMPTY,
26 2 Emmanuel GARETTE
> * une string : (#PCDATA),
27 3 Emmanuel GARETTE
> * des éléments : exemple : (el1* | el2*) ;
28 6 Emmanuel GARETTE
* syntaxe attlist : <!ATTLIST nom_element nom_attribue valeur type_value comment :
29 1 Emmanuel GARETTE
> * value : liste des possibilités : (True|False) ou CDATA (une string),
30 1 Emmanuel GARETTE
> * type_value : valeur optionnelle : #IMPLIED | valeur obligatoire : #REQUIRED | valeur par défaut : "None" ;
31 6 Emmanuel GARETTE
> * commentaire : si la variable est un symlink : <!--SymLinkOption-->
32 8 Fabrice Barconnière
* les valeurs "True", "False" et None sont remplacées automatiquement par True, False et None.
33 3 Emmanuel GARETTE
34 3 Emmanuel GARETTE
h2. Chargement de tiramisu
35 3 Emmanuel GARETTE
36 3 Emmanuel GARETTE
Le chargement est automatique avec les critères suivants :
37 3 Emmanuel GARETTE
38 3 Emmanuel GARETTE
* ajout automatique de tiramisu.containers._attrib_
39 3 Emmanuel GARETTE
* les attributs créés des StrOption avec le même nom et la valeur chargée ;
40 3 Emmanuel GARETTE
* si un attribut "_nom_element_ list" existe, ajout automatique de "activate" avec le requires
41 3 Emmanuel GARETTE
42 4 Emmanuel GARETTE
Si ces critères ne vont pas, il sera nécessaire de faire une méthode "gen_ "_attrib_" dans le fichier loader.py. L'appel de cette fonction sera fait automatiquement.