DOCUMENT NUMBER: CMI 013


XML for CMI Communication


Version 1.0.0

March 2007


THIS DOCUMENT IS CONTROLLED BY:


AICC CMI Subcommittee

ALL REVISIONS SHALL BE APPROVED

BY THE ABOVE ORGANIZATION PRIOR TO RELEASE


POINT OF CONTACT:


Scott Bergstrom AICC Administrator

P.O. Box 472

Sugar City, ID 83448-0472


Caveats...

The data contained in this document has been collected by the AICC as an information resource for computer-based training programs. Neither the AICC nor any of its members assumes nor shall any of them have any responsibility for any use by anyone for any purpose of this document or of the data which it contains.

©2007 AICC

All rights reserved.

Telephone: (208) 496-1136 E-mail: admin@aicc.org



Prepared by:


Jack Hyde, AICC Kevin Schlipper, EEDO Shota Aki, SkillSoft


Approved by:                                                                Willaim A McDonald Date

Alteon Training

CMI Subcommittee Chairman


Approved by:                                                                Neil Cramer Date

Northwest Airlines AICC Chairman

REGISTRATION FORM

To receive free notification of revisions to this document, mail or fax the following information to


Scott Bergstrom AICC Administrator

P.O. Box 472

Sugar City, ID 83448-0472


Telephone: (208) 496-1136 E-mail: admin@aicc.org


Name:

Title:

Organization:

Address:


City:

State:

Zip Code:

Telephone:

Fax:

E-mail:


ABSTRACT


This document discusses using XML to encode the communication from an LMS/CMI system to content, and from content back to the LMS/CMI system.

This document includes examples, and XML schemas describing the communication.


KEY WORDS


HTTP CMI LMS

AU

Course structure Communication, CBT Guidelines


The use of registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.


REVISION HISTORY


1.0.0 14 March 2007

Initial document.

Table of Contents

  1. INTRODUCTION

    1

    1. Purpose 1

    2. Scope 1

    3. Document Conventions 1

  2. COMMUNICATION DATA MODEL

    2

  3. XML COMMUNICATION SCHEMAS

    5

    1. From LMS to AU XML Schema 5

    2. From AU to LMS XML Schema 10

  4. XML COMMUNICATION EXAMPLES

    17

    1. From LMS to AU XML Example 17

    2. From AU to LMS XML Example 19

  5. GLOSSARY

    23

  1. Introduction

    1. Purpose

      This document is designed to describe an XML binding for the AICC CMI communication data model. It uses the following approaches to this description: XML schemas for the binding, and examples of messages using the XML bindings.


    2. Scope

      This document provides a guide to binding the CMI communication data model to an XML file. The scope of this document does not extend to how this information may be used. One use includes communicating information on student behaviors and performance from an Offline CMI system to an LMS. Other uses for this binding may also be appropriate.


    3. Document Conventions

      The version number used herein is broken into 3 parts. The first part is the major version, the second is the minor version, and the third is the errata version. The specification version is a combination of the first two (major and minor). The namespace of XSDs will only reflect the specification version (i.e. the major and minor version numbers). The errata version is specific to each document (i.e., the errata version is not necessarily synchronized for the specification document and each XSD document). For example, the spec may be on version 1.2 while the main document might be 1.2.3, ToAU schema might be on 1.2.5 and ToLMS might be on 1.2.7.


  2. Communication Data Model

    This section covers all the data that may be communicated between the CMI and content.


    In the following chapters, the binding of this data to an XML format is described in an XML schema (XSD).


    The table below lists all elements in this data model. Each element is defined and described in CMI Guidelines for Interoperability version 4.0, AICC document CMI001. The section indicated is where the description is located.

    Table Legend:

    Data Element Indicates the name of the data element.

    Section This column refers to the CMI Guidelines document (CMI001 version 4.0). It indicates the chapter and section in which the definition of the data element may be found.

    CMI Obligation This indicates whether the data element is required or optional for a CMI or LMS system.

    Comm Directn The direction in which the data travels. If it goes to the CMI from the AU the →symbol is used. If it goes from the AU to the CMI the ← symbol appears. If the data values goes both ways, the ↔ symbol appears.

    AU Obligation This indicates whether the data element is required or optional for an AU (or content).


    Data Element

    Section

    CMI

    Obligation

    Comm Directn

    AU

    Obligation

    Core

    2.1

    Mandatory

    Mandatory

    Core.Student Id

    2.1.1

    Mandatory

    Optional

    Core.Student Name

    2.1.2

    Mandatory

    Optional

    Core.Output File (N/A)

    2.1.3

    N/A


    N/A

    Core.Lesson Location

    2.1.4

    Mandatory

    Mandatory

    Core.Credit

    2.1.5

    Mandatory

    Optional

    Core.Lesson Status

    2.1.6

    Mandatory

    Mandatory

    Core.Exit

    2.1.7

    Mandatory

    Mandatory

    Core.Entry

    2.1.8

    Mandatory

    Optional

    Core.File Path (N/A)

    2.1.9

    N/A


    N/A

    Core.Score

    2.1.10

    Mandatory

    Mandatory

    Core.Session Time

    2.1.11

    Mandatory

    Mandatory

    Core.Total Time

    2.1.12

    Mandatory

    Optional

    Core.Lesson Mode

    2.1.13

    Optional

    Optional

    Suspend Data

    2.2

    Mandatory

    Mandatory

    Launch Data

    2.3

    Mandatory

    Optional

    Comments From Learner

    2.4

    Optional

    Optional

    Itemized Comments From Learner

    2.5

    Optional

    Optional

    Itemized Comments From Learner.Content

    2.5.1

    Optional

    Optional

    Itemized Comments From Learner.Course_Id

    2.5.2

    Optional

    Optional

    Itemized Comments From Learner.Date

    2.5.3

    Optional

    Optional

    Itemized Comments From Learner.Student_Id

    2.5.4

    Optional

    Optional

    Itemized Comments From Learner.Lesson_Id

    2.5.5

    Optional

    Optional

    Itemized Comments From Learner.Location

    2.5.6

    Optional

    Optional

    Itemized Comments From Learner.Time

    2.5.7

    Optional

    Optional

    Comments From LMS

    2.6

    Optional

    Optional


    Data Element

    Section

    CMI

    Obligation

    Comm Directn

    AU

    Obligation

    Evaluation (N/A)

    2.7

    N/A


    Optional

    Evaluation.Comments_File

    2.7.1

    N/A


    Optional

    Evaluation.Course_Id

    2.7.2

    Optional

    Optional

    Evaluation.Interactions_File

    2.7.3

    N/A


    Optional

    Evaluation.Objective_Status_File

    2.7.4

    N/A


    Optional

    Evaluation.Path_File

    2.7.5

    N/A


    Optional

    Evaluation.Performance_File

    2.7.6

    N/A


    Optional

    Objectives

    2.8

    Optional

    Optional

    Objectives.ID

    2.8.1

    Optional

    Optional

    Objectives.Score

    2.8.2

    Optional

    Optional

    Objectives.Status

    2.8.3

    Optional

    Optional

    Objectives.Date

    2.8.4

    Optional

    Optional

    Objectives.Time

    2.8.5

    Optional

    Optional

    Objectives.Mastery Time

    2.8.6

    Optional

    Optional

    Student Data

    2.9

    Optional

    Optional

    Student Data.Attempt Number

    2.9.1

    Optional

    Optional

    Student Data.Tries

    2.9.2

    Optional

    Optional

    Student Data.Tries.Score

    2.9.2.1

    Optional

    Optional

    Student Data.Tries.Status

    2.9.2.2

    Optional

    Optional

    Student Data.Tries.Time

    2.9.2.3

    Optional

    Optional

    Student Data.Mastery Score

    2.9.3

    Optional

    Optional

    Student Data.Max Time Allowed

    2.9.3

    Optional

    Optional

    Student Data.Time Limit Action

    2.9.4

    Optional

    Optional

    Student Data.Tries During Lesson

    2.9.5

    Optional

    Optional

    Student Data.Sessions Journal

    2.9.7

    Optional

    Optional

    Student Data.Sessions Journal.Score

    2.9.7.1

    Optional

    Optional

    Student Data.Sessions Journal.Status

    2.9.7.2

    Optional

    Optional

    Student Preference

    2.1

    Optional

    Optional

    Student Preference.Audio

    2.10.1

    Optional

    Optional

    Student Preference.Language

    2.10.2

    Optional

    Optional

    Student Preference.Lesson Type

    2.10.3

    Optional

    Optional

    Student Preference.Speed

    2.10.4

    Optional

    Optional

    Student Preference.Text

    2.10.5

    Optional

    Optional

    Student Preference.Text Color

    2.10.6

    Optional

    Optional

    Student Preference.Text Location

    2.10.7

    Optional

    Optional

    Student Preference.Text Size

    2.10.8

    Optional

    Optional

    Student Preference.Video

    2.10.9

    Optional

    Optional

    Student Preference.Windows

    2.10.10

    Optional

    Optional

    Interactions

    2.11

    Optional

    Optional

    Interactions.ID

    2.11.1

    Optional

    Optional

    Interactions.Objectives

    2.11.2

    Optional

    Optional

    Interactions.Date

    2.11.3

    Optional

    Optional

    Interactions.Time

    2.11.4

    Optional

    Optional

    Interactions.Type

    2.11.5

    Optional

    Optional

    Interactions.Correct Responses

    2.11.6

    Optional

    Optional

    Interactions.Weighting

    2.11.7

    Optional

    Optional

    Interactions.Student Response

    2.11.8

    Optional

    Optional

    Interactions.Result

    2.11.9

    Optional

    Optional

    Interactions.Latency

    2.11.10

    Optional

    Optional

    Paths

    2.12

    Optional

    Optional

    Paths.Location Id

    2.12.1

    Optional

    Optional

    Paths.Date

    2.12.2

    Optional

    Optional


    Data Element

    Section

    CMI

    Obligation

    Comm Directn

    AU

    Obligation

    Paths.Time

    2.12.3

    Optional

    Optional

    Paths.Status

    2.12.4

    Optional

    Optional

    Paths.Why Left

    2.12.5

    Optional

    Optional

    Paths.Time In Element

    2.12.6

    Optional

    Optional

    Student Demographics

    2.13

    Optional

    Optional

    Student Demographics.City

    2.13.1

    Optional

    Optional

    Student Demographics.Class

    2.13.2

    Optional

    Optional

    Student Demographics.Company

    2.13.3

    Optional

    Optional

    Student Demographics.Country

    2.13.4

    Optional

    Optional

    Student Demographics.Experience

    2.13.5

    Optional

    Optional

    Student Demographics.Familiar Name

    2.13.6

    Optional

    Optional

    Student Demographics.Instructor Name

    2.13.7

    Optional

    Optional

    Student Demographics.Native Language

    2.13.8

    Optional

    Optional

    Student Demographics.State

    2.13.9

    Optional

    Optional

    Student Demographics.Street Address

    2.13.10

    Optional

    Optional

    Student Demographics.Telephone

    2.13.11

    Optional

    Optional

    Student Demographics.Title

    2.13.12

    Optional

    Optional

    Student Demographics.Years Experience

    2.13.13

    Optional

    Optional

  3. XML Communication Schemas

    The information sent to the AU differs from the information sent to the LMS. Two XML schemas are thus defined to represent the CMI XML: toAU.xsd and toLMS.xsd respectively.

    While the schemas allow a description of the data type for each element, the description is not necessarily comprehensive for the complex data types in the AICC CMI Guidelines. Because the data types for some of the elements are so complex, it would burden the schemas to the point where understanding is compromised. The schemas are not meant to be a comprehensive test suite for CMI communication instances.


    Best practice recommendation: Producers of CMI XML should omit leading and trailing whitespace for element values. Consumers of CMI XML should strip leading and trailing whitespace when processing element values.


    1. From LMS to AU XML Schema

      This section describes the XSD that should be used for the LMS to AU communication (aka toAU.XSD)


      <?xml version="1.0" encoding="UTF-8"?>

      <schema targetNamespace="http://www.aicc.org/xmlbindings/cmixml/1.0/ToAU" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:aicc="http://www.aicc.org/xmlbindings/cmixml/1.0/ToAU" elementFormDefault="qualified">

      <annotation>

      <documentation>The version number is broken into 3 parts. The first part is the major version, the second is the minor version, and the third is the errata version. The specification version is a combination of the first two (major and minor). The namespace of XSDs will only reflect the specification version (i.e. the major and minor version numbers). The errata version is specific to each document(i.e., the errata version is not necessarily synchronized for the specification document and each XSD document). For example, the spec may be on version 1.2 while the main document might be 1.2.3, ToAU schema might be on 1.2.5 and ToLMS might be on 1.2.7.</documentation>

      </annotation>

      <element name="toAUCommunication">

      <complexType>

      <sequence>

      <element name="core">

      <complexType>

      <sequence>

      <element name="studentId" type="aicc:CMIIdentifierINI"/>

      <element name="studentName" type="aicc:CMIStudentName"/>

      <element name="lessonLocation" type="aicc:CMIString255INI"/>

      <element name="credit">

      <simpleType>

      <restriction base="string">

      <enumeration value="credit"/>

      <enumeration value="no-credit"/>

      <enumeration value=""/>

      </restriction>

      </simpleType>

      </element>

      <element name="lessonStatus" type="aicc:statusType"/>

      <element name="entry">

      <simpleType>

      <restriction base="string">

      <enumeration value="ab-initio"/>

      <enumeration value="resume"/>

      <enumeration value=""/>

      </restriction>

      </simpleType>

      </element>

      <element name="score" type="aicc:scoreType"/>

      <element name="totalTime" type="aicc:CMITimespan"/>

      <element name="lessonMode" minOccurs="0">

      <simpleType>

      <restriction base="string">

      <enumeration value="browse"/>

      <enumeration value="normal"/>

      <enumeration value="review"/>

      </restriction>

      </simpleType>

      </element>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      <element name="suspendData" type="aicc:CMIString4096INI"/>

      <element name="launchData" type="aicc:CMIString4096INI"/>

      <element name="commentsFromLms" type="aicc:CMIString4096INI" minOccurs="0"/>

      <element name="evaluation" minOccurs="0">

      <complexType>

      <sequence>

      <element name="courseId" type="aicc:CMIIdentifierDevID"/>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      <element name="objectives" minOccurs="0">

      <complexType>

      <sequence>

      <element name="objective" maxOccurs="unbounded">

      <complexType>

      <sequence>

      <element ref="aicc:id"/>

      <element name="score" type="aicc:scoreType"

      minOccurs="0"/>

      <element name="status"

      type="aicc:statusType" minOccurs="0"/>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      </sequence>

      </complexType>

      </element>

      <element name="studentData" minOccurs="0">

      <complexType>


      minOccurs="0"/> minOccurs="0"/>

      <sequence>

      <element name="attemptNumber" type="integer"

      <element name="masteryScore" type="aicc:CMIDecimal"


      <element name="maxTimeAllowed"

      type="aicc:CMITimespan" minOccurs="0"/>

      <element name="timeLimitAction" minOccurs="0">

      <simpleType>

      <restriction base="string">

      <enumeration value="Exit, Message"/>

      <enumeration value="Exit, No Message"/>

      <enumeration value="Continue, Message"/>

      <enumeration value="Continue, No Message"/>

      </restriction>

      </simpleType>

      </element>

      <element name="sessionsJournal" minOccurs="0">

      <complexType>

      <sequence>

      <element name="session"

      maxOccurs="unbounded">


      <complexType>

      <sequence>

      <element name="score"

      type="aicc:scoreType" minOccurs="0"/> type="aicc:statusType" minOccurs="0"/>


      <element name="status"

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      </sequence>

      </complexType>

      </element>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      <element name="studentPreference" minOccurs="0">

      <complexType>

      <sequence>

      <element name="audio" minOccurs="0">

      <simpleType>

      <restriction base="integer">

      <minInclusive value="-1"/>

      <maxInclusive value="100"/>

      </restriction>

      </simpleType>

      </element>

      <element name="language" type="aicc:CMIString255INI"

      minOccurs="0"/>

      <element name="lessonType"

      type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="speed" minOccurs="0">

      <simpleType>

      <restriction base="integer">


      minOccurs="0"/>

      <minInclusive value="-100"/>

      <maxInclusive value="100"/>

      </restriction>

      </simpleType>

      </element>

      <element name="text" minOccurs="0">

      <simpleType>

      <restriction base="integer">

      <enumeration value="-1"/>

      <enumeration value="0"/>

      <enumeration value="1"/>

      </restriction>

      </simpleType>

      </element>

      <element name="textColor" type="aicc:CMIString255INI"


      <element name="textLocation"

      type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="textSize" type="aicc:CMIString255INI"

      minOccurs="0"/> minOccurs="0"/>


      <element name="video" type="aicc:CMIString255INI"


      <element name="windows" minOccurs="0">

      <complexType>

      <sequence>

      <element name="window" type="string"

      maxOccurs="unbounded"/>


      </sequence>

      </complexType>

      </element>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      <element name="studentDemographics" minOccurs="0">

      <complexType>

      <sequence>

      <element name="city" type="aicc:CMIString255INI"

      minOccurs="0"/> minOccurs="0"/> minOccurs="0"/> minOccurs="0"/>


      <element name="class" type="aicc:CMIIdentifierINI"


      <element name="company" type="aicc:CMIString255INI"

      <element name="country" type="aicc:CMIString255INI"


      <element name="experience"

      type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="familiarName" type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="instructorName" type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="nativeLanguage" type="aicc:CMIString255INI" minOccurs="0"/>

      <element name="state" type="aicc:CMIString255INI"

      minOccurs="0"/>

      <element name="streetAddress"

      type="aicc:CMIString255INI" minOccurs="0"/>


      minOccurs="0"/> minOccurs="0"/>

      <element name="telephone" type="aicc:CMIString255INI"


      <element name="title" type="aicc:CMIString255INI"

      <element name="yearsExperience" minOccurs="0">

      <simpleType>

      <restriction base="integer">

      <minInclusive value="0"/>

      <maxInclusive value="99"/>

      </restriction>

      </simpleType>

      </element>

      <group ref="aicc:extension"/>

      </sequence>

      </complexType>

      </element>

      <group ref="aicc:extension"/>

      </sequence>

      <attribute name="version" type="string" use="required"/>

      </complexType>

      </element>

      <element name="date" type="string"/>

      <element name="id" type="aicc:CMIIdentifierDevID"/>

      <simpleType name="statusType">

      <restriction base="string">

      <enumeration value="passed"/>

      <enumeration value="failed"/>

      <enumeration value="completed"/>

      <enumeration value="incomplete"/>

      <enumeration value="not attempted"/>

      <enumeration value="browsed"/>

      </restriction>

      </simpleType>

      <complexType name="scoreType">

      <sequence>

      <element name="raw" type="aicc:CMIDecimal" nillable="true"/>

      <element name="max" type="aicc:CMIDecimal" minOccurs="0"/>

      <element name="min" type="aicc:CMIDecimal" minOccurs="0"/>

      </sequence>

      </complexType>

      <element name="time" type="string"/>

      <group name="extension">

      <sequence>

      <any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>

      </sequence>

      </group>

      <simpleType name="CMIString255INI">

      <restriction base="string">

      <maxLength value="255"/>

      <whiteSpace value="collapse"/>

      <pattern value="[^\r]*"/>

      </restriction>

      </simpleType>

      <simpleType name="CMIIdentifierINI">

      <restriction base="string">

      <maxLength value="255"/>

      <whiteSpace value="collapse"/>

      <pattern value='[^\s"]+'/>

      </restriction>

      </simpleType>

      <simpleType name="CMIStudentName">

      <restriction base="string">

      <maxLength value="255"/>

      <whiteSpace value="collapse"/>

      <pattern value="[\c\- ]+,[\c\-\. ]*"/>

      </restriction>

      </simpleType>

      <simpleType name="CMITimespan">

      <restriction base="string">

      <pattern value="\d{2,4}:\d{2}:\d{2}(.\d{1,2})?"/>

      </restriction>

      </simpleType>

      <simpleType name="CMIString4096INI">

      <restriction base="string">

      <maxLength value="4096"/>

      <whiteSpace value="collapse"/>

      <pattern value="[^\[\]]*"/>

      </restriction>

      </simpleType>

      <simpleType name="CMIIdentifierDevID">

      <restriction base="string">

      <pattern value="[A-Za-z\d_\-\{\}]*"/>

      </restriction>

      </simpleType>

      <simpleType name="CMIDecimal">

      <restriction base="string">

      <maxLength value="255"/>

      <pattern value="(-)?\d*(.\d+)?"/>

      </restriction>

      </simpleType>

      </schema>


    2. From AU to LMS XML Schema

      This section describes the XSD that should be used for the AU to LMS communication (aka toLMS.XSD)

      <?xml version="1.0" encoding="UTF-8"?>

      <schema targetNamespace="http://www.aicc.org/xmlbindings/cmixml/1.0/ToLMS" xmlns:aicc="http://www.aicc.org/xmlbindings/cmixml/1.0/ToLMS" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

      <annotation>

      <documentation>The version number is broken into 3 parts. The first part is the major version, the second is the minor version, and the third is the errata version. The specification version is a combination of the first two (major and minor). The namespace of XSDs will only reflect the specification version (i.e. the major and minor version numbers). The errata version is specific to each document(i.e., the errata version is not necessarily synchronized for the specification document and each XSD document). For example, the spec may be on version 1.2 while the main document might be 1.2.3, ToAU schema might be on 1.2.5 and ToLMS might be on 1.2.7.</documentation>

      </annotation>

      <element name="toLMSCommunication">

      <complexType>

<sequence>

<element name="contentIds" minOccurs="0">

<annotation>

<documentation>This is a placeholder element used to store IDs related to the content in order to eliminate repetition of data.</documentation>

</annotation>

<complexType>

<sequence>

<element name="studentId" type="aicc:CMIIdentifierINI" minOccurs="0"/>

<element name="courseId" type="aicc:CMIIdentifierDevID" minOccurs="0"/>

<element name="lessonId" type="aicc:CMIIdentifierDevID" minOccurs="0"/>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

<element name="core">

<complexType>

<sequence>

<element name="lessonLocation" type="aicc:CMIString255INI"/>

<element name="lessonStatus">

<simpleType>

<restriction base="aicc:statusType">

<whiteSpace value="collapse"/>

</restriction>

</simpleType>

</element>

<element name="exit">

<simpleType>

<restriction base="string">

<enumeration value="time-out"/>

<enumeration value="suspend"/>

<enumeration value="logout"/>

<enumeration value=""/>

</restriction>

</simpleType>

</element>

<element name="score" type="aicc:scoreType"/>

<element name="sessionTime" type="aicc:CMITimespan"/>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

<element name="suspendData" type="aicc:CMIString4096INI"/>

<element name="commentsFromLearner" type="aicc:CMIString4096INI" minOccurs="0"/>

<element name="itemizedCommentsFromLearner" minOccurs="0">

<complexType>

<sequence>

<element name="comment" maxOccurs="unbounded">

<complexType>

<sequence>

<element name="content"

type="aicc:CMIString255CSV"/> minOccurs="0"/>


<element name="date" type="aicc:CMIDate"

<element name="location"

type="aicc:CMIString255CSV" minOccurs="0"/>

<element name="time" type="aicc:CMITime"

minOccurs="0"/>


<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

</sequence>

</complexType>

</element>

<element name="objectives" minOccurs="0">

<complexType>

<sequence>

<element name="objective" maxOccurs="unbounded">

<complexType>

<sequence>

<element ref="aicc:id"/>

<element name="score" type="aicc:scoreType"

minOccurs="0"/>

<element name="status"

type="aicc:statusType" minOccurs="0"/>

<element name="date" type="aicc:CMIDate"

minOccurs="0"/> minOccurs="0"/>


<element name="time" type="aicc:CMITime"

<element name="masteryTime"

type="aicc:CMITimespan" minOccurs="0"/>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

</sequence>

</complexType>

</element>

<element name="studentData" minOccurs="0">

<complexType>

<sequence>

<element name="triesDuringLesson" minOccurs="0">

<simpleType>

<restriction base="integer">

<minInclusive value="0"/>

</restriction>

</simpleType>

</element>

<element name="tries" minOccurs="0">

<complexType>

<sequence>

<element name="try">

<complexType>

<sequence>

<element name="score"

type="aicc:scoreType" minOccurs="0"/>

<element name="status"

type="aicc:statusType" minOccurs="0"/> type="aicc:CMITime" minOccurs="0"/>


<element name="time"

<group ref="aicc:extension"/>


use="required"/>

</sequence>

<attribute name="tryNumber" type="int"


</complexType>

</element>

</sequence>

</complexType>

</element>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

<element name="studentPreference" minOccurs="0">

<complexType>

<sequence>

<element name="audio" minOccurs="0">

<simpleType>

<restriction base="integer">

<minInclusive value="-1"/>

<maxInclusive value="100"/>

</restriction>

</simpleType>

</element>

<element name="language" type="aicc:CMIString255INI"

minOccurs="0"/>

<element name="lessonType"

type="aicc:CMIString255INI" minOccurs="0"/>

<element name="speed" minOccurs="0">

<simpleType>

<restriction base="integer">

<minInclusive value="-100"/>

<maxInclusive value="100"/>

</restriction>

</simpleType>

</element>

<element name="text" minOccurs="0">

<simpleType>

<restriction base="integer">

<enumeration value="-1"/>

<enumeration value="0"/>

<enumeration value="1"/>

</restriction>

</simpleType>

</element>

<element name="textColor" type="aicc:CMIString255INI"

minOccurs="0"/>

<element name="textLocation"

type="aicc:CMIString255INI" minOccurs="0"/>

<element name="textSize" type="aicc:CMIString255INI"

minOccurs="0"/> minOccurs="0"/>


<element name="video" type="aicc:CMIString255INI"


<element name="windows" minOccurs="0">


maxOccurs="unbounded"/>

<complexType>

<sequence>

<element name="window" type="string"

</sequence>

</complexType>

</element>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

<element name="interactions" minOccurs="0">

<complexType>

<sequence>

<element name="interaction" maxOccurs="unbounded">

<complexType>

<sequence>

<element ref="aicc:id" minOccurs="0"/>

<element name="interactionObjectives"

minOccurs="0">


maxOccurs="unbounded"/>


minOccurs="0"/> minOccurs="0"/>


minOccurs="0">


<complexType>

<sequence>

<element ref="aicc:id"

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

<element name="date" type="aicc:CMIDate"


<element name="time" type="aicc:CMITime"


<element name="type" minOccurs="0">

<simpleType>

<restriction base="string">

<enumeration value="true-false"/>

<enumeration value="choice"/>

<enumeration value="fill-in"/>

<enumeration value="matching"/>

<enumeration value="performance"/>

<enumeration value="sequencing"/>

<enumeration value="likert"/>

<enumeration value="numeric"/>

</restriction>

</simpleType>

</element>

<element name="correctResponses"

<complexType>

<sequence>

<element name="correctResponse"

type="string" maxOccurs="unbounded"/>

</sequence>

</complexType>

</element>

<element name="weighting" type="aicc:CMIDecimal" minOccurs="0"/>


type="string" minOccurs="0"/> minOccurs="0"/>

<element name="studentResponse"


<element name="result" type="string"

<element name="latency"

type="aicc:CMITimespan" minOccurs="0"/>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

</sequence>

</complexType>

</element>

<element name="paths" minOccurs="0">

<complexType>

<sequence>

<element name="path" maxOccurs="unbounded">

<complexType>

<sequence>

<element name="locationId" type="aicc:CMIIdentifierINI" minOccurs="0"/>

<element name="date" type="aicc:CMIDate"

minOccurs="0"/> minOccurs="0"/>


selected"/> directed"/>


departure"/>

<element name="time" type="aicc:CMITime"


<element name="status" minOccurs="0">

<simpleType>

<restriction base="string">

<enumeration value="passed"/>

<enumeration value="completed"/>

<enumeration value="failed"/>

<enumeration value="incomplete"/>

</restriction>

</simpleType>

</element>

<element name="whyLeft" minOccurs="0">

<simpleType>

<restriction base="string">

<enumeration value="student


<enumeration value="lesson


<enumeration value="exit"/>

<enumeration value="directed


</restriction>

</simpleType>

</element>

<element name="timeInElement"

type="aicc:CMITimespan" minOccurs="0"/>

<group ref="aicc:extension"/>

</sequence>

</complexType>

</element>

</sequence>

</complexType>

</element>

<group ref="aicc:extension"/>

</sequence>

<attribute name="version" type="string" use="required"/>

</complexType>

</element>

<element name="date" type="aicc:CMIDate"/>

<element name="id" type="aicc:CMIIdentifierDevID"/>

<simpleType name="statusType">

<restriction base="string">

<enumeration value="passed"/>

<enumeration value="failed"/>

<enumeration value="completed"/>

<enumeration value="incomplete"/>

<enumeration value="not attempted"/>

<enumeration value="browsed"/>

</restriction>

</simpleType>

<complexType name="scoreType">

<sequence>

<element name="raw" type="aicc:CMIDecimal"/>

<element name="max" type="aicc:CMIDecimal" minOccurs="0"/>

<element name="min" type="aicc:CMIDecimal" minOccurs="0"/>

</sequence>

</complexType>

<group name="extension">

<sequence>

<any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>

</sequence>

</group>

<simpleType name="CMIString255INI">

<restriction base="string">

<maxLength value="255"/>

<whiteSpace value="collapse"/>

<pattern value="[^\r]*"/>

</restriction>

</simpleType>

<simpleType name="CMIIdentifierINI">

<restriction base="string">

<maxLength value="255"/>

<whiteSpace value="collapse"/>

<pattern value='[^\s"]+'/>

</restriction>

</simpleType>

<simpleType name="CMITimespan">

<restriction base="string">

<pattern value="\d{2,4}:\d{2}:\d{2}(.\d{1,2})?"/>

</restriction>

</simpleType>

<simpleType name="CMIString4096INI">

<restriction base="string">

<maxLength value="4096"/>

<whiteSpace value="collapse"/>

<pattern value="[^\[\]]*"/>

</restriction>

</simpleType>

<simpleType name="CMIIdentifierDevID">


<restriction base="string">

<pattern value="[A-Za-z\d_\-\{\}]*"/>

</restriction>

</simpleType>

<simpleType name="CMIString255CSV">

<restriction base="string">

<maxLength value="255"/>

<pattern value='[^\r"]+'/>

</restriction>

</simpleType>

<simpleType name="CMIDate">

<restriction base="string">

<length value="10"/>

<pattern value="\d{4}/\d{2}/\d{2}"/>

</restriction>

</simpleType>

<simpleType name="CMITime">

<restriction base="string">

<minLength value="8"/>

<maxLength value="11"/>

<pattern value="\d{2}:\d{2}:\d{2}[.\d{1,2}]*"/>

</restriction>

</simpleType>

<simpleType name="CMIDecimal">

<restriction base="string">

<maxLength value="255"/>

<pattern value="(-)?\d*(.\d+)?"/>

</restriction>

</simpleType>

</schema>


  1. XML Communication Examples

    1. From LMS to AU XML Example


      <?xml version="1.0" encoding="UTF-8"?>

      <toAUCommunication version="1.0" xmlns="http://www.aicc.org/xmlbindings/cmixml/1.0/ToAU" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.aicc.org/xmlbindings/cmixml/1.0/ToAU ToAU_1.0.0.xsd">

      <core>

      <studentId>jqh1674</studentId>

      <studentName>Carsen, Randolf C</studentName>

      <lessonLocation>Section1.12</lessonLocation>

      <credit>credit</credit>

      <lessonStatus>incomplete</lessonStatus>

      <entry>resume</entry>

      <score>

      <raw>4</raw>

      <max>25</max>

      <min>0</min>

      </score>

      <totalTime>00:04:53.1</totalTime>

<lessonMode>normal</lessonMode>

</core>

<suspendData> eclnode = 12

bookmark.1 = sec1.8

</suspendData>

<launchData> test = true repeat = false help = 3

</launchData>

<commentsFromLms>

Ignore Section 3.1. Use the handout for the correct version of this information. A new lesson with the revised Section should be available by August 2008.

</commentsFromLms>

<objectives>

<objective>

<id>apu001</id>

<score>

<raw>4</raw>

<max>4</max>

</score>

<status>passed</status>

</objective>

</objectives>

<studentData>

<attemptNumber>1</attemptNumber>

<masteryScore>20</masteryScore>

<maxTimeAllowed>00:00:35:00</maxTimeAllowed>

<timeLimitAction>Exit, Message</timeLimitAction>

<sessionsJournal>

<session>

<score>

<raw>4</raw>

<max>25</max>

</score>

<status>incomplete</status>

</session>

</sessionsJournal>

</studentData>

<studentPreference>

<audio>0</audio>

<language>en-US</language>

<lessonType>Boeing-A16</lessonType>

<speed>0</speed>

<text>1</text>

<textColor>white</textColor>

<textLocation>800,655</textLocation>

<textSize>1</textSize>

<video>320x200;1,1</video>

<windows>

<window>320x200: 1,1</window>

<window>200,200; 800,655</window>

</windows>

</studentPreference>

<studentDemographics>


<city>Springfield</city>

<class>B767-P14A-PA</class>

<company>NBA (Not Bankrupt Airlines)</company>

<country>USA</country>

<experience>9 yr PIC</experience>

<familiarName>Randy</familiarName>

<instructorName>BAM</instructorName>

<nativeLanguage>de</nativeLanguage>

<state>PA</state>

<streetAddress>21142 9th St</streetAddress>

<telephone>PA6-5000</telephone>

<title>pilot</title>

<yearsExperience>19</yearsExperience>

</studentDemographics>

</toAUCommunication>


    1. From AU to LMS XML Example


      <?xml version="1.0" encoding="UTF-8"?>

      <toLMSCommunication version="1.0" xmlns

      ="http://www.aicc.org/xmlbindings/cmixml/1.0/ToLMS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.aicc.org/xmlbindings/cmixml/1.0/ToLMS ToLMS_1.0.0.xsd">

      <core>

      <lessonLocation>Section8.11</lessonLocation>

      <lessonStatus>passed</lessonStatus>

      <exit>logout</exit>

      <score>

      <raw>23</raw>

      <max>25</max>

      <min>0</min>

      </score>

      <sessionTime>00:17:34.2</sessionTime>

      </core>

      <suspendData> eclnode = 18

      bookmark.1 = sec1.8 bookmark.2 = sec2.3 bookmark.3 = sec4.12

      </suspendData>

      <commentsFromLearner>

      Not a bad lesson, but I would have liked to have seen more examples shown.

      </commentsFromLearner>

      <objectives>

      <objective>

      <id>apu002</id>

      <score>

      <raw>10</raw>

      <max>10</max>

      </score>

      <status>passed</status>

      <date>2005/10/23</date>

      <time>13:02:31</time>

      <masteryTime>00:02:45.1</masteryTime>

</objective>

<objective>

<id>apu003</id>

<score>

<raw>6</raw>

<max>6</max>

</score>

<status>passed</status>

<date>2005/10/23</date>

<time>13:05:21</time>

<masteryTime>00:01:15.2</masteryTime>

</objective>

</objectives>

<studentData>

<triesDuringLesson>1</triesDuringLesson>

<tries>

<try tryNumber='1'>

<score>

<raw>23</raw>

</score>

<status>passed</status>

<time>00:17:34.2</time>

</try>

</tries>

</studentData>

<studentPreference>

<audio>0</audio>

<language>en-US</language>

<lessonType>Boeing-A16</lessonType>

<speed>0</speed>

<text>1</text>

<textColor>white</textColor>

<textLocation>800,655</textLocation>

<textSize>1</textSize>

<video>320x200;1,1</video>

<windows>

<window>320x200: 1,1</window>

<window>200,200; 800,655</window>

</windows>

</studentPreference>

<interactions>

<interaction>

<id>C001</id>

<interactionObjectives>

<id>apu002</id>

<id>apu018</id>

</interactionObjectives>

<date>2005/10/23</date>

<time>13:02:31</time>

<type>matching</type>

<correctResponses>

<correctResponse>{a.3,b.1,c.4,d.2}</correctResponse>

</correctResponses>

<weighting>1</weighting>

<studentResponse>a.3,b.1,c.4,d.2</studentResponse>

<result>10</result>

<latency>00:00:37.2</latency>

</interaction>

<interaction>

<id>C014</id>

<interactionObjectives>

<id>apu003</id>

</interactionObjectives>

<date>2005/10/23</date>

<time>13:05:21</time>

<type>performance</type>

<correctResponses>

<correctResponse>

Bat Sw - On; Oil - Check; Master Sw - Start; Temp - Monitor; RPM - Monitor

</correctResponse>

</correctResponses>

<weighting>1</weighting>

<studentResponse>

Bat Sw - On; Oil - Check; Master Sw - Start; Temp - Monitor; RPM - Monitor

</studentResponse>

<result>6</result>

<latency>00:01:47.5</latency>

</interaction>

<interaction>

<id>C014</id>

<interactionObjectives>

<id>apu004</id>

</interactionObjectives>

<date>2005/10/23</date>

<time>13:08:32</time>

<type>true-false</type>

<correctResponses>

<correctResponse>T</correctResponse>

</correctResponses>

<weighting>1</weighting>

<studentResponse>T</studentResponse>

<result>1</result>

<latency>00:00:04.5</latency>

</interaction>

<interaction>

<id>C021</id>

<interactionObjectives>

<id>apu005</id>

</interactionObjectives>

<date>2005/10/23</date>

<time>13:10:24</time>

<type>choice</type>

<correctResponses>

<correctResponse>c</correctResponse>

</correctResponses>

<weighting>1</weighting>

<studentResponse>c</studentResponse>

<result>4</result>

<latency>00:00:09.3</latency>

</interaction>

</interactions>

<paths>

<path>

<locationId>A002</locationId>


<date>2005/10/23</date>

<time>13:05:21</time>

<status>passed</status>

<whyLeft>student selected</whyLeft>

<timeInElement>00:03:41.3</timeInElement>

</path>

<path>

<locationId>A003</locationId>

<date>2005/10/23</date>

<time>13:09:41</time>

<status>passed</status>

<whyLeft>student selected</whyLeft>

<timeInElement>00:04:20</timeInElement>

</path>

</paths>

</toLMSCommunication>

  1. Glossary


AU

Assignable Unit. A module of computer based learning content (or CBT) that can be launched and tracked by a CMI system . The smallest logical unit of learning content in a course.

CMI

Computer Managed Instruction. In this document, this term refers to the system that manages a course. Such systems may also be called an LMS or even an LCMS.

LMS

Learning Management System. In this document, this term is used interchangeably with CMI.