--- /dev/null jeu. janv. 01 00:00:00 1970 +0000
+++ b/RelaxNG/Examples/Quiz/blanks-char.xml jeu. juin 13 17:56:18 2013 +0200
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Id$ -->
+<publiquiz version="1.0">
+ <quiz id="blanks-char" xml:lang="fr">
+ <head>
+ <title>Exercice de positionnement de caractères</title>
+ </head>
+
+ <instructions>
+ <p>Retrouvez les phrases cachées et insérez la ponctuation et les
+ espaces manquants.</p>
+ </instructions>
+
+ <blanks-char>
+ <wrongs>
+ <wrong>? </wrong>
+ </wrongs>
+ <p>
+ <blank function="lowercase">L</blank>e<blank> </blank>petit<blank> </blank>chat<blank> </blank>est<blank> </blank>mort<blank>.</blank>
+ </p>
+ <p>
+ <blank function="lowercase">C</blank><blank>'</blank>est<blank> </blank>dommage<blank> ; </blank>mais<blank> </blank>quoi<blank> !</blank>
+ </p>
+ </blanks-char>
+ </quiz>
+</publiquiz>
--- a/RelaxNG/Examples/Sets/quiz.xml jeu. juin 13 13:23:26 2013 +0200
+++ b/RelaxNG/Examples/Sets/quiz.xml jeu. juin 13 17:56:18 2013 +0200
@@ -16,6 +16,7 @@
<file>blanks-select.xml</file>
<file>blanks-select_multiple.xml</file>
<file>blanks-select_dropzone.xml</file>
+ <file>blanks-char.xml</file>
<file>point.xml</file>
<file>point_radio.xml</file>
<file>matching.xml</file>
--- a/RelaxNG/publiquiz.rnc jeu. juin 13 13:23:26 2013 +0200
+++ b/RelaxNG/publiquiz.rnc jeu. juin 13 17:56:18 2013 +0200
@@ -98,6 +98,7 @@
| choices-check
| blanks-fill
| blanks-select
+ | blanks-char
| point
| matching
| sort
@@ -128,6 +129,7 @@
blanks-fill.attributes, blanks-fill.content }
blanks-select = element blanks-select {
blanks-select.attributes, blanks-select.content }
+blanks-char = element blanks-char { blanks-select.content }
blanks-fill.attributes =
strict.attribute?
@@ -519,7 +521,11 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blank ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~ blank
-blank = element blank { blank.content }
+blank = element blank { blank.attributes, blank.content }
+
+blank.attributes =
+ function.attribute?
+function.attribute = attribute function { 'lowercase' | 'uppercase' }
blank.content =
text