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