以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 IMS/SCORM/E-learning 』  (http://bbs.xml.org.cn/list.asp?boardid=9)
----  细读SCORM标准(入门知识)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=9&rootid=&id=69881)


--  作者:scormexplorer
--  发布时间:11/27/2008 8:02:00 AM

--  细读SCORM标准(入门知识)
为了透过建立 ” 教材重复使用与共享之机制 ” ,来减少教材之开发时程与成本,并使各教材在不同的 LMS 中能够重复使用、流通自如,美国政府在 1997 年底,由白宫的科技办公室与国防部 (DoD) 共同推动 ADL 先导计划 (Advanced Distributed Learning Initiative1) 。此计划集合教材开发厂商、使用者与 IMS2 、 AICC (Aviation Industry CBT Committee3) 、 IEEE 等标准化的推动单位,共同汇整美国各界过去在教材标准上的努力成果,进而研订出一套相互关连的技术指引,简称为 SCORM 。 SCORM 标准中,主要定义了两个架构“内容聚合模型”( Content Aggregation Model ( 简称为 CAM) )和“实时运行环境”( Run-time Environment ( 简称为 RTE) )。

内容聚合模型—— Content Aggregation Model

在以往的网络教学中,各 LMS 间架构不同,对于课程信息之定义亦不尽相同,因此若要将原有教材移植至其它平台中使用,有许多执行上之困难。为解决以往各学习平台间因为数据规格不一所造成之教材无法重复使用之问题, SCORM 提出 Content Aggregation Model 作为制定学习教材组件的标准。

Content Aggregation Model 基本上依据 Reusable , Interoperable 及 Sharable 的核心来制作教材。其主要架构包含了三种要素: Content Model , Metadata 及 Content Packaging ,如图 1 。其中 Content Model 定义教材中有那些教材组件,及组件间应如何被编排、统整成一套可重复使用的课程。例如一个网页教材简称 SCO (Sharable Content Object) ,而 SCO 中的组件则称为 Asset 。 Metadata 档案则是透过 XML 来描述教材 (Html 文档,图文件或多媒体文件等 ) 的信息;透过 Metadata 对教材及其组件的描述,我们可以进一步管理课程的资源。 Content Packaging 则使用檔名一致的 Manifest 档案 (imsmanifest.xml) 来包装教材和课程,透过 XML 来描述教材组件和课程编排架构,如图 1 。 简单的说, Content Aggregation Model 的机制遵循 IMS XML Schema ,共同的标准使教材可在不同的 LMS 间交换或共享,我们只要将该课程输出成 SCORM 的 Content Package ,支持 SCORM 的 LMS 就能够解析 SCORM 的 Manifest 档案 (imsmanifest.xml) ,将该课程转入,达成教材共享之目的,如图 1 。

按此在新窗口浏览图片

“ 实时运行环境 ” —— Run-Time Environment

在传统的网络教学中,教学平台与教材间的沟通方式不同,不仅所使用的程序不同,各个 API function 的定义也不相同,更别说是各个 API function 传递参数所用的 Data Model 了。 SCORM 的 Run-Time Environment 就是要尝试解决这个沟通不易的问题。

SCORM 的 Run-Time Environment 以 JavaScript 沟通教学平台与教材。在 API function 方面,制定了八个名称和参数一致的 API function ,例如:初始化 LMSInitialize ( ) ,传递参数 LMSGetValue ( ) ,结束 LMSFinish ( ) ,以及错误情况 LMSGetErrorString ( ) 等。在各个 API function 传递参数所用的 Data Model 方面, SCORM 也有详细的规定 4 ,例如: cmi.core. student_id 为学生学号, cmi.core.session_time 为学生停留的时间等等。简单的说, SCORM 的 Run-Time Environment 使得教学平台以及教材之间有了共同沟通的接口,以达到网络教学共享的目的。

按此在新窗口浏览图片

图 2 说明 Run-Time Environment 的运作情形,我们以简单的 Client-Server 角度来看, Client 端即为浏览器 (Browser) ,需特别注意的是 API Adapter ,它的实作属于 LMS 的一部份,为 LMS 所提供,例如:若 LMS 是 Java 平台, API Adapter 即使用 Java Applet 实作了我们之前所提之 API function ,如果 LMS 是 Microsoft 平台, API Adapter 即可能使用 COM 等 Microsoft 平台的技术实作。 API Adapter 扮演了 LMS 与课程教材沟通的重要角色,并负责 Client 端与 Server 端信息间的传送及接收。  

按此在新窗口浏览图片

相关知识:

什么是XML Schema?

  XML Schema是一个基于XML的语法或schema规范,用来定义XML文档的标记方式。XML Sc hema是一个由Microsoft建议的schema规范,它与文档类型定义(DTD)相比具有很大的优势,而DTD是最初用来定义XML模型的schema规范。DTD存在很多缺点,包括使用非XML 语法,不支持数据类型定义,不具有扩展性等。例如,DTD不允许把元素内容定义为另外 一个元素,或字符串。想了解更多有关DTD的内容,可以参考W3C XML建议书。 XML Schema从几个方面改善了DTD,包括使用XML语法,支持数据类型定义和名域。例如,XML Schema允许你把一个元素说明为一个integer, float,Boolean, URL等类型。

  在Internet Explorer 5中的XML解析器可以解析使用DTD或XML Schema的XML文档。

  如何建立XML Schema?

  请在下面的XML文档中找一找每个节点的schema声明。
< class xmlns="x-schema:classSchema.xml">
< student studentID="13429">
< name>Jane Smith< /name>
< GPA>3.8< /GPA>
< /student>
< /class>

  你会注意到在上面文档中默认的名域是“x-schema:classSchema.xml”。这告诉解析器根据URL(“classSchema.xml”)上的schema(x-schema)来解析整个文档。

  下面是上面那个文档的完整的schema。注意schema的根元素中的名域声明。第一个(xml ns=”urn:schemas-microsoft-com:xml-data”)表明这个XML文档是一个XML Schema。第二个(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)允许schema处理者在ElementType和AttributeType声明中的type属性前加dt前缀来说明元素的类型和内容的特征 。
< Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mi
crosoft-com:datatypes">
< AttributeType name='studentID' dt:type='string' required='yes'/>
< ElementType name='name' content='textOnly'>
< ElementType name='GPA' content='textOnly' dt:type='float'/>
< ElementType name='student' content='mixed'>
< attribute type='studentID'/>
< element type='name'/>
< element type='GPA'/>
< /ElementType>
< ElementType name='class' content='eltOnly'>
< element type='student'/>
< /ElementType>
< /Schema>

  上面的schema允许你只验证你所关心的区域,这使你对文档的验证级别有更多的控制,并允许你使用schema提供的一些特性而不必严格确认。  尝试一下!

  试着处理一下下面的XML文档的schema。
< order>
< customer>
< name>Fidelma McGinn< /name>
< phone_number>425-655-3393< /phone_number>
< /customer>
< item>
< number>5523918< /number>
< description>shovel< /description>
< price>39.99< price>
< /item>
< date_of_purchase>1998-10-23< /date_of_purchase>
< date_of_delivery>1998-11-03< /date_of_delivery>
< /order>

  如果你处理完schema,在XML Validator中运行 .

  下载MSDN Online的区域中提供了一套 XML sample files, 包括一个有相关schema的XML文档。下载这些示例程序可以与XML文档和schema一起运行。如果你想要根据一个schema来测试XML的有效性,可以从XML Validator 处下载文档或查看Mime Type Viewer中的XML文件。

  一些说明:

  ElementType和 AttributeType 声明必须放在attribute和element内容声明之前。例如,在上面的schema中,< GPA>元素的ElementType声明必须放在< student>元素的ElementType声明之前。

  order属性的默认值是建立在content属性的值上的。当content值为“eltOnly”时,order默认值是seq。当content值为“mixed”时,order默认值是“many”。see 如果想了解有关这些缺省值的信息,可以查看 XML Schema Reference。

  用来定义元素和属性的声明元素如下所示:

  元  素

  说  明

ElementType 把类型和条件赋给一个元素,可以包含子元素
AttributeType 把类型和条件赋给一个属性
attribute 声明以前定义过的属性类型可以出现在名为ElementType的元素的作用域中
element 声明以前定义过的元素类型可以出现在名为ElementType的元素的作用域中
  Schema的内容以最深层的元素的“AttributeType”和“ElementType”声明开头。 < AttributeType name='studentID' dt:type='string' required='yes'/>
< ElementType name='name' content='textOnly'>
< ElementType name='GPA' content='textOnly' dt:type='float'/>

  ElementType声明后接着就是它的属性和子元素,如果一个元素有属性或子元素,必须把 这种方法包含在它的ElementType声明中,或者是必须在它们自己的 ElementType 或  ttributeType声明中进行前导声明。
< ElementType name='student' content='mixed'>
< attribute type='studentID'/>
< element type='name'/>
< element type='GPA'/>
< /ElementType>

  不同于DTDs,XML Schema允许有一个开放的内容模式,你可以进行定义数据类型、使用默认值等等操作而不必限定内容。

  在下面的schema中,< GPA> 元素的类型被定义并有一个默认值,但在 < student> 元素中没有其他节点被声明。
< Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic
rosoft-com:datatypes">
< AttributeType name="scale" default="4.0"/>
< ElementType name="GPA" content="textOnly" dt:type="float">
< attribute type="scale"/>
< /ElementType>
< AttributeType name="studentID"/>
< ElementType name="student" content="eltOnly" model="open" order="many">
< attribute type="studentID"/>
< element type="GPA"/>
< /ElementType>
< /Schema>


--  作者:andycoll01
--  发布时间:4/14/2010 8:21:00 PM

--  
收了,谢谢分享
--  作者:weison_Shen
--  发布时间:6/13/2011 10:09:00 AM

--  
好!!顶~
--  作者:skyxu
--  发布时间:11/11/2011 2:26:00 PM

--  
学习了谢谢
--  作者:lingyue
--  发布时间:12/16/2011 9:56:00 AM

--  
学习了
--  作者:hjx_221
--  发布时间:12/16/2011 12:29:00 PM

--  
学习一下
谢谢
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
1,729.004ms