51 composition.head.attributes = |
51 composition.head.attributes = |
52 remap.attributes |
52 remap.attributes |
53 |
53 |
54 composition.head.content = |
54 composition.head.content = |
55 (title, shorttitle?, subtitle?)? |
55 (title, shorttitle?, subtitle?)? |
56 & identifier* |
56 & (identifier, identifier?)? |
57 & copyright* |
57 & copyright* |
58 & collection? |
58 & collection? |
59 & contributors? |
59 & contributors? |
|
60 & date? |
60 & keywordset? |
61 & keywordset? |
|
62 & subjectset? |
61 & abstract? |
63 & abstract? |
62 & cover? |
64 & cover? |
63 |
65 |
64 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ selection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
66 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ selection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
65 |
67 |
222 # ~~~~~~ role |
224 # ~~~~~~ role |
223 role = element role { role.content } |
225 role = element role { role.content } |
224 |
226 |
225 role.content = "author" | "illustrator" | "publisher" | "packager" |
227 role.content = "author" | "illustrator" | "publisher" | "packager" |
226 |
228 |
227 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ keyword ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
229 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ keyword & subject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
228 |
230 |
229 # ~~~~~~ keywordset |
231 # ~~~~~~ keywordset |
230 keywordset = element keywordset { keywordset.content } |
232 keywordset = element keywordset { keywordset.content } |
231 |
233 |
232 keywordset.content = keyword+ |
234 keywordset.content = keyword+ |
233 |
235 |
234 # ~~~~~~ keyword |
236 # ~~~~~~ keyword |
235 keyword = element keyword { keyword.content } |
237 keyword = element keyword { keyword.content } |
236 |
238 |
237 keyword.content = mixed { sup*, sub* } |
239 keyword.content = mixed { sup*, sub* } |
|
240 |
|
241 # ~~~~~~ subjectset |
|
242 subjectset = element subjectset { subjectset.content } |
|
243 |
|
244 subjectset.content = subject+ |
|
245 |
|
246 # ~~~~~~ subject |
|
247 subject = element subject { subject.content } |
|
248 |
|
249 subject.content = xsd:NMTOKEN |
238 |
250 |
239 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
251 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
240 |
252 |
241 abstract = element abstract { abstract.content } |
253 abstract = element abstract { abstract.content } |
242 |
254 |
264 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
276 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
265 |
277 |
266 inlines = mixed { |
278 inlines = mixed { |
267 sup* |
279 sup* |
268 & sub* |
280 & sub* |
|
281 & date* |
269 & name* |
282 & name* |
270 & highlight* |
283 & highlight* |
|
284 & link* |
271 } |
285 } |
272 |
286 |
273 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
287 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
274 |
288 |
275 sup = element sup { inlines } |
289 sup = element sup { inlines } |
276 |
290 |
277 sub = element sub { inlines } |
291 sub = element sub { inlines } |
|
292 |
|
293 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
294 |
|
295 date = element date { date.attributes, date.content } |
|
296 |
|
297 date.attributes = |
|
298 date.value.attribute |
|
299 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear } |
|
300 |
|
301 date.content = mixed { sup* } |
278 |
302 |
279 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
303 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
280 |
304 |
281 name = element name { name.attributes, name.content } |
305 name = element name { name.attributes, name.content } |
282 |
306 |
283 name.attributes = |
307 name.attributes = |
284 name.of.attribute? |
308 name.of.attribute? |
285 name.of.attribute = attribute of |
309 name.of.attribute = attribute of |
286 { "person" | "company" | "book" | "newspaper" | "party" } |
310 { "person" | "company" | "book" | "newspaper" | "party" | "painting" } |
287 |
311 |
288 name.content = inlines |
312 name.content = inlines |
289 |
313 |
290 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
314 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
291 |
315 |