RelaxNG/publiquiz.rnc
changeset 463 4a7e62074e60
parent 462 61f23b379b5d
child 465 4e3338f519f9
equal deleted inserted replaced
462:61f23b379b5d 463:4a7e62074e60
   126  | categories
   126  | categories
   127  | wordsearch
   127  | wordsearch
   128  | flashcard
   128  | flashcard
   129  | coloring
   129  | coloring
   130  | memory
   130  | memory
       
   131  | dictation
   131  | production
   132  | production
   132 
   133 
   133 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   134 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   134 
   135 
   135 choices-radio = element choices-radio {
   136 choices-radio = element choices-radio {
   428 
   429 
   429 memory-m.content =
   430 memory-m.content =
   430     memory-m.item,
   431     memory-m.item,
   431     memory-m.item,
   432     memory-m.item,
   432     audio?
   433     audio?
       
   434 
       
   435 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dictation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   436 
       
   437 dictation = element dictation { dictation.content }
       
   438 
       
   439 dictation.content =
       
   440     audio,
       
   441     dictation.block+
   433 
   442 
   434 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   443 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   435 
   444 
   436 production = element production { production.content }
   445 production = element production { production.content }
   437 
   446 
   496    correct.p | correct.list | correct.blockquote | correct.speech
   505    correct.p | correct.list | correct.blockquote | correct.speech
   497  | correct.table | media)
   506  | correct.table | media)
   498 pointing.block = (
   507 pointing.block = (
   499    pointing.p | pointing.list | pointing.blockquote | pointing.speech
   508    pointing.p | pointing.list | pointing.blockquote | pointing.speech
   500  | pointing.table | media)
   509  | pointing.table | media)
       
   510 dictation.block = dictation.p
   501 
   511 
   502 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   512 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   503 
   513 
   504 blanks.p = element p { blanks.p.content }
   514 blanks.p = element p { blanks.p.content }
   505 blanks-m.p = element p { blanks-m.p.content }
   515 blanks-m.p = element p { blanks-m.p.content }
   506 blanks-c.p = element p { blanks-c.p.content }
   516 blanks-c.p = element p { blanks-c.p.content }
   507 correct.p = element p { correct.p.content }
   517 correct.p = element p { correct.p.content }
   508 pointing.p = element p { pointing.p.content }
   518 pointing.p = element p { pointing.p.content }
       
   519 dictation.p = element p { dictation.p.content }
   509 
   520 
   510 blanks.p.content =
   521 blanks.p.content =
   511    blanks.inlines
   522     blanks.inlines
   512 blanks-m.p.content =
   523 blanks-m.p.content =
   513    blanks-m.inlines
   524     blanks-m.inlines
   514 blanks-c.p.content =
   525 blanks-c.p.content =
   515    blanks-c.inlines
   526     blanks-c.inlines
   516 correct.p.content =
   527 correct.p.content =
   517    correct.inlines
   528     correct.inlines
   518 pointing.p.content =
   529 pointing.p.content =
   519    pointing.inlines
   530     pointing.inlines
       
   531 dictation.p.content =
       
   532     dictation.inlines
   520 
   533 
   521 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   534 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   522 
   535 
   523 # ~~~~~~ list
   536 # ~~~~~~ list
   524 blanks.list = element list {
   537 blanks.list = element list {
  1107  & nowrap*
  1120  & nowrap*
  1108 
  1121 
  1109  & point*
  1122  & point*
  1110 }
  1123 }
  1111 
  1124 
       
  1125 dictation.inlines = mixed {
       
  1126    warning*
       
  1127  & dictation.hint*
       
  1128 }
       
  1129 
  1112 # ~~~~~~~~~~~~~~~~~~~~~~~~~~ blank, blank-m, blank-c ~~~~~~~~~~~~~~~~~~~~~~~~~~
  1130 # ~~~~~~~~~~~~~~~~~~~~~~~~~~ blank, blank-m, blank-c ~~~~~~~~~~~~~~~~~~~~~~~~~~
  1113 
  1131 
  1114 # ~~~~~~ blank
  1132 # ~~~~~~ blank
  1115 blank = element blank { blank.attributes, blank.content }
  1133 blank = element blank { blank.attributes, blank.content }
  1116 
  1134 
  1172 
  1190 
  1173 point.ref.attribute = attribute ref {
  1191 point.ref.attribute = attribute ref {
  1174    "right" | "cat1" | "cat2" | "cat3" | "cat4" | "cat5" }
  1192    "right" | "cat1" | "cat2" | "cat3" | "cat4" | "cat5" }
  1175 
  1193 
  1176 point.content = inlines
  1194 point.content = inlines
       
  1195 
       
  1196 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dictation.hint ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
  1197 
       
  1198 # ~~~~~~ dictation.hint
       
  1199 dictation.hint = element hint { dictation.hint.content }
       
  1200 
       
  1201 dictation.hint.content =
       
  1202     dictation.hint.w,
       
  1203     mistake+
       
  1204 
       
  1205 # ~~~~~~ dictation.hint.w
       
  1206 dictation.hint.w = element w { text }
       
  1207 
       
  1208 # ~~~~~~ mistake
       
  1209 mistake = element mistake { mistake.attributes, mistake.content }
       
  1210 
       
  1211 mistake.attributes =
       
  1212    mistake.is.attribute
       
  1213 mistake.is.attribute = attribute is { text }
       
  1214 
       
  1215 mistake.content = inlines