134 |
134 |
135 blanks-fill = element blanks-fill { |
135 blanks-fill = element blanks-fill { |
136 blanks-fill.attributes, blanks-fill.content } |
136 blanks-fill.attributes, blanks-fill.content } |
137 blanks-select = element blanks-select { |
137 blanks-select = element blanks-select { |
138 blanks-select.attributes, blanks-select.content } |
138 blanks-select.attributes, blanks-select.content } |
139 blanks-char = element blanks-char { blanks-select.content } |
139 blanks-char = element blanks-char { |
|
140 blanks-char.attributes, blanks-select.content } |
140 |
141 |
141 blanks-fill.attributes = |
142 blanks-fill.attributes = |
142 success.attribute? |
143 success.attribute? |
143 & strict.attribute? |
144 & strict.attribute? |
144 & long.attribute? |
145 & long.attribute? |
154 blanks-fill.content = |
155 blanks-fill.content = |
155 (blanks.block+ | blanks.section+) |
156 (blanks.block+ | blanks.section+) |
156 blanks-select.content = |
157 blanks-select.content = |
157 blanks.intruders?, |
158 blanks.intruders?, |
158 (blanks.block+ | blanks.section+) |
159 (blanks.block+ | blanks.section+) |
|
160 |
|
161 blanks-char.attributes = |
|
162 remove-space.attribute? |
|
163 remove-space.attribute = attribute remove-space { xsd:boolean } |
159 |
164 |
160 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pointing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
165 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pointing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
161 |
166 |
162 pointing = element pointing { pointing.attributes, pointing.content } |
167 pointing = element pointing { pointing.attributes, pointing.content } |
163 |
168 |
267 |
272 |
268 category.content = |
273 category.content = |
269 category.head, |
274 category.head, |
270 category.item* |
275 category.item* |
271 |
276 |
272 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
277 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
273 |
278 |
274 pip = element pip { pip.attributes, pip.content } |
279 mip = element mip { mip.attributes, mip.content } |
275 |
280 |
276 pip.attributes = |
281 mip.attributes = |
277 success.attribute? |
282 success.attribute? |
278 & multiple.attribute? |
283 & multiple.attribute? |
279 |
284 |
280 pip.content = |
285 mip.content = |
281 pip.image |
286 mip.image |
282 |
287 |
283 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
288 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ production ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
284 |
289 |
285 production = element production { empty } |
290 production = element production { empty } |
286 |
291 |
484 pointing.media.caption?, |
489 pointing.media.caption?, |
485 link? |
490 link? |
486 |
491 |
487 # ~~~~~~ blanks.image |
492 # ~~~~~~ blanks.image |
488 blanks.image = element image { image.attributes, blanks.image.content } |
493 blanks.image = element image { image.attributes, blanks.image.content } |
489 pip.image = element image { image.attributes, pip.image.content } |
494 mip.image = element image { image.attributes, mip.image.content } |
490 |
495 |
491 blanks.image.content = |
496 blanks.image.content = |
492 copyright?, |
497 copyright?, |
493 blanks.dropzone* |
498 blanks.dropzone* |
494 pip.image.content = |
499 mip.image.content = |
495 pip.dropzone+ |
500 mip.dropzone+ |
496 |
501 |
497 # ~~~~~~ dropzone |
502 # ~~~~~~ dropzone |
498 blanks.dropzone = element dropzone { |
503 blanks.dropzone = element dropzone { |
499 blanks.dropzone.attributes, blanks.dropzone.content } |
504 blanks.dropzone.attributes, blanks.dropzone.content } |
500 pip.dropzone = element dropzone { |
505 mip.dropzone = element dropzone { |
501 pip.dropzone.attributes, pip.dropzone.content } |
506 mip.dropzone.attributes, mip.dropzone.content } |
502 |
507 |
503 blanks.dropzone.attributes = |
508 blanks.dropzone.attributes = |
504 x.attribute |
509 x.attribute |
505 & y.attribute |
510 & y.attribute |
506 pip.dropzone.attributes = |
511 mip.dropzone.attributes = |
507 x.attribute |
512 x.attribute |
508 & y.attribute |
513 & y.attribute |
509 & w.attribute |
514 & w.attribute |
510 & h.attribute |
515 & h.attribute |
511 |
516 |
512 blanks.dropzone.content = |
517 blanks.dropzone.content = |
513 blank |
518 blank |
514 pip.dropzone.content = |
519 mip.dropzone.content = |
515 image? |
520 image?, |
|
521 audio? |
516 |
522 |
517 # ~~~~~~ media.caption |
523 # ~~~~~~ media.caption |
518 blanks.media.caption = element caption { |
524 blanks.media.caption = element caption { |
519 caption.attributes, blanks.caption.content } |
525 caption.attributes, blanks.caption.content } |
520 pointing.media.caption = element caption { |
526 pointing.media.caption = element caption { |
661 blank.attributes = |
667 blank.attributes = |
662 area.attribute? |
668 area.attribute? |
663 & long.attribute? |
669 & long.attribute? |
664 & function.attribute? |
670 & function.attribute? |
665 area.attribute = attribute area { xsd:boolean } |
671 area.attribute = attribute area { xsd:boolean } |
666 function.attribute = attribute function { 'lowercase' | 'uppercase' } |
672 function.attribute = attribute function { 'accent' | 'uppercase' } |
667 |
673 |
668 blank.content = |
674 blank.content = |
669 text |
675 text |
670 | (s+, help?, answer?) |
676 | (s+, help?, answer?) |
671 |
677 |