Search code examples
xmlmanifestscormscorm1.2

What is the valid text node value for my SCORM 1.2 prerequisites?


I am trying to create a sequenced SCORM 1.2 package with multiple modules in the package. Specifying multiple item identifiers creates invalid XML though.

From ADL's "The SCORM Content Aggregation Model" (go to section 2-139), the text node value used is:

<adlcp:prerequisites type="aicc_script">R1&R2</adlcp:prerequisites>

So the XML chokes on the ampersand between R1/R2. What do I use instead of the ampersand character? I tried a comma which worked in Moodle but not Saba.

My manifest contents:

<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="captivate_test_multires_seq_4" version="1" xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd http://www.adlnet.org/xsd/adlcp_rootv1p2 adlcp_rootv1p2.xsd">
    <metadata>
        <schema>ADL SCORM</schema>
        <schemaversion>1.2</schemaversion>
        <lom xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd">
            <general>
                <title>
                <langstring xml:lang="x-none">Captivate Multi-Res Sequenced Test 4</langstring>
                </title>
                <description>
                    <langstring xml:lang="x-none">Captivate Multi-Res Sequenced Test 4</langstring>
                </description>
            </general>
        </lom>
    </metadata>
    <organizations default="kineo_scorm">
        <organization identifier="kineo_scorm">
            <title>Captivate Multi-Res Sequenced Test 4</title>
            <item identifier="item_1" isvisible="true" identifierref="res1">
                <title>Mod 1</title>
                <adlcp:masteryscore>50</adlcp:masteryscore>
            </item>
            <item identifier="item_2" isvisible="true" identifierref="res2">
                <title>Mod 2</title>
                <adlcp:prerequisites type="aicc_script">item_1</adlcp:prerequisites>
                <adlcp:masteryscore>50</adlcp:masteryscore>
            </item>
            <item identifier="item_3" isvisible="true" identifierref="res3">
                <title>Mod 3</title>
                <adlcp:prerequisites type="aicc_script">item1&item_2</adlcp:prerequisites>
                <adlcp:masteryscore>50</adlcp:masteryscore>
            </item>
        </organization>
    </organizations>
    <resources>
        <resource identifier="res1" type="webcontent" href="mod_1/mod_1.htm" adlcp:scormtype="sco">
            <file href="mod_1/mod_1.htm"/>
            <file href="mod_1/mod_1.swf"/>
        </resource>
        <resource identifier="res2" type="webcontent" href="mod_2/mod_2.htm" adlcp:scormtype="sco">
            <file href="mod_2/mod_2.htm"/>
            <file href="mod_2/mod_2.swf"/>
        </resource>
        <resource identifier="res3" type="webcontent" href="mod_3/mod_3.htm" adlcp:scormtype="sco">
            <file href="mod_3/mod_3.htm"/>
            <file href="mod_3/mod_3.swf"/>
        </resource>
    </resources>
</manifest>

Solution

  • Try using &amp; which is the preferred way of escaping ampersands (See also How do I escape ampersands in XML so they are rendered as entities in HTML?)

    (I just tried it in a LMS and it worked)