# 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 + sectionsection 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 + sectionsection profonde + Classification phylogénétique
@@ -249,6 +254,8 @@ Encadré « Casser sa pipe » + sectiontype encadré + pipe

Il semblerait que cette expression vienne du Premier empire durant @@ -266,9 +273,10 @@

Exemple + sectiontype 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érablesCosette et + Les MisérablesMarius tombèrent + à genoux, éperdus, étouffés de larmes, chacun sur une des mains de + Les MisérablesJean 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 + @@ -876,7 +890,7 @@

- 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èvesEurope 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 # =============================================================================

Avion :

Horamètre :