RelaxNG/publidoc.rnc
changeset 11 2b32b535705c
parent 9 1efd69b7c90e
child 13 846ec40a5b2d
equal deleted inserted replaced
10:0c7725713208 11:2b32b535705c
   216 #                                 Block level
   216 #                                 Block level
   217 # =============================================================================
   217 # =============================================================================
   218 
   218 
   219 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   219 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ blocks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   220 
   220 
   221 block = (parag | \list | media | speech)
   221 block = (parag | \list | speech | media)
   222 
   222 
   223 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parag ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   223 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ parag ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   224 
   224 
   225 parag = element parag { parag.content }
   225 parag = element parag { parag.content }
   226 
   226 
   233 # ~~~~~~ list
   233 # ~~~~~~ list
   234 \list = element list { \list.content }
   234 \list = element list { \list.content }
   235 
   235 
   236 \list.content =
   236 \list.content =
   237    title?,
   237    title?,
   238    (  (attribute type {"ordered"} ?, item, item+)
   238    (  (attribute type {"itemized"} ?, item, item+)
   239     | (attribute type {"itemized"}, item, item+)
   239     | (attribute type {"ordered"}, item, item+)
   240     | (attribute type {"glossary"}, glossary.item+) )
   240     | (attribute type {"glossary"}, glossary.item+) )
   241 
   241 
   242 # ~~~~~~ item
   242 # ~~~~~~ item
   243 item = element item { item.content }
   243 item = element item { item.content }
   244 
   244 
   254 # ~~~~~~ label
   254 # ~~~~~~ label
   255 label = element label { label.content }
   255 label = element label { label.content }
   256 
   256 
   257 label.content = inlines
   257 label.content = inlines
   258 
   258 
   259 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   259 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   260 
       
   261 # ~~~~~~ media
       
   262 media = element media { media.content }
       
   263 
       
   264 media.content =
       
   265    image+,
       
   266    media.caption?
       
   267 
       
   268 media.id.attribute = attribute id { xsd:NMTOKEN }
       
   269 
       
   270 # ~~~~~~ image
       
   271 image = element image { image.attributes, image.content }
       
   272 
       
   273 image.attributes =
       
   274    media.id.attribute
       
   275 
       
   276 image.content =
       
   277    copyright?
       
   278 
       
   279 # ~~~~~~ caption
       
   280 media.caption = element caption { media.caption.content }
       
   281 
       
   282 media.caption.content =
       
   283    parag+
       
   284 
       
   285 # ~~~~~~ copyright
       
   286 copyright = element copyright { copyright.content }
       
   287 
       
   288 copyright.content = inlines
       
   289 
       
   290 
       
   291 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   292 
   260 
   293 # ~~~~~~ speech
   261 # ~~~~~~ speech
   294 speech = element speech { speech.content }
   262 speech = element speech { speech.content }
   295 
   263 
   296 speech.content =
   264 speech.content =
   305 
   273 
   306 # ~~~~~~ stage
   274 # ~~~~~~ stage
   307 stage = element stage { stage.content }
   275 stage = element stage { stage.content }
   308 
   276 
   309 stage.content = inlines
   277 stage.content = inlines
       
   278 
       
   279 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   280 
       
   281 # ~~~~~~ media
       
   282 media = element media { media.content }
       
   283 
       
   284 media.content =
       
   285    image+,
       
   286    media.caption?
       
   287 
       
   288 media.id.attribute = attribute id { xsd:NMTOKEN }
       
   289 
       
   290 # ~~~~~~ image
       
   291 image = element image { image.attributes, image.content }
       
   292 
       
   293 image.attributes =
       
   294    media.id.attribute
       
   295 
       
   296 image.content =
       
   297    copyright?
       
   298 
       
   299 # ~~~~~~ caption
       
   300 media.caption = element caption { media.caption.content }
       
   301 
       
   302 media.caption.content =
       
   303    parag+
       
   304 
       
   305 # ~~~~~~ copyright
       
   306 copyright = element copyright { copyright.content }
       
   307 
       
   308 copyright.content = inlines
   310 
   309 
   311 
   310 
   312 # =============================================================================
   311 # =============================================================================
   313 #                                 Inline level
   312 #                                 Inline level
   314 # =============================================================================
   313 # =============================================================================