134 |
140 |
135 blanks-fill = element blanks-fill { |
141 blanks-fill = element blanks-fill { |
136 blanks-fill.attributes, blanks-fill.content } |
142 blanks-fill.attributes, blanks-fill.content } |
137 blanks-select = element blanks-select { |
143 blanks-select = element blanks-select { |
138 blanks-select.attributes, blanks-select.content } |
144 blanks-select.attributes, blanks-select.content } |
139 blanks-char = element blanks-char { |
145 blanks-media = element blanks-media { |
|
146 blanks-select.attributes, blanks-media.content } |
|
147 blanks-char = element blanks-char { |
140 blanks-char.attributes, blanks-select.content } |
148 blanks-char.attributes, blanks-select.content } |
141 |
149 |
142 blanks-fill.attributes = |
150 blanks-fill.attributes = |
143 success.attribute? |
151 success.attribute? |
144 & strict.attribute? |
152 & strict.attribute? |
145 & long.attribute? |
153 & long.attribute? |
146 blanks-select.attributes = |
154 blanks-select.attributes = |
147 success.attribute? |
155 success.attribute? |
148 & multiple.attribute? |
156 & multiple.attribute? |
149 & noshuffle.attribute? |
157 & noshuffle.attribute? |
|
158 & orientation.attribute? |
150 strict.attribute = attribute strict { xsd:boolean } |
159 strict.attribute = attribute strict { xsd:boolean } |
151 multiple.attribute = attribute multiple { xsd:boolean } |
160 multiple.attribute = attribute multiple { xsd:boolean } |
152 noshuffle.attribute = attribute no-shuffle { xsd:boolean } |
161 noshuffle.attribute = attribute no-shuffle { xsd:boolean } |
153 long.attribute = attribute long { xsd:positiveInteger } |
162 long.attribute = attribute long { xsd:positiveInteger } |
|
163 orientation.attribute = attribute orientation {"north"|"east"|"west"|"south"} |
154 |
164 |
155 blanks-fill.content = |
165 blanks-fill.content = |
156 (blanks.block+ | blanks.section+) |
166 (blanks.block+ | blanks.section+) |
157 blanks-select.content = |
167 blanks-select.content = |
158 blanks.intruders?, |
168 blanks.intruders?, |
159 (blanks.block+ | blanks.section+) |
169 (blanks.block+ | blanks.section+) |
|
170 blanks-media.content = |
|
171 blanks-m.intruders?, |
|
172 (blanks-m.block+ | blanks-m.section+) |
160 |
173 |
161 blanks-char.attributes = |
174 blanks-char.attributes = |
162 remove-space.attribute? |
175 remove-space.attribute? |
163 remove-space.attribute = attribute remove-space { xsd:boolean } |
176 remove-space.attribute = attribute remove-space { xsd:boolean } |
164 |
177 |
368 | (attribute type {"glossary"}, glossary.item+) ) |
395 | (attribute type {"glossary"}, glossary.item+) ) |
369 } |
396 } |
370 |
397 |
371 # ~~~~~~ item |
398 # ~~~~~~ item |
372 blanks.item = element item { blanks.item.content } |
399 blanks.item = element item { blanks.item.content } |
|
400 blanks-m.item = element item { blanks.item.content } |
373 pointing.item = element item { pointing.item.content } |
401 pointing.item = element item { pointing.item.content } |
374 |
402 |
375 blanks.item.content = |
403 blanks.item.content = |
376 blanks.inlines |
404 blanks.inlines |
377 | blanks.block+ |
405 | blanks.block+ |
|
406 blanks-m.item.content = |
|
407 blanks-m.inlines |
|
408 | blanks-m.block+ |
378 pointing.item.content = |
409 pointing.item.content = |
379 pointing.inlines |
410 pointing.inlines |
380 | pointing.block+ |
411 | pointing.block+ |
381 |
412 |
382 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blockquote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
413 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blockquote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
383 |
414 |
384 blanks.blockquote = element blockquote { |
415 blanks.blockquote = element blockquote { |
385 blockquote.attributes, blanks.blockquote.content } |
416 blockquote.attributes, blanks.blockquote.content } |
|
417 blanks-m.blockquote = element blockquote { |
|
418 blockquote.attributes, blanks-m.blockquote.content } |
386 pointing.blockquote = element blockquote { |
419 pointing.blockquote = element blockquote { |
387 blockquote.attributes, pointing.blockquote.content } |
420 blockquote.attributes, pointing.blockquote.content } |
388 |
421 |
389 blanks.blockquote.content = |
422 blanks.blockquote.content = |
390 block.head?, |
423 block.head?, |
391 (blanks.p | speech | blanks.list)+, |
424 (blanks.p | speech | blanks.list)+, |
392 attribution? |
425 attribution? |
|
426 blanks-m.blockquote.content = |
|
427 block.head?, |
|
428 (blanks-m.p | speech | blanks-m.list)+, |
|
429 attribution? |
393 pointing.blockquote.content = |
430 pointing.blockquote.content = |
394 block.head?, |
431 block.head?, |
395 (pointing.p | speech | pointing.list)+, |
432 (pointing.p | speech | pointing.list)+, |
396 attribution? |
433 attribution? |
397 |
434 |
398 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
435 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
399 |
436 |
400 # ~~~~~~ speech |
437 # ~~~~~~ speech |
401 blanks.speech = element speech { blanks.speech.content } |
438 blanks.speech = element speech { blanks.speech.content } |
|
439 blanks-m.speech = element speech { blanks-m.speech.content } |
402 pointing.speech = element speech { pointing.speech.content } |
440 pointing.speech = element speech { pointing.speech.content } |
403 |
441 |
404 blanks.speech.content = |
442 blanks.speech.content = |
405 blanks.speaker?, |
443 blanks.speaker?, |
406 stage?, |
444 stage?, |
407 (blanks.p | blanks.blockquote)+ |
445 (blanks.p | blanks.blockquote)+ |
|
446 blanks-m.speech.content = |
|
447 blanks-m.speaker?, |
|
448 stage?, |
|
449 (blanks-m.p | blanks-m.blockquote)+ |
408 pointing.speech.content = |
450 pointing.speech.content = |
409 pointing.speaker?, |
451 pointing.speaker?, |
410 stage?, |
452 stage?, |
411 (pointing.p | pointing.blockquote)+ |
453 (pointing.p | pointing.blockquote)+ |
412 |
454 |
413 # ~~~~~~ speaker |
455 # ~~~~~~ speaker |
414 blanks.speaker = element speaker { blanks.speaker.content } |
456 blanks.speaker = element speaker { blanks.speaker.content } |
|
457 blanks-m.speaker = element speaker { blanks-m.speaker.content } |
415 pointing.speaker = element speaker { pointing.speaker.content } |
458 pointing.speaker = element speaker { pointing.speaker.content } |
416 |
459 |
417 blanks.speaker.content = blanks.inlines |
460 blanks.speaker.content = blanks.inlines |
|
461 blanks-m.speaker.content = blanks-m.inlines |
418 pointing.speaker.content = pointing.inlines |
462 pointing.speaker.content = pointing.inlines |
419 |
463 |
420 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
464 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
421 |
465 |
422 # ~~~~~~ table |
466 # ~~~~~~ table |
423 blanks.table = element table { table.attributes, blanks.table.content } |
467 blanks.table = element table { table.attributes, blanks.table.content } |
|
468 blanks-m.table = element table { table.attributes, blanks-m.table.content } |
424 pointing.table = element table { table.attributes, pointing.table.content } |
469 pointing.table = element table { table.attributes, pointing.table.content } |
425 |
470 |
426 blanks.table.content = |
471 blanks.table.content = |
427 block.head?, |
472 block.head?, |
428 ((thead?, blanks.tbody+) | blanks.tr+), |
473 ((thead?, blanks.tbody+) | blanks.tr+), |
429 blanks.table.caption? |
474 blanks.table.caption? |
|
475 blanks-m.table.content = |
|
476 block.head?, |
|
477 ((thead?, blanks-m.tbody+) | blanks-m.tr+), |
|
478 blanks-m.table.caption? |
430 pointing.table.content = |
479 pointing.table.content = |
431 block.head?, |
480 block.head?, |
432 ((thead?, pointing.tbody+) | pointing.tr+), |
481 ((thead?, pointing.tbody+) | pointing.tr+), |
433 pointing.table.caption? |
482 pointing.table.caption? |
434 |
483 |
435 # ~~~~~~ tbody |
484 # ~~~~~~ tbody |
436 blanks.tbody = element tbody { blanks.tbody.content } |
485 blanks.tbody = element tbody { blanks.tbody.content } |
|
486 blanks-m.tbody = element tbody { blanks-m.tbody.content } |
437 pointing.tbody = element tbody { pointing.tbody.content } |
487 pointing.tbody = element tbody { pointing.tbody.content } |
438 |
488 |
439 blanks.tbody.content = |
489 blanks.tbody.content = |
440 blanks.tr+ |
490 blanks.tr+ |
|
491 blanks-m.tbody.content = |
|
492 blanks-m.tr+ |
441 pointing.tbody.content = |
493 pointing.tbody.content = |
442 pointing.tr+ |
494 pointing.tr+ |
443 |
495 |
444 # ~~~~~~ tr |
496 # ~~~~~~ tr |
445 blanks.tr = element tr { tr.attributes, blanks.tr.content } |
497 blanks.tr = element tr { tr.attributes, blanks.tr.content } |
|
498 blanks-m.tr = element tr { tr.attributes, blanks-m.tr.content } |
446 pointing.tr = element tr { tr.attributes, pointing.tr.content } |
499 pointing.tr = element tr { tr.attributes, pointing.tr.content } |
447 |
500 |
448 blanks.tr.content = |
501 blanks.tr.content = |
449 (blanks.td | blanks.th)+ |
502 (blanks.td | blanks.th)+ |
|
503 blanks-m.tr.content = |
|
504 (blanks-m.td | blanks-m.th)+ |
450 pointing.tr.content = |
505 pointing.tr.content = |
451 (pointing.td | pointing.th)+ |
506 (pointing.td | pointing.th)+ |
452 |
507 |
453 # ~~~~~~ td, th |
508 # ~~~~~~ td, th |
454 blanks.td = element td { td.attributes, blanks.td.content } |
509 blanks.td = element td { td.attributes, blanks.td.content } |
455 blanks.th = element th { td.attributes, blanks.td.content } |
510 blanks.th = element th { td.attributes, blanks.td.content } |
|
511 blanks-m.td = element td { td.attributes, blanks-m.td.content } |
|
512 blanks-m.th = element th { td.attributes, blanks-m.td.content } |
456 pointing.td = element td { td.attributes, pointing.td.content } |
513 pointing.td = element td { td.attributes, pointing.td.content } |
457 pointing.th = element th { td.attributes, pointing.td.content } |
514 pointing.th = element th { td.attributes, pointing.td.content } |
458 |
515 |
459 blanks.td.content = |
516 blanks.td.content = |
460 blanks.inlines |
517 blanks.inlines |
461 | (blanks.p | blanks.media)+ |
518 | (blanks.p | blanks.media)+ |
|
519 blanks-m.td.content = |
|
520 blanks-m.inlines |
|
521 | (blanks-m.p | blanks-m.media)+ |
462 pointing.td.content = |
522 pointing.td.content = |
463 pointing.inlines |
523 pointing.inlines |
464 | (pointing.p | media)+ |
524 | (pointing.p | media)+ |
465 |
525 |
466 # ~~~~~~ table.caption |
526 # ~~~~~~ table.caption |
467 blanks.table.caption = element caption { blanks.caption.content } |
527 blanks.table.caption = element caption { blanks.caption.content } |
|
528 blanks-m.table.caption = element caption { blanks-m.caption.content } |
468 pointing.table.caption = element caption { pointing.caption.content } |
529 pointing.table.caption = element caption { pointing.caption.content } |
469 |
530 |
470 blanks.caption.content = |
531 blanks.caption.content = |
471 blanks.inlines |
532 blanks.inlines |
472 | (blanks.p | speech | blanks.list | blockquote)+ |
533 | (blanks.p | speech | blanks.list | blockquote)+ |
|
534 blanks-m.caption.content = |
|
535 blanks-m.inlines |
|
536 | (blanks-m.p | speech | blanks-m.list | blockquote)+ |
473 pointing.caption.content = |
537 pointing.caption.content = |
474 pointing.inlines |
538 pointing.inlines |
475 | (pointing.p | speech | pointing.list | blockquote)+ |
539 | (pointing.p | speech | pointing.list | blockquote)+ |
476 |
540 |
477 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
541 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
478 |
542 |
479 # ~~~~~~ media |
543 # ~~~~~~ media |
480 blanks.media = element media { media.attributes, blanks.media.content } |
544 blanks.media = element media { media.attributes, blanks.media.content } |
|
545 blanks-m.media = element media { media.attributes, blanks-m.media.content } |
481 pointing.media = element media { media.attributes, pointing.media.content } |
546 pointing.media = element media { media.attributes, pointing.media.content } |
482 |
547 |
483 blanks.media.content = |
548 blanks.media.content = |
484 block.head?, |
549 block.head?, |
485 (blanks.image | audio | video)+, |
550 (blanks.image | audio | video)+, |
486 blanks.media.caption?, |
551 blanks.media.caption?, |
487 link? |
552 link? |
|
553 blanks-m.media.content = |
|
554 block.head?, |
|
555 (blanks-m.image | audio | video)+, |
|
556 blanks-m.media.caption?, |
|
557 link? |
488 pointing.media.content = |
558 pointing.media.content = |
489 block.head?, |
559 block.head?, |
490 (image | audio | video)+, |
560 (image | audio | video)+, |
491 pointing.media.caption?, |
561 pointing.media.caption?, |
492 link? |
562 link? |
493 |
563 |
494 # ~~~~~~ blanks.image |
564 # ~~~~~~ blanks.image |
495 blanks.image = element image { image.attributes, blanks.image.content } |
565 blanks.image = element image { image.attributes, blanks.image.content } |
496 mip.image = element image { image.attributes, mip.image.content } |
566 blanks-m.image = element image { image.attributes, blanks-m.image.content } |
497 |
567 |
498 blanks.image.content = |
568 blanks.image.content = |
499 copyright?, |
569 copyright?, |
500 blanks.dropzone* |
570 blanks.dropzone* |
501 mip.image.content = |
571 blanks-m.image.content = |
502 mip.dropzone+ |
572 copyright?, |
|
573 blanks-m.dropzone* |
503 |
574 |
504 # ~~~~~~ dropzone |
575 # ~~~~~~ dropzone |
505 blanks.dropzone = element dropzone { |
576 blanks.dropzone = element dropzone { |
506 blanks.dropzone.attributes, blanks.dropzone.content } |
577 blanks.dropzone.attributes, blanks.dropzone.content } |
507 mip.dropzone = element dropzone { |
578 blanks-m.dropzone = element dropzone { |
508 mip.dropzone.attributes, mip.dropzone.content } |
579 blanks-m.dropzone.attributes, blanks-m.dropzone.content } |
509 |
580 |
510 blanks.dropzone.attributes = |
581 blanks.dropzone.attributes = |
511 x.attribute |
582 x.attribute |
512 & y.attribute |
583 & y.attribute |
513 mip.dropzone.attributes = |
584 blanks-m.dropzone.attributes = |
514 x.attribute |
585 x.attribute |
515 & y.attribute |
586 & y.attribute |
|
587 & h.attribute |
516 & w.attribute |
588 & w.attribute |
517 & h.attribute |
|
518 |
589 |
519 blanks.dropzone.content = |
590 blanks.dropzone.content = |
520 blank |
591 blank |
521 mip.dropzone.content = |
592 blanks-m.dropzone.content = |
522 image?, |
593 blank-m |
523 audio? |
|
524 |
594 |
525 # ~~~~~~ media.caption |
595 # ~~~~~~ media.caption |
526 blanks.media.caption = element caption { |
596 blanks.media.caption = element caption { |
527 caption.attributes, blanks.caption.content } |
597 caption.attributes, blanks.caption.content } |
|
598 blanks-m.media.caption = element caption { |
|
599 caption.attributes, blanks-m.caption.content } |
528 pointing.media.caption = element caption { |
600 pointing.media.caption = element caption { |
529 caption.attributes, pointing.caption.content } |
601 caption.attributes, pointing.caption.content } |
530 |
602 |
531 # ~~~~~~~~~~~~~~~~~~~~~~~~ choices.right, choices.wrong ~~~~~~~~~~~~~~~~~~~~~~~ |
603 # ~~~~~~~~~~~~~~~~~~~~~~~~ choices.right, choices.wrong ~~~~~~~~~~~~~~~~~~~~~~~ |
532 |
604 |