Add wbts to media folder  🔥

This commit is contained in:
Lorenz Padberg 2022-08-24 17:05:16 +02:00
parent ec479235f7
commit 422315e699
278 changed files with 26415 additions and 0 deletions

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="ScormEnginePackageProperties" targetNamespace="http://www.scorm.com/xsd/ScormEnginePackageProperties"
elementFormDefault="qualified" xmlns="http://www.scorm.com/xsd/ScormEnginePackageProperties"
xmlns:mstns="http://www.scorm.com/xsd/ScormEnginePackageProperties" xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified">
<xs:element name="ScormEnginePackageProperties">
<xs:complexType>
<xs:all>
<xs:element name="controls" type="controlsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="appearance" type="appearanceSpec" minOccurs="0" maxOccurs="1" />
<!-- allow for mis-spelling of 'appearance' that's acceptable in our parsing code -->
<xs:element name="appearence" type="appearanceSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="behavior" type="behaviorSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="rsop" type="rsopSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="heuristics" type="heuristicSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
</xs:element>
<xs:complexType name="controlsSpec">
<xs:all>
<xs:element name="showFinishButton" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showCloseItem" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showHelp" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showProgressBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="useMeasureProgressBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showCourseStructure" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="courseStructureStartsOpen" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showNavBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showTitleBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="enableFlowNav" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="enableChoiceNav" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="statusDisplay" type="statusDisplayType" minOccurs="0" maxOccurs="1" />
<xs:element name="forceDisableRootChoice" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="appearanceSpec">
<xs:all>
<xs:element name="displayStage" type="displayStageSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="courseStructureWidth" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="behaviorSpec">
<xs:all>
<xs:element name="launch" type="launchSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="exitActions" type="exitActionsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="communications" type="communicationsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="debug" type="debugSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="history" type="captureHistorySpec" minOccurs="0" maxOccurs="1" />
<xs:element name="disableRightClick" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="preventWindowResize" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="scoreRollupMode" type="scoreRollupType" minOccurs="0" maxOccurs="1" />
<xs:element name="numberOfScoringObjects" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="statusRollupMode" type="statusRollupType" minOccurs="0" maxOccurs="1" />
<xs:element name="thresholdScoreForCompletion" type="xs:decimal" minOccurs="0" maxOccurs="1" />
<xs:element name="applyRollupStatusToSuccess" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="firstScoIsPretest" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="finishCausesImmediateCommit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="invalidMenuItemAction" type="invalidMenuItemActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="alwaysFlowToFirstSco" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="logoutCausesPlayerExit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="resetRtTiming" type="resetRunTimeDataTimingType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadSequencerMode" type="lookaheadSequencerModeType" minOccurs="0" maxOccurs="1" />
<xs:element name="scoreOverridesStatus" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="allowCompleteStatusChange" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="scaleRawScore" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="useQuickLookaheadSequencer" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="rollupRuntimeAtScoUnload" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="forceObjectiveCompletionSetByContent" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="invokeRollupAtSuspendAll" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="completionStatOfFailedSuccessStat" type="completionStatusType" minOccurs="0" maxOccurs="1" />
<xs:element name="satisfiedCausesCompletion" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="makeStudentPrefsGlobalToCourse" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="returnToLmsAction" type="returnToLmsActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="rollupEmptySetToUnknown" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="validateInteractionTypes" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="suspendDataMaxLength" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="timeLimit" type="xs:int" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="rsopSpec">
<xs:all>
<xs:element name="offlineSynchMode" type="offlineSynchModeType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="heuristicSpec">
<xs:all>
<xs:element name="isCompletionTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isSatisfactionTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isScoreTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isIncompleteScoreMeaningful" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isIncompleteSatisfactionMeaningful" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="debugSpec">
<xs:all>
<xs:element name="controlAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="controlDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="runtimeAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="runtimeDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingSimple" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="includeTimestamps" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="captureHistorySpec">
<xs:all>
<xs:element name="captureHistory" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="captureHistoryDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="communicationsSpec">
<xs:all>
<xs:element name="maxFailedSubmissions" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="commitFrequency" type="xs:int" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="exitActionsSpec">
<xs:all>
<xs:element name="intermediateSco" type="scoExitActionSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="finalSco" type="scoExitActionSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="scoExitActionSpec">
<xs:all>
<xs:element name="satisfied" type="exitTypesSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="notSatisfied" type="exitTypesSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="exitTypesSpec">
<xs:all>
<xs:element name="normal" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="suspend" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="logout" type="exitActionType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="launchSpec">
<xs:all>
<xs:element name="sco" type="launchType" minOccurs="0" maxOccurs="1" />
<xs:element name="player" type="launchType" minOccurs="0" maxOccurs="1" />
<xs:element name="wrapScoWindowWithApi" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="displayStageSpec">
<xs:all>
<xs:element name="required" type="stageSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="desired" type="stageSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="stageSpec">
<xs:all>
<xs:element name="width" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
<xs:element name="height" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
<xs:element name="fullscreen" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:simpleType name="yesNoType">
<xs:restriction base="xs:string">
<xs:enumeration value="yes" />
<xs:enumeration value="no" />
<xs:enumeration value="true" />
<xs:enumeration value="false" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="launchType">
<xs:restriction base="xs:string">
<xs:enumeration value="frameset" />
<xs:enumeration value="new window" />
<xs:enumeration value="new window,after click" />
<xs:enumeration value="new window without browser toolbar" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="exitActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="exit,no confirmation" />
<xs:enumeration value="exit,confirmation" />
<xs:enumeration value="continue" />
<xs:enumeration value="message page" />
<xs:enumeration value="do nothing" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scoreRollupType">
<xs:restriction base="xs:string">
<xs:enumeration value="score provided by course" />
<xs:enumeration value="average score of all units" />
<xs:enumeration value="average score of all units with scores" />
<xs:enumeration value="fixed average" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="statusRollupType">
<xs:restriction base="xs:string">
<xs:enumeration value="status provided by course" />
<xs:enumeration value="complete when all units complete" />
<xs:enumeration value="complete when all units satisfactorily complete" />
<xs:enumeration value="complete when threshold score is met" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="statusDisplayType">
<xs:restriction base="xs:string">
<xs:enumeration value="success only" />
<xs:enumeration value="completion only" />
<xs:enumeration value="separate" />
<xs:enumeration value="combined" />
<xs:enumeration value="none" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="invalidMenuItemActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="show" />
<xs:enumeration value="hide" />
<xs:enumeration value="disable" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="resetRunTimeDataTimingType">
<xs:restriction base="xs:string">
<xs:enumeration value="never" />
<xs:enumeration value="when exit is not suspend" />
<xs:enumeration value="on each new sequencing attempt" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="lookaheadSequencerModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="enabled" />
<xs:enumeration value="disabled" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="offlineSynchModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="most recent" />
<xs:enumeration value="simple" />
<xs:enumeration value="most complete" />
<xs:enumeration value="most satisfied" />
<xs:enumeration value="most done" />
<xs:enumeration value="best done " />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="completionStatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="completed" />
<xs:enumeration value="incomplete" />
<xs:enumeration value="browsed" />
<xs:enumeration value="not attempted" />
<xs:enumeration value="unknown" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="returnToLmsActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="legacy" />
<xs:enumeration value="suspend_all" />
<xs:enumeration value="exit_all" />
<xs:enumeration value="selectable" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -0,0 +1,110 @@
<?xml version="1.0"?>
<!-- filename=adlcp_rootv1p2.xsd -->
<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
<xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
version="ADL Version 1.2">
<xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
schemaLocation="imscp_rootv1p1p2.xsd"/>
<xsd:element name="location" type="locationType"/>
<xsd:element name="prerequisites" type="prerequisitesType"/>
<xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
<xsd:element name="timelimitaction" type="timelimitactionType"/>
<xsd:element name="datafromlms" type="datafromlmsType"/>
<xsd:element name="masteryscore" type="masteryscoreType"/>
<xsd:element name="schema" type="newSchemaType"/>
<xsd:simpleType name="newSchemaType">
<xsd:restriction base="imscp:schemaType">
<xsd:enumeration value="ADL SCORM"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="schemaversion" type="newSchemaversionType"/>
<xsd:simpleType name="newSchemaversionType">
<xsd:restriction base="imscp:schemaversionType">
<xsd:enumeration value="1.2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:attribute name="scormtype">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="asset"/>
<xsd:enumeration value="sco"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:simpleType name="locationType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="prerequisitesType">
<xsd:simpleContent>
<xsd:extension base="prerequisiteStringType">
<xsd:attributeGroup ref="attr.prerequisitetype"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:attributeGroup name="attr.prerequisitetype">
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="aicc_script"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:simpleType name="maxtimeallowedType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="timelimitactionType">
<xsd:restriction base="stringType">
<xsd:enumeration value="exit,no message"/>
<xsd:enumeration value="exit,message"/>
<xsd:enumeration value="continue,no message"/>
<xsd:enumeration value="continue,message"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="datafromlmsType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="masteryscoreType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="stringType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="prerequisiteStringType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!-- filename=ims_xml.xsd --><xsd:schema xmlns="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <!-- 2001-02-22 edited by Thomas Wason IMS Global Learning Consortium, Inc. --> <xsd:annotation> <xsd:documentation>In namespace-aware XML processors, the &quot;xml&quot; prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace.</xsd:documentation> <xsd:documentation>Do not reference this file in XML instances</xsd:documentation> <xsd:documentation>Schawn Thropp: Changed the uriReference type to string type</xsd:documentation> </xsd:annotation> <xsd:attribute name="lang" type="xsd:language"> <xsd:annotation> <xsd:documentation>Refers to universal XML 1.0 lang attribute</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="base" type="xsd:string"> <xsd:annotation> <xsd:documentation>Refers to XML Base: http://www.w3.org/TR/xmlbase</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="link" type="xsd:string"/></xsd:schema>

View File

@ -0,0 +1,345 @@
<?xml version="1.0"?>
<!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Thomas Wason (private) -->
<!-- filename=ims_cp_rootv1p1p2.xsd -->
<!-- Copyright (2) 2001 IMS Global Learning Consortium, Inc. -->
<!-- edited by Thomas Wason -->
<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
<xsd:schema xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
targetNamespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified" version="IMS CP 1.1.2">
<!-- ******************** -->
<!-- ** Change History ** -->
<!-- ******************** -->
<xsd:annotation>
<xsd:documentation xml:lang="en">DRAFT XSD for IMS Content Packaging version 1.1 DRAFT</xsd:documentation>
<xsd:documentation> Copyright (c) 2001 IMS GLC, Inc. </xsd:documentation>
<xsd:documentation>2000-04-21, Adjustments by T.D. Wason from CP 1.0.</xsd:documentation>
<xsd:documentation>2001-02-22, T.D.Wason: Modify for 2000-10-24 XML-Schema version. Modified to support extension.</xsd:documentation>
<xsd:documentation>2001-03-12, T.D.Wason: Change filename, target and meta-data namespaces and meta-data fielname. Add meta-data to itemType, fileType and organizationType.</xsd:documentation>
<xsd:documentation>Do not define namespaces for xml in XML instances generated from this xsd.</xsd:documentation>
<xsd:documentation>Imports IMS meta-data xsd, lower case element names. </xsd:documentation>
<xsd:documentation>This XSD provides a reference to the IMS meta-data root element as imsmd:record</xsd:documentation>
<xsd:documentation>If the IMS meta-data is to be used in the XML instance then the instance must define an IMS meta-data prefix with a namespace. The meta-data targetNamespace should be used. </xsd:documentation>
<xsd:documentation>2001-03-20, Thor Anderson: Remove manifestref, change resourceref back to identifierref, change manifest back to contained by manifest. --Tom Wason: manifest may contain _none_ or more manifests.</xsd:documentation>
<xsd:documentation>2001-04-13 Tom Wason: corrected attirbute name structure. Was misnamed type. </xsd:documentation>
<xsd:documentation>2001-05-14 Schawn Thropp: Made all complexType extensible with the group.any</xsd:documentation>
<xsd:documentation>Added the anyAttribute to all complexTypes. Changed the href attribute on the fileType and resourceType to xsd:string</xsd:documentation>
<xsd:documentation>Changed the maxLength of the href, identifierref, parameters, structure attributes to match the Information model.</xsd:documentation>
<xsd:documentation>2001-07-25 Schawn Thropp: Changed the namespace for the Schema of Schemas to the 5/2/2001 W3C XML Schema</xsd:documentation>
<xsd:documentation>Recommendation. attributeGroup attr.imsmd deleted, was not used anywhere. Any attribute declarations that have</xsd:documentation>
<xsd:documentation>use = "default" changed to use="optional" - attr.structure.req.</xsd:documentation>
<xsd:documentation>Any attribute declarations that have value="somevalue" changed to default="somevalue",</xsd:documentation>
<xsd:documentation>attr.structure.req (hierarchical). Removed references to IMS MD Version 1.1.</xsd:documentation>
<xsd:documentation>Modified attribute group "attr.resourcetype.req" to change use from optional</xsd:documentation>
<xsd:documentation>to required to match the information model. As a result the default value also needed to be removed</xsd:documentation>
<xsd:documentation>Name change for XSD. Changed to match version of CP Spec </xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>Inclusions and Imports</xsd:documentation>
</xsd:annotation>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
<xsd:annotation>
<xsd:documentation>Attribute Declarations</xsd:documentation>
</xsd:annotation>
<!-- **************************** -->
<!-- ** Attribute Declarations ** -->
<!-- **************************** -->
<xsd:attributeGroup name="attr.base">
<xsd:attribute ref="xml:base" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.default">
<xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.href">
<xsd:attribute name="href" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:anyURI">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.href.req">
<xsd:attribute name="href" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:anyURI">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifier.req">
<xsd:attribute name="identifier" type="xsd:ID" use="required"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifier">
<xsd:attribute name="identifier" type="xsd:ID" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.isvisible">
<xsd:attribute name="isvisible" type="xsd:boolean" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.parameters">
<xsd:attribute name="parameters" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifierref">
<xsd:attribute name="identifierref" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifierref.req">
<xsd:attribute name="identifierref" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.resourcetype.req">
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.structure.req">
<xsd:attribute name="structure" use="optional" default="hierarchical">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.version">
<xsd:attribute name="version" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:annotation>
<xsd:documentation>element groups</xsd:documentation>
</xsd:annotation>
<xsd:group name="grp.any">
<xsd:annotation>
<xsd:documentation>Any namespaced element from any namespace may be included within an &quot;any&quot; element. The namespace for the imported element must be defined in the instance, and the schema must be imported. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ************************** -->
<!-- ** Element Declarations ** -->
<!-- ************************** -->
<xsd:element name="dependency" type="dependencyType"/>
<xsd:element name="file" type="fileType"/>
<xsd:element name="item" type="itemType"/>
<xsd:element name="manifest" type="manifestType"/>
<xsd:element name="metadata" type="metadataType"/>
<xsd:element name="organization" type="organizationType"/>
<xsd:element name="organizations" type="organizationsType"/>
<xsd:element name="resource" type="resourceType"/>
<xsd:element name="resources" type="resourcesType"/>
<xsd:element name="schema" type="schemaType"/>
<xsd:element name="schemaversion" type="schemaversionType"/>
<xsd:element name="title" type="titleType"/>
<!-- ******************* -->
<!-- ** Complex Types ** -->
<!-- ******************* -->
<!-- **************** -->
<!-- ** dependency ** -->
<!-- **************** -->
<xsd:complexType name="dependencyType">
<xsd:sequence>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifierref.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ********** -->
<!-- ** file ** -->
<!-- ********** -->
<xsd:complexType name="fileType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.href.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ********** -->
<!-- ** item ** -->
<!-- ********** -->
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.identifierref"/>
<xsd:attributeGroup ref="attr.isvisible"/>
<xsd:attributeGroup ref="attr.parameters"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** manifest ** -->
<!-- ************** -->
<xsd:complexType name="manifestType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:element ref="organizations"/>
<xsd:element ref="resources"/>
<xsd:element ref="manifest" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.version"/>
<xsd:attribute ref="xml:base"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** metadata ** -->
<!-- ************** -->
<xsd:complexType name="metadataType">
<xsd:sequence>
<xsd:element ref="schema" minOccurs="0"/>
<xsd:element ref="schemaversion" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<!-- ******************* -->
<!-- ** organizations ** -->
<!-- ******************* -->
<xsd:complexType name="organizationsType">
<xsd:sequence>
<xsd:element ref="organization" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.default"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ****************** -->
<!-- ** organization ** -->
<!-- ****************** -->
<xsd:complexType name="organizationType">
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.structure.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- *************** -->
<!-- ** resources ** -->
<!-- *************** -->
<xsd:complexType name="resourcesType">
<xsd:sequence>
<xsd:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.base"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** resource ** -->
<!-- ************** -->
<xsd:complexType name="resourceType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.resourcetype.req"/>
<xsd:attributeGroup ref="attr.base"/>
<xsd:attributeGroup ref="attr.href"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ****************** -->
<!-- ** Simple Types ** -->
<!-- ****************** -->
<!-- ************ -->
<!-- ** schema ** -->
<!-- ************ -->
<xsd:simpleType name="schemaType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ******************* -->
<!-- ** schemaversion ** -->
<!-- ******************* -->
<xsd:simpleType name="schemaversionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<!-- *********** -->
<!-- ** title ** -->
<!-- *********** -->
<xsd:simpleType name="titleType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1,122 @@
<?xml version="1.0" ?>
<manifest identifier="C06o9xgrrmRE3mr6dQd9A0Jh2zvhdvFQbLcyU3IQ" 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>
<adlcp:location>metadata.xml</adlcp:location>
</metadata>
<organizations default="articulate_rise">
<organization identifier="articulate_rise">
<title>Story 01a - 01_Patrizia &amp; Marco sichern sich ab - Einstieg</title>
<item identifier="i1" identifierref="r1" isvisible="true">
<title>Story 01a - 01_Patrizia &amp; Marco sichern sich ab - Einstieg</title>
<adlcp:datafromlms>eyJjcHYiOiJiTGN5VTNJUSJ9</adlcp:datafromlms>
</item>
</organization>
</organizations>
<resources>
<resource identifier="r1" type="webcontent" adlcp:scormtype="sco" href="scormdriver/indexAPI.html">
<!-- SCORMDRIVER STUFF -->
<file href="scormdriver/indexAPI.html" />
<file href="scormdriver/preloadIntegrity.js" />
<file href="scormdriver/driverOptions.js" />
<file href="scormdriver/AICCComm.html" />
<file href="scormdriver/auto-scripts/AutoBookmark.js" />
<file href="scormdriver/auto-scripts/AutoCompleteSCO.js" />
<file href="scormdriver/auto-scripts/CourseExit.js" />
<file href="scormdriver/blank.html" />
<file href="scormdriver/goodbye.html" />
<file href="scormdriver/scormdriver.js" />
<file href="scormdriver/browsersniff.js" />
<!-- RUNTIME COMMON STUFF -->
<file href="scormcontent/index.html" />
<file href="scormcontent/lib/main.bundle.js"/>
<file href="scormcontent/lib/fonts/icomoon.ttf"/>
<file href="scormcontent/lib/fonts/icomoon.woff"/>
<file href="scormcontent/lib/icomoon.css"/>
<file href="scormcontent/lib/main.bundle.css"/>
<file href="scormcontent/lib/player-0.0.11.min.js"/>
<file href="scormcontent/lib/lzwcompress.js"/>
<!-- RUNTIME CONTENT STUFF -->
<file href="scormcontent/lib/fonts/EjI2H2bOUhWXi31P-BuenosAires-RegularItalic.woff" />
<file href="scormcontent/lib/fonts/urcm4TQicFIAp0yG-BuenosAires-Bold.woff" />
<file href="scormcontent/lib/fonts/c8JUHx2ntHwOSJWS-BuenosAires-Regular.woff" />
<file href="scormcontent/lib/fonts/Lato-Black.woff" />
<file href="scormcontent/lib/fonts/Lato-Italic.woff" />
<file href="scormcontent/lib/fonts/Lato-Bold.woff" />
<file href="scormcontent/lib/fonts/Lato-Regular.woff" />
<file href="scormcontent/lib/fonts/Lato-Light.woff" />
<file href="scormcontent/assets/Q0iPvRY32PZGME-2_small_1642496678.png" />
<file href="scormcontent/assets/HprNitfNFoYA-Yd5_small_1645825112.png" />
<file href="scormcontent/assets/fB1Xe2o8yQtR7jXA_e3KUJ4wINPFtieCt.png" />
<file href="scormcontent/assets/VFc0huBEe2x9bQpX_aigDXQ-THq6dYtWn.jpg" />
<file href="scormcontent/assets/nK8qF84TeHsbZuLu_mTxdt1tasL27jgac.jpg" />
<file href="scormcontent/assets/6r-rqmdfCKW0ABQi_mountains.jpg" />
<file href="scormcontent/assets/EiQsFcTyXkRZk8vG_zmbMmISgJFjul336.jpg" />
<file href="scormcontent/assets/XntQW25vKXNT3Cyy_qy6xuyq_OAJj3UaD.jpg" />
<file href="scormcontent/assets/5h1Cvqi-iIC_MNdh_0zFlvPpFzFbuwLT4.jpg" />
<file href="scormcontent/assets/AnaqkIPHKAPL6q8s_gx88IT3BkFSKgLnC.jpg" />
<file href="scormcontent/assets/ycgcjJIeqKcTyHWg_RJFpDs3Gp3UVdI6I.png" />
<file href="scormcontent/assets/6ok_P0cioSPM0kc2_quote_background.jpg" />
<file href="scormcontent/assets/K5VotY-fY34bfu0Q_LLGq198v4iqxpF0G.jpg" />
<file href="scormcontent/assets/u1JmaaA9PDhS2tBp_QVNksDI87K1msviE.jpg" />
<file href="scormcontent/assets/w1l9tXF0jfwigpJz_XhOSbsLTDZTtxwrw.jpg" />
<file href="scormcontent/assets/x7MgIxqsiPH1xEW4_j1YONghTV4MOkTTY.jpg" />
<file href="scormcontent/assets/A-LhpVBiLTRrqxh4_-c62Q9cWJCygM7U_.jpg" />
<file href="scormcontent/assets/i0hmBccaT6sKVi7P_40zWT7bOYgqjPdYF.jpg" />
<file href="scormcontent/assets/lDeBOiXGrwmi5_Tt_9bs4uwd_u30IjSDT.jpg" />
<file href="scormcontent/assets/X-AOBAAXnGoJyK8n_VkTk4jlS9QxJbwDK.jpg" />
<file href="scormcontent/assets/n2fbf_2Z_K5tIR_l_LWSgXoRNoDSsj7PG.jpg" />
<file href="scormcontent/assets/X0BMtTtxLs7hTtGP_XSymmQzDmeK_kkXW.jpg" />
<file href="scormcontent/assets/ATMDEUbL2CRAStgW_r3B03spQDULZ8OBN.jpg" />
<file href="scormcontent/assets/lvYO0tMDMXz1u3Bb__n46i1NbVdz8TIgJ.jpg" />
<file href="scormcontent/assets/dYTkSAU3nEkisXq4_EpOXy6rot_0cwjs4.jpg" />
<file href="scormcontent/assets/M3nGqWaeOXxHwYT4_SAQSvbAAgJIrFNqI.jpg" />
<file href="scormcontent/assets/bVTxwq6UxMXlgsky_vi5czzNE0w8us-RT.jpg" />
<file href="scormcontent/assets/vsa5-tm6BZKkepT-_YQH4L3KRjHCD4Z0V.jpg" />
<file href="scormcontent/assets/kfihCS5f6FcEaE3o_TICr3AaMtjRh4T_T-d_VO_Checkliste%20Gespr%C3%A4chsvorbereitung.pdf" />
<file href="scormcontent/assets/l8QzOn4CB2Enn6ye_bukFu-fM45lVObbN.jpg" />
<file href="scormcontent/assets/qD_qKw_1E-oq9zsP_HofcXy0chb5OTxwk.jpg" />
<file href="scormcontent/assets/DW-jwJ3kSgsPykfp_ILvybMpN_tMgCgvc.jpg" />
<file href="scormcontent/assets/IXfKqi_4HYw5ynks_Zz-UzLNGs7XEozzD.jpg" />
<file href="scormcontent/assets/JeMcIiTYvgc8lrYx_w5EKCgkvgFaHAeAe.jpg" />
<file href="scormcontent/assets/XVembl43525EWVum_59A_e9vtSkpSd-Cm-d_VO_Hilfsmittel.zip" />
<file href="scormcontent/assets/BEUlQ_X3yqyHXk2c_n_14obupLKJJgj6z.jpg" />
<file href="scormcontent/assets/WmkBatu2Bzynl7gx_9jWW5HFFAtgCXP0s.jpg" />
<file href="scormcontent/assets/aRLSKZIS-MKXtgFS_2cLyS4qgVnginXGB.jpg" />
<file href="scormcontent/assets/Us8D6grVqTYhk6oD_Rq_7RnCSVm2LOTQu.jpg" />
<file href="scormcontent/assets/EO0jYsoQqC6is8EA_b25O4IklWJOIv9Se.jpg" />
<file href="scormcontent/assets/Xdg-JvWPbraNAiFu_XtUCj0xgLfLvEqTw-d_VO_Bestaetigungsmail_Ersttermin.pdf" />
<file href="scormcontent/assets/Ei9lEpOc3r8s7bDA_jgp4gh6BHCTEXSjj.jpg" />
<file href="scormcontent/assets/MsCiIWEt-lDoARFd_oRl-vHYDoe_lxAol.jpg" />
<file href="scormcontent/assets/bzPmXLBaizFRvcNr_6Fpk9mN2zIjNHc4k.gif" />
<file href="scormcontent/assets/oMkvPSHY3XpQChrJ_transcoded-QCeQvat2oxgzuPcF-201_D_20072022_Final-00001.png" />
<file href="scormcontent/assets/d37ELkG0s9rYT1E1_transcoded-QCeQvat2oxgzuPcF-201_D_20072022_Final.mp4" />
<file href="scormcontent/assets/7AZoBSX-CjXZQEg7_5PtH_ReahqB2DEE7.jpg" />
<file href="scormcontent/assets/h4USO6HgOScg3QvQ_uQ9Yk6MNJOzMgkfv.jpg" />
<file href="scormcontent/assets/bc5vMhLxvJ-c8pWA_NwMtzJ0di9ZDZiVn.jpg" />
<file href="scormcontent/assets/m4qzq6_AkrhFoyrJ_48cLqSs7Kd37VsJv.jpg" />
<file href="scormcontent/assets/4NvwZQny3dNY-nxQ_Hf8HljJU838aRNcQ.jpg" />
<file href="scormcontent/assets/pVnE6gAqYyQXBqEv_rzN_jtVJzjQ1-kH3.jpg" />
<file href="scormcontent/assets/VTzoKDptmOF4zD4o_EagCzwLAtc11EOMz.jpg" />
<file href="scormcontent/assets/fUggw1bDyzrWuuEg_7lTAMEaiOFxkd90T.jpg" />
<file href="scormcontent/assets/DUgMWnT7SF3ouTEB_f-0jsOP4JRgLPx_1.jpg" />
<file href="scormcontent/assets/oeYOnXVrIpyMGTcB_FoPU0Osj6wpPtbAS.jpg" />
<file href="scormcontent/assets/GG0TZSQ4ktLNuStl_18_architecture.jpg" />
<file href="scormcontent/assets/Wp0Io-zQDmgadYmR_example-header-image.jpg" />
</resource>
</resources>
</manifest>

View File

@ -0,0 +1,573 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited by Thomas Wason -->
<xsd:schema targetNamespace="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
elementFormDefault="qualified"
version="1.2:1.1 IMS:MD1.2">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
<!-- ******************** -->
<!-- ** Change History ** -->
<!-- ******************** -->
<xsd:annotation>
<xsd:documentation>2001-04-26 T.D.Wason. IMS meta-data 1.2 XML-Schema. </xsd:documentation>
<xsd:documentation>2001-06-07 S.E.Thropp. Changed the multiplicity on all elements to match the </xsd:documentation>
<xsd:documentation>Final 1.2 Binding Specification. </xsd:documentation>
<xsd:documentation>Changed all elements that use the langstringType to a multiplicy of 1 or more </xsd:documentation>
<xsd:documentation>Changed centity in the contribute element to have a multiplicity of 0 or more. </xsd:documentation>
<xsd:documentation>Changed the requirement element to have a multiplicity of 0 or more. </xsd:documentation>
<xsd:documentation> 2001-07-25 Schawn Thropp. Updates to bring the XSD up to speed with the W3C </xsd:documentation>
<xsd:documentation> XML Schema Recommendation. The following changes were made: Change the </xsd:documentation>
<xsd:documentation> namespace to reference the 5/2/2001 W3C XML Schema Recommendation,the base </xsd:documentation>
<xsd:documentation> type for the durtimeType, simpleType, was changed from timeDuration to duration. </xsd:documentation>
<xsd:documentation> Any attribute declarations that have use="default" had to change to use="optional" </xsd:documentation>
<xsd:documentation> - attr.type. Any attribute declarations that have value ="somevalue" had to change </xsd:documentation>
<xsd:documentation> to default = "somevalue" - attr.type (URI) </xsd:documentation>
<xsd:documentation> 2001-09-04 Schawn Thropp </xsd:documentation>
<xsd:documentation> Changed the targetNamespace and namespace of schema to reflect version change </xsd:documentation>
</xsd:annotation>
<!-- *************************** -->
<!-- ** Attribute Declaration ** -->
<!-- *************************** -->
<xsd:attributeGroup name="attr.type">
<xsd:attribute name="type" use="optional" default="URI">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="URI"/>
<xsd:enumeration value="TEXT"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:group name="grp.any">
<xsd:annotation>
<xsd:documentation>Any namespaced element from any namespace may be used for an &quot;any&quot; element. The namespace for the imported element must be defined in the instance, and the schema must be imported. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ************************* -->
<!-- ** Element Declaration ** -->
<!-- ************************* -->
<xsd:element name="aggregationlevel" type="aggregationlevelType"/>
<xsd:element name="annotation" type="annotationType"/>
<xsd:element name="catalogentry" type="catalogentryType"/>
<xsd:element name="catalog" type="catalogType"/>
<xsd:element name="centity" type="centityType"/>
<xsd:element name="classification" type="classificationType"/>
<xsd:element name="context" type="contextType"/>
<xsd:element name="contribute" type="contributeType"/>
<xsd:element name="copyrightandotherrestrictions" type="copyrightandotherrestrictionsType"/>
<xsd:element name="cost" type="costType"/>
<xsd:element name="coverage" type="coverageType"/>
<xsd:element name="date" type="dateType"/>
<xsd:element name="datetime" type="datetimeType"/>
<xsd:element name="description" type="descriptionType"/>
<xsd:element name="difficulty" type="difficultyType"/>
<xsd:element name="educational" type="educationalType"/>
<xsd:element name="entry" type="entryType"/>
<xsd:element name="format" type="formatType"/>
<xsd:element name="general" type="generalType"/>
<xsd:element name="identifier" type="xsd:string"/>
<xsd:element name="intendedenduserrole" type="intendedenduserroleType"/>
<xsd:element name="interactivitylevel" type="interactivitylevelType"/>
<xsd:element name="interactivitytype" type="interactivitytypeType"/>
<xsd:element name="keyword" type="keywordType"/>
<xsd:element name="kind" type="kindType"/>
<xsd:element name="langstring" type="langstringType"/>
<xsd:element name="language" type="xsd:string"/>
<xsd:element name="learningresourcetype" type="learningresourcetypeType"/>
<xsd:element name="lifecycle" type="lifecycleType"/>
<xsd:element name="location" type="locationType"/>
<xsd:element name="lom" type="lomType"/>
<xsd:element name="maximumversion" type="minimumversionType"/>
<xsd:element name="metadatascheme" type="metadataschemeType"/>
<xsd:element name="metametadata" type="metametadataType"/>
<xsd:element name="minimumversion" type="maximumversionType"/>
<xsd:element name="name" type="nameType"/>
<xsd:element name="purpose" type="purposeType"/>
<xsd:element name="relation" type="relationType"/>
<xsd:element name="requirement" type="requirementType"/>
<xsd:element name="resource" type="resourceType"/>
<xsd:element name="rights" type="rightsType"/>
<xsd:element name="role" type="roleType"/>
<xsd:element name="semanticdensity" type="semanticdensityType"/>
<xsd:element name="size" type="sizeType"/>
<xsd:element name="source" type="sourceType"/>
<xsd:element name="status" type="statusType"/>
<xsd:element name="structure" type="structureType"/>
<xsd:element name="taxon" type="taxonType"/>
<xsd:element name="taxonpath" type="taxonpathType"/>
<xsd:element name="technical" type="technicalType"/>
<xsd:element name="title" type="titleType"/>
<xsd:element name="type" type="typeType"/>
<xsd:element name="typicalagerange" type="typicalagerangeType"/>
<xsd:element name="typicallearningtime" type="typicallearningtimeType"/>
<xsd:element name="value" type="valueType"/>
<xsd:element name="person" type="personType"/>
<xsd:element name="vcard" type="xsd:string"/>
<xsd:element name="version" type="versionType"/>
<xsd:element name="installationremarks" type="installationremarksType"/>
<xsd:element name="otherplatformrequirements" type="otherplatformrequirementsType"/>
<xsd:element name="duration" type="durationType"/>
<xsd:element name="id" type="idType"/>
<!-- ******************* -->
<!-- ** Complex Types ** -->
<!-- ******************* -->
<xsd:complexType name="aggregationlevelType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="annotationType" mixed="true">
<xsd:sequence>
<xsd:element ref="person" minOccurs="0"/>
<xsd:element ref="date" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="catalogentryType" mixed="true">
<xsd:sequence>
<xsd:element ref="catalog"/>
<xsd:element ref="entry"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="centityType">
<xsd:sequence>
<xsd:element ref="vcard"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="classificationType" mixed="true">
<xsd:sequence>
<xsd:element ref="purpose" minOccurs="0"/>
<xsd:element ref="taxonpath" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contextType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contributeType" mixed="true">
<xsd:sequence>
<xsd:element ref="role"/>
<xsd:element ref="centity" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="date" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="copyrightandotherrestrictionsType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="costType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="coverageType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="dateType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="descriptionType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="difficultyType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="durationType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="educationalType" mixed="true">
<xsd:sequence>
<xsd:element ref="interactivitytype" minOccurs="0"/>
<xsd:element ref="learningresourcetype" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="interactivitylevel" minOccurs="0"/>
<xsd:element ref="semanticdensity" minOccurs="0"/>
<xsd:element ref="intendedenduserrole" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="context" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="typicalagerange" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="difficulty" minOccurs="0"/>
<xsd:element ref="typicallearningtime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="entryType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="generalType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="structure" minOccurs="0"/>
<xsd:element ref="aggregationlevel" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="installationremarksType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="intendedenduserroleType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="interactivitylevelType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="interactivitytypeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="keywordType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="kindType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="langstringType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="learningresourcetypeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="lifecycleType" mixed="true">
<xsd:sequence>
<xsd:element ref="version" minOccurs="0"/>
<xsd:element ref="status" minOccurs="0"/>
<xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="locationType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attributeGroup ref="attr.type"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="lomType">
<xsd:sequence>
<xsd:element ref="general" minOccurs="0"/>
<xsd:element ref="lifecycle" minOccurs="0"/>
<xsd:element ref="metametadata" minOccurs="0"/>
<xsd:element ref="technical" minOccurs="0"/>
<xsd:element ref="educational" minOccurs="0"/>
<xsd:element ref="rights" minOccurs="0"/>
<xsd:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="classification" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="metametadataType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadatascheme" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="language" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="nameType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="otherplatformrequirementsType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="personType">
<xsd:sequence>
<xsd:element ref="vcard"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="purposeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="relationType" mixed="true">
<xsd:sequence>
<xsd:element ref="kind" minOccurs="0"/>
<xsd:element ref="resource" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="requirementType" mixed="true">
<xsd:sequence>
<xsd:element ref="type" minOccurs="0"/>
<xsd:element ref="name" minOccurs="0"/>
<xsd:element ref="minimumversion" minOccurs="0"/>
<xsd:element ref="maximumversion" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="resourceType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="rightsType" mixed="true">
<xsd:sequence>
<xsd:element ref="cost" minOccurs="0"/>
<xsd:element ref="copyrightandotherrestrictions" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="roleType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="semanticdensityType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sourceType">
<xsd:sequence>
<xsd:element ref="langstring"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="statusType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="stringType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="structureType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="taxonpathType">
<xsd:sequence>
<xsd:element ref="source" minOccurs="0"/>
<xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="taxonType">
<xsd:sequence>
<xsd:element ref="id" minOccurs="0"/>
<xsd:element ref="entry" minOccurs="0"/>
<xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="technicalType" mixed="true">
<xsd:sequence>
<xsd:element ref="format" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="size" minOccurs="0"/>
<xsd:element ref="location" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="installationremarks" minOccurs="0"/>
<xsd:element ref="otherplatformrequirements" minOccurs="0"/>
<xsd:element ref="duration" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="titleType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typicalagerangeType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typicallearningtimeType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="valueType">
<xsd:sequence>
<xsd:element ref="langstring"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="versionType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- ****************** -->
<!-- ** Simple Types ** -->
<!-- ****************** -->
<xsd:simpleType name="formatType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="sizeType">
<xsd:restriction base="xsd:int"/>
</xsd:simpleType>
<xsd:simpleType name="datetimeType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="metadataschemeType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="catalogType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="minimumversionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="maximumversionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1,112 @@
<?xml version="1.0"?>
<lom xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:pkgprop="http://www.scorm.com/xsd/ScormEnginePackageProperties"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd
http://www.scorm.com/xsd/ScormEnginePackageProperties ScormEnginePackageProperties.xsd">
<general>
<title>
<langstring></langstring>
</title>
<catalogentry>
<catalog>Catalog</catalog>
<entry>
<langstring>1</langstring>
</entry>
</catalogentry>
<!-- If you know the locale, enter it here, if not, leave this as en-->
<language>en</language>
<!-- Manifest->Course.Description. If that doesn't exist, replace with Project Information-> Description. If that is empty, just leave "Description"-->
<description>
<langstring>Description</langstring>
</description>
<!-- SCORM 1.2 requires some keywords. You could just leave it as is, or substitute the title-->
<keyword>
<langstring>Training</langstring>
</keyword>
</general>
<lifecycle>
<version>
<langstring>1</langstring>
</version>
<status>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">Final</langstring>
</value>
</status>
</lifecycle>
<metametadata>
<metadatascheme>ADL SCORM 1.2</metadatascheme>
</metametadata>
<technical>
<format>text/html</format>
<format>application/x-javascript</format>
<format>application/x-shockwave-flash</format>
<format>text/css</format>
<location>indexAPI.html</location>
<!-- replace with your launch page-->
<pkgprop:ScormEnginePackageProperties xmlns="http://www.scorm.com/ScormEnginePackageProperties">
<appearance>
<displayStage>
<!-- Replace with target width and height of movie. (From Project Information -> Resolution -->
<desired>
<width>750</width>
<height>550</height>
<fullscreen>no</fullscreen>
</desired>
<required>
<width>0</width>
<height>0</height>
<fullscreen>no</fullscreen>
</required>
</displayStage>
</appearance>
<behavior>
<alwaysFlowToFirstSco>yes</alwaysFlowToFirstSco>
<scoreOverridesStatus>no</scoreOverridesStatus>
<validateInteractionTypes>yes</validateInteractionTypes>
</behavior>
</pkgprop:ScormEnginePackageProperties>
</technical>
<rights>
<cost>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">yes</langstring>
</value>
</cost>
<copyrightandotherrestrictions>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">yes</langstring>
</value>
</copyrightandotherrestrictions>
</rights>
<classification>
<purpose>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">Educational Objective</langstring>
</value>
</purpose>
<!--same as description above-->
<description>
<langstring>Description</langstring>
</description>
<!--same as keywords above-->
<keyword>
<langstring>Training</langstring>
</keyword>
</classification>
</lom>

View File

@ -0,0 +1,455 @@
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.ttf') format('truetype'),
url('fonts/icomoon.woff') format('woff');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-edit-author-name:before {
content: "\e976";
}
.icon-lock:before {
content: "\e977";
}
.icon-checkmark-valid:before {
content: "\e95d";
}
.icon-close-media-panel:before {
content: "\e95e";
}
.icon-trash4:before {
content: "\e95f";
}
.icon-x-invalid-url:before {
content: "\e960";
}
.icon-attach2:before {
content: "\e961";
}
.icon-bold:before {
content: "\e962";
}
.icon-fontcolor:before {
content: "\e963";
}
.icon-fontsize:before {
content: "\e964";
}
.icon-italic:before {
content: "\e965";
}
.icon-link:before {
content: "\e966";
}
.icon-orderedlist:before {
content: "\e967";
}
.icon-quote:before {
content: "\e968";
}
.icon-unorderedlist:before {
content: "\e969";
}
.icon-feedback:before {
content: "\e910";
}
.icon-review:before {
content: "\e911";
}
.icon-customizable:before {
content: "\e908";
}
.icon-design:before {
content: "\e909";
}
.icon-interactions:before {
content: "\e90a";
}
.icon-questions:before {
content: "\e90b";
}
.icon-scenarios2:before {
content: "\e90c";
}
.icon-slides:before {
content: "\e90d";
}
.icon-desktop:before {
content: "\e902";
}
.icon-expressions:before {
content: "\e903";
}
.icon-poses:before {
content: "\e904";
}
.icon-retina:before {
content: "\e905";
}
.icon-scenarios:before {
content: "\e906";
}
.icon-transparency:before {
content: "\e907";
}
.icon-Master-01:before {
content: "\e934";
}
.icon-Master-02:before {
content: "\e93a";
}
.icon-Master-03:before {
content: "\e939";
}
.icon-Master-04:before {
content: "\e936";
}
.icon-Master-05:before {
content: "\e93b";
}
.icon-Master-06:before {
content: "\e935";
}
.icon-Master-07:before {
content: "\e937";
}
.icon-Master-08:before {
content: "\e938";
}
.icon-Master-09:before {
content: "\e922";
}
.icon-Master-10:before {
content: "\e926";
}
.icon-Master-11:before {
content: "\e924";
}
.icon-Master-12:before {
content: "\e928";
}
.icon-Master-13:before {
content: "\e923";
}
.icon-Master-14:before {
content: "\e925";
}
.icon-Master-15:before {
content: "\e929";
}
.icon-Master-16:before {
content: "\e927";
}
.icon-Master-17:before {
content: "\e92b";
}
.icon-Master-18:before {
content: "\e92c";
}
.icon-Master-19:before {
content: "\e92d";
}
.icon-Master-20:before {
content: "\e92e";
}
.icon-Master-21:before {
content: "\e92f";
}
.icon-Master-22:before {
content: "\e930";
}
.icon-Master-23:before {
content: "\e931";
}
.icon-Master-24:before {
content: "\e932";
}
.icon-Master-25:before {
content: "\e933";
}
.icon-Master-26:before {
content: "\e92a";
}
.icon-check-circle:before {
content: "\e803";
}
.icon-trash:before {
content: "\e804";
}
.icon-rotation:before {
content: "\e91a";
}
.icon-vector:before {
content: "\e91b";
}
.icon-mute:before {
content: "\e90e";
}
.icon-volume:before {
content: "\e90f";
}
.icon-logo:before {
content: "\e805";
}
.icon-share:before {
content: "\e801";
}
.icon-sorting:before {
content: "\e91c";
}
.icon-more:before {
content: "\e91d";
}
.icon-copy:before {
content: "\e951";
}
.icon-clock:before {
content: "\e915";
}
.icon-quotes-left:before {
content: "\e918";
}
.icon-list-numbered:before {
content: "\e916";
}
.icon-list2:before {
content: "\e917";
}
.icon-plus:before {
content: "\e60a";
}
.icon-info:before {
content: "\e974";
}
.icon-cross:before {
content: "\e913";
}
.icon-checkmark:before {
content: "\e975";
}
.icon-arrow-up2:before {
content: "\e959";
}
.icon-arrow-down2:before {
content: "\e95a";
}
.icon-sort-alpha-asc:before {
content: "\e912";
}
.icon-rtf:before {
content: "\e94b";
}
.icon-doc:before {
content: "\e94a";
}
.icon-pdf:before {
content: "\e94c";
}
.icon-ppt:before {
content: "\e94d";
}
.icon-file:before {
content: "\e94e";
}
.icon-xls:before {
content: "\e94f";
}
.icon-zip:before {
content: "\e950";
}
.icon-file-alt:before {
content: "\e944";
}
.icon-doc-alt:before {
content: "\e943";
}
.icon-pdf-alt:before {
content: "\e945";
}
.icon-ppt-alt:before {
content: "\e946";
}
.icon-rtf-alt:before {
content: "\e947";
}
.icon-xls-alt:before {
content: "\e948";
}
.icon-zip-alt:before {
content: "\e949";
}
.icon-attach:before {
content: "\e942";
}
.icon-reload:before {
content: "\e941";
}
.icon-trash2:before {
content: "\e60d";
}
.icon-arrow-left:before {
content: "\e608";
}
.icon-arrow-right:before {
content: "\e609";
}
.icon-check-alt:before {
content: "\e606";
}
.icon-password-view:before {
content: "\e972";
}
.icon-password-hide:before {
content: "\e973";
}
.icon-view-grid:before {
content: "\e96c";
}
.icon-grid-view:before {
content: "\e96c";
}
.icon-view-list:before {
content: "\e96d";
}
.icon-list-view:before {
content: "\e96d";
}
.icon-blocks:before {
content: "\e95b";
}
.icon-list3:before {
content: "\e95c";
}
.icon-export:before {
content: "\e958";
}
.icon-screencast:before {
content: "\e957";
}
.icon-cursor:before {
content: "\e956";
}
.icon-documents:before {
content: "\e952";
}
.icon-duplicate:before {
content: "\e952";
}
.icon-trash3:before {
content: "\e953";
}
.icon-Article:before {
content: "\e93c";
}
.icon-Interaction:before {
content: "\e93d";
}
.icon-Quiz:before {
content: "\e93e";
}
.icon-Video:before {
content: "\e93f";
}
.icon-trashcan:before {
content: "\e921";
}
.icon-marker_style:before {
content: "\e920";
}
.icon-photo:before {
content: "\e91f";
}
.icon-microphone:before {
content: "\e91e";
}
.icon-plus2:before {
content: "\e800";
}
.icon-processing:before {
content: "\e607";
}
.icon-menu:before {
content: "\e602";
}
.icon-headset:before {
content: "\e603";
}
.icon-list:before {
content: "\e604";
}
.icon-video:before {
content: "\e605";
}
.icon-mail:before {
content: "\e954";
}
.icon-remove:before {
content: "\e955";
}
.icon-up-level-2:before {
content: "\e96e";
}
.icon-up-level-list-2:before {
content: "\e96f";
}
.icon-plus-circle:before {
content: "\e802";
}
.icon-up-level:before {
content: "\e970";
}
.icon-up-level-list:before {
content: "\e971";
}
.icon-eye:before {
content: "\e96b";
}
.icon-tick:before {
content: "\e900";
}
.icon-check:before {
content: "\e901";
}
.icon-link-alt:before {
content: "\e919";
}
.icon-chevron-down:before {
content: "\e60b";
}
.icon-chevron-up:before {
content: "\e60c";
}
.icon-chevron-left:before {
content: "\e600";
}
.icon-chevron:before {
content: "\e601";
}
.icon-chevron-right:before {
content: "\e601";
}
.icon-close-small:before {
content: "\e940";
}
.icon-pie-chart:before {
content: "\e914";
}
.icon-alert:before {
content: "\e96a";
}

View File

@ -0,0 +1,263 @@
/*
* lzwCompress.js
*
* Copyright (c) 2012-2016 floydpink
* Licensed under the MIT license.
*
* The MIT License (MIT)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
'use strict';
(function () {
var root = this;
var lzwCompress = (function (Array, JSON, undefined) {
var _self = {},
_lzwLoggingEnabled = false,
_lzwLog = function (message) {
try {
console.log('lzwCompress: ' +
(new Date()).toISOString() + ' : ' + (typeof(message) === 'object' ? JSON.stringify(message) : message));
} catch (e) {
}
};
// KeyOptimize
// http://stackoverflow.com/questions/4433402/replace-keys-json-in-javascript
(function (self, Array, JSON) {
var _keys = [],
comparer = function (key) {
return function (e) {
return e === key;
};
},
inArray = function (array,comparer) {
for (var i = 0; i < array.length; i++) {
if (comparer(array[i])) {
return true;
}
}
return false;
},
pushNew = function (array,element, comparer) {
if (!inArray(array,comparer)) {
array.push(element);
}
},
_extractKeys = function (obj) {
if (typeof obj === 'object') {
for (var key in obj) {
if (!Array.isArray(obj)) {
pushNew(_keys,key, comparer(key));
}
_extractKeys(obj[key]);
}
}
},
_encode = function (obj) {
if (typeof obj !== 'object') {
return obj;
}
for (var prop in obj) {
if (!Array.isArray(obj)) {
if (obj.hasOwnProperty(prop)) {
obj[_keys.indexOf(prop)] = _encode(obj[prop]);
delete obj[prop];
}
} else {
obj[prop] = _encode(obj[prop]);
}
}
return obj;
},
_decode = function (obj) {
if (typeof obj !== 'object') {
return obj;
}
for (var prop in obj) {
if (!Array.isArray(obj)) {
if (obj.hasOwnProperty(prop) && _keys[prop]) {
obj[_keys[prop]] = _decode(obj[prop]);
delete obj[prop];
}
} else {
obj[prop] = _decode(obj[prop]);
}
}
return obj;
},
compress = function (json) {
_keys = [];
var jsonObj = JSON.parse(json);
_extractKeys(jsonObj);
_lzwLoggingEnabled && _lzwLog('keys length : ' + _keys.length);
_lzwLoggingEnabled && _lzwLog('keys : ' + _keys);
return JSON.stringify({ __k : _keys, __v : _encode(jsonObj) });
},
decompress = function (minifiedJson) {
var obj = minifiedJson;
if (typeof(obj) !== 'object') {
return minifiedJson;
}
if (!obj.hasOwnProperty('__k')) {
return JSON.stringify(obj);
}
_keys = obj.__k;
return _decode(obj.__v);
};
self.KeyOptimize = {
pack : compress,
unpack : decompress
};
}(_self, Array, JSON));
// LZWCompress
// http://stackoverflow.com/a/2252533/218882
// http://rosettacode.org/wiki/LZW_compression#JavaScript
(function (self, Array) {
var compress = function (uncompressed) {
if (typeof(uncompressed) !== 'string') {
return uncompressed;
}
var i,
dictionary = {},
c,
wc,
w = '',
result = [],
dictSize = 256;
for (i = 0; i < 256; i += 1) {
dictionary[String.fromCharCode(i)] = i;
}
for (i = 0; i < uncompressed.length; i += 1) {
c = uncompressed.charAt(i);
wc = w + c;
if (dictionary[wc]) {
w = wc;
} else {
if (dictionary[w] === undefined) {
return uncompressed;
}
result.push(dictionary[w]);
dictionary[wc] = dictSize++;
w = String(c);
}
}
if (w !== '') {
result.push(dictionary[w]);
}
return result;
},
decompress = function (compressed) {
if (!Array.isArray(compressed)) {
return compressed;
}
var i,
dictionary = [],
w,
result,
k,
entry = '',
dictSize = 256;
for (i = 0; i < 256; i += 1) {
dictionary[i] = String.fromCharCode(i);
}
w = String.fromCharCode(compressed[0]);
result = w;
for (i = 1; i < compressed.length; i += 1) {
k = compressed[i];
if (dictionary[k]) {
entry = dictionary[k];
} else {
if (k === dictSize) {
entry = w + w.charAt(0);
} else {
return null;
}
}
result += entry;
dictionary[dictSize++] = w + entry.charAt(0);
w = entry;
}
return result;
};
self.LZWCompress = {
pack : compress,
unpack : decompress
};
}(_self, Array));
var _compress = function (obj) {
_lzwLoggingEnabled && _lzwLog('original (uncompressed) : ' + obj);
if (!obj || obj === true || obj instanceof Date) {
return obj;
}
var result = obj;
if (typeof obj === 'object') {
result = _self.KeyOptimize.pack(JSON.stringify(obj));
_lzwLoggingEnabled && _lzwLog('key optimized: ' + result);
}
var packedObj = _self.LZWCompress.pack(result);
_lzwLoggingEnabled && _lzwLog('packed (compressed) : ' + packedObj);
return packedObj;
},
_decompress = function (compressedObj) {
_lzwLoggingEnabled && _lzwLog('original (compressed) : ' + compressedObj);
if (!compressedObj || compressedObj === true || compressedObj instanceof Date) {
return compressedObj;
}
var probableJSON, result = _self.LZWCompress.unpack(compressedObj);
try {
probableJSON = JSON.parse(result);
} catch (e) {
_lzwLoggingEnabled && _lzwLog('unpacked (uncompressed) : ' + result);
return result;
}
if (typeof probableJSON === 'object') {
result = _self.KeyOptimize.unpack(probableJSON);
}
_lzwLoggingEnabled && _lzwLog('unpacked (uncompressed) : ' + result);
return result;
},
_enableLogging = function (enable) {
_lzwLoggingEnabled = enable;
};
return {
pack : _compress,
unpack : _decompress,
enableLogging : _enableLogging
};
})(Array, JSON);
if (typeof module !== 'undefined' && module.exports) {
module.exports = lzwCompress;
}
else {
root.lzwCompress = lzwCompress;
}
}).call(this);

View File

@ -0,0 +1,889 @@
<html>
<!--/* Copyright © 2003-2013 Rustici Software, LLC All Rights Reserved. www.scorm.com */-->
<head>
<script language="JavaScript1.2">
function WriteToDebug(str){
window.parent.WriteToDebug("AICCComm - " + str);
}
function DisplayError(strMessage){
window.parent.DisplayError(strMessage);
}
</script>
<!----------------------------------------------------------------------->
<!--Try to create an XMLHTTP object for IE5+ browsers and NS7+ / Mozilla 1.0+ browsers-->
<!----------------------------------------------------------------------->
<script language="JavaScript" src="browsersniff.js"></script>
<script language="JavaScript">
var objXMLHTTP = null;
var canUseTryCatch = false;
//determine if we can use try/catch statements in the IE browser family
if (is_ie5up){
canUseTryCatch = true;
}
</script>
<script language="VBScript">
on error resume next
WriteToDebug("Trying to create MSXML2.XMLHTTP in VBScript")
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
if err.number <> 0 then
'XMLHTTP object could not be created, might be old version of IE
WriteToDebug("Could not create object, error number=" & err.number & ", source=" & err.Source & ", desc=" & err.Description)
set objXMLHTTP = null
end if
</script>
<script language="JavaScript1.5">
//determine if we can use try/catch statemes in non-IE browsers - anything that runs JavaScript 1.5 (includes all FireFox)
canUseTryCatch = true;
//JS 1.5 is available in the current Gecko browsers that support the XMLHTTPRequest object,
//use it for it's exception catching abilities to avoid errors in earlier browser versions
//XMLHTTP object is unreliable in NS 6 but works in 7 and above, so we explicitly exclude NS6
//Netscape 7 is essentailly Mozilla 1, so Mozilla browsers make it into this conditional
WriteToDebug("Trying to create XMLHttpRequest in JavaScript1.5");
if (is_nav6up && !is_nav6){
WriteToDebug("Entered browser conditional");
try{
WriteToDebug("Creating object");
objXMLHTTP = new XMLHttpRequest();
}
catch (e){
//XMLHTTP object could not be created
WriteToDebug("Could not create object, exception=" + e);
objXMLHTTP = null;
}
}
</script>
<script language="JavaScript" type="text/javascript">
//---------------------------------------------------------------------
//Real page code beins here
//---------------------------------------------------------------------
//variables to check for the IFrame's load
var intReCheckLoadedInterval = window.parent.AICC_RE_CHECK_LOADED_INTERVAL;
var intReCheckAttemptsBeforeTimeout = window.parent.AICC_RE_CHECK_ATTEMPTS_BEFORE_TIMEOUT;
var intReCheckAttempts = 0;
var IFrameLoaded_TimeOutID = "";
var blnIFrameLoaded = false;
//AICC Data - content will set these variables (through public methods) for submission to the LMS
var strLessonLocation = "";
var strLessonStatus = "i";
var strScore = "";
var strTime = "00:00:00";
//Communication Capabilities of the current browser - we check the actual capabilities
//rather than specific browsers to ensure forward compatibility and compatibility with untested browsers
var blnCanUseXMLHTTP; //set in the onload event
var blnCanUseIFrame;
var blnXMLHTTPIsAvailable; //determines if the browser supports the XmlHttp object
var blnAppearsToBeCrossDomain;
//constants
var REQUEST_TYPE_GET = "GETPARAM";
var REQUEST_TYPE_PUT = "PUTPARAM";
var REQUEST_TYPE_PUT_INTERACTIONS = "PUTINTERACTIONS";
var REQUEST_TYPE_EXIT = "EXITAU";
WriteToDebug("intReCheckLoadedInterval=" + intReCheckLoadedInterval);
WriteToDebug("intReCheckAttemptsBeforeTimeout=" + intReCheckAttemptsBeforeTimeout);
//---------------------------------------------------------------------
//Public Functions
//---------------------------------------------------------------------
function MakeGetParamRequest(){
var strAICCSID;
var strAICCURL;
WriteToDebug ("In MakeGetParamRequest");
strAICCSID = GetAICCSID();
strAICCURL = GetAICCURL();
WriteToDebug ("Submitting Form");
SubmitForm(strAICCURL, strAICCSID, REQUEST_TYPE_GET, "");
}
function MakePutParamRequest(strAICCData){
var strAICCSID;
var strAICCURL;
var strAICCData;
WriteToDebug ("In MakePutParamRequest");
if (parent.blnReviewModeSoReadOnly){
WriteToDebug("Mode is Review and configuration setting dictates this should be read only so exiting.");
return true;
}
strAICCSID = GetAICCSID();
strAICCURL = GetAICCURL();
WriteToDebug ("Submitting Form");
SubmitForm(strAICCURL, strAICCSID, REQUEST_TYPE_PUT, strAICCData);
}
function MakePutInteractionsRequest(strAICCData){
var strAICCSID;
var strAICCURL;
var strAICCData;
WriteToDebug ("In MakePutInteractionsRequest");
if (parent.blnReviewModeSoReadOnly){
WriteToDebug("Mode is Review and configuration setting dictates this should be read only so exiting.");
return true;
}
strAICCSID = GetAICCSID();
strAICCURL = GetAICCURL();
WriteToDebug ("Submitting Form");
SubmitForm(strAICCURL, strAICCSID, REQUEST_TYPE_PUT_INTERACTIONS, strAICCData);
}
function MakeExitAURequest(){
var strAICCSID;
var strAICCURL;
WriteToDebug ("In MakeExitAURequest");
strAICCSID = GetAICCSID();
strAICCURL = GetAICCURL();
WriteToDebug ("Submitting Form");
SubmitForm(strAICCURL, strAICCSID, REQUEST_TYPE_EXIT, "");
}
//---------------------------------------------------------------------
//Private Functions
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//IFrame Functions
//---------------------------------------------------------------------
function CheckIFrameLoaded(strRequestType){
WriteToDebug("In CheckIFrameLoaded strRequestType=" + strRequestType);
if (blnIFrameLoaded){
WriteToDebug("Frame Loaded");
ProcessLMSResult(strRequestType, GetIFrameContents());
}
else{
//re-call, check for time out
WriteToDebug("Frame Not Loaded");
intReCheckAttempts ++;
if (intReCheckAttempts > intReCheckAttemptsBeforeTimeout){
WriteToDebug("Frame Timeout Error");
parent.InitializeExecuted(false, "The LMS timed out while responding to an AICC request.");
}
else{
WriteToDebug("Resetting CheckIFrameLoaded");
IFrameLoaded_TimeOutID = window.setTimeout("CheckIFrameLoaded('" + strRequestType + "')", intReCheckLoadedInterval);
}
}
}
function IFrameLoaded(){
WriteToDebug(" IFrameLoaded ");
blnIFrameLoaded = true;
}
function GetIFrameContents(){
var strContents;
WriteToDebug("In GetIFrameContents");
if (canUseTryCatch == true){
try{
strContents = window.AICCFrame.document.body.innerHTML;
}
catch (e){
WriteToDebug("Error submitting form via IFrame, falling back to normal form post and returning ''. Error=" + ((e.message)?e.message:e.toString()) );
blnCanUseIFrame = false;
strContents = "";
}
}
else{
strContents = window.AICCFrame.document.body.innerHTML;
}
WriteToDebug("strContents=" + strContents);
return strContents;
}
function SubmitFormUsingIFrame(strAICCURL, strAICCSID, strRequestType, strAICCData){
WriteToDebug ("In SubmitFormUsingIFrame, setting fields");
document.frmAICC.action = strAICCURL;
//check to see if we should encode the session_id
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.session_id.value = strAICCSID;
}else{
document.frmAICC.session_id.value = URLEncode(strAICCSID);
}
document.frmAICC.command.value = URLEncode(strRequestType);
document.frmAICC.aicc_data.value = URLEncode(strAICCData);
// added SD 3.8.6 (JBR) - check to see if we have version from LMS already
if(window.parent.AICC_LMS_Version!=""){
//check to see if we already have a version from the LMS cached
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.version.value = URLEncode(window.parent.AICC_LMS_Version);
}else{
document.frmAICC.version.value = window.parent.AICC_LMS_Version;
}
}else{
//default to 3.5
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.version.value = URLEncode("3.5");
}else{
document.frmAICC.version.value = "3.5";
}
}
WriteToDebug ("Submitting Form");
document.frmAICC.submit();
blnIFrameLoaded = false;
intReCheckAttempts = 0;
WriteToDebug ("Clearing Timeout");
if (IFrameLoaded_TimeOutID != ""){
window.clearTimeout(IFrameLoaded_TimeOutID);
IFrameLoaded_TimeOutID = "";
}
CheckIFrameLoaded(strRequestType);
}
//---------------------------------------------------------------------
//XML HTTP Object Functions
//---------------------------------------------------------------------
function SubmitFormUsingXMLHTTP(strAICCURL, strAICCSID, strRequestType, strAICCData){
var strReturn;
var strPostData;
WriteToDebug ("In SubmitFormUsingXMLHTTP, opening connetion");
objXMLHTTP.open ("POST", strAICCURL, false);
WriteToDebug ("Setting Request Header");
objXMLHTTP.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
WriteToDebug ("Creating Post Data");
//check to see if we should encode the session_id
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData = "session_id=" + URLEncode(strAICCSID);
}else{
strPostData = "session_id=" + strAICCSID;
}
// added SD 3.8.6 (JBR) - check to see if we have version from LMS already
if(window.parent.AICC_LMS_Version!=""){
//check to see if we already have a version from the LMS cached
//check to see if we should encode the version
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData += "&version="+URLEncode(window.parent.AICC_LMS_Version);
}else{
strPostData += "&version="+window.parent.AICC_LMS_Version;
}
}else{
//default to 3.5
//check to see if we should encode the version
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData += "&version="+URLEncode("3.5");
}else{
strPostData += "&version=3.5";
}
}
//always encode the command and aicc_data values
strPostData += "&command=" + URLEncode(strRequestType) + "&aicc_data=" + URLEncode(strAICCData);
WriteToDebug ("Sending Post Data-" + strPostData);
objXMLHTTP.send (strPostData);
WriteToDebug ("Looking up Response Text");
strReturn = objXMLHTTP.responseText;
WriteToDebug ("LMS Response=" + strReturn);
ProcessLMSResult(strRequestType, strReturn);
}
//---------------------------------------------------------------------
// Custom Comms Object Functions
//---------------------------------------------------------------------
function SubmitFormUsingCustomComms(strAICCURL, strAICCSID, strRequestType, strAICCData){
var strReturn;
var strPostData;
WriteToDebug ("In SubmitFormUsingCustomComms, building request information");
WriteToDebug ("Creating Post Data");
//check to see if we should encode the session_id
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData = "session_id=" + URLEncode(strAICCSID);
}else{
strPostData = "session_id=" + strAICCSID;
}
// added SD 3.8.6 (JBR) - check to see if we have version from LMS already
if(window.parent.AICC_LMS_Version!=""){
//check to see if we already have a version from the LMS cached
//check to see if we should encode the version
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData += "&version="+URLEncode(window.parent.AICC_LMS_Version);
}else{
strPostData += "&version="+window.parent.AICC_LMS_Version;
}
}else{
//default to 3.5
//check to see if we should encode the version
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
strPostData += "&version="+URLEncode("3.5");
}else{
strPostData += "&version=3.5";
}
}
//always encode the command and aicc_data values
strPostData += "&command=" + URLEncode(strRequestType) + "&aicc_data=" + URLEncode(strAICCData);
WriteToDebug ("Sending Post Data-" + strPostData);
WriteToDebug ("Sending RequestType-" + strRequestType);
console.log('parent.CustomAICCCommunication='+parent.CustomAICCCommunication);
if(typeof parent.CustomAICCCommunication == 'function')
{
parent.CustomAICCCommunication(strAICCURL, strPostData, strRequestType, 'ProcessLMSResult');
}else{
WriteToDebug ("CustomAICCCommunication not found - falling back to normal mode");
parent.AICC_USE_CUSTOM_COMMS = false;
SubmitForm(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
}
function URLEncode(str){
str = new String(str);
str = escape(str);
str = str.replace(/%20/g, "+");
return str;
}
function GetBlankHtmlPage(seed){
objXMLHTTP.open("GET", "blank.html?random=" + seed + (Math.random()), false);
objXMLHTTP.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
objXMLHTTP.send ();
return objXMLHTTP.responseText;
}
//---------------------------------------------------------------------
//Blind Form Submit Functions
//---------------------------------------------------------------------
function SubmitFormNormally(strAICCURL, strAICCSID, strRequestType, strAICCData){
WriteToDebug ("In SubmitFormNormally (BlindPost), setting fields");
document.frmAICC.target = "rusticisoftware_aicc_results"; //keep this name fairly unique to avoid a potential naming conflict with LMS frames
document.frmAICC.action = strAICCURL;
//check to see if we should encode the session_id
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.session_id.value = strAICCSID;
}else{
document.frmAICC.session_id.value = URLEncode(strAICCSID);
}
document.frmAICC.command.value = URLEncode(strRequestType);
document.frmAICC.aicc_data.value = URLEncode(strAICCData);
// added SD 3.8.6 (JBR) - check to see if we have version from LMS already
if(window.parent.AICC_LMS_Version!=""){
//check to see if we already have a version from the LMS cached
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.version.value = URLEncode(window.parent.AICC_LMS_Version);
}else{
document.frmAICC.version.value = window.parent.AICC_LMS_Version;
}
}else{
//default to 3.5
if(window.parent.AICC_ENCODE_PARAMETER_VALUES==true || window.parent.AICC_ENCODE_PARAMETER_VALUES=='true'){
document.frmAICC.version.value = URLEncode("3.5");
}else{
document.frmAICC.version.value = "3.5";
}
}
WriteToDebug ("Submitting Form");
document.frmAICC.submit();
ProcessLMSResult(strRequestType, "");
}
//---------------------------------------------------------------------
//Form Submission Functions
//---------------------------------------------------------------------
function DetectPreferredCommMethod(){
//if we have an XMLHTTP object, use that
//else, if we can see the IFrame, use that
//else - use a blind (write only) form submit
/*
MR 5/30/07 - Don't do any hard and fast domain checking, we'll simply try the post in a try/catch and check for
a permission denied error. If the post does not succeed, we'll fall back on a normal form post.
The rules for cross domain scripting have gotten quite complicated recently, they now relate to
how the XmlHttp object was created, the browser type/version and the security context of each site.
*/
//if the domain of the strAICCURL does not match the current domain, then note that cross domain probably won't work
blnAppearsToBeCrossDomain = false;
var strContentDomain = window.document.domain;
var strAICCURL = GetAICCURL();
var aryUrlParts = strAICCURL.split("/");
var strLmsDomain;
var blnCrossDomain = false;
if (strAICCURL.toLowerCase().indexOf("http://") == 0 || strAICCURL.toLowerCase().indexOf("https://") == 0){
strLmsDomain = aryUrlParts[2]
}
else{
strLmsDomain = aryUrlParts[0];
}
if (strLmsDomain.toLowerCase() != strContentDomain.toLowerCase()){
//WriteToDebug("LMS and Content Domains don't match, falling back to write-only mode using form submit. strLmsDomain=" + strLmsDomain + ", strContentDomain=" + strContentDomain);
//blnCanUseXMLHTTP = false;
//blnCanUseIFrame = false;
//blnCrossDomain = true;
blnAppearsToBeCrossDomain = true;
}
if (objXMLHTTP != null){
blnXMLHTTPIsAvailable = true;
}
else{
blnXMLHTTPIsAvailable = false;
}
//if (!blnCrossDomain)
//{
if (parent.AICC_COMM_DISABLE_XMLHTTP)
{
WriteToDebug("In DetectPreferredCommMethod, config override of XMLHTTP to false");
blnCanUseXMLHTTP = false;
}
else
{
WriteToDebug("In DetectPreferredCommMethod, checking XMLHTTP");
if (objXMLHTTP != null){
blnCanUseXMLHTTP = true;
}
else{
blnCanUseXMLHTTP = false;
}
}
if (parent.AICC_COMM_DISABLE_IFRAME)
{
WriteToDebug("In DetectPreferredCommMethod, config override of IFRAME to false");
blnCanUseIFrame = false;
}
else
{
//note use of short circuit AND to prevent error if browser doesn't recognize part of the IFrame
//in Opera 7, there needs to be something in the body of the IFrame for the last condition to evaluate to true
//in opera 7.1, all tests will pass, but the onload event doesn not fire due to a bug, add a check for blnIFrameLoaded
//to ensure that the onload event fired
WriteToDebug("Checking IFrame");
if (window.AICCFrame &&
window.AICCFrame.document &&
window.AICCFrame.document.body &&
window.AICCFrame.document.body.innerHTML &&
blnIFrameLoaded){
blnCanUseIFrame = true;
}
else{
blnCanUseIFrame = false;
}
}
//}
WriteToDebug("blnCanUseXMLHTTP=" + blnCanUseXMLHTTP);
WriteToDebug("blnCanUseIFrame=" + blnCanUseIFrame);
}
function SubmitForm(strAICCURL, strAICCSID, strRequestType, strAICCData){
WriteToDebug ("In SubmitForm, setting fields");
WriteToDebug ("strAICCURL = " + strAICCURL);
WriteToDebug ("strAICCSID = " + strAICCSID);
WriteToDebug ("strCommand = " + strRequestType);
WriteToDebug ("strAICCData = " + strAICCData);
WriteToDebug ("blnCanUseXMLHTTP = " + blnCanUseXMLHTTP);
WriteToDebug ("blnCanUseIFrame = " + blnCanUseIFrame);
WriteToDebug ("canUseTryCatch = " + canUseTryCatch);
// if(parent.AICC_USE_CUSTOM_COMMS && blnAppearsToBeCrossDomain){
if(parent.AICC_USE_CUSTOM_COMMS){
WriteToDebug('Using Custom Cross Domain Communications for AICC');
SubmitFormUsingCustomComms(strAICCURL, strAICCSID, strRequestType, strAICCData);
}else if (blnCanUseXMLHTTP){
// try/catch is supported in all browsers that support xmlHttp
try{
SubmitFormUsingXMLHTTP(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
catch(e){
//we have a cross domain issue, so fall back on normal form posts
WriteToDebug("Error submitting form via XmlHttp, falling back to normal form post. Error=" + ((e.message)?e.message:e.toString()));
blnCanUseXMLHTTP = false;
blnCanUseIFrame = false;
SubmitForm(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
}
else if(blnCanUseIFrame){
//if we're in a browser that can trap errors, try to trap a permission denied error
//otherwise, check our rudimentary domain checking to see if we should try iFrame. If it is
//a disallowed cross domain request that results in a permission denied error
//then we need to manually disable the iFrame post in the configuration file.
if (canUseTryCatch == true){
//this try catch probably won't fire, it will be the one up in GetIFrameContents,
//in there we just set things to fall back on normal form posts
//no need to re-submit the form because it was just the initial Get that won't return data anyway
try{
SubmitFormUsingIFrame(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
catch (e){
//we have a cross domain issue, so fall back on normal form posts
WriteToDebug("Error submitting form via IFrame, falling back to normal form post. Error=" + ((e.message)?e.message:e.toString()));
blnCanUseIFrame = false;
SubmitForm(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
}
else{
if (blnAppearsToBeCrossDomain == false){
SubmitFormUsingIFrame(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
else{
blnCanUseIFrame = false;
SubmitForm(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
}
}
else{
SubmitFormNormally(strAICCURL, strAICCSID, strRequestType, strAICCData);
}
}
//---------------------------------------------------------------------
//AICC Functions
//---------------------------------------------------------------------
function ProcessLMSResult(strRequestType, strLMSResult){
WriteToDebug("In ProcessLMSResult, strRequestType=" + strRequestType + " strLMSResult=" + strLMSResult)
var blnMadeBlindSubmit;
var strAICCErrorLine = "";
var strAICCErrorTextLine = "";
var aryAICCResponseLines;
var strLine;
var strTrimmedLine;
var intPos;
var blnError;
var strErrorMessage;
//if we made a blind submit with a standard form, we can't read the result, so just proceed
blnMadeBlindSubmit = (!blnCanUseXMLHTTP && !blnCanUseIFrame);
WriteToDebug("blnMadeBlindSubmit=" + blnMadeBlindSubmit);
strLMSResult = new String(unescape(strLMSResult));
aryAICCResponseLines = strLMSResult.split("\n"); //only use \n instead of \r\n b/c some LMS's will only use one character
for (var i=0; i < aryAICCResponseLines.length; i++){
WriteToDebug("Processing Line #" + i + ": " + aryAICCResponseLines[i]);
strLine = aryAICCResponseLines[i];
strLine = strLine.replace(/\r/g, "");
strTrimmedLine = parent.Trim(strLine);
//need to look for the text "error" only at the start of the line since the
//value of the field can conceivably contain the text "error"
if (strTrimmedLine.toLowerCase().indexOf("error") == 0){
if (strTrimmedLine.toLowerCase().indexOf("error_text") == 0){
WriteToDebug("Found Error Text Line");
strAICCErrorTextLine = strLine;
}
else{
WriteToDebug("Found Error Number Line");
strAICCErrorLine = strLine;
}
}
}
//check for errors and alert if found, check for AICC error, as well as HTTP error like 404
blnError = false;
strErrorMessage = "";
if (!blnMadeBlindSubmit){
if (strAICCErrorLine == ""){
blnError = true;
strErrorMessage = "ERROR - LMS did not return a valid status code.";
}
if (strAICCErrorLine != "" && strAICCErrorLine.toLowerCase().search(/error\s*=\s*0/) == -1){
blnError = true;
strErrorMessage = "ERROR - LMS returned an error - " + strAICCErrorLine + " - " + strAICCErrorTextLine;
}
}
if (blnError){
WriteToDebug("Found Error");
parent.AICC_SetErrorInfo(strAICCErrorLine, strAICCErrorTextLine);
if (strRequestType == REQUEST_TYPE_GET){
parent.InitializeExecuted(false, strErrorMessage);
return;
}
if (strRequestType == REQUEST_TYPE_PUT){
parent.AICC_PutParamFailed();
return;
}
if (strRequestType == REQUEST_TYPE_PUT_INTERACTIONS){
parent.AICC_PutInteractionsFailed();
return;
}
else{
DisplayError(strErrorMessage);
return;
}
}
if (strRequestType == REQUEST_TYPE_GET){
WriteToDebug("In request type = get");
//keep default values if we made a blind submit
if (!blnMadeBlindSubmit){
window.parent.ParseGetParamData(strLMSResult);
}
WriteToDebug("Calling InitializeExecuted");
parent.InitializeExecuted(true, "");
}
}
function GetAICCSID(){
var strSID = "";
WriteToDebug("In GetAICCSID");
strSID = window.parent.GetQueryStringValue("AICC_SID", window.parent.document.location.search)
WriteToDebug("GetAICCSID returning: " + strSID);
return strSID;
}
function GetAICCURL(){
var strURL = "";
WriteToDebug("In GetAICCURL");
strURL = window.parent.GetQueryStringValue("AICC_URL", window.parent.document.location.search)
WriteToDebug("Querystring value = " + strURL);
if (strURL != null && strURL.length > 0){
if (window.parent.AICC_COMM_PREPEND_HTTP_IF_MISSING === undefined ||
window.parent.AICC_COMM_PREPEND_HTTP_IF_MISSING === null ||
window.parent.AICC_COMM_PREPEND_HTTP_IF_MISSING === true){
WriteToDebug("Checking for presense of 'http://'");
if (strURL.indexOf("http://") < 0 && strURL.indexOf("https://") < 0){
WriteToDebug("Prepending 'http://'");
strURL = "http://" + strURL;
}
}
}
WriteToDebug("GetAICCURL returning: " + strURL);
return strURL;
}
//MR 5/31/05 - added this because this frame is always slightly visible so we have an avenue into the debug information even if the content developer doesn't build one in
window.document.onkeypress = CheckForDebugCommand;
var intQuestionCounter = 0;
var ASCII_QUESTION = 63;
function CheckForDebugCommand(e){
var intKeyCode = 0;
if (window.event) {
e = window.event;
intKeyCode = e.keyCode;
}
else {
intKeyCode = e.which;
}
if (intKeyCode == ASCII_QUESTION){
intQuestionCounter++;
if (intQuestionCounter == 3){
intQuestionCounter = 0;
window.parent.ShowDebugWindow();
}
}
else if (intKeyCode !=0){ //in FireFox, the shift key comes through as a keypress with code of 0...we want to ignore this
intQuestionCounter = 0;
}
}
//MR 5/31/05 - added this call in addition to the frameset onunload calls to give us a better chance of getting an AICC EXITAU call in before the frames unload
function ProcessUnload(){
if (window.parent){
window.parent.Unload();
}
}
</script>
</head>
<body onload="DetectPreferredCommMethod();" onunload="ProcessUnload();" onbeforeunload="ProcessUnload();">
<iframe id="AICCFrame"
name="AICCFrame"
style="width:10px; height:10px; border: 0px"
src="blank.html" onload="IFrameLoaded();"></iframe>
<form name="frmAICC" method="Post" action="blank.html" target="AICCFrame" ID="Form1">
<input type="hidden" name="session_id" value="" ID="Hidden1">
<input type="hidden" name="command" value="" ID="Hidden2">
<input type="hidden" name="version" value="3.5" ID="Hidden3">
<input type="hidden" name="aicc_data" value="" ID="Hidden4">
</form>
</body>
</html>

View File

@ -0,0 +1,14 @@
function SetBookmark() {
var SD = window.parent,
loc = window.location.href
;
SD.SetBookmark(
loc.substring(loc.toLowerCase().lastIndexOf("/scormcontent/") + 14, loc.length),
document.title
);
SD.CommitData();
}
//Automatically set a bookmark for this page.
SetBookmark();

View File

@ -0,0 +1,11 @@
function SetSCOComplete()
{
var SD = window.parent;
//This is the last page so set it complete
SD.SetReachedEnd();
SD.CommitData();
}
//Automatically set the SCO complete.
SetSCOComplete();

View File

@ -0,0 +1,11 @@
function niExit()
{
var SD = window.parent;
var answer = confirm("Are You Sure You Wish To Exit This Course?");
if(answer)
{
SD.ConcedeControl();
}
}

View File

@ -0,0 +1,49 @@
<html>
<!--/* Copyright © 2003-2013 Rustici Software, LLC All Rights Reserved. www.scorm.com */-->
<head>
<script>
window.document.onkeypress = CheckForDebugCommand;
var intQuestionCounter = 0;
var ASCII_QUESTION = 63;
function CheckForDebugCommand(e){
var intKeyCode = 0;
if (window.event) {
e = window.event;
intKeyCode = e.keyCode;
}
else {
intKeyCode = e.which;
}
if (intKeyCode == ASCII_QUESTION){
intQuestionCounter++;
if (intQuestionCounter == 3){
intQuestionCounter = 0;
parent.ShowDebugWindow();
}
}
else if (intKeyCode !=0){ //in FireFox, the shift key comes through as a keypress with code of 0...we want to ignore this
intQuestionCounter = 0;
}
}
</script>
</head>
<body>
&nbsp;
<!--
If the course does not load and is stuck on this page:
-Click in the middle of the page
-Press the question mark key (?) three times
-A window should pop up containing debug information, send this information to technical support for further assistance
-If no information appears, try again 1 or 2 more times, sometimes that just does the trick
-->
</body>
</html>

View File

@ -0,0 +1,206 @@
//<!--
// Ultimate client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001. Permission granted to reuse and distribute.
// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
// also added support for IE5.5 Opera4&5 HotJava3 AOLTV
// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4,
// correct Opera 5 detection
// add support for winME and win2k
// synch with browser-type-oo.js
// Revised 26 Mar 01 to correct Opera detection
// Revised 02 Oct 01 to add IE6 detection
// Revised 16 Oct 03 to add explict NS 6 detection vs NS 7 - Mike Rustici
// Everything you always wanted to know about your JavaScript client
// but were afraid to ask. Creates "is_" variables indicating:
// (1) browser vendor:
// is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
// (2) browser version number:
// is_major (integer indicating major version number: 2, 3, 4 ...)
// is_minor (float indicating full version number: 2.02, 3.01, 4.04 ...)
// (3) browser vendor AND major version number
// is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
// is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
// is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
// (4) JavaScript version number:
// is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
// (5) OS platform and version:
// is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
// is_os2
// is_mac, is_mac68k, is_macppc
// is_unix
// is_sun, is_sun4, is_sun5, is_suni86
// is_irix, is_irix5, is_irix6
// is_hpux, is_hpux9, is_hpux10
// is_aix, is_aix1, is_aix2, is_aix3, is_aix4
// is_linux, is_sco, is_unixware, is_mpras, is_reliant
// is_dec, is_sinix, is_freebsd, is_bsd
// is_vms
//
// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
// for detailed lists of userAgent strings.
//
// Note: you don't want your Nav4 or IE4 code to "turn off" or
// stop working when new versions of browsers are released, so
// in conditional code forks, use is_ie5up ("IE 5.0 or greater")
// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
// to check version in code which you want to work on future
// versions.
// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();
// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
// Note: Opera and WebTV spoof Navigator. We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav2 = (is_nav && (is_major == 2));
var is_nav3 = (is_nav && (is_major == 3));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_navonly = (is_nav && ((agt.indexOf(";nav") != -1) ||
(agt.indexOf("; nav") != -1)) );
var is_nav6 = (is_nav && (is_major == 5) && (agt.indexOf('rv:0') > -1));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3 = (is_ie && (is_major < 4));
var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up = (is_ie && (is_major >= 4));
var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
var is_ie5_5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
var is_ie5up = (is_ie && !is_ie3 && !is_ie4);
var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
var is_ie6 = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
var is_ie6up = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);
// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
// or if this is the first browser window opened. Thus the
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
var is_aol = (agt.indexOf("aol") != -1);
var is_aol3 = (is_aol && is_ie3);
var is_aol4 = (is_aol && is_ie4);
var is_aol5 = (agt.indexOf("aol 5") != -1);
var is_aol6 = (agt.indexOf("aol 6") != -1);
var is_opera = (agt.indexOf("opera") != -1);
var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
var is_webtv = (agt.indexOf("webtv") != -1);
var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
var is_AOLTV = is_TVNavigator;
var is_hotjava = (agt.indexOf("hotjava") != -1);
var is_hotjava3 = (is_hotjava && (is_major == 3));
var is_hotjava3up = (is_hotjava && (is_major >= 3));
// *** JAVASCRIPT VERSION CHECK ***
var is_js;
if (is_nav2 || is_ie3) is_js = 1.0;
else if (is_nav3) is_js = 1.1;
else if (is_opera5up) is_js = 1.3;
else if (is_opera) is_js = 1.1;
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
else if (is_hotjava3up) is_js = 1.4;
else if (is_nav6 || is_gecko) is_js = 1.5;
// NOTE: In the future, update this code when newer versions of JS
// are released. For now, we try to provide some upward compatibility
// so that future versions of Nav and IE will show they are at
// *least* JS 1.x capable. Always check for JS version compatibility
// with > or >=.
else if (is_nav6up) is_js = 1.5;
// NOTE: ie5up on mac is 1.4
else if (is_ie5up) is_js = 1.3
// HACK: no idea for other browsers; always check for JS version with > or >=
else is_js = 0.0;
// *** PLATFORM ***
var is_win = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
// Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));
// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) ||
(agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) ||
(agt.indexOf("windows 16-bit")!=-1) );
var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
(agt.indexOf("windows 16-bit")!=-1));
var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));
var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1));
// NOTE: Reliable detection of Win98 may not be possible. It appears that:
// - On Nav 4.x and before you'll get plain "Windows" in userAgent.
// - On Mercury client, the 32-bit version will return "Win98", but
// the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 ||
((is_major >= 4) && (navigator.platform == "Win32")) ||
(agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));
var is_os2 = ((agt.indexOf("os/2")!=-1) ||
(navigator.appVersion.indexOf("OS/2")!=-1) ||
(agt.indexOf("ibm-webexplorer")!=-1));
var is_mac = (agt.indexOf("mac")!=-1);
// hack ie5 js version for mac
if (is_mac && is_ie5up) is_js = 1.4;
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) ||
(agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) ||
(agt.indexOf("powerpc")!=-1)));
var is_sun = (agt.indexOf("sunos")!=-1);
var is_sun4 = (agt.indexOf("sunos 4")!=-1);
var is_sun5 = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix = (agt.indexOf("irix") !=-1); // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix = (agt.indexOf("aix") !=-1); // IBM
var is_aix1 = (agt.indexOf("aix 1") !=-1);
var is_aix2 = (agt.indexOf("aix 2") !=-1);
var is_aix3 = (agt.indexOf("aix 3") !=-1);
var is_aix4 = (agt.indexOf("aix 4") !=-1);
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1);
var is_mpras = (agt.indexOf("ncr")!=-1);
var is_reliant = (agt.indexOf("reliantunix")!=-1);
var is_dec = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) ||
(agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) ||
(agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux ||
is_sco ||is_unixware || is_mpras || is_reliant ||
is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);
var is_vms = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
//--> end hide JavaScript

View File

@ -0,0 +1,9 @@
function loadDriverOptions (scope) {
scope.APPID = "WQBM2ARBZR";
scope.CLOUDURL = null;
scope.USE_STRICT_SUSPEND_DATA_LIMITS = false;
scope.SHOW_DEBUG_ON_LAUNCH = false;
scope.FORCED_COMMIT_TIME = 60000;
scope.strLMSStandard = "SCORM";
scope.REVIEW_MODE_IS_READ_ONLY = true;
}

View File

@ -0,0 +1,33 @@
<html>
<head>
<meta charset="utf-8" lang="de">
<style>
html {
font-size: 20px;
font-family: 'lato', sans-serif;
font-weight: lighter;
letter-spacing: 0.05rem;
}
.goodbye-container {
text-align: center;
margin-top: 15rem;
}
.bye-message {
font-size: 1.5rem;
}
.exit-text {
color: #707070;
margin-top: 1rem;
}
</style>
</head>
<body>
<div class="goodbye-container">
<div class="bye-message">👋 Tschüss!</div>
<div class="exit-text">Sie können jetzt die Seite schliessen.</div>
</div>
</body>
</html>

View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html lang="en">
<!--/* Copyright © 2003-2013 Rustici Software, LLC All Rights Reserved. www.scorm.com */-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Loading course</title>
<style type="text/css">
body,
html {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
#content {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
#content-frame {
width: 1px;
min-width: 100%;
}
</style>
<!-- Resize Hack -->
<script type="text/javascript">
window.resizeTo(screen.width, screen.height);
</script>
<script language="JavaScript1.2" src="driverOptions.js"></script>
<script language="JavaScript1.2" src="scormdriver.js"></script>
<script language="JavaScript1.2" src="preloadIntegrity.js"></script>
<script language="JavaScript1.2">
strContentLocation = "../scormcontent/index.html#/preview"; //Put the link to the start of the content here.
totaliframesloaded = 0;
function updateIframesLoadedCount() {
totaliframesloaded++;
if (totaliframesloaded == window.frames.length) {
window.Start();
}
}
function LoadContent() {
verifySuspendDataVersion(3);
verifyForcedCommitTime();
//check for bookmark
var bookmark = GetBookmark();
if (bookmark != "") {
//if there is a bookmark, then go to that page
window.scormdriver_content.document.location.href = "../scormcontent/" + bookmark;
} else {
//if not, go to the start page
window.scormdriver_content.document.location.href = strContentLocation;
}
}
</script>
</head>
<body>
<div id="content">
<iframe title="Loading course" id="content-frame" name="scormdriver_content" width="100%" height="100%" scrolling="no" frameborder="0" src="blank.html" onload="updateIframesLoadedCount()" allowfullscreen></iframe>
<iframe title="Intentionally blank" aria-hidden="true" name="AICCComm" src="AICCComm.html" frameborder="0" onload="updateIframesLoadedCount()" style="display: none;"></iframe>
<iframe title="Intentionally blank" aria-hidden="true" name="rusticisoftware_aicc_results" src="blank.html" frameborder="0" onload="updateIframesLoadedCount()" style="display: none;"></iframe>
<iframe title="Intentionally blank" aria-hidden="true" name="NothingFrame" src="blank.html" frameborder="0" onload="updateIframesLoadedCount()" style="display: none;"></iframe>
</div>
<!-- Set iframes to mimic frames -->
<script type="text/javascript">
window.scormdriver_content = window.frames['scormdriver_content'];
window.AICCComm = window.frames['AICCComm'];
window.rusticisoftware_aicc_results = window.frames['rusticisoftware_aicc_results'];
window.NothingFrame = window.frames['NothingFrame'];
document.getElementById('content-frame').title = getCourseTitle();
document.title = getCourseTitle();
</script>
</body>
</html>

View File

@ -0,0 +1,96 @@
function isTrue(val) {
return val && String(val).toLowerCase() === 'true';
}
function verifySuspendDataVersion(maxAttempts) {
var commitDataAndBook;
var launchData;
var manifestCPV;
var resetFlag;
var sentBookCheck;
var sentDataCheck;
var suspendData = GetDataChunk();
var suspendDataCPV;
if (!suspendData) {
return;
}
if (maxAttempts === 0) {
WriteToDebug('WARNING: ERROR WITH CLEARING SUSPEND OR BOOKMARKING DATA!');
WriteToDebug('NO MORE ATTEMPTS LEFT. COURSE BEHAVIOR MAY BE NEGATIVELY IMPACTED.');
return;
}
try {
launchData = JSON.parse(atob(GetLaunchData()));
} catch (e) {
WriteToDebug('WARNING: Issue with obtaining manifest launch data. Version reset behavior disabled.');
return;
}
try {
suspendData = JSON.parse(suspendData);
} catch (e) {
WriteToDebug('WARNING: Unable to parse suspend data. Version reset behavior disabled.');
return;
}
manifestCPV = launchData.cpv;
resetFlag = launchData.rld;
suspendDataCPV = suspendData.cpv;
if (suspendDataCPV !== manifestCPV) {
WriteToDebug('WARNING: Suspend data version mismatch against manifest version.');
if (resetFlag) {
if (REVIEW_MODE_IS_READ_ONLY && GetLessonMode() === 3) {
WriteToDebug('WARNING: Course is in review mode. Unable to clear suspend and bookmarking data!');
WriteToDebug('Resetting of learner data will not occur. Course behavior may be negatively impacted.');
return;
}
WriteToDebug('Okay to clear data. Now clearing suspend and bookmarking data...');
sentDataCheck = SetDataChunk("");
WriteToDebug('Suspend Data Cleared: ' + sentDataCheck );
sentBookCheck = SetBookmark("");
WriteToDebug('Bookmark Data Cleared: ' + sentBookCheck );
commitDataAndBook = CommitData();
WriteToDebug('Data Commited: ' + commitDataAndBook );
if (isTrue(sentDataCheck) && isTrue(sentBookCheck) && isTrue(commitDataAndBook)) {
WriteToDebug('Verified that all bookmarking and suspend data have been cleared. Data commited successfully.');
} else {
WriteToDebug('WARNING: ERROR WITH CLEARING SUSPEND OR BOOKMARKING DATA! RETRY ATTEMPTS LEFT: ' + (maxAttempts-1));
verifySuspendDataVersion(maxAttempts-1);
}
} else {
WriteToDebug('WARNING: Course reset flag not turned on. Resetting of learner data will not occur.');
WriteToDebug('Course behavior may be negatively impacted.');
}
}
}
function verifyForcedCommitTime() {
if (FORCED_COMMIT_TIME >= 5000) {
WriteToDebug('Starting Forced Commit heartbeat...');
var intervalID = setInterval(commitHeartbeat, FORCED_COMMIT_TIME);
} else {
WriteToDebug('Forced Commit Time cannot be lower than 5000 milliseconds. Not using forced commit time.');
}
}
function commitHeartbeat() {
WriteToDebug('Forced Commit heartbeat triggered. Now saving current session time...');
SetSessionTime(GetSessionAccumulatedTime());
WriteToDebug('Forced Commit heartbeat trigger is now triggering a commit...');
CommitData();
}
function getCourseTitle() {
return 'Story 01a - 01_Patrizia &amp; Marco sichern sich ab - Einstieg'
}

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="ScormEnginePackageProperties" targetNamespace="http://www.scorm.com/xsd/ScormEnginePackageProperties"
elementFormDefault="qualified" xmlns="http://www.scorm.com/xsd/ScormEnginePackageProperties"
xmlns:mstns="http://www.scorm.com/xsd/ScormEnginePackageProperties" xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified">
<xs:element name="ScormEnginePackageProperties">
<xs:complexType>
<xs:all>
<xs:element name="controls" type="controlsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="appearance" type="appearanceSpec" minOccurs="0" maxOccurs="1" />
<!-- allow for mis-spelling of 'appearance' that's acceptable in our parsing code -->
<xs:element name="appearence" type="appearanceSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="behavior" type="behaviorSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="rsop" type="rsopSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="heuristics" type="heuristicSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
</xs:element>
<xs:complexType name="controlsSpec">
<xs:all>
<xs:element name="showFinishButton" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showCloseItem" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showHelp" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showProgressBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="useMeasureProgressBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showCourseStructure" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="courseStructureStartsOpen" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showNavBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="showTitleBar" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="enableFlowNav" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="enableChoiceNav" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="statusDisplay" type="statusDisplayType" minOccurs="0" maxOccurs="1" />
<xs:element name="forceDisableRootChoice" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="appearanceSpec">
<xs:all>
<xs:element name="displayStage" type="displayStageSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="courseStructureWidth" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="behaviorSpec">
<xs:all>
<xs:element name="launch" type="launchSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="exitActions" type="exitActionsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="communications" type="communicationsSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="debug" type="debugSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="history" type="captureHistorySpec" minOccurs="0" maxOccurs="1" />
<xs:element name="disableRightClick" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="preventWindowResize" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="scoreRollupMode" type="scoreRollupType" minOccurs="0" maxOccurs="1" />
<xs:element name="numberOfScoringObjects" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="statusRollupMode" type="statusRollupType" minOccurs="0" maxOccurs="1" />
<xs:element name="thresholdScoreForCompletion" type="xs:decimal" minOccurs="0" maxOccurs="1" />
<xs:element name="applyRollupStatusToSuccess" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="firstScoIsPretest" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="finishCausesImmediateCommit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="invalidMenuItemAction" type="invalidMenuItemActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="alwaysFlowToFirstSco" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="logoutCausesPlayerExit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="resetRtTiming" type="resetRunTimeDataTimingType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadSequencerMode" type="lookaheadSequencerModeType" minOccurs="0" maxOccurs="1" />
<xs:element name="scoreOverridesStatus" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="allowCompleteStatusChange" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="scaleRawScore" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="useQuickLookaheadSequencer" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="rollupRuntimeAtScoUnload" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="forceObjectiveCompletionSetByContent" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="invokeRollupAtSuspendAll" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="completionStatOfFailedSuccessStat" type="completionStatusType" minOccurs="0" maxOccurs="1" />
<xs:element name="satisfiedCausesCompletion" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="makeStudentPrefsGlobalToCourse" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="returnToLmsAction" type="returnToLmsActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="rollupEmptySetToUnknown" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="validateInteractionTypes" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="suspendDataMaxLength" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="timeLimit" type="xs:int" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="rsopSpec">
<xs:all>
<xs:element name="offlineSynchMode" type="offlineSynchModeType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="heuristicSpec">
<xs:all>
<xs:element name="isCompletionTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isSatisfactionTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isScoreTracked" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isIncompleteScoreMeaningful" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="isIncompleteSatisfactionMeaningful" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="debugSpec">
<xs:all>
<xs:element name="controlAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="controlDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="runtimeAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="runtimeDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="sequencingSimple" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadAudit" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="lookaheadDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="includeTimestamps" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="captureHistorySpec">
<xs:all>
<xs:element name="captureHistory" type="yesNoType" minOccurs="0" maxOccurs="1" />
<xs:element name="captureHistoryDetailed" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="communicationsSpec">
<xs:all>
<xs:element name="maxFailedSubmissions" type="xs:int" minOccurs="0" maxOccurs="1" />
<xs:element name="commitFrequency" type="xs:int" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="exitActionsSpec">
<xs:all>
<xs:element name="intermediateSco" type="scoExitActionSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="finalSco" type="scoExitActionSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="scoExitActionSpec">
<xs:all>
<xs:element name="satisfied" type="exitTypesSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="notSatisfied" type="exitTypesSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="exitTypesSpec">
<xs:all>
<xs:element name="normal" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="suspend" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="exitActionType" minOccurs="0" maxOccurs="1" />
<xs:element name="logout" type="exitActionType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="launchSpec">
<xs:all>
<xs:element name="sco" type="launchType" minOccurs="0" maxOccurs="1" />
<xs:element name="player" type="launchType" minOccurs="0" maxOccurs="1" />
<xs:element name="wrapScoWindowWithApi" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="displayStageSpec">
<xs:all>
<xs:element name="required" type="stageSpec" minOccurs="0" maxOccurs="1" />
<xs:element name="desired" type="stageSpec" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="stageSpec">
<xs:all>
<xs:element name="width" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
<xs:element name="height" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1" />
<xs:element name="fullscreen" type="yesNoType" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:simpleType name="yesNoType">
<xs:restriction base="xs:string">
<xs:enumeration value="yes" />
<xs:enumeration value="no" />
<xs:enumeration value="true" />
<xs:enumeration value="false" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="launchType">
<xs:restriction base="xs:string">
<xs:enumeration value="frameset" />
<xs:enumeration value="new window" />
<xs:enumeration value="new window,after click" />
<xs:enumeration value="new window without browser toolbar" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="exitActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="exit,no confirmation" />
<xs:enumeration value="exit,confirmation" />
<xs:enumeration value="continue" />
<xs:enumeration value="message page" />
<xs:enumeration value="do nothing" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scoreRollupType">
<xs:restriction base="xs:string">
<xs:enumeration value="score provided by course" />
<xs:enumeration value="average score of all units" />
<xs:enumeration value="average score of all units with scores" />
<xs:enumeration value="fixed average" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="statusRollupType">
<xs:restriction base="xs:string">
<xs:enumeration value="status provided by course" />
<xs:enumeration value="complete when all units complete" />
<xs:enumeration value="complete when all units satisfactorily complete" />
<xs:enumeration value="complete when threshold score is met" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="statusDisplayType">
<xs:restriction base="xs:string">
<xs:enumeration value="success only" />
<xs:enumeration value="completion only" />
<xs:enumeration value="separate" />
<xs:enumeration value="combined" />
<xs:enumeration value="none" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="invalidMenuItemActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="show" />
<xs:enumeration value="hide" />
<xs:enumeration value="disable" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="resetRunTimeDataTimingType">
<xs:restriction base="xs:string">
<xs:enumeration value="never" />
<xs:enumeration value="when exit is not suspend" />
<xs:enumeration value="on each new sequencing attempt" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="lookaheadSequencerModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="enabled" />
<xs:enumeration value="disabled" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="offlineSynchModeType">
<xs:restriction base="xs:string">
<xs:enumeration value="most recent" />
<xs:enumeration value="simple" />
<xs:enumeration value="most complete" />
<xs:enumeration value="most satisfied" />
<xs:enumeration value="most done" />
<xs:enumeration value="best done " />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="completionStatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="completed" />
<xs:enumeration value="incomplete" />
<xs:enumeration value="browsed" />
<xs:enumeration value="not attempted" />
<xs:enumeration value="unknown" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="returnToLmsActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="legacy" />
<xs:enumeration value="suspend_all" />
<xs:enumeration value="exit_all" />
<xs:enumeration value="selectable" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -0,0 +1,110 @@
<?xml version="1.0"?>
<!-- filename=adlcp_rootv1p2.xsd -->
<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
<xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
version="ADL Version 1.2">
<xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
schemaLocation="imscp_rootv1p1p2.xsd"/>
<xsd:element name="location" type="locationType"/>
<xsd:element name="prerequisites" type="prerequisitesType"/>
<xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
<xsd:element name="timelimitaction" type="timelimitactionType"/>
<xsd:element name="datafromlms" type="datafromlmsType"/>
<xsd:element name="masteryscore" type="masteryscoreType"/>
<xsd:element name="schema" type="newSchemaType"/>
<xsd:simpleType name="newSchemaType">
<xsd:restriction base="imscp:schemaType">
<xsd:enumeration value="ADL SCORM"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="schemaversion" type="newSchemaversionType"/>
<xsd:simpleType name="newSchemaversionType">
<xsd:restriction base="imscp:schemaversionType">
<xsd:enumeration value="1.2"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:attribute name="scormtype">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="asset"/>
<xsd:enumeration value="sco"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:simpleType name="locationType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="prerequisitesType">
<xsd:simpleContent>
<xsd:extension base="prerequisiteStringType">
<xsd:attributeGroup ref="attr.prerequisitetype"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:attributeGroup name="attr.prerequisitetype">
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="aicc_script"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:simpleType name="maxtimeallowedType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="timelimitactionType">
<xsd:restriction base="stringType">
<xsd:enumeration value="exit,no message"/>
<xsd:enumeration value="exit,message"/>
<xsd:enumeration value="continue,no message"/>
<xsd:enumeration value="continue,message"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="datafromlmsType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="masteryscoreType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="stringType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="prerequisiteStringType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!-- filename=ims_xml.xsd --><xsd:schema xmlns="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <!-- 2001-02-22 edited by Thomas Wason IMS Global Learning Consortium, Inc. --> <xsd:annotation> <xsd:documentation>In namespace-aware XML processors, the &quot;xml&quot; prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace.</xsd:documentation> <xsd:documentation>Do not reference this file in XML instances</xsd:documentation> <xsd:documentation>Schawn Thropp: Changed the uriReference type to string type</xsd:documentation> </xsd:annotation> <xsd:attribute name="lang" type="xsd:language"> <xsd:annotation> <xsd:documentation>Refers to universal XML 1.0 lang attribute</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="base" type="xsd:string"> <xsd:annotation> <xsd:documentation>Refers to XML Base: http://www.w3.org/TR/xmlbase</xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="link" type="xsd:string"/></xsd:schema>

View File

@ -0,0 +1,345 @@
<?xml version="1.0"?>
<!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Thomas Wason (private) -->
<!-- filename=ims_cp_rootv1p1p2.xsd -->
<!-- Copyright (2) 2001 IMS Global Learning Consortium, Inc. -->
<!-- edited by Thomas Wason -->
<!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
<xsd:schema xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
targetNamespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified" version="IMS CP 1.1.2">
<!-- ******************** -->
<!-- ** Change History ** -->
<!-- ******************** -->
<xsd:annotation>
<xsd:documentation xml:lang="en">DRAFT XSD for IMS Content Packaging version 1.1 DRAFT</xsd:documentation>
<xsd:documentation> Copyright (c) 2001 IMS GLC, Inc. </xsd:documentation>
<xsd:documentation>2000-04-21, Adjustments by T.D. Wason from CP 1.0.</xsd:documentation>
<xsd:documentation>2001-02-22, T.D.Wason: Modify for 2000-10-24 XML-Schema version. Modified to support extension.</xsd:documentation>
<xsd:documentation>2001-03-12, T.D.Wason: Change filename, target and meta-data namespaces and meta-data fielname. Add meta-data to itemType, fileType and organizationType.</xsd:documentation>
<xsd:documentation>Do not define namespaces for xml in XML instances generated from this xsd.</xsd:documentation>
<xsd:documentation>Imports IMS meta-data xsd, lower case element names. </xsd:documentation>
<xsd:documentation>This XSD provides a reference to the IMS meta-data root element as imsmd:record</xsd:documentation>
<xsd:documentation>If the IMS meta-data is to be used in the XML instance then the instance must define an IMS meta-data prefix with a namespace. The meta-data targetNamespace should be used. </xsd:documentation>
<xsd:documentation>2001-03-20, Thor Anderson: Remove manifestref, change resourceref back to identifierref, change manifest back to contained by manifest. --Tom Wason: manifest may contain _none_ or more manifests.</xsd:documentation>
<xsd:documentation>2001-04-13 Tom Wason: corrected attirbute name structure. Was misnamed type. </xsd:documentation>
<xsd:documentation>2001-05-14 Schawn Thropp: Made all complexType extensible with the group.any</xsd:documentation>
<xsd:documentation>Added the anyAttribute to all complexTypes. Changed the href attribute on the fileType and resourceType to xsd:string</xsd:documentation>
<xsd:documentation>Changed the maxLength of the href, identifierref, parameters, structure attributes to match the Information model.</xsd:documentation>
<xsd:documentation>2001-07-25 Schawn Thropp: Changed the namespace for the Schema of Schemas to the 5/2/2001 W3C XML Schema</xsd:documentation>
<xsd:documentation>Recommendation. attributeGroup attr.imsmd deleted, was not used anywhere. Any attribute declarations that have</xsd:documentation>
<xsd:documentation>use = "default" changed to use="optional" - attr.structure.req.</xsd:documentation>
<xsd:documentation>Any attribute declarations that have value="somevalue" changed to default="somevalue",</xsd:documentation>
<xsd:documentation>attr.structure.req (hierarchical). Removed references to IMS MD Version 1.1.</xsd:documentation>
<xsd:documentation>Modified attribute group "attr.resourcetype.req" to change use from optional</xsd:documentation>
<xsd:documentation>to required to match the information model. As a result the default value also needed to be removed</xsd:documentation>
<xsd:documentation>Name change for XSD. Changed to match version of CP Spec </xsd:documentation>
</xsd:annotation>
<xsd:annotation>
<xsd:documentation>Inclusions and Imports</xsd:documentation>
</xsd:annotation>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
<xsd:annotation>
<xsd:documentation>Attribute Declarations</xsd:documentation>
</xsd:annotation>
<!-- **************************** -->
<!-- ** Attribute Declarations ** -->
<!-- **************************** -->
<xsd:attributeGroup name="attr.base">
<xsd:attribute ref="xml:base" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.default">
<xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.href">
<xsd:attribute name="href" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:anyURI">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.href.req">
<xsd:attribute name="href" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:anyURI">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifier.req">
<xsd:attribute name="identifier" type="xsd:ID" use="required"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifier">
<xsd:attribute name="identifier" type="xsd:ID" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.isvisible">
<xsd:attribute name="isvisible" type="xsd:boolean" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.parameters">
<xsd:attribute name="parameters" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifierref">
<xsd:attribute name="identifierref" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.identifierref.req">
<xsd:attribute name="identifierref" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.resourcetype.req">
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.structure.req">
<xsd:attribute name="structure" use="optional" default="hierarchical">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:attributeGroup name="attr.version">
<xsd:attribute name="version" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:annotation>
<xsd:documentation>element groups</xsd:documentation>
</xsd:annotation>
<xsd:group name="grp.any">
<xsd:annotation>
<xsd:documentation>Any namespaced element from any namespace may be included within an &quot;any&quot; element. The namespace for the imported element must be defined in the instance, and the schema must be imported. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ************************** -->
<!-- ** Element Declarations ** -->
<!-- ************************** -->
<xsd:element name="dependency" type="dependencyType"/>
<xsd:element name="file" type="fileType"/>
<xsd:element name="item" type="itemType"/>
<xsd:element name="manifest" type="manifestType"/>
<xsd:element name="metadata" type="metadataType"/>
<xsd:element name="organization" type="organizationType"/>
<xsd:element name="organizations" type="organizationsType"/>
<xsd:element name="resource" type="resourceType"/>
<xsd:element name="resources" type="resourcesType"/>
<xsd:element name="schema" type="schemaType"/>
<xsd:element name="schemaversion" type="schemaversionType"/>
<xsd:element name="title" type="titleType"/>
<!-- ******************* -->
<!-- ** Complex Types ** -->
<!-- ******************* -->
<!-- **************** -->
<!-- ** dependency ** -->
<!-- **************** -->
<xsd:complexType name="dependencyType">
<xsd:sequence>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifierref.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ********** -->
<!-- ** file ** -->
<!-- ********** -->
<xsd:complexType name="fileType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.href.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ********** -->
<!-- ** item ** -->
<!-- ********** -->
<xsd:complexType name="itemType">
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.identifierref"/>
<xsd:attributeGroup ref="attr.isvisible"/>
<xsd:attributeGroup ref="attr.parameters"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** manifest ** -->
<!-- ************** -->
<xsd:complexType name="manifestType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:element ref="organizations"/>
<xsd:element ref="resources"/>
<xsd:element ref="manifest" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.version"/>
<xsd:attribute ref="xml:base"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** metadata ** -->
<!-- ************** -->
<xsd:complexType name="metadataType">
<xsd:sequence>
<xsd:element ref="schema" minOccurs="0"/>
<xsd:element ref="schemaversion" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<!-- ******************* -->
<!-- ** organizations ** -->
<!-- ******************* -->
<xsd:complexType name="organizationsType">
<xsd:sequence>
<xsd:element ref="organization" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.default"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ****************** -->
<!-- ** organization ** -->
<!-- ****************** -->
<xsd:complexType name="organizationType">
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.structure.req"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- *************** -->
<!-- ** resources ** -->
<!-- *************** -->
<xsd:complexType name="resourcesType">
<xsd:sequence>
<xsd:element ref="resource" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.base"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ************** -->
<!-- ** resource ** -->
<!-- ************** -->
<xsd:complexType name="resourceType">
<xsd:sequence>
<xsd:element ref="metadata" minOccurs="0"/>
<xsd:element ref="file" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
<xsd:attributeGroup ref="attr.identifier.req"/>
<xsd:attributeGroup ref="attr.resourcetype.req"/>
<xsd:attributeGroup ref="attr.base"/>
<xsd:attributeGroup ref="attr.href"/>
<xsd:anyAttribute namespace="##other" processContents="strict"/>
</xsd:complexType>
<!-- ****************** -->
<!-- ** Simple Types ** -->
<!-- ****************** -->
<!-- ************ -->
<!-- ** schema ** -->
<!-- ************ -->
<xsd:simpleType name="schemaType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="100"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ******************* -->
<!-- ** schemaversion ** -->
<!-- ******************* -->
<xsd:simpleType name="schemaversionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<!-- *********** -->
<!-- ** title ** -->
<!-- *********** -->
<xsd:simpleType name="titleType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="200"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1,82 @@
<?xml version="1.0" ?>
<manifest identifier="ym7bqSj9kbh8vS6KQU_NqvSaD1TUciNasrGpfQhg" 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>
<adlcp:location>metadata.xml</adlcp:location>
</metadata>
<organizations default="articulate_rise">
<organization identifier="articulate_rise">
<title>Story 04a - 02_Rafael Fasel wechselt sein Auto - Analyse</title>
<item identifier="i1" identifierref="r1" isvisible="true">
<title>Story 04a - 02_Rafael Fasel wechselt sein Auto - Analyse</title>
<adlcp:datafromlms>eyJjcHYiOiJzckdwZlFoZyIsInJsZCI6ZmFsc2V9</adlcp:datafromlms>
</item>
</organization>
</organizations>
<resources>
<resource identifier="r1" type="webcontent" adlcp:scormtype="sco" href="scormdriver/indexAPI.html">
<!-- SCORMDRIVER STUFF -->
<file href="scormdriver/indexAPI.html" />
<file href="scormdriver/preloadIntegrity.js" />
<file href="scormdriver/driverOptions.js" />
<file href="scormdriver/AICCComm.html" />
<file href="scormdriver/auto-scripts/AutoBookmark.js" />
<file href="scormdriver/auto-scripts/AutoCompleteSCO.js" />
<file href="scormdriver/auto-scripts/CourseExit.js" />
<file href="scormdriver/blank.html" />
<file href="scormdriver/goodbye.html" />
<file href="scormdriver/scormdriver.js" />
<file href="scormdriver/browsersniff.js" />
<!-- RUNTIME COMMON STUFF -->
<file href="scormcontent/index.html" />
<file href="scormcontent/lib/main.bundle.js"/>
<file href="scormcontent/lib/fonts/icomoon.ttf"/>
<file href="scormcontent/lib/fonts/icomoon.woff"/>
<file href="scormcontent/lib/icomoon.css"/>
<file href="scormcontent/lib/main.bundle.css"/>
<file href="scormcontent/lib/player-0.0.11.min.js"/>
<file href="scormcontent/lib/lzwcompress.js"/>
<!-- RUNTIME CONTENT STUFF -->
<file href="scormcontent/lib/fonts/EjI2H2bOUhWXi31P-BuenosAires-RegularItalic.woff" />
<file href="scormcontent/lib/fonts/urcm4TQicFIAp0yG-BuenosAires-Bold.woff" />
<file href="scormcontent/lib/fonts/c8JUHx2ntHwOSJWS-BuenosAires-Regular.woff" />
<file href="scormcontent/lib/fonts/Lato-Black.woff" />
<file href="scormcontent/lib/fonts/Lato-Italic.woff" />
<file href="scormcontent/lib/fonts/Lato-Bold.woff" />
<file href="scormcontent/lib/fonts/Lato-Regular.woff" />
<file href="scormcontent/lib/fonts/Lato-Light.woff" />
<file href="scormcontent/assets/TTF1e_8K8BMXViyO_small_1642496678.png" />
<file href="scormcontent/assets/nnP4DNqmxWPI2m9E_small_1645825112.png" />
<file href="scormcontent/assets/m2Hbz-mT-nGz9XVi_e3KUJ4wINPFtieCt.png" />
<file href="scormcontent/assets/BVIQVWtv_qPq8uU8_UDSTl9hO7Q2I8zDZ.jpg" />
<file href="scormcontent/assets/Veq-Kwuhia8ujYYB_LMw7KEMDCd9cXSQG.png" />
<file href="scormcontent/assets/Omn8IYVEn4VJCvls_oRl-vHYDoe_lxAol.jpg" />
<file href="scormcontent/assets/gjK8TEQ10_n__Q9v_wGIuW_wOetW2Zqz3.jpg" />
<file href="scormcontent/assets/2N3p398QtQinLovm_quote_background.jpg" />
<file href="scormcontent/assets/3NCvTQJ9XVkFmkCD_f-0jsOP4JRgLPx_1.jpg" />
<file href="scormcontent/assets/w09e0pqxxcMcVgXs_ENx8YiKVZGrZ34oZ.jpg" />
<file href="scormcontent/assets/mvK5UZ-lrWO2IAEm_wjQAi8Hoc7-WgQj0.jpg" />
<file href="scormcontent/assets/p5f2E32CtJ9TmBZ7_5oInbp-2G9gMNtmq.jpg" />
<file href="scormcontent/assets/e62C5GgPt5ftxJEs_cov4j_WPinzLoroi.jpg" />
<file href="scormcontent/assets/DeyXH8RJSx_aYFUU_mountains.jpg" />
<file href="scormcontent/assets/aHxbYquqfw71Vi0R_K6Tp6M5hhEIp7uZ6.png" />
<file href="scormcontent/assets/nqiHG7yBMhxUuNwT_wVYSRrXyDojftjCP.jpg" />
<file href="scormcontent/assets/j50VmYhjz3MV7RXE_3_abstract.jpg" />
<file href="scormcontent/assets/RLPZeSWX1OkSRiNE_example-header-image.jpg" />
</resource>
</resources>
</manifest>

View File

@ -0,0 +1,573 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited by Thomas Wason -->
<xsd:schema targetNamespace="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
elementFormDefault="qualified"
version="1.2:1.1 IMS:MD1.2">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="ims_xml.xsd"/>
<!-- ******************** -->
<!-- ** Change History ** -->
<!-- ******************** -->
<xsd:annotation>
<xsd:documentation>2001-04-26 T.D.Wason. IMS meta-data 1.2 XML-Schema. </xsd:documentation>
<xsd:documentation>2001-06-07 S.E.Thropp. Changed the multiplicity on all elements to match the </xsd:documentation>
<xsd:documentation>Final 1.2 Binding Specification. </xsd:documentation>
<xsd:documentation>Changed all elements that use the langstringType to a multiplicy of 1 or more </xsd:documentation>
<xsd:documentation>Changed centity in the contribute element to have a multiplicity of 0 or more. </xsd:documentation>
<xsd:documentation>Changed the requirement element to have a multiplicity of 0 or more. </xsd:documentation>
<xsd:documentation> 2001-07-25 Schawn Thropp. Updates to bring the XSD up to speed with the W3C </xsd:documentation>
<xsd:documentation> XML Schema Recommendation. The following changes were made: Change the </xsd:documentation>
<xsd:documentation> namespace to reference the 5/2/2001 W3C XML Schema Recommendation,the base </xsd:documentation>
<xsd:documentation> type for the durtimeType, simpleType, was changed from timeDuration to duration. </xsd:documentation>
<xsd:documentation> Any attribute declarations that have use="default" had to change to use="optional" </xsd:documentation>
<xsd:documentation> - attr.type. Any attribute declarations that have value ="somevalue" had to change </xsd:documentation>
<xsd:documentation> to default = "somevalue" - attr.type (URI) </xsd:documentation>
<xsd:documentation> 2001-09-04 Schawn Thropp </xsd:documentation>
<xsd:documentation> Changed the targetNamespace and namespace of schema to reflect version change </xsd:documentation>
</xsd:annotation>
<!-- *************************** -->
<!-- ** Attribute Declaration ** -->
<!-- *************************** -->
<xsd:attributeGroup name="attr.type">
<xsd:attribute name="type" use="optional" default="URI">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="URI"/>
<xsd:enumeration value="TEXT"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:attributeGroup>
<xsd:group name="grp.any">
<xsd:annotation>
<xsd:documentation>Any namespaced element from any namespace may be used for an &quot;any&quot; element. The namespace for the imported element must be defined in the instance, and the schema must be imported. </xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<!-- ************************* -->
<!-- ** Element Declaration ** -->
<!-- ************************* -->
<xsd:element name="aggregationlevel" type="aggregationlevelType"/>
<xsd:element name="annotation" type="annotationType"/>
<xsd:element name="catalogentry" type="catalogentryType"/>
<xsd:element name="catalog" type="catalogType"/>
<xsd:element name="centity" type="centityType"/>
<xsd:element name="classification" type="classificationType"/>
<xsd:element name="context" type="contextType"/>
<xsd:element name="contribute" type="contributeType"/>
<xsd:element name="copyrightandotherrestrictions" type="copyrightandotherrestrictionsType"/>
<xsd:element name="cost" type="costType"/>
<xsd:element name="coverage" type="coverageType"/>
<xsd:element name="date" type="dateType"/>
<xsd:element name="datetime" type="datetimeType"/>
<xsd:element name="description" type="descriptionType"/>
<xsd:element name="difficulty" type="difficultyType"/>
<xsd:element name="educational" type="educationalType"/>
<xsd:element name="entry" type="entryType"/>
<xsd:element name="format" type="formatType"/>
<xsd:element name="general" type="generalType"/>
<xsd:element name="identifier" type="xsd:string"/>
<xsd:element name="intendedenduserrole" type="intendedenduserroleType"/>
<xsd:element name="interactivitylevel" type="interactivitylevelType"/>
<xsd:element name="interactivitytype" type="interactivitytypeType"/>
<xsd:element name="keyword" type="keywordType"/>
<xsd:element name="kind" type="kindType"/>
<xsd:element name="langstring" type="langstringType"/>
<xsd:element name="language" type="xsd:string"/>
<xsd:element name="learningresourcetype" type="learningresourcetypeType"/>
<xsd:element name="lifecycle" type="lifecycleType"/>
<xsd:element name="location" type="locationType"/>
<xsd:element name="lom" type="lomType"/>
<xsd:element name="maximumversion" type="minimumversionType"/>
<xsd:element name="metadatascheme" type="metadataschemeType"/>
<xsd:element name="metametadata" type="metametadataType"/>
<xsd:element name="minimumversion" type="maximumversionType"/>
<xsd:element name="name" type="nameType"/>
<xsd:element name="purpose" type="purposeType"/>
<xsd:element name="relation" type="relationType"/>
<xsd:element name="requirement" type="requirementType"/>
<xsd:element name="resource" type="resourceType"/>
<xsd:element name="rights" type="rightsType"/>
<xsd:element name="role" type="roleType"/>
<xsd:element name="semanticdensity" type="semanticdensityType"/>
<xsd:element name="size" type="sizeType"/>
<xsd:element name="source" type="sourceType"/>
<xsd:element name="status" type="statusType"/>
<xsd:element name="structure" type="structureType"/>
<xsd:element name="taxon" type="taxonType"/>
<xsd:element name="taxonpath" type="taxonpathType"/>
<xsd:element name="technical" type="technicalType"/>
<xsd:element name="title" type="titleType"/>
<xsd:element name="type" type="typeType"/>
<xsd:element name="typicalagerange" type="typicalagerangeType"/>
<xsd:element name="typicallearningtime" type="typicallearningtimeType"/>
<xsd:element name="value" type="valueType"/>
<xsd:element name="person" type="personType"/>
<xsd:element name="vcard" type="xsd:string"/>
<xsd:element name="version" type="versionType"/>
<xsd:element name="installationremarks" type="installationremarksType"/>
<xsd:element name="otherplatformrequirements" type="otherplatformrequirementsType"/>
<xsd:element name="duration" type="durationType"/>
<xsd:element name="id" type="idType"/>
<!-- ******************* -->
<!-- ** Complex Types ** -->
<!-- ******************* -->
<xsd:complexType name="aggregationlevelType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="annotationType" mixed="true">
<xsd:sequence>
<xsd:element ref="person" minOccurs="0"/>
<xsd:element ref="date" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="catalogentryType" mixed="true">
<xsd:sequence>
<xsd:element ref="catalog"/>
<xsd:element ref="entry"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="centityType">
<xsd:sequence>
<xsd:element ref="vcard"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="classificationType" mixed="true">
<xsd:sequence>
<xsd:element ref="purpose" minOccurs="0"/>
<xsd:element ref="taxonpath" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contextType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contributeType" mixed="true">
<xsd:sequence>
<xsd:element ref="role"/>
<xsd:element ref="centity" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="date" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="copyrightandotherrestrictionsType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="costType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="coverageType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="dateType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="descriptionType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="difficultyType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="durationType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="educationalType" mixed="true">
<xsd:sequence>
<xsd:element ref="interactivitytype" minOccurs="0"/>
<xsd:element ref="learningresourcetype" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="interactivitylevel" minOccurs="0"/>
<xsd:element ref="semanticdensity" minOccurs="0"/>
<xsd:element ref="intendedenduserrole" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="context" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="typicalagerange" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="difficulty" minOccurs="0"/>
<xsd:element ref="typicallearningtime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="entryType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="generalType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="language" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="coverage" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="structure" minOccurs="0"/>
<xsd:element ref="aggregationlevel" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="installationremarksType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="intendedenduserroleType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="interactivitylevelType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="interactivitytypeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="keywordType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="kindType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="langstringType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="learningresourcetypeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="lifecycleType" mixed="true">
<xsd:sequence>
<xsd:element ref="version" minOccurs="0"/>
<xsd:element ref="status" minOccurs="0"/>
<xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="locationType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attributeGroup ref="attr.type"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="lomType">
<xsd:sequence>
<xsd:element ref="general" minOccurs="0"/>
<xsd:element ref="lifecycle" minOccurs="0"/>
<xsd:element ref="metametadata" minOccurs="0"/>
<xsd:element ref="technical" minOccurs="0"/>
<xsd:element ref="educational" minOccurs="0"/>
<xsd:element ref="rights" minOccurs="0"/>
<xsd:element ref="relation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="annotation" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="classification" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="metametadataType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="contribute" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="metadatascheme" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="language" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="nameType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="otherplatformrequirementsType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="personType">
<xsd:sequence>
<xsd:element ref="vcard"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="purposeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="relationType" mixed="true">
<xsd:sequence>
<xsd:element ref="kind" minOccurs="0"/>
<xsd:element ref="resource" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="requirementType" mixed="true">
<xsd:sequence>
<xsd:element ref="type" minOccurs="0"/>
<xsd:element ref="name" minOccurs="0"/>
<xsd:element ref="minimumversion" minOccurs="0"/>
<xsd:element ref="maximumversion" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="resourceType" mixed="true">
<xsd:sequence>
<xsd:element ref="identifier" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:element ref="catalogentry" minOccurs="0" maxOccurs="unbounded"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="rightsType" mixed="true">
<xsd:sequence>
<xsd:element ref="cost" minOccurs="0"/>
<xsd:element ref="copyrightandotherrestrictions" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="roleType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="semanticdensityType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sourceType">
<xsd:sequence>
<xsd:element ref="langstring"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="statusType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="stringType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="xml:lang"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="structureType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="taxonpathType">
<xsd:sequence>
<xsd:element ref="source" minOccurs="0"/>
<xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="taxonType">
<xsd:sequence>
<xsd:element ref="id" minOccurs="0"/>
<xsd:element ref="entry" minOccurs="0"/>
<xsd:element ref="taxon" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="technicalType" mixed="true">
<xsd:sequence>
<xsd:element ref="format" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="size" minOccurs="0"/>
<xsd:element ref="location" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="installationremarks" minOccurs="0"/>
<xsd:element ref="otherplatformrequirements" minOccurs="0"/>
<xsd:element ref="duration" minOccurs="0"/>
<xsd:group ref="grp.any"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="titleType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typeType">
<xsd:sequence>
<xsd:element ref="source"/>
<xsd:element ref="value"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typicalagerangeType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typicallearningtimeType">
<xsd:sequence>
<xsd:element ref="datetime" minOccurs="0"/>
<xsd:element ref="description" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="valueType">
<xsd:sequence>
<xsd:element ref="langstring"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="versionType">
<xsd:sequence>
<xsd:element ref="langstring" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- ****************** -->
<!-- ** Simple Types ** -->
<!-- ****************** -->
<xsd:simpleType name="formatType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="sizeType">
<xsd:restriction base="xsd:int"/>
</xsd:simpleType>
<xsd:simpleType name="datetimeType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="metadataschemeType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="catalogType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="minimumversionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="maximumversionType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:schema>

View File

@ -0,0 +1,112 @@
<?xml version="1.0"?>
<lom xmlns="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:pkgprop="http://www.scorm.com/xsd/ScormEnginePackageProperties"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd
http://www.scorm.com/xsd/ScormEnginePackageProperties ScormEnginePackageProperties.xsd">
<general>
<title>
<langstring></langstring>
</title>
<catalogentry>
<catalog>Catalog</catalog>
<entry>
<langstring>1</langstring>
</entry>
</catalogentry>
<!-- If you know the locale, enter it here, if not, leave this as en-->
<language>en</language>
<!-- Manifest->Course.Description. If that doesn't exist, replace with Project Information-> Description. If that is empty, just leave "Description"-->
<description>
<langstring>Description</langstring>
</description>
<!-- SCORM 1.2 requires some keywords. You could just leave it as is, or substitute the title-->
<keyword>
<langstring>Training</langstring>
</keyword>
</general>
<lifecycle>
<version>
<langstring>1</langstring>
</version>
<status>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">Final</langstring>
</value>
</status>
</lifecycle>
<metametadata>
<metadatascheme>ADL SCORM 1.2</metadatascheme>
</metametadata>
<technical>
<format>text/html</format>
<format>application/x-javascript</format>
<format>application/x-shockwave-flash</format>
<format>text/css</format>
<location>indexAPI.html</location>
<!-- replace with your launch page-->
<pkgprop:ScormEnginePackageProperties xmlns="http://www.scorm.com/ScormEnginePackageProperties">
<appearance>
<displayStage>
<!-- Replace with target width and height of movie. (From Project Information -> Resolution -->
<desired>
<width>750</width>
<height>550</height>
<fullscreen>no</fullscreen>
</desired>
<required>
<width>0</width>
<height>0</height>
<fullscreen>no</fullscreen>
</required>
</displayStage>
</appearance>
<behavior>
<alwaysFlowToFirstSco>yes</alwaysFlowToFirstSco>
<scoreOverridesStatus>no</scoreOverridesStatus>
<validateInteractionTypes>yes</validateInteractionTypes>
</behavior>
</pkgprop:ScormEnginePackageProperties>
</technical>
<rights>
<cost>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">yes</langstring>
</value>
</cost>
<copyrightandotherrestrictions>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">yes</langstring>
</value>
</copyrightandotherrestrictions>
</rights>
<classification>
<purpose>
<source>
<langstring xml:lang="x-none">LOMv1.0</langstring>
</source>
<value>
<langstring xml:lang="x-none">Educational Objective</langstring>
</value>
</purpose>
<!--same as description above-->
<description>
<langstring>Description</langstring>
</description>
<!--same as keywords above-->
<keyword>
<langstring>Training</langstring>
</keyword>
</classification>
</lom>

Some files were not shown because too many files have changed in this diff Show More