RelaxNG/publiquiz.rnc
changeset 376 1434bae63b20
parent 360 77f406396cfc
child 379 f19169277267
--- a/RelaxNG/publiquiz.rnc	sam. avril 18 19:02:26 2015 +0200
+++ b/RelaxNG/publiquiz.rnc	mar. avril 21 18:13:54 2015 +0200
@@ -112,12 +112,16 @@
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 choices-radio = element choices-radio {
-   choices.attributes, choices-radio.content }
+   choices-radio.attributes, choices-radio.content }
 choices-check = element choices-check {
-   choices.attributes, choices-check.content }
+   choices-check.attributes, choices-check.content }
 
-choices.attributes =
+choices-radio.attributes =
    shuffle.attribute?
+choices-check.attributes =
+   success.attribute?
+ & shuffle.attribute?
+success.attribute = attribute success { xsd:decimal {maxInclusive="1"} }
 shuffle.attribute = attribute shuffle { xsd:boolean }
 
 choices-radio.content =
@@ -135,9 +139,11 @@
 blanks-char = element blanks-char { blanks-select.content }
 
 blanks-fill.attributes =
-   strict.attribute?
+   success.attribute?
+ & strict.attribute?
 blanks-select.attributes =
-   multiple.attribute?
+   success.attribute?
+ & multiple.attribute?
 strict.attribute = attribute strict { xsd:boolean }
 multiple.attribute = attribute multiple { xsd:boolean }
 
@@ -152,7 +158,8 @@
 pointing = element pointing { pointing.attributes, pointing.content }
 
 pointing.attributes =
-   pointing.type.attribute?
+   success.attribute?
+ & pointing.type.attribute?
 pointing.type.attribute = attribute type { "radio" | "check" }
 
 pointing.content =
@@ -161,7 +168,11 @@
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pointing-categories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 # ~~~~~~ pointing-categories
-pointing-categories = element pointing-categories { pointing-c.content }
+pointing-categories = element pointing-categories {
+   pointing-c.attributes, pointing-c.content }
+
+pointing-c.attributes =
+   success.attribute?
 
 pointing-c.content =
    pointing-c.categories,
@@ -196,7 +207,8 @@
 matching = element matching { matching.attributes, matching.content }
 
 matching.attributes =
-   multiple.attribute?
+   success.attribute?
+ & multiple.attribute?
 
 matching.content =
    matching.intruders?,
@@ -215,7 +227,8 @@
 sort = element sort { sort.attributes, sort.content }
 
 sort.attributes =
-   shuffle.attribute?
+   success.attribute?
+ & shuffle.attribute?
 
 sort.content =
    comparison?,
@@ -236,7 +249,8 @@
 categories = element categories { categories.attributes, categories.content }
 
 categories.attributes =
-   multiple.attribute?
+   success.attribute?
+ & multiple.attribute?
 
 categories.content =
    categories.intruders?,
@@ -255,7 +269,8 @@
 pip = element pip { pip.attributes, pip.content }
 
 pip.attributes =
-   multiple.attribute?
+   success.attribute?
+ & multiple.attribute?
 
 pip.content =
    pip.image
@@ -270,7 +285,8 @@
 composite = element composite { composite.attributes, composite.content }
 
 composite.attributes =
-   multipage.attribute?
+   success.attribute?
+ & multipage.attribute?
 multipage.attribute = attribute multipage { xsd:boolean }
 
 composite.content =