Quick heads-up, in case anybody else runs into this problem.
I've been working with passing an ExternalQuestion to MechanicalTurk, and have learned (the hard way) that the 'ExternalURL' component, set up as a "xs:anyURI" in the MTurk AWS schema, does not allow ampersands '&' except if escaped via '&'.
That was not at all obvious. The AWS exception gives is:
<CreateHITResponse> <OperationRequest> <RequestId>...</RequestId> </OperationRequest> <HIT> <Request> <IsValid>False</IsValid> <Errors> <Error> <Code>AWS.MechanicalTurk.XMLParseError</Code> <Message>There was an error parsing the XML question or answer data in your request. Please make sure the data is well-formed and validates against the appropriate schema. (1291006584155 s)</Message> </Error> </Errors> </Request> </HIT>/ </CreateHITResponse>
Replace any instance of & in the ExternalQuestion URI (IE, www.yoursite.com/mturk/a.php?foo=true&bar=false) with & (IE, www.yoursite.com/mturk/a.php?foo=true&bar=false).
That'll fix it.