[QTI] choiceInteractions as rows of a table

Graham Smith G.H.Smith at leeds.ac.uk
Sun Jan 24 11:36:33 GMT 2010


Hi Bart:

I agree with my colleagues that interleaving  XHTML tsgs and QTI  
elements is not a good idea. I think the <table> element, common to  
XHTML and QTI, is particularly unfortunate.

You might be interested in my solution to a similar problem, extracted  
from the JAssess QTI demo website.

This is not quite the same as your example, in particular because I  
have used a matchInteraction, but it might give you some ideas. You  
see I have given the student a 'don't know' option. This allows a  
student to show that he knows a suggested answer is false. It also  
gives a place for a default checked radio button (altho JAssess does  
not mark a default radio button).

You will see that I have kept the xml free of much formatting  
information. This helps to improve the interoperabilty of the xml.

I have used a combination of the rendering engine's xhtml output and a  
stylesheet to achieve the effect, leaving others free to adopt their  
own styles.
So for example it is easy to switch between 'buttons to the left of  
the choice' and 'buttons to the right of the choice'.

I attach:
1. An image of the result
2. The QTI XML.
3. The rendering engine's xhtml output of the bit which represents the table.
4. The Stylesheet

That might or might not help:

Regards

Graham


Quoting Bart Nagel <bjn at ecs.soton.ac.uk>:

> At 2010-01-22 14:55:37 -0000, R.Bacon at surrey.ac.uk wrote:
>> Do you need to use radio buttons - could you not bury true/false   
>> inlineChoices in a table?
>> Not what you said you wanted to do, but servicable, perhaps?
>
> Hmm, I could... but sadly inlineChoices have one of the options
> selected by default (at least in QTIEngine -- I haven't checked the
> spec) and this is undesirable.
>
> I'll weigh up the options and may well end up doing this.
>
> I do still think making the interaction container elements (those
> which don't actually render anything) transparent to the XHTML
> elements would be a neater solution. But I agree that it could cause
> nasty problems with existing XML parsing code.
>
> Thanks
> --bart
>
> --
> bart nagel
>    e: bjn at ecs.soton.ac.uk         Skype: trem-b
>    w: ecs.soton.ac.uk/people/bjn    Aim: bartremby
> XMPP: tremby at jabber.org             MSN: msn at tremby.net
>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bart.bmp
Type: image/bmp
Size: 912966 bytes
Desc: not available
Url : /public/ims-qti/attachments/20100124/661f64d3/Bart-0001.bmp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bart.xml
Type: text/xml
Size: 5315 bytes
Desc: not available
Url : /public/ims-qti/attachments/20100124/661f64d3/Bart-0001.xml
-------------- next part --------------

<div class = 'itemBodyText'>
<input type='hidden' size='20' name='QUESTIONTYPE' value='matchInteraction'/>

<p>Biotransformations Q01A1</p>
</div><!--itemBodyText-->
<input type='hidden' size='20' name='SuccgrpSOURCEORDER' value='1|2|0|4|3|'/>
<input type='hidden' size='20' name='SuccgrpTARGETORDER' value='0|1|2|'/>

		<div class = 'matchInteraction'>

			<div class = 'matchInteractionHead'>
				<div class='matchPrompt' >

Succinylcholine is<br />
</div><!--matchPrompt-->
				<div class='target' >

		True
	</div><!--target-->
				<div class='target' >

		False
	</div><!--target-->
				<div class='target' >

		Don't know
	</div><!--target-->

			</div><!--matchInteractionHead-->

			<div class = 'simpleAssociableChoice'>

				<div class = 'source'>
				
		metabolised by pseudo-cholinesterase
	
				</div><!-- source-->

				<div class = 'targetSelector'>
<input type='radio' name='B' value='T'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='B' value='F'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='B' value='D'/>

				</div><!-- targetSelector-->

			</div><!-- simpleAssociableChoice-->

			<div class = 'simpleAssociableChoice'>

				<div class = 'source'>
				
		hydrolysed to 2 ACh molecules
	
				</div><!-- source-->

				<div class = 'targetSelector'>

<input type='radio' name='C' value='T'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='C' value='F'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='C' value='D'/>

				</div><!-- targetSelector-->

			</div><!-- simpleAssociableChoice-->

			<div class = 'simpleAssociableChoice'>

				<div class = 'source'>
				
		quickly metabolised by acetyl-cholinesterase
	
				</div><!-- source-->

				<div class = 'targetSelector'>
<input type='radio' name='A' value='T'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='A' value='F'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='A' value='D'/>

				</div><!-- targetSelector-->

			</div><!-- simpleAssociableChoice-->

			<div class = 'simpleAssociableChoice'>

				<div class = 'source'>
				
		acetylated by an acetyl transferase
	
				</div><!-- source-->

				<div class = 'targetSelector'>
<input type='radio' name='E' value='T'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='E' value='F'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='E' value='D'/>

				</div><!-- targetSelector-->

			</div><!-- simpleAssociableChoice-->

			<div class = 'simpleAssociableChoice'>

				<div class = 'source'>
				
		rapidly N-dealkylated
	
				</div><!-- source-->

				<div class = 'targetSelector'>
<input type='radio' name='D' value='T'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='D' value='F'/>

				</div><!-- targetSelector-->

				<div class = 'targetSelector'>
<input type='radio' name='D' value='D'/>

				</div><!-- targetSelector-->

			</div><!-- simpleAssociableChoice-->
<input type='hidden' name='SOURCENAMES'  value='B|C|A|E|D|'/>

</div><!-- matchInteraction-->

<div class = 'itemBodyText'>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: JAssessL.css
Type: text/css
Size: 4303 bytes
Desc: not available
Url : /public/ims-qti/attachments/20100124/661f64d3/JAssessL-0001.css


More information about the IMS-QTI mailing list