RelaxNG/lg_nc_v3-2.rnc
changeset 38 c1685c404f53
parent 36 d01d5f014c3f
child 39 60dbe6b1f1b9
equal deleted inserted replaced
37:74b728fd13cb 38:c1685c404f53
     1 # **********************************************************************
     1 # **********************************************************************
     2 
       
     3 # ******      DTD LITTERATURE GENERALE XML NC             V3.2    ******
     2 # ******      DTD LITTERATURE GENERALE XML NC             V3.2    ******
     4 
       
     5 # ******             (c) Nord Compo  (juin 1999)                  ******
     3 # ******             (c) Nord Compo  (juin 1999)                  ******
     6 
       
     7 # ******                realisee par : GD                         ******
     4 # ******                realisee par : GD                         ******
     8 
       
     9 # ******          mise a jour par : GD (juillet 2000)             ******
     5 # ******          mise a jour par : GD (juillet 2000)             ******
    10 
       
    11 # ******       transformation en XML par : JMD (Aout 2000)        ******
     6 # ******       transformation en XML par : JMD (Aout 2000)        ******
    12 
       
    13 # ******         mise a jour XML par : GD (janvier 2001)          ******
     7 # ******         mise a jour XML par : GD (janvier 2001)          ******
    14 
       
    15 # ******             mise a jour de la version 2.1                ******
     8 # ******             mise a jour de la version 2.1                ******
    16 
     9 # ******               mise a jour : GD (juin 2007)               ******
    17 # ******               mise ‡ jour : GD (juin 2007)               ******
       
    18 
       
    19 # ******               mise a jour : GD septembre 2007            ******
    10 # ******               mise a jour : GD septembre 2007            ******
    20 
       
    21 # ******               mise a jour : GD octobre 2007              ******
    11 # ******               mise a jour : GD octobre 2007              ******
    22 
       
    23 # ******               mise a jour : GD novembre 2007             ******
    12 # ******               mise a jour : GD novembre 2007             ******
    24 
       
    25 # ******               mise a jour : GD janvier 2008              ******
    13 # ******               mise a jour : GD janvier 2008              ******
    26 
       
    27 # ******               mise a jour : PT mai 2009                  ******
    14 # ******               mise a jour : PT mai 2009                  ******
    28 
       
    29 # ******               mise a jour : PT octobre 2009              ******
    15 # ******               mise a jour : PT octobre 2009              ******
    30 
       
    31 # **********************************************************************
    16 # **********************************************************************
    32 
    17 # ******            Transformation RelaxNG Prismallia             ******
    33 # ******                    Entites externes                      ******
    18 # **********************************************************************
    34 
    19 
    35 # ******                    Entites internes                      ******
    20 
    36 
    21 start = livre
       
    22 
       
    23 livre = element livre { livre.attributes, livre.content }
       
    24 
       
    25 livre.attributes =
       
    26    attribute compo { text }?
       
    27  & attribute saisie { text }?
       
    28  & attribute type { text }?
       
    29 
       
    30 livre.content =
       
    31    ident,
       
    32    (appcrit | pre)*,
       
    33    corps,
       
    34    (appcrit | appen)*,
       
    35    collec*
       
    36 
       
    37 
       
    38 # =============================================================================
       
    39 #                        Elements Entete (pages de titre)           
       
    40 # =============================================================================
       
    41 
       
    42 # ~~~~~~ ident
       
    43 ident = element ident { ident.content }
       
    44 
       
    45 ident.content =
       
    46    (ftit
       
    47     | fstit
       
    48     | info
       
    49     | accro
       
    50     | collec
       
    51     | auteur
       
    52     | illustrateur
       
    53     | tit
       
    54     | stit
       
    55     | edit
       
    56     | copy
       
    57     | trad
       
    58     | ean
       
    59     | coned
       
    60     | type
       
    61     | ref
       
    62     | isbn
       
    63     | issn
       
    64     | modulus
       
    65     | fig
       
    66     | tableau
       
    67     | dedi
       
    68     | exer)+
       
    69 
       
    70 # ~~~~~~ Faux titre ouvrage
       
    71 ftit = element ftit { (typo | br | appel | renv | renvlnk)* }
       
    72 
       
    73 # ~~~~~~ Accroche ouvrage
       
    74 accro = element accro { (typo | br | appel | renv | renvlnk)* }
       
    75 
       
    76 # ~~~~~~ Sous titre ouvrage
       
    77 fstit = element fstit { (typo | br | appel | renv | renvlnk)* }
       
    78 
       
    79 # ~~~~~~ Auteur(s) de l'ouvrage ou de citation ou exergue
       
    80 auteur = element auteur { (typo | appel)* }
       
    81 
       
    82 # ~~~~~~ Illustrateur
       
    83 illustrateur = element illustrateur { (typo | appel)* }
       
    84 
       
    85 # ~~~~~~ Surtitre
       
    86 surtit = element surtit {(typo | appel | br | renv | renvlnk)*}
       
    87 
       
    88 # ~~~~~~ Titre de l'ouvrage
       
    89 tit = element tit { (typo | appel | br | renv | renvlnk)* }
       
    90 
       
    91 # ~~~~~~ Sous-titre de l'ouvrage
       
    92 stit = element stit { (typo | appel | br | renv | renvlnk)* }
       
    93 
       
    94 # ~~~~~~ Sous-sous-titre
       
    95 sstit = element sstit { (typo | appel | br | renv | renvlnk)* }
       
    96 
       
    97 # ~~~~~~ Type d'ouvrage dans page de titre
       
    98 type = element type { (typo | br | appel)* }
       
    99 
       
   100 # ~~~~~~ Texte page de titre
       
   101 info = element info { (typo | br | appel)* }
       
   102 
       
   103 # ~~~~~~ page de collection
       
   104 collec = element collec {
       
   105    (tit | stit | cint | cint2 | cint3 | auteur | p | pbib | fig)* }
       
   106 
       
   107 # ~~~~~~ Intertitre dans page de collection
       
   108 cint  = element cint  { (typo | br | appel)* }
       
   109 cint2 = element cint2 { (typo | br | appel)* }
       
   110 cint3 = element cint3 { (typo | br | appel)* }
       
   111 
       
   112 # ~~~~~~ Traduction par
       
   113 trad = element trad { (typo | br | appel)* }
       
   114 
       
   115 # ~~~~~~ Editeur(s)
       
   116 edit = element edit { (typo | appel)* }
       
   117 
       
   118 # ~~~~~~ Copyright de l'ouvrage
       
   119 copy = element copy { (typo | br | appel)* }
       
   120 
       
   121 # ~~~~~~ References de l'ouvrage
       
   122 ref = element ref { (typo | br | appel)* }
       
   123 
       
   124 # ~~~~~~ ISBN, ISSN
       
   125 isbn = element isbn { (typo | appel)* }
       
   126 issn = element issn { (typo | appel)* }
       
   127 
       
   128 # ~~~~~~ Modulus
       
   129 modulus = element modulus { (typo | appel)* }
       
   130 
       
   131 # ~~~~~~ EAN 13
       
   132 ean = element ean { xsd:token {pattern = "\d{13}"} }
       
   133 
       
   134 # ~~~~~~ Rang d'impression
       
   135 coned = element coned { text }
       
   136 
       
   137 # ~~~~~~ Dedicace
       
   138 dedi = element dedi { (typo | br | appel)* }
       
   139 
       
   140 # ~~~~~~ Exergue
       
   141 exer = element exer { p+, (source | auteur)* }
       
   142 
       
   143 # ~~~~~~ Source(s) citation, image, exergue
       
   144 source = element source { (typo | appel | p | br)* }
       
   145 
       
   146 
       
   147 # =============================================================================
       
   148 #                        Elements preliminaire de l'ouvrage
       
   149 # =============================================================================
       
   150 
       
   151 # ~~~~~~ pre
       
   152 pre =  element pre { pre.attributes, pre.content }
       
   153 
       
   154 pre.attributes =
       
   155    attribute id { xsd:ID }?
       
   156  & attribute num { text }?
       
   157  & attribute type { "intro" | "prologue" | "pref" | "remer" | "avpro" | "biblio"
       
   158   | "bio" | "remarque" | "note" | "chrono" | "presentation" | "personnages"
       
   159   | "sommaire" | "tdm" | "autre" }?
       
   160 
       
   161 pre.content = 
       
   162    apfi?,
       
   163    surtit?,
       
   164    (((tit, apfi?),
       
   165       ((stit, apfi?), (sstit, apfi?)?)?)
       
   166     | ((stit, apfi?), (sstit, apfi?)?))?,
       
   167    exer*,
       
   168    chapeau?,
       
   169    dev,
       
   170    (source | sign)*,
       
   171    collec*,
       
   172    defnotes?,
       
   173    apfi?
       
   174 
       
   175 # ~~~~ chapeau
       
   176 chapeau = element chapeau { let?, p+ }
       
   177 
       
   178 
       
   179 # =============================================================================
       
   180 #                           Elements corps de l'ouvrage
       
   181 # =============================================================================
       
   182 
       
   183 # ~~~~~~ corps
       
   184 corps = element corps { corps.content }
       
   185 
       
   186 corps.content =
       
   187    (vol+
       
   188     | part+
       
   189     | section+
       
   190     | chap+
       
   191     | dev)
       
   192 
       
   193 # ~~~~~~ vol
       
   194 vol = element vol { vol.attributes,  vol.content }
       
   195 
       
   196 vol.attributes =
       
   197    attribute id { xsd:ID }?
       
   198  & attribute num { text }?
       
   199 
       
   200 vol.content =
       
   201    depart,
       
   202    (appcrit | pre)*,
       
   203    ((dev, part*) | part+),
       
   204    defnotes?,
       
   205    (appcrit | appen)*
       
   206 
       
   207 # ~~~~~~ part
       
   208 part = element part { part.attributes,  part.content }
       
   209 
       
   210 part.attributes =
       
   211    attribute id { xsd:ID }?
       
   212  & attribute num { text }?
       
   213 
       
   214 part.content =
       
   215    depart,
       
   216    (appcrit | pre)*,
       
   217    ((dev, (section | chap)*)
       
   218     | (section | chap)+),
       
   219    defnotes?,
       
   220    (appcrit | appen)*
       
   221 
       
   222 # ~~~~~~ section
       
   223 section = element section { section.attributes,  section.content }
       
   224 
       
   225 section.attributes =
       
   226    attribute id { xsd:ID }?
       
   227  & attribute num { text }?
       
   228 
       
   229 section.content =
       
   230    depart,
       
   231    (appcrit | pre)*,
       
   232    ((dev, chap*) | chap+),
       
   233    defnotes?,
       
   234    (appcrit | appen)*
       
   235 
       
   236 # ~~~~~~ chap
       
   237 chap = element chap { chap.attributes,  chap.content }
       
   238 
       
   239 chap.attributes =
       
   240    attribute id { xsd:ID }?
       
   241  & attribute num { text }?
       
   242 
       
   243 chap.content =
       
   244    depart,
       
   245    (appcrit | pre)*,
       
   246    ((chapeau?, dev, schap*) | schap+),
       
   247    source?,
       
   248    defnotes?,
       
   249    (appcrit | appen)*
       
   250 
       
   251 # ~~~~~~ schap
       
   252 schap = element schap { schap.attributes,  schap.content }
       
   253 
       
   254 schap.attributes =
       
   255    attribute id { xsd:ID }?
       
   256  & attribute num { text }?
       
   257 
       
   258 schap.content =
       
   259    depart,
       
   260    (appcrit | pre)*,
       
   261    chapeau?,
       
   262    dev,
       
   263    defnotes?,
       
   264    (appcrit | appen)*
       
   265 
       
   266 
       
   267 # =============================================================================
       
   268 #                              Elements Developpement
       
   269 # =============================================================================
       
   270 
       
   271 # ~~~~~~ dev
       
   272 dev = element dev { dev.content }
       
   273 
       
   274 dev.content =
       
   275    (((let?, (p | pbib))
       
   276     | bl
       
   277     | sep
       
   278     | dialogue
       
   279     | theatre
       
   280     | \list
       
   281     | stroplg
       
   282     | cita
       
   283     | infratexte
       
   284     | lettre
       
   285     | fig
       
   286     | tableau
       
   287     | enc
       
   288     | sign)
       
   289     | (niv1 | niv2 | niv3 | niv4 | niv5))+,
       
   290    fin?,
       
   291    source?
       
   292 
       
   293 
       
   294 # =============================================================================
       
   295 #                         Niveau d'intertitre et de Texte
       
   296 # =============================================================================
       
   297 
       
   298 # ~~~~~~ niv1
       
   299 niv1 = element niv1 { niv1.content }
       
   300 
       
   301 niv1.content =
       
   302    (n?,
       
   303       int?,
       
   304       sint?,
       
   305       exer*,
       
   306       (((let?, p)
       
   307        | pbib
       
   308        | bl
       
   309        | sep
       
   310        | \list
       
   311        | stroplg
       
   312        | cita
       
   313        | infratexte
       
   314        | lettre
       
   315        | fig
       
   316        | tableau
       
   317        | enc)+
       
   318        | (niv2 | niv3 | niv4 | niv5)*)+),
       
   319    fin?
       
   320 
       
   321 # ~~~~~~ niv2
       
   322 niv2 = element niv2 { niv2.content }
       
   323 
       
   324 niv2.content =
       
   325    (n?,
       
   326       int?,
       
   327       sint?,
       
   328       exer*,
       
   329       (((let?, p)
       
   330        | pbib
       
   331        | bl
       
   332        | sep
       
   333        | \list
       
   334        | stroplg
       
   335        | cita
       
   336        | infratexte
       
   337        | lettre
       
   338        | fig
       
   339        | tableau
       
   340        | enc)+
       
   341        | (niv3 | niv4 | niv5)*)+),
       
   342    fin?
       
   343 
       
   344 # ~~~~~~ niv3
       
   345 niv3 = element niv3 { niv3.content }
       
   346 
       
   347 niv3.content =
       
   348    (n?,
       
   349       int?,
       
   350       sint?,
       
   351       exer*,
       
   352       (((let?, p)
       
   353        | pbib
       
   354        | bl
       
   355        | sep
       
   356        | \list
       
   357        | stroplg
       
   358        | cita
       
   359        | infratexte
       
   360        | lettre
       
   361        | fig
       
   362        | tableau
       
   363        | enc)+
       
   364        | (niv4 | niv5)*)+),
       
   365    fin?
       
   366 
       
   367 # ~~~~~~ niv4
       
   368 niv4 = element niv4 { niv4.content }
       
   369 
       
   370 niv4.content =
       
   371    (n?,
       
   372       int?,
       
   373       sint?,
       
   374       exer*,
       
   375       (((let?, p)
       
   376        | pbib
       
   377        | bl
       
   378        | sep
       
   379        | \list
       
   380        | stroplg
       
   381        | cita
       
   382        | infratexte
       
   383        | lettre
       
   384        | fig
       
   385        | tableau
       
   386        | enc)+
       
   387        | niv5)*),
       
   388    fin?
       
   389 
       
   390 # ~~~~~~ niv5
       
   391 niv5 = element niv5 { niv5.content }
       
   392 
       
   393 niv5.content =
       
   394    (n?,
       
   395       int?,
       
   396       sint?,
       
   397       exer*,
       
   398       ((let?, p)
       
   399        | pbib
       
   400        | bl
       
   401        | sep
       
   402        | \list
       
   403        | stroplg
       
   404        | cita
       
   405        | infratexte
       
   406        | lettre
       
   407        | fig
       
   408        | tableau
       
   409        | enc)+),
       
   410    fin?
       
   411 
       
   412 # ~~~~~~ Numero de partie, Chapitre, sous-chapitre ou section
       
   413 n = element n { (typo | appel | br | renv | renvlnk)* }
       
   414 
       
   415 # ~~~~~~ Intertitre
       
   416 int = element int {(typo | br | appel | renv | renvlnk)* }
       
   417 
       
   418 # ~~~~~~ Sous intertitre
       
   419 sint = element sint { (typo | br | appel | renv | renvlnk)* }
       
   420 
       
   421 
       
   422 # =============================================================================
       
   423    
       
   424 # Texte avec Exposant, Indice petites caps, ou souligne
    37 texte = text | sup | inf | pc | sl
   425 texte = text | sup | inf | pc | sl
    38 # Texte avec Exposant, Indice petites caps, ou souligne
   426 
       
   427 # Texte avec mise en forme  (ital, gras, romain)
    39 typo = texte | i | b | r
   428 typo = texte | i | b | r
    40 # Texte avec mise en forme  (ital, gras, romain)
   429 
    41 appel =
   430 appel =
    42   indx
   431   indx
    43   | indx2
   432   | indx2
    44   | indx3
   433   | indx3
    45   | apnb
   434   | apnb
    58     ((stit, apfi?), (sstit, apfi?)?)?)
   447     ((stit, apfi?), (sstit, apfi?)?)?)
    59    | ((stit, apfi?), (sstit, apfi?)?))?,
   448    | ((stit, apfi?), (sstit, apfi?)?))?,
    60   (accro | trad | auteur | illustrateur | exer)*
   449   (accro | trad | auteur | illustrateur | exer)*
    61 # Entite Numero, titre et sous-titre
   450 # Entite Numero, titre et sous-titre
    62 
   451 
    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
   452 #     Nom du photocompositeur
    85 # lieu de la saisie
   453 # lieu de la saisie
    86 # Type coll
   454 # Type coll
    87 
   455 
    88 # ******                      Elements typo                       ******
   456 # ******                      Elements typo                       ******
   109 # Element souligne
   477 # Element souligne
   110 br = element br { attlist.br, empty }
   478 br = element br { attlist.br, empty }
   111 attlist.br &= empty
   479 attlist.br &= empty
   112 # Retour a la ligne dans un element titre
   480 # Retour a la ligne dans un element titre
   113 
   481 
   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 
   482 
   243 # ******                    Elements paragraphe                    ******
   483 # ******                    Elements paragraphe                    ******
   244 p = element p { attlist.p, (typo | appel | renv | renvlnk)* }
   484 p = element p { attlist.p, (typo | appel | renv | renvlnk)* }
   245 attlist.p &=
   485 attlist.p &=
   246   attribute align {
   486   attribute align {
   247     "centre" | "justif" | "gauche" | "droite" | "ssalinea"
   487     "centre" | "justif" | "gauche" | "droite" | "ssalinea"
   248   }?
   488   }?
   249 # Element paragraphe
   489 # Element paragraphe
       
   490 
       
   491 
       
   492 # Indentifiant et numero permettant de referencer les titres pour une gestion electronique
       
   493 
       
   494 # Mai 2009 : ajout type bio, personnages, sommaire, tdm
       
   495 
       
   496 # Mai 2009 : ajout appels de figure optionnels en dÈbut et en fin de prÈliminaire
       
   497 
       
   498 # Mai 2009 : ajout surtitre optionnel
       
   499 
       
   500 # Mai 2009 : ajout sous-soustitre optionnel
       
   501 
       
   502 # mai 2009 : ajout ÈlÈment chapeau ******
       
   503 
       
   504 # mai 2009 : ajout appels de figure optionnels au niveau de titre et sous titre ******
       
   505 
       
   506 # mai 2009 : ajout source optionnel ******
       
   507 
       
   508 # dÈcembre 2009 : ajout collec optionnel en fin de pre, pour les titre du meme auteur d un pre bio******
       
   509 sign = element sign { attlist.sign, (typo | appel | br)* }
       
   510 attlist.sign &= empty
       
   511 # Signature de la preface ou de l'intro, etc...**
   250 
   512 
   251 # ******             Elements paragraphe bibliographique           ******
   513 # ******             Elements paragraphe bibliographique           ******
   252 pbib =
   514 pbib =
   253   element pbib {
   515   element pbib {
   254     attlist.pbib,
   516     attlist.pbib,
   334 indx3 = element indx3 { attlist.indx3, (typo | appel)* }
   596 indx3 = element indx3 { attlist.indx3, (typo | appel)* }
   335 # Indexation
   597 # Indexation
   336 attlist.indx3 &= attribute LIBEL { text }?
   598 attlist.indx3 &= attribute LIBEL { text }?
   337 # Libelle dans l'index
   599 # Libelle dans l'index
   338 
   600 
   339 # ******                   Elements corps de l'ouvrage             ******
   601 # ******                Elements Theatre                         ******
   340 corps =
   602 theatre = element theatre { attlist.theatre, distrib*, acte+ }
   341   element corps {
   603 attlist.theatre &= empty
   342     attlist.corps, (vol+ | part+ | section+ | chap+ | dev)
   604 # Module d'enrichissement pour ouvrage de theatre...
   343   }
   605 distrib = element distrib { attlist.distrib, tit, role+, expos* }
   344 attlist.corps &= empty
   606 attlist.distrib &= empty
   345 # Corps de l'ouvrage
   607 # liste des personnage de la piece...
   346 
   608 role = element role { attlist.role, (pers | acteur)* }
   347 # ******                 Elements preliminaire de l'ouvrage        ******
   609 attlist.role &= empty
   348 pre =
   610 # role du personnage
   349   element pre {
   611 expos =
   350     attlist.pre,
   612   element expos { attlist.expos, (typo | appel | renv | renvlnk)* }
   351     apfi?,
   613 attlist.expos &= empty
   352     surtit?,
   614 # exposition (ou se deroule la piece)
   353     (((tit, apfi?),
   615 acte =
   354       ((stit, apfi?), (sstit, apfi?)?)?)
   616   element acte {
   355      | ((stit, apfi?), (sstit, apfi?)?))?,
   617     attlist.acte, n?, tit?, stit?, (pers | didasc)*, scene+
   356     exer*,
   618   }
   357     chapeau?,
   619 attlist.acte &= empty
   358     dev,
   620 # acte
   359     (source | sign)*,
   621 pers =
   360     collec*,
   622   element pers {
   361     defnotes?,
   623     attlist.pers, (typo | appel | renv | renvlnk | didasc)*
   362     apfi?
   624   }
   363   }
   625 attlist.pers &= empty
   364 # preliminaire : Intro, preface, Avertissement etc...
   626 # personnage(s)
   365 attlist.pre &=
   627 acteur =
   366   attribute id { xsd:ID }?,
   628   element acteur {
   367   attribute num { text }?,
   629     attlist.acteur, (typo | appel | renv | renvlnk | didasc)*
       
   630   }
       
   631 attlist.acteur &= empty
       
   632 # acteur(s)
       
   633 didasc =
       
   634   element didasc { attlist.didasc, (typo | appel | renv | renvlnk)* }
       
   635 attlist.didasc &= empty
       
   636 # didascalie
       
   637 scene =
       
   638   element scene {
       
   639     attlist.scene, n?, tit?, stit?, (pers | didasc)*, replique+
       
   640   }
       
   641 attlist.scene &= empty
       
   642 # scene
       
   643 replique =
       
   644   element replique {
       
   645     attlist.replique,
       
   646     (pers+, (p | vers | didasc)*)+
       
   647   }
       
   648 attlist.replique &= empty
       
   649 # replique
       
   650 vers = element vers { attlist.vers, (typo | appel | renv | renvlnk)* }
       
   651 attlist.vers &=
       
   652   attribute align {
       
   653     "centre" | "justif" | "gauche" | "droite" | "stichomythie"
       
   654   }?,
       
   655   attribute num { text }?
       
   656 # Attribut du vers (stichomytie pour les vers qui se suivent
       
   657 
       
   658 # vers
       
   659 bl = element bl { attlist.bl, empty }
       
   660 # Ligne de blanc
       
   661 attlist.bl &= attribute v { text }
       
   662 # Valeur de blanc
       
   663 sep = element sep { attlist.sep, empty }
       
   664 # Separateur
       
   665 attlist.sep &=
   368   attribute type {
   666   attribute type {
   369     "intro"
   667     "filet" | "frise" | "etoiles" | "etoile" | "logo" | "autre"
   370     | "prologue"
   668   },
   371     | "pref"
   669   attribute src { text }?
   372     | "remer"
   670 # type de separateur
   373     | "avpro"
   671 
   374     | "biblio"
   672 # Mai 2009 : ajout scr : nom de l'image pour logo, cul de lampe...
   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 
   673 
   499 # ******             Elements postliminaire de l'ouvrage           ******
   674 # ******             Elements postliminaire de l'ouvrage           ******
   500 appen =
   675 appen =
   501   element appen {
   676   element appen {
   502     attlist.appen,
   677     attlist.appen,
   647 
   822 
   648 # Section
   823 # Section
   649 
   824 
   650 # mai 2009 : ajout ÈlÈment chapeau******
   825 # mai 2009 : ajout ÈlÈment chapeau******
   651 
   826 
   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 
   827 
   755 # ******				Element liste		 		******
   828 # ******				Element liste		 		******
   756 \list = element list { attlist.list, item+ }
   829 \list = element list { attlist.list, item+ }
   757 attlist.list &=
   830 attlist.list &=
   758   attribute type {
   831   attribute type {
   839 # entete pour une correspondance
   912 # entete pour une correspondance
   840 polit =
   913 polit =
   841   element polit { attlist.polit, (typo | appel | renv | renvlnk | br)* }
   914   element polit { attlist.polit, (typo | appel | renv | renvlnk | br)* }
   842 attlist.polit &= empty
   915 attlist.polit &= empty
   843 # politesse pour une correspondance
   916 # 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 
   917 
   973 # ******               Elements Lettrine                         ******
   918 # ******               Elements Lettrine                         ******
   974 let = element let { attlist.let, typo* }
   919 let = element let { attlist.let, typo* }
   975 attlist.let &= empty
   920 attlist.let &= empty
   976 # Lettrine
   921 # Lettrine
  1164   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
  1109   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
  1165   attribute char { text }?,
  1110   attribute char { text }?,
  1166   attribute charoff { text }?,
  1111   attribute charoff { text }?,
  1167   attribute rotate { yesorno }?,
  1112   attribute rotate { yesorno }?,
  1168   attribute valign { "top" | "middle" | "bottom" }?
  1113   attribute valign { "top" | "middle" | "bottom" }?
  1169 start = livre