193 </define> |
193 </define> |
194 <define name="title.content"> |
194 <define name="title.content"> |
195 <ref name="inlines"/> |
195 <ref name="inlines"/> |
196 </define> |
196 </define> |
197 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
197 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
|
198 <define name="identifier.uri"> |
|
199 <element name="identifier"> |
|
200 <attribute name="type"> |
|
201 <value>uri</value> |
|
202 </attribute> |
|
203 <data type="anyURI"/> |
|
204 </element> |
|
205 </define> |
|
206 <define name="identifier.ean"> |
|
207 <element name="identifier"> |
|
208 <attribute name="type"> |
|
209 <value>ean</value> |
|
210 </attribute> |
|
211 <data type="token"> |
|
212 <param name="pattern">\d{13}</param> |
|
213 </data> |
|
214 </element> |
|
215 </define> |
198 <define name="identifier"> |
216 <define name="identifier"> |
199 <element name="identifier"> |
|
200 <ref name="identifier.content"/> |
|
201 <ref name="identifier.attributes"/> |
|
202 </element> |
|
203 </define> |
|
204 <define name="identifier.attributes"> |
|
205 <ref name="class.attribute"/> |
|
206 </define> |
|
207 <define name="class.attribute"> |
|
208 <attribute name="class"> |
|
209 <choice> |
|
210 <value>uri</value> |
|
211 <value>ean</value> |
|
212 </choice> |
|
213 </attribute> |
|
214 </define> |
|
215 <define name="identifier.content"> |
|
216 <choice> |
217 <choice> |
217 <data type="anyURI"/> |
218 <ref name="identifier.uri"/> |
218 <data type="NMTOKEN"/> |
219 <ref name="identifier.ean"/> |
219 </choice> |
220 </choice> |
220 </define> |
221 </define> |
221 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
222 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
222 <define name="language"> |
223 <define name="language"> |
223 <element name="language"> |
224 <element name="language"> |
289 </element> |
290 </element> |
290 </define> |
291 </define> |
291 <define name="lastname.content"> |
292 <define name="lastname.content"> |
292 <ref name="inlines"/> |
293 <ref name="inlines"/> |
293 </define> |
294 </define> |
|
295 <!-- ~~~~~~ role --> |
|
296 <define name="role"> |
|
297 <element name="role"> |
|
298 <ref name="role.attributes"/> |
|
299 </element> |
|
300 </define> |
|
301 <define name="role.attributes"> |
|
302 <ref name="role.of.attribute"/> |
|
303 </define> |
|
304 <define name="role.of.attribute"> |
|
305 <attribute name="of"> |
|
306 <choice> |
|
307 <value>author</value> |
|
308 <value>illustrator</value> |
|
309 </choice> |
|
310 </attribute> |
|
311 </define> |
294 <!-- ~~~~~~ label --> |
312 <!-- ~~~~~~ label --> |
295 <define name="label"> |
313 <define name="label"> |
296 <element name="label"> |
314 <element name="label"> |
297 <ref name="label.content"/> |
315 <ref name="label.content"/> |
298 </element> |
316 </element> |
299 </define> |
317 </define> |
300 <define name="label.content"> |
318 <define name="label.content"> |
301 <ref name="inlines"/> |
319 <ref name="inlines"/> |
302 </define> |
320 </define> |
303 <!-- ~~~~~~ role --> |
|
304 <define name="role"> |
|
305 <element name="role"> |
|
306 <ref name="role.attributes"/> |
|
307 </element> |
|
308 </define> |
|
309 <define name="role.attributes"> |
|
310 <ref name="role.of.attribute"/> |
|
311 </define> |
|
312 <define name="role.of.attribute"> |
|
313 <attribute name="of"> |
|
314 <choice> |
|
315 <value>author</value> |
|
316 <value>illustrator</value> |
|
317 </choice> |
|
318 </attribute> |
|
319 </define> |
|
320 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
321 <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
321 <!-- ~~~~~~ source --> |
322 <!-- ~~~~~~ source --> |
322 <define name="source"> |
323 <define name="source"> |
323 <element name="source"> |
324 <element name="source"> |
324 <ref name="source.attributes"/> |
|
325 <choice> |
325 <choice> |
326 <group> |
326 <group> |
327 <attribute name="type"> |
327 <attribute name="type"> |
328 <value>book</value> |
328 <value>book</value> |
329 </attribute> |
329 </attribute> |
330 <ref name="source.content.book"/> |
330 <ref name="source.content.book"/> |
331 </group> |
331 </group> |
332 <attribute name="type"> |
332 <group> |
333 <value>file</value> |
333 <attribute name="type"> |
334 </attribute> |
334 <value>file</value> |
335 </choice> |
335 </attribute> |
336 </element> |
336 <ref name="source.content.file"/> |
337 </define> |
337 </group> |
338 <define name="source.attributes"> |
338 </choice> |
339 <interleave> |
339 </element> |
340 <optional> |
|
341 <ref name="source.id.attribute"/> |
|
342 </optional> |
|
343 <ref name="remap.attributes"/> |
|
344 </interleave> |
|
345 </define> |
|
346 <define name="source.id.attribute"> |
|
347 <attribute name="id"> |
|
348 <data type="NMTOKEN"/> |
|
349 </attribute> |
|
350 </define> |
340 </define> |
351 <define name="source.content.book"> |
341 <define name="source.content.book"> |
|
342 <ref name="identifier.ean"/> |
352 <optional> |
343 <optional> |
353 <ref name="title"/> |
344 <ref name="title"/> |
354 </optional> |
345 </optional> |
355 <optional> |
346 <zeroOrMore> |
356 <ref name="pagenumber"/> |
347 <ref name="pagenumber"/> |
357 </optional> |
348 </zeroOrMore> |
|
349 </define> |
|
350 <define name="source.content.file"> |
|
351 <ref name="identifier.uri"/> |
358 </define> |
352 </define> |
359 <!-- ~~~~~~ pagenumber --> |
353 <!-- ~~~~~~ pagenumber --> |
360 <define name="pagenumber"> |
354 <define name="pagenumber"> |
361 <element name="pagenumber"> |
355 <element name="pagenumber"> |
362 <ref name="pagenumber.attributes"/> |
356 <ref name="pagenumber.attributes"/> |