Génération d'une IHM à partir d'un flux

Génération d'une IHM à partir d'un flux - XML/XSL - Programmation

Marsh Posté le 15-04-2003 à 11:24:56    

Je me lance dans cette nouvelle catégorie :)
 
Voilà, je dois créér une IHM genre formulaire, à partir d'un flux XML passé en paramètre.
Tout doit être générer de manière dynamique.
Le flux XML n'a pas toujours forcément le même contenu.
L'IHM non plus puisqu'elle dépend du flux.
J'ai commencé à regarder du côté de XForms et de xslt pour les transformations, mais si vous avez d'autres idées ou des conseils/exemples, je prends.
 :jap:

Reply

Marsh Posté le 15-04-2003 à 11:24:56   

Reply

Marsh Posté le 15-04-2003 à 11:32:16    

walli a écrit :


Voilà, je dois créér une IHM genre formulaire, à partir d'un flux XML passé en paramètre.


 
Tu peux pas plutot la créer à partir du XML Schéma décrivant la structure du XML que tu reçois ? Ca me semblerais plus adapté.


Message édité par kadreg le 15-04-2003 à 11:32:30

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 15-04-2003 à 11:35:11    

kadreg a écrit :


 
Tu peux pas plutot la créer à partir du XML Schéma décrivant la structure du XML que tu reçois ? Ca me semblerais plus adapté.


 
[:meganne] peut être oui.
vais fouiller un peu.

Reply

Marsh Posté le 15-04-2003 à 11:55:53    

Oui, c'est ce que je fais :
J'utilise directement les XSD (schémas xml) pour générer le formulaire adapté via une XSL (par exemple templateXSD.xsl)...
 
Ce n'est pas trop difficile et particulièrement adapté du fait que le XSD est tout d'abord en XML mais aussi qu'il décrit quasiment tout ce qu'il faut pour générer un formulaire.
 
Par exemple :
<xs:element name="..."...> permet de créer les noeuds eux même
 
Ensuite en détectant si l'ancestor de cet xs:element est de type mixte (true ou rien), on peut créer un textArea.
Petite subtilité : faire une feuille de style qui reconnaisse les <xs:element name...> et les <xsl:element ref...>
 
De même pour les <xs:attribute name="..."...> permet de créer les attribut des <xs:element...> dont ils sont les descendants...
 
Les attributs type de <xs:attribute...> me permettent de définir le type d'input du formulaire : un input texte si le type est xs:string, des select/jour/mois/année si c'est xs:date, des select spécifiques si <xs:attribute...> est d'un type particulier (restriction...)
 
Les attributes required permettent de vérifier si le champ est indispensable...
 
Les annotations permettent de filer des messages d'aides
 
Les "facets" ou patterns permettent de définir le "moule" de remplissage du champ
 
Les attributs minOccured et maxOccured permettent de définir la cardinalité des champs...
 
Un javaScript permet lors du submit d'escaper les caractères particuliers et de remplacer les &, >, <, " ... par leur équivalent amp;, gt;, lt;, quot; (rajouter & devant)...
Puis ce script assemble les différents élements du formulaires générés depuis le XSD, en les mettant bout à bout, par exemple :
 
<content + title=" + Voici le titre + "> + <text> + Voici le texte + </text> + </content>...
 
Voila comment je fais et ça marche plutôt bien pourl'instant (j'ai essayé ça hier justement)...


Message édité par chocoboy le 15-04-2003 à 11:58:28
Reply

Marsh Posté le 15-04-2003 à 12:02:34    

kadreg a écrit :


 
Tu peux pas plutot la créer à partir du XML Schéma décrivant la structure du XML que tu reçois ? Ca me semblerais plus adapté.


 
Bah si tu pars du principe que le formulaire se base sur un schéma, alors va ptet falloir coupler les deux !!  [:spamafote]

Reply

Marsh Posté le 15-04-2003 à 12:05:37    


 
 :jap:  pour ces explications :)
Tu as mis longtemps pour t'y mettre ?
Parce qu'en fait on a un prototype à réaliser pour un client, et comme d'hab, on a des délais assez restreints.
Et à première vue, ça paraît assez verbeux tout ça.


Message édité par walli le 15-04-2003 à 12:05:56
Reply

Marsh Posté le 15-04-2003 à 12:08:28    

Lorgne aussi de ce côté :
 
http://xmljs.sourceforge.net/

Reply

Marsh Posté le 15-04-2003 à 12:10:15    


 
 :jap:  
Mici m'sieur

Reply

Marsh Posté le 15-04-2003 à 12:39:44    

Reply

Marsh Posté le 15-04-2003 à 12:51:03    


 
Vais zieuter ça
[:neowen]


---------------
NP :
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed