--- /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