# HG changeset patch
# User Patrick PIERRE
# Date 1389369033 -3600
# Node ID e89c967167bb5feea9b1cd2e6f107ed8a12b2847
# Parent dba493c150dd27cac1db0e7720bda33903b10427
Gestion des index
diff -r dba493c150dd -r e89c967167bb RelaxNG/Examples/Documents/torture_test.xml
--- a/RelaxNG/Examples/Documents/torture_test.xml mar. janv. 07 19:33:45 2014 +0100
+++ b/RelaxNG/Examples/Documents/torture_test.xml ven. janv. 10 16:50:33 2014 +0100
@@ -143,6 +143,7 @@
Les types de section
+ section
@@ -154,6 +155,7 @@
Section normale
+ section section normale
Il dirigea la pointe du bambou vers le tableau noir : « Eh bien,
@@ -165,9 +167,10 @@
Lorsque ma mère survint, elle me trouva au milieu des quatre
instituteurs, qui avaient renvoyé leurs élèves dans la cour de
récréation, et qui m'entendaient déchiffrer lentement l'histoire du
- Petit Poucet… Mais au lieu d'admirer cet exploit, elle pâlit,
- déposa ses paquets par terre, referma le livre, et m'emporta dans
- ses bras, en disant : « Mon Dieu ! mon Dieu !… »
+ Petit Poucet … Mais au lieu d'admirer cet
+ exploit, elle pâlit, déposa ses paquets par terre, referma le
+ livre, et m'emporta dans ses bras, en disant : « Mon Dieu ! mon
+ Dieu !… »
Sur la porte de la classe, il y avait la concierge, qui était
une vieille femme corse : elle faisait des signes de croix. J'ai su
plus tard que c'était elle qui était allée chercher ma mère, en
@@ -194,6 +197,8 @@
Section profonde
+ section section profonde
+ Classification phylogénétique
@@ -249,6 +254,8 @@
Encadré
« Casser sa pipe »
+ section type encadré
+ pipe
Il semblerait que cette expression vienne du Premier empire durant
@@ -266,9 +273,10 @@
Exemple
+ section type exemple
Quand on meurt on perd le goût de la vie. Quand on casse sa pipe,
- on perd le goût du tabac.
+ on perd le goût du tabac .
Jeanson Henri (signature)
@@ -382,13 +390,16 @@
Les Misérables
Extrait
+ Les Misérables
Où l’on apprend la mort de Jean Valjean.
- Cosette et Marius tombèrent à genoux, éperdus, étouffés de
- larmes, chacun sur une des mains de Jean Valjean. Ces mains
- augustes ne remuaient plus.
+ Les Misérables Cosette et
+ Les Misérables Marius tombèrent
+ à genoux, éperdus, étouffés de larmes, chacun sur une des mains de
+ Les Misérables Jean Valjean .
+ Ces mains augustes ne remuaient plus.
Il était renversé en arrière, la lueur des deux chandeliers
l'éclairait ; sa face blanche regardait le ciel, il laissait
Cosette et Marius couvrir ses mains de baisers ; il était mort.
@@ -580,7 +591,10 @@
- Journal de navigation
+
+ Journal de navigation
+ Journal de navigation
+
Avion :
Horamètre :
@@ -876,7 +890,7 @@
-
Ancres
- Une ancre est un objet embarqué, lourd,
+ Une ancre est un objet embarqué, lourd,
souvent de métal et destiné à stabiliser des bateaux à un
endroit spécifique sur les fonds rocheux, vaseux ou sableux. Il
y a deux catégories d’ancrages (ou mouillage), les ancrages
diff -r dba493c150dd -r e89c967167bb RelaxNG/Examples/Sets/composition.xml
--- a/RelaxNG/Examples/Sets/composition.xml mar. janv. 07 19:33:45 2014 +0100
+++ b/RelaxNG/Examples/Sets/composition.xml ven. janv. 10 16:50:33 2014 +0100
@@ -40,6 +40,7 @@
Les événements
+ événements
Où l'on évoque pêle-mêle quelques sujets d'actualité.
@@ -53,14 +54,16 @@
Les brèves
Europe
+ brèves Europe
portugal_ue.xml
-
+
- Les photos avec légende
+ Les photographies avec légende
+ photographie
prince_belge.xml
diff -r dba493c150dd -r e89c967167bb RelaxNG/publidoc.rnc
--- a/RelaxNG/publidoc.rnc mar. janv. 07 19:33:45 2014 +0100
+++ b/RelaxNG/publidoc.rnc ven. janv. 10 16:50:33 2014 +0100
@@ -37,6 +37,7 @@
& keywordset?
& subjectset?
& abstract?
+ & head.index*
& cover?
& annotation*
@@ -123,6 +124,7 @@
& place?
& keywordset?
& subjectset?
+ & head.index*
& abstract?
& annotation*
@@ -178,6 +180,7 @@
(title, shorttitle?, subtitle*)?
& keywordset?
& subjectset?
+ & head.index*
& abstract?
& audio*
& annotation*
@@ -212,6 +215,7 @@
block.head.content =
(title, shorttitle?, subtitle*)?
+ & head.index*
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -397,13 +401,13 @@
media.content =
block.head?,
- (image | audio | video)+,
+ (media.image | audio | video)+,
media.caption?,
link?
# ~~~~~~ image
-image = element image { image.attributes, image.content }
-hotspot.image = element image { image.attributes }
+image = element image { image.attributes }
+media.image = element image { image.attributes, media.image.content }
image.attributes =
media.id.attribute
@@ -411,7 +415,7 @@
media.id.attribute = attribute id { xsd:NMTOKEN }
image.type = attribute type { "cover" | "thumbnail" | "icon" | "animation" }
-image.content =
+media.image.content =
copyright?,
hotspot*
@@ -448,7 +452,7 @@
hotspot.type.attribute = attribute type { xsd:NCName }
hotspot.content =
- ((link | p+ | hotspot.image | audio | video), (spot, scenario?)?)
+ ((link | p+ | image | audio | video), (spot, scenario?)?)
| (spot, scenario?)
| empty
@@ -565,13 +569,13 @@
copyright = element copyright { copyright.content }
-copyright.content = inlines
+copyright.content = simple.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ collection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
collection = element collection { collection.content }
-collection.content = inlines
+collection.content = simple.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -597,15 +601,15 @@
lastname = element lastname { lastname.content }
label = element label { label.content }
-firstname.content = inlines
-secondname.content = inlines
-lastname.content = inlines
-label.content = inlines
+firstname.content = simple.inlines
+secondname.content = simple.inlines
+lastname.content = simple.inlines
+label.content = simple.inlines
# ~~~~~~ address
address = element address { address.content }
-address.content = inlines
+address.content = simple.inlines
# ~~~~~~ role
role = element role { role.content }
@@ -616,7 +620,7 @@
place = element place { place.content }
-place.content = inlines
+place.content = simple.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -641,7 +645,7 @@
# ~~~~~~ keyword
keyword = element keyword { keyword.content }
-keyword.content = mixed { sup*, sub* }
+keyword.content = simple.inlines
# ~~~~~~ subjectset
subjectset = element subjectset { subjectset.content }
@@ -651,7 +655,25 @@
# ~~~~~~ subject
subject = element subject { subject.content }
-subject.content = mixed { sup*, sub* }
+subject.content = simple.inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ index ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ index
+index = element index { index.content }
+head.index = element index { head.index.content }
+
+index.content =
+ (index.w, index.entry?)
+ | (index.entry, (index.w | index.entry)?)
+head.index.content =
+ index.entry, index.entry?
+
+# ~~~~~~ index.w
+index.w = element w { simple.inlines }
+
+# ~~~~~~ index.entry
+index.entry = element entry { simple.inlines }
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -670,8 +692,7 @@
cover.image = element image { cover.image.attributes }
cover.image.attributes =
- cover.image.id.attribute
-cover.image.id.attribute = attribute id { xsd:NMTOKEN }
+ media.id.attribute
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ annotation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -686,7 +707,7 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-inlines = mixed {
+simple.inlines = mixed {
sup*
& sub*
& var*
@@ -694,24 +715,28 @@
& math*
& date*
& name*
- & foreign*
& acronym*
& term*
+ & warning*
+}
+
+inlines =
+ simple.inlines
& literal*
- & stage*
+ & foreign*
& highlight*
& emphasis*
& mentioned*
+ & stage*
& initial*
- & note*
& quote*
- & link*
- & anchor*
& image*
& audio*
& smil*
- & warning*
-}
+ & note*
+ & link*
+ & anchor*
+ & index*
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup, var ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -783,15 +808,6 @@
name.content = mixed { sup* & number* & acronym* & warning* }
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-foreign = element foreign { foreign.attributes, foreign.content }
-
-foreign.attributes =
- lang.attribute?
-
-foreign.content = inlines
-
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
acronym = element acronym { acronym.content }
@@ -810,11 +826,14 @@
literal.content = inlines
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-stage = element stage { stage.content }
+foreign = element foreign { foreign.attributes, foreign.content }
-stage.content = inlines
+foreign.attributes =
+ lang.attribute?
+
+foreign.content = inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -834,27 +853,22 @@
mentioned.content = inlines
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+stage = element stage { stage.content }
+
+stage.content = inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initial ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
initial = element initial { initial.content }
initial.content =
- c,
- w?
+ initial.c,
+ initial.w?
-c = element c { text }
-w = element w { inlines }
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-note = element note { note.attributes, note.content }
-
-note.attributes =
- note.label.attribute?
-note.label.attribute = attribute label { text }
-
-note.content =
- (w?, block+) | inlines
+initial.c = element c { text }
+initial.w = element w { inlines }
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -867,29 +881,6 @@
phrase.content = inlines
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-link = element link { link.attributes, link.content }
-
-link.attributes =
- (uri.attribute | idref.attribute)
-uri.attribute = attribute uri { xsd:anyURI }
-idref.attribute = attribute idref { xsd:IDREF }
-
-link.content = mixed {
- sup* & sub* & var* & number* & math* & date* & name* & foreign* & acronym*
- & term* & literal* & stage* & highlight* & emphasis* & mentioned* & warning* }
-
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-anchor = element anchor { anchor.attributes, anchor.content }
-
-anchor.attributes =
- anchor.id.attribute
-anchor.id.attribute = attribute xml:id { xsd:ID }
-
-anchor.content = inlines
-
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ smil ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
smil = element smil { smil.attributes, smil.content }
@@ -904,6 +895,41 @@
smil.content = inlines
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+note = element note { note.attributes, note.content }
+
+note.attributes =
+ note.label.attribute?
+note.label.attribute = attribute label { text }
+
+note.content =
+ (note.w?, block+)
+ | inlines
+
+note.w = element w { inlines }
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+link = element link { link.attributes, link.content }
+
+link.attributes =
+ (uri.attribute | idref.attribute)
+uri.attribute = attribute uri { xsd:anyURI }
+idref.attribute = attribute idref { xsd:IDREF }
+
+link.content = simple.inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+anchor = element anchor { anchor.attributes, anchor.content }
+
+anchor.attributes =
+ anchor.id.attribute
+anchor.id.attribute = attribute xml:id { xsd:ID }
+
+anchor.content = simple.inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ warning ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
warning = element warning { warning.attributes, warning.content }
diff -r dba493c150dd -r e89c967167bb RelaxNG/publiquiz.rnc
--- a/RelaxNG/publiquiz.rnc mar. janv. 07 19:33:45 2014 +0100
+++ b/RelaxNG/publiquiz.rnc ven. janv. 10 16:50:33 2014 +0100
@@ -465,52 +465,15 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-blanks.inlines = mixed {
- sup*
- & sub*
- & var*
- & number*
- & math*
- & date*
- & name*
- & note*
- & foreign*
- & highlight*
- & emphasis*
- & mentioned*
- & quote*
- & acronym*
- & term*
- & link*
- & anchor*
- & image*
- & audio*
+blanks.inlines =
+ inlines
& blank*
-}
-point.inlines = mixed {
- sup*
- & sub*
- & var*
- & number*
- & math*
- & date*
- & name*
- & note*
- & foreign*
- & highlight*
- & emphasis*
- & mentioned*
- & quote*
- & acronym*
- & term*
- & link*
- & anchor*
- & image*
- & audio*
+
+point.inlines =
+ inlines
& blank*
& point.right*
& point.wrong*
-}
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blank ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff -r dba493c150dd -r e89c967167bb RelaxNG/publiset.rnc
--- a/RelaxNG/publiset.rnc mar. janv. 07 19:33:45 2014 +0100
+++ b/RelaxNG/publiset.rnc ven. janv. 10 16:50:33 2014 +0100
@@ -61,6 +61,7 @@
& (source, source?)?
& keywordset?
& subjectset?
+ & head.index*
& abstract?
& cover?
@@ -121,6 +122,7 @@
division.head.content =
(title, shorttitle?, subtitle*)?
+ & head.index*
# =============================================================================
@@ -191,13 +193,13 @@
copyright = element copyright { copyright.content }
-copyright.content = inlines
+copyright.content = simple.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ collection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
collection = element collection { collection.content }
-collection.content = inlines
+collection.content = simple.inlines
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ contributors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -223,15 +225,15 @@
lastname = element lastname { lastname.content }
label = element label { label.content }
-firstname.content = inlines
-secondname.content = inlines
-lastname.content = inlines
-label.content = inlines
+firstname.content = simple.inlines
+secondname.content = simple.inlines
+lastname.content = simple.inlines
+label.content = simple.inlines
# ~~~~~~ address
address = element address { address.content }
-address.content = inlines
+address.content = simple.inlines
# ~~~~~~ role
role = element role { role.content }
@@ -277,7 +279,7 @@
# ~~~~~~ keyword
keyword = element keyword { keyword.content }
-keyword.content = mixed { sup*, sub* }
+keyword.content = simple.inlines
# ~~~~~~ subjectset
subjectset = element subjectset { subjectset.content }
@@ -287,7 +289,18 @@
# ~~~~~~ subject
subject = element subject { subject.content }
-subject.content = mixed { sup*, sub* }
+subject.content = simple.inlines
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ index ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# ~~~~~~ index
+head.index = element index { head.index.content }
+
+head.index.content =
+ index.entry, index.entry?
+
+# ~~~~~~ index.entry
+index.entry = element entry { simple.inlines }
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -306,8 +319,8 @@
cover.image = element image { cover.image.attributes }
cover.image.attributes =
- cover.image.id.attribute
-cover.image.id.attribute = attribute id { xsd:NMTOKEN }
+ media.id.attribute
+media.id.attribute = attribute id { xsd:NMTOKEN }
# =============================================================================
@@ -316,18 +329,22 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-inlines = mixed {
+simple.inlines = mixed {
sup*
& sub*
& date*
& name*
+}
+
+inlines =
+ simple.inlines
& highlight*
+ & emphasis*
& link*
-}
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-sup = element sup { inlines }
+sup = element sup { simple.inlines }
sub = element sub { inlines }
@@ -359,6 +376,12 @@
highlight.content = inlines
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emphasis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+emphasis = element emphasis { emphasis.content }
+
+emphasis.content = inlines
+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
link = element link { link.attributes, link.content }
@@ -367,7 +390,7 @@
uri.attribute
uri.attribute = attribute uri { xsd:anyURI }
-link.content = mixed { sup* & sub* & date* & name* & highlight* }
+link.content = simple.inlines
# =============================================================================