1<xs:schema xmlns="https://w3id.org/xapi/profiles/cmi5/v1/CourseStructure.xsd"
2           xmlns:xs="http://www.w3.org/2001/XMLSchema"
3           targetNamespace="https://w3id.org/xapi/profiles/cmi5/v1/CourseStructure.xsd" elementFormDefault="qualified"
4           id="cmi5CourseStructure">
5  <xs:element name="courseStructure" type="courseType"/>
6  <xs:complexType name="courseType">
7    <xs:sequence>
8      <xs:element name="course">
9        <xs:complexType>
10          <xs:sequence>
11            <xs:element name="title" type="textType"/>
12            <xs:element name="description" type="textType"/>
13            <xs:group ref="anyElement"/>
14          </xs:sequence>
15          <xs:attributeGroup ref="anyAttribute"/>
16          <xs:attribute name="id" type="xs:anyURI" use="required"/>
17        </xs:complexType>
18      </xs:element>
19      <xs:element name="objectives" type="objectivesType" minOccurs="0"/>
20      <xs:choice minOccurs="1" maxOccurs="unbounded">
21        <xs:element name="au" type="auType"/>
22        <xs:element name="block" type="blockType"/>
23      </xs:choice>
24      <xs:group ref="anyElement"/>
25    </xs:sequence>
26    <xs:attributeGroup ref="anyAttribute"/>
27  </xs:complexType>
28  <xs:complexType name="blockType">
29    <xs:sequence>
30      <xs:element name="title" type="textType"/>
31      <xs:element name="description" type="textType"/>
32      <xs:element name="objectives" type="referencesObjectivesType" minOccurs="0"/>
33      <xs:choice minOccurs="1" maxOccurs="unbounded">
34        <xs:element name="au" type="auType"/>
35        <xs:element name="block" type="blockType"/>
36      </xs:choice>
37      <xs:group ref="anyElement"/>
38    </xs:sequence>
39    <xs:attributeGroup ref="anyAttribute"/>
40    <xs:attribute name="id" type="xs:anyURI" use="required"/>
41  </xs:complexType>
42  <xs:complexType name="auType">
43    <xs:sequence>
44      <xs:element name="title" type="textType"/>
45      <xs:element name="description" type="textType"/>
46      <xs:element name="objectives" type="referencesObjectivesType" minOccurs="0"/>
47      <xs:element name="url">
48        <xs:simpleType>
49          <xs:restriction base="xs:anyURI">
50            <xs:minLength value="1"/>
51          </xs:restriction>
52        </xs:simpleType>
53      </xs:element>
54      <xs:element name="launchParameters" minOccurs="0"/>
55      <xs:element name="entitlementKey" minOccurs="0"/>
56      <xs:group ref="anyElement"/>
57    </xs:sequence>
58    <xs:attributeGroup ref="anyAttribute"/>
59    <xs:attribute name="id" type="xs:anyURI" use="required"/>
60    <xs:attribute name="moveOn" default="NotApplicable">
61      <xs:simpleType>
62        <xs:restriction base="xs:string">
63          <xs:enumeration value="NotApplicable"/>
64          <xs:enumeration value="Passed"/>
65          <xs:enumeration value="Completed"/>
66          <xs:enumeration value="CompletedAndPassed"/>
67          <xs:enumeration value="CompletedOrPassed"/>
68        </xs:restriction>
69      </xs:simpleType>
70    </xs:attribute>
71    <xs:attribute name="masteryScore" use="optional">
72      <xs:simpleType>
73        <xs:restriction base="xs:decimal">
74          <xs:minInclusive value="0"/>
75          <xs:maxInclusive value="1"/>
76        </xs:restriction>
77      </xs:simpleType>
78    </xs:attribute>
79    <xs:attribute name="launchMethod" default="AnyWindow">
80      <xs:simpleType>
81        <xs:restriction base="xs:string">
82          <xs:enumeration value="AnyWindow"/>
83          <xs:enumeration value="OwnWindow"/>
84        </xs:restriction>
85      </xs:simpleType>
86    </xs:attribute>
87    <xs:attribute name="activityType" use="optional" type="xs:string"/>
88  </xs:complexType>
89  <xs:complexType name="objectivesType">
90    <xs:sequence>
91      <xs:element name="objective" minOccurs="1" maxOccurs="unbounded">
92        <xs:complexType>
93          <xs:all>
94            <xs:element name="title" type="textType"/>
95            <xs:element name="description" type="textType"/>
96          </xs:all>
97          <xs:attribute name="id" type="xs:anyURI" use="required"/>
98        </xs:complexType>
99      </xs:element>
100      <xs:group ref="anyElement"/>
101    </xs:sequence>
102    <xs:attributeGroup ref="anyAttribute"/>
103  </xs:complexType>
104  <xs:complexType name="referencesObjectivesType">
105    <xs:sequence>
106      <xs:element name="objective" maxOccurs="unbounded">
107        <xs:complexType>
108          <xs:attribute name="idref" type="xs:anyURI"></xs:attribute>
109        </xs:complexType>
110      </xs:element>
111      <xs:group ref="anyElement"/>
112    </xs:sequence>
113    <xs:attributeGroup ref="anyAttribute"/>
114  </xs:complexType>
115  <xs:complexType name="textType">
116    <xs:sequence>
117      <xs:element name="langstring" maxOccurs="unbounded" minOccurs="1">
118        <xs:complexType>
119          <xs:simpleContent>
120            <xs:extension base="xs:string">
121              <xs:attribute name="lang" type="xs:language"/>
122              <xs:attributeGroup ref="anyAttribute"/>
123            </xs:extension>
124          </xs:simpleContent>
125        </xs:complexType>
126      </xs:element>
127      <xs:group ref="anyElement"/>
128    </xs:sequence>
129    <xs:attributeGroup ref="anyAttribute"/>
130  </xs:complexType>
131  <xs:simpleType name="baseLanguagesType">
132    <xs:list itemType="xs:language"></xs:list>
133  </xs:simpleType>
134  <xs:complexType name="languagesType">
135    <xs:simpleContent>
136      <xs:extension base="baseLanguagesType">
137        <xs:attributeGroup ref="anyAttribute"/>
138      </xs:extension>
139    </xs:simpleContent>
140  </xs:complexType>
141
142  <xs:group name="anyElement">
143    <xs:sequence>
144      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
145    </xs:sequence>
146  </xs:group>
147  <xs:attributeGroup name="anyAttribute">
148    <xs:anyAttribute namespace="##other" processContents="lax"/>
149  </xs:attributeGroup>
150</xs:schema>
151
152