Элемент<adlcp: data> & <adlcp: map>не понятен
Я работаю над LMS SCORM 2004, основанной на 4- м издании, где я на начальной стадии. Следовательно, я читаю документы на основе SCORM.
В документе CAM 2004 4- го издания SCORM я застрял на странице CAM-3-37,
где элемент adlcp:data определяется как
контейнер, используемый для определения наборов общих данных, связанных с действием.
и дочерний элемент adlcp:data ie; карта определяется какЭлемент - это контейнер, используемый для описания того, как действие будет использовать определенный набор общих данных.
Я подумал, я могу понять это, поскольку я буду двигаться вперед в упомянутой книге. Но я закончил книгу CAM, и все же я не могу понять, как работают эти два тега.
А также, давайте рассмотрим пример, который заключается в следующем:
<adlcp:data>
<adlcp:map targetID="com.scorm.golfsamples.sequencing.forcedsequential.notesStorage" readSharedData="true" writeSharedData="true"/>
</adlcp:data>
где атрибут readSharedData указывает, что доступные в настоящее время общие данные будут использоваться действием, пока оно активно.
и атрибут writeSharedData указывает, что совместно используемые данные должны сохраняться (true или false) после завершения ( Terminate("")) попытки выполнения действия.
Вот в этом случае
я не получил то, что указывает этот targetID = com.scorm.golfsamples.sequencing.forcedsequential.notesStorage.
я не понял, что это за общие данные? и где он находится? что это на самом деле?
Может ли кто-нибудь помочь мне в понимании вышеописанных элементов?
2 ответа
adlcp:data - это способ определения пространства в СУО для хранения информации, которая не вписывается в модель данных CMI или которую вы хотите сделать доступной для SCO.
Есть 3 части, чтобы определить это пространство.
1. Атрибут adlcp: sharedDataGlobalToSystem в элементе, который сообщает, доступны ли совместно используемые данные для одной попытки или для каждой попытки (иначе говоря, они уничтожаются каждый раз, когда учащийся проходит курс). См. CAM-3-27
2. В элементах adlcp:data & adlcp: map перечислены места, которые вы хотите сделать доступными для этой SCO. Вы определяете идентификатор для каждого пространства хранения, а затем добавляете элементы управления доступом, означающие, может ли SCO читать или записывать данные в пространство хранения. (См. CAM-3-37)
Эти два настраивают хранилище LMS и поведение для каждого SCO в пакете контента.
Последняя часть описана в разделе 4.3 книги RTE. Для доступа к пространствам хранения данных вы используете запросы GetValue и SetValue API-интерфейса SCORM и элемент модели данных adl.data.n.store.
Еще одно примечание: поскольку порядок идентификаторов не обязательно поддерживается, вам нужно будет просмотреть циклы хранилищ adl.data в SCO и определить, какой индекс идет к какому идентификатору.
Ответ Тома Крейтонса - очень хорошее объяснение реализации общих корзин.
Я просто добавляю несколько указателей, которые мы нашли в нашей имплантации.
- Сохраненные данные предназначены для "учащегося", и к ним можно получить доступ и установить их в разных SCO или курсах, назначенных учащемуся. Однако будьте осторожны, если вы используете SCORM Cloud, кнопка Clear GLobals удалит данные для всех курсов, назначенных пользователю.
- Хотя Том упоминает, что adlcp: sharedDataGlobalToSystem является конкретной попыткой, поддержка SCORM Cloud говорит, что она ограничена курсом /SCO. Я еще не получил ясности в этом.
- Может быть ограничение на количество сохраняемых сегментов. Я еще не подтвердил это и скоро обновлю этот ответ.
Для тех, кто ищет больше информации о реализации:
Добавьте это к вашему элементу (организация> элемент) в манифесте:
<adlcp:data> <adlcp:map targetID="mybucketname" readSharedData="true" writeSharedData="true"/> </adlcp:data>
JS-часть (используйте вызовы API вместо LMSGetValue и LMSSetValue)
var dataBucketsCount = LMSGetValue("adl.data._count"); dataBucketsCount = parseInt(dataBucketsCount); for (var i=0; i < dataBucketsCount; i++){ if (LMSGetValue("adl.data." + i + ".id") == "mybucketname"){ //do your processing with the data } }
Я должен был много искать для этого и пытаться терпеть неудачу несколько раз, пока мы не поняли это правильно. Поэтому я добавил это здесь, чтобы в будущем это могло кому-то помочь.