Ajout coloring et memory
authorPatrick PIERRE
mar., 27 févr. 2018 05:29:56 +0100
changeset 450 fd645a45932e
parent 449 d8a9a8a8acc6
child 451 1b5caa00aaa8
Ajout coloring et memory
RelaxNG/publiquiz.rnc
Xxe/Css/publidoc.css
Xxe/Css/publiquiz.css
Xxe/Css/top.png
Xxe/Templates/publidoc_document.xml
Xxe/Templates/publidoc_topic.xml
Xxe/Templates/publiquiz_blanks-fill.xml
Xxe/Templates/publiquiz_blanks-select.xml
Xxe/Templates/publiquiz_categories.xml
Xxe/Templates/publiquiz_categories_image.xml
Xxe/Templates/publiquiz_choices-check.xml
Xxe/Templates/publiquiz_choices-check_image.xml
Xxe/Templates/publiquiz_choices-radio.xml
Xxe/Templates/publiquiz_choices-radio_image.xml
Xxe/Templates/publiquiz_composite.xml
Xxe/Templates/publiquiz_matching.xml
Xxe/Templates/publiquiz_matching_image.xml
Xxe/Templates/publiquiz_point.xml
Xxe/Templates/publiquiz_production.xml
Xxe/Templates/publiquiz_sort.xml
Xxe/Templates/publiquiz_sort_image.xml
Xxe/publidoc.xxe
Xxe/publidoc.xxe_addon
Xxe/publiquiz.xxe
Xxe/publiquiz.xxe_addon
--- a/RelaxNG/publiquiz.rnc	mar. nov. 28 13:03:48 2017 +0100
+++ b/RelaxNG/publiquiz.rnc	mar. févr. 27 05:29:56 2018 +0100
@@ -1,4 +1,3 @@
-
 include "publidoc.rnc" {
    start = publiquiz
 
@@ -127,6 +126,8 @@
  | categories
  | wordsearch
  | flashcard
+ | coloring
+ | memory
  | production
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -191,7 +192,7 @@
 
 correct-line = element correct-line { correct.attributes, correct.content }
 
-correct.attributes = 
+correct.attributes =
    remove-space.attribute?
 remove-space.attribute = attribute remove-space { xsd:boolean }
 
@@ -342,7 +343,7 @@
 
 cell = element cell {cell.content}
 cell.content = xsd:token {pattern = "."}
-   
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ flashcard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 # ~~~~~~ flashcard
@@ -375,6 +376,60 @@
     | blanks-select
     | sort
 
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ coloring ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+coloring = element coloring { coloring.attributes, coloring.content }
+
+coloring.attributes =
+    nomark.attribute?
+nomark.attribute = attribute nomark { xsd:boolean }
+
+coloring.content =
+    palette
+  & canvas
+  & areas?
+
+# ~~~~~~ palette
+palette = element palette { palette.content }
+
+palette.content =
+    color+
+
+# ~~~~~~ canvas
+canvas = element canvas { canvas.attributes }
+
+canvas.attributes =
+    media.id.attribute
+
+# ~~~~~~ areas
+areas = element areas { areas.attributes }
+
+areas.attributes =
+    media.id.attribute
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ memory
+memory = element memory { memory.attributes, memory.content }
+
+memory.attributes =
+    display.attribute?
+    & delay.attribute?
+display.attribute = attribute display { xsd:positiveInteger }
+delay.attribute = attribute delay { xsd:positiveInteger }
+
+memory.content =
+   memory.match,
+   memory.match+
+
+# ~~~~~~ memory.match
+memory.match = element match { memory-m.content }
+
+memory-m.content =
+    memory-m.item,
+    memory-m.item,
+    audio?
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 production = element production { production.content }
@@ -497,7 +552,7 @@
 blanks-c.item = element item { blanks-c.item.content }
 correct.item = element item { correct.item.content }
 pointing.item = element item { pointing.item.content }
-                        
+
 
 blanks.item.content = blanks.inlines | blanks.block+
 blanks-m.item.content = blanks-m.inlines | blanks-m.block+
@@ -850,7 +905,7 @@
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ words.item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 words.item = element item {words.item.content, words.item.attributes }
-  
+
 words.item.content = inlines
 
 words.item.attributes =
@@ -864,6 +919,22 @@
 endx = attribute endx {xsd:token {pattern = "[a-zA-Z]+"}}
 endy = attribute endy {xsd:token {pattern = "\d+"}}
 
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ color ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+color = element color { color.attributes }
+
+color.attributes =
+    color.code
+    & color.coderef?
+color.code = attribute code {xsd:token { pattern = "#(\d|\w){6}"}}
+color.coderef = attribute coderef { list{xsd:token { pattern = "#(\d|\w){6}"}+}}
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memory-m.item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+memory-m.item = element item { memory-m.item.content }
+
+memory-m.item.content = image
+
 
 # =============================================================================
 #                                 INLINE LEVEL
@@ -1053,16 +1124,16 @@
  | image
  | audio
  | (s-m+, help?, answer?)
-       
+
 # ~~~~~~ blank-c
 blank-c = element blank { blank-c.attributes, blank-c.content }
-                  
+
 blank-c.attributes = form.attribute?
 form.attribute = attribute form { 'radio' | 'check' }
-                                
+
 blank-c.content = (blank-c.right | blank-c.wrong)+, help?, answer?
 blank-c.right = element right { inlines }
-blank-c.wrong = element wrong { inlines }                      
+blank-c.wrong = element wrong { inlines }
 
 # ~~~~~~ s
 s = element s { s.content }
@@ -1075,7 +1146,7 @@
  | math
  | image
  | audio
-      
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 char = element char { char.attributes, char.content }
--- a/Xxe/Css/publidoc.css	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,712 +0,0 @@
-@charset "UTF-8";
-
-@import url(xxe-config:common/css/cals_table.imp);
-
-/* $Id$ */
-
-*::comment { display: none; }
-
-publidoc {
-  display: block;
-  font-family: sans-serif;
-  padding: 0;
-}
-
-
-/* Head level ============================================================== */
-
-head {
-  display: block;
-  margin-bottom: .5em;
-  background-color: #fafafa;
-  padding: .2em .5em 0 .5em;
-  border: 1px solid #bbbbbb;
-  border-radius: 0.2em;
-}
-
-head > *:before {
-  display: marker;
-  color:  #7f7f7f;
-  content: insert-before-button() element-label() " :";
-}
-head > title:before { display: none; }
-head > shorttitle:before { display: none; }
-head > subtitle:before { display: none; }
-head > identifier[type="uri"]:before { content: insert-before-button() " URI :"; }
-head > identifier[type="ean"]:before { content: insert-before-button() " EAN :"; }
-head > copyright:before { content: insert-before-button() " Copyright :"; }
-head > collection:before { content: insert-before-button() " Collection :"; }
-head > contributors:before { content: insert-before-button() " Contributeurs :"; }
-head > date:before { content: insert-before-button() " Date :"; }
-head > place:before { content: insert-before-button() " Lieu :"; }
-head > source:before { content: insert-before-button() " Source :"; }
-head > keywordset:before { content: insert-before-button() " Mots clés :"; }
-head > subjectset:before { content: insert-before-button() " Thèmes :"; }
-head > abstract:before { content: insert-before-button() " Résumé :"; }
-head > cover:before { content: insert-before-button() " Couverture :"; }
-head > annotation:before { content: insert-before-button() " Annotation :"; }
-head > audio:before { content: insert-before-button() " Audio :"; }
-
-head > * {
-  display: block;
-  margin: 0 0 .8em 7.5em;
-}
-
-head > *:after {
-  color:  #7f7f7f;
-  content: " " insert-after-button();
-}
-
-/* title, shortitle & subtitle ~~~~~ */
-
-head > title, head > shorttitle {
-  font-weight: bold;
-  font-size: 120%;
-  margin: 0 0 .2em 0;
-}
-
-head > title {
-  color: #004080;
-}
-
-head > subtitle {
-  font-weight: bold;
-  color: #004080;
-  margin: 0 0 .2em 0;
-}
-
-/* contributors ~~~~~~~~~~~~~~~~~~~~ */
-
-contributor:before {
-  display: marker;
-  content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-contributor {
-  display: block;
-  margin: 0 0 .2em 24px;
-}
-
-firstname:after, secondname:after, lastname:after, label:after,
-address:after {
-  content: insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-contributor > link[uri]:after {
-  content: " ‣ " text-field(attribute, uri, color, black, font-size, 80%) "]"
-           insert-after-button(icon, icon(right-half-disc));
-}
-contributor > link[idref]:after {
-  content: " ‣ " label(attribute, idref, color, black)
-           set-attribute-button(attribute, idref) "]"
-           insert-after-button(icon, icon(right-half-disc));
-}
-
-contributor role {
-  color: #7f7f7f;
-  content: " rôle : " combo-box(element, role, font-size, 75%,
-             labels, "auteur\A illustrateur\A éditeur\A packager"
-             values, "author\A illustrator\A publisher\A packager", color, black)
-           insert-same-after-button(icon, icon(right-half-disc));
-}
-
-/* source ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-head source[type="book"] {
-  display: none;
-}
-
-/* keyword & subject ~~~~~~~~~~~~~~~ */
-
-head keyword:after {
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc))
-           " ";
-}
-
-head subject:before {
-  color: #7F7f7f;
-  content: "ID = " text-field(attribute, id, columns, 10, color, black, font-size, 75%);
-}
-head subject:after {
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-
-/* Division level ========================================================== */
-
-division:before {
-  display: block;
-  color: #7f7f7f;
-  content: collapser() " " insert-before-button() insert-after-button()
-           " Division"
-}
-
-division {
-  display: block;
-  border: 1px dotted #7f7f7f;
-  padding: 5px;
-  margin-bottom: .5em;
-  collapsible: yes;
-  not-collapsible-head: 1;
-}
-division:last-child {
-  margin-bottom: 0;
-}
-
-division > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-
-/* Component level ========================================================= */
-
-topic:before {
-  display: block;
-  color: #7f7f7f;
-  background-color: #ddddcc;
-  border: 1px solid #aeaea0;
-  font-weight: bold;
-  padding: .5em 5px .5em 5px;
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Topic";
-}
-topic[id]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, black);
-}
-topic[type]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Topic"
-           " – Type = " text-field(attribute, type, columns, 10, color, black);
-}
-topic[id][type]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, black)
-           " – Type = " text-field(attribute, type, columns, 10, color, black);
-}
-
-topic {
-  display: block;
-  border: 1px solid #aeaea0;
-  margin-bottom: .5em;
-  padding: 5px;
-  collapsible: yes;
-}
-topic:last-child {
-  margin-bottom: 0;
-}
-
-topic > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-
-/* Top level =============================================================== */
-
-publidoc > *:before {
-  display: block;
-  color: #bbbbbb;
-  background: #993333 url('top.png') repeat-x top left;
-  font-weight: bold;
-  padding: 1.2em 5px 1em 5px;
-}
-publidoc > document:before {
-  content: add-attribute-button() " Document"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white);
-}
-publidoc > document[id][xml|lang]:before {
-  content: "Document"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Langue principale  = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-publidoc > topic[id]:before {
-  content: add-attribute-button() " Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white);
-}
-publidoc > topic[id][type]:before {
-  content: add-attribute-button() " Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Type = " text-field(attribute, type, columns, 10, color, white);
-}
-publidoc > topic[id][xml|lang]:before {
-  content: add-attribute-button() " Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-publidoc > topic[id][type][xml|lang]:before {
-  content: "Topic"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Type = " text-field(attribute, type, columns, 10, color, white)
-           " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-
-publidoc > * {
-  display: block;
-  margin: 5px;
-  padding: 0;
-  border: 0;
-}
-
-publidoc > * > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-publidoc > * > head > title {
-  font-size: 140%;
-  margin: .1em 0 .1em 0;
-}
-
-
-/* Section level =========================================================== */
-
-section:before {
-  display: block;
-  color: #7f7f7f;
-  text-align: left;
-  font-style: normal;
-  font-size: 75%;
-  padding-bottom: 3px;
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box));
-}
-section[type]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Type = " text-field(attribute, type, columns, 5, color, black);
-}
-section[for]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Pour = " text-field(attribute, for, columns, 5, color, black);
-}
-section[xml|lang]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Langue = " text-field(attribute, "xml:lang", columns, 2, color, black);
-}
-section[type][for]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Type = " text-field(attribute, type, columns, 5, color, black)
-           " – Pour = " text-field(attribute, for, columns, 5, color, black);
-}
-section[type][xml|lang]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Type = " text-field(attribute, type, columns, 5, color, black)
-           " – Langue = " text-field(attribute, "xml:lang", columns, 2, color, black);
-}
-section[for][xml|lang]:before {
-  content: insert-before-button() add-attribute-button(icon, icon(plus-box))
-           " Pour = " text-field(attribute, for, columns, 5, color, black)
-           " – Langue = " text-field(attribute, "xml:lang", columns, 2, color, black);
-}
-section[type][for][xml|lang]:before {
-  content: insert-before-button()
-           " Type = " text-field(attribute, type, columns, 5, color, black)
-           " Pour = " text-field(attribute, for, columns, 5, color, black)
-           " – Langue = " text-field(attribute, "xml:lang", columns, 2, color, black);
-}
-
-section section:before {
-  margin-left: 1em;
-}
-
-header, front, section, footer {
-  display: block;
-}
-
-section[type="box"] {
-  margin-bottom: .5em;
-  padding: 5px;
-  background-color: #e8f0f7;
-  border-radius: 0.2em;
-}
-section[type="ex"] { font-style: italic; }
-section[type="sign"] { text-align: right; }
-
-header, footer {
-  background-color: #fafafa;
-}
-
-front {
-  margin: 1em 20px 1em 20px;
-  background-color: #fafafa;
-}
-front p {
-  font-family: sans-serif;
-}
-
-section section {
-  margin-left: 1em;
-}
-
-section:after {
-  color: #7f7f7f;
-  content: insert-after-button();
-}
-section section:after {
-  margin-left: 1em;
-}
-
-
-/* Block level ============================================================= */
-
-p:before, speech:before, list:before,
-blockquote:before, table:before, media:before {
-  display: marker;
-  color: #7f7f7f;
-  content: insert-before-button(icon, icon(left-half-disc))
-           insert-after-button(icon, icon(right-half-disc));
-}
-
-p, speech, list, blockquote, table, media {
-  display: block;
-  margin-left: 24px;
-  font-size: 115%;
-  font-family: serif;
-}
-
-/* speech ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-speaker {
-  font-weight: bold;
-}
-
-stage:before, stage:after {
-  color: #7f7f7f;
-  content: "(";
-}
-stage:before {
-  content: " (";
-}
-stage {
-  font-style: italic;  
-}
-stage:after {
-  content: ")";
-}
-
-/* list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-list:before {
-  content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc))
-           command-button(command, "putAttribute", parameter, "type ordered", icon, icon(convert));
-}
-list[type="ordered"]:before {
-  content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc))
-           command-button(command, "removeAttribute", parameter, "type", icon, icon(convert));
-}
-list[type="glossary"]:before {
-  content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-list {
-  margin: .3em 0 .3em 36px;
-}
-list[type="glossary"] {
-  margin: .3em 0 .3em 24px;
-}
-
-list > head {
-  font-size: 75%;
-}
-
-item {
-  display: list-item;
-}
-list[type="ordered"] > item {
-  list-style-type: decimal;
-  list-style-position: inside;
-}
-
-item:after {
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-list:not([type="glossary"]) > item > p:before {
-  color: #7f7f7f;
-  content: insert-same-before-button(icon, icon(left-half-disc))
-           insert-same-after-button(icon, icon(right-half-disc));
-}
-list:not([type="glossary"]) > item > p {
-  display: inline;
-}
-list:not([type="glossary"]) > item > p:after {
-  color: #7f7f7f;  
-  content: "\A";
-}
-
-list[type="glossary"] > item > label {
-  font-weight: bold;
-}
-
-/* blockquote ~~~~~~~~~~~~~~~~~~~~~~ */
-
-blockquote { color: #004080; }
-
-attribution { font-style: italic; }
-
-/* table ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-@extension "com.xmlmind.xmleditext.xhtml.table.TableSupport black rgb(238,238,224)";
-
-table {
-  display: table;
-  border-style: solid;
-  border-width: 1px;
-  margin-top: 0;
-  margin-bottom: 1em;
-}
-
-table > head {
-  display: table-caption;
-  margin-left: 24px;
-  margin-bottom: 0;
-}
-
-table title {
-  font-size: 93%;
-  font-family: sans-serif;
-  color: black;
-}
-
-thead, tbody { 
-  display: table-row-group;
-}
-
-tr { 
-  display: table-row;
-}
-
-td, th {
-  display: table-cell;
-  border-style: solid;
-  border-width: 1px;
-  padding: .2em;
-}
-th {
-  font-weight: bold;
-}
-
-table > caption {
-  display: block;
-  font-family: sans-serif;
-  font-size: 93%;
-  color: #004080;
-}
-
-/* media ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-media {
-  margin-top: .5em;
-  margin-bottom: 1em;
-  padding: 10px;
-  border: 1px dashed #7f7f7f;
-}
-
-media image, media audio, media video {
-  display: block;
-  font-family: sans-serif;
-}
-
-media caption {
-  display: block;
-  font-family: sans-serif;
-  font-size: 93%;
-  color: #004080;
-}
-media caption:after {
-  content: insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-/* image ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-cover image {
-  content: concatenate("image('Images/", attr(id), ".png', -480, -360, smooth)");
-}
-
-p image, entry image {
-  content: concatenate("image('Images/", attr(id), ".png', -64, -48, smooth)");
-  vertical-align: middle;
-}
-
-p image[type="thumbnail"], entry image[type="thumbnail"] {
-  content: concatenate("image('Images/", attr(id), ".png', -128, -96, smooth)");
-  vertical-align: middle;
-}
-
-media image:before {
-  display: block;
-  text-align: left;
-  content: concatenate("image('Images/", attr(id), ".png', -480, -360, smooth)")
-           insert-button(color, #7f7f7f, icon, icon(pop-down))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-media image[type="thumbnail"]:before {
-  content: concatenate("image('Images/", attr(id), ".png', -128, -96, smooth)")
-           insert-button(color, #7f7f7f, icon, icon(pop-down))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-media image {
-  margin-bottom: .3em;
-}
-
-image > copyright {
-  display: block;
-  font-size: 75%;
-  font-style: italic;
-}
-
-/* hotspot ~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-hotspot {
-  display: block;
-  padding: .4em;
-  margin: 0 1em .1em 0; 
-  background-color: #ffefd8;
-  border-radius: 1.5em;
-}
-
-hotspot image:before {
-  content: "";
-}
-hotspot > image {
-  content: concatenate("image('Images/", attr(id), ".png', -128, -96, smooth)");
-}
-
-hotspot p:before {
-  content: "";
-}
-hotspot > p {
-  font-family: sans-serif;
-  font-size: 85%;
-  margin: 0 .5em 0 .5em;
-}
-
-hotspot:after {
-  display: marker;
-  padding-bottom: .7em;
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-/* audio ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-audio {
-  content: text-field(attribute, id, color, black, font-size, 75%)
-           " type : " label(attribute, type, color, black) " "
-           set-attribute-button(attribute, type, icon, icon(pop-sw), color, black);
-}
-media audio {
-  content: "Audio : " text-field(attribute, id, color, black)
-           " type : " label(attribute, type, color, black) " "
-           set-attribute-button(attribute, type, icon, icon(pop-sw), color, black);
-}
-
-
-/* video ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-video {
-  content: text-field(attribute, id, color, black, font-size, 75%);
-}
-media video {
-  content: "Video : " text-field(attribute, id, color, black);
-}
-
-
-/* Inline level ============================================================ */
-
-/* sup, sub, var ~~~~~~~~~~~~~~~~~~~ */
-
-sup { font-family: sans-serif; vertical-align: super; font-size: 75%; white-space: nowrap; }
-sub { font-family: sans-serif; vertical-align: sub;   font-size: 75%; white-space: nowrap; }
-var { font-family: sans-serif; font-style: italic; }
-
-/* date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-date[value]:after {
-  color: #7f7f7f;
-  content: " (" date-picker(attribute, value, columns, 7, color, black, font-size, 75%) ")";
-}
-head > date[value]:after {
-  color: #7f7f7f;
-  content: " (" date-picker(attribute, value, columns, 7, color, black, font-size, 75%)
-           ") " insert-after-button();
-}
-
-/* name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-name { font-family: sans-serif; color: #004080; }
-
-/* note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-note:before { font-size: 80%; color: #7f7f7f; content: "(Note : "; }
-note { font-family: sans-serif; color: #aeaea0; font-size: 80%; }
-note:after { font-size: 80%; color: #7f7f7f; content: ")"; }
-note p { display:inline; }
-
-/* foreign ~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-foreign { font-family: sans-serif; font-style: italic; }
-
-/* highlight ~~~~~~~~~~~~~~~~~~~~~~~ */
-
-highlight { font-weight: bold; }
-
-/* emphasis ~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-emphasis { font-style: italic; }
-
-/* mentioned ~~~~~~~~~~~~~~~~~~~~~~~ */
-
-mentioned { font-style: oblique; }
-
-/* term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-term { font-family: sans-serif; }
-
-/* link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-link:before {
-  color: #7f7f7f;
-  font-family: sans-serif;
-  content: "["
-}
-
-media link {
-  display: block;
-}
-
-link:after {
-  color: #7f7f7f;
-  font-family: sans-serif;
-}
-link[uri]:after {
-  content: " ‣ " text-field(attribute, uri, color, black, font-size, 80%) "]";
-}
-link[idref]:after {
-  content: " ‣ " label(attribute, idref, color, black)
-           set-attribute-button(attribute, idref) "]";
-}
-
-/* smil ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-smil {
-  background-color: #ffffc0;
-}
-
-/* warning ~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-warning {
-  color: red;
-  font-weight: bold;
-}
--- a/Xxe/Css/publiquiz.css	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,582 +0,0 @@
-@charset "UTF-8";
-
-/* $Id$ */
-
-@import url(publidoc.css);
-
-
-publiquiz {
-  display: block;
-  font-family: sans-serif;
-  padding: 0;
-}
-
-
-/* Component level ========================================================= */
-
-quiz:before  {
-  display: block;
-  color: #7f7f7f;
-  background-color: #ddddcc;
-  border: 1px solid #aeaea0;
-  font-weight: bold;
-  padding: .5em 5px .5em 5px;
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Quiz";
-}
-
-quiz[id]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, black);
-}
-quiz[type]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " " add-attribute-button() " Quiz"
-           " – Type = " text-field(attribute, type, columns, 10, color, black);
-}
-quiz[id][type]:before {
-  content: collapser() " " insert-before-button() insert-after-button()
-           " Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, black)
-           " – Type = " text-field(attribute, type, columns, 10, color, black);
-}
-
-quiz {
-  display: block;
-  border: 1px solid #aeaea0;
-  margin-bottom: .5em;
-  padding: 5px;
-  collapsible: yes;
-}
-quiz:last-child {
-  margin-bottom: 0;
-}
-
-quiz > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-
-/* Top level =============================================================== */
-
-publiquiz > *:before {
-  display: block;
-  color: #bbbbbb;
-  background: #993333 url('top.png') repeat-x top left;
-  font-weight: bold;
-  padding: 1.2em 5px 1em 5px;
-}
-publiquiz > document:before {
-  content: add-attribute-button() " Document"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white);
-}
-publiquiz > document[id][xml|lang]:before {
-  content: "Document"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Langue principale  = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-publiquiz > quiz[id]:before {
-  content: add-attribute-button() " Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white);
-}
-publiquiz > quiz[id][type]:before {
-  content: add-attribute-button() " Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Type = " text-field(attribute, type, columns, 10, color, white);
-}
-publiquiz > quiz[id][xml|lang]:before {
-  content: add-attribute-button() " Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-publiquiz > quiz[id][type][xml|lang]:before {
-  content: "Quiz"
-           " – ID = " text-field(attribute, "id", columns, 15, color, white)
-           " – Type = " text-field(attribute, type, columns, 10, color, white)
-           " – Langue principale = " combo-box(attribute, "xml:lang", font-size, 75%,
-             values, "en\A fr\A es", color, white);
-}
-
-publiquiz > * {
-  display: block;
-  margin: 5px;
-  padding: 0;
-  border: 0;
-}
-
-publiquiz > * > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-publiquiz > * > head > title {
-  font-size: 140%;
-}
-
-
-/* Section level =========================================================== */
-
-quiz > *:before, quiz > composite > *:before {
-  display: block;
-  color: #7f7f7f;
-  text-align: left;
-  font-style: normal;
-  font-size: 75%;
-  padding-bottom: 3px;
-}
-
-quiz > *, quiz > composite > * {
-  display: block;
-}
-
-quiz > *:after, quiz > composite > *:after {
-  color: #7f7f7f;
-  content: insert-after-button();
-}
-
-quiz > head:after {
-  display: none;
-}
-
-/* instructions ~~~~~~~~~~~~~~~~~~~~~ */
-
-instructions:before {
-  background-color: #e8f0f7;
-  content: insert-before-button() " Consigne";
-}
-
-instructions {
-  display: block;
-  background-color: #e8f0f7;
-}
-
-instructions section:before, instructions section, instructions section:after {
-  margin-left: 1em;
-}
-
-/* choices ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-choices-radio:before {
-  color: #7f7f7f;
-  content: insert-before-button()
-           command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
-           " QCM – radio";
-}
-choices-radio[shuffle]:before {
-  content: insert-before-button()
-           " QCM – radio"
-           " – shuffle = " label(attribute, shuffle, color, black)
-           set-attribute-button(attribute, shuffle, unset-attribute, yes);
-}
-
-choices-check:before {
-  color: #7f7f7f;
-  content: insert-before-button()
-           command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
-           " QCM – check";
-}
-choices-check[shuffle]:before {
-  content: insert-before-button()
-           " QCM – check"
-           " – shuffle = " label(attribute, shuffle, color, black)
-           set-attribute-button(attribute, shuffle, unset-attribute, yes);
-}
-
-/* blanks ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-blanks-fill:before {
-  content: insert-before-button()
-           command-button(command, "putAttribute", parameter, "strict true", icon, icon(plus-box))
-           " Exercice à trous – saisie libre";
-}
-blanks-fill[strict]:before {
-  content: insert-before-button()
-           " Exercice à trous – saisie libre"
-           " – strict = " label(attribute, strict, color, black)
-           set-attribute-button(attribute, strict, unset-attribute, yes);
-}
-
-blanks-select:before {
-  content: insert-before-button()
-           command-button(command, "putAttribute", parameter, "multiple true", icon, icon(plus-box))
-           " Exercice à trous – liste fermée";
-}
-blanks-select[multiple]:before {
-  content: insert-before-button()
-           " Exercice à trous – liste fermée"
-           " – multiple = " label(attribute, multiple, color, black)
-           set-attribute-button(attribute, multiple, unset-attribute, yes);
-}
-
-/* point ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-point:before {
-  content: insert-before-button() " "
-           command-button(command, "putAttribute", parameter, "type radio", icon, icon(plus-box))
-           " Pointage";
-}
-point[type]:before {
-  content: insert-before-button()
-           " Pointage – type = " label(attribute, type, color, black)
-           set-attribute-button(attribute, type, unset-attribute, yes);
-}
-
-/* matching ~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-matching:before {
-  content: insert-before-button() " "
-           command-button(command, "putAttribute", parameter, "multiple true", icon, icon(plus-box))
-           " Appariement";
-}
-matching[multiple]:before {
-  content: insert-before-button()
-           " Appariement – multiple = " label(attribute, multiple, color, black)
-           set-attribute-button(attribute, multiple, unset-attribute, yes)
-}
-
-/* sort ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-sort:before {
-  content: insert-before-button() 
-           command-button(command, "putAttribute", parameter, "shuffle true", icon, icon(plus-box))
-           " Tri";
-}
-sort[shuffle]:before {
-  content: insert-before-button()
-           " Tri – shuffle = " label(attribute, shuffle, color, black)
-           set-attribute-button(attribute, shuffle, unset-attribute, yes);
-}
-
-/* categories ~~~~~~~~~~~~~~~~~~~~~~ */
-
-categories:before {
-  content: insert-before-button() " "
-           command-button(command, "putAttribute", parameter, "multiple true", icon, icon(plus-box))
-           " Catégories";
-}
-categories[multiple]:before {
-  content: insert-before-button()
-           " Catégories – multiple = " label(attribute, multiple, color, black)
-           set-attribute-button(attribute, multiple, unset-attribute, yes)
-}
-
-/* production ~~~~~~~~~~~~~~~~~~~~~~ */
-
-production:before {
-  content: insert-before-button() " Production";
-}
-
-/* composite ~~~~~~~~~~~~~~~~~~~~~~~ */
-
-composite:before {
-  content: insert-before-button()
-           command-button(command, "putAttribute", parameter, "multipage true", icon, icon(plus-box))
-           " Composite";
-}
-composite[multipage]:before {
-  content: insert-before-button()
-           " Composite – multipage = " label(attribute, multipage, color, black)
-           set-attribute-button(attribute, multipage, unset-attribute, yes)
-}
-
-subquiz {
-  display: block;
-  border-style: none;
-  margin: 0 0 .6em 1em;
-  padding: 0;
-}
-
-subquiz > *, subquiz > *:before  {
-  display: block;
-}
-
-subquiz > head {
-  background-color: #ffffee;
-  padding: .3em .5em .3em .5em;
-  border-radius: 0.5em;
-}
-
-subquiz > instructions:before {
-  content: "Consigne";
-}
-
-/* help ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-help:before {
-  margin-top: .5em;
-  background-color: #ffffdd;
-  content: insert-before-button() insert-button() " Aide ";
-}
-
-help, help > *:before, help > * {
-  background-color: #ffffdd;
-}
-
-/* answer ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-answer:before {
-  margin-top: .5em;
-  background-color: #eaffe9;
-  content: insert-before-button() insert-button() " Réponse";
-}
-
-answer, answer > *:before, answer > * {
-  background-color: #eaffe9;
-}
-
-answer:after {
-  display: none;   
-}
-
-
-/* Block level ============================================================= */
-
-/* image ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-right image, wrong image, item image {
-  content: concatenate("image('Images/", attr(id), ".png', -128, -96, smooth)");
-  vertical-align: middle;
-}
-
-/* dropzone ~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-dropzone {
-  display: block;
-  padding: .4em;
-  margin: 0 1em .1em 0; 
-  background-color: #ffefd8;
-  border-radius: 1.5em;
-}
-
-dropzone image:before {
-  content: "";
-}
-dropzone > image {
-  content: concatenate("image('Images/", attr(id), ".png', -128, -96, smooth)");
-}
-
-dropzone > blank {
-  background-color: transparent;
-}
-
-dropzone:after {
-  display: marker;
-  padding-bottom: .7em;
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-/* choices.right, choices.wrong ~~~~ */
-
-choices-radio right:before, choices-radio wrong:before,
-choices-check right:before, choices-check wrong:before {
-  display: marker;
-  content: insert-before-button(color, #7f7f7f, icon, icon(left-half-disc))
-           insert-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-choices-radio right, choices-radio wrong,
-choices-check right, choices-check wrong {
-  display: block;
-  margin-left: 24px;
-  font-size: 115%;
-  font-family: serif;
-}
-
-choices-radio > right:before {
-  color: #7f7f7f;
-  content: insert-before-button(icon, icon(left-half-disc))
-           insert-after-button(icon, icon(right-half-disc))
-           "  " icon(radio-on) " ";
-    
-}
-choices-radio > wrong:before {
-  color: #7f7f7f;
-  content: insert-before-button( icon, icon(left-half-disc))
-           insert-after-button(icon, icon(right-half-disc))
-           "  " icon(radio-off) " ";
-    
-}
-choices-check > right:before {
-  color: #7f7f7f;
-  content: insert-before-button(icon, icon(left-half-disc))
-           insert-after-button(icon, icon(right-half-disc))
-           command-button(command, "convert", parameter, "wrong", icon, icon(convert))
-           "  " icon(check-on) " ";
-}
-choices-check > wrong:before {
-  color: #7f7f7f;
-  content: insert-before-button(icon, icon(left-half-disc))
-           insert-after-button(icon, icon(right-half-disc))
-           command-button(command, "convert", parameter, "right", icon, icon(convert))
-           "  " icon(check-off) " ";
-}
-
-choices-radio > right, choices-radio > wrong {
-  margin-left: 52px;
-}
-choices-check > right, choices-check > wrong {
-  margin-left: 60px;
-}
-
-/* blanks.wrongs ~~~~~~~~~~~~~~~~~~~ */
-
-blanks-select > wrongs:before {
-  color: #7f7f7f;
-  content: "Intrus : ";
-}
-
-blanks-select > wrongs {
-  display: block;
-  margin: .5em 0 .5em 0;
-}
-
-wrongs > wrong {
-  display: inline;
-  background-color: #c7e0f8;
-}
-
-wrongs > wrong:after {
-  color: #7f7f7f;
-  content: "  –  ";
-  background-color: transparent;
-}
-wrongs > wrong:after:last-child {
-  content: insert-same-after-button(color, #7f7f7f, icon, icon(right-half-disc));
-}
-
-/* match ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-match:before {
-  display: marker;
-  color: #7f7f7f;
-  content: insert-same-before-button(icon, icon(left-half-disc))
-           insert-same-after-button(icon, icon(right-half-disc));
-}
-
-match {
-  display: block;
-  margin-left: 24px;
-  margin-bottom: .8em;
-}
-
-match > item:before {
-  display: none;
-}
-
-match item {
-  display: inline;
-}
-
-match > item:first-child:after {
-  color: #7f7f7f;
-  content: " —>  ";
-}
-match > item:last-child:after {
-  display: none;
-}
-
-/* sort > comparison ~~~~~~~~~~~~~~~ */
-
-comparison:before {
-  color: #7f7f7f;
-  content: "Logique de comparaison : "
-}
-
-comparison {
-  display: block;
-  margin: .2em 0 .5em 0;
-}
-
-/* sort > item ~~~~~~~~~~~~~~~~~~~~~ */
-
-sort > item:before {
-  color: #7f7f7f;
-  content: insert-before-button(icon, icon(left-half-disc))
-           text-field(attribute, "shuffle", columns, 1, font-size, 75%, color, black)
-           " ";
-}
-
-sort > item {
-  display: inline;
-}
-
-sort > item:after {
-  color: #7f7f7f;
-  content: insert-same-after-button(icon, icon(right-half-disc))
-           " " xpath("../comparison") " ";
-}
-sort > item:last-child:after {
-  content: insert-same-after-button(icon, icon(right-half-disc)) "\A";
-}
-
-/* category ~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-category:before {
-  color: #7f7f7f;
-  content: "  " insert-before-button();
-}
-
-category {
-  display: block;
-  margin-bottom: .3em;
-}
-
-category > head {
-  display: block;
-}
-
-category > head > title:after {
-  content: "";
-}
-
-category > item {
-  margin-left: 1em;
-  margin-bottom: 0.8em;
-}
-
-category:after {
-  color: #7f7f7f;
-  content: "  " insert-same-after-button();
-}
-
-
-/* Inline level ============================================================ */
-
-/* blank ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-blank {
-  background-color: #c0ffc0;
-}
-
-s:after {
-  color:  #7f7f7f;
-  background-color: #c0ffc0;
-  content: insert-same-after-button(icon, icon(right-half-disc));
-}
-
-/* point.right & point.wrong ~~~~~~~ */
-
-point right:before, point wrong:before {
-  background: transparent;
-  color: #7f7f7f;
-}
-point right:before {
-  content: command-button(command, "convert", parameter, "wrong", icon, icon(convert));
-}
-point wrong:before {
-  content: command-button(command, "convert", parameter, "right", icon, icon(convert));
-}
-
-point right {
-  background-color: #c0ffc0;
-}
-
-point wrong {
-  background-color: #c7e0f8;
-}
\ No newline at end of file
Binary file Xxe/Css/top.png has changed
--- a/Xxe/Templates/publidoc_document.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publidoc version="1.0">
-  <document id="???" >
-    <head>
-      <title></title>
-    </head>
-    <topic>
-      <head>
-        <title></title>
-      </head>
-      <section>
-        <p></p>
-      </section>
-    </topic>
-  </document>
-</publidoc>
\ No newline at end of file
--- a/Xxe/Templates/publidoc_topic.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publidoc version="1.0">
-  <topic id="???">
-    <head>
-      <title></title>
-    </head>
-    <section>
-      <p></p>
-    </section>
-  </topic>
-</publidoc>
--- a/Xxe/Templates/publiquiz_blanks-fill.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-    
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <blanks-fill>
-      <p></p>
-    </blanks-fill>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_blanks-select.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <blanks-select>
-      <p></p>
-    </blanks-select>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_categories.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <categories>
-      <category>
-        <head>
-          <title>???</title>
-        </head>
-        <item>???</item>
-      </category>
-      <category>
-        <head>
-          <title>???</title>
-        </head>
-        <item>???</item>
-      </category>
-    </categories>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_categories_image.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <categories>
-      <category>
-        <head>
-          <title></title>
-        </head>
-        <item><image id="???"/></item>
-      </category>
-      <category>
-        <head>
-          <title></title>
-        </head>
-        <item><image id="???"/></item>
-      </category>
-    </categories>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_choices-check.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <choices-check>
-      <right></right>
-      <wrong></wrong>
-    </choices-check>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_choices-check_image.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <choices-check>
-      <right><image id="???"/></right>
-      <wrong><image id="???"/></wrong>
-    </choices-check>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_choices-radio.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <choices-radio>
-      <right></right>
-      <wrong></wrong>
-    </choices-radio>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_choices-radio_image.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <choices-radio>
-      <right><image id="???"/></right>
-      <wrong><image id="???"/></wrong>
-    </choices-radio>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_composite.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <composite>
-      <subquiz>
-        <instructions>
-          <p></p>
-        </instructions>
-        <choices-radio>
-          <right></right>
-          <wrong></wrong>
-        </choices-radio>
-      </subquiz>
-
-      <subquiz>
-        <instructions>
-          <p></p>
-        </instructions>
-        <choices-radio>
-          <right></right>
-          <wrong></wrong>
-        </choices-radio>
-      </subquiz>
-    </composite>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_matching.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <matching>
-      <match>
-        <item></item>
-        <item></item>
-      </match>
-      <match>
-        <item></item>
-        <item></item>
-      </match>
-    </matching>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_matching_image.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <matching>
-      <match>
-        <item><image id="???"/></item>
-        <item><image id="???"/></item>
-      </match>
-      <match>
-        <item><image id="???"/></item>
-        <item><image id="???"/></item>
-      </match>
-    </matching>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_point.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <point>
-      <p></p>
-    </point>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_production.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <production/>
-
-    <answer>
-      <p></p>
-    </answer>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_sort.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <sort>
-      <comparison></comparison>
-      <item></item>
-      <item></item>
-    </sort>
-  </quiz>
-</publiquiz>
--- a/Xxe/Templates/publiquiz_sort_image.xml	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<publiquiz version="1.0">
-  <quiz id="???">
-    <head>
-      <title></title>
-    </head>
-
-    <instructions>
-      <p></p>
-    </instructions>
-
-    <sort>
-      <comparison></comparison>
-      <item><image id="???"/></item>
-      <item><image id="???"/></item>
-    </sort>
-  </quiz>
-</publiquiz>
--- a/Xxe/publidoc.xxe	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<configuration name="Publidoc"
-               xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
-               xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
-  
-  <detect>
-    <rootElementLocalName>publidoc</rootElementLocalName>
-  </detect>
-
-  <relaxng compactSyntax="true" encoding="UTF-8"
-           location="../RelaxNG/publidoc.rnc"/>
-
-  <css location="Css/publidoc.css" name="Publidoc"/>
-
-  <!-- ================================================================== -->
-  <template location="Templates/publidoc_topic.xml" name="Topic"/>
-  <template location="Templates/publidoc_document.xml" name="Document"/>
-
-  <!-- ================================================================== -->
-  <menu label="_Publidoc">
-    <menu label="Tableaux">
-      <item label="Ligne – Insérer avant"
-            icon="xxe-config:common/icons/insertRowBefore.png"
-            command="xhtml.tableEdit" parameter="insertRowBefore"/>
-      <item label="Ligne – Insérer après"
-            icon="xxe-config:common/icons/insertRowAfter.png"
-            command="xhtml.tableEdit" parameter="insertRowAfter"/>
-      <item label="Ligne – Couper"
-            icon="xxe-config:common/icons/cut.png"
-            command="xhtml.tableEdit" parameter="cutRow"/>
-      <item label="Ligne – Copier"
-            icon="xxe-config:common/icons/copy.png"
-            command="xhtml.tableEdit" parameter="copyRow"/>
-      <item label="Ligne – Coller avant"
-            icon="xxe-config:common/icons/pasteBefore.png"
-            command="xhtml.tableEdit" parameter="pasteRowBefore"/>
-      <item label="Ligne – Coller après"
-            icon="xxe-config:common/icons/pasteAfter.png"
-            command="xhtml.tableEdit" parameter="pasteRowAfter"/>
-      <item label="Ligne – Supprimer"
-            icon="xxe-config:common/icons/deleteRow.png"
-            command="xhtml.tableEdit" parameter="deleteRow"/>
-      <separator />
-      <item label="Colonne – Insérer avant"
-            icon="xxe-config:common/icons/insertColumnBefore.png"
-            command="xhtml.tableEdit" parameter="insertColumnBefore"/>
-      <item label="Colonne – Insérer après"
-            icon="xxe-config:common/icons/insertColumnAfter.png"
-            command="xhtml.tableEdit" parameter="insertColumnAfter"/>
-      <item label="Colonne – Couper"
-            icon="xxe-config:common/icons/cut.png"
-            command="xhtml.tableEdit" parameter="cutColumn"/>
-      <item label="Colonne – Copier"
-            icon="xxe-config:common/icons/copy.png"
-            command="xhtml.tableEdit" parameter="copyColumn"/>
-      <item label="Colonne – Coller avant"
-            icon="xxe-config:common/icons/pasteBefore.png"
-            command="xhtml.tableEdit" parameter="pasteColumnBefore"/>
-      <item label="Colonne – Coller après"
-            icon="xxe-config:common/icons/pasteAfter.png"
-            command="xhtml.tableEdit" parameter="pasteColumnAfter"/>
-      <item label="Colonne – Supprimer"
-            icon="xxe-config:common/icons/deleteColumn.png"
-            command="xhtml.tableEdit" parameter="deleteColumn"/>
-      <separator />
-      <item label="Cellule – Incrémenter l'extension horizontale"
-            icon="xxe-config:common/icons/incrementColumnSpan.png"
-            command="xhtml.tableEdit" parameter="incrColumnSpan"/>
-      <item label="Cellule –Décrémenter l'extension horizontale"
-            icon="xxe-config:common/icons/decrementColumnSpan.png"
-            command="xhtml.tableEdit" parameter="decrColumnSpan"/>
-      <item label="Cellule –Incrémenter l'extension verticale"
-            icon="xxe-config:common/icons/incrementRowSpan.png"
-            command="xhtml.tableEdit" parameter="incrRowSpan"/>
-      <item label="Cellule –Décrémenter l'extension verticale"
-            icon="xxe-config:common/icons/decrementRowSpan.png"
-            command="xhtml.tableEdit" parameter="decrRowSpan"/>
-    </menu>
-
-    <menu label="Tableaux CALS">
-      <item label="Ligne – Insérer avant"
-            icon="xxe-config:common/icons/insertRowBefore.png"
-            command="cals.tableEdit" parameter="insertRowBefore"/>
-      <item label="Ligne – Insérer après"
-            icon="xxe-config:common/icons/insertRowAfter.png"
-            command="cals.tableEdit" parameter="insertRowAfter"/>
-      <item label="Ligne – Supprimer"
-            icon="xxe-config:common/icons/deleteRow.png"
-            command="cals.tableEdit" parameter="deleteRow"/>
-      <separator />
-      <item label="Colonne – Insérer avant"
-            icon="xxe-config:common/icons/insertColumnBefore.png"
-            command="cals.tableEdit" parameter="insertColumnBefore"/>
-      <item label="Colonne – Insérer après"
-            icon="xxe-config:common/icons/insertColumnAfter.png"
-            command="cals.tableEdit" parameter="insertColumnAfter"/>
-      <item label="Colonne – Supprimer"
-            icon="xxe-config:common/icons/deleteColumn.png"
-            command="cals.tableEdit" parameter="deleteColumn"/>
-    </menu>
-  </menu>
-  
-  <command name="xhtml.tableEdit">
-    <class>com.xmlmind.xmleditext.xhtml.table.HTMLTableEdit</class>
-  </command>
-
-  <command name="cals.tableEdit">
-    <class>com.xmlmind.xmleditext.docbook.table.CALSTableEdit</class>
-  </command>
-  
-  <validateHook name="cols_checker">
-    <class>com.xmlmind.xmleditext.docbook.table.ValidateHookImpl</class>
-  </validateHook>  
-</configuration>
--- a/Xxe/publidoc.xxe_addon	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<a:addon xmlns="http://www.w3.org/1999/xhtml"
-         xmlns:html="http://www.w3.org/1999/xhtml"
-         xmlns:a="http://www.xmlmind.com/xmleditor/schema/addon">
-  <a:category>
-    <a:configuration />
-  </a:category>
-
-  <a:name>Publidoc configuration</a:name>
-
-  <a:version>1.0</a:version>
-
-  <a:author><a href="http://www.prismallia.fr">Prismallia</a></a:author>
-
-  <a:xxeVersion>5.0.0+</a:xxeVersion>
-
-</a:addon>
--- a/Xxe/publiquiz.xxe	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<configuration name="Publiquiz"
-               xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
-               xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
-  
-  <detect>
-    <rootElementLocalName>publiquiz</rootElementLocalName>
-  </detect>
-
-  <relaxng compactSyntax="true" encoding="UTF-8"
-           location="../RelaxNG/publiquiz.rnc"/>
-
-  <css location="Css/publiquiz.css" name="Publiquiz"/>
-
-  <!-- ================================================================== -->
-  <template location="Templates/publiquiz_choices-radio.xml"
-            name="Exercice QCM – radio"/>
-  <template location="Templates/publiquiz_choices-radio_image.xml"
-            name="Exercice QCM – radio avec images"/>
-  <template location="Templates/publiquiz_choices-check.xml"
-            name="Exercice QCM – check"/>
-  <template location="Templates/publiquiz_choices-check_image.xml"
-            name="Exercice QCM – check avec images"/>
-  <template location="Templates/publiquiz_blanks-fill.xml"
-            name="Exercice à trous – saisie libre"/>
-  <template location="Templates/publiquiz_blanks-select.xml"
-            name="Exercice à trous – liste fermée"/>
-  <template location="Templates/publiquiz_point.xml"
-            name="Exercice de pointage"/>
-  <template location="Templates/publiquiz_matching.xml"
-            name="Exercice d'appariement"/>
-  <template location="Templates/publiquiz_matching_image.xml"
-            name="Exercice d'appariement avec images"/>
-  <template location="Templates/publiquiz_sort.xml"
-            name="Exercice de tri"/>
-  <template location="Templates/publiquiz_sort_image.xml"
-            name="Exercice de tri avec images"/>
-  <template location="Templates/publiquiz_categories.xml"
-            name="Exercice de catégories"/>
-  <template location="Templates/publiquiz_categories_image.xml"
-            name="Exercice de catégories avec images"/>
-  <template location="Templates/publiquiz_production.xml"
-            name="Exercice de production"/>
-  <template location="Templates/publiquiz_composite.xml"
-            name="Exercices composites"/>
-
-  <!-- ================================================================== -->
-  <menu label="_Publiquiz">
-    <menu label="Tableaux">
-      <item label="Ligne – Insérer avant"
-            icon="xxe-config:common/icons/insertRowBefore.png"
-            command="tableEdit" parameter="insertRowBefore"/>
-      <item label="Ligne – Insérer après"
-            icon="xxe-config:common/icons/insertRowAfter.png"
-            command="tableEdit" parameter="insertRowAfter"/>
-      <item label="Ligne – Supprimer"
-            icon="xxe-config:common/icons/deleteRow.png"
-            command="tableEdit" parameter="deleteRow"/>
-      <separator />
-      <item label="Colonne – Insérer avant"
-            icon="xxe-config:common/icons/insertColumnBefore.png"
-            command="tableEdit" parameter="insertColumnBefore"/>
-      <item label="Colonne – Insérer après"
-            icon="xxe-config:common/icons/insertColumnAfter.png"
-            command="tableEdit" parameter="insertColumnAfter"/>
-      <item label="Colonne – Supprimer"
-            icon="xxe-config:common/icons/deleteColumn.png"
-            command="tableEdit" parameter="deleteColumn"/>
-    </menu>
-  </menu>
-  
-  <command name="tableEdit">
-    <class>com.xmlmind.xmleditext.docbook.table.CALSTableEdit</class>
-  </command>
-  
-  <validateHook name="cols_checker">
-    <class>com.xmlmind.xmleditext.docbook.table.ValidateHookImpl</class>
-  </validateHook>  
-</configuration>
--- a/Xxe/publiquiz.xxe_addon	mar. nov. 28 13:03:48 2017 +0100
+++ /dev/null	jeu. janv. 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Id$ -->
-<a:addon xmlns="http://www.w3.org/1999/xhtml"
-         xmlns:html="http://www.w3.org/1999/xhtml"
-         xmlns:a="http://www.xmlmind.com/xmleditor/schema/addon">
-  <a:category>
-    <a:configuration />
-  </a:category>
-
-  <a:name>Publiquiz configuration</a:name>
-
-  <a:version>1.0</a:version>
-
-  <a:author><a href="http://www.prismallia.fr">Prismallia</a></a:author>
-
-  <a:xxeVersion>5.0.0+</a:xxeVersion>
-
-</a:addon>