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. |