# **********************************************************************
# ****** 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 a 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 ******
# **********************************************************************
# ****** Transformation RelaxNG Prismallia ******
# **********************************************************************
start = livre
livre = element livre { livre.attributes, livre.content }
livre.attributes =
attribute compo { text }?
& attribute saisie { text }?
& attribute type { text }?
livre.content =
ident,
(appcrit | pre)*,
corps,
(appcrit | appen)*,
collec*
# =============================================================================
# Elements Entete (pages de titre)
# =============================================================================
# ~~~~~~ ident
ident = element ident { ident.content }
ident.content =
(ftit
| fstit
| info
| accro
| collec
| auteur
| illustrateur
| tit
| stit
| edit
| copy
| trad
| ean
| coned
| type
| ref
| isbn
| issn
| modulus
| fig
| tableau
| dedi
| exer)+
# ~~~~~~ Faux titre ouvrage
ftit = element ftit { (typo | br | appel | renv | renvlnk)* }
# ~~~~~~ Accroche ouvrage
accro = element accro { (typo | br | appel | renv | renvlnk)* }
# ~~~~~~ Sous titre ouvrage
fstit = element fstit { (typo | br | appel | renv | renvlnk)* }
# ~~~~~~ Auteur(s) de l'ouvrage ou de citation ou exergue
auteur = element auteur { (typo | appel)* }
# ~~~~~~ Illustrateur
illustrateur = element illustrateur { (typo | appel)* }
# ~~~~~~ Surtitre
surtit = element surtit {(typo | appel | br | renv | renvlnk)*}
# ~~~~~~ Titre de l'ouvrage
tit = element tit { (typo | appel | br | renv | renvlnk)* }
# ~~~~~~ Sous-titre de l'ouvrage
stit = element stit { (typo | appel | br | renv | renvlnk)* }
# ~~~~~~ Sous-sous-titre
sstit = element sstit { (typo | appel | br | renv | renvlnk)* }
# ~~~~~~ Type d'ouvrage dans page de titre
type = element type { (typo | br | appel)* }
# ~~~~~~ Texte page de titre
info = element info { (typo | br | appel)* }
# ~~~~~~ page de collection
collec = element collec {
(tit | stit | cint | cint2 | cint3 | auteur | p | pbib | fig)* }
# ~~~~~~ Intertitre dans page de collection
cint = element cint { (typo | br | appel)* }
cint2 = element cint2 { (typo | br | appel)* }
cint3 = element cint3 { (typo | br | appel)* }
# ~~~~~~ Traduction par
trad = element trad { (typo | br | appel)* }
# ~~~~~~ Editeur(s)
edit = element edit { (typo | appel)* }
# ~~~~~~ Copyright de l'ouvrage
copy = element copy { (typo | br | appel)* }
# ~~~~~~ References de l'ouvrage
ref = element ref { (typo | br | appel)* }
# ~~~~~~ ISBN, ISSN
isbn = element isbn { (typo | appel)* }
issn = element issn { (typo | appel)* }
# ~~~~~~ Modulus
modulus = element modulus { (typo | appel)* }
# ~~~~~~ EAN 13
ean = element ean { xsd:token {pattern = "\d{13}"} }
# ~~~~~~ Rang d'impression
coned = element coned { text }
# ~~~~~~ Dedicace
dedi = element dedi { (typo | br | appel)* }
# ~~~~~~ Exergue
exer = element exer { p+, (source | auteur)* }
# ~~~~~~ Source(s) citation, image, exergue
source = element source { (typo | appel | p | br)* }
# =============================================================================
# Elements preliminaire de l'ouvrage
# =============================================================================
# ~~~~~~ pre
pre = element pre { pre.attributes, pre.content }
pre.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
& attribute type { "intro" | "prologue" | "pref" | "remer" | "avpro" | "biblio"
| "bio" | "remarque" | "note" | "chrono" | "presentation" | "personnages"
| "sommaire" | "tdm" | "autre" }?
pre.content =
apfi?,
surtit?,
(((tit, apfi?),
((stit, apfi?), (sstit, apfi?)?)?)
| ((stit, apfi?), (sstit, apfi?)?))?,
exer*,
chapeau?,
dev,
(source | sign)*,
collec*,
defnotes?,
apfi?
# ~~~~ chapeau
chapeau = element chapeau { let?, p+ }
# =============================================================================
# Elements corps de l'ouvrage
# =============================================================================
# ~~~~~~ corps
corps = element corps { corps.content }
corps.content =
(vol+
| part+
| section+
| chap+
| dev)
# ~~~~~~ vol
vol = element vol { vol.attributes, vol.content }
vol.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
vol.content =
depart,
(appcrit | pre)*,
((dev, part*) | part+),
defnotes?,
(appcrit | appen)*
# ~~~~~~ part
part = element part { part.attributes, part.content }
part.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
part.content =
depart,
(appcrit | pre)*,
((dev, (section | chap)*)
| (section | chap)+),
defnotes?,
(appcrit | appen)*
# ~~~~~~ section
section = element section { section.attributes, section.content }
section.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
section.content =
depart,
(appcrit | pre)*,
((dev, chap*) | chap+),
defnotes?,
(appcrit | appen)*
# ~~~~~~ chap
chap = element chap { chap.attributes, chap.content }
chap.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
chap.content =
depart,
(appcrit | pre)*,
((chapeau?, dev, schap*) | schap+),
source?,
defnotes?,
(appcrit | appen)*
# ~~~~~~ schap
schap = element schap { schap.attributes, schap.content }
schap.attributes =
attribute id { xsd:ID }?
& attribute num { text }?
schap.content =
depart,
(appcrit | pre)*,
chapeau?,
dev,
defnotes?,
(appcrit | appen)*
# =============================================================================
# Elements Developpement
# =============================================================================
# ~~~~~~ dev
dev = element dev { dev.content }
dev.content =
(((let?, (p | pbib))
| bl
| sep
| dialogue
| theatre
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc
| sign)
| (niv1 | niv2 | niv3 | niv4 | niv5))+,
fin?,
source?
# =============================================================================
# Niveau d'intertitre et de Texte
# =============================================================================
# ~~~~~~ niv1
niv1 = element niv1 { niv1.content }
niv1.content =
(n?,
int?,
sint?,
exer*,
(((let?, p)
| pbib
| bl
| sep
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc)+
| (niv2 | niv3 | niv4 | niv5)*)+),
fin?
# ~~~~~~ niv2
niv2 = element niv2 { niv2.content }
niv2.content =
(n?,
int?,
sint?,
exer*,
(((let?, p)
| pbib
| bl
| sep
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc)+
| (niv3 | niv4 | niv5)*)+),
fin?
# ~~~~~~ niv3
niv3 = element niv3 { niv3.content }
niv3.content =
(n?,
int?,
sint?,
exer*,
(((let?, p)
| pbib
| bl
| sep
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc)+
| (niv4 | niv5)*)+),
fin?
# ~~~~~~ niv4
niv4 = element niv4 { niv4.content }
niv4.content =
(n?,
int?,
sint?,
exer*,
(((let?, p)
| pbib
| bl
| sep
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc)+
| niv5)*),
fin?
# ~~~~~~ niv5
niv5 = element niv5 { niv5.content }
niv5.content =
(n?,
int?,
sint?,
exer*,
((let?, p)
| pbib
| bl
| sep
| \list
| stroplg
| cita
| infratexte
| lettre
| fig
| tableau
| enc)+),
fin?
# ~~~~~~ Numero de partie, Chapitre, sous-chapitre ou section
n = element n { (typo | appel | br | renv | renvlnk)* }
# ~~~~~~ Intertitre
int = element int {(typo | br | appel | renv | renvlnk)* }
# ~~~~~~ Sous intertitre
sint = element sint { (typo | br | appel | renv | renvlnk)* }
# =============================================================================
# Texte avec Exposant, Indice petites caps, ou souligne
texte = text | sup | inf | pc | sl
# Texte avec mise en forme (ital, gras, romain)
typo = texte | i | b | r
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
# 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 paragraphe ******
p = element p { attlist.p, (typo | appel | renv | renvlnk)* }
attlist.p &=
attribute align {
"centre" | "justif" | "gauche" | "droite" | "ssalinea"
}?
# Element paragraphe
# 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 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 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...
# ****** 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******
# ****** 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
# ****** Elements Lettrine ******
let = element let { typo* }
# Lettrine
# ****** Encadre ******
enc =
element enc { attlist.enc, surtit?, tit?, stit?, exer*, dev, sign* }
attlist.enc &= empty
# Encadre
# mai 2009 : ajout surtitre optionnel ******
# ****** 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 note
# =============================================================================
# ~~~~~~ defnotes
defnotes = element defnotes { defnotes.content }
defnotes.content =
(ntb
| ntb2
| ntb3
| ntf
| ntm)+
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 {
((ntf | p)* | (nfniv1 | nfniv2 | nfniv3 | nfniv4 | nfniv5)*)+
}
# =============================================================================
# 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" }?