The Accessible Portable Item Protocol (APIP) Standard provides assessment programs and question item developers with a data model for standardizing the interchange file format for digital test items. When applied properly, the APIP standard accomplishes two important goals. First, the standard allows digital Tests and Items to be ported across APIP compliant test item banks. Second, it provides a test delivery interface with all the information and resources required to make a Test and an Item accessible for students with a variety of disabilities and special needs. Read the APIP Frequently Asked Questions.
APIP Version 1.0 focuses is on:
- Enabling the exchange of question Items and Tests;
- Adopting, wherever possible, established learning technology interoperability standards and specifications, and only extending these when required;
- Ensuring that the solution can be readily expanded, at a later date, to support the exchange of other related assessment information;
- Ensuring the solution can be combined with other 1EdTech and non-1EdTech specifications to support new functionality, e.g., the reporting of assessment scores and outcomes;
- Ensuring that further profiling can be undertaken to tailor the approach to meet the needs of specific state assessment activities without compromising the baseline interoperability requirement and capability;
- Enabling vendors to adopt the solution without constraining their ability to create market-differentiated products and services.
APIP is based on the Question and Test Interoperability® (QTI®) specification. The APIP Standard expands the QTI model into a comprehensive framework that encompasses the requirements for creating accessible tests. The Access For All Personal Needs & Preferences (AfA PNP) v2.0 specification is also adopted as the basis for supplying the user preferences when using an APIP-enabled system. It is these accessibility preferences that are used by an assessment system to tailor, in real-time, the presentation of the question items to fit the accessibility needs of the user.
Conformance
A conformance certification program and online validation tool have also been developed and deployed. The QTI Evolution & Certification Committee maintains the QTI and APIP conformance tests. While conformance certification provides a "seal" for passing prescribed tests it is much more than that. It is a commitment by a supplier to the 1EdTech community for ongoing support for achieving "plug and play" integration. Therefore, certification implies ongoing community commitment to resolve problems, revise implementations and retest as need. Therefore, only 1EdTech Contributing Members, Affiliate Members and eAssessment Alliance participants are eligible to apply for conformance certification.
Organizations procuring QTI or APIP products are strongly encouraged to require 1EdTech conformance certification for all such products to ensure the highest levels of interoperability are achieved across the educational community. Products that have achieved conformance certification are listed and updated at Conformance Certification Status.
The following document is a primer on conformance and the relationship between QTIv2.x and APIP. It is highly recommended that this document be read prior to reading the other specifications:
/apip/IMSAssessmentPrimerv1p0.html
Version 1.0 Final Specification
The APIP v1.0 Final specification was approved by the Technical Advisory Board in May 2014. This replaces the 2012 Candidate Final specification and includes minor additions that are elective/optional in terms of conformance. A further update to include these corresponding changes in the base QTI specification will result in a QTI v2.2 update in 2015. 1EdTech strongly encourages suppliers to certify their content and systems against one of the available conformance profiles, details in the Alliance. To see a list of current APIP or QTI certified products, check out Conformance Certification Status.
The accommodations of APIP were fully integrated within the QTI 3.0 standard (released May 2022), and new programs are strongly encouraged to adopt the QTI 3 standard instead of the APIP specification.
Accessible Portable Item Protocol Specification - Version 1.0 Final Specification - HTML (28 May 2014)
APIP Best Practice and Implementation Guide
APIP Technical Specification for Access for All PNPv2.0 Features
APIP Technical Specification for QTIv2.2 Features
APIP Conformance and Certification
Version 1.0 XSDs and Namspaces:
This is the set of Final Release XSDs developed to support validation of instances that conform to the APIP Entry and Core Profiles. The namespace and schema location details for the APIP Profiles XSDs are provided in the tables below.
- Entry Profile XSDs - the XSDs for the APIP Entry Profile;
- Packaging XSDs - the XSDs for the APIP Package in the Entry Profile;
- Packaging-Related XSDs - the construction of the package manifest for the zipped package in the Entry Profile;
- Accessible QTI-Related XSDs - definition of the accessible questions and tests in the Entry Profile;
- Metadata-Related XSDs - the set of metadata supported in the manifest in the Entry Profile;
- LTI-Related XSDs - for the use of LTI 1.x in the Entry Profile;
- Other Required XSDs - other XSDs required for the full validation of the Entry Profile.
- PNP XSDs - the XSDs for the APIP PNP instance in the Entry Profile;
- Packaging XSDs - the XSDs for the APIP Package in the Entry Profile;
- Core Profile XSDs - the XSDs for the APIP Core Profile;
- Packaging XSDs - the XSDs for the APIP Package in the Core Profile;
- Packaging-Related XSDs - the construction of the package manifest for the zipped package in the Core Profile;
- Accessible QTI-Related XSDs - definition of the accessible questions and tests in the Core Profile;
- Metadata-Related XSDs - the set of metadata supported in the manifest in the Core Profile;
- LTI-Related XSDs - for the use of LTI 1.x in the Core Profile;
- Other Required XSDs - other XSDs required for the full validation of the Core Profile.
- PNP XSDs - the XSDs for the APIP PNP instance in the Core Profile;
- Packaging XSDs - the XSDs for the APIP Package in the Core Profile;
The key for the tables is:
- "Namespace" - the namespace for the XSD (must be supplied in any XML instance referring to the corresponding XSD);
- "XSD File Name" - the filename for the XSD;
- "Schema Location" - the schema location for the XSD (must be supplied in any XML instance referring to the corresponding XSD);
- '*' denotes that all of the files are held in the directory located at: "/profile/apip/apipv1p0/entry";
- '**' denotes that all of the files are held in the directory located at: "/profile/apip/apipv1p0/".
A. APIP Entry Profile
The set of XSDs to be used for instances to be validated against the APIP Entry Profile.
A1. APIP Packaging XSDs
The set of XSDs to be used for APIP Package instances to be validated against the APIP Entry Profile. The following set of XSDs are used for the validation of:
- Pe1 - used to validate the "imsmanifest.xml" file that must be present in the zipped package;
- Pe2 - used to validate the resource variants used within the "imsmanifest.xml" file (the "M1" metadata validation is used with variants);
- Qe1 - used to validate a QTI Item (uses "Q2" to validate the accessibility content);
- Qe2 - used to validate the alternative accessibility content for the QTI object;
- Qe3 - used to validate a QTI Section (uses "Q2" to validate the accessibility content);
- Qe4 - used to validate a QTI Test (uses "Q2" to validate the accessibility content);
- Qe5 - used to validate a QTI Response Processing (uses "Q2" to validate the accessibility content);
- Qe6 - used to validate a QTI Outcomes (uses "Q2" to validate the accessibility content);
- Qe7 - used to validate a QTI Shared Stimulus (uses "Q2" to validate the accessibility content);
- Me1 - used to validate the Access for All Digital Resource Description (AfA DRD) metadata that is used with variant resources;
- Me2 - used to validate the learning standards annotations, at the manifest and resource level, defined using the Curriculum Standards Metadata (CSM);
- Me3 - used to validate the manifest-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
- Me4 - used to validate the resource-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
- Me5 - used to validate the QTI metadata that is associated with a QTI-based resource;
- Le1 - used to validate the LTI block that is inserted inside the APIP Package;
- Le2 - used to validate the Basic LTI link description;
- Le3 - used to validate the common message features used in LTI;
- Le4 - used to validate the common profile features usied in LTI;
- Le5 - used to validate the the POX messaing used for the outcomes reporting;
- Xe1 - used to validate the xml-specific attributes;
- Xe2 - used to validate the XInclude features;
- Xe3 - used to validate the Xlink features;
- Xe4 - used to validate the MathML 2 features;
- Xe5 - used to validate the SSML features (in Q2).
A1.1 Packaging-Related XSDs
ID | Namespace | XSD File Name | Schema Location* |
---|---|---|---|
Pe1 |
/xsd/apip/apipv1p0/imscp_v1p1 |
apipv1p0_imscpv1p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_imscpv1p2_v1p0.xsd |
Pe2 |
/xsd/apip/apipv1p0/imscp_extensionv1p2 |
apipv1p0_cpextv1p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_cpextv1p2_v1p0.xsd |
A1.2 Accessible QTI-Related XSDs
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Qe1 |
/xsd/apip/apipv1p0/qtiitem/imsqti_v2p2 |
apipv1p0_qtiitemv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtiitemv2p2_v1p0.xsd |
Qe2 |
/xsd/apip/apipv1p0/imsapip_qtiv1p0 |
apipv1p0_qtiextv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtiextv2p2_v1p0.xsd |
Qe3 |
/xsd/apip/apipv1p0/qtisection/imsqti_v2p2 |
apipv1p0_qtisectionv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtisectionv2p2_v1p0.xsd |
Qe4 |
/xsd/apip/apipv1p0/qtitest/imsqti_v2p2 |
apipv1p0_qtiitemv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtitestv2p2_v1p0.xsd |
Qe5 |
/xsd/apip/apipv1p0/qtiresproc/imsqti_v2p2 |
apipv1p0_qtiresprocessingv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtiresprocessingv2p2_v1p0.xsd |
Qe6 |
/xsd/apip/apipv1p0/qtioutcomes/imsqti_v2p2 |
apipv1p0_qtioutcomesv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtioutcomesv2p2_v1p0.xsd |
Qe7 |
/xsd/apip/apipv1p0/qtistimulus/imsqti_v2p2 |
apipv1p0_qtistimulusv2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtistimulusv2p2_v1p0.xsd |
A1.3 Metadata-Related XSDs
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Me1 |
/xsd/apip/apipv1p0/imsafa_drdv2p0 |
apipv1p0_afadrdv2p0_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_afadrdv2p0_v1p0.xsd |
Me2 |
/xsd/apip/apipv1p0/imscsmd_v1p0 |
apipv1p0_imscsmd_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_imscsmdv1p0_v1p0.xsd |
Me3 |
http://ltsc.ieee.org/xsd/apipv1p0/LOM/manifest |
apipv1p0_lommanifestv1p0_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_lommanifestv1p0_v1p0.xsd |
Me4 |
http://ltsc.ieee.org/xsd/apipv1p0/LOM/resource |
apipv1p0_lomresourcev1p0_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_lomresourcev1p0_v1p0.xsd |
Me5 |
/xsd/apip/apipv1p0/qtimetadata/imsqti_v2p2 |
apipv1p0_qtimetadatav2p2_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_qtimetadatav2p2_v1p0.xsd |
A1.4 LTI-Related XSDs
ID | Namespace | XSD File Name | Schema Location |
---|---|---|---|
Le1 |
/xsd/imslticc_v1p0 |
imslticc_v1p0p1.xsd | /xsd/lti/ltiv1p0/imslticc_v1p0p1.xsd |
Le2 |
/xsd/imsbasiclti_v1p0 |
imsbasiclti_v1p0p1.xsd | /xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd |
Le3 |
/xsd/imslticp_v1p0 |
imslticp_v1p0.xsd | /xsd/lti/ltiv1p0/imslticp_v1p0.xsd |
Le4 |
/xsd/imslticm_v1p0 |
imslticm_v1p0.xsd | /xsd/lti/ltiv1p0/imslticm_v1p0.xsd |
Le5 |
/services/ltiv1p1/xsd/imsoms_v1p0 |
OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd | /xsd/lti/ltiv1p1/OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd |
A1.5 Other-Related XSDs
ID | Namespace | XSD File Name | Schema Location |
---|---|---|---|
Xe1 |
http://www.w3.org/XML/1998/namespace |
xml.xsd | /xsd/w3/2001/xml.xsd |
Xe2 |
http://www.w3.org/2001/XInclude |
XInclude.xsd | /xsd/w3/2001/XInclude.xsd |
Xe3 |
http://www.w3.org/1999/xlink |
Xlink.xsd | /xsd/w3/1999/xlink.xsd |
Xe4 |
http://www.w3.org/1998/Math/MathML |
mathml2.xsd | http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd |
Xe5 |
http://www.w3.org/2001/10/synthesis |
ssmlv1p0.xsd | /xsd/w3/2001/ssmlv1p0.xsd |
A2. APIP Personal Needs and Preferences XSDs
The set of XSDs to be used for APIP PNP instances to be validated against the APIP Entry Profile. The following set of XSDs are used for the validation of:
- Ae1 - used to validate a APIP AFA PNP instance (uses "A2" to validate the APIP extensions to the AfA DRDv2.0);
- Ae2 - used to validate the APIP accessibility extensions;
- Ae3 - used to validate the instance that contains a set of API AFA PNP Records.
ID | Namespace | XSD File Name | Schema Location* |
---|---|---|---|
Ae1 |
/xsd/apip/apipv1p0/imsafa_pnpv2p0 |
apipv1p0_afapnpv2p0_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_afapnpv2p0_v1p0.xsd |
Ae2 |
/xsd/apip/apipv1p0/imsapip_pnpv1p0 |
apipv1p0_afapnpextv1p0_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_afapnpextv1p0_v1p0.xsd |
Ae3 |
/xsd/apip/apipv1p0/imsapip_pnprecordsv1p0 |
apipv1p0_afapnpv2p0records_v1p0.xsd | /profile/apip/apipv1p0/entry/apipv1p0_afapnpv2p0records_v1p0.xsd |
B. APIP Core Profile
The set of XSDs to be used for instances to be validated against the APIP Core Profile.
B1. APIP Packaging XSDs
The set of XSDs to be used for APIP Package instances to be validated against the APIP Core Profile. The following set of XSDs are used for the validation of:
- Pc1 - used to validate the "imsmanifest.xml" file that must be present in the zipped package;
- Pc2 - used to validate the resource variants used within the "imsmanifest.xml" file (the "M1" metadata validation is used with variants);
- Qc1 - used to validate a QTI Item (uses "Q2" to validate the accessibility content);
- Qc2 - used to validate the alternative accessibility content for the QTI object;
- Qc3 - used to validate a QTI Section (uses "Q2" to validate the accessibility content);
- Qc4 - used to validate a QTI Test (uses "Q2" to validate the accessibility content);
- Qc5 - used to validate a QTI Response Processing (uses "Q2" to validate the accessibility content);
- Qc6 - used to validate a QTI Outcomes (uses "Q2" to validate the accessibility content);
- Qc7 - used to validate a QTI Shared Stimulus (uses "Q2" to validate the accessibility content);
- Mc1 - used to validate the Access for All Digital Resource Description (AfA DRD) metadata that is used with variant resources;
- Mc2 - used to validate the learning standards annotations, at the manifest and resource level, defined using the Curriculum Standards Metadata (CSM);
- Mc3 - used to validate the manifest-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
- Mc4 - used to validate the resource-level metadata, in the "imsmanifest.xml" file, defined using IEEE LOM;
- Mc5 - used to validate the QTI metadata that is associated with a QTI-based resource;
- Lc1 - used to validate the LTI block that is inserted inside the APIP Package;
- Lc2 - used to validate the Basic LTI link description;
- Lc3 - used to validate the common message features used in LTI;
- Lc4 - used to validate the common profile features usied in LTI;
- Lc5 - used to validate the the POX messaing used for the outcomes reporting;
- Xc1 - used to validate the xml-specific attributes;
- Xc2 - used to validate the XInclude features;
- Xc3 - used to validate the Xlink features;
- Xc4 - used to validate the MathML 2 features;
- Xc5 - used to validate the SSML features (in Q2).
B1.1 Packaging-Related XSDs
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Pc1 |
/xsd/apip/apipv1p0/imscp_v1p1 |
apipv1p0_imscpv1p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_imscpv1p2_v1p0.xsd |
Pc2 |
/xsd/apip/apipv1p0/imscp_extensionv1p2 |
apipv1p0_cpextv1p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_cpextv1p2_v1p0.xsd |
B1.2 Accessible QTI-Related XSDs
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Qc1 |
/xsd/apip/apipv1p0/qtiitem/imsqti_v2p2 |
apipv1p0_qtiitemv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtiitemv2p2_v1p0.xsd |
Qc2 |
/xsd/apip/apipv1p0/imsapip_qtiv1p0 |
apipv1p0_qtiextv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtiextv2p2_v1p0.xsd |
Qc3 |
/xsd/apip/apipv1p0/qtisection/imsqti_v2p2 |
apipv1p0_qtisectionv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtisectionv2p2_v1p0.xsd |
Qc4 |
/xsd/apip/apipv1p0/qtitest/imsqti_v2p2 |
apipv1p0_qtiitemv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtitestv2p2_v1p0.xsd |
Qc5 |
/xsd/apip/apipv1p0/qtiresproc/imsqti_v2p2 |
apipv1p0_qtiresprocessingv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtiresprocessingv2p2_v1p0.xsd |
Qc6 |
/xsd/apip/apipv1p0/qtioutcomes/imsqti_v2p2 |
apipv1p0_qtioutcomesv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtioutcomesv2p2_v1p0.xsd |
Qc7 |
/xsd/apip/apipv1p0/qtistimulus/imsqti_v2p2 |
apipv1p0_qtistimulusv2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtistimulusv2p2_v1p0.xsd |
B1.3 Metadata-Related XSDs
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Mc1 |
/xsd/apip/apipv1p0/imsafa_drdv2p0 |
apipv1p0_afadrdv2p0_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_afadrdv2p0_v1p0.xsd |
Mc2 |
/xsd/apip/apipv1p0/imscsmd_v1p0 |
apipv1p0_imscsmd_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_imscsmdv1p0_v1p0.xsd |
Mc3 |
http://ltsc.ieee.org/xsd/apipv1p0/LOM/manifest |
apipv1p0_lommanifestv1p0_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_lommanifestv1p0_v1p0.xsd |
Mc4 |
http://ltsc.ieee.org/xsd/apipv1p0/LOM/resource |
apipv1p0_lomresourcev1p0_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_lomresourcev1p0_v1p0.xsd |
Mc5 |
/xsd/apip/apipv1p0/qtimetadata/imsqti_v2p2 |
apipv1p0_qtimetadatav2p2_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_qtimetadatav2p2_v1p0.xsd |
B1.4 LTI-Related XSDs
ID | Namespace | XSD File Name | Schema Location |
---|---|---|---|
Lc1 |
/xsd/imslticc_v1p0 |
imslticc_v1p0p1.xsd | /xsd/lti/ltiv1p0/imslticc_v1p0p1.xsd |
Lc2 |
/xsd/imsbasiclti_v1p0 |
imsbasiclti_v1p0p1.xsd | /xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd |
Lc3 |
/xsd/imslticp_v1p0 |
imslticp_v1p0.xsd | /xsd/lti/ltiv1p0/imslticp_v1p0.xsd |
Lc4 |
/xsd/imslticm_v1p0 |
imslticm_v1p0.xsd | /xsd/lti/ltiv1p0/imslticm_v1p0.xsd |
Lc5 |
/services/ltiv1p1/xsd/imsoms_v1p0 |
OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd | /xsd/lti/ltiv1p1/OMSv1p0_LTIv1p1Profile_SyncXSD_v1p0.xsd |
B1.5 Other-Related XSDs
ID | Namespace | XSD File Name | Schema Location |
---|---|---|---|
Xc1 |
http://www.w3.org/XML/1998/namespace |
xml.xsd | /xsd/w3/2001/xml.xsd |
Xc2 |
http://www.w3.org/2001/XInclude |
XInclude.xsd | /xsd/w3/2001/XInclude.xsd |
Xc3 |
http://www.w3.org/1999/xlink |
Xlink.xsd | /xsd/w3/1999/xlink.xsd |
Xc4 |
http://www.w3.org/1998/Math/MathML |
mathml2.xsd | http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd |
Xc5 |
http://www.w3.org/2001/10/synthesis |
ssmlv1p0.xsd | /xsd/w3/2001/ssmlv1p0.xsd |
B2. APIP Personal Needs and Preferences (PNP) XSDs
The set of XSDs to be used for APIP PNP instances to be validated against the APIP Core Profile. The following set of XSDs are used for the validation of:
- Ac1 - used to validate an APIP AFA PNP instance (uses "A2" to validate the APIP extensions to the AfA DRDv2.0);
- Ac2 - used to validate the APIP accessibility extensions;
- Ac3 - used to validate the instance that contains a set of API AFA PNP Records.
ID | Namespace | XSD File Name | Schema Location** |
---|---|---|---|
Ac1 |
/xsd/apip/apipv1p0/imsafa_pnpv2p0 |
apipv1p0_afapnpv2p0_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_afapnpv2p0_v1p0.xsd |
Ac2 |
/xsd/apip/apipv1p0/imsapip_pnpv1p0 |
apipv1p0_afapnpextv1p0_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_afapnpextv1p0_v1p0.xsd |
Ac3 |
/xsd/apip/apipv1p0/imsapip_pnprecordsv1p0 |
apipv1p0_afapnpv2p0records_v1p0.xsd | /profile/apip/apipv1p0/apipv1p0_afapnpv2p0records_v1p0.xsd |