diff -r fd6c23c8ce0f -r d01d5f014c3f RelaxNG/lg_nc_v3-2.rnc --- /dev/null jeu. janv. 01 00:00:00 1970 +0000 +++ b/RelaxNG/lg_nc_v3-2.rnc jeu. nov. 15 21:41:38 2012 +0100 @@ -0,0 +1,1169 @@ +# ********************************************************************** + +# ****** DTD LITTERATURE GENERALE XML NC V3.2 ****** + +# ****** (c) Nord Compo (juin 1999) ****** + +# ****** realisee par : GD ****** + +# ****** mise a jour par : GD (juillet 2000) ****** + +# ****** transformation en XML par : JMD (Aout 2000) ****** + +# ****** mise a jour XML par : GD (janvier 2001) ****** + +# ****** mise a jour de la version 2.1 ****** + +# ****** mise ‡ jour : GD (juin 2007) ****** + +# ****** mise a jour : GD septembre 2007 ****** + +# ****** mise a jour : GD octobre 2007 ****** + +# ****** mise a jour : GD novembre 2007 ****** + +# ****** mise a jour : GD janvier 2008 ****** + +# ****** mise a jour : PT mai 2009 ****** + +# ****** mise a jour : PT octobre 2009 ****** + +# ********************************************************************** + +# ****** Entites externes ****** + +# ****** Entites internes ****** + +texte = text | sup | inf | pc | sl +# Texte avec Exposant, Indice petites caps, ou souligne +typo = texte | i | b | r +# Texte avec mise en forme (ital, gras, romain) +appel = + indx + | indx2 + | indx3 + | apnb + | apnb2 + | apnb3 + | apnf + | apnm + | apfi + | apta +# Entite d'appels divers +depart = + apfi?, + surtit?, + n?, + (((tit, apfi?), + ((stit, apfi?), (sstit, apfi?)?)?) + | ((stit, apfi?), (sstit, apfi?)?))?, + (accro | trad | auteur | illustrateur | exer)* +# Entite Numero, titre et sous-titre + +# Mai 2009 : ajout appels de figure optionnels + +# Mai 2009 : ajout surtitre, illustrateur, sstit + +# ****** Elements Livre ****** +livre = + element livre { + attlist.livre, + ident, + (appcrit | pre)*, + corps, + (appcrit | appen)*, + collec* + } +# Element Livre + +# Octobre 2009 : ÈlÈment collec rÈpÈtable +attlist.livre &= + attribute compo { text }?, + attribute saisie { text }?, + attribute type { text }? +# Nom du photocompositeur +# lieu de la saisie +# Type coll + +# ****** Elements typo ****** +b = element b { attlist.b, (texte | i | appel)* } +attlist.b &= empty +# Element Gras +i = element i { attlist.i, (texte | b | appel)* } +attlist.i &= empty +# Element ital +r = element r { attlist.r, (texte | appel)* } +attlist.r &= empty +# Element Romain +sup = element sup { attlist.sup, (text | appel | i | b | r)* } +attlist.sup &= empty +# Element Exposant +inf = element inf { attlist.inf, (text | appel | i | b | r)* } +attlist.inf &= empty +# Element Indice +pc = element pc { attlist.pc, (text | appel | i | b | r)* } +attlist.pc &= empty +# Element petites capitales +sl = element sl { attlist.sl, (text | appel | i | b | r)* } +attlist.sl &= empty +# Element souligne +br = element br { attlist.br, empty } +attlist.br &= empty +# Retour a la ligne dans un element titre + +# ****** Elements Entete (pages de titre) ****** +ident = + element ident { + attlist.ident, + (ftit + | fstit + | info + | accro + | collec + | auteur + | illustrateur + | tit + | stit + | edit + | copy + | trad + | ean + | coned + | type + | ref + | isbn + | issn + | modulus + | fig + | tableau + | dedi + | exer)+ + } +attlist.ident &= empty +# Element Entete ou pages de titre + +# Mai 2009 : ajout illustrateur +ftit = + element ftit { attlist.ftit, (typo | br | appel | renv | renvlnk)* } +attlist.ftit &= empty +# FAUX TITRE ouvrage +accro = + element accro { attlist.accro, (typo | br | appel | renv | renvlnk)* } +attlist.accro &= empty +# Accroche ouvrage +fstit = + element fstit { attlist.fstit, (typo | br | appel | renv | renvlnk)* } +attlist.fstit &= empty +# SOUS TITRE ouvrage +auteur = element auteur { attlist.auteur, (typo | appel)* } +attlist.auteur &= empty +# Auteur(s) de l'ouvrage ou de citation ou exergue +illustrateur = + element illustrateur { attlist.illustrateur, (typo | appel)* } +attlist.illustrateur &= empty +# Mai 2009 : ajout element illustrateur +surtit = + element surtit { + attlist.surtit, (typo | appel | br | renv | renvlnk)* + } +attlist.surtit &= empty +# Mai 2009 : ajout element surtitre +tit = element tit { attlist.tit, (typo | appel | br | renv | renvlnk)* } +attlist.tit &= empty +# Titre de l'ouvrage +stit = + element stit { attlist.stit, (typo | appel | br | renv | renvlnk)* } +attlist.stit &= empty +# Sous-titre de l'ouvrage +sstit = + element sstit { attlist.sstit, (typo | appel | br | renv | renvlnk)* } +attlist.sstit &= empty +# Mai 2009 : ajout Sous-sous-titre +type = element type { attlist.type, (typo | br | appel)* } +attlist.type &= empty +# Type d'ouvrage dans page de titre +info = element info { attlist.info, (typo | br | appel)* } +attlist.info &= empty +# Texte page de titre +collec = + element collec { + attlist.collec, + (tit | stit | cint | cint2 | cint3 | auteur | p | pbib | fig)* + } +attlist.collec &= empty +# page de collection + +# Octobre 2009 : ajout ÈlÈment fig +cint = element cint { attlist.cint, (typo | br | appel)* } +attlist.cint &= empty +# intertitre dans page de collection +cint2 = element cint2 { attlist.cint2, (typo | br | appel)* } +attlist.cint2 &= empty +# intertitre dans page de collection +cint3 = element cint3 { attlist.cint3, (typo | br | appel)* } +attlist.cint3 &= empty +# intertitre dans page de collection +trad = element trad { attlist.trad, (typo | br | appel)* } +attlist.trad &= empty +# traduction par +edit = element edit { attlist.edit, (typo | appel)* } +attlist.edit &= empty +# Editeur(s) +copy = element copy { attlist.copy, (typo | br | appel)* } +attlist.copy &= empty +# Copyright de l'ouvrage +ref = element ref { attlist.ref, (typo | br | appel)* } +attlist.ref &= empty +# References de l'ouvrage +isbn = element isbn { attlist.isbn, (typo | appel)* } +attlist.isbn &= empty +# isbn +issn = element issn { attlist.issn, (typo | appel)* } +attlist.issn &= empty +# issn +modulus = element modulus { attlist.modulus, (typo | appel)* } +attlist.modulus &= empty +# modulus +ean = element ean { attlist.ean, text } +attlist.ean &= empty +# EAN 13 +coned = element coned { attlist.coned, text } +attlist.coned &= empty +# Rang d'impression +dedi = element dedi { attlist.dedi, (typo | br | appel)* } +attlist.dedi &= empty +# Dedicace +exer = element exer { attlist.exer, p+, (source | auteur)* } +attlist.exer &= empty +# Exergue +source = element source { attlist.source, (typo | appel | p | br)* } +attlist.source &= empty +# Source(s) citation, image, exergue + +# ****** Elements paragraphe ****** +p = element p { attlist.p, (typo | appel | renv | renvlnk)* } +attlist.p &= + attribute align { + "centre" | "justif" | "gauche" | "droite" | "ssalinea" + }? +# Element paragraphe + +# ****** Elements paragraphe bibliographique ****** +pbib = + element pbib { + attlist.pbib, + (typo + | appel + | autbib + | titbib + | editbib + | datebib + | renv + | renvlnk)* + } +attlist.pbib &= empty +# Element paragraphe bibliographique (auteur, titre, editeur, date) +autbib = element autbib { attlist.autbib, (typo | appel)* } +attlist.autbib &= empty +# auteur +titbib = element titbib { attlist.titbib, (typo | appel)* } +attlist.titbib &= empty +# titre ouvrage +editbib = element editbib { attlist.editbib, (typo | appel)* } +attlist.editbib &= empty +# editeur +datebib = element datebib { attlist.datebib, (typo | appel)* } +attlist.datebib &= empty +# date de parution + +# ****** Elements renvois pour reference croisee ****** +renv = element renv { attlist.renv, typo* } +# Renvoi point d'appel +attlist.renv &= attribute id { xsd:IDREF } +# Lien appel de reference croisee +renvlnk = element renvlnk { attlist.renvlnk, typo* } +# Renvoi point d'arrivee +attlist.renvlnk &= attribute id { xsd:ID } +# Lien de reference croisee + +# ****** Elements d'appels de figures et notes ****** +apnb = element apnb { attlist.apnb, empty } +attlist.apnb &= attribute id { xsd:IDREF } +# Lien appel de note de bas de page niv 1 +apnb2 = element apnb2 { attlist.apnb2, empty } +attlist.apnb2 &= attribute id { xsd:IDREF } +# Lien appel de note de bas de page niv 2 +apnb3 = element apnb3 { attlist.apnb3, empty } +attlist.apnb3 &= attribute id { xsd:IDREF } +# Lien appel de note de bas de page niv 3 +apnf = element apnf { attlist.apnf, empty } +attlist.apnf &= attribute id { xsd:IDREF } +# Lien appel de note de fin d'ouvrage +apnm = element apnm { attlist.apnm, empty } +attlist.apnm &= attribute id { xsd:IDREF } +# Lien appel de note de marge +apfi = element apfi { attlist.apfi, empty } +attlist.apfi &= + attribute id { xsd:IDREF }, + attribute place { + "haut" | "bas" | "intexte" | "pagesui" | "pagepre" + }?, + attribute align { + "centre" | "gauche" | "droite" | "retrait" | "inline" + }? +# Lien appel de figure + +# Emplacement de l'illustration : haut de page, bas de page, ‡ la hauteur du texte, page suivante, page precedente + +# Mai 2009 : ajout align : centre | gauche | droite | retrait | inline=dans le texte +apta = element apta { attlist.apta, empty } +attlist.apta &= attribute id { xsd:IDREF } +# Lien appel de tableaux + +# ****** Elements d'indexation ****** + +# Rem : Le separateur de niveau d'index est le ; +indx = element indx { attlist.indx, (typo | appel)* } +# Indexation +attlist.indx &= attribute LIBEL { text }? +# Libelle dans l'index +indx2 = element indx2 { attlist.indx2, (typo | appel)* } +# Indexation +attlist.indx2 &= attribute LIBEL { text }? +# Libelle dans l'index +indx3 = element indx3 { attlist.indx3, (typo | appel)* } +# Indexation +attlist.indx3 &= attribute LIBEL { text }? +# Libelle dans l'index + +# ****** Elements corps de l'ouvrage ****** +corps = + element corps { + attlist.corps, (vol+ | part+ | section+ | chap+ | dev) + } +attlist.corps &= empty +# Corps de l'ouvrage + +# ****** Elements preliminaire de l'ouvrage ****** +pre = + element pre { + attlist.pre, + apfi?, + surtit?, + (((tit, apfi?), + ((stit, apfi?), (sstit, apfi?)?)?) + | ((stit, apfi?), (sstit, apfi?)?))?, + exer*, + chapeau?, + dev, + (source | sign)*, + collec*, + defnotes?, + apfi? + } +# preliminaire : Intro, preface, Avertissement etc... +attlist.pre &= + attribute id { xsd:ID }?, + attribute num { text }?, + attribute type { + "intro" + | "prologue" + | "pref" + | "remer" + | "avpro" + | "biblio" + | "bio" + | "remarque" + | "note" + | "chrono" + | "presentation" + | "personnages" + | "sommaire" + | "tdm" + | "autre" + }? +# Type de preliminaire : introduction, prologue, preface, remerciements, avant propos , bibliographie, remarque, note, chronologie, presentation et autre + +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# Mai 2009 : ajout type bio, personnages, sommaire, tdm + +# Mai 2009 : ajout appels de figure optionnels en dÈbut et en fin de prÈliminaire + +# Mai 2009 : ajout surtitre optionnel + +# Mai 2009 : ajout sous-soustitre optionnel + +# mai 2009 : ajout ÈlÈment chapeau ****** + +# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ****** + +# mai 2009 : ajout source optionnel ****** + +# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio****** +sign = element sign { attlist.sign, (typo | appel | br)* } +attlist.sign &= empty +# Signature de la preface ou de l'intro, etc...** + +# ****** Elements volume de l'ouvrage ****** +vol = + element vol { + attlist.vol, + depart, + (appcrit | pre)*, + ((dev, part*) | part+), + defnotes?, + (appcrit | appen)* + } +attlist.vol &= + attribute id { xsd:ID }?, + attribute num { text }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# ****** Elements partie de l'ouvrage ****** +part = + element part { + attlist.part, + depart, + (appcrit | pre)*, + ((dev, (section | chap)*) + | (section | chap)+), + defnotes?, + (appcrit | appen)* + } +attlist.part &= + attribute id { xsd:ID }?, + attribute num { text }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# ****** Elements partie de l'ouvrage ****** +section = + element section { + attlist.section, + depart, + (appcrit | pre)*, + ((dev, chap*) | chap+), + defnotes?, + (appcrit | appen)* + } +attlist.section &= + attribute id { xsd:ID }?, + attribute num { text }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique +n = element n { attlist.n, (typo | appel | br | renv | renvlnk)* } +attlist.n &= empty +# Numero de partie, Chapitre, sous-chapitre ou section + +# ****** Elements Chapitre de l'ouvrage ****** +chap = + element chap { + attlist.chap, + depart, + (appcrit | pre)*, + ((chapeau?, dev, schap*) | schap+), + source?, + defnotes?, + (appcrit | appen)* + } +attlist.chap &= + attribute id { xsd:ID }?, + attribute num { text }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# Chapitre + +# mai 2009 : ajout ÈlÈment chapeau ****** + +# mai 2009 : ajout ÈlÈment source ****** + +# ****** Elements Sous-chapitre ****** +schap = + element schap { + attlist.schap, + depart, + (appcrit | pre)*, + chapeau?, + dev, + defnotes?, + (appcrit | appen)* + } +attlist.schap &= + attribute id { xsd:ID }?, + attribute num { text }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# Sous-chapitre + +# mai 2009 : ajout ÈlÈment chapeau ****** + +# ****** Elements postliminaire de l'ouvrage ****** +appen = + element appen { + attlist.appen, + (apfi?, + surtit?, + (((tit, apfi?), + ((stit, apfi?), (sstit, apfi?)?)?) + | ((stit, apfi?), (sstit, apfi?)?))?, + exer*, + ((((chapeau?, dev) | notefin), + sect*) + | sect+), + (source | sign)*, + defnotes?), + collec*, + apfi? + } +attlist.appen &= + attribute id { xsd:ID }?, + attribute num { text }?, + attribute type { + "postface" + | "conclusion" + | "remer" + | "biblio" + | "bio" + | "chrono" + | "remarque" + | "annexe" + | "notes" + | "glossaire" + | "lexique" + | "historique" + | "genealogie" + | "epilogue" + | "tdm" + | "horstexte" + | "personnages" + | "autre" + }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# Appendice : conclusion, postface, annexes etc... + +# mai 2009 : ajout types glossaire, lexique, historique, genealogie, Èpilogue, tdm, horstexte ****** + +# mai 2009 : ajout appels de figure optionnels en dÈbut et en fin appendice ****** + +# mai 2009 : ajout exergue optionnel en dÈbut d' appendice ****** + +# mai 2009 : ajout surtitre optionnel ****** + +# Mai 2009 : ajout sous-soustitre optionnel + +# mai 2009 : ajout ÈlÈment chapeau****** + +# mai 2009 : ajout ÈlÈment source****** + +# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ****** + +# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio****** + +# dÈcembre 2009 : ajout valeur attribut personnages ****** + +# ****** Appareil critique ****** +appcrit = + element appcrit { + attlist.appcrit, + surtit?, + (((tit, apfi?), + ((stit, apfi?), (sstit, apfi?)?)?) + | ((stit, apfi?), (sstit, apfi?)?))?, + ((((chapeau?, dev) | notefin), + sect*) + | sect+), + (source | sign)*, + collec*, + defnotes? + } +attlist.appcrit &= + attribute id { xsd:ID }?, + attribute num { text }?, + attribute type { + "intro" + | "prologue" + | "pref" + | "remer" + | "avpro" + | "biblio" + | "remarque" + | "note" + | "chrono" + | "presentation" + | "personnages" + | "sommaire" + | "tdm" + | "postface" + | "conclusion" + | "bio" + | "annexe" + | "glossaire" + | "lexique" + | "historique" + | "genealogie" + | "epilogue" + | "horstexte" + | "autre" + }? +# mai 2009 : Definition des types d' appareils critiques : tous ceux de pre et d'appen + +# mai 2009 : ajout surtitre optionnel ****** + +# Mai 2009 : ajout sous-soustitre optionnel + +# mai 2009 : ajout ÈlÈment chapeau****** + +# mai 2009 : ajout ÈlÈment source****** + +# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ****** + +# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio****** + +# ****** Elements Section ****** +sect = + element sect { + attlist.sect, + depart, + ((chapeau?, dev) | notefin), + sign*, + defnotes? + } +attlist.sect &= + attribute id { xsd:ID }?, + attribute num { text }?, + attribute type { + "postface" + | "conclusion" + | "remer" + | "biblio" + | "bio" + | "chrono" + | "remarque" + | "annexe" + | "notes" + | "autre" + }? +# Indentifiant et numero permettant de referencer les titres pour une gestion electronique + +# Section + +# mai 2009 : ajout ÈlÈment chapeau****** + +# ****** Elements Developpement ****** +dev = + element dev { + attlist.dev, + (((let?, (p | pbib)) + | bl + | sep + | dialogue + | theatre + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc + | sign) + | (niv1 | niv2 | niv3 | niv4 | niv5))+, + fin?, + source? + } +attlist.dev &= empty +# mai 2009 : ajout source ****** + +# Developpement des chapitres, parties ou sections... +chapeau = element chapeau { attlist.chapeau, let?, p+ } +attlist.chapeau &= empty +# mai 2009 : ajout ÈlÈment chapeau pour preliminaire, appendice, chapitre, sous chapitre, sect ****** + +# ****** Elements Theatre ****** +theatre = element theatre { attlist.theatre, distrib*, acte+ } +attlist.theatre &= empty +# Module d'enrichissement pour ouvrage de theatre... +distrib = element distrib { attlist.distrib, tit, role+, expos* } +attlist.distrib &= empty +# liste des personnage de la piece... +role = element role { attlist.role, (pers | acteur)* } +attlist.role &= empty +# role du personnage +expos = + element expos { attlist.expos, (typo | appel | renv | renvlnk)* } +attlist.expos &= empty +# exposition (ou se deroule la piece) +acte = + element acte { + attlist.acte, n?, tit?, stit?, (pers | didasc)*, scene+ + } +attlist.acte &= empty +# acte +pers = + element pers { + attlist.pers, (typo | appel | renv | renvlnk | didasc)* + } +attlist.pers &= empty +# personnage(s) +acteur = + element acteur { + attlist.acteur, (typo | appel | renv | renvlnk | didasc)* + } +attlist.acteur &= empty +# acteur(s) +didasc = + element didasc { attlist.didasc, (typo | appel | renv | renvlnk)* } +attlist.didasc &= empty +# didascalie +scene = + element scene { + attlist.scene, n?, tit?, stit?, (pers | didasc)*, replique+ + } +attlist.scene &= empty +# scene +replique = + element replique { + attlist.replique, + (pers+, (p | vers | didasc)*)+ + } +attlist.replique &= empty +# replique +vers = element vers { attlist.vers, (typo | appel | renv | renvlnk)* } +attlist.vers &= + attribute align { + "centre" | "justif" | "gauche" | "droite" | "stichomythie" + }?, + attribute num { text }? +# Attribut du vers (stichomytie pour les vers qui se suivent + +# vers +bl = element bl { attlist.bl, empty } +# Ligne de blanc +attlist.bl &= attribute v { text } +# Valeur de blanc +sep = element sep { attlist.sep, empty } +# Separateur +attlist.sep &= + attribute type { + "filet" | "frise" | "etoiles" | "etoile" | "logo" | "autre" + }, + attribute src { text }? +# type de separateur + +# Mai 2009 : ajout scr : nom de l'image pour logo, cul de lampe... + +# ****** Element liste ****** +\list = element list { attlist.list, item+ } +attlist.list &= + attribute type { + "puce" + | "tiret" + | "num" + | "alpha" + | "none" + | "imagelist1" + | "imagelist2" + | "imagelist3" + | "autre" + }? +# Liste, Enumeration + +# mai 2009 : ajout valeur type imagelist1 imagelist2 imagelist3 pour utiliser une image comme symbole optionnel ****** + +# Item liste +item = element item { attlist.item, (n?, p+), \list* } +attlist.item &= empty +# ****** Strophe et vers dans la LG... ****** +stroplg = element stroplg { attlist.stroplg, tit?, (verslg | bl)+ } +# Strophe +attlist.stroplg &= attribute type { text }? +# Type de vers : centre, retrait, ligne + +# Vers +verslg = element verslg { attlist.verslg, (typo | appel)* } +attlist.verslg &= + attribute type { text }?, + attribute num { text }? +# Dialogue +dialogue = + element dialogue { + attlist.dialogue, + (interloc, + (p | stroplg | bl | sep | \list | cita | fig | tableau | enc)+)+, + fin? + } +attlist.dialogue &= empty +interloc = + element interloc { + attlist.interloc, (typo | appel | renv | renvlnk)* + } +attlist.interloc &= empty +cita = + element cita { + attlist.cita, + (date | lieu | entete)*, + (p | stroplg | bl)+, + (source | auteur | polit)*, + fin? + } +attlist.cita &= attribute type { "citation" | "lettre" }? +lettre = + element lettre { + attlist.lettre, + (date | lieu | entete)*, + (p | stroplg | bl)+, + (source | auteur | polit)* + } +attlist.lettre &= empty +infratexte = + element infratexte { + attlist.infratexte, tit?, (p | cita | stroplg | bl | sep)+, fin? + } +attlist.infratexte &= empty +fin = element fin { attlist.fin, (typo | appel | renv | renvlnk | br)* } +attlist.fin &= empty +# matÈrialise un texte de fin de niveau +date = + element date { attlist.date, (typo | appel | renv | renvlnk | br)* } +attlist.date &= empty +# date pour une correspondance +lieu = + element lieu { attlist.lieu, (typo | appel | renv | renvlnk | br)* } +attlist.lieu &= empty +# lieu pour une correspondance +entete = + element entete { + attlist.entete, (typo | appel | renv | renvlnk | br)* + } +attlist.entete &= empty +# entete pour une correspondance +polit = + element polit { attlist.polit, (typo | appel | renv | renvlnk | br)* } +attlist.polit &= empty +# politesse pour une correspondance + +# ****** Niveau d'intertitre et de Texte ****** +niv1 = + element niv1 { + attlist.niv1, + (n?, + int?, + sint?, + exer*, + (((let?, p) + | pbib + | bl + | sep + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc)+ + | (niv2 | niv3 | niv4 | niv5)*)+), + fin? + } +attlist.niv1 &= empty +# Niveau 1 +niv2 = + element niv2 { + attlist.niv2, + (n?, + int?, + sint?, + exer*, + (((let?, p) + | pbib + | bl + | sep + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc)+ + | (niv3 | niv4 | niv5)*)+), + fin? + } +attlist.niv2 &= empty +# Niveau 2 +niv3 = + element niv3 { + attlist.niv3, + (n?, + int?, + sint?, + exer*, + (((let?, p) + | pbib + | bl + | sep + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc)+ + | (niv4 | niv5)*)+), + fin? + } +attlist.niv3 &= empty +# Niveau 3 +niv4 = + element niv4 { + attlist.niv4, + (n?, + int?, + sint?, + exer*, + (((let?, p) + | pbib + | bl + | sep + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc)+ + | niv5)*), + fin? + } +attlist.niv4 &= empty +# Niveau 4 +niv5 = + element niv5 { + attlist.niv5, + (n?, + int?, + sint?, + exer*, + ((let?, p) + | pbib + | bl + | sep + | \list + | stroplg + | cita + | infratexte + | lettre + | fig + | tableau + | enc)+), + fin? + } +attlist.niv5 &= empty +# Niveau 5 +int = element int { attlist.int, (typo | br | appel | renv | renvlnk)* } +attlist.int &= empty +# Intertitre +sint = + element sint { attlist.sint, (typo | br | appel | renv | renvlnk)* } +attlist.sint &= empty +# Sous intertitre + +# ****** Elements Lettrine ****** +let = element let { attlist.let, typo* } +attlist.let &= empty +# Lettrine + +# ****** Encadre ****** +enc = + element enc { attlist.enc, surtit?, tit?, stit?, exer*, dev, sign* } +attlist.enc &= empty +# Encadre + +# mai 2009 : ajout surtitre optionnel ****** + +# ****** Elements definitions de notes ****** +defnotes = + element defnotes { + attlist.defnotes, (ntb | ntb2 | ntb3 | ntf | ntm)+ + } +attlist.defnotes &= empty +# Definition des notes de la partie, du chapitre etc... +ntb = element ntb { attlist.ntb, (p | pbib | tableau | fig)+ } +# Texte de la note +attlist.ntb &= attribute id { xsd:ID } +# Lien appel de note +ntb2 = element ntb2 { attlist.ntb2, (p | pbib | tableau | fig)+ } +# Texte de la note niveau 2 +attlist.ntb2 &= attribute id { xsd:ID } +# Lien appel de note niveau 2 +ntb3 = element ntb3 { attlist.ntb3, (p | pbib | tableau | fig)+ } +# Texte de la note niveau 3 +attlist.ntb3 &= attribute id { xsd:ID } +# Lien appel de note niveau 3 +ntf = element ntf { attlist.ntf, (p | pbib | tableau | fig)+ } +# Texte de la note +attlist.ntf &= attribute id { xsd:ID } +# Lien appel de note +ntm = element ntm { attlist.ntm, (p | pbib | tableau | fig)+ } +# Texte de la note +attlist.ntm &= attribute id { xsd:ID } +# Lien appel de note + +# ****** Elements note de fin ****** +notefin = + element notefin { + attlist.notefin, + ((ntf | p)* | (nfniv1 | nfniv2 | nfniv3 | nfniv4 | nfniv5)*)+ + } +attlist.notefin &= empty +# Developpement des chapitres, parties ou sections... + +# ****** Niveau d'intertitre et de Texte ****** +nfniv1 = + element nfniv1 { + attlist.nfniv1, + n?, + int?, + sint?, + ((ntf | p)* | (nfniv2 | nfniv3 | nfniv4 | nfniv5)*)+ + } +attlist.nfniv1 &= empty +# Niveau 1 +nfniv2 = + element nfniv2 { + attlist.nfniv2, + n?, + int?, + sint?, + ((ntf | p)* | (nfniv3 | nfniv4 | nfniv5)*)+ + } +attlist.nfniv2 &= empty +# Niveau 2 +nfniv3 = + element nfniv3 { + attlist.nfniv3, + n?, + int?, + sint?, + ((ntf | p)* | (nfniv4 | nfniv5)*)+ + } +attlist.nfniv3 &= empty +# Niveau 3 +nfniv4 = + element nfniv4 { + attlist.nfniv4, + n?, + int?, + sint?, + ((ntf | p)* | nfniv5*)+ + } +attlist.nfniv4 &= empty +# Niveau 4 +nfniv5 = element nfniv5 { attlist.nfniv5, n?, int?, sint?, (ntf | p)+ } +attlist.nfniv5 &= empty +# Niveau 5 + +# ****** Elements definitions de figure ****** +fig = element fig { attlist.fig, (tit | img | leg | source)+ } +# contenu du bloc figure +attlist.fig &= attribute id { xsd:ID }? +# Lien appel de figure +img = element img { attlist.img, empty } +# Appel de la source de l'image +attlist.img &= attribute src { text }? +# Nom de l'image +leg = element leg { attlist.leg, p+ } +attlist.leg &= empty +# Legende d'illustration + +# ****** Elements definitions de tableau ****** +yesorno = string +tableau = + element tableau { + attlist.tableau, + (leg | source)*, + (stab | (table, stab*)), + (leg | source)* + } +# contenu du bloc tableau +attlist.tableau &= attribute id { xsd:ID }? +# Lien appel de tableau + +# dÈcembre 2009 : ajout possibilitÈ table et stab ****** +stab = element stab { attlist.stab, empty } +# Appel de la source du tableau (si tableau=image) +attlist.stab &= attribute src { text }? +# Nom du tableau + +# ****** Tableau en cals ****** +table = element table { attlist.table, title?, tgroup+ } +attlist.table &= + attribute frame { + "top" | "bottom" | "topbot" | "all" | "sides" | "none" + }?, + attribute colsep { yesorno }?, + attribute rowsep { yesorno }? +title = + element title { attlist.title, (typo | appel | br | renv | renvlnk)* } +attlist.title &= empty +tgroup = + element tgroup { + attlist.tgroup, colspec*, spanspec*, thead?, tfoot?, tbody + } +attlist.tgroup &= + attribute cols { text }, + attribute colsep { yesorno }?, + attribute rowsep { yesorno }?, + attribute align { "left" | "right" | "center" | "justify" | "char" }?, + attribute char { text }?, + attribute charoff { text }? +colspec = element colspec { attlist.colspec, empty } +attlist.colspec &= + attribute colnum { text }?, + attribute colname { text }?, + attribute colwidth { text }?, + attribute colsep { yesorno }?, + attribute rowsep { yesorno }?, + attribute align { "left" | "right" | "center" | "justify" | "char" }?, + attribute char { text }?, + attribute charoff { text }? +spanspec = element spanspec { attlist.spanspec, empty } +attlist.spanspec &= + attribute namest { text }, + attribute nameend { text }, + attribute spanname { text }, + attribute colsep { yesorno }?, + attribute rowsep { yesorno }?, + attribute align { "left" | "right" | "center" | "justify" | "char" }?, + attribute char { text }?, + attribute charoff { text }? +thead = element thead { attlist.thead, colspec*, row+ } +attlist.thead &= attribute valign { "top" | "middle" | "bottom" }? +tfoot = element tfoot { attlist.tfoot, colspec*, row+ } +attlist.tfoot &= attribute valign { "top" | "middle" | "bottom" }? +tbody = element tbody { attlist.tbody, row+ } +attlist.tbody &= attribute valign { "top" | "middle" | "bottom" }? +row = element row { attlist.row, entry* } +attlist.row &= + attribute rowsep { yesorno }?, + attribute valign { "top" | "middle" | "bottom" }? +entry = + element entry { + attlist.entry, (typo | appel | renv | renvlnk | br | p | \list)* + } +attlist.entry &= + attribute colname { text }?, + attribute namest { text }?, + attribute nameend { text }?, + attribute spanname { text }?, + attribute morerows { text }?, + attribute colsep { yesorno }?, + attribute rowsep { yesorno }?, + attribute align { "left" | "right" | "center" | "justify" | "char" }?, + attribute char { text }?, + attribute charoff { text }?, + attribute rotate { yesorno }?, + attribute valign { "top" | "middle" | "bottom" }? +start = livre