RelaxNG/publiset.rnc
changeset 34 c51d5097d065
parent 30 c0f9e813c039
child 35 de4114d12ef1
equal deleted inserted replaced
33:c70de8fae29d 34:c51d5097d065
    72 head.attributes =
    72 head.attributes =
    73    remap.attributes
    73    remap.attributes
    74 
    74 
    75 top.head.content =
    75 top.head.content =
    76    (title, subtitle?)?
    76    (title, subtitle?)?
       
    77  & identifier*
    77  & language?
    78  & language?
    78  & author*
    79  & author*
    79  & publisher?
    80  & publisher?
    80  & source?
    81  & source?
    81 division.head.content =
    82 division.head.content =
    87 title = element title { title.content }
    88 title = element title { title.content }
    88 subtitle = element subtitle { title.content }
    89 subtitle = element subtitle { title.content }
    89 
    90 
    90 title.content = inlines
    91 title.content = inlines
    91 
    92 
       
    93 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
    94 
       
    95 identifier = element identifier { identifier.content, identifier.attributes }
       
    96 
       
    97 identifier.attributes =
       
    98    class.attribute
       
    99 class.attribute = attribute class { "uri" | "ean" }
       
   100 
       
   101 identifier.content =  xsd:anyURI | xsd:NMTOKEN
       
   102 
    92 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   103 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    93 
   104 
    94 language = element language { language.attributes }
   105 language = element language { language.attributes }
    95 
   106 
    96 language.attributes = lang.attribute
   107 language.attributes = lang.attribute
    99 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   110 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   100 
   111 
   101 # ~~~~~~ author
   112 # ~~~~~~ author
   102 author = element author { author.content }
   113 author = element author { author.content }
   103 
   114 
       
   115 author.attributes =
       
   116    role.attribute?
       
   117 role.attribute = attribute role { "author" | "illustrator" }
       
   118 
   104 author.content =
   119 author.content =
   105    firstname?,
   120    firstname?,
   106    lastname
   121    lastname,
       
   122    role*
   107 
   123 
   108 # ~~~~~~ publisher
   124 # ~~~~~~ publisher
   109 publisher = element publisher { publisher.content }
   125 publisher = element publisher { publisher.content }
   110 
   126 
   111 publisher.content = inlines
   127 publisher.content =
       
   128    label,
       
   129    url?
   112 
   130 
   113 # ~~~~~~ firstname
   131 # ~~~~~~ firstname
   114 firstname = element firstname { firstname.content }
   132 firstname = element firstname { firstname.content }
   115 
   133 
   116 firstname.content = inlines
   134 firstname.content = inlines
   117 
   135 
   118 # ~~~~~~ lastname
   136 # ~~~~~~ lastname
   119 lastname = element lastname { lastname.content }
   137 lastname = element lastname { lastname.content }
   120 
   138 
   121 lastname.content = inlines
   139 lastname.content = inlines
       
   140 
       
   141 # ~~~~~~ label
       
   142 label = element label { label.content }
       
   143 
       
   144 label.content = inlines
       
   145 
       
   146 # ~~~~~~ role
       
   147 role = element role { role.attributes }
       
   148 
       
   149 role.attributes =
       
   150    role.of.attribute
       
   151 role.of.attribute = attribute of { "author" | "illustrator" }
       
   152 
       
   153 # ~~~~~~ url
       
   154 url = element url { url.content }
       
   155 
       
   156 url.content = xsd:anyURI
   122 
   157 
   123 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   158 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   124 
   159 
   125 # ~~~~~~ source
   160 # ~~~~~~ source
   126 source = element source {
   161 source = element source {