RelaxNG/publiquiz.rnc
changeset 402 de00a458739d
parent 388 954f6aef52d6
child 403 d129a5a5ab08
equal deleted inserted replaced
400:4eeecb8b9f0b 402:de00a458739d
   104  | pointing
   104  | pointing
   105  | pointing-categories
   105  | pointing-categories
   106  | matching
   106  | matching
   107  | sort
   107  | sort
   108  | categories
   108  | categories
   109  | pip
   109  | mip
   110  | production
   110  | production
   111 
   111 
   112 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   112 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ choices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   113 
   113 
   114 choices-radio = element choices-radio {
   114 choices-radio = element choices-radio {
   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