236 </define> |
236 </define> |
237 <define name="title.content"> |
237 <define name="title.content"> |
238 <ref name="inlines"/> |
238 <ref name="inlines"/> |
239 </define> |
239 </define> |
240 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
240 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
|
241 <define name="identifier.uri"> |
|
242 <element name="identifier"> |
|
243 <attribute name="type"> |
|
244 <value>uri</value> |
|
245 </attribute> |
|
246 <data type="anyURI"/> |
|
247 </element> |
|
248 </define> |
|
249 <define name="identifier.ean"> |
|
250 <element name="identifier"> |
|
251 <attribute name="type"> |
|
252 <value>ean</value> |
|
253 </attribute> |
|
254 <data type="token"> |
|
255 <param name="pattern">\d{13}</param> |
|
256 </data> |
|
257 </element> |
|
258 </define> |
241 <define name="identifier"> |
259 <define name="identifier"> |
242 <element name="identifier"> |
|
243 <ref name="identifier.content"/> |
|
244 <ref name="identifier.attributes"/> |
|
245 </element> |
|
246 </define> |
|
247 <define name="identifier.attributes"> |
|
248 <ref name="class.attribute"/> |
|
249 </define> |
|
250 <define name="class.attribute"> |
|
251 <attribute name="class"> |
|
252 <choice> |
|
253 <value>uri</value> |
|
254 <value>ean</value> |
|
255 </choice> |
|
256 </attribute> |
|
257 </define> |
|
258 <define name="identifier.content"> |
|
259 <choice> |
260 <choice> |
260 <data type="anyURI"/> |
261 <ref name="identifier.uri"/> |
261 <data type="NMTOKEN"/> |
262 <ref name="identifier.ean"/> |
262 </choice> |
263 </choice> |
263 </define> |
264 </define> |
264 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
265 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
265 <define name="language"> |
266 <define name="language"> |
266 <element name="language"> |
267 <element name="language"> |
332 </element> |
333 </element> |
333 </define> |
334 </define> |
334 <define name="lastname.content"> |
335 <define name="lastname.content"> |
335 <ref name="inlines"/> |
336 <ref name="inlines"/> |
336 </define> |
337 </define> |
337 <!-- ~~~~~~ label --> |
|
338 <define name="label"> |
|
339 <element name="label"> |
|
340 <ref name="label.content"/> |
|
341 </element> |
|
342 </define> |
|
343 <define name="label.content"> |
|
344 <ref name="inlines"/> |
|
345 </define> |
|
346 <!-- ~~~~~~ role --> |
338 <!-- ~~~~~~ role --> |
347 <define name="role"> |
339 <define name="role"> |
348 <element name="role"> |
340 <element name="role"> |
349 <ref name="role.attributes"/> |
341 <ref name="role.attributes"/> |
350 </element> |
342 </element> |
358 <value>author</value> |
350 <value>author</value> |
359 <value>illustrator</value> |
351 <value>illustrator</value> |
360 </choice> |
352 </choice> |
361 </attribute> |
353 </attribute> |
362 </define> |
354 </define> |
|
355 <!-- ~~~~~~ label --> |
|
356 <define name="label"> |
|
357 <element name="label"> |
|
358 <ref name="label.content"/> |
|
359 </element> |
|
360 </define> |
|
361 <define name="label.content"> |
|
362 <ref name="inlines"/> |
|
363 </define> |
363 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
364 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
364 <define name="place"> |
365 <define name="place"> |
365 <element name="place"> |
366 <element name="place"> |
366 <ref name="place.content"/> |
367 <ref name="place.content"/> |
367 </element> |
368 </element> |
371 </define> |
372 </define> |
372 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
373 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
373 <!-- ~~~~~~ source --> |
374 <!-- ~~~~~~ source --> |
374 <define name="source"> |
375 <define name="source"> |
375 <element name="source"> |
376 <element name="source"> |
376 <ref name="source.attributes"/> |
|
377 <choice> |
377 <choice> |
378 <group> |
378 <group> |
379 <attribute name="type"> |
379 <attribute name="type"> |
380 <value>book</value> |
380 <value>book</value> |
381 </attribute> |
381 </attribute> |
382 <ref name="source.content.book"/> |
382 <ref name="source.content.book"/> |
383 </group> |
383 </group> |
384 <attribute name="type"> |
384 <group> |
385 <value>file</value> |
385 <attribute name="type"> |
386 </attribute> |
386 <value>file</value> |
|
387 </attribute> |
|
388 <ref name="source.content.file"/> |
|
389 </group> |
387 </choice> |
390 </choice> |
388 <ref name="source.content"/> |
391 <ref name="source.content"/> |
389 </element> |
392 </element> |
390 </define> |
393 </define> |
391 <define name="source.attributes"> |
|
392 <ref name="source.id.attribute"/> |
|
393 </define> |
|
394 <define name="source.id.attribute"> |
|
395 <attribute name="id"> |
|
396 <data type="NMTOKEN"/> |
|
397 </attribute> |
|
398 </define> |
|
399 <define name="source.content.book"> |
394 <define name="source.content.book"> |
400 <ref name="title"/> |
395 <ref name="identifier.ean"/> |
|
396 <optional> |
|
397 <ref name="title"/> |
|
398 </optional> |
401 <zeroOrMore> |
399 <zeroOrMore> |
402 <ref name="pagenumber"/> |
400 <ref name="pagenumber"/> |
403 </zeroOrMore> |
401 </zeroOrMore> |
|
402 </define> |
|
403 <define name="source.content.file"> |
|
404 <ref name="identifier.uri"/> |
404 </define> |
405 </define> |
405 <define name="source.content"> |
406 <define name="source.content"> |
406 <zeroOrMore> |
407 <zeroOrMore> |
407 <ref name="annotation"/> |
408 <ref name="annotation"/> |
408 </zeroOrMore> |
409 </zeroOrMore> |