XML for AMT ExternalQuestion

If you are trying to use Amazon Mechanical Turk for something and you don't know XML very well, you might run into this error when trying to write an ExternalQuestion with the command line tools.

vanhoudn@gauze:~/workspace/aws-mturk-clt-1.3.0/samples/rate_tests$ ./run.sh
--[Initializing]----------
Input: ../samples/rate_tests/rate_tests.input.csv
Properties: ../samples/rate_tests/rate_tests.properties
Question File: ../samples/rate_tests/rate_tests.question
Preview mode disabled
--[Loading HITs]----------
Start time: Thu Aug 05 16:12:33 EDT 2010
[Fatal Error] :6:111: The reference to entity "student2" must end with the ';' delimiter.
[ERROR] Error creating HIT 1 (3001): [6,111] The reference to entity "student2" must end with the ';' delimiter.
...

The issue is that I'm trying to pass more than one variable via the url and this:
[sourcecode language="xml"]
<ExternalURL>
http://www.contrib.andrew.cmu.edu/~nmv/amt/test.php?
student1=${helper.urlencode($student1)}
&student2=${helper.urlencode($student2)}
&student3=${helper.urlencode($student3)}
</ExternalURL>
[/sourcecode]

Should instead be:
[sourcecode language="xml"]
<ExternalURL>
http://www.contrib.andrew.cmu.edu/~nmv/amt/test.php?
student1=${helper.urlencode($student1)}
&amp;student2=${helper.urlencode($student2)}
&amp;student3=${helper.urlencode($student3)}
</ExternalURL>
[/sourcecode]

The & that separates the variables need to be replaced with &amp;. Then it works just fine.

One thought on “XML for AMT ExternalQuestion

Leave a Reply