questionnaire en XML

questionnaire en XML - XML/XSL - Programmation

Marsh Posté le 20-04-2004 à 11:27:11    

voila je doit stocker un questionnaire dans un fichier xml que je devrai afficher avec asp.net  
 
Pour l'instant je chercher a realiser le fichier xml. celui doit respecter certyaines contraintes:  
-il doit stocké les question et les reponse de chaques kestion  
-les reponse possible peuvent etre soit des checkbox ou des radiobutton avec le texte associé soit un champ input type text soit des radiobutton avec des images associées  
-le montre de reponse par question vari entre 3 et 10  
 
je ne sait pas trop comment réalisé le fichier XML ainsi que son schema.  
 
si qqn avait une idée (ou plusieurs idées) pour me permettre de démaré sur de bonnes bases  
 
merci

Reply

Marsh Posté le 20-04-2004 à 11:27:11   

Reply

Marsh Posté le 20-04-2004 à 11:34:23    

voici a koi jai penser mais je sai pa si c'est faisable et encore moi si je peux faire un schema de ca:
 

Code :
  1. <?xml version="1.0" encoding="windows-1252"?>
  2. <questionnaire>
  3. <question>
  4.  <ennonce>Question1: Quelles est la couleur du cheval blanc d'Henri IV ?</ennonce>
  5.  <checkBox code="1">Blanc</checkbox>
  6.  <checkBox code="2">Noir</checkBox>
  7.  <checkBox code="3">Brun</checkBox>
  8.  <checkBox code="4">Vert</checkBox>
  9.  <checkBox code="5">Rouge</checkBox>
  10.  <checkBox code="6">Bleu</checkBox>
  11. </question>
  12. <question>
  13.  <ennonce>Question2: Combien mesure la trompe d'un éléphant rose Japonnais en moyenne (en cm)?</ennonce>
  14.  <radioButton code="1">125.5</radioButton>
  15.  <radioButton code="2">80.5</radioButton>
  16.  <radioButton code="3">50.9</radioButton>
  17. </question>
  18. <question>
  19.  <ennonce>Question3: Comment s'appelle la femme du Président de la Lituanie? </ennonce>
  20.  <radioButton code="1">Bernadette</radioButton>
  21.  <radioButton code="2">Hillary</radioButton>
  22.  <radioButton code="3">Elizabeth</radioButton>
  23.  <radioButton code="4">Magdalena</radioButton>
  24. </question>
  25. <question>
  26.  <ennonce>Question4: Pourquoi le bébé de la pub lotus est-il mort?</ennonce>
  27.  <radioButton code="1">Accident de voiture</radioButton>
  28.  <radioButton code="2">il a glisser des toilettes?</radioButton>
  29.  <radioButton code="3">il était au bout du rouleau</radioButton>
  30. </question>
  31. <question>
  32.  <ennonce>Question5: combien vaut 15? en sucre (monnais de l'equateur)?</ennonce>
  33.  <input></input>
  34. </question>
  35. </questionnaire>

Reply

Marsh Posté le 21-04-2004 à 01:43:17    

tellier a écrit :

voici a koi jai penser mais je sai pa si c'est faisable et encore moi si je peux faire un schema de ca:
 

Code :
  1. <?xml version="1.0" encoding="windows-1252"?>
  2. <questionnaire>
  3. </questionnaire>




 
à mon avis, c'est déjà trop orienté présentation pour un XML : tu devrais plutot te demander le pourquoi du "radiobouton" et du "checkbox" : j'imagine que les radio boutons servent aux questions à réponse unique et les check box aux question à réponse multiple --> n'oublie pas, l'intérêt du XML c'est de dissocier contenu / logique / présentation, donc il est nécessaire d'analyser le problème avant.
 
Une piste :  
 
tu pourrais avoir un parent
 
<question>
 ...
</question>
 
or, le "type" de réponse est fonction du "type" de question, par exemple :
 
<question type="reponse_unique" />
 
ou
 
<question type="reponse_multiple" />
 
et les réponses, la présence de l'attribut @correct="oui" précisant si la réponse est bonne ou pas :
 
<question type="reponse_unique" enonce="de quelle couleur est le cheval blanc d'Henry IV">
  <reponse>noir</reponse>
  <reponse>rouge</reponse>
  <reponse correct="oui">blanc</reponse>
  <reponse>bleu</reponse>
</question>
 
ou
 
<question type="reponse_multiple" enonce="A quelle vitesse peut on rouler avec le panneau Limation à 50Km/h">
  <reponse correct="oui">20 Km/h</reponse>
  <reponse correct="oui">30 Km/h</reponse>
  <reponse correct="oui">40 Km/h</reponse>
  <reponse correct="oui">50 Km/h</reponse>
  <reponse>70 Km/h</reponse>
  <reponse>90 Km/h</reponse>
</question>
 
le code me semble superflu car peut être déduit par le script, de même le script pourra remplacer par des radio boutons ou checkbox en fonction de tes règles
 
tu peux remplacer par tes propre terme, mais c'est l'idée  :)
 
tiens d'ailleurs si tu as compris, le @type du noeud question est même superflu, puisque la présence d'1 seul noeud enfant <reponse> ayant un attribut @correct="oui" orientera vers une question à réponse unique et la présence de plusieurs noeud enfant <reponse> ayant un attribut @correct="oui" orientera vers les questions à réponse multiples  
 
au final, je schéma est très simple :
 

Code :
  1. <question enonce="...">
  2.   <reponse>...</reponse>
  3.   <reponse correct="oui">...</reponse>
  4. </question>


 
==> l'intérêt c'est que maintenant, il te suffira de modifier ton script si tu change tes règles mais tu n'auras plus à toucher aux données !


Message édité par chocoboy le 21-04-2004 à 01:51:49
Reply

Marsh Posté le 21-04-2004 à 08:59:13    

tout d'abord merci de ta reponse
 
bon entre temps j'avais fait des modif: en effet je n'ai utiliser que des balise reponse et jai specifier en attribut le type de case:
 

Code :
  1. <?xml version="1.0" encoding="windows-1252"?>
  2. <questionnaire>
  3. <question format="checkBox" id="1" dataType="xsd:string">
  4.  <ennonce>Question1: Quelles est la couleur du cheval blanc d'Henri IV ?</ennonce>
  5.  <reponse code="1">Blanc</reponse>
  6.  <reponse code="2">Noir</reponse>
  7.  <reponse code="3">Brun</reponse>
  8.  <reponse code="4">Vert</reponse>
  9.  <reponse code="5">Rouge</reponse>
  10.  <reponse code="6">Bleu</reponse>
  11. </question>
  12. <question format="radioButton" id="2" dataType="xsd:decimal">
  13.  <ennonce>Question2: Combien mesure la trompe d'un éléphant rose Japonnais en moyenne (en cm)?</ennonce>
  14.  <reponse code="1">125.5</reponse>
  15.  <reponse code="2">80.5</reponse>
  16.  <reponse code="3">50.9</reponse>
  17. </question>
  18. <question format="radioButton" id="3" dataType="xsd:string">
  19.  <ennonce>Question3: Comment s'appelle la femme du Président de la Lituanie? </ennonce>
  20.  <reponse code="1">Bernadette</reponse>
  21.  <reponse code="2">Hillary</reponse>
  22.  <reponse code="3">Elizabeth</reponse>
  23.  <reponse code="4">Magdalena</reponse>
  24. </question>
  25. <question format="radioButton" id="4" dataType="xsd:string">
  26.  <ennonce>Question4: Pourquoi le bébé de la pub lotus est-il mort?</ennonce>
  27.  <reponse code="1">Accident de voiture</reponse>
  28.  <reponse code="2">il a glisser des toilettes?</reponse>
  29.  <reponse code="3">il était au bout du rouleau</reponse>
  30. </question>
  31. <question format="input" id="5" dataType="xsd:int">
  32.  <ennonce>Question5: combien vaut 15? en sucre (monnais de l'equateur)?</ennonce>
  33.  <reponse></reponse>
  34. </question>
  35. </questionnaire>


 
J'utilise asp.net pr lire et afficher le contenu du fichier. Le probleme c'est qu'il maffiche une colonne question_id(ki nest pas ds mon xml) et pas une colonne avec les reponses!
 
D'autre part il faut que je fasse un schema pour verifier la cohérence des données et la je suis plutot perdu; j'ai essayer ca mais sans succès apparement:  

Code :
  1. <?xml version="1.0" encoding="windows-1252"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <xsd:element name="questionnaire" type="QuestionnaireType"/>
  4. <xsd:complexType name="QuestionnaireType">
  5.   <xsd:sequence>
  6. <xsd:element name="question" type="QuestionType"/>
  7.   </xsd:sequence>
  8. </xsd:complexType>
  9. <xsd:complexType name="QuestionType">
  10.   <xsd:sequence>
  11.    <xsd:element name="ennonce" type="xsd:string" />
  12.    <xsd:element name="reponse" type="xsd:string"/>
  13.   </xsd:sequence>
  14.   <xsd:attribute name="dataType" type="xsd:string" />
  15.   <xsd:attribute name="id" type="xsd:int" />
  16.   <xsd:attribute name="format" type="xsd:string" />
  17. </xsd:complexType>
  18. </xsd:schema>

Reply

Sujets relatifs:

Leave a Replay

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