542 title.content = inlines |
542 title.content = inlines |
543 |
543 |
544 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
544 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
545 |
545 |
546 # ~~~~~~ identifier |
546 # ~~~~~~ identifier |
547 identifier = identifier.uri | identifier.ean |
547 identifier = element identifier { |
|
548 (attribute type { "ean" }, for.attribute?, xsd:token {pattern = "\d{13}"}) |
|
549 | (attribute type { "uri" }, for.attribute?, xsd:anyURI) |
|
550 } |
|
551 |
|
552 # ~~~~~~ identifier.ean |
|
553 identifier.ean = element identifier { |
|
554 attribute type { "ean" }, for.attribute?, xsd:token {pattern = "\d{13}"} |
|
555 } |
548 |
556 |
549 # ~~~~~~ identifier.uri |
557 # ~~~~~~ identifier.uri |
550 identifier.uri = element identifier { identifier.uri.attributes } |
558 identifier.uri = element identifier { |
551 |
559 attribute type { "uri" }, for.attribute?, xsd:anyURI |
552 identifier.uri.attributes = |
560 } |
553 type_uri.attribute |
|
554 & for.attribute? |
|
555 type_uri.attribute = attribute type { "uri" }, xsd:anyURI |
|
556 |
|
557 # ~~~~~~ identifier.ean |
|
558 identifier.ean = element identifier { identifier.ean.attributes } |
|
559 |
|
560 identifier.ean.attributes = |
|
561 type_ean.attribute |
|
562 & for.attribute? |
|
563 type_ean.attribute = attribute type { "ean" }, xsd:token {pattern = "\d{13}"} |
|
564 |
561 |
565 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ copyright ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
562 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ copyright ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
566 |
563 |
567 copyright = element copyright { copyright.content } |
564 copyright = element copyright { copyright.content } |
568 |
565 |