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