RelaxNG/lg_nc_v3-2.rnc
author Patrick PIERRE <patrick.pierre@prismallia.fr>
jeu., 15 nov. 2012 21:41:38 +0100
changeset 36 d01d5f014c3f
child 38 c1685c404f53
permissions -rw-r--r--
Ajout d'un document LG
patrick@36
     1
# **********************************************************************
patrick@36
     2
patrick@36
     3
# ******      DTD LITTERATURE GENERALE XML NC             V3.2    ******
patrick@36
     4
patrick@36
     5
# ******             (c) Nord Compo  (juin 1999)                  ******
patrick@36
     6
patrick@36
     7
# ******                realisee par : GD                         ******
patrick@36
     8
patrick@36
     9
# ******          mise a jour par : GD (juillet 2000)             ******
patrick@36
    10
patrick@36
    11
# ******       transformation en XML par : JMD (Aout 2000)        ******
patrick@36
    12
patrick@36
    13
# ******         mise a jour XML par : GD (janvier 2001)          ******
patrick@36
    14
patrick@36
    15
# ******             mise a jour de la version 2.1                ******
patrick@36
    16
patrick@36
    17
# ******               mise ‡ jour : GD (juin 2007)               ******
patrick@36
    18
patrick@36
    19
# ******               mise a jour : GD septembre 2007            ******
patrick@36
    20
patrick@36
    21
# ******               mise a jour : GD octobre 2007              ******
patrick@36
    22
patrick@36
    23
# ******               mise a jour : GD novembre 2007             ******
patrick@36
    24
patrick@36
    25
# ******               mise a jour : GD janvier 2008              ******
patrick@36
    26
patrick@36
    27
# ******               mise a jour : PT mai 2009                  ******
patrick@36
    28
patrick@36
    29
# ******               mise a jour : PT octobre 2009              ******
patrick@36
    30
patrick@36
    31
# **********************************************************************
patrick@36
    32
patrick@36
    33
# ******                    Entites externes                      ******
patrick@36
    34
patrick@36
    35
# ******                    Entites internes                      ******
patrick@36
    36
patrick@36
    37
texte = text | sup | inf | pc | sl
patrick@36
    38
# Texte avec Exposant, Indice petites caps, ou souligne
patrick@36
    39
typo = texte | i | b | r
patrick@36
    40
# Texte avec mise en forme  (ital, gras, romain)
patrick@36
    41
appel =
patrick@36
    42
  indx
patrick@36
    43
  | indx2
patrick@36
    44
  | indx3
patrick@36
    45
  | apnb
patrick@36
    46
  | apnb2
patrick@36
    47
  | apnb3
patrick@36
    48
  | apnf
patrick@36
    49
  | apnm
patrick@36
    50
  | apfi
patrick@36
    51
  | apta
patrick@36
    52
# Entite d'appels divers
patrick@36
    53
depart =
patrick@36
    54
  apfi?,
patrick@36
    55
  surtit?,
patrick@36
    56
  n?,
patrick@36
    57
  (((tit, apfi?),
patrick@36
    58
    ((stit, apfi?), (sstit, apfi?)?)?)
patrick@36
    59
   | ((stit, apfi?), (sstit, apfi?)?))?,
patrick@36
    60
  (accro | trad | auteur | illustrateur | exer)*
patrick@36
    61
# Entite Numero, titre et sous-titre
patrick@36
    62
patrick@36
    63
# Mai 2009 : ajout appels de figure optionnels
patrick@36
    64
patrick@36
    65
# Mai 2009 : ajout surtitre, illustrateur, sstit
patrick@36
    66
patrick@36
    67
# ******                       Elements Livre                     ******
patrick@36
    68
livre =
patrick@36
    69
  element livre {
patrick@36
    70
    attlist.livre,
patrick@36
    71
    ident,
patrick@36
    72
    (appcrit | pre)*,
patrick@36
    73
    corps,
patrick@36
    74
    (appcrit | appen)*,
patrick@36
    75
    collec*
patrick@36
    76
  }
patrick@36
    77
# Element Livre
patrick@36
    78
patrick@36
    79
# Octobre 2009 : ÈlÈment collec rÈpÈtable
patrick@36
    80
attlist.livre &=
patrick@36
    81
  attribute compo { text }?,
patrick@36
    82
  attribute saisie { text }?,
patrick@36
    83
  attribute type { text }?
patrick@36
    84
#     Nom du photocompositeur
patrick@36
    85
# lieu de la saisie
patrick@36
    86
# Type coll
patrick@36
    87
patrick@36
    88
# ******                      Elements typo                       ******
patrick@36
    89
b = element b { attlist.b, (texte | i | appel)* }
patrick@36
    90
attlist.b &= empty
patrick@36
    91
# Element Gras
patrick@36
    92
i = element i { attlist.i, (texte | b | appel)* }
patrick@36
    93
attlist.i &= empty
patrick@36
    94
# Element ital
patrick@36
    95
r = element r { attlist.r, (texte | appel)* }
patrick@36
    96
attlist.r &= empty
patrick@36
    97
# Element Romain
patrick@36
    98
sup = element sup { attlist.sup, (text | appel | i | b | r)* }
patrick@36
    99
attlist.sup &= empty
patrick@36
   100
# Element Exposant
patrick@36
   101
inf = element inf { attlist.inf, (text | appel | i | b | r)* }
patrick@36
   102
attlist.inf &= empty
patrick@36
   103
# Element Indice
patrick@36
   104
pc = element pc { attlist.pc, (text | appel | i | b | r)* }
patrick@36
   105
attlist.pc &= empty
patrick@36
   106
# Element petites capitales
patrick@36
   107
sl = element sl { attlist.sl, (text | appel | i | b | r)* }
patrick@36
   108
attlist.sl &= empty
patrick@36
   109
# Element souligne
patrick@36
   110
br = element br { attlist.br, empty }
patrick@36
   111
attlist.br &= empty
patrick@36
   112
# Retour a la ligne dans un element titre
patrick@36
   113
patrick@36
   114
# ******               Elements Entete (pages de titre)           ******
patrick@36
   115
ident =
patrick@36
   116
  element ident {
patrick@36
   117
    attlist.ident,
patrick@36
   118
    (ftit
patrick@36
   119
     | fstit
patrick@36
   120
     | info
patrick@36
   121
     | accro
patrick@36
   122
     | collec
patrick@36
   123
     | auteur
patrick@36
   124
     | illustrateur
patrick@36
   125
     | tit
patrick@36
   126
     | stit
patrick@36
   127
     | edit
patrick@36
   128
     | copy
patrick@36
   129
     | trad
patrick@36
   130
     | ean
patrick@36
   131
     | coned
patrick@36
   132
     | type
patrick@36
   133
     | ref
patrick@36
   134
     | isbn
patrick@36
   135
     | issn
patrick@36
   136
     | modulus
patrick@36
   137
     | fig
patrick@36
   138
     | tableau
patrick@36
   139
     | dedi
patrick@36
   140
     | exer)+
patrick@36
   141
  }
patrick@36
   142
attlist.ident &= empty
patrick@36
   143
# Element Entete ou pages de titre
patrick@36
   144
patrick@36
   145
# Mai 2009 : ajout illustrateur
patrick@36
   146
ftit =
patrick@36
   147
  element ftit { attlist.ftit, (typo | br | appel | renv | renvlnk)* }
patrick@36
   148
attlist.ftit &= empty
patrick@36
   149
# FAUX TITRE ouvrage
patrick@36
   150
accro =
patrick@36
   151
  element accro { attlist.accro, (typo | br | appel | renv | renvlnk)* }
patrick@36
   152
attlist.accro &= empty
patrick@36
   153
# Accroche ouvrage
patrick@36
   154
fstit =
patrick@36
   155
  element fstit { attlist.fstit, (typo | br | appel | renv | renvlnk)* }
patrick@36
   156
attlist.fstit &= empty
patrick@36
   157
# SOUS TITRE ouvrage
patrick@36
   158
auteur = element auteur { attlist.auteur, (typo | appel)* }
patrick@36
   159
attlist.auteur &= empty
patrick@36
   160
# Auteur(s) de l'ouvrage ou de citation ou exergue
patrick@36
   161
illustrateur =
patrick@36
   162
  element illustrateur { attlist.illustrateur, (typo | appel)* }
patrick@36
   163
attlist.illustrateur &= empty
patrick@36
   164
# Mai 2009 : ajout element illustrateur
patrick@36
   165
surtit =
patrick@36
   166
  element surtit {
patrick@36
   167
    attlist.surtit, (typo | appel | br | renv | renvlnk)*
patrick@36
   168
  }
patrick@36
   169
attlist.surtit &= empty
patrick@36
   170
# Mai 2009 : ajout element surtitre
patrick@36
   171
tit = element tit { attlist.tit, (typo | appel | br | renv | renvlnk)* }
patrick@36
   172
attlist.tit &= empty
patrick@36
   173
# Titre de l'ouvrage
patrick@36
   174
stit =
patrick@36
   175
  element stit { attlist.stit, (typo | appel | br | renv | renvlnk)* }
patrick@36
   176
attlist.stit &= empty
patrick@36
   177
# Sous-titre de l'ouvrage
patrick@36
   178
sstit =
patrick@36
   179
  element sstit { attlist.sstit, (typo | appel | br | renv | renvlnk)* }
patrick@36
   180
attlist.sstit &= empty
patrick@36
   181
# Mai 2009 : ajout Sous-sous-titre
patrick@36
   182
type = element type { attlist.type, (typo | br | appel)* }
patrick@36
   183
attlist.type &= empty
patrick@36
   184
# Type d'ouvrage dans page de titre
patrick@36
   185
info = element info { attlist.info, (typo | br | appel)* }
patrick@36
   186
attlist.info &= empty
patrick@36
   187
# Texte page de titre
patrick@36
   188
collec =
patrick@36
   189
  element collec {
patrick@36
   190
    attlist.collec,
patrick@36
   191
    (tit | stit | cint | cint2 | cint3 | auteur | p | pbib | fig)*
patrick@36
   192
  }
patrick@36
   193
attlist.collec &= empty
patrick@36
   194
# page de collection
patrick@36
   195
patrick@36
   196
# Octobre 2009 : ajout ÈlÈment fig
patrick@36
   197
cint = element cint { attlist.cint, (typo | br | appel)* }
patrick@36
   198
attlist.cint &= empty
patrick@36
   199
# intertitre dans page de collection
patrick@36
   200
cint2 = element cint2 { attlist.cint2, (typo | br | appel)* }
patrick@36
   201
attlist.cint2 &= empty
patrick@36
   202
# intertitre dans page de collection
patrick@36
   203
cint3 = element cint3 { attlist.cint3, (typo | br | appel)* }
patrick@36
   204
attlist.cint3 &= empty
patrick@36
   205
# intertitre dans page de collection
patrick@36
   206
trad = element trad { attlist.trad, (typo | br | appel)* }
patrick@36
   207
attlist.trad &= empty
patrick@36
   208
# traduction par
patrick@36
   209
edit = element edit { attlist.edit, (typo | appel)* }
patrick@36
   210
attlist.edit &= empty
patrick@36
   211
# Editeur(s)
patrick@36
   212
copy = element copy { attlist.copy, (typo | br | appel)* }
patrick@36
   213
attlist.copy &= empty
patrick@36
   214
# Copyright de l'ouvrage
patrick@36
   215
ref = element ref { attlist.ref, (typo | br | appel)* }
patrick@36
   216
attlist.ref &= empty
patrick@36
   217
# References de l'ouvrage
patrick@36
   218
isbn = element isbn { attlist.isbn, (typo | appel)* }
patrick@36
   219
attlist.isbn &= empty
patrick@36
   220
# isbn
patrick@36
   221
issn = element issn { attlist.issn, (typo | appel)* }
patrick@36
   222
attlist.issn &= empty
patrick@36
   223
# issn
patrick@36
   224
modulus = element modulus { attlist.modulus, (typo | appel)* }
patrick@36
   225
attlist.modulus &= empty
patrick@36
   226
# modulus
patrick@36
   227
ean = element ean { attlist.ean, text }
patrick@36
   228
attlist.ean &= empty
patrick@36
   229
# EAN 13
patrick@36
   230
coned = element coned { attlist.coned, text }
patrick@36
   231
attlist.coned &= empty
patrick@36
   232
# Rang d'impression
patrick@36
   233
dedi = element dedi { attlist.dedi, (typo | br | appel)* }
patrick@36
   234
attlist.dedi &= empty
patrick@36
   235
# Dedicace
patrick@36
   236
exer = element exer { attlist.exer, p+, (source | auteur)* }
patrick@36
   237
attlist.exer &= empty
patrick@36
   238
# Exergue
patrick@36
   239
source = element source { attlist.source, (typo | appel | p | br)* }
patrick@36
   240
attlist.source &= empty
patrick@36
   241
# Source(s) citation, image, exergue
patrick@36
   242
patrick@36
   243
# ******                    Elements paragraphe                    ******
patrick@36
   244
p = element p { attlist.p, (typo | appel | renv | renvlnk)* }
patrick@36
   245
attlist.p &=
patrick@36
   246
  attribute align {
patrick@36
   247
    "centre" | "justif" | "gauche" | "droite" | "ssalinea"
patrick@36
   248
  }?
patrick@36
   249
# Element paragraphe
patrick@36
   250
patrick@36
   251
# ******             Elements paragraphe bibliographique           ******
patrick@36
   252
pbib =
patrick@36
   253
  element pbib {
patrick@36
   254
    attlist.pbib,
patrick@36
   255
    (typo
patrick@36
   256
     | appel
patrick@36
   257
     | autbib
patrick@36
   258
     | titbib
patrick@36
   259
     | editbib
patrick@36
   260
     | datebib
patrick@36
   261
     | renv
patrick@36
   262
     | renvlnk)*
patrick@36
   263
  }
patrick@36
   264
attlist.pbib &= empty
patrick@36
   265
# Element paragraphe bibliographique (auteur, titre, editeur, date)
patrick@36
   266
autbib = element autbib { attlist.autbib, (typo | appel)* }
patrick@36
   267
attlist.autbib &= empty
patrick@36
   268
# auteur
patrick@36
   269
titbib = element titbib { attlist.titbib, (typo | appel)* }
patrick@36
   270
attlist.titbib &= empty
patrick@36
   271
# titre ouvrage
patrick@36
   272
editbib = element editbib { attlist.editbib, (typo | appel)* }
patrick@36
   273
attlist.editbib &= empty
patrick@36
   274
# editeur
patrick@36
   275
datebib = element datebib { attlist.datebib, (typo | appel)* }
patrick@36
   276
attlist.datebib &= empty
patrick@36
   277
# date de parution
patrick@36
   278
patrick@36
   279
# ******             Elements renvois pour reference croisee       ******
patrick@36
   280
renv = element renv { attlist.renv, typo* }
patrick@36
   281
# Renvoi point d'appel
patrick@36
   282
attlist.renv &= attribute id { xsd:IDREF }
patrick@36
   283
# Lien appel de reference croisee
patrick@36
   284
renvlnk = element renvlnk { attlist.renvlnk, typo* }
patrick@36
   285
# Renvoi point d'arrivee
patrick@36
   286
attlist.renvlnk &= attribute id { xsd:ID }
patrick@36
   287
# Lien de reference croisee
patrick@36
   288
patrick@36
   289
# ******               Elements d'appels de figures et notes      ******
patrick@36
   290
apnb = element apnb { attlist.apnb, empty }
patrick@36
   291
attlist.apnb &= attribute id { xsd:IDREF }
patrick@36
   292
# Lien appel de note de bas de page niv 1
patrick@36
   293
apnb2 = element apnb2 { attlist.apnb2, empty }
patrick@36
   294
attlist.apnb2 &= attribute id { xsd:IDREF }
patrick@36
   295
# Lien appel de note de bas de page niv 2
patrick@36
   296
apnb3 = element apnb3 { attlist.apnb3, empty }
patrick@36
   297
attlist.apnb3 &= attribute id { xsd:IDREF }
patrick@36
   298
# Lien appel de note de bas de page niv 3
patrick@36
   299
apnf = element apnf { attlist.apnf, empty }
patrick@36
   300
attlist.apnf &= attribute id { xsd:IDREF }
patrick@36
   301
# Lien appel de note de fin d'ouvrage
patrick@36
   302
apnm = element apnm { attlist.apnm, empty }
patrick@36
   303
attlist.apnm &= attribute id { xsd:IDREF }
patrick@36
   304
# Lien appel de note de marge
patrick@36
   305
apfi = element apfi { attlist.apfi, empty }
patrick@36
   306
attlist.apfi &=
patrick@36
   307
  attribute id { xsd:IDREF },
patrick@36
   308
  attribute place {
patrick@36
   309
    "haut" | "bas" | "intexte" | "pagesui" | "pagepre"
patrick@36
   310
  }?,
patrick@36
   311
  attribute align {
patrick@36
   312
    "centre" | "gauche" | "droite" | "retrait" | "inline"
patrick@36
   313
  }?
patrick@36
   314
# Lien appel de figure
patrick@36
   315
patrick@36
   316
# Emplacement de l'illustration : haut de page, bas de page, ‡ la hauteur du texte, page suivante, page precedente
patrick@36
   317
patrick@36
   318
# Mai 2009 : ajout align : centre | gauche | droite | retrait | inline=dans le texte
patrick@36
   319
apta = element apta { attlist.apta, empty }
patrick@36
   320
attlist.apta &= attribute id { xsd:IDREF }
patrick@36
   321
# Lien appel de tableaux
patrick@36
   322
patrick@36
   323
# ******                   Elements d'indexation                   ******
patrick@36
   324
patrick@36
   325
# Rem : Le separateur de niveau d'index est le ;
patrick@36
   326
indx = element indx { attlist.indx, (typo | appel)* }
patrick@36
   327
# Indexation
patrick@36
   328
attlist.indx &= attribute LIBEL { text }?
patrick@36
   329
# Libelle dans l'index
patrick@36
   330
indx2 = element indx2 { attlist.indx2, (typo | appel)* }
patrick@36
   331
# Indexation
patrick@36
   332
attlist.indx2 &= attribute LIBEL { text }?
patrick@36
   333
# Libelle dans l'index
patrick@36
   334
indx3 = element indx3 { attlist.indx3, (typo | appel)* }
patrick@36
   335
# Indexation
patrick@36
   336
attlist.indx3 &= attribute LIBEL { text }?
patrick@36
   337
# Libelle dans l'index
patrick@36
   338
patrick@36
   339
# ******                   Elements corps de l'ouvrage             ******
patrick@36
   340
corps =
patrick@36
   341
  element corps {
patrick@36
   342
    attlist.corps, (vol+ | part+ | section+ | chap+ | dev)
patrick@36
   343
  }
patrick@36
   344
attlist.corps &= empty
patrick@36
   345
# Corps de l'ouvrage
patrick@36
   346
patrick@36
   347
# ******                 Elements preliminaire de l'ouvrage        ******
patrick@36
   348
pre =
patrick@36
   349
  element pre {
patrick@36
   350
    attlist.pre,
patrick@36
   351
    apfi?,
patrick@36
   352
    surtit?,
patrick@36
   353
    (((tit, apfi?),
patrick@36
   354
      ((stit, apfi?), (sstit, apfi?)?)?)
patrick@36
   355
     | ((stit, apfi?), (sstit, apfi?)?))?,
patrick@36
   356
    exer*,
patrick@36
   357
    chapeau?,
patrick@36
   358
    dev,
patrick@36
   359
    (source | sign)*,
patrick@36
   360
    collec*,
patrick@36
   361
    defnotes?,
patrick@36
   362
    apfi?
patrick@36
   363
  }
patrick@36
   364
# preliminaire : Intro, preface, Avertissement etc...
patrick@36
   365
attlist.pre &=
patrick@36
   366
  attribute id { xsd:ID }?,
patrick@36
   367
  attribute num { text }?,
patrick@36
   368
  attribute type {
patrick@36
   369
    "intro"
patrick@36
   370
    | "prologue"
patrick@36
   371
    | "pref"
patrick@36
   372
    | "remer"
patrick@36
   373
    | "avpro"
patrick@36
   374
    | "biblio"
patrick@36
   375
    | "bio"
patrick@36
   376
    | "remarque"
patrick@36
   377
    | "note"
patrick@36
   378
    | "chrono"
patrick@36
   379
    | "presentation"
patrick@36
   380
    | "personnages"
patrick@36
   381
    | "sommaire"
patrick@36
   382
    | "tdm"
patrick@36
   383
    | "autre"
patrick@36
   384
  }?
patrick@36
   385
# Type de preliminaire : introduction, prologue, preface, remerciements, avant propos , bibliographie, remarque, note, chronologie, presentation et autre
patrick@36
   386
patrick@36
   387
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   388
patrick@36
   389
# Mai 2009 : ajout type bio, personnages, sommaire, tdm
patrick@36
   390
patrick@36
   391
# Mai 2009 : ajout appels de figure optionnels en dÈbut et en fin de prÈliminaire
patrick@36
   392
patrick@36
   393
# Mai 2009 : ajout surtitre optionnel
patrick@36
   394
patrick@36
   395
# Mai 2009 : ajout sous-soustitre optionnel
patrick@36
   396
patrick@36
   397
# mai 2009 : ajout ÈlÈment chapeau ******
patrick@36
   398
patrick@36
   399
# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ******
patrick@36
   400
patrick@36
   401
# mai 2009 : ajout source optionnel ******
patrick@36
   402
patrick@36
   403
# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio******
patrick@36
   404
sign = element sign { attlist.sign, (typo | appel | br)* }
patrick@36
   405
attlist.sign &= empty
patrick@36
   406
# Signature de la preface ou de l'intro, etc...**
patrick@36
   407
patrick@36
   408
# ******               Elements volume de l'ouvrage                ******
patrick@36
   409
vol =
patrick@36
   410
  element vol {
patrick@36
   411
    attlist.vol,
patrick@36
   412
    depart,
patrick@36
   413
    (appcrit | pre)*,
patrick@36
   414
    ((dev, part*) | part+),
patrick@36
   415
    defnotes?,
patrick@36
   416
    (appcrit | appen)*
patrick@36
   417
  }
patrick@36
   418
attlist.vol &=
patrick@36
   419
  attribute id { xsd:ID }?,
patrick@36
   420
  attribute num { text }?
patrick@36
   421
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   422
patrick@36
   423
# ******               Elements partie de l'ouvrage                ******
patrick@36
   424
part =
patrick@36
   425
  element part {
patrick@36
   426
    attlist.part,
patrick@36
   427
    depart,
patrick@36
   428
    (appcrit | pre)*,
patrick@36
   429
    ((dev, (section | chap)*)
patrick@36
   430
     | (section | chap)+),
patrick@36
   431
    defnotes?,
patrick@36
   432
    (appcrit | appen)*
patrick@36
   433
  }
patrick@36
   434
attlist.part &=
patrick@36
   435
  attribute id { xsd:ID }?,
patrick@36
   436
  attribute num { text }?
patrick@36
   437
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   438
patrick@36
   439
# ******               Elements partie de l'ouvrage                ******
patrick@36
   440
section =
patrick@36
   441
  element section {
patrick@36
   442
    attlist.section,
patrick@36
   443
    depart,
patrick@36
   444
    (appcrit | pre)*,
patrick@36
   445
    ((dev, chap*) | chap+),
patrick@36
   446
    defnotes?,
patrick@36
   447
    (appcrit | appen)*
patrick@36
   448
  }
patrick@36
   449
attlist.section &=
patrick@36
   450
  attribute id { xsd:ID }?,
patrick@36
   451
  attribute num { text }?
patrick@36
   452
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   453
n = element n { attlist.n, (typo | appel | br | renv | renvlnk)* }
patrick@36
   454
attlist.n &= empty
patrick@36
   455
# Numero de partie, Chapitre, sous-chapitre ou section
patrick@36
   456
patrick@36
   457
# ******              Elements Chapitre de l'ouvrage               ******
patrick@36
   458
chap =
patrick@36
   459
  element chap {
patrick@36
   460
    attlist.chap,
patrick@36
   461
    depart,
patrick@36
   462
    (appcrit | pre)*,
patrick@36
   463
    ((chapeau?, dev, schap*) | schap+),
patrick@36
   464
    source?,
patrick@36
   465
    defnotes?,
patrick@36
   466
    (appcrit | appen)*
patrick@36
   467
  }
patrick@36
   468
attlist.chap &=
patrick@36
   469
  attribute id { xsd:ID }?,
patrick@36
   470
  attribute num { text }?
patrick@36
   471
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   472
patrick@36
   473
# Chapitre
patrick@36
   474
patrick@36
   475
# mai 2009 : ajout ÈlÈment chapeau ******
patrick@36
   476
patrick@36
   477
# mai 2009 : ajout ÈlÈment source ******
patrick@36
   478
patrick@36
   479
# ******               Elements Sous-chapitre                      ******
patrick@36
   480
schap =
patrick@36
   481
  element schap {
patrick@36
   482
    attlist.schap,
patrick@36
   483
    depart,
patrick@36
   484
    (appcrit | pre)*,
patrick@36
   485
    chapeau?,
patrick@36
   486
    dev,
patrick@36
   487
    defnotes?,
patrick@36
   488
    (appcrit | appen)*
patrick@36
   489
  }
patrick@36
   490
attlist.schap &=
patrick@36
   491
  attribute id { xsd:ID }?,
patrick@36
   492
  attribute num { text }?
patrick@36
   493
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   494
patrick@36
   495
# Sous-chapitre
patrick@36
   496
patrick@36
   497
# mai 2009 : ajout ÈlÈment chapeau ******
patrick@36
   498
patrick@36
   499
# ******             Elements postliminaire de l'ouvrage           ******
patrick@36
   500
appen =
patrick@36
   501
  element appen {
patrick@36
   502
    attlist.appen,
patrick@36
   503
    (apfi?,
patrick@36
   504
     surtit?,
patrick@36
   505
     (((tit, apfi?),
patrick@36
   506
       ((stit, apfi?), (sstit, apfi?)?)?)
patrick@36
   507
      | ((stit, apfi?), (sstit, apfi?)?))?,
patrick@36
   508
     exer*,
patrick@36
   509
     ((((chapeau?, dev) | notefin),
patrick@36
   510
       sect*)
patrick@36
   511
      | sect+),
patrick@36
   512
     (source | sign)*,
patrick@36
   513
     defnotes?),
patrick@36
   514
    collec*,
patrick@36
   515
    apfi?
patrick@36
   516
  }
patrick@36
   517
attlist.appen &=
patrick@36
   518
  attribute id { xsd:ID }?,
patrick@36
   519
  attribute num { text }?,
patrick@36
   520
  attribute type {
patrick@36
   521
    "postface"
patrick@36
   522
    | "conclusion"
patrick@36
   523
    | "remer"
patrick@36
   524
    | "biblio"
patrick@36
   525
    | "bio"
patrick@36
   526
    | "chrono"
patrick@36
   527
    | "remarque"
patrick@36
   528
    | "annexe"
patrick@36
   529
    | "notes"
patrick@36
   530
    | "glossaire"
patrick@36
   531
    | "lexique"
patrick@36
   532
    | "historique"
patrick@36
   533
    | "genealogie"
patrick@36
   534
    | "epilogue"
patrick@36
   535
    | "tdm"
patrick@36
   536
    | "horstexte"
patrick@36
   537
    | "personnages"
patrick@36
   538
    | "autre"
patrick@36
   539
  }?
patrick@36
   540
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   541
patrick@36
   542
# Appendice : conclusion, postface, annexes etc...
patrick@36
   543
patrick@36
   544
# mai 2009 : ajout types glossaire, lexique, historique, genealogie, Èpilogue, tdm, horstexte ******
patrick@36
   545
patrick@36
   546
# mai 2009 : ajout appels de figure optionnels en dÈbut et en fin appendice ******
patrick@36
   547
patrick@36
   548
# mai 2009 : ajout exergue optionnel en dÈbut d' appendice ******
patrick@36
   549
patrick@36
   550
# mai 2009 : ajout surtitre optionnel ******
patrick@36
   551
patrick@36
   552
# Mai 2009 : ajout sous-soustitre optionnel
patrick@36
   553
patrick@36
   554
# mai 2009 : ajout ÈlÈment chapeau******
patrick@36
   555
patrick@36
   556
# mai 2009 : ajout ÈlÈment source******
patrick@36
   557
patrick@36
   558
# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ******
patrick@36
   559
patrick@36
   560
# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio******
patrick@36
   561
patrick@36
   562
# dÈcembre 2009 : ajout valeur attribut personnages ******
patrick@36
   563
patrick@36
   564
# ******             Appareil critique           ******
patrick@36
   565
appcrit =
patrick@36
   566
  element appcrit {
patrick@36
   567
    attlist.appcrit,
patrick@36
   568
    surtit?,
patrick@36
   569
    (((tit, apfi?),
patrick@36
   570
      ((stit, apfi?), (sstit, apfi?)?)?)
patrick@36
   571
     | ((stit, apfi?), (sstit, apfi?)?))?,
patrick@36
   572
    ((((chapeau?, dev) | notefin),
patrick@36
   573
      sect*)
patrick@36
   574
     | sect+),
patrick@36
   575
    (source | sign)*,
patrick@36
   576
    collec*,
patrick@36
   577
    defnotes?
patrick@36
   578
  }
patrick@36
   579
attlist.appcrit &=
patrick@36
   580
  attribute id { xsd:ID }?,
patrick@36
   581
  attribute num { text }?,
patrick@36
   582
  attribute type {
patrick@36
   583
    "intro"
patrick@36
   584
    | "prologue"
patrick@36
   585
    | "pref"
patrick@36
   586
    | "remer"
patrick@36
   587
    | "avpro"
patrick@36
   588
    | "biblio"
patrick@36
   589
    | "remarque"
patrick@36
   590
    | "note"
patrick@36
   591
    | "chrono"
patrick@36
   592
    | "presentation"
patrick@36
   593
    | "personnages"
patrick@36
   594
    | "sommaire"
patrick@36
   595
    | "tdm"
patrick@36
   596
    | "postface"
patrick@36
   597
    | "conclusion"
patrick@36
   598
    | "bio"
patrick@36
   599
    | "annexe"
patrick@36
   600
    | "glossaire"
patrick@36
   601
    | "lexique"
patrick@36
   602
    | "historique"
patrick@36
   603
    | "genealogie"
patrick@36
   604
    | "epilogue"
patrick@36
   605
    | "horstexte"
patrick@36
   606
    | "autre"
patrick@36
   607
  }?
patrick@36
   608
# mai 2009 : Definition des types d' appareils critiques : tous ceux de pre et d'appen
patrick@36
   609
patrick@36
   610
# mai 2009 : ajout surtitre optionnel ******
patrick@36
   611
patrick@36
   612
# Mai 2009 : ajout sous-soustitre optionnel
patrick@36
   613
patrick@36
   614
# mai 2009 : ajout ÈlÈment chapeau******
patrick@36
   615
patrick@36
   616
# mai 2009 : ajout ÈlÈment source******
patrick@36
   617
patrick@36
   618
# mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ******
patrick@36
   619
patrick@36
   620
# dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio******
patrick@36
   621
patrick@36
   622
# ******                 Elements Section                          ******
patrick@36
   623
sect =
patrick@36
   624
  element sect {
patrick@36
   625
    attlist.sect,
patrick@36
   626
    depart,
patrick@36
   627
    ((chapeau?, dev) | notefin),
patrick@36
   628
    sign*,
patrick@36
   629
    defnotes?
patrick@36
   630
  }
patrick@36
   631
attlist.sect &=
patrick@36
   632
  attribute id { xsd:ID }?,
patrick@36
   633
  attribute num { text }?,
patrick@36
   634
  attribute type {
patrick@36
   635
    "postface"
patrick@36
   636
    | "conclusion"
patrick@36
   637
    | "remer"
patrick@36
   638
    | "biblio"
patrick@36
   639
    | "bio"
patrick@36
   640
    | "chrono"
patrick@36
   641
    | "remarque"
patrick@36
   642
    | "annexe"
patrick@36
   643
    | "notes"
patrick@36
   644
    | "autre"
patrick@36
   645
  }?
patrick@36
   646
# Indentifiant et numero permettant de referencer les titres pour une gestion electronique
patrick@36
   647
patrick@36
   648
# Section
patrick@36
   649
patrick@36
   650
# mai 2009 : ajout ÈlÈment chapeau******
patrick@36
   651
patrick@36
   652
# ******                Elements Developpement                     ******
patrick@36
   653
dev =
patrick@36
   654
  element dev {
patrick@36
   655
    attlist.dev,
patrick@36
   656
    (((let?, (p | pbib))
patrick@36
   657
      | bl
patrick@36
   658
      | sep
patrick@36
   659
      | dialogue
patrick@36
   660
      | theatre
patrick@36
   661
      | \list
patrick@36
   662
      | stroplg
patrick@36
   663
      | cita
patrick@36
   664
      | infratexte
patrick@36
   665
      | lettre
patrick@36
   666
      | fig
patrick@36
   667
      | tableau
patrick@36
   668
      | enc
patrick@36
   669
      | sign)
patrick@36
   670
     | (niv1 | niv2 | niv3 | niv4 | niv5))+,
patrick@36
   671
    fin?,
patrick@36
   672
    source?
patrick@36
   673
  }
patrick@36
   674
attlist.dev &= empty
patrick@36
   675
# mai 2009 : ajout source ******
patrick@36
   676
patrick@36
   677
# Developpement des chapitres, parties ou sections...
patrick@36
   678
chapeau = element chapeau { attlist.chapeau, let?, p+ }
patrick@36
   679
attlist.chapeau &= empty
patrick@36
   680
# mai 2009 : ajout ÈlÈment chapeau pour preliminaire, appendice, chapitre, sous chapitre, sect ******
patrick@36
   681
patrick@36
   682
# ******                Elements Theatre                         ******
patrick@36
   683
theatre = element theatre { attlist.theatre, distrib*, acte+ }
patrick@36
   684
attlist.theatre &= empty
patrick@36
   685
# Module d'enrichissement pour ouvrage de theatre...
patrick@36
   686
distrib = element distrib { attlist.distrib, tit, role+, expos* }
patrick@36
   687
attlist.distrib &= empty
patrick@36
   688
# liste des personnage de la piece...
patrick@36
   689
role = element role { attlist.role, (pers | acteur)* }
patrick@36
   690
attlist.role &= empty
patrick@36
   691
# role du personnage
patrick@36
   692
expos =
patrick@36
   693
  element expos { attlist.expos, (typo | appel | renv | renvlnk)* }
patrick@36
   694
attlist.expos &= empty
patrick@36
   695
# exposition (ou se deroule la piece)
patrick@36
   696
acte =
patrick@36
   697
  element acte {
patrick@36
   698
    attlist.acte, n?, tit?, stit?, (pers | didasc)*, scene+
patrick@36
   699
  }
patrick@36
   700
attlist.acte &= empty
patrick@36
   701
# acte
patrick@36
   702
pers =
patrick@36
   703
  element pers {
patrick@36
   704
    attlist.pers, (typo | appel | renv | renvlnk | didasc)*
patrick@36
   705
  }
patrick@36
   706
attlist.pers &= empty
patrick@36
   707
# personnage(s)
patrick@36
   708
acteur =
patrick@36
   709
  element acteur {
patrick@36
   710
    attlist.acteur, (typo | appel | renv | renvlnk | didasc)*
patrick@36
   711
  }
patrick@36
   712
attlist.acteur &= empty
patrick@36
   713
# acteur(s)
patrick@36
   714
didasc =
patrick@36
   715
  element didasc { attlist.didasc, (typo | appel | renv | renvlnk)* }
patrick@36
   716
attlist.didasc &= empty
patrick@36
   717
# didascalie
patrick@36
   718
scene =
patrick@36
   719
  element scene {
patrick@36
   720
    attlist.scene, n?, tit?, stit?, (pers | didasc)*, replique+
patrick@36
   721
  }
patrick@36
   722
attlist.scene &= empty
patrick@36
   723
# scene
patrick@36
   724
replique =
patrick@36
   725
  element replique {
patrick@36
   726
    attlist.replique,
patrick@36
   727
    (pers+, (p | vers | didasc)*)+
patrick@36
   728
  }
patrick@36
   729
attlist.replique &= empty
patrick@36
   730
# replique
patrick@36
   731
vers = element vers { attlist.vers, (typo | appel | renv | renvlnk)* }
patrick@36
   732
attlist.vers &=
patrick@36
   733
  attribute align {
patrick@36
   734
    "centre" | "justif" | "gauche" | "droite" | "stichomythie"
patrick@36
   735
  }?,
patrick@36
   736
  attribute num { text }?
patrick@36
   737
# Attribut du vers (stichomytie pour les vers qui se suivent
patrick@36
   738
patrick@36
   739
# vers
patrick@36
   740
bl = element bl { attlist.bl, empty }
patrick@36
   741
# Ligne de blanc
patrick@36
   742
attlist.bl &= attribute v { text }
patrick@36
   743
# Valeur de blanc
patrick@36
   744
sep = element sep { attlist.sep, empty }
patrick@36
   745
# Separateur
patrick@36
   746
attlist.sep &=
patrick@36
   747
  attribute type {
patrick@36
   748
    "filet" | "frise" | "etoiles" | "etoile" | "logo" | "autre"
patrick@36
   749
  },
patrick@36
   750
  attribute src { text }?
patrick@36
   751
# type de separateur
patrick@36
   752
patrick@36
   753
# Mai 2009 : ajout scr : nom de l'image pour logo, cul de lampe...
patrick@36
   754
patrick@36
   755
# ******				Element liste		 		******
patrick@36
   756
\list = element list { attlist.list, item+ }
patrick@36
   757
attlist.list &=
patrick@36
   758
  attribute type {
patrick@36
   759
    "puce"
patrick@36
   760
    | "tiret"
patrick@36
   761
    | "num"
patrick@36
   762
    | "alpha"
patrick@36
   763
    | "none"
patrick@36
   764
    | "imagelist1"
patrick@36
   765
    | "imagelist2"
patrick@36
   766
    | "imagelist3"
patrick@36
   767
    | "autre"
patrick@36
   768
  }?
patrick@36
   769
# Liste, Enumeration
patrick@36
   770
patrick@36
   771
# mai 2009 : ajout valeur type imagelist1 imagelist2 imagelist3 pour utiliser une image comme symbole optionnel ******
patrick@36
   772
patrick@36
   773
# Item liste
patrick@36
   774
item = element item { attlist.item, (n?, p+), \list* }
patrick@36
   775
attlist.item &= empty
patrick@36
   776
# ******		Strophe et vers dans la LG... 		******
patrick@36
   777
stroplg = element stroplg { attlist.stroplg, tit?, (verslg | bl)+ }
patrick@36
   778
# Strophe
patrick@36
   779
attlist.stroplg &= attribute type { text }?
patrick@36
   780
# Type de vers : centre, retrait, ligne
patrick@36
   781
patrick@36
   782
# Vers
patrick@36
   783
verslg = element verslg { attlist.verslg, (typo | appel)* }
patrick@36
   784
attlist.verslg &=
patrick@36
   785
  attribute type { text }?,
patrick@36
   786
  attribute num { text }?
patrick@36
   787
# Dialogue
patrick@36
   788
dialogue =
patrick@36
   789
  element dialogue {
patrick@36
   790
    attlist.dialogue,
patrick@36
   791
    (interloc,
patrick@36
   792
     (p | stroplg | bl | sep | \list | cita | fig | tableau | enc)+)+,
patrick@36
   793
    fin?
patrick@36
   794
  }
patrick@36
   795
attlist.dialogue &= empty
patrick@36
   796
interloc =
patrick@36
   797
  element interloc {
patrick@36
   798
    attlist.interloc, (typo | appel | renv | renvlnk)*
patrick@36
   799
  }
patrick@36
   800
attlist.interloc &= empty
patrick@36
   801
cita =
patrick@36
   802
  element cita {
patrick@36
   803
    attlist.cita,
patrick@36
   804
    (date | lieu | entete)*,
patrick@36
   805
    (p | stroplg | bl)+,
patrick@36
   806
    (source | auteur | polit)*,
patrick@36
   807
    fin?
patrick@36
   808
  }
patrick@36
   809
attlist.cita &= attribute type { "citation" | "lettre" }?
patrick@36
   810
lettre =
patrick@36
   811
  element lettre {
patrick@36
   812
    attlist.lettre,
patrick@36
   813
    (date | lieu | entete)*,
patrick@36
   814
    (p | stroplg | bl)+,
patrick@36
   815
    (source | auteur | polit)*
patrick@36
   816
  }
patrick@36
   817
attlist.lettre &= empty
patrick@36
   818
infratexte =
patrick@36
   819
  element infratexte {
patrick@36
   820
    attlist.infratexte, tit?, (p | cita | stroplg | bl | sep)+, fin?
patrick@36
   821
  }
patrick@36
   822
attlist.infratexte &= empty
patrick@36
   823
fin = element fin { attlist.fin, (typo | appel | renv | renvlnk | br)* }
patrick@36
   824
attlist.fin &= empty
patrick@36
   825
# matÈrialise un texte de fin de niveau
patrick@36
   826
date =
patrick@36
   827
  element date { attlist.date, (typo | appel | renv | renvlnk | br)* }
patrick@36
   828
attlist.date &= empty
patrick@36
   829
# date pour une correspondance
patrick@36
   830
lieu =
patrick@36
   831
  element lieu { attlist.lieu, (typo | appel | renv | renvlnk | br)* }
patrick@36
   832
attlist.lieu &= empty
patrick@36
   833
# lieu pour une correspondance
patrick@36
   834
entete =
patrick@36
   835
  element entete {
patrick@36
   836
    attlist.entete, (typo | appel | renv | renvlnk | br)*
patrick@36
   837
  }
patrick@36
   838
attlist.entete &= empty
patrick@36
   839
# entete pour une correspondance
patrick@36
   840
polit =
patrick@36
   841
  element polit { attlist.polit, (typo | appel | renv | renvlnk | br)* }
patrick@36
   842
attlist.polit &= empty
patrick@36
   843
# politesse pour une correspondance
patrick@36
   844
patrick@36
   845
# ******		 Niveau d'intertitre et de Texte		 ******
patrick@36
   846
niv1 =
patrick@36
   847
  element niv1 {
patrick@36
   848
    attlist.niv1,
patrick@36
   849
    (n?,
patrick@36
   850
     int?,
patrick@36
   851
     sint?,
patrick@36
   852
     exer*,
patrick@36
   853
     (((let?, p)
patrick@36
   854
       | pbib
patrick@36
   855
       | bl
patrick@36
   856
       | sep
patrick@36
   857
       | \list
patrick@36
   858
       | stroplg
patrick@36
   859
       | cita
patrick@36
   860
       | infratexte
patrick@36
   861
       | lettre
patrick@36
   862
       | fig
patrick@36
   863
       | tableau
patrick@36
   864
       | enc)+
patrick@36
   865
      | (niv2 | niv3 | niv4 | niv5)*)+),
patrick@36
   866
    fin?
patrick@36
   867
  }
patrick@36
   868
attlist.niv1 &= empty
patrick@36
   869
# Niveau 1
patrick@36
   870
niv2 =
patrick@36
   871
  element niv2 {
patrick@36
   872
    attlist.niv2,
patrick@36
   873
    (n?,
patrick@36
   874
     int?,
patrick@36
   875
     sint?,
patrick@36
   876
     exer*,
patrick@36
   877
     (((let?, p)
patrick@36
   878
       | pbib
patrick@36
   879
       | bl
patrick@36
   880
       | sep
patrick@36
   881
       | \list
patrick@36
   882
       | stroplg
patrick@36
   883
       | cita
patrick@36
   884
       | infratexte
patrick@36
   885
       | lettre
patrick@36
   886
       | fig
patrick@36
   887
       | tableau
patrick@36
   888
       | enc)+
patrick@36
   889
      | (niv3 | niv4 | niv5)*)+),
patrick@36
   890
    fin?
patrick@36
   891
  }
patrick@36
   892
attlist.niv2 &= empty
patrick@36
   893
# Niveau 2
patrick@36
   894
niv3 =
patrick@36
   895
  element niv3 {
patrick@36
   896
    attlist.niv3,
patrick@36
   897
    (n?,
patrick@36
   898
     int?,
patrick@36
   899
     sint?,
patrick@36
   900
     exer*,
patrick@36
   901
     (((let?, p)
patrick@36
   902
       | pbib
patrick@36
   903
       | bl
patrick@36
   904
       | sep
patrick@36
   905
       | \list
patrick@36
   906
       | stroplg
patrick@36
   907
       | cita
patrick@36
   908
       | infratexte
patrick@36
   909
       | lettre
patrick@36
   910
       | fig
patrick@36
   911
       | tableau
patrick@36
   912
       | enc)+
patrick@36
   913
      | (niv4 | niv5)*)+),
patrick@36
   914
    fin?
patrick@36
   915
  }
patrick@36
   916
attlist.niv3 &= empty
patrick@36
   917
# Niveau 3
patrick@36
   918
niv4 =
patrick@36
   919
  element niv4 {
patrick@36
   920
    attlist.niv4,
patrick@36
   921
    (n?,
patrick@36
   922
     int?,
patrick@36
   923
     sint?,
patrick@36
   924
     exer*,
patrick@36
   925
     (((let?, p)
patrick@36
   926
       | pbib
patrick@36
   927
       | bl
patrick@36
   928
       | sep
patrick@36
   929
       | \list
patrick@36
   930
       | stroplg
patrick@36
   931
       | cita
patrick@36
   932
       | infratexte
patrick@36
   933
       | lettre
patrick@36
   934
       | fig
patrick@36
   935
       | tableau
patrick@36
   936
       | enc)+
patrick@36
   937
      | niv5)*),
patrick@36
   938
    fin?
patrick@36
   939
  }
patrick@36
   940
attlist.niv4 &= empty
patrick@36
   941
# Niveau 4
patrick@36
   942
niv5 =
patrick@36
   943
  element niv5 {
patrick@36
   944
    attlist.niv5,
patrick@36
   945
    (n?,
patrick@36
   946
     int?,
patrick@36
   947
     sint?,
patrick@36
   948
     exer*,
patrick@36
   949
     ((let?, p)
patrick@36
   950
      | pbib
patrick@36
   951
      | bl
patrick@36
   952
      | sep
patrick@36
   953
      | \list
patrick@36
   954
      | stroplg
patrick@36
   955
      | cita
patrick@36
   956
      | infratexte
patrick@36
   957
      | lettre
patrick@36
   958
      | fig
patrick@36
   959
      | tableau
patrick@36
   960
      | enc)+),
patrick@36
   961
    fin?
patrick@36
   962
  }
patrick@36
   963
attlist.niv5 &= empty
patrick@36
   964
# Niveau 5
patrick@36
   965
int = element int { attlist.int, (typo | br | appel | renv | renvlnk)* }
patrick@36
   966
attlist.int &= empty
patrick@36
   967
# Intertitre
patrick@36
   968
sint =
patrick@36
   969
  element sint { attlist.sint, (typo | br | appel | renv | renvlnk)* }
patrick@36
   970
attlist.sint &= empty
patrick@36
   971
# Sous intertitre
patrick@36
   972
patrick@36
   973
# ******               Elements Lettrine                         ******
patrick@36
   974
let = element let { attlist.let, typo* }
patrick@36
   975
attlist.let &= empty
patrick@36
   976
# Lettrine
patrick@36
   977
patrick@36
   978
# ******                        Encadre                            ******
patrick@36
   979
enc =
patrick@36
   980
  element enc { attlist.enc, surtit?, tit?, stit?, exer*, dev, sign* }
patrick@36
   981
attlist.enc &= empty
patrick@36
   982
# Encadre
patrick@36
   983
patrick@36
   984
# mai 2009 : ajout surtitre optionnel ******
patrick@36
   985
patrick@36
   986
# ******                  Elements definitions de notes          ******
patrick@36
   987
defnotes =
patrick@36
   988
  element defnotes {
patrick@36
   989
    attlist.defnotes, (ntb | ntb2 | ntb3 | ntf | ntm)+
patrick@36
   990
  }
patrick@36
   991
attlist.defnotes &= empty
patrick@36
   992
# Definition des notes de la partie, du chapitre etc...
patrick@36
   993
ntb = element ntb { attlist.ntb, (p | pbib | tableau | fig)+ }
patrick@36
   994
# Texte de la note
patrick@36
   995
attlist.ntb &= attribute id { xsd:ID }
patrick@36
   996
# Lien appel de note
patrick@36
   997
ntb2 = element ntb2 { attlist.ntb2, (p | pbib | tableau | fig)+ }
patrick@36
   998
# Texte de la note niveau 2
patrick@36
   999
attlist.ntb2 &= attribute id { xsd:ID }
patrick@36
  1000
# Lien appel de note niveau 2
patrick@36
  1001
ntb3 = element ntb3 { attlist.ntb3, (p | pbib | tableau | fig)+ }
patrick@36
  1002
# Texte de la note niveau 3
patrick@36
  1003
attlist.ntb3 &= attribute id { xsd:ID }
patrick@36
  1004
# Lien appel de note niveau 3
patrick@36
  1005
ntf = element ntf { attlist.ntf, (p | pbib | tableau | fig)+ }
patrick@36
  1006
# Texte de la note
patrick@36
  1007
attlist.ntf &= attribute id { xsd:ID }
patrick@36
  1008
# Lien appel de note
patrick@36
  1009
ntm = element ntm { attlist.ntm, (p | pbib | tableau | fig)+ }
patrick@36
  1010
# Texte de la note
patrick@36
  1011
attlist.ntm &= attribute id { xsd:ID }
patrick@36
  1012
# Lien appel de note
patrick@36
  1013
patrick@36
  1014
# ******                Elements note de fin                     ******
patrick@36
  1015
notefin =
patrick@36
  1016
  element notefin {
patrick@36
  1017
    attlist.notefin,
patrick@36
  1018
    ((ntf | p)* | (nfniv1 | nfniv2 | nfniv3 | nfniv4 | nfniv5)*)+
patrick@36
  1019
  }
patrick@36
  1020
attlist.notefin &= empty
patrick@36
  1021
# Developpement des chapitres, parties ou sections...
patrick@36
  1022
patrick@36
  1023
# ******		 Niveau d'intertitre et de Texte		 ******
patrick@36
  1024
nfniv1 =
patrick@36
  1025
  element nfniv1 {
patrick@36
  1026
    attlist.nfniv1,
patrick@36
  1027
    n?,
patrick@36
  1028
    int?,
patrick@36
  1029
    sint?,
patrick@36
  1030
    ((ntf | p)* | (nfniv2 | nfniv3 | nfniv4 | nfniv5)*)+
patrick@36
  1031
  }
patrick@36
  1032
attlist.nfniv1 &= empty
patrick@36
  1033
# Niveau 1
patrick@36
  1034
nfniv2 =
patrick@36
  1035
  element nfniv2 {
patrick@36
  1036
    attlist.nfniv2,
patrick@36
  1037
    n?,
patrick@36
  1038
    int?,
patrick@36
  1039
    sint?,
patrick@36
  1040
    ((ntf | p)* | (nfniv3 | nfniv4 | nfniv5)*)+
patrick@36
  1041
  }
patrick@36
  1042
attlist.nfniv2 &= empty
patrick@36
  1043
# Niveau 2
patrick@36
  1044
nfniv3 =
patrick@36
  1045
  element nfniv3 {
patrick@36
  1046
    attlist.nfniv3,
patrick@36
  1047
    n?,
patrick@36
  1048
    int?,
patrick@36
  1049
    sint?,
patrick@36
  1050
    ((ntf | p)* | (nfniv4 | nfniv5)*)+
patrick@36
  1051
  }
patrick@36
  1052
attlist.nfniv3 &= empty
patrick@36
  1053
# Niveau 3
patrick@36
  1054
nfniv4 =
patrick@36
  1055
  element nfniv4 {
patrick@36
  1056
    attlist.nfniv4,
patrick@36
  1057
    n?,
patrick@36
  1058
    int?,
patrick@36
  1059
    sint?,
patrick@36
  1060
    ((ntf | p)* | nfniv5*)+
patrick@36
  1061
  }
patrick@36
  1062
attlist.nfniv4 &= empty
patrick@36
  1063
# Niveau 4
patrick@36
  1064
nfniv5 = element nfniv5 { attlist.nfniv5, n?, int?, sint?, (ntf | p)+ }
patrick@36
  1065
attlist.nfniv5 &= empty
patrick@36
  1066
# Niveau 5
patrick@36
  1067
patrick@36
  1068
# ******                  Elements definitions de figure           ******
patrick@36
  1069
fig = element fig { attlist.fig, (tit | img | leg | source)+ }
patrick@36
  1070
# contenu du bloc figure
patrick@36
  1071
attlist.fig &= attribute id { xsd:ID }?
patrick@36
  1072
# Lien appel de figure
patrick@36
  1073
img = element img { attlist.img, empty }
patrick@36
  1074
# Appel de la source de l'image
patrick@36
  1075
attlist.img &= attribute src { text }?
patrick@36
  1076
# Nom de l'image
patrick@36
  1077
leg = element leg { attlist.leg, p+ }
patrick@36
  1078
attlist.leg &= empty
patrick@36
  1079
# Legende d'illustration
patrick@36
  1080
patrick@36
  1081
# ******                 Elements definitions de tableau           ******
patrick@36
  1082
yesorno = string
patrick@36
  1083
tableau =
patrick@36
  1084
  element tableau {
patrick@36
  1085
    attlist.tableau,
patrick@36
  1086
    (leg | source)*,
patrick@36
  1087
    (stab | (table, stab*)),
patrick@36
  1088
    (leg | source)*
patrick@36
  1089
  }
patrick@36
  1090
# contenu du bloc tableau
patrick@36
  1091
attlist.tableau &= attribute id { xsd:ID }?
patrick@36
  1092
# Lien appel de tableau
patrick@36
  1093
patrick@36
  1094
# dÈcembre 2009 : ajout possibilitÈ table et stab ******
patrick@36
  1095
stab = element stab { attlist.stab, empty }
patrick@36
  1096
# Appel de la source du tableau (si tableau=image)
patrick@36
  1097
attlist.stab &= attribute src { text }?
patrick@36
  1098
# Nom du tableau
patrick@36
  1099
patrick@36
  1100
# ******                 Tableau en cals           ******
patrick@36
  1101
table = element table { attlist.table, title?, tgroup+ }
patrick@36
  1102
attlist.table &=
patrick@36
  1103
  attribute frame {
patrick@36
  1104
    "top" | "bottom" | "topbot" | "all" | "sides" | "none"
patrick@36
  1105
  }?,
patrick@36
  1106
  attribute colsep { yesorno }?,
patrick@36
  1107
  attribute rowsep { yesorno }?
patrick@36
  1108
title =
patrick@36
  1109
  element title { attlist.title, (typo | appel | br | renv | renvlnk)* }
patrick@36
  1110
attlist.title &= empty
patrick@36
  1111
tgroup =
patrick@36
  1112
  element tgroup {
patrick@36
  1113
    attlist.tgroup, colspec*, spanspec*, thead?, tfoot?, tbody
patrick@36
  1114
  }
patrick@36
  1115
attlist.tgroup &=
patrick@36
  1116
  attribute cols { text },
patrick@36
  1117
  attribute colsep { yesorno }?,
patrick@36
  1118
  attribute rowsep { yesorno }?,
patrick@36
  1119
  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
patrick@36
  1120
  attribute char { text }?,
patrick@36
  1121
  attribute charoff { text }?
patrick@36
  1122
colspec = element colspec { attlist.colspec, empty }
patrick@36
  1123
attlist.colspec &=
patrick@36
  1124
  attribute colnum { text }?,
patrick@36
  1125
  attribute colname { text }?,
patrick@36
  1126
  attribute colwidth { text }?,
patrick@36
  1127
  attribute colsep { yesorno }?,
patrick@36
  1128
  attribute rowsep { yesorno }?,
patrick@36
  1129
  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
patrick@36
  1130
  attribute char { text }?,
patrick@36
  1131
  attribute charoff { text }?
patrick@36
  1132
spanspec = element spanspec { attlist.spanspec, empty }
patrick@36
  1133
attlist.spanspec &=
patrick@36
  1134
  attribute namest { text },
patrick@36
  1135
  attribute nameend { text },
patrick@36
  1136
  attribute spanname { text },
patrick@36
  1137
  attribute colsep { yesorno }?,
patrick@36
  1138
  attribute rowsep { yesorno }?,
patrick@36
  1139
  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
patrick@36
  1140
  attribute char { text }?,
patrick@36
  1141
  attribute charoff { text }?
patrick@36
  1142
thead = element thead { attlist.thead, colspec*, row+ }
patrick@36
  1143
attlist.thead &= attribute valign { "top" | "middle" | "bottom" }?
patrick@36
  1144
tfoot = element tfoot { attlist.tfoot, colspec*, row+ }
patrick@36
  1145
attlist.tfoot &= attribute valign { "top" | "middle" | "bottom" }?
patrick@36
  1146
tbody = element tbody { attlist.tbody, row+ }
patrick@36
  1147
attlist.tbody &= attribute valign { "top" | "middle" | "bottom" }?
patrick@36
  1148
row = element row { attlist.row, entry* }
patrick@36
  1149
attlist.row &=
patrick@36
  1150
  attribute rowsep { yesorno }?,
patrick@36
  1151
  attribute valign { "top" | "middle" | "bottom" }?
patrick@36
  1152
entry =
patrick@36
  1153
  element entry {
patrick@36
  1154
    attlist.entry, (typo | appel | renv | renvlnk | br | p | \list)*
patrick@36
  1155
  }
patrick@36
  1156
attlist.entry &=
patrick@36
  1157
  attribute colname { text }?,
patrick@36
  1158
  attribute namest { text }?,
patrick@36
  1159
  attribute nameend { text }?,
patrick@36
  1160
  attribute spanname { text }?,
patrick@36
  1161
  attribute morerows { text }?,
patrick@36
  1162
  attribute colsep { yesorno }?,
patrick@36
  1163
  attribute rowsep { yesorno }?,
patrick@36
  1164
  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
patrick@36
  1165
  attribute char { text }?,
patrick@36
  1166
  attribute charoff { text }?,
patrick@36
  1167
  attribute rotate { yesorno }?,
patrick@36
  1168
  attribute valign { "top" | "middle" | "bottom" }?
patrick@36
  1169
start = livre