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