Project

General

Profile

AjouterUneBaliseContainers24

Schéma rapide

Le point d'entrée est "read_dir" de "loader.py".

Le fichier dictionnaire XML est chargé dans "lxml_parser.py".
Le fichier creole.dtd est chargé pour parser automatiquement les balises "container" via la fonction "_parse_container".

Dans "loader.py", la fonction populate_nomdelabalise est exécutée si elle existe. Sinon la liste des données est concaténée.

Enfin, la fonction gen_nomdelabalise est exécutée si elle existe. Sinon la fonction "gen_generic" est exécutée.

Chargement des balises

Les balises dans la base <files>, <container> et <all> sont chargées automatiquement à partir de la DTD.

Il faut donc commencer par remplir convenablement la DTD. Il n'est pas nécessaire de modifier lxml_parser.py.

Un parser simple récupère les informations. Il est nécessaire de suivre ces conventions :

  • Les <!ELEMENT ...> et <!ATTLIST ...> DOIVENT être sur une ligne ;
  • penser à renseigner l'élément "files", "container" et/ou "all" ;
  • syntaxe element : <!ELEMENT nom_element value>
  • rien : EMPTY,
  • une string : (#PCDATA),
  • des éléments : exemple : (el1* | el2*) ;
  • syntaxe attlist : <!ATTLIST nom_element nom_attribue valeur type_value comment :
  • value : liste des possibilités : (True|False) ou CDATA (une string),
  • type_value : valeur optionnelle : #IMPLIED | valeur obligatoire : #REQUIRED | valeur par défaut : "None" ;
  • commentaire : si la variable est un symlink : <!--SymLinkOption-->
  • les valeurs "True", "False" et None sont remplacées automatiquement par True, False et None.

Chargement de tiramisu

Le chargement est automatique avec les critères suivants :

  • ajout automatique de tiramisu.containers._attrib_
  • les attributs créés des StrOption avec le même nom et la valeur chargée ;
  • si un attribut "_nom_element_ list" existe, ajout automatique de "activate" avec le requires

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.