Binary file Data/Quiz/Audios/houston.ogg has changed
--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/Data/Quiz/dictation.xml mar. oct. 16 22:37:01 2018 +0200
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='utf-8'?>
+<publiquiz version="1.0">
+ <quiz id="dictation" xml:lang="fr">
+ <head>
+ <title>Dictée</title>
+ </head>
+
+ <instructions>
+ <p>Écoute attentivement le texte et écris-le.</p>
+ </instructions>
+
+ <dictation>
+ <audio id="houston"/>
+ <p>
+ <hint>
+ <w>Julie</w>
+ <mistake is="julie">Un nom propre prend toujours une
+ majuscule.</mistake>
+ <mistake is="July">La graphie française était attendue.</mistake>
+ </hint>
+ ne
+ <hint>
+ <w>prend</w>
+ <mistake is="prends"><emphasis>prends</emphasis> est la première ou
+ deuxième personne du singulier. Ici, il s'agit de la troisième
+ personne.</mistake>
+ <mistake is="prand">Ici le son <emphasis>en</emphasis> s'écrit avec
+ un <highlight>e</highlight>.</mistake>
+ <mistake is="">Je prends, tu prends, il/elle prend.</mistake>
+ </hint>
+ pas l'avion demain.
+ </p>
+ </dictation>
+ </quiz>
+</publiquiz>
--- a/RelaxNG/publiquiz.rnc mer. sept. 05 17:54:38 2018 +0200
+++ b/RelaxNG/publiquiz.rnc mar. oct. 16 22:37:01 2018 +0200
@@ -128,6 +128,7 @@
| flashcard
| coloring
| memory
+ | dictation
| production
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -431,6 +432,14 @@
memory-m.item,
audio?
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dictation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+dictation = element dictation { dictation.content }
+
+dictation.content =
+ audio,
+ dictation.block+
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
production = element production { production.content }
@@ -498,6 +507,7 @@
pointing.block = (
pointing.p | pointing.list | pointing.blockquote | pointing.speech
| pointing.table | media)
+dictation.block = dictation.p
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -506,17 +516,20 @@
blanks-c.p = element p { blanks-c.p.content }
correct.p = element p { correct.p.content }
pointing.p = element p { pointing.p.content }
+dictation.p = element p { dictation.p.content }
blanks.p.content =
- blanks.inlines
+ blanks.inlines
blanks-m.p.content =
- blanks-m.inlines
+ blanks-m.inlines
blanks-c.p.content =
- blanks-c.inlines
+ blanks-c.inlines
correct.p.content =
- correct.inlines
+ correct.inlines
pointing.p.content =
- pointing.inlines
+ pointing.inlines
+dictation.p.content =
+ dictation.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1109,6 +1122,11 @@
& point*
}
+dictation.inlines = mixed {
+ warning*
+ & dictation.hint*
+}
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~ blank, blank-m, blank-c ~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~ blank
@@ -1174,3 +1192,24 @@
"right" | "cat1" | "cat2" | "cat3" | "cat4" | "cat5" }
point.content = inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dictation.hint ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ dictation.hint
+dictation.hint = element hint { dictation.hint.content }
+
+dictation.hint.content =
+ dictation.hint.w,
+ mistake+
+
+# ~~~~~~ dictation.hint.w
+dictation.hint.w = element w { text }
+
+# ~~~~~~ mistake
+mistake = element mistake { mistake.attributes, mistake.content }
+
+mistake.attributes =
+ mistake.is.attribute
+mistake.is.attribute = attribute is { text }
+
+mistake.content = inlines