RelaxNG/publidoc.rnc
changeset 34 c51d5097d065
parent 33 c70de8fae29d
child 35 de4114d12ef1
equal deleted inserted replaced
33:c70de8fae29d 34:c51d5097d065
    59 section.head = element head { section.head.content }
    59 section.head = element head { section.head.content }
    60 block.head = element head { block.head.content }
    60 block.head = element head { block.head.content }
    61 
    61 
    62 top.head.content =
    62 top.head.content =
    63    (title, subtitle?)?
    63    (title, subtitle?)?
       
    64  & identifier*
    64  & language?
    65  & language?
    65  & author*
    66  & author*
    66  & publisher?
    67  & publisher?
    67  & date?
    68  & date?
    68  & place?
    69  & place?
    91 title = element title { title.content }
    92 title = element title { title.content }
    92 subtitle = element subtitle { title.content }
    93 subtitle = element subtitle { title.content }
    93 
    94 
    94 title.content = inlines
    95 title.content = inlines
    95 
    96 
       
    97 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
    98 
       
    99 identifier = element identifier { identifier.content, identifier.attributes }
       
   100 
       
   101 identifier.attributes =
       
   102    class.attribute
       
   103 class.attribute = attribute class { "uri" | "ean" }
       
   104 
       
   105 identifier.content =  xsd:anyURI | xsd:NMTOKEN
       
   106 
    96 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   107 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    97 
   108 
    98 language = element language { language.attributes }
   109 language = element language { language.attributes }
    99 
   110 
   100 language.attributes = lang.attribute
   111 language.attributes =
       
   112    lang.attribute
   101 lang.attribute = attribute xml:lang { xsd:language }
   113 lang.attribute = attribute xml:lang { xsd:language }
   102 
   114 
   103 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   115 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   104 
   116 
   105 # ~~~~~~ author
   117 # ~~~~~~ author
   112 author.content =
   124 author.content =
   113    firstname?,
   125    firstname?,
   114    lastname,
   126    lastname,
   115    role*
   127    role*
   116 
   128 
       
   129 # ~~~~~~ publisher
       
   130 publisher = element publisher { publisher.content }
       
   131 
       
   132 publisher.content =
       
   133    label,
       
   134    url?
       
   135 
       
   136 # ~~~~~~ firstname
       
   137 firstname = element firstname { firstname.content }
       
   138 
       
   139 firstname.content = inlines
       
   140 
       
   141 # ~~~~~~ lastname
       
   142 lastname = element lastname { lastname.content }
       
   143 
       
   144 lastname.content = inlines
       
   145 
       
   146 # ~~~~~~ label
       
   147 label = element label { label.content }
       
   148 
       
   149 label.content = inlines
       
   150 
       
   151 # ~~~~~~ role
   117 role = element role { role.attributes }
   152 role = element role { role.attributes }
   118 
   153 
   119 role.attributes =
   154 role.attributes =
   120    role.of.attribute
   155    role.of.attribute
   121 role.of.attribute = attribute of { "author" | "illustrator" }
   156 role.of.attribute = attribute of { "author" | "illustrator" }
   122 
   157 
   123 # ~~~~~~ publisher
   158 # ~~~~~~ url
   124 publisher = element publisher { publisher.content }
   159 url = element url { url.content }
   125 
   160 
   126 publisher.content = inlines
   161 url.content = xsd:anyURI
   127 
       
   128 # ~~~~~~ firstname
       
   129 firstname = element firstname { firstname.content }
       
   130 
       
   131 firstname.content = inlines
       
   132 
       
   133 # ~~~~~~ lastname
       
   134 lastname = element lastname { lastname.content }
       
   135 
       
   136 lastname.content = inlines
       
   137 
   162 
   138 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   163 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   139 
   164 
   140 place = element place { place.content }
   165 place = element place { place.content }
   141 
   166 
   299 glossary.item = element item { glossary.item.content }
   324 glossary.item = element item { glossary.item.content }
   300 
   325 
   301 glossary.item.content =
   326 glossary.item.content =
   302    label,
   327    label,
   303    block+
   328    block+
   304 
       
   305 # ~~~~~~ label
       
   306 label = element label { label.content }
       
   307 
       
   308 label.content = inlines
       
   309 
   329 
   310 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   330 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   311 
   331 
   312 table = element table { table.content }
   332 table = element table { table.content }
   313 
   333