equal
deleted
inserted
replaced
29 |
29 |
30 # ============================================================================= |
30 # ============================================================================= |
31 # TOP LEVEL |
31 # TOP LEVEL |
32 # ============================================================================= |
32 # ============================================================================= |
33 |
33 |
34 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quiz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
34 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ top.quiz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
35 |
35 |
36 top.quiz = element quiz { top.quiz.attributes, top.quiz.content } |
36 top.quiz = element quiz { top.quiz.attributes, top.quiz.content } |
37 |
37 |
38 top.quiz.attributes = |
38 top.quiz.attributes = |
39 quiz.id.attribute |
39 quiz.id.attribute |
47 instructions, |
47 instructions, |
48 (engine | composite), |
48 (engine | composite), |
49 help?, |
49 help?, |
50 answer? |
50 answer? |
51 |
51 |
52 # ============================================================================= |
52 |
53 # COMPONENT LEVEL |
53 # ============================================================================= |
|
54 # COMPONENT LEVEL |
54 # ============================================================================= |
55 # ============================================================================= |
55 |
56 |
56 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quiz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
57 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quiz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
57 |
58 |
58 quiz = element quiz { quiz.attributes, quiz.content } |
59 quiz = element quiz { quiz.attributes, quiz.content } |
59 |
60 |
60 quiz.attributes = |
61 quiz.attributes = |
61 (quiz.id.attribute | quiz.xmlid.attribute)? |
62 (quiz.id.attribute | xmlid.attribute)? |
62 & quiz.type.attribute? |
63 & quiz.type.attribute? |
63 & lang.attribute? |
64 & lang.attribute? |
64 quiz.xmlid.attribute = attribute xml:id { xsd:ID } |
|
65 |
65 |
66 quiz.content = |
66 quiz.content = |
67 component.head?, |
67 component.head?, |
68 instructions, |
68 instructions, |
69 (engine | composite), |
69 (engine | composite), |
187 sort.item, |
187 sort.item, |
188 sort.item+ |
188 sort.item+ |
189 |
189 |
190 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ categories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
190 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ categories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
191 |
191 |
|
192 # ~~~~~~ category.head |
|
193 category.head = element head { category.head.content } |
|
194 |
|
195 category.head.content = |
|
196 title, |
|
197 shorttitle?, |
|
198 subtitle* |
|
199 |
192 # ~~~~~~ categories |
200 # ~~~~~~ categories |
193 categories = element categories { categories.attributes, categories.content } |
201 categories = element categories { categories.attributes, categories.content } |
194 |
202 |
195 categories.attributes = |
203 categories.attributes = |
196 multiple.attribute? |
204 multiple.attribute? |
197 |
205 |
198 categories.content = |
206 categories.content = |
199 category.item*, |
207 category.item*, |
200 category, |
208 category, |
201 category+ |
209 category+ |
202 |
210 |
204 category = element category { category.content } |
212 category = element category { category.content } |
205 |
213 |
206 category.content = |
214 category.content = |
207 category.head, |
215 category.head, |
208 category.item* |
216 category.item* |
209 |
|
210 # ~~~~~~ category.head |
|
211 category.head = element head { category.head.content } |
|
212 |
|
213 category.head.content = |
|
214 title, |
|
215 shorttitle?, |
|
216 subtitle* |
|
217 |
217 |
218 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
218 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
219 |
219 |
220 pip = element pip { pip.attributes, pip.content } |
220 pip = element pip { pip.attributes, pip.content } |
221 |
221 |
234 # ~~~~~~ composite |
234 # ~~~~~~ composite |
235 composite = element composite { composite.attributes, composite.content } |
235 composite = element composite { composite.attributes, composite.content } |
236 |
236 |
237 composite.attributes = |
237 composite.attributes = |
238 multipage.attribute? |
238 multipage.attribute? |
239 multipage.attribute = attribute multipage { xsd:boolean } |
239 multipage.attribute = attribute multipage { xsd:boolean } |
240 |
240 |
241 composite.content = |
241 composite.content = |
242 subquiz, |
242 subquiz, |
243 subquiz+ |
243 subquiz+ |
244 |
244 |
388 pip.dropzone = element dropzone { |
388 pip.dropzone = element dropzone { |
389 pip.dropzone.attributes, pip.dropzone.content } |
389 pip.dropzone.attributes, pip.dropzone.content } |
390 |
390 |
391 blanks.dropzone.attributes = |
391 blanks.dropzone.attributes = |
392 x.attribute |
392 x.attribute |
393 & y.attribute |
393 & y.attribute |
394 pip.dropzone.attributes = |
394 pip.dropzone.attributes = |
395 x.attribute |
395 x.attribute |
396 & y.attribute |
396 & y.attribute |
397 & w.attribute |
397 & w.attribute |
398 & h.attribute |
398 & h.attribute |