1<xs:schema targetNamespace="http://ltsc.ieee.org/xsd/LOM"
2           xmlns="http://ltsc.ieee.org/xsd/LOM"
3           xmlns:ag="http://ltsc.ieee.org/xsd/LOM/unique"
4           xmlns:ex="http://ltsc.ieee.org/xsd/LOM/extend"
5           xmlns:voc="http://ltsc.ieee.org/xsd/LOM/vocab"
6           xmlns:xs="http://www.w3.org/2001/XMLSchema"
7           elementFormDefault="qualified"
8           version="IEEE LTSC LOM XML 1.0">
9
10   <xs:annotation>
11      <xs:documentation>
12         This work is licensed under the Creative Commons Attribution-ShareAlike
13         License.  To view a copy of this license, see the file license.txt,
14         visit http://creativecommons.org/licenses/by-sa/1.0 or send a letter to
15         Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
16      </xs:documentation>
17
18      <xs:documentation>
19         This component schema provides global type declarations for those metadata
20         elements whose values are taken from a vocabulary datatype.
21      </xs:documentation>
22   </xs:annotation>
23
24   <xs:import namespace="http://ltsc.ieee.org/xsd/LOM/unique"/>
25   <xs:import namespace="http://ltsc.ieee.org/xsd/LOM/extend"/>
26   <xs:import namespace="http://ltsc.ieee.org/xsd/LOM/vocab"/>
27
28   <!-- Vocabulary type declarations -->
29
30   <!-- Source -->
31   <xs:complexType name="sourceValue">
32      <xs:simpleContent>
33         <xs:extension base="voc:source">
34            <xs:attributeGroup ref="ag:source"/>
35         </xs:extension>
36      </xs:simpleContent>
37   </xs:complexType>
38
39   <!-- 1.7 Structure -->
40   <xs:complexType name="structureVocab">
41      <xs:choice minOccurs="0" maxOccurs="unbounded">
42         <xs:element name="source" type="sourceValue"/>
43         <xs:element name="value" type="structureValue"/>
44         <xs:group ref="ex:customElements"/>
45      </xs:choice>
46   </xs:complexType>
47
48   <xs:complexType name="structureValue">
49      <xs:simpleContent>
50         <xs:extension base="voc:structure">
51            <xs:attributeGroup ref="ag:value"/>
52         </xs:extension>
53      </xs:simpleContent>
54   </xs:complexType>
55
56   <!-- 1.8 Aggregation Level -->
57   <xs:complexType name="aggregationLevelVocab">
58      <xs:choice minOccurs="0" maxOccurs="unbounded">
59         <xs:element name="source" type="sourceValue"/>
60         <xs:element name="value" type="aggregationLevelValue"/>
61         <xs:group ref="ex:customElements"/>
62      </xs:choice>
63   </xs:complexType>
64
65   <xs:complexType name="aggregationLevelValue">
66      <xs:simpleContent>
67         <xs:extension base="voc:aggregationLevel">
68            <xs:attributeGroup ref="ag:value"/>
69         </xs:extension>
70      </xs:simpleContent>
71   </xs:complexType>
72
73   <!-- 2.2 Status -->
74   <xs:complexType name="statusVocab">
75      <xs:choice minOccurs="0" maxOccurs="unbounded">
76         <xs:element name="source" type="sourceValue"/>
77         <xs:element name="value" type="statusValue"/>
78         <xs:group ref="ex:customElements"/>
79      </xs:choice>
80   </xs:complexType>
81
82   <xs:complexType name="statusValue">
83      <xs:simpleContent>
84         <xs:extension base="voc:status">
85            <xs:attributeGroup ref="ag:value"/>
86         </xs:extension>
87      </xs:simpleContent>
88   </xs:complexType>
89
90   <!-- 2.3.1 Role -->
91   <xs:complexType name="roleVocab">
92      <xs:choice minOccurs="0" maxOccurs="unbounded">
93         <xs:element name="source" type="sourceValue"/>
94         <xs:element name="value" type="roleValue"/>
95         <xs:group ref="ex:customElements"/>
96      </xs:choice>
97   </xs:complexType>
98
99   <xs:complexType name="roleValue">
100      <xs:simpleContent>
101         <xs:extension base="voc:role">
102            <xs:attributeGroup ref="ag:value"/>
103         </xs:extension>
104      </xs:simpleContent>
105   </xs:complexType>
106
107   <!-- 3.2.1 Role -->
108   <xs:complexType name="roleMetaVocab">
109      <xs:choice minOccurs="0" maxOccurs="unbounded">
110         <xs:element name="source" type="sourceValue"/>
111         <xs:element name="value" type="roleMetaValue"/>
112         <xs:group ref="ex:customElements"/>
113      </xs:choice>
114   </xs:complexType>
115
116   <xs:complexType name="roleMetaValue">
117      <xs:simpleContent>
118         <xs:extension base="voc:roleMeta">
119            <xs:attributeGroup ref="ag:value"/>
120         </xs:extension>
121      </xs:simpleContent>
122   </xs:complexType>
123
124   <!-- 4.4.1.1 Type -->
125   <xs:complexType name="typeVocab">
126      <xs:choice minOccurs="0" maxOccurs="unbounded">
127         <xs:element name="source" type="sourceValue"/>
128         <xs:element name="value" type="typeValue"/>
129         <xs:group ref="ex:customElements"/>
130      </xs:choice>
131   </xs:complexType>
132
133   <xs:complexType name="typeValue">
134      <xs:simpleContent>
135         <xs:extension base="voc:type">
136            <xs:attributeGroup ref="ag:value"/>
137         </xs:extension>
138      </xs:simpleContent>
139   </xs:complexType>
140
141   <!-- 4.4.1.2 Name -->
142   <xs:complexType name="nameVocab">
143      <xs:choice minOccurs="0" maxOccurs="unbounded">
144         <xs:element name="source" type="sourceValue"/>
145         <xs:element name="value" type="nameValue"/>
146         <xs:group ref="ex:customElements"/>
147      </xs:choice>
148   </xs:complexType>
149
150   <xs:complexType name="nameValue">
151      <xs:simpleContent>
152         <xs:extension base="voc:name">
153            <xs:attributeGroup ref="ag:value"/>
154         </xs:extension>
155      </xs:simpleContent>
156   </xs:complexType>
157
158   <!-- 5.1 Interactivity Type -->
159   <xs:complexType name="interactivityTypeVocab">
160      <xs:choice minOccurs="0" maxOccurs="unbounded">
161         <xs:element name="source" type="sourceValue"/>
162         <xs:element name="value" type="interactivityTypeValue"/>
163         <xs:group ref="ex:customElements"/>
164      </xs:choice>
165   </xs:complexType>
166
167   <xs:complexType name="interactivityTypeValue">
168      <xs:simpleContent>
169         <xs:extension base="voc:interactivityType">
170            <xs:attributeGroup ref="ag:value"/>
171         </xs:extension>
172      </xs:simpleContent>
173   </xs:complexType>
174
175   <!-- 5.2 Learning Resource Type -->
176   <xs:complexType name="learningResourceTypeVocab">
177      <xs:choice minOccurs="0" maxOccurs="unbounded">
178         <xs:element name="source" type="sourceValue"/>
179         <xs:element name="value" type="learningResourceTypeValue"/>
180         <xs:group ref="ex:customElements"/>
181      </xs:choice>
182   </xs:complexType>
183
184   <xs:complexType name="learningResourceTypeValue">
185      <xs:simpleContent>
186         <xs:extension base="voc:learningResourceType">
187            <xs:attributeGroup ref="ag:value"/>
188         </xs:extension>
189      </xs:simpleContent>
190   </xs:complexType>
191
192   <!-- 5.3 Interactivity Level -->
193   <xs:complexType name="interactivityLevelVocab">
194      <xs:choice minOccurs="0" maxOccurs="unbounded">
195         <xs:element name="source" type="sourceValue"/>
196         <xs:element name="value" type="interactivityLevelValue"/>
197         <xs:group ref="ex:customElements"/>
198      </xs:choice>
199   </xs:complexType>
200
201   <xs:complexType name="interactivityLevelValue">
202      <xs:simpleContent>
203         <xs:extension base="voc:interactivityLevel">
204            <xs:attributeGroup ref="ag:value"/>
205         </xs:extension>
206      </xs:simpleContent>
207   </xs:complexType>
208
209   <!-- 5.4 Semantic Density -->
210   <xs:complexType name="semanticDensityVocab">
211      <xs:choice minOccurs="0" maxOccurs="unbounded">
212         <xs:element name="source" type="sourceValue"/>
213         <xs:element name="value" type="semanticDensityValue"/>
214         <xs:group ref="ex:customElements"/>
215      </xs:choice>
216   </xs:complexType>
217
218   <xs:complexType name="semanticDensityValue">
219      <xs:simpleContent>
220         <xs:extension base="voc:semanticDensity">
221            <xs:attributeGroup ref="ag:value"/>
222         </xs:extension>
223      </xs:simpleContent>
224   </xs:complexType>
225
226   <!-- 5.5 Intended End User Role -->
227   <xs:complexType name="intendedEndUserRoleVocab">
228      <xs:choice minOccurs="0" maxOccurs="unbounded">
229         <xs:element name="source" type="sourceValue"/>
230         <xs:element name="value" type="intendedEndUserRoleValue"/>
231         <xs:group ref="ex:customElements"/>
232      </xs:choice>
233   </xs:complexType>
234
235   <xs:complexType name="intendedEndUserRoleValue">
236      <xs:simpleContent>
237         <xs:extension base="voc:intendedEndUserRole">
238            <xs:attributeGroup ref="ag:value"/>
239         </xs:extension>
240      </xs:simpleContent>
241   </xs:complexType>
242
243   <!-- 5.6 Context -->
244   <xs:complexType name="contextVocab">
245      <xs:choice minOccurs="0" maxOccurs="unbounded">
246         <xs:element name="source" type="sourceValue"/>
247         <xs:element name="value" type="contextValue"/>
248         <xs:group ref="ex:customElements"/>
249      </xs:choice>
250   </xs:complexType>
251
252   <xs:complexType name="contextValue">
253      <xs:simpleContent>
254         <xs:extension base="voc:context">
255            <xs:attributeGroup ref="ag:value"/>
256         </xs:extension>
257      </xs:simpleContent>
258   </xs:complexType>
259
260   <!-- 5.8 Difficulty -->
261   <xs:complexType name="difficultyVocab">
262      <xs:choice minOccurs="0" maxOccurs="unbounded">
263         <xs:element name="source" type="sourceValue"/>
264         <xs:element name="value" type="difficultyValue"/>
265         <xs:group ref="ex:customElements"/>
266      </xs:choice>
267   </xs:complexType>
268
269   <xs:complexType name="difficultyValue">
270      <xs:simpleContent>
271         <xs:extension base="voc:difficulty">
272            <xs:attributeGroup ref="ag:value"/>
273         </xs:extension>
274      </xs:simpleContent>
275   </xs:complexType>
276
277   <!-- 6.1 Cost -->
278   <xs:complexType name="costVocab">
279      <xs:choice minOccurs="0" maxOccurs="unbounded">
280         <xs:element name="source" type="sourceValue"/>
281         <xs:element name="value" type="costValue"/>
282         <xs:group ref="ex:customElements"/>
283      </xs:choice>
284   </xs:complexType>
285
286   <xs:complexType name="costValue">
287      <xs:simpleContent>
288         <xs:extension base="voc:cost">
289            <xs:attributeGroup ref="ag:value"/>
290         </xs:extension>
291      </xs:simpleContent>
292   </xs:complexType>
293
294   <!-- 6.2 Copyright and Other Restrictions -->
295   <xs:complexType name="copyrightAndOtherRestrictionsVocab">
296      <xs:choice minOccurs="0" maxOccurs="unbounded">
297         <xs:element name="source" type="sourceValue"/>
298         <xs:element name="value" type="copyrightAndOtherRestrictionsValue"/>
299         <xs:group ref="ex:customElements"/>
300      </xs:choice>
301   </xs:complexType>
302
303   <xs:complexType name="copyrightAndOtherRestrictionsValue">
304      <xs:simpleContent>
305         <xs:extension base="voc:copyrightAndOtherRestrictions">
306            <xs:attributeGroup ref="ag:value"/>
307         </xs:extension>
308      </xs:simpleContent>
309   </xs:complexType>
310
311   <!-- 7.1 Kind -->
312   <xs:complexType name="kindVocab">
313      <xs:choice minOccurs="0" maxOccurs="unbounded">
314         <xs:element name="source" type="sourceValue"/>
315         <xs:element name="value" type="kindValue"/>
316         <xs:group ref="ex:customElements"/>
317      </xs:choice>
318   </xs:complexType>
319
320   <xs:complexType name="kindValue">
321      <xs:simpleContent>
322         <xs:extension base="voc:kind">
323            <xs:attributeGroup ref="ag:value"/>
324         </xs:extension>
325      </xs:simpleContent>
326   </xs:complexType>
327
328   <!-- 9.1 Purpose -->
329   <xs:complexType name="purposeVocab">
330      <xs:choice minOccurs="0" maxOccurs="unbounded">
331         <xs:element name="source" type="sourceValue"/>
332         <xs:element name="value" type="purposeValue"/>
333         <xs:group ref="ex:customElements"/>
334      </xs:choice>
335   </xs:complexType>
336
337   <xs:complexType name="purposeValue">
338      <xs:simpleContent>
339         <xs:extension base="voc:purpose">
340            <xs:attributeGroup ref="ag:value"/>
341         </xs:extension>
342      </xs:simpleContent>
343   </xs:complexType>
344
345</xs:schema>
346