rturk 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. data/README.markdown +3 -2
  2. data/Rakefile +10 -4
  3. data/VERSION +1 -1
  4. data/aws_docs/ApiReference_AnswerKeyDataStructureArticle.html +98 -0
  5. data/aws_docs/ApiReference_ApproveAssignmentOperation.html +75 -0
  6. data/aws_docs/ApiReference_AssignQualificationOperation.html +107 -0
  7. data/aws_docs/ApiReference_AssignmentDataStructureArticle.html +171 -0
  8. data/aws_docs/ApiReference_BlockWorkerOperation.html +70 -0
  9. data/aws_docs/ApiReference_ChangeHITTypeOfHITOperation.html +68 -0
  10. data/aws_docs/ApiReference_CommonParametersArticle.html +119 -0
  11. data/aws_docs/ApiReference_CreateHITOperation.html +330 -0
  12. data/aws_docs/ApiReference_CreateQualificationTypeOperation.html +190 -0
  13. data/aws_docs/ApiReference_DataStructuresArticle.html +7 -0
  14. data/aws_docs/ApiReference_DisableHITOperation.html +63 -0
  15. data/aws_docs/ApiReference_DisposeHITOperation.html +56 -0
  16. data/aws_docs/ApiReference_DisposeQualificationTypeOperation.html +52 -0
  17. data/aws_docs/ApiReference_ExtendHITOperation.html +86 -0
  18. data/aws_docs/ApiReference_ExternalQuestionArticle.html +125 -0
  19. data/aws_docs/ApiReference_ForceExpireHITOperation.html +61 -0
  20. data/aws_docs/ApiReference_FormattedContentXHTMLArticle.html +289 -0
  21. data/aws_docs/ApiReference_GetAccountBalanceOperation.html +51 -0
  22. data/aws_docs/ApiReference_GetAssignmentsForHITOperation.html +166 -0
  23. data/aws_docs/ApiReference_GetBonusPaymentsOperation.html +160 -0
  24. data/aws_docs/ApiReference_GetFileUploadURLOperation.html +75 -0
  25. data/aws_docs/ApiReference_GetHITOperation.html +89 -0
  26. data/aws_docs/ApiReference_GetHITsForQualificationTypeOperation.html +137 -0
  27. data/aws_docs/ApiReference_GetQualificationRequestsOperation.html +155 -0
  28. data/aws_docs/ApiReference_GetQualificationScoreOperation.html +68 -0
  29. data/aws_docs/ApiReference_GetQualificationTypeOperation.html +57 -0
  30. data/aws_docs/ApiReference_GetQualificationsForQualificationTypeOperation.html +134 -0
  31. data/aws_docs/ApiReference_GetRequesterStatisticOperation.html +315 -0
  32. data/aws_docs/ApiReference_GetReviewableHITsOperation.html +155 -0
  33. data/aws_docs/ApiReference_GrantBonusOperation.html +95 -0
  34. data/aws_docs/ApiReference_GrantQualificationOperation.html +69 -0
  35. data/aws_docs/ApiReference_HITDataStructureArticle.html +302 -0
  36. data/aws_docs/ApiReference_HelpOperation.html +125 -0
  37. data/aws_docs/ApiReference_LocaleDataStructureArticle.html +29 -0
  38. data/aws_docs/ApiReference_NotificationAPI_BuildingANotificationReceptor.html +36 -0
  39. data/aws_docs/ApiReference_NotificationAPI_ElementsOfANotification.html +40 -0
  40. data/aws_docs/ApiReference_NotificationDataStructureArticle.html +73 -0
  41. data/aws_docs/ApiReference_NotificationReceptorAPIArticle.html +9 -0
  42. data/aws_docs/ApiReference_NotificationReceptorAPI_RESTTransportArticle.html +39 -0
  43. data/aws_docs/ApiReference_NotificationReceptorAPI_SOAPTransportArticle.html +45 -0
  44. data/aws_docs/ApiReference_NotifyWorkersOperation.html +82 -0
  45. data/aws_docs/ApiReference_OperationsArticle.html +8 -0
  46. data/aws_docs/ApiReference_PriceDataStructureArticle.html +65 -0
  47. data/aws_docs/ApiReference_QualificationDataStructureArticle.html +89 -0
  48. data/aws_docs/ApiReference_QualificationRequestDataStructureArticle.html +102 -0
  49. data/aws_docs/ApiReference_QualificationRequirementDataStructureArticle.html +176 -0
  50. data/aws_docs/ApiReference_QualificationTypeDataStructureArticle.html +198 -0
  51. data/aws_docs/ApiReference_QuestionAnswerDataArticle.html +8 -0
  52. data/aws_docs/ApiReference_QuestionFormAnswersDataStructureArticle.html +54 -0
  53. data/aws_docs/ApiReference_QuestionFormDataStructureArticle.html +796 -0
  54. data/aws_docs/ApiReference_RegisterHITTypeOperation.html +149 -0
  55. data/aws_docs/ApiReference_RejectAssignmentOperation.html +66 -0
  56. data/aws_docs/ApiReference_RejectQualificationRequestOperation.html +61 -0
  57. data/aws_docs/ApiReference_RevokeQualificationOperation.html +78 -0
  58. data/aws_docs/ApiReference_SearchHITsOperation.html +164 -0
  59. data/aws_docs/ApiReference_SearchQualificationTypesOperation.html +211 -0
  60. data/aws_docs/ApiReference_SendTestEventNotificationOperation.html +78 -0
  61. data/aws_docs/ApiReference_SetHITAsReviewingOperation.html +73 -0
  62. data/aws_docs/ApiReference_SetHITTypeNotificationOperation.html +99 -0
  63. data/aws_docs/ApiReference_UnblockWorkerOperation.html +67 -0
  64. data/aws_docs/ApiReference_UpdateQualificationScoreOperation.html +77 -0
  65. data/aws_docs/ApiReference_UpdateQualificationTypeOperation.html +180 -0
  66. data/aws_docs/ApiReference_WsdlLocationArticle.html +95 -0
  67. data/aws_docs/ApiReference_XMLParameterValuesArticle.html +37 -0
  68. data/aws_docs/Welcome.html +125 -0
  69. data/aws_docs/WhatsNew.html +16 -0
  70. data/aws_docs/_title.html +28 -0
  71. data/aws_docs/_toc.html +749 -0
  72. data/aws_docs/aws-docs-IE.css +419 -0
  73. data/aws_docs/aws-docs.css +455 -0
  74. data/aws_docs/copyrightinfo.html +14 -0
  75. data/aws_docs/frameset.js +12 -0
  76. data/aws_docs/images/Feedback_link.gif +0 -0
  77. data/aws_docs/images/caution.png +0 -0
  78. data/aws_docs/images/home.gif +0 -0
  79. data/aws_docs/images/important.png +0 -0
  80. data/aws_docs/images/next.gif +0 -0
  81. data/aws_docs/images/note.png +0 -0
  82. data/aws_docs/images/prev.gif +0 -0
  83. data/aws_docs/images/tip.png +0 -0
  84. data/aws_docs/images/title-swoosh-logo.gif +0 -0
  85. data/aws_docs/images/toc_bullet.gif +0 -0
  86. data/aws_docs/images/toc_plus.gif +0 -0
  87. data/aws_docs/index.html +18 -0
  88. data/aws_docs/toc.js +84 -0
  89. data/lib/rturk.rb +2 -2
  90. data/lib/rturk/adapter.rb +11 -0
  91. data/lib/rturk/adapters/assignment.rb +13 -50
  92. data/lib/rturk/adapters/hit.rb +21 -9
  93. data/lib/rturk/adapters/worker.rb +23 -0
  94. data/lib/rturk/operation.rb +1 -1
  95. data/lib/rturk/operations/create_hit.rb +10 -54
  96. data/lib/rturk/operations/register_hit_type.rb +68 -0
  97. data/lib/rturk/operations/search_hits.rb +44 -0
  98. data/lib/rturk/parser.rb +8 -0
  99. data/lib/rturk/parsers/answer_parser.rb +29 -0
  100. data/lib/rturk/parsers/assignment_parser.rb +49 -0
  101. data/lib/rturk/parsers/hit_parser.rb +50 -0
  102. data/lib/rturk/{response.rb → parsers/response.rb} +7 -2
  103. data/lib/rturk/{responses → parsers/responses}/create_hit_response.rb +2 -2
  104. data/lib/rturk/{responses → parsers/responses}/get_account_balance_response.rb +0 -0
  105. data/lib/rturk/{responses → parsers/responses}/get_assignments_for_hit_response.rb +3 -3
  106. data/lib/rturk/{responses → parsers/responses}/get_hit_response.rb +9 -16
  107. data/lib/rturk/{responses → parsers/responses}/get_reviewable_hits_response.rb +3 -5
  108. data/lib/rturk/parsers/responses/register_hit_type_response.rb +17 -0
  109. data/lib/rturk/parsers/responses/search_hits_response.rb +65 -0
  110. data/lib/rturk/xml_utilities.rb +14 -3
  111. data/rturk.gemspec +112 -12
  112. data/spec/adapters/hit_spec.rb +10 -0
  113. data/spec/fake_responses/register_hit_type.xml +6 -0
  114. data/spec/fake_responses/search_hits.xml +50 -0
  115. data/spec/operations/create_hit_spec.rb +2 -2
  116. data/spec/operations/get_hit_spec.rb +1 -1
  117. data/spec/operations/register_hit_type_spec.rb +24 -0
  118. data/spec/{adapters/answers_spec.rb → parsers/answer_parser_spec.rb} +2 -2
  119. data/spec/parsers/hit_parser_spec.rb +41 -0
  120. data/spec/xml_parse_spec.rb +2 -2
  121. metadata +111 -11
  122. data/lib/rturk/adapters/answers.rb +0 -38
@@ -0,0 +1,8 @@
1
+ <html xmlns:fo="http://www.w3.org/1999/XSL/Format"><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>Chapter&nbsp;7.&nbsp;Question and Answer Data</title><link rel="stylesheet" href="aws-docs-IE.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="#top" title="Amazon Mechanical Turk"><link rel="up" href="#top" title="Amazon Mechanical Turk"><link rel="prev" href="ApiReference_NotificationDataStructureArticle.html" title="Notification"><link rel="next" href="ApiReference_XMLParameterValuesArticle.html" title="Using XML Parameter Values"><!--[if !IE]>--><link rel="stylesheet" href="aws-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><!--<![endif]--><meta xmlns="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><script src="/urchin.js" type="text/javascript"></script><script type="text/javascript">
4
+ urchinTracker();
5
+ </script><script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript" src="frameset.js"> //
6
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_NotificationDataStructureArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionAnswerDataArticle">Documentation Feedback</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_XMLParameterValuesArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr></table><div class="breadcrumb"><a href="Welcome.html">Welcome</a><a href=""></a> &raquo; <strong>Question and Answer Data</strong></div></div><div class="chapter" lang="en" id="ApiReference_QuestionAnswerDataArticle"><div class="titlepage"><div><div><h1 class="topictitle">Question and Answer Data</h1></div></div></div><a class="indexterm" name="d0e16903"></a><a class="indexterm" name="d0e16906"></a><div class="highlights"><p><strong>Topics</strong></p><ul><li><a href="ApiReference_XMLParameterValuesArticle.html">Using XML Parameter Values</a></li><li><a href="ApiReference_QuestionFormDataStructureArticle.html">QuestionForm</a></li><li><a href="ApiReference_FormattedContentXHTMLArticle.html">Formatted Content: XHTML</a></li><li><a href="ApiReference_QuestionFormAnswersDataStructureArticle.html">QuestionFormAnswers</a></li><li><a href="ApiReference_AnswerKeyDataStructureArticle.html">AnswerKey</a></li><li><a href="ApiReference_ExternalQuestionArticle.html">ExternalQuestion</a></li></ul></div><p> The questions and answers that Amazon Mechanical Turk passes between Requesters and Workers are XML
7
+ documents that conform to schemas. These documents are passed to the service and returned by the
8
+ service as parameter values. </p></div><div class="navfooter"><table width="100%" summary="Navigation footer" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_NotificationDataStructureArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionAnswerDataArticle">Documentation Feedback</a><br><a href="copyrightinfo.html">Copyright Information</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_XMLParameterValuesArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr><tr><td width="30%" align="left" valign="top">&nbsp;</td><td width="40%" align="center"><a accesskey="h" href="#top"><img src="images/home.gif" alt="Home"></a></td><td width="30%" align="right" valign="top">&nbsp;</td></tr></table></div></body></html>
@@ -0,0 +1,54 @@
1
+ <html xmlns:fo="http://www.w3.org/1999/XSL/Format"><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>QuestionFormAnswers</title><link rel="stylesheet" href="aws-docs-IE.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="#top" title="Amazon Mechanical Turk"><link rel="up" href="ApiReference_QuestionAnswerDataArticle.html" title="Chapter&nbsp;7.&nbsp;Question and Answer Data"><link rel="prev" href="ApiReference_FormattedContentXHTMLArticle.html" title="Formatted Content: XHTML"><link rel="next" href="ApiReference_AnswerKeyDataStructureArticle.html" title="AnswerKey"><!--[if !IE]>--><link rel="stylesheet" href="aws-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><!--<![endif]--><meta xmlns="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><script src="/urchin.js" type="text/javascript"></script><script type="text/javascript">
4
+ urchinTracker();
5
+ </script><script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript" src="frameset.js"> //
6
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_FormattedContentXHTMLArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionFormAnswersDataStructureArticle">Documentation Feedback</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_AnswerKeyDataStructureArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr></table><div class="breadcrumb"><a href="Welcome.html">Welcome</a><a href=""></a> &raquo; <a href="ApiReference_QuestionAnswerDataArticle.html">Question and Answer Data</a> &raquo; <strong>QuestionFormAnswers</strong></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h1 class="topictitle">QuestionFormAnswers</h1></div></div></div><a class="indexterm" name="d0e19762"></a><a class="indexterm" name="d0e19765"></a><a class="indexterm" name="d0e19770"></a><a class="indexterm" name="d0e19775"></a><a class="indexterm" name="d0e19780"></a><div class="highlights"><p><strong>Topics</strong></p><ul><li><a href="ApiReference_QuestionFormAnswersDataStructureArticle.html#d0e19788">Description</a></li><li><a href="ApiReference_QuestionFormAnswersDataStructureArticle.html#d0e19853">The Structure of Answers</a></li><li><a href="ApiReference_QuestionFormAnswersDataStructureArticle.html#d0e19940">Example</a></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e19788">Description</h2></div></div></div><p> The <em class="parameter"><code>QuestionFormAnswers</code></em> data format describes answers submitted by a
7
+ Worker for a HIT, or for a Qualification test. </p><p> A <em class="parameter"><code>QuestionFormAnswers</code></em> data structure is a string value that consists of
8
+ XML data. The XML data must conform to the QuestionForm schema. See <a class="link" href="ApiReference_WsdlLocationArticle.html" title="Chapter&nbsp;3.&nbsp;WSDL and Schema Locations">WSDL and Schema Locations</a> for the location
9
+ of this schema. For more information about using XML data as parameter or return value, see <a class="link" href="ApiReference_XMLParameterValuesArticle.html" title="Using XML Parameter Values">Using XML Parameter Values</a>. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p> Answer data is <span class="emphasis"><em>not</em></span> guaranteed by the Amazon Mechanical Turk Service to
10
+ conform to the answer specifications described in a QuestionForm. MTS only guarantees that
11
+ answer data returned by the service will conform to the
12
+ <em class="parameter"><code>QuestionFormAnswers</code></em> schema. Your application should check that the
13
+ answer data sufficiently answers the question. </p></td></tr></table></div><p> The <em class="parameter"><code>QuestionFormAnswers</code></em> data structure is used as a response element for
14
+ the following operations: </p><div class="itemizedlist"><ul type="disc"><li><p>
15
+ <code class="function">GetAssignmentsForHIT</code>
16
+ </p></li><li><p>
17
+ <code class="function">GetQualificationRequests</code>
18
+ </p></li></ul></div><p> The <em class="parameter"><code>QuestionFormAnswers</code></em> data structure is a value in an <a class="link" href="ApiReference_AssignmentDataStructureArticle.html" title="Assignment">Assignment data structure</a>, and a
19
+ value in a <a class="link" href="ApiReference_QualificationRequestDataStructureArticle.html" title="QualificationRequest">QualificationRequest data structure</a>. </p><p> All elements in a <em class="parameter"><code>QuestionFormAnswers</code></em> belong to a namespace whose name
20
+ is identical to the URL of the <em class="parameter"><code>QuestionFormAnswers</code></em> schema document for the
21
+ version of the API you are using. </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e19853">The Structure of Answers</h2></div></div></div><p> A <em class="parameter"><code>QuestionFormAnswers</code></em> element contains an <em class="parameter"><code>Answer</code></em>
22
+ element for each question in the HIT or Qualification test for which the Worker provided an
23
+ answer. Each <em class="parameter"><code>Answer</code></em> contains a <em class="parameter"><code>QuestionIdentifier</code></em>
24
+ element whose value corresponds to the <em class="parameter"><code>QuestionIdentifier</code></em> of a
25
+ <em class="parameter"><code>Question</code></em> in the QuestionForm. See <a class="link" href="ApiReference_QuestionFormDataStructureArticle.html" title="QuestionForm">the QuestionForm data structure</a>
26
+ for more information about questions and answer specifications. </p><p> If the question expects a free-text answer, the <em class="parameter"><code>Answer</code></em> element contains
27
+ a <em class="parameter"><code>FreeText</code></em> element. This element contains the Worker's answer. </p><p> If the question expects a multiple-choice answer, the <em class="parameter"><code>Answer</code></em> element
28
+ contains a <em class="parameter"><code>SelectionIdentifier</code></em> element for each option the Worker selected.
29
+ If the Worker did not make any selections, the <em class="parameter"><code>Answer</code></em> will contain zero
30
+ <em class="parameter"><code>SelectionIdentifier</code></em> elements. The identifier corresponds to the
31
+ <em class="parameter"><code>SelectionIdentifier</code></em> for the selection provided in the answer
32
+ specification for the question. </p><p> If the multiple-choice question includes an <em class="parameter"><code>OtherSelection</code></em> field, and
33
+ the Worker enters data into this field, that data appears in the <em class="parameter"><code>Answer</code></em> in
34
+ an <em class="parameter"><code>OtherSelectionText</code></em> element. If the Worker both selects an option from
35
+ the list and provides text in this field, both values will be present in the answer. </p><p> If the question expects an uploaded file as an answer, the <em class="parameter"><code>Answer</code></em>
36
+ element contains an <em class="parameter"><code>UploadedFileSizeInBytes</code></em> element, and an
37
+ <em class="parameter"><code>UploadedFileKey</code></em> element. <em class="parameter"><code>UploadedFileSizeInBytes</code></em>
38
+ indicates the size of the file the Worker uploaded. <em class="parameter"><code>UploadedFileKey</code></em> is a
39
+ unique identifier for the file, unique with respect to other files that Workers may have uploaded.
40
+ To retrieve an uploaded file, your application calls the <code class="function">GetFileUploadURL</code>
41
+ operation, which returns a temporary URL your application can use to download the file. See <a class="link" href="ApiReference_GetFileUploadURLOperation.html" title="GetFileUploadURL">the GetFileUploadURL operation</a> for
42
+ more information on retrieving uploaded files. </p><p> Answer data will always conform to the answer specification provided in the HIT question, or in
43
+ the Qualification test question. </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e19940">Example</h2></div></div></div><p> The following is an example of a complete <em class="parameter"><code>QuestionFormAnswers</code></em> data
44
+ structure. Remember that this value will be returned as a single return value, XML escaped in the
45
+ response. </p><pre class="programlisting">&lt;QuestionFormAnswers xmlns="<em class="replaceable"><code>[the QuestionFormAnswers schema URL]</code></em>"&gt;
46
+ &lt;Answer&gt;
47
+ &lt;QuestionIdentifier&gt;nextmove&lt;/QuestionIdentifier&gt;
48
+ &lt;FreeText&gt;C3&lt;/FreeText&gt;
49
+ &lt;/Answer&gt;
50
+ &lt;Answer&gt;
51
+ &lt;QuestionIdentifier&gt;likelytowin&lt;/QuestionIdentifier&gt;
52
+ &lt;SelectionIdentifier&gt;notlikely&lt;/SelectionIdentifier&gt;
53
+ &lt;/Answer&gt;
54
+ &lt;/QuestionFormAnswers&gt;</pre></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_FormattedContentXHTMLArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionFormAnswersDataStructureArticle">Documentation Feedback</a><br><a href="copyrightinfo.html">Copyright Information</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_AnswerKeyDataStructureArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr><tr><td width="30%" align="left" valign="top">&nbsp;</td><td width="40%" align="center"><a accesskey="h" href="#top"><img src="images/home.gif" alt="Home"></a></td><td width="30%" align="right" valign="top">&nbsp;</td></tr></table></div></body></html>
@@ -0,0 +1,796 @@
1
+ <html xmlns:fo="http://www.w3.org/1999/XSL/Format"><head>
2
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
+ <title>QuestionForm</title><link rel="stylesheet" href="aws-docs-IE.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="#top" title="Amazon Mechanical Turk"><link rel="up" href="ApiReference_QuestionAnswerDataArticle.html" title="Chapter&nbsp;7.&nbsp;Question and Answer Data"><link rel="prev" href="ApiReference_XMLParameterValuesArticle.html" title="Using XML Parameter Values"><link rel="next" href="ApiReference_FormattedContentXHTMLArticle.html" title="Formatted Content: XHTML"><!--[if !IE]>--><link rel="stylesheet" href="aws-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><!--<![endif]--><meta xmlns="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><script src="/urchin.js" type="text/javascript"></script><script type="text/javascript">
4
+ urchinTracker();
5
+ </script><script xmlns="http://www.w3.org/1999/xhtml" type="text/javascript" src="frameset.js"> //
6
+ </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_XMLParameterValuesArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionFormDataStructureArticle">Documentation Feedback</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_FormattedContentXHTMLArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr></table><div class="breadcrumb"><a href="Welcome.html">Welcome</a><a href=""></a> &raquo; <a href="ApiReference_QuestionAnswerDataArticle.html">Question and Answer Data</a> &raquo; <strong>QuestionForm</strong></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h1 class="topictitle">QuestionForm</h1></div></div></div><a class="indexterm" name="d0e17003"></a><a class="indexterm" name="d0e17006"></a><a class="indexterm" name="d0e17011"></a><a class="indexterm" name="d0e17016"></a><div class="highlights"><p><strong>Topics</strong></p><ul><li><a href="ApiReference_QuestionFormDataStructureArticle.html#d0e17024">Description</a></li><li><a href="ApiReference_QuestionFormDataStructureArticle.html#d0e17095">QuestionForm Structure</a></li><li><a href="ApiReference_QuestionFormDataStructureArticle.html#d0e17327">Content Structure</a></li><li><a href="ApiReference_QuestionFormDataStructureArticle.html#d0e18171">Answer Specification</a></li><li><a href="ApiReference_QuestionFormDataStructureArticle.html#d0e18973">Example</a></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e17024">Description</h2></div></div></div><p> The <em class="parameter"><code>QuestionForm</code></em> data format describes one or more
7
+ <span class="emphasis"><em>questions</em></span> for a HIT, or for a Qualification test. It contains instructions
8
+ and data Workers use to answer the questions, and a set of one or more form fields, which are
9
+ rendered as a web form for a Worker to fill out and submit. </p><p> A <em class="parameter"><code>QuestionForm</code></em> is a string value that consists of XML data. The XML data
10
+ must conform to the <em class="parameter"><code>QuestionForm</code></em> schema. All elements in a
11
+ <em class="parameter"><code>QuestionForm</code></em> belong to a namespace whose name is identical to the URL
12
+ of the <em class="parameter"><code>QuestionForm</code></em> schema document. See <a class="link" href="ApiReference_WsdlLocationArticle.html" title="Chapter&nbsp;3.&nbsp;WSDL and Schema Locations">WSDL and Schema Locations</a> for the location
13
+ of this schema. </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Tip"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="images/tip.png"></td><th align="left">Tip</th></tr><tr><td align="left" valign="top"><p class="simpara"> For information about creating HITs that use your own web site in a frame instead of
14
+ questions, see <a class="link" href="ApiReference_ExternalQuestionArticle.html" title="ExternalQuestion">the ExternalQuestion data
15
+ structure</a>. </p></td></tr></table></div><p> The <em class="parameter"><code>QuestionForm</code></em> data structure is a value in a <a class="link" href="ApiReference_HITDataStructureArticle.html" title="HIT">HIT data structure</a> and a value in a
16
+ <a class="link" href="ApiReference_QualificationTypeDataStructureArticle.html" title="QualificationType"> QualificationType data
17
+ structure</a>. The <em class="parameter"><code>QuestionForm</code></em> data structure is used as a
18
+ parameter value for the following operations: </p><div class="itemizedlist"><ul type="disc"><li><p>
19
+ <code class="function">CreateHIT</code>
20
+ </p></li><li><p>
21
+ <code class="function">CreateQualificationType</code>
22
+ </p></li><li><p>
23
+ <code class="function">UpdateQualificationType</code>
24
+ </p></li></ul></div><p> For more information about using XML data as a parameter or return value, see <a class="link" href="ApiReference_XMLParameterValuesArticle.html" title="Using XML Parameter Values">Using XML Parameter Values</a>. </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e17095">QuestionForm Structure</h2></div></div></div><p> The top-most element of the <em class="parameter"><code>QuestionForm</code></em> data structure is a
25
+ <em class="parameter"><code>QuestionForm</code></em> element. This element contains optional
26
+ <em class="parameter"><code>Overview</code></em> elements and one or more <em class="parameter"><code>Question</code></em>
27
+ elements. There can be any number of these two element types listed in any order. The following
28
+ example structure has an <em class="parameter"><code>Overview</code></em> element and a
29
+ <em class="parameter"><code>Question</code></em> element followed by a second <em class="parameter"><code>Overview</code></em>
30
+ element and <em class="parameter"><code>Question</code></em> element&#8212;all within the same
31
+ <em class="parameter"><code>QuestionForm</code></em>. </p><pre class="programlisting">&lt;QuestionForm xmlns="<em class="replaceable"><code>[the QuestionForm schema URL]</code></em>"&gt;
32
+ &lt;Overview&gt;
33
+ <em class="replaceable"><code>[...]</code></em>
34
+ &lt;/Overview&gt;
35
+ &lt;Question&gt;
36
+ <em class="replaceable"><code>[...]</code></em>
37
+ &lt;/Question&gt;
38
+ &lt;Overview&gt;
39
+ <em class="replaceable"><code>[...]</code></em>
40
+ &lt;/Overview&gt;
41
+ &lt;Question&gt;
42
+ <em class="replaceable"><code>[...]</code></em>
43
+ &lt;/Question&gt;
44
+ <em class="replaceable"><code>[...]</code></em>
45
+ &lt;/QuestionForm&gt;</pre><p> The <em class="parameter"><code>Overview</code></em> element describes instructions and information, and
46
+ presents them separately from the set of questions. It can contain any kind of informational
47
+ content, as described below. If omitted, no overview text is displayed above the questions. </p><p> Each <em class="parameter"><code>Question</code></em> element can contain the elements described in the
48
+ following table. See also the example below the table. </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
49
+ <p class="simpara">
50
+ <em class="parameter"><code>QuestionIdentifier</code></em>
51
+ </p>
52
+ </td><td>
53
+ <p class="simpara"> An identifier for the question. This identifier is used to associate the
54
+ Worker's answers with the question in the answer data. </p>
55
+ <p class="simpara">Type: String </p>
56
+ <p class="simpara">Default: None</p>
57
+ </td><td>
58
+ <p class="simpara">Yes</p>
59
+ </td></tr><tr><td>
60
+ <p class="simpara">
61
+ <em class="parameter"><code>DisplayName</code></em>
62
+ </p>
63
+ </td><td>
64
+ <p class="simpara"> A name for the question, displayed as a prominent heading. </p>
65
+ <p class="simpara">Type: String</p>
66
+ <p class="simpara">Default: None</p>
67
+ </td><td>
68
+ <p class="simpara">No</p>
69
+ </td></tr><tr><td>
70
+ <p class="simpara">
71
+ <em class="parameter"><code>IsRequired</code></em>
72
+ </p>
73
+ </td><td>
74
+ <p class="simpara"> Specifies whether the Worker must provide an answer for this question to
75
+ successfully submit the form. </p>
76
+ <p class="simpara">Type: Boolean</p>
77
+ <p class="simpara">Default: false</p>
78
+ <p class="simpara">Valid Values: true | false</p>
79
+ </td><td>
80
+ <p class="simpara">No</p>
81
+ </td></tr><tr><td>
82
+ <p class="simpara">
83
+ <em class="parameter"><code>QuestionContent</code></em>
84
+ </p>
85
+ </td><td>
86
+ <p class="simpara"> The instructions and data specific to this question, such as the text of
87
+ the question. It can contain any kind of informational content, as described
88
+ in the <em class="citetitle">Content Structure</em> section below. </p>
89
+ <p class="simpara">Type: Content structure</p>
90
+ <p class="simpara">Default: None</p>
91
+ </td><td>
92
+ <p class="simpara">Yes</p>
93
+ </td></tr><tr><td>
94
+ <p class="simpara">
95
+ <em class="parameter"><code>AnswerSpecification</code></em>
96
+ </p>
97
+ </td><td>
98
+ <p class="simpara"> A structure that describes the field type and possible values for the
99
+ answer to this question, as described in the <em class="citetitle">Answer
100
+ Specification</em> section below. This element controls how the form
101
+ field is rendered and specifies which values are valid answers for this
102
+ question. </p>
103
+ <p class="simpara">Type: An answer specification structure</p>
104
+ <p class="simpara">Default: None</p>
105
+ <p class="simpara"> Valid Values: <em class="parameter"><code>FreeTextAnswer</code></em> |
106
+ <em class="parameter"><code>SelectionAnswer</code></em> |
107
+ <em class="parameter"><code>FileUploadAnswer</code></em>
108
+ </p>
109
+ </td><td>
110
+ <p class="simpara">Yes</p>
111
+ </td></tr></tbody></table></div><p> For example: </p><pre class="programlisting"> &lt;Question&gt;
112
+ &lt;QuestionIdentifier&gt;my_question_id&lt;/QuestionIdentifier&gt;
113
+ &lt;DisplayName&gt;My Question&lt;/DisplayName&gt;
114
+ &lt;IsRequired&gt;true&lt;/IsRequired&gt;
115
+ &lt;QuestionContent&gt;
116
+ <em class="replaceable"><code>[...]</code></em>
117
+ &lt;/QuestionContent&gt;
118
+ &lt;AnswerSpecification&gt;
119
+ <em class="replaceable"><code>[...]</code></em>
120
+ &lt;/AnswerSpecification&gt;
121
+ &lt;/Question&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e17327">Content Structure</h2></div></div></div><p> The <em class="parameter"><code>Overview</code></em> elements and the <em class="parameter"><code>QuestionContent</code></em>
122
+ elements of a <em class="parameter"><code>QuestionForm</code></em> can contain different types of information. For
123
+ example, you might include a paragraph of text and an image in your HIT's overview. </p><p> Each kind of information is definded by a corresponding element. These elements can appear in
124
+ any number, in any order. The content elements are rendered in the order in which they occur in
125
+ the containing element. </p><p> Following are the allowed information types: </p><div class="itemizedlist"><ul type="disc"><li><em class="parameter"><code>Title</code></em></li><li><em class="parameter"><code>Text</code></em></li><li><em class="parameter"><code>List</code></em></li><li><em class="parameter"><code>Binary</code></em></li><li><em class="parameter"><code>Application</code></em></li><li><em class="parameter"><code>EmbeddedBinary</code></em></li><li><em class="parameter"><code>FormattedContent</code></em></li></ul></div><p> Each of these types are described in detail in the following subsections. A full example
126
+ showing the use of the elements and information types is at the end of the section. </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17369">Title</h3></div></div></div><p> A <em class="parameter"><code>Title</code></em> element specifies a string to be rendered as a title or
127
+ heading. </p><pre class="programlisting">&lt;Title&gt;The Next Move&lt;/Title&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17379">Text</h3></div></div></div><p> A <em class="parameter"><code>Text</code></em> element specifies a block of text to be rendered as a
128
+ paragraph. Only plain text is allowed. HTML is not allowed. If HTML characters (such as angle
129
+ brackets) are included in the data, they appear verbatim in the web output. </p><pre class="programlisting">&lt;Text&gt;What is the best next move for "X" in this game of Tic-Tac-Toe?&lt;/Text&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17389">List</h3></div></div></div><p> A <em class="parameter"><code>List</code></em> element displays a bulleted list of items. Items are
130
+ specified using one or more <em class="parameter"><code>ListItem</code></em> elements inside the
131
+ <em class="parameter"><code>List</code></em>. The <em class="parameter"><code>ListItem</code></em> element is a string. </p><pre class="programlisting">&lt;List&gt;
132
+ &lt;ListItem&gt;It must be a valid move.&lt;/ListItem&gt;
133
+ &lt;ListItem&gt;"X" cannot resign.&lt;/ListItem&gt;
134
+ &lt;/List&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17408">Binary</h3></div></div></div><p> A <em class="parameter"><code>Binary</code></em> element specifies non-textual data of some kind, such as an
135
+ image, audio, or video. The elements listed in the following table are required and must be
136
+ entered in the order shown here. </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
137
+ <p class="simpara">
138
+ <em class="parameter"><code>MimeType</code></em>
139
+ </p>
140
+ </td><td>
141
+ <p class="simpara">Specifies the type of the data.</p>
142
+ <p class="simpara">Type: <em class="parameter"><code>MimeType</code></em> element</p>
143
+ <p class="simpara">Default: None</p>
144
+ <p class="simpara">Child Elements:</p>
145
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Type &#8212;</span></strong> A required string that specifies the type of the data.
146
+ The possible values are <strong class="userinput"><code>image</code></strong>,
147
+ <strong class="userinput"><code>audio</code></strong>, or
148
+ <strong class="userinput"><code>video</code></strong>. </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">SubType &#8212;</span></strong>An optional string that specifies the format of the item,
149
+ such as <strong class="userinput"><code>gif</code></strong></div></div></div></li></ul></div>
150
+ </td><td>
151
+ <p class="simpara">Yes</p>
152
+ </td></tr><tr><td>
153
+ <p class="simpara">
154
+ <em class="parameter"><code>DataURL</code></em>
155
+ </p>
156
+ </td><td>
157
+ <p class="simpara"> The data itself specified with a <em class="parameter"><code>DataURL</code></em>
158
+ element that contains a valid HTTP URL. </p>
159
+ <p class="simpara">Type: <em class="parameter"><code>DataURL</code></em> element</p>
160
+ <p class="simpara">Default: None</p>
161
+ </td><td>
162
+ <p class="simpara">Yes</p>
163
+ </td></tr><tr><td>
164
+ <p class="simpara">
165
+ <em class="parameter"><code>AltText</code></em>
166
+ </p>
167
+ </td><td>
168
+ <p class="simpara"> The text that should appear if the data cannot be rendered in the
169
+ browser. </p>
170
+ <p class="simpara">Type: String</p>
171
+ <p class="simpara">Default: None</p>
172
+ </td><td>
173
+ <p class="simpara">Yes</p>
174
+ </td></tr></tbody></table></div><pre class="programlisting">
175
+ &lt;Binary&gt;
176
+ &lt;MimeType&gt;
177
+ &lt;Type&gt;image&lt;/Type&gt;
178
+ &lt;SubType&gt;gif&lt;/SubType&gt;
179
+ &lt;/MimeType&gt;
180
+ &lt;DataURL&gt;http://tictactoe.amazon.com/game/01523/board.gif&lt;/DataURL&gt;
181
+ &lt;AltText&gt;The game board, with "X" to move.&lt;/AltText&gt;
182
+ &lt;/Binary&gt;
183
+ </pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17549">Application</h3></div></div></div><p> An <em class="parameter"><code>Application</code></em> element specifies an embedded application. It
184
+ contains either a <em class="parameter"><code>JavaApplet</code></em> element or a <em class="parameter"><code>Flash</code></em>
185
+ element. </p><p> You can specify zero or more parameters to pass to your Java applet or Flash application
186
+ when it is opened in the web page. For a HIT, in addition to the parameters you specify,
187
+ Amazon Mechanical Turk includes two parameters specific to the HIT: <code class="code">hitId</code> and
188
+ <code class="code">assignmentId</code>. The <code class="code">hitId</code> parameter is equal to the ID of the HIT.
189
+ The <code class="code">assignmentId</code> parameter is equal to the ID of the assignment if the Worker has
190
+ accepted the HIT, or equal to <code class="code">ASSIGNMENT_ID_NOT_AVAILABLE</code> if the Worker is only
191
+ previewing the HIT. </p><p> The <em class="parameter"><code>JavaApplet</code></em> element includes the elements described in the
192
+ following table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
193
+ <p class="simpara">
194
+ <em class="parameter"><code>AppletPath</code></em>
195
+ </p>
196
+ </td><td>
197
+ <p class="simpara">The URL path to the directory that contains Java classes for the
198
+ applet.</p>
199
+ <p class="simpara">Type: URL</p>
200
+ <p class="simpara">Default: None</p>
201
+ </td><td>
202
+ <p class="simpara">Yes</p>
203
+ </td></tr><tr><td>
204
+ <p class="simpara">
205
+ <em class="parameter"><code>AppletFilename</code></em>
206
+ </p>
207
+ </td><td>
208
+ <p class="simpara">The name of the class file that contains the applet code, which is
209
+ located in the path specified by <em class="parameter"><code>AppletPath</code></em>.</p>
210
+ <p class="simpara">Type: String</p>
211
+ <p class="simpara">Default: None</p>
212
+ </td><td>
213
+ <p class="simpara">Yes</p>
214
+ </td></tr><tr><td>
215
+ <p class="simpara">
216
+ <em class="parameter"><code>Width</code></em>
217
+ </p>
218
+ </td><td>
219
+ <p class="simpara">The width of the bounding box for the applet.</p>
220
+ <p class="simpara">Type: String</p>
221
+ <p class="simpara">Default: None</p>
222
+ </td><td>
223
+ <p class="simpara">Yes</p>
224
+ </td></tr><tr><td>
225
+ <p class="simpara">
226
+ <em class="parameter"><code>Height</code></em>
227
+ </p>
228
+ </td><td>
229
+ <p class="simpara">The height of the bounding box for the applet.</p>
230
+ <p class="simpara">Type: String</p>
231
+ <p class="simpara">Default: None</p>
232
+ </td><td>
233
+ <p class="simpara">Yes</p>
234
+ </td></tr><tr><td>
235
+ <p class="simpara">
236
+ <em class="parameter"><code>ApplicationParameter</code></em>
237
+ </p>
238
+ </td><td>
239
+ <p class="simpara">The parameters for the applet.</p>
240
+ <p class="simpara">Type: <em class="parameter"><code>ApplicationParameter</code></em>
241
+ </p>
242
+ <p class="simpara">Default: None</p>
243
+ <p class="simpara">Child Elements:</p>
244
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Name&#8212;</span></strong> A required string that specifies the name of the
245
+ parameter </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Value&#8212;</span></strong> A required string that specifies the value of the
246
+ parameter </div></div></div></li></ul></div>
247
+ </td><td>
248
+ <p class="simpara">No</p>
249
+ </td></tr></tbody></table></div><p> The <em class="parameter"><code>Flash</code></em> element includes the elements described in the following
250
+ table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
251
+ <p class="simpara">
252
+ <em class="parameter"><code>FlashMovieURL</code></em>
253
+ </p>
254
+ </td><td>
255
+ <p class="simpara">The URL of the Flash movie file.</p>
256
+ <p class="simpara">Type: URL</p>
257
+ <p class="simpara">Default: None</p>
258
+ </td><td>
259
+ <p class="simpara">Yes</p>
260
+ </td></tr><tr><td>
261
+ <p class="simpara">
262
+ <em class="parameter"><code>Width</code></em>
263
+ </p>
264
+ </td><td>
265
+ <p class="simpara">The width of the bounding box for the Flash movie.</p>
266
+ <p class="simpara">Type: String</p>
267
+ <p class="simpara">Default: None</p>
268
+ </td><td>
269
+ <p class="simpara">Yes</p>
270
+ </td></tr><tr><td>
271
+ <p class="simpara">
272
+ <em class="parameter"><code>Height</code></em>
273
+ </p>
274
+ </td><td>
275
+ <p class="simpara">The height of the bounding box for the Flash movie.</p>
276
+ <p class="simpara">Type: String</p>
277
+ <p class="simpara">Default: None</p>
278
+ </td><td>
279
+ <p class="simpara">Yes</p>
280
+ </td></tr><tr><td>
281
+ <p class="simpara">
282
+ <em class="parameter"><code>ApplicationParameter</code></em>
283
+ </p>
284
+ </td><td>
285
+ <p class="simpara"> The parameters for the Flash movie. </p>
286
+ <p class="simpara">Type: <em class="parameter"><code>ApplicationParameter</code></em>
287
+ </p>
288
+ <p class="simpara">Default: None</p>
289
+ <p class="simpara">Child Elements:</p>
290
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Name &#8212;</span></strong> A required string that specifies the name of the
291
+ parameter </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Value&#8212;</span></strong> A required string that specifies the value of the
292
+ parameter </div></div></div></li></ul></div>
293
+ </td><td>
294
+ <p class="simpara">No</p>
295
+ </td></tr></tbody></table></div><pre class="programlisting">&lt;Application&gt;
296
+ &lt;JavaApplet&gt;
297
+ &lt;AppletPath&gt;http://tictactoe.amazon.com/applets/&lt;/AppletPath&gt;
298
+ &lt;AppletFilename&gt;GameViewer.class&lt;/AppletFilename&gt;
299
+ &lt;Width&gt;400&lt;/Width&gt;
300
+ &lt;Height&gt;300&lt;/Height&gt;
301
+ &lt;ApplicationParameter&gt;
302
+ &lt;Name&gt;game_id&lt;Name&gt;
303
+ &lt;Value&gt;01523&lt;/Value&gt;
304
+ &lt;/ApplicationParameter&gt;
305
+ &lt;/JavaApplet&gt;
306
+ &lt;/Application&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e17905">EmbeddedBinary</h3></div></div></div><p> An <em class="parameter"><code>EmbeddedBinary</code></em> element specifies an external object of
307
+ non-textual data of some kind, such as an image, audio or video, that displays in your
308
+ browser. The elements listed in the following table are required and must be entered in the
309
+ order shown here. </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
310
+ <p class="simpara">
311
+ <em class="parameter"><code>EmbeddedMimeType</code></em>
312
+ </p>
313
+ </td><td>
314
+ <p class="simpara">Specifies the type of the data.</p>
315
+ <p class="simpara">Type: <em class="parameter"><code>EmbeddedMimeType</code></em> element</p>
316
+ <p class="simpara">Default: None</p>
317
+ <p class="simpara">Child Elements:</p>
318
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Type &#8212;</span></strong> A required string that specifies the type of the data.
319
+ The possible values are <strong class="userinput"><code>image</code></strong>,
320
+ <strong class="userinput"><code>audio</code></strong>, or
321
+ <strong class="userinput"><code>video</code></strong>.</div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">SubType &#8212;</span></strong>An optional string that specifies the format of the item,
322
+ such as <strong class="userinput"><code>gif</code></strong></div></div></div></li></ul></div>
323
+ </td><td>
324
+ <p class="simpara">Yes</p>
325
+ </td></tr><tr><td>
326
+ <p class="simpara">
327
+ <em class="parameter"><code>DataURL</code></em>
328
+ </p>
329
+ </td><td>
330
+ <p class="simpara"> The data itself specified by a <em class="parameter"><code>DataURL</code></em>
331
+ element that contains a valid HTTP URL </p>
332
+ <p class="simpara">Type: <em class="parameter"><code>DataURL</code></em> element</p>
333
+ <p class="simpara">Default: None</p>
334
+ </td><td>
335
+ <p class="simpara">Yes</p>
336
+ </td></tr><tr><td>
337
+ <p class="simpara">
338
+ <em class="parameter"><code>AltText</code></em>
339
+ </p>
340
+ </td><td>
341
+ <p class="simpara"> The text that should appear if the data cannot be rendered in the
342
+ browser. </p>
343
+ <p class="simpara">Type: String</p>
344
+ <p class="simpara">Default: None</p>
345
+ </td><td>
346
+ <p class="simpara">Yes</p>
347
+ </td></tr><tr><td>
348
+ <p class="simpara">
349
+ <em class="parameter"><code>Width</code></em>
350
+ </p>
351
+ </td><td>
352
+ <p class="simpara"> The width of the bounding box for the object. </p>
353
+ <p class="simpara">Type: String</p>
354
+ <p class="simpara">Default: None</p>
355
+ </td><td>
356
+ <p class="simpara">Yes</p>
357
+ </td></tr><tr><td>
358
+ <p class="simpara">
359
+ <em class="parameter"><code>Height</code></em>
360
+ </p>
361
+ </td><td>
362
+ <p class="simpara"> The height of the bounding box for the object. </p>
363
+ <p class="simpara">Type: String</p>
364
+ <p class="simpara">Default: None</p>
365
+ </td><td>
366
+ <p class="simpara">Yes</p>
367
+ </td></tr><tr><td>
368
+ <p class="simpara">
369
+ <em class="parameter"><code>ApplicationParameter</code></em>
370
+ </p>
371
+ </td><td>
372
+ <p class="simpara">The parameters for the <em class="parameter"><code>EmbeddedBinary</code></em> object. </p>
373
+ <p class="simpara">Type: <em class="parameter"><code>ApplicationParameter</code></em>
374
+ </p>
375
+ <p class="simpara">Default: None</p>
376
+ <p class="simpara">Child elements:</p>
377
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Name &#8212;</span></strong> A required string that specifies the name of the
378
+ parameter</div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Value&#8212;</span></strong> A required string that specifies the value of the
379
+ parameter</div></div></div></li></ul></div>
380
+ </td><td>
381
+ <p class="simpara">No</p>
382
+ </td></tr></tbody></table></div><pre class="programlisting">&lt;EmbeddedBinary&gt;
383
+ &lt;EmbeddedMimeType&gt;
384
+ &lt;Type&gt;image&lt;/Type&gt;
385
+ &lt;SubType&gt;gif&lt;/SubType&gt;
386
+ &lt;/EmbeddedMimeType&gt;
387
+ &lt;DataURL&gt;http://tictactoe.amazon.com/game/01523/board.gif&lt;/DataURL&gt;
388
+ &lt;AltText&gt;The game board, with "X" to move.&lt;/AltText&gt;
389
+ &lt;Width&gt;400&lt;/Width&gt;
390
+ &lt;Height&gt;300&lt;/Height&gt;
391
+ &lt;ApplicationParameter&gt;
392
+ &lt;Name&gt;game_id&lt;Name&gt;
393
+ &lt;Value&gt;01523&lt;/Value&gt;
394
+ &lt;/ApplicationParameter&gt;
395
+ &lt;/EmbeddedBinary&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e18149">FormattedContent</h3></div></div></div><p> For finer control over the display of your HIT information, you can specify a
396
+ <em class="parameter"><code>FormattedContent</code></em> element. Formatted content is a block of text with
397
+ formatting information specified using XHTML tags. For example, you can use XHTML tags to
398
+ specify that certain words appear in a boldface font or to include a table in your HIT
399
+ information. </p><p> Only a limited subset of XHTML is supported. For more information on the creating and
400
+ validating XHTML formatted content, see <a class="link" href="ApiReference_FormattedContentXHTMLArticle.html" title="Formatted Content: XHTML">Formatted Content: XHTML</a>. </p><p> The value of the <em class="parameter"><code>FormattedContent</code></em> element must be specified as an
401
+ XML CDATA block. CDATA tells the web service that the XHTML elements are not part of the
402
+ <em class="parameter"><code>QuestionForm</code></em> data schema. For example, the following describes a
403
+ paragraph of formatted text: </p><pre class="programlisting">&lt;FormattedContent&gt;&lt;![CDATA[
404
+ &lt;p&gt;This is a paragraph with &lt;b&gt;bold text&lt;/b&gt;,
405
+ &lt;i&gt;italic text&lt;/i&gt;, and &lt;b&gt;&lt;i&gt;bold italic text&lt;/i&gt;&lt;/b&gt;.&lt;/p&gt;
406
+ ]]&gt;&lt;/FormattedContent&gt;</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e18171">Answer Specification</h2></div></div></div><a class="indexterm" name="d0e18174"></a><a class="indexterm" name="d0e18179"></a><a class="indexterm" name="d0e18184"></a><p> The <em class="parameter"><code>AnswerSpecification</code></em> element describes the format and possible values
407
+ for answers to a question. It contains a <em class="parameter"><code>FreeTextAnswer</code></em> element, which
408
+ describes a text field; a <em class="parameter"><code>SelectionAnswer</code></em> element, which describes a
409
+ multiple choice field; or a <em class="parameter"><code>FileUploadAnswer</code></em>, which prompts the Worker to
410
+ upload a file as the answer to the question. </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e18203">FreeTextAnswer</h3></div></div></div><p> A <em class="parameter"><code>FreeTextAnswer</code></em> element describes a text field and constraints on
411
+ its possible values. It includes the elements described in the following table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
412
+ <p class="simpara">
413
+ <em class="parameter"><code>Constraints</code></em>
414
+ </p>
415
+ </td><td>
416
+ <p class="simpara"> Describes the constraints on the allowed values for the text field.
417
+ This element is described in the next table. </p>
418
+ <p class="simpara">Type: <em class="parameter"><code>Constraints</code></em> element</p>
419
+ <p class="simpara">Default: None</p>
420
+ </td><td>
421
+ <p class="simpara">No</p>
422
+ </td></tr><tr><td>
423
+ <p class="simpara">
424
+ <em class="parameter"><code>DefaultText</code></em>
425
+ </p>
426
+ </td><td>
427
+ <p class="simpara"> Specifies default text. This value appears in the form when it is
428
+ rendered, and is accepted as the answer if the Worker does not change it. </p>
429
+ <p class="simpara">Type: String</p>
430
+ <p class="simpara">Default: An empty value</p>
431
+ </td><td>
432
+ <p class="simpara">No</p>
433
+ </td></tr><tr><td>
434
+ <p class="simpara">
435
+ <em class="parameter"><code>NumberOfLinesSuggestion</code></em>
436
+ </p>
437
+ </td><td>
438
+ <p class="simpara"> Specifies how tall the form field should be, if possible. The field
439
+ might be rendered as a text box with this many lines, depending on the
440
+ device the Worker is using to see the form. </p>
441
+ <p class="simpara">Type: Integer</p>
442
+ <p class="simpara">Default: 1</p>
443
+ </td><td>
444
+ <p class="simpara">No</p>
445
+ </td></tr></tbody></table></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p class="simpara"> A Qualification test that is to be graded automatically using an answer key cannot
446
+ have any free-text questions. An answer key can only match multiple-choice questions and
447
+ cannot match free-text fields. </p></td></tr></table></div><p> The optional <em class="parameter"><code>Constraints</code></em> element describes constraints on the
448
+ allowed values for the text field. If no constraints are specified, any value is accepted for
449
+ the field. </p><p> The <em class="parameter"><code>Constraints</code></em> element includes the elements described in the
450
+ following table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
451
+ <p class="simpara">
452
+ <em class="parameter"><code>IsNumeric</code></em>
453
+ </p>
454
+ </td><td>
455
+ <p class="simpara">Specifies that the value entered must be numeric.</p>
456
+ <p class="simpara">Type: empty element</p>
457
+ <p class="simpara">Default: None</p>
458
+ <p class="simpara">Attributes:</p>
459
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">minValue &#8212;</span></strong>An optional integer that specifies the minimum value
460
+ allowed</div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">maxValue &#8212;</span></strong>An optional integer that specifies the maximum value
461
+ allowed</div></div></div></li></ul></div>
462
+ </td><td>
463
+ <p class="simpara">No</p>
464
+ </td></tr><tr><td>
465
+ <p class="simpara">
466
+ <em class="parameter"><code>Length</code></em>
467
+ </p>
468
+ </td><td>
469
+ <p class="simpara">Specifies the length range of the answer.</p>
470
+ <p class="simpara">Type: empty element</p>
471
+ <p class="simpara">Default: None</p>
472
+ <p class="simpara">Attributes:</p>
473
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">minLength&#8212;</span></strong> An optional non-negative integer that specifies the
474
+ minimum number of characters </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">maxLength &#8212;</span></strong> An optional positive integer that specifies the maximum
475
+ number of characters </div></div></div></li></ul></div>
476
+ </td><td>
477
+ <p class="simpara">No</p>
478
+ </td></tr><tr><td>
479
+ <p class="simpara">
480
+ <em class="parameter"><code>AnswerFormatRegex</code></em>
481
+ </p>
482
+ </td><td>
483
+ <p class="simpara"> Specifies that JavaScript validates the answer string against a
484
+ given pattern. </p>
485
+ <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p class="simpara"> A limitation of this approach is that Workers who have disabled
486
+ JavaScript on their browsers cannot validate their answers. Although
487
+ this is uncommon, you might want to caution your Workers. </p></td></tr></table></div>
488
+ <p class="simpara">Type: empty element</p>
489
+ <p class="simpara">Default: None</p>
490
+ <p class="simpara">Attributes:</p>
491
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">regex&#8212;</span></strong>A required string that specifies the regular expression
492
+ that JavaScript uses to validate against the Workers'
493
+ entered values</div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">errorText&#8212;</span></strong>An optional string that allows you to edit the content of
494
+ errors displayed to the Worker on the Worker web site if
495
+ the regex validation fails. If this attribute is not
496
+ specified, the error displayed is "Invalid input
497
+ supplied." </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">flags&#8212;</span></strong>An optional string with the value <code class="code">i</code> which
498
+ specifies that case is ignored when matching characters
499
+ </div></div></div></li></ul></div>
500
+ </td><td>
501
+ <p class="simpara">No</p>
502
+ </td></tr></tbody></table></div><p> The <em class="parameter"><code>Constraints</code></em> element can contain multiple
503
+ <em class="parameter"><code>AnswerFormatRegex</code></em> elements. All
504
+ <em class="parameter"><code>AnswerFormatRegex</code></em> constraints must be satisfied before the Worker can
505
+ submit the HIT. For more information about JavaScript RegExp and how to use it, go to the
506
+ <a class="ulink" href="http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.5/reference/contents.html" target="_blank"> Core JavaScript Reference</a> at Mozilla.org. </p><p> The following examples demonstrate how to use the <em class="parameter"><code>FreeTextAnswer</code></em>
507
+ element. </p><p> If you want a 3-digit positive integer between 100 and 999, use the following:
508
+ </p><pre class="programlisting">
509
+ &lt;FreeTextAnswer&gt;
510
+ &lt;Constraints&gt;
511
+ &lt;IsNumeric minValue="100" maxValue="999"/&gt;
512
+ &lt;Length minLength="3" maxLength="3"/&gt;
513
+ &lt;/Constraints&gt;
514
+ &lt;/FreeTextAnswer&gt;
515
+ </pre><p>
516
+ </p><p> If you want a 3-digit number that includes decimals, use the following:
517
+ </p><pre class="programlisting">
518
+ &lt;FreeTextAnswer&gt;
519
+ &lt;Constraints&gt;
520
+ &lt;IsNumeric/&gt;
521
+ &lt;Length minLength="3" maxLength="3"/&gt;
522
+ &lt;/Constraints&gt;
523
+ &lt;/FreeTextAnswer&gt;
524
+ </pre><p>
525
+ </p><p> If you want to ensure that there is some text, use the following example. The
526
+ <strong class="userinput"><code>minLength</code></strong> attribute includes whitespaces in the character count.
527
+ </p><pre class="programlisting">
528
+ &lt;FreeTextAnswer&gt;
529
+ &lt;Constraints&gt;
530
+ &lt;Length minLength="2" /&gt;
531
+ &lt;AnswerFormatRegex regex="\S" errorText="The content cannot be blank."/&gt;
532
+ &lt;/Constraints&gt;
533
+ &lt;/FreeTextAnswer&gt;
534
+ </pre><p>
535
+ </p><p> If you specify the <strong class="userinput"><code>minLength</code></strong> attribute, it is the same as if the
536
+ <em class="parameter"><code> IsRequired </code></em> element is <code class="code">true</code>. If you want tp allow an
537
+ <span class="emphasis"><em>optional</em></span> string that must be at least two characters, use the
538
+ following:
539
+ </p><pre class="programlisting">
540
+ &lt;FreeTextAnswer&gt;
541
+ &lt;Constraints&gt;
542
+ &lt;AnswerFormatRegex regex="(^$|\S{2,})"
543
+ errorText="You must enter at least two characters."/&gt;
544
+ &lt;/Constraints&gt;
545
+ &lt;/FreeTextAnswer&gt;
546
+ </pre><p>
547
+ </p><p> To request a US phone number in the format 1-nnn-nnn-nnnn, where "1-" is
548
+ optional, use the following:
549
+ </p><pre class="programlisting">
550
+ &lt;FreeTextAnswer&gt;
551
+ &lt;Constraints&gt;
552
+ &lt;AnswerFormatRegex
553
+ regex="^(1[- ]?)?(\([2-9]\d{2}\)\s*|[2-9]\d{2}-?)[2-9]\d{2}-?\d{4}$)"
554
+ errorText="You must enter a US phone number in the format
555
+ 1-555-555-1234 or 555-555-1234."/&gt;
556
+ &lt;/Constraints&gt;
557
+ &lt;/FreeTextAnswer&gt;
558
+ </pre><p>
559
+ </p><p> If you want an answer that contains a date formatted as yyyy-mm-dd, use the following:
560
+ </p><pre class="programlisting">
561
+ &lt;FreeTextAnswer&gt;
562
+ &lt;Constraints&gt;
563
+ &lt;AnswerFormatRegex regex="^[12][0-9]{3}-[01]?\d-[0-3]?\d$"
564
+ errorText="You must enter a date with the format yyyy-mm-dd."/&gt;
565
+ &lt;/Constraints&gt;
566
+ &lt;/FreeTextAnswer&gt;
567
+ </pre><p>
568
+ </p><p> If you want an answer that contains "regex" and variations including
569
+ RegEx, REGex, and RegExes, use the following:
570
+ </p><pre class="programlisting">
571
+ &lt;FreeTextAnswer&gt;
572
+ &lt;Constraints&gt;
573
+ &lt;AnswerFormatRegex regex="regex" flags="i"
574
+ errorText="You must enter 'regex'."/&gt;
575
+ &lt;/Constraints&gt;
576
+ &lt;/FreeTextAnswer&gt;
577
+ </pre><p>
578
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e18558">SelectionAnswer</h3></div></div></div><p> A <em class="parameter"><code>SelectionAnswer</code></em> describes a multiple-choice question. Depending on
579
+ the element defined, the Worker might be able to select zero, one, or multiple items from a
580
+ set list as the answer to the question. </p><p> A <em class="parameter"><code>SelectionAnswer</code></em> element includes the elements described in the
581
+ following table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
582
+ <p class="simpara">
583
+ <em class="parameter"><code>MinSelectionCount</code></em>
584
+ </p>
585
+ </td><td>
586
+ <p class="simpara"> Specifies the minimum number of selections allowed for a valid
587
+ answer. This value can range from 0 to the number of selections. </p>
588
+ <p class="simpara">Type: non-negative Integer</p>
589
+ <p class="simpara">Default: 1</p>
590
+ </td><td>
591
+ <p class="simpara">No</p>
592
+ </td></tr><tr><td>
593
+ <p class="simpara">
594
+ <em class="parameter"><code>MaxSelectionCount</code></em>
595
+ </p>
596
+ </td><td>
597
+ <p class="simpara"> Specifies the maximum number of selections allowed for a valid
598
+ answer. This value can range from 1 to the number of selections. </p>
599
+ <p class="simpara">Type: positive Integer</p>
600
+ <p class="simpara">Default: 1</p>
601
+ </td><td>
602
+ <p class="simpara">No</p>
603
+ </td></tr><tr><td>
604
+ <p class="simpara">
605
+ <em class="parameter"><code>StyleSuggestions</code></em>
606
+ </p>
607
+ </td><td>
608
+ <p class="simpara"> Specifies what style of multiple-choice form field to use when
609
+ displaying the question to the Worker. The field might not use the
610
+ suggested style, depending on the device the Worker is using to see the
611
+ form. </p>
612
+ <p class="simpara">Type: String</p>
613
+ <p class="simpara">Default: None</p>
614
+ <p class="simpara">Valid Values:</p>
615
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">radiobutton&#8212;</span></strong> Can be used if <em class="parameter"><code>MaxSelectionCount</code></em>
616
+ is <strong class="userinput"><code>1</code></strong>, because it restricts the user
617
+ to selecting either zero or one item from the list </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">checkbox&#8212;</span></strong> Allows multiple selections, but can be restricted by
618
+ using the <em class="parameter"><code>MaxSelectionCount</code></em> element
619
+ </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">list&#8212;</span></strong> Allows multiple selections, but can be restricted by
620
+ using the <em class="parameter"><code>MaxSelectionCount</code></em> element
621
+ </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">dropdown&#8212;</span></strong> Can be used if <em class="parameter"><code>MaxSelectionCount</code></em>
622
+ is <strong class="userinput"><code>1</code></strong>, because it restricts the user
623
+ to selecting either zero or one item from the list </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">combobox&#8212;</span></strong> Allows multiple selections, but can be restricted by
624
+ using the <em class="parameter"><code>MaxSelectionCount</code></em> element
625
+ </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">multichooser&#8212;</span></strong> Allows multiple selections, but can be restricted by
626
+ using the <em class="parameter"><code>MaxSelectionCount</code></em> element
627
+ </div></div></div></li></ul></div>
628
+ </td><td>
629
+ <p class="simpara">No</p>
630
+ </td></tr><tr><td>
631
+ <p class="simpara">
632
+ <em class="parameter"><code>Selections</code></em>
633
+ </p>
634
+ </td><td>
635
+ <p class="simpara">Specifies the answer selections.</p>
636
+ <p class="simpara">Type: <em class="parameter"><code>Selections</code></em> structure</p>
637
+ <p class="simpara">Default: None</p>
638
+ <p class="simpara">Child elements:</p>
639
+ <div class="itemizedlist"><ul type="disc"><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">Selection&#8212;</span></strong> Specifies an answer selection. This element is described
640
+ fully in the next table. </div></div></div></li><li><div class="segmentedlist"><div class="seglistitem"><div class="seg"><strong><span class="segtitle">OtherSelection&#8212;</span></strong> An optional text field to display below the selection
641
+ list that allows the Worker to enter an alternate answer
642
+ that does not appear in the list of selections. The
643
+ contents of this element are similar to
644
+ <em class="parameter"><code>FreeTextAnswer</code></em>. </div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p> A Qualification test that you want to grade automatically
645
+ using an answer key cannot have an
646
+ <em class="parameter"><code>OtherSelection</code></em> field for a multiple
647
+ choice question. An answer key can only match multiple-choice
648
+ questions and cannot match free-text fields. </p></td></tr></table></div></li></ul></div>
649
+ </td><td>
650
+ <p class="simpara">Yes</p>
651
+ </td></tr></tbody></table></div><p> The <em class="parameter"><code>Selections</code></em> element lists the selection options available. It
652
+ contains one or more <em class="parameter"><code>Selection</code></em> elements, one for each possible answer
653
+ in the set. The <em class="parameter"><code>Selection</code></em> element includes the elements described in
654
+ the following table: </p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col><col></colgroup><thead><tr><th>Name</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>
655
+ <p class="simpara">
656
+ <em class="parameter"><code>SelectionIdentifier</code></em>
657
+ </p>
658
+ </td><td>
659
+ <p class="simpara"> A unique alphanumeric string that is in the answer data if this
660
+ selection is chosen. </p>
661
+ <p class="simpara">Type: String</p>
662
+ <p class="simpara">Default: None</p>
663
+ </td><td>
664
+ <p class="simpara">Yes</p>
665
+ </td></tr><tr><td>
666
+ <p class="simpara"> One of the following elements: </p>
667
+ </td><td>&nbsp;</td><td>
668
+ <p class="simpara">Yes</p>
669
+ </td></tr><tr><td>
670
+ <p class="simpara">
671
+ <em class="parameter"><code>Text</code></em>
672
+ </p>
673
+ </td><td>
674
+ <p class="simpara">Contains the content of the selected item.</p>
675
+ <p class="simpara">Type: String</p>
676
+ <p class="simpara">Default: None</p>
677
+ </td><td class="auto-generated">&nbsp;</td></tr><tr><td>
678
+ <p class="simpara">
679
+ <em class="parameter"><code>FormattedContent</code></em>
680
+ </p>
681
+ </td><td>
682
+ <p class="simpara"> A block of text formatted using XHTML tags that contains the content
683
+ of the selected item. For more information about this format, see <a class="link" href="ApiReference_FormattedContentXHTMLArticle.html" title="Formatted Content: XHTML">Formatted Content: XHTML</a>. </p>
684
+ <p class="simpara">Type: String</p>
685
+ <p class="simpara">Default: None</p>
686
+ </td><td class="auto-generated">&nbsp;</td></tr><tr><td>
687
+ <p class="simpara">
688
+ <em class="parameter"><code>Binary</code></em>
689
+ </p>
690
+ </td><td>
691
+ <p class="simpara">Contains the content of the selected item.</p>
692
+ <p class="simpara">Type: <em class="parameter"><code>Binary</code></em></p>
693
+ <p class="simpara">Default: None</p>
694
+ </td><td class="auto-generated">&nbsp;</td></tr></tbody></table></div><p> The following example shows a <em class="parameter"><code>SelectionAnswer</code></em> element that specifies
695
+ a question with four radiobuttons. </p><pre class="programlisting">&lt;SelectionAnswer&gt;
696
+ &lt;StyleSuggestion&gt;radiobutton&lt;/StyleSuggestion&gt;
697
+ &lt;Selections&gt;
698
+ &lt;Selection&gt;
699
+ &lt;SelectionIdentifier&gt;C1&lt;/SelectionIdentifier&gt;
700
+ &lt;Text&gt;C1 (northeast)&lt;/Text&gt;
701
+ &lt;/Selection&gt;
702
+ &lt;Selection&gt;
703
+ &lt;SelectionIdentifier&gt;C2&lt;/SelectionIdentifier&gt;
704
+ &lt;Text&gt;C2 (east)&lt;/Text&gt;
705
+ &lt;/Selection&gt;
706
+ &lt;Selection&gt;
707
+ &lt;SelectionIdentifier&gt;A3&lt;/SelectionIdentifier&gt;
708
+ &lt;Text&gt;A3 (southwest)&lt;/Text&gt;
709
+ &lt;/Selection&gt;
710
+ &lt;Selection&gt;
711
+ &lt;SelectionIdentifier&gt;C3&lt;/SelectionIdentifier&gt;
712
+ &lt;Text&gt;C3 (southeast)&lt;/Text&gt;
713
+ &lt;/Selection&gt;
714
+ &lt;/Selections&gt;
715
+ &lt;/SelectionAnswer&gt;</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title" id="d0e18932">FileUploadAnswer</h3></div></div></div><a class="indexterm" name="d0e18935"></a><a class="indexterm" name="d0e18938"></a><p> A <em class="parameter"><code>FileUploadAnswer</code></em> prompts the Worker to upload a file as the answer
716
+ to the question. When the Worker uploads the file, Amazon Mechanical Turk stores the file
717
+ separately from the answer data. Once the HIT is submitted, your application can call the
718
+ <code class="function">GetFileUploadURL</code> operation to get a temporary URL it can use to
719
+ download the file. </p><p> The <em class="parameter"><code>FileUploadAnswer</code></em> specification contains two required elements, a
720
+ <em class="parameter"><code>MinFileSizeInBytes</code></em> and a <em class="parameter"><code>MaxFileSizeInBytes</code></em>,
721
+ that specify the minimum and maximum allowed file sizes respectively. If the Worker uploads a
722
+ file whose size in bytes is outside of this range, the answer is rejected, and the Worker must
723
+ upload a different file to complete the HIT. You can specify a maximum size up to 2000000000
724
+ (2 billion) bytes. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top"><p class="simpara"> A <em class="parameter"><code>FileUploadAnswer</code></em> element can only be used with HITs. It
725
+ cannot be used with Qualification tests. </p></td></tr></table></div><p> The following example demonstrates a <em class="parameter"><code>FileUploadAnswer</code></em> element that
726
+ specifies a file with a minimum of 1000 bytes and a maximum of 3000000 bytes. </p><pre class="programlisting">&lt;FileUploadAnswer&gt;
727
+ &lt;MaxFileSizeInBytes&gt;3000000&lt;/MaxFileSizeInBytes&gt;
728
+ &lt;MinFileSizeInBytes&gt;1000&lt;/MinFileSizeInBytes&gt;
729
+ &lt;/FileUploadAnswer&gt;</pre></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="d0e18973">Example</h2></div></div></div><p> The following is an example of a complete <em class="parameter"><code>QuestionForm</code></em> data structure.
730
+ Remember that to pass this structure in as a value of a parameter to an operation, XML characters
731
+ must be escaped as character entities. (See <a class="link" href="ApiReference_XMLParameterValuesArticle.html" title="Using XML Parameter Values">Using XML Parameter Values</a> for more information.) </p><pre class="programlisting">&lt;QuestionForm xmlns="<em class="replaceable"><code>[the QuestionForm schema URL]</code></em>"&gt;
732
+ &lt;Overview&gt;
733
+ &lt;Title&gt;Game 01523, "X" to play&lt;/Title&gt;
734
+ &lt;Text&gt;
735
+ You are helping to decide the next move in a game of Tic-Tac-Toe. The board looks like this:
736
+ &lt;/Text&gt;
737
+ &lt;Binary&gt;
738
+ &lt;MimeType&gt;
739
+ &lt;Type&gt;image&lt;/Type&gt;
740
+ &lt;SubType&gt;gif&lt;/SubType&gt;
741
+ &lt;/MimeType&gt;
742
+ &lt;DataURL&gt;http://tictactoe.amazon.com/game/01523/board.gif&lt;/DataURL&gt;
743
+ &lt;AltText&gt;The game board, with "X" to move.&lt;/AltText&gt;
744
+ &lt;/Binary&gt;
745
+ &lt;Text&gt;
746
+ Player "X" has the next move.
747
+ &lt;/Text&gt;
748
+ &lt;/Overview&gt;
749
+ &lt;Question&gt;
750
+ &lt;QuestionIdentifier&gt;nextmove&lt;/QuestionIdentifier&gt;
751
+ &lt;DisplayName&gt;The Next Move&lt;/DisplayName&gt;
752
+ &lt;IsRequired&gt;true&lt;/IsRequired&gt;
753
+ &lt;QuestionContent&gt;
754
+ &lt;Text&gt;
755
+ What are the coordinates of the best move for player "X" in this game?
756
+ &lt;/Text&gt;
757
+ &lt;/QuestionContent&gt;
758
+ &lt;AnswerSpecification&gt;
759
+ &lt;FreeTextAnswer&gt;
760
+ &lt;Constraints&gt;
761
+ &lt;Length minLength="2" maxLength="2" /&gt;
762
+ &lt;/Constraints&gt;
763
+ &lt;DefaultText&gt;C1&lt;/DefaultText&gt;
764
+ &lt;/FreeTextAnswer&gt;
765
+ &lt;/AnswerSpecification&gt;
766
+ &lt;/Question&gt;
767
+ &lt;Question&gt;
768
+ &lt;QuestionIdentifier&gt;likelytowin&lt;/QuestionIdentifier&gt;
769
+ &lt;DisplayName&gt;The Next Move&lt;/DisplayName&gt;
770
+ &lt;IsRequired&gt;true&lt;/IsRequired&gt;
771
+ &lt;QuestionContent&gt;
772
+ &lt;Text&gt;
773
+ How likely is it that player "X" will win this game?
774
+ &lt;/Text&gt;
775
+ &lt;/QuestionContent&gt;
776
+ &lt;AnswerSpecification&gt;
777
+ &lt;SelectionAnswer&gt;
778
+ &lt;StyleSuggestion&gt;radiobutton&lt;/StyleSuggestion&gt;
779
+ &lt;Selections&gt;
780
+ &lt;Selection&gt;
781
+ &lt;SelectionIdentifier&gt;notlikely&lt;/SelectionIdentifier&gt;
782
+ &lt;Text&gt;Not likely&lt;/Text&gt;
783
+ &lt;/Selection&gt;
784
+ &lt;Selection&gt;
785
+ &lt;SelectionIdentifier&gt;unsure&lt;/SelectionIdentifier&gt;
786
+ &lt;Text&gt;It could go either way&lt;/Text&gt;
787
+ &lt;/Selection&gt;
788
+ &lt;Selection&gt;
789
+ &lt;SelectionIdentifier&gt;likely&lt;/SelectionIdentifier&gt;
790
+ &lt;Text&gt;Likely&lt;/Text&gt;
791
+ &lt;/Selection&gt;
792
+ &lt;/Selections&gt;
793
+ &lt;/SelectionAnswer&gt;
794
+ &lt;/AnswerSpecification&gt;
795
+ &lt;/Question&gt;
796
+ &lt;/QuestionForm&gt;</pre></div></div><div class="navfooter"><table width="100%" summary="Navigation footer" cellspacing="0" cellpadding="2"><tr><td width="30%" align="left"><a accesskey="p" href="ApiReference_XMLParameterValuesArticle.html"><img src="images/prev.gif" alt="Prev"></a> </td><td width="40%" align="center"><a href="http://survey.amazonwebservices.com/survey/s?s=559&amp;opdata_page=Mturk_API_2008-08-02_ApiReference_QuestionFormDataStructureArticle">Documentation Feedback</a><br><a href="copyrightinfo.html">Copyright Information</a></td><td width="30%" align="right"> <a accesskey="n" href="ApiReference_FormattedContentXHTMLArticle.html"><img src="images/next.gif" alt="Next"></a></td></tr><tr><td width="30%" align="left" valign="top">&nbsp;</td><td width="40%" align="center"><a accesskey="h" href="#top"><img src="images/home.gif" alt="Home"></a></td><td width="30%" align="right" valign="top">&nbsp;</td></tr></table></div></body></html>