--- a/RelaxNG/publiquiz.rnc mar. mai 13 12:59:42 2014 +0200
+++ b/RelaxNG/publiquiz.rnc jeu. mai 15 07:20:59 2014 +0200
@@ -274,10 +274,11 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-blanks.block =
- (blanks.p | speech | blanks.list | blockquote | blanks.table | blanks.media)
-point.block =
- (point.p | speech | point.list | blockquote | point.table | media)
+blanks.block = (
+ blanks.p | blanks.list | blanks.blockquote | blanks.speech | blanks.table
+ | blanks.media)
+point.block = (
+ point.p | point.list | point.blockquote | point.speech | point.table | media)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -314,8 +315,47 @@
point.inlines
| point.block+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blockquote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+blanks.blockquote = element blockquote {
+ blockquote.attributes, blanks.blockquote.content }
+point.blockquote = element blockquote {
+ blockquote.attributes, point.blockquote.content }
+
+blanks.blockquote.content =
+ block.head?,
+ (blanks.p | speech | blanks.list)+,
+ attribution?
+point.blockquote.content =
+ block.head?,
+ (point.p | speech | point.list)+,
+ attribution?
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ speech
+blanks.speech = element speech { blanks.speech.content }
+point.speech = element speech { point.speech.content }
+
+blanks.speech.content =
+ blanks.speaker?,
+ stage?,
+ (blanks.p | blanks.blockquote)+
+point.speech.content =
+ point.speaker?,
+ stage?,
+ (point.p | point.blockquote)+
+
+# ~~~~~~ speaker
+blanks.speaker = element speaker { blanks.speaker.content }
+point.speaker = element speaker { point.speaker.content }
+
+blanks.speaker.content = blanks.inlines
+point.speaker.content = point.inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~ table
blanks.table = element table { table.attributes, blanks.table.content }
point.table = element table { table.attributes, point.table.content }
@@ -323,11 +363,11 @@
block.head?,
thead?,
(blanks.tbody+ | blanks.tr+),
- table.caption?
+ blanks.table.caption?
point.table.content =
block.head?,
(point.tbody+ | point.tr+),
- table.caption?
+ point.table.caption?
# ~~~~~~ tbody
blanks.tbody = element tbody { blanks.tbody.content }
@@ -355,21 +395,38 @@
blanks.td.content =
blanks.inlines
- | (p | media)+
+ | (blanks.p | blanks.media)+
point.td.content =
point.inlines
- | (p | media)+
+ | (point.p | media)+
+
+# ~~~~~~ table.caption
+blanks.table.caption = element caption { blanks.caption.content }
+point.table.caption = element caption { point.caption.content }
+
+blanks.caption.content =
+ blanks.inlines
+ | (blanks.p | speech | blanks.list | blockquote)+
+point.caption.content =
+ point.inlines
+ | (point.p | speech | point.list | blockquote)+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# ~~~~~~ blanks.media
-blanks.media = element media { media.attributes, blanksmedia.content }
+# ~~~~~~ media
+blanks.media = element media { media.attributes, blanks.media.content }
+point.media = element media { media.attributes, point.media.content }
-blanksmedia.content =
+blanks.media.content =
block.head?,
(blanks.image | audio | video)+,
- media.caption?,
+ blanks.media.caption?,
+ link?
+point.media.content =
+ block.head?,
+ (image | audio | video)+,
+ point.media.caption?,
link?
# ~~~~~~ blanks.image
@@ -382,7 +439,7 @@
pip.image.content =
pip.dropzone+
-# ~~~~~~dropzone
+# ~~~~~~ dropzone
blanks.dropzone = element dropzone {
blanks.dropzone.attributes, blanks.dropzone.content }
pip.dropzone = element dropzone {
@@ -402,6 +459,12 @@
pip.dropzone.content =
image?
+# ~~~~~~ media.caption
+blanks.media.caption = element caption {
+ caption.attributes, blanks.caption.content }
+point.media.caption = element caption {
+ caption.attributes, point.caption.content }
+
# ~~~~~~~~~~~~~~~~~~~~~~~~ choices.right, choices.wrong ~~~~~~~~~~~~~~~~~~~~~~~
choices.right = element right { choices.right.content }
@@ -424,7 +487,7 @@
blanks.wrong.content = text
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (match) item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ match.item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
match.item = element item { match.item.content }
@@ -432,7 +495,7 @@
inlines
| ((p | image | (audio, image?) | video), help?, answer?)
-# ~~~~~~~~~~~~~~~~~~~~~~~~ (sort) comparison, item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~ comparison, sort.item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~ comparison
comparison = element comparison { comparison.content }
@@ -450,7 +513,7 @@
inlines
| ((p | image | (audio, image?) | video), help?, answer?)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (category) item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ category.item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
category.item = element item { category.item.content }