RelaxNG/lg_nc_v3-2.rnc
changeset 36 d01d5f014c3f
child 38 c1685c404f53
--- /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