RelaxNG/publiset.rnc
changeset 350 58bbf6bb79e2
parent 323 5ff538313a95
child 361 edbbf787aaa2
equal deleted inserted replaced
349:79795b5c4684 350:58bbf6bb79e2
   112  & subtitle?
   112  & subtitle?
   113  & copyright?
   113  & copyright?
   114  & collection?
   114  & collection?
   115  & folio?
   115  & folio?
   116  & pages?
   116  & pages?
   117  
   117 
   118 source.content.file =
   118 source.content.file =
   119    identifier.uri
   119    identifier.uri
   120 
   120 
   121 # ~~~~~~ folio
   121 # ~~~~~~ folio
   122 folio = element folio { folio.content }
   122 folio = element folio { folio.content }
   307  & (xpath.attribute | xslt.attribute)?
   307  & (xpath.attribute | xslt.attribute)?
   308  & argument.attribute?
   308  & argument.attribute?
   309 selection.file.attributes =
   309 selection.file.attributes =
   310    path.attribute?
   310    path.attribute?
   311 argument.attribute = attribute argument { text }
   311 argument.attribute = attribute argument { text }
   312    
   312 
   313 file.content = xsd:anyURI
   313 file.content = xsd:anyURI
   314 
   314 
   315 
   315 
   316 # =============================================================================
   316 # =============================================================================
   317 #                                 BLOCK LEVEL
   317 #                                 BLOCK LEVEL
   332 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   332 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   333 
   333 
   334 simple.inlines = mixed {
   334 simple.inlines = mixed {
   335    sup*
   335    sup*
   336  & sub*
   336  & sub*
   337  & date*
       
   338  & name*
       
   339 }
   337 }
   340 
   338 
   341 inlines = mixed {
   339 inlines = mixed {
   342    sup*
   340    sup*
   343  & sub*
   341  & sub*
   344  & date*
       
   345  & name*
       
   346 
   342 
   347  & highlight*
   343  & highlight*
   348  & emphasis*
   344  & emphasis*
       
   345  & name*
       
   346  & date*
   349  & link*
   347  & link*
   350 }
   348 }
   351 
   349 
   352 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   350 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   353 
   351 
   354 sup = element sup { simple.inlines }
   352 sup = element sup { simple.inlines }
   355 
   353 
   356 sub = element sub { inlines }
   354 sub = element sub { inlines }
       
   355 
       
   356 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   357 
       
   358 highlight = element highlight { highlight.content }
       
   359 
       
   360 highlight.content = inlines
       
   361 
       
   362 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emphasis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   363 
       
   364 emphasis = element emphasis { emphasis.content }
       
   365 
       
   366 emphasis.content = inlines
       
   367 
       
   368 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   369 
       
   370 name = element name { name.attributes, name.content }
       
   371 
       
   372 name.attributes =
       
   373    name.of.attribute?
       
   374 name.of.attribute = attribute of {
       
   375    "person" | "company" | "book" | "newspaper" | "party" | "movie"
       
   376  | "painting" }
       
   377 
       
   378 name.content = mixed { sup* }
   357 
   379 
   358 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   380 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   359 
   381 
   360 date = element date { date.attributes, date.content }
   382 date = element date { date.attributes, date.content }
   361 
   383 
   362 date.attributes =
   384 date.attributes =
   363    date.value.attribute
   385    date.value.attribute
   364 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
   386 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
   365 
   387 
   366 date.content = mixed { sup* }
   388 date.content = mixed { sup* }
   367 
       
   368 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   369 
       
   370 name = element name { name.attributes, name.content }
       
   371 
       
   372 name.attributes =
       
   373    name.of.attribute?
       
   374 name.of.attribute = attribute of {
       
   375    "person" | "company" | "book" | "newspaper" | "party" | "painting"
       
   376  | "movie" }
       
   377 
       
   378 name.content = mixed { sup* }
       
   379 
       
   380 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   381 
       
   382 highlight = element highlight { highlight.content }
       
   383 
       
   384 highlight.content = inlines
       
   385 
       
   386 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ emphasis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   387 
       
   388 emphasis = element emphasis { emphasis.content }
       
   389 
       
   390 emphasis.content = inlines
       
   391 
   389 
   392 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   390 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   393 
   391 
   394 link = element link { link.attributes, link.content }
   392 link = element link { link.attributes, link.content }
   395 
   393