curl --request POST \
--url https://qti.alpha-1edtech.ai/api/validate/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema": "item",
"xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qti-assessment-item\n xmlns=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd\"\n identifier=\"xml-choice-item-1\"\n title=\"Sample Choice Question\"\n adaptive=\"false\"\n time-dependent=\"false\">\n\n <qti-response-declaration identifier=\"RESPONSE\" cardinality=\"single\" base-type=\"identifier\">\n <qti-correct-response>\n <qti-value>B</qti-value>\n </qti-correct-response>\n </qti-response-declaration>\n\n <qti-outcome-declaration identifier=\"FEEDBACK\" cardinality=\"single\" base-type=\"identifier\"/>\n <qti-outcome-declaration identifier=\"FEEDBACK-INLINE\" cardinality=\"single\" base-type=\"identifier\"/>\n\n <qti-assessment-stimulus-ref identifier=\"Stimulus1\" href=\"stimuli/Stimulus1\" title=\"Math Context\"/>\n <qti-assessment-stimulus-ref identifier=\"Stimulus2\" href=\"stimuli/Stimulus2\" title=\"Additional Context\"/>\n\n <qti-item-body>\n <qti-choice-interaction response-identifier=\"RESPONSE\" shuffle=\"false\" max-choices=\"1\">\n <qti-prompt>What is 2 + 2?</qti-prompt>\n <qti-simple-choice identifier=\"A\">\n 3\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"A\" show-hide=\"show\">\n <span style=\"color: #D9534F;\">Incorrect: Try counting again.</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n <qti-simple-choice identifier=\"B\">\n 4\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"B\" show-hide=\"show\">\n <span style=\"color: #2E8B57;\">Correct: Well done!</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n </qti-choice-interaction>\n </qti-item-body>\n\n <qti-response-processing template=\"match_correct\">\n <qti-response-condition>\n <qti-response-if>\n <qti-match>\n <qti-variable identifier=\"RESPONSE\"/>\n <qti-correct identifier=\"RESPONSE\"/>\n </qti-match>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">CORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-if>\n <qti-response-else>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">INCORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-else>\n </qti-response-condition>\n </qti-response-processing>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"CORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Correct!</strong> Well done.</p>\n </qti-content-body>\n </qti-modal-feedback>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"INCORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Incorrect.</strong> Please review and try again.</p>\n </qti-content-body>\n </qti-modal-feedback>\n</qti-assessment-item>",
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qti-assessment-item\n xmlns=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd\"\n identifier=\"xml-choice-item-1\"\n title=\"Sample Choice Question\"\n adaptive=\"false\"\n time-dependent=\"false\">\n\n <qti-response-declaration identifier=\"RESPONSE\" cardinality=\"single\" base-type=\"identifier\">\n <qti-correct-response>\n <qti-value>B</qti-value>\n </qti-correct-response>\n </qti-response-declaration>\n\n <qti-outcome-declaration identifier=\"FEEDBACK\" cardinality=\"single\" base-type=\"identifier\"/>\n <qti-outcome-declaration identifier=\"FEEDBACK-INLINE\" cardinality=\"single\" base-type=\"identifier\"/>\n\n <qti-assessment-stimulus-ref identifier=\"Stimulus1\" href=\"stimuli/Stimulus1\" title=\"Math Context\"/>\n <qti-assessment-stimulus-ref identifier=\"Stimulus2\" href=\"stimuli/Stimulus2\" title=\"Additional Context\"/>\n\n <qti-item-body>\n <qti-choice-interaction response-identifier=\"RESPONSE\" shuffle=\"false\" max-choices=\"1\">\n <qti-prompt>What is 2 + 2?</qti-prompt>\n <qti-simple-choice identifier=\"A\">\n 3\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"A\" show-hide=\"show\">\n <span style=\"color: #D9534F;\">Incorrect: Try counting again.</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n <qti-simple-choice identifier=\"B\">\n 4\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"B\" show-hide=\"show\">\n <span style=\"color: #2E8B57;\">Correct: Well done!</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n </qti-choice-interaction>\n </qti-item-body>\n\n <qti-response-processing template=\"match_correct\">\n <qti-response-condition>\n <qti-response-if>\n <qti-match>\n <qti-variable identifier=\"RESPONSE\"/>\n <qti-correct identifier=\"RESPONSE\"/>\n </qti-match>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">CORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-if>\n <qti-response-else>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">INCORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-else>\n </qti-response-condition>\n </qti-response-processing>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"CORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Correct!</strong> Well done.</p>\n </qti-content-body>\n </qti-modal-feedback>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"INCORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Incorrect.</strong> Please review and try again.</p>\n </qti-content-body>\n </qti-modal-feedback>\n</qti-assessment-item>"
]
}
'{
"results": [
{
"success": "true",
"entityId": "<string>",
"xmlContent": "<string>",
"validationErrors": [
"<string>"
],
"message": "<string>"
}
]
}Validate a batch of QTI XML strings against the QTI 3.0 xsd specification.
curl --request POST \
--url https://qti.alpha-1edtech.ai/api/validate/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema": "item",
"xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qti-assessment-item\n xmlns=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd\"\n identifier=\"xml-choice-item-1\"\n title=\"Sample Choice Question\"\n adaptive=\"false\"\n time-dependent=\"false\">\n\n <qti-response-declaration identifier=\"RESPONSE\" cardinality=\"single\" base-type=\"identifier\">\n <qti-correct-response>\n <qti-value>B</qti-value>\n </qti-correct-response>\n </qti-response-declaration>\n\n <qti-outcome-declaration identifier=\"FEEDBACK\" cardinality=\"single\" base-type=\"identifier\"/>\n <qti-outcome-declaration identifier=\"FEEDBACK-INLINE\" cardinality=\"single\" base-type=\"identifier\"/>\n\n <qti-assessment-stimulus-ref identifier=\"Stimulus1\" href=\"stimuli/Stimulus1\" title=\"Math Context\"/>\n <qti-assessment-stimulus-ref identifier=\"Stimulus2\" href=\"stimuli/Stimulus2\" title=\"Additional Context\"/>\n\n <qti-item-body>\n <qti-choice-interaction response-identifier=\"RESPONSE\" shuffle=\"false\" max-choices=\"1\">\n <qti-prompt>What is 2 + 2?</qti-prompt>\n <qti-simple-choice identifier=\"A\">\n 3\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"A\" show-hide=\"show\">\n <span style=\"color: #D9534F;\">Incorrect: Try counting again.</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n <qti-simple-choice identifier=\"B\">\n 4\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"B\" show-hide=\"show\">\n <span style=\"color: #2E8B57;\">Correct: Well done!</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n </qti-choice-interaction>\n </qti-item-body>\n\n <qti-response-processing template=\"match_correct\">\n <qti-response-condition>\n <qti-response-if>\n <qti-match>\n <qti-variable identifier=\"RESPONSE\"/>\n <qti-correct identifier=\"RESPONSE\"/>\n </qti-match>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">CORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-if>\n <qti-response-else>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">INCORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-else>\n </qti-response-condition>\n </qti-response-processing>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"CORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Correct!</strong> Well done.</p>\n </qti-content-body>\n </qti-modal-feedback>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"INCORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Incorrect.</strong> Please review and try again.</p>\n </qti-content-body>\n </qti-modal-feedback>\n</qti-assessment-item>",
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qti-assessment-item\n xmlns=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqtiasi_v3p0 https://purl.imsglobal.org/spec/qti/v3p0/schema/xsd/imsqti_asiv3p0_v1p0.xsd\"\n identifier=\"xml-choice-item-1\"\n title=\"Sample Choice Question\"\n adaptive=\"false\"\n time-dependent=\"false\">\n\n <qti-response-declaration identifier=\"RESPONSE\" cardinality=\"single\" base-type=\"identifier\">\n <qti-correct-response>\n <qti-value>B</qti-value>\n </qti-correct-response>\n </qti-response-declaration>\n\n <qti-outcome-declaration identifier=\"FEEDBACK\" cardinality=\"single\" base-type=\"identifier\"/>\n <qti-outcome-declaration identifier=\"FEEDBACK-INLINE\" cardinality=\"single\" base-type=\"identifier\"/>\n\n <qti-assessment-stimulus-ref identifier=\"Stimulus1\" href=\"stimuli/Stimulus1\" title=\"Math Context\"/>\n <qti-assessment-stimulus-ref identifier=\"Stimulus2\" href=\"stimuli/Stimulus2\" title=\"Additional Context\"/>\n\n <qti-item-body>\n <qti-choice-interaction response-identifier=\"RESPONSE\" shuffle=\"false\" max-choices=\"1\">\n <qti-prompt>What is 2 + 2?</qti-prompt>\n <qti-simple-choice identifier=\"A\">\n 3\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"A\" show-hide=\"show\">\n <span style=\"color: #D9534F;\">Incorrect: Try counting again.</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n <qti-simple-choice identifier=\"B\">\n 4\n <qti-feedback-inline outcome-identifier=\"FEEDBACK-INLINE\" identifier=\"B\" show-hide=\"show\">\n <span style=\"color: #2E8B57;\">Correct: Well done!</span>\n </qti-feedback-inline>\n </qti-simple-choice>\n </qti-choice-interaction>\n </qti-item-body>\n\n <qti-response-processing template=\"match_correct\">\n <qti-response-condition>\n <qti-response-if>\n <qti-match>\n <qti-variable identifier=\"RESPONSE\"/>\n <qti-correct identifier=\"RESPONSE\"/>\n </qti-match>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">CORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-if>\n <qti-response-else>\n <qti-set-outcome-value identifier=\"FEEDBACK\">\n <qti-base-value base-type=\"identifier\">INCORRECT</qti-base-value>\n </qti-set-outcome-value>\n </qti-response-else>\n </qti-response-condition>\n </qti-response-processing>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"CORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Correct!</strong> Well done.</p>\n </qti-content-body>\n </qti-modal-feedback>\n\n <qti-modal-feedback outcome-identifier=\"FEEDBACK\" identifier=\"INCORRECT\" show-hide=\"show\">\n <qti-content-body>\n <p><strong>Incorrect.</strong> Please review and try again.</p>\n </qti-content-body>\n </qti-modal-feedback>\n</qti-assessment-item>"
]
}
'{
"results": [
{
"success": "true",
"entityId": "<string>",
"xmlContent": "<string>",
"validationErrors": [
"<string>"
],
"message": "<string>"
}
]
}The access token received from the authorization server in the OAuth 2.0 flow.
The stimulus content to create.
Validate a batch of QTI XML strings against the QTI 3.0 XSD specification. You can send Assessment Test, Assessment Item or Stimulus XML strings to be validated along with its schema type of either 'test', 'item', or 'stimulus'. If entityIds are provided, the xml strings attached will be ignored and the rawXml string will be returned as xmlContent from the database.
An array of XML strings to validate against the QTI 3.0 XSD specification. If entityIds are provided, this will be ignored.
The schema to validate the XML against. Must be one of 'test', 'item', or 'stimulus'.
test, item, stimulus An array of entity IDs to validate the XML against. Must be one of 'test', 'item', or 'stimulus'.
Successfully validated XML
Show child attributes