# **********************************************************************
# ****** 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