source: ZMS/trunk/import/lcms.metaobj.xml @ 827

Revision 827, 164.5 KB checked in by dnordmann, 2 years ago (diff)

Applied fix for ZMS eLC: initialization of LCMS client fails.

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<list>
3    <item type="dictionary">
4      <dictionary>
5        <item key="key"><![CDATA[SCORMexQExternal]]></item>
6        <item key="value" type="dictionary">
7          <dictionary>
8            <item key="__obj_attrs__" type="list">
9              <list>
10                <item type="dictionary">
11                  <dictionary>
12                    <item key="id"><![CDATA[titlealt]]></item>
13                    <item key="mandatory" type="int">1</item>
14                    <item key="multilang" type="int">1</item>
15                    <item key="name"><![CDATA[Title.Alt]]></item>
16                    <item key="repetitive" type="int">0</item>
17                    <item key="type"><![CDATA[string]]></item>
18                  </dictionary>
19                </item>
20                <item type="dictionary">
21                  <dictionary>
22                    <item key="id"><![CDATA[title]]></item>
23                    <item key="mandatory" type="int">1</item>
24                    <item key="multilang" type="int">1</item>
25                    <item key="name"><![CDATA[Title]]></item>
26                    <item key="repetitive" type="int">0</item>
27                    <item key="type"><![CDATA[string]]></item>
28                  </dictionary>
29                </item>
30                <item type="dictionary">
31                  <dictionary>
32                    <item key="custom">
33                      <data content_type="image/gif" filename="exam.gif" type="file">47494638396112001000f700000432bc7c828cc4c2c44c4e4c0c46bce4e2e46c8acc3c66bc94aad4c4f2fc94cafc2456bc346ad4bccae44c8afc7ca6f41c56ccd4e2f4acaeacf4f2ecccd6e46c6e6c849acccceafcfcfeecacb6cc547ed4547ac43c6ed4ccdaf4bcc6dc144ac42c5ec4245ecc6c86c4648edc3466cc94aadcb4b2b47c7e7ce4eaf4fcfafc9c9a9cc4cacc5c5a5c144eb4acd6fc1c56c484aeece4e6f4ecf2fc6c727c749ae43472e4ccdefc3c6ecc0c4abca4b2cc2c66e4c4d2e46c9af41456d4dce6f494a6c4ecf2f4d4deec747674fcfaf4a4bae4d4def42c62cc7492dc346acce4eefc949aa4245ac474b2fcfc02fcbcc2cc545254dce2ec5c86dc9caed49ccefc346adcc4cee44c8efc245accdce2f4acaeb4d4daec7472747c9ed4dceafcb4bacc5c7ec44472d4d4daf4c4cadc144ec43462c42c5ecc6c8edc9caedcbcbabceceef4fcfefccccacc646264acdefc2456c494aeec7c9ee43c72e4144abcf4f2f4fcfef43c6acc9c9ea47700002000f80000620000150000002000000000000000140000000c10850000f40e00f4000077a40000c30000d60000770000180000c200001200140000000000850000f40000f400007700f0a100c2f40012f40000770200087f0006000014000000283c08c2f9001212b200000000c601004300001800007e00788701c44300121800007e008d20784ad0c4d11b12777e00a44896c34939d614e577007702ed9e7f3a390018e5007e7760840cc4930012d1b20077000d601c09c339ded6e50c77772a3800048c00926c000000002371f804836200d11500770000ec0800d20000d1b2007700acd0010a04000059000000004000480000c4000012000000904f3cdb00f9140012000000002a3c1404f916921200000000c80900c3480012e70000770700380000300000e6000077a800ff0100ff1400ff0000fff8009e1300391600e5000077002ae20004e700924100000000c8b800c3ed00121400000000d0d90004570059e500007790b81c5ec3394412e5000077345dafc2a179d6d1d177777790002a5e000444009200000006820000000000000000000021f9040100004d002c00000000120010000708fb009b081c58248c968241062a248822859a872962145948f06182365314b8785864c5c2226a2e308101650296070e6ca829b246a18c2e0ea260484144cd90383564c4505291870e11693400e0a266440f1a6ac448105824091506655e401853450d982b375204a9c0b4430806248cbcc8a0860b04232080047922104b911724485c11a106c607232140cc29c2b64991216442900861c0c78d2b245e6c48516500d31425e4183152c74c19b438c4a050c286209d2f04c6fc5073640c010b6ab0b050319042173a165a1c38b3608194d433b62c74822545811c083c4c0012e144053414b3548910010b96085e586c314151a0800a4f06687f72626140003b</data>
34                    </item>
35                    <item key="id"><![CDATA[icon]]></item>
36                    <item key="mandatory" type="int">0</item>
37                    <item key="multilang" type="int">0</item>
38                    <item key="name"><![CDATA[Icon]]></item>
39                    <item key="repetitive" type="int">0</item>
40                    <item key="type"><![CDATA[resource]]></item>
41                  </dictionary>
42                </item>
43                <item type="dictionary">
44                  <dictionary>
45                    <item key="id"><![CDATA[attr_dc_description]]></item>
46                    <item key="mandatory" type="int">0</item>
47                    <item key="multilang" type="int">1</item>
48                    <item key="name"><![CDATA[DC.Description]]></item>
49                    <item key="repetitive" type="int">0</item>
50                    <item key="type"><![CDATA[text]]></item>
51                  </dictionary>
52                </item>
53                <item type="dictionary">
54                  <dictionary>
55                    <item key="id"><![CDATA[SCORM_Interaction_Set]]></item>
56                    <item key="mandatory" type="int">0</item>
57                    <item key="multilang" type="int">0</item>
58                    <item key="name"><![CDATA[SCORM Interaction-Set]]></item>
59                    <item key="repetitive" type="int">0</item>
60                    <item key="type"><![CDATA[delimiter]]></item>
61                  </dictionary>
62                </item>
63                <item type="dictionary">
64                  <dictionary>
65                    <item key="id"><![CDATA[url]]></item>
66                    <item key="mandatory" type="int">1</item>
67                    <item key="multilang" type="int">0</item>
68                    <item key="name"><![CDATA[URL]]></item>
69                    <item key="repetitive" type="int">0</item>
70                    <item key="type"><![CDATA[url]]></item>
71                  </dictionary>
72                </item>
73                <item type="dictionary">
74                  <dictionary>
75                    <item key="id"><![CDATA[dSCORMseq]]></item>
76                    <item key="mandatory" type="int">0</item>
77                    <item key="multilang" type="int">0</item>
78                    <item key="name"><![CDATA[Sequencing-Rules]]></item>
79                    <item key="repetitive" type="int">0</item>
80                    <item key="type"><![CDATA[delimiter]]></item>
81                  </dictionary>
82                </item>
83                <item type="dictionary">
84                  <dictionary>
85                    <item key="id"><![CDATA[SCORMseq]]></item>
86                    <item key="mandatory" type="int">0</item>
87                    <item key="multilang" type="int">0</item>
88                    <item key="name"><![CDATA[SCORM-Preconditions]]></item>
89                    <item key="repetitive" type="int">0</item>
90                    <item key="type"><![CDATA[SCORMseq]]></item>
91                  </dictionary>
92                </item>
93                <item type="dictionary">
94                  <dictionary>
95                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_SCORMexQExternal -->
96<!-- EO bodyContentZMSCustom_SCORMexQExternal -->]]>
97                    </item>
98                    <item key="id"><![CDATA[bodyContentZMSCustom_SCORMexQExternal]]></item>
99                    <item key="mandatory" type="int">0</item>
100                    <item key="multilang" type="int">0</item>
101                    <item key="name"><![CDATA[Template: Exam (External Link)]]></item>
102                    <item key="repetitive" type="int">0</item>
103                    <item key="type"><![CDATA[DTML Method]]></item>
104                  </dictionary>
105                </item>
106              </list>
107            </item>
108            <item key="enabled" type="int">1</item>
109            <item key="id"><![CDATA[SCORMexQExternal]]></item>
110            <item key="name"><![CDATA[Exam (External Link)]]></item>
111            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
112            <item key="revision"><![CDATA[0.0.0]]></item>
113            <item key="type"><![CDATA[ZMSDocument]]></item>
114          </dictionary>
115        </item>
116      </dictionary>
117    </item>
118    <item type="dictionary">
119      <dictionary>
120        <item key="key"><![CDATA[SCORMexQFlashMX]]></item>
121        <item key="value" type="dictionary">
122          <dictionary>
123            <item key="__obj_attrs__" type="list">
124              <list>
125                <item type="dictionary">
126                  <dictionary>
127                    <item key="id"><![CDATA[titlealt]]></item>
128                    <item key="mandatory" type="int">1</item>
129                    <item key="multilang" type="int">1</item>
130                    <item key="name"><![CDATA[Title.Alt]]></item>
131                    <item key="repetitive" type="int">0</item>
132                    <item key="type"><![CDATA[string]]></item>
133                  </dictionary>
134                </item>
135                <item type="dictionary">
136                  <dictionary>
137                    <item key="id"><![CDATA[title]]></item>
138                    <item key="mandatory" type="int">1</item>
139                    <item key="multilang" type="int">1</item>
140                    <item key="name"><![CDATA[Title]]></item>
141                    <item key="repetitive" type="int">0</item>
142                    <item key="type"><![CDATA[string]]></item>
143                  </dictionary>
144                </item>
145                <item type="dictionary">
146                  <dictionary>
147                    <item key="custom">
148                      <data content_type="image/gif" filename="exam.gif" type="file">47494638396112001000f700000432bc7c828cc4c2c44c4e4c0c46bce4e2e46c8acc3c66bc94aad4c4f2fc94cafc2456bc346ad4bccae44c8afc7ca6f41c56ccd4e2f4acaeacf4f2ecccd6e46c6e6c849acccceafcfcfeecacb6cc547ed4547ac43c6ed4ccdaf4bcc6dc144ac42c5ec4245ecc6c86c4648edc3466cc94aadcb4b2b47c7e7ce4eaf4fcfafc9c9a9cc4cacc5c5a5c144eb4acd6fc1c56c484aeece4e6f4ecf2fc6c727c749ae43472e4ccdefc3c6ecc0c4abca4b2cc2c66e4c4d2e46c9af41456d4dce6f494a6c4ecf2f4d4deec747674fcfaf4a4bae4d4def42c62cc7492dc346acce4eefc949aa4245ac474b2fcfc02fcbcc2cc545254dce2ec5c86dc9caed49ccefc346adcc4cee44c8efc245accdce2f4acaeb4d4daec7472747c9ed4dceafcb4bacc5c7ec44472d4d4daf4c4cadc144ec43462c42c5ecc6c8edc9caedcbcbabceceef4fcfefccccacc646264acdefc2456c494aeec7c9ee43c72e4144abcf4f2f4fcfef43c6acc9c9ea47700002000f80000620000150000002000000000000000140000000c10850000f40e00f4000077a40000c30000d60000770000180000c200001200140000000000850000f40000f400007700f0a100c2f40012f40000770200087f0006000014000000283c08c2f9001212b200000000c601004300001800007e00788701c44300121800007e008d20784ad0c4d11b12777e00a44896c34939d614e577007702ed9e7f3a390018e5007e7760840cc4930012d1b20077000d601c09c339ded6e50c77772a3800048c00926c000000002371f804836200d11500770000ec0800d20000d1b2007700acd0010a04000059000000004000480000c4000012000000904f3cdb00f9140012000000002a3c1404f916921200000000c80900c3480012e70000770700380000300000e6000077a800ff0100ff1400ff0000fff8009e1300391600e5000077002ae20004e700924100000000c8b800c3ed00121400000000d0d90004570059e500007790b81c5ec3394412e5000077345dafc2a179d6d1d177777790002a5e000444009200000006820000000000000000000021f9040100004d002c00000000120010000708fb009b081c58248c968241062a248822859a872962145948f06182365314b8785864c5c2226a2e308101650296070e6ca829b246a18c2e0ea260484144cd90383564c4505291870e11693400e0a266440f1a6ac448105824091506655e401853450d982b375204a9c0b4430806248cbcc8a0860b04232080047922104b911724485c11a106c607232140cc29c2b64991216442900861c0c78d2b245e6c48516500d31425e4183152c74c19b438c4a050c286209d2f04c6fc5073640c010b6ab0b050319042173a165a1c38b3608194d433b62c74822545811c083c4c0012e144053414b3548910010b96085e586c314151a0800a4f06687f72626140003b</data>
149                    </item>
150                    <item key="id"><![CDATA[icon]]></item>
151                    <item key="mandatory" type="int">0</item>
152                    <item key="multilang" type="int">0</item>
153                    <item key="name"><![CDATA[Icon]]></item>
154                    <item key="repetitive" type="int">0</item>
155                    <item key="type"><![CDATA[resource]]></item>
156                  </dictionary>
157                </item>
158                <item type="dictionary">
159                  <dictionary>
160                    <item key="id"><![CDATA[attr_dc_description]]></item>
161                    <item key="mandatory" type="int">0</item>
162                    <item key="multilang" type="int">1</item>
163                    <item key="name"><![CDATA[DC.Description]]></item>
164                    <item key="repetitive" type="int">0</item>
165                    <item key="type"><![CDATA[text]]></item>
166                  </dictionary>
167                </item>
168                <item type="dictionary">
169                  <dictionary>
170                    <item key="id"><![CDATA[SCORM_Interaction_Set]]></item>
171                    <item key="mandatory" type="int">0</item>
172                    <item key="multilang" type="int">0</item>
173                    <item key="name"><![CDATA[SCORM Interaction-Set]]></item>
174                    <item key="repetitive" type="int">0</item>
175                    <item key="type"><![CDATA[delimiter]]></item>
176                  </dictionary>
177                </item>
178                <item type="dictionary">
179                  <dictionary>
180                    <item key="id"><![CDATA[xqHtmlPage]]></item>
181                    <item key="mandatory" type="int">1</item>
182                    <item key="multilang" type="int">0</item>
183                    <item key="name"><![CDATA[Html]]></item>
184                    <item key="repetitive" type="int">0</item>
185                    <item key="type"><![CDATA[file]]></item>
186                  </dictionary>
187                </item>
188                <item type="dictionary">
189                  <dictionary>
190                    <item key="id"><![CDATA[xqFlashMX]]></item>
191                    <item key="mandatory" type="int">1</item>
192                    <item key="multilang" type="int">0</item>
193                    <item key="name"><![CDATA[FlashMX]]></item>
194                    <item key="repetitive" type="int">0</item>
195                    <item key="type"><![CDATA[file]]></item>
196                  </dictionary>
197                </item>
198                <item type="dictionary">
199                  <dictionary>
200                    <item key="id"><![CDATA[dSCORMseq]]></item>
201                    <item key="mandatory" type="int">0</item>
202                    <item key="multilang" type="int">0</item>
203                    <item key="name"><![CDATA[Sequencing-Rules]]></item>
204                    <item key="repetitive" type="int">0</item>
205                    <item key="type"><![CDATA[delimiter]]></item>
206                  </dictionary>
207                </item>
208                <item type="dictionary">
209                  <dictionary>
210                    <item key="id"><![CDATA[SCORMseq]]></item>
211                    <item key="mandatory" type="int">0</item>
212                    <item key="multilang" type="int">0</item>
213                    <item key="name"><![CDATA[SCORM-Preconditions]]></item>
214                    <item key="repetitive" type="int">0</item>
215                    <item key="type"><![CDATA[SCORMseq]]></item>
216                  </dictionary>
217                </item>
218                <item type="dictionary">
219                  <dictionary>
220                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_SCORMexQFlashMX -->
221
222<dtml-let actionId="'ACTION%s'%meta_id"
223          templateUrl="'%s/bodyContentZMSCustom_%s'%(absolute_url(),meta_id)">
224
225<dtml-call f_standard_html_request>
226
227<dtml-if "REQUEST.get(actionId,'')=='start_exam'">
228 <dtml-var "getObjProperty('xqHtmlPage',REQUEST).getData()">
229<dtml-else>
230 <dtml-call "RESPONSE.redirect(templateUrl+'?'+actionId+'=start_exam')">
231</dtml-if>
232
233</dtml-let>
234
235<!-- EO bodyContentZMSCustom_SCORMexQFlashMX -->]]>
236                    </item>
237                    <item key="id"><![CDATA[bodyContentZMSCustom_SCORMexQFlashMX]]></item>
238                    <item key="mandatory" type="int">0</item>
239                    <item key="multilang" type="int">0</item>
240                    <item key="name"><![CDATA[Template: Exam (FlashMX Upload)]]></item>
241                    <item key="repetitive" type="int">0</item>
242                    <item key="type"><![CDATA[DTML Method]]></item>
243                  </dictionary>
244                </item>
245              </list>
246            </item>
247            <item key="enabled" type="int">1</item>
248            <item key="id"><![CDATA[SCORMexQFlashMX]]></item>
249            <item key="name"><![CDATA[Exam (FlashMX Upload)]]></item>
250            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
251            <item key="revision"><![CDATA[0.0.0]]></item>
252            <item key="type"><![CDATA[ZMSDocument]]></item>
253          </dictionary>
254        </item>
255      </dictionary>
256    </item>
257    <item type="dictionary">
258      <dictionary>
259        <item key="key"><![CDATA[SCORMexQZMS]]></item>
260        <item key="value" type="dictionary">
261          <dictionary>
262            <item key="__obj_attrs__" type="list">
263              <list>
264                <item type="dictionary">
265                  <dictionary>
266                    <item key="id"><![CDATA[titlealt]]></item>
267                    <item key="mandatory" type="int">1</item>
268                    <item key="multilang" type="int">1</item>
269                    <item key="name"><![CDATA[Title.Alt]]></item>
270                    <item key="repetitive" type="int">0</item>
271                    <item key="type"><![CDATA[string]]></item>
272                  </dictionary>
273                </item>
274                <item type="dictionary">
275                  <dictionary>
276                    <item key="id"><![CDATA[title]]></item>
277                    <item key="mandatory" type="int">1</item>
278                    <item key="multilang" type="int">1</item>
279                    <item key="name"><![CDATA[Title]]></item>
280                    <item key="repetitive" type="int">0</item>
281                    <item key="type"><![CDATA[string]]></item>
282                  </dictionary>
283                </item>
284                <item type="dictionary">
285                  <dictionary>
286                    <item key="custom">
287                      <data content_type="image/gif" filename="exam.gif" type="file">47494638396112001000f700000432bc7c828cc4c2c44c4e4c0c46bce4e2e46c8acc3c66bc94aad4c4f2fc94cafc2456bc346ad4bccae44c8afc7ca6f41c56ccd4e2f4acaeacf4f2ecccd6e46c6e6c849acccceafcfcfeecacb6cc547ed4547ac43c6ed4ccdaf4bcc6dc144ac42c5ec4245ecc6c86c4648edc3466cc94aadcb4b2b47c7e7ce4eaf4fcfafc9c9a9cc4cacc5c5a5c144eb4acd6fc1c56c484aeece4e6f4ecf2fc6c727c749ae43472e4ccdefc3c6ecc0c4abca4b2cc2c66e4c4d2e46c9af41456d4dce6f494a6c4ecf2f4d4deec747674fcfaf4a4bae4d4def42c62cc7492dc346acce4eefc949aa4245ac474b2fcfc02fcbcc2cc545254dce2ec5c86dc9caed49ccefc346adcc4cee44c8efc245accdce2f4acaeb4d4daec7472747c9ed4dceafcb4bacc5c7ec44472d4d4daf4c4cadc144ec43462c42c5ecc6c8edc9caedcbcbabceceef4fcfefccccacc646264acdefc2456c494aeec7c9ee43c72e4144abcf4f2f4fcfef43c6acc9c9ea47700002000f80000620000150000002000000000000000140000000c10850000f40e00f4000077a40000c30000d60000770000180000c200001200140000000000850000f40000f400007700f0a100c2f40012f40000770200087f0006000014000000283c08c2f9001212b200000000c601004300001800007e00788701c44300121800007e008d20784ad0c4d11b12777e00a44896c34939d614e577007702ed9e7f3a390018e5007e7760840cc4930012d1b20077000d601c09c339ded6e50c77772a3800048c00926c000000002371f804836200d11500770000ec0800d20000d1b2007700acd0010a04000059000000004000480000c4000012000000904f3cdb00f9140012000000002a3c1404f916921200000000c80900c3480012e70000770700380000300000e6000077a800ff0100ff1400ff0000fff8009e1300391600e5000077002ae20004e700924100000000c8b800c3ed00121400000000d0d90004570059e500007790b81c5ec3394412e5000077345dafc2a179d6d1d177777790002a5e000444009200000006820000000000000000000021f9040100004d002c00000000120010000708fb009b081c58248c968241062a248822859a872962145948f06182365314b8785864c5c2226a2e308101650296070e6ca829b246a18c2e0ea260484144cd90383564c4505291870e11693400e0a266440f1a6ac448105824091506655e401853450d982b375204a9c0b4430806248cbcc8a0860b04232080047922104b911724485c11a106c607232140cc29c2b64991216442900861c0c78d2b245e6c48516500d31425e4183152c74c19b438c4a050c286209d2f04c6fc5073640c010b6ab0b050319042173a165a1c38b3608194d433b62c74822545811c083c4c0012e144053414b3548910010b96085e586c314151a0800a4f06687f72626140003b</data>
288                    </item>
289                    <item key="id"><![CDATA[icon]]></item>
290                    <item key="mandatory" type="int">0</item>
291                    <item key="multilang" type="int">0</item>
292                    <item key="name"><![CDATA[Icon]]></item>
293                    <item key="repetitive" type="int">0</item>
294                    <item key="type"><![CDATA[resource]]></item>
295                  </dictionary>
296                </item>
297                <item type="dictionary">
298                  <dictionary>
299                    <item key="id"><![CDATA[attr_dc_description]]></item>
300                    <item key="mandatory" type="int">0</item>
301                    <item key="multilang" type="int">1</item>
302                    <item key="name"><![CDATA[DC.Description]]></item>
303                    <item key="repetitive" type="int">0</item>
304                    <item key="type"><![CDATA[text]]></item>
305                  </dictionary>
306                </item>
307                <item type="dictionary">
308                  <dictionary>
309                    <item key="id"><![CDATA[learningresourcetype]]></item>
310                    <item key="keys" type="list">
311                      <list>
312                        <item><![CDATA[Exam]]></item>
313                        <item><![CDATA[Self Assessment]]></item>
314                      </list>
315                    </item>
316                    <item key="mandatory" type="int">1</item>
317                    <item key="multilang" type="int">0</item>
318                    <item key="name"><![CDATA[Type]]></item>
319                    <item key="repetitive" type="int">0</item>
320                    <item key="type"><![CDATA[select]]></item>
321                  </dictionary>
322                </item>
323                <item type="dictionary">
324                  <dictionary>
325                    <item key="default"><![CDATA[70]]></item>
326                    <item key="id"><![CDATA[score]]></item>
327                    <item key="mandatory" type="int">1</item>
328                    <item key="multilang" type="int">0</item>
329                    <item key="name"><![CDATA[Score to pass [%]]]></item>
330                    <item key="repetitive" type="int">0</item>
331                    <item key="type"><![CDATA[int]]></item>
332                  </dictionary>
333                </item>
334                <item type="dictionary">
335                  <dictionary>
336                    <item key="id"><![CDATA[SCORM_Interaction_Set]]></item>
337                    <item key="mandatory" type="int">0</item>
338                    <item key="multilang" type="int">0</item>
339                    <item key="name"><![CDATA[SCORM Interaction-Set]]></item>
340                    <item key="repetitive" type="int">0</item>
341                    <item key="type"><![CDATA[delimiter]]></item>
342                  </dictionary>
343                </item>
344                <item type="dictionary">
345                  <dictionary>
346                    <item key="id"><![CDATA[exQuestions]]></item>
347                    <item key="keys" type="list">
348                      <list>
349                        <item><![CDATA[examQFillBlank]]></item>
350                        <item><![CDATA[examQImageHotspot]]></item>
351                        <item><![CDATA[examQMultipleChoice]]></item>
352                        <item><![CDATA[examQTrueFalse]]></item>
353                        <item><![CDATA[examQExplanation]]></item>
354                      </list>
355                    </item>
356                    <item key="mandatory" type="int">0</item>
357                    <item key="multilang" type="int">0</item>
358                    <item key="name"><![CDATA[Questions]]></item>
359                    <item key="repetitive" type="int">1</item>
360                    <item key="type"><![CDATA[*]]></item>
361                  </dictionary>
362                </item>
363                <item type="dictionary">
364                  <dictionary>
365                    <item key="id"><![CDATA[Layout]]></item>
366                    <item key="mandatory" type="int">0</item>
367                    <item key="multilang" type="int">0</item>
368                    <item key="name"><![CDATA[Layout properties]]></item>
369                    <item key="repetitive" type="int">0</item>
370                    <item key="type"><![CDATA[delimiter]]></item>
371                  </dictionary>
372                </item>
373                <item type="dictionary">
374                  <dictionary>
375                    <item key="id"><![CDATA[layout_sco_single_page]]></item>
376                    <item key="mandatory" type="int">0</item>
377                    <item key="multilang" type="int">1</item>
378                    <item key="name"><![CDATA[Display each SCO on single page]]></item>
379                    <item key="repetitive" type="int">0</item>
380                    <item key="type"><![CDATA[boolean]]></item>
381                  </dictionary>
382                </item>
383                <item type="dictionary">
384                  <dictionary>
385                    <item key="id"><![CDATA[dSCORMseq]]></item>
386                    <item key="mandatory" type="int">0</item>
387                    <item key="multilang" type="int">0</item>
388                    <item key="name"><![CDATA[Sequencing-Rules]]></item>
389                    <item key="repetitive" type="int">0</item>
390                    <item key="type"><![CDATA[delimiter]]></item>
391                  </dictionary>
392                </item>
393                <item type="dictionary">
394                  <dictionary>
395                    <item key="id"><![CDATA[SCORMseq]]></item>
396                    <item key="mandatory" type="int">0</item>
397                    <item key="multilang" type="int">0</item>
398                    <item key="name"><![CDATA[SCORM-Preconditions]]></item>
399                    <item key="repetitive" type="int">0</item>
400                    <item key="type"><![CDATA[SCORMseq]]></item>
401                  </dictionary>
402                </item>
403                <item type="dictionary">
404                  <dictionary>
405                    <item key="custom"><![CDATA[<!--// BO scoSingleFrameset //-->
406<dtml-var f_standard_html_request>
407<html>
408 <head>
409  <script language="JavaScript">
410  <!--//
411    var rawScore = 0;
412  //-->
413  </script>
414  <title><dtml-var "getTitle(REQUEST)"></title>
415 </head>
416 <frameset rows="100,*" border="0" frameborder="0" framespacing="0">
417  <frame id="scoSingleFrameTop" name="scoSingleFrameTop" src="<dtml-var "REQUEST['templateUrl']">?<dtml-var actionId>=scoSingleFrameTop" scrolling="no">
418  <frame id="scoSingleFrameBottom" name="scoSingleFrameBottom" src="<dtml-var "REQUEST['templateUrl']">?<dtml-var actionId>=scoSingleFrameBottom" scrolling="yes">
419 </frameset>
420</html>
421<!--// EO scoSingleFrameset //-->]]>
422                    </item>
423                    <item key="id"><![CDATA[scoSingleFrameset]]></item>
424                    <item key="mandatory" type="int">0</item>
425                    <item key="multilang" type="int">0</item>
426                    <item key="name"><![CDATA[Frameset]]></item>
427                    <item key="repetitive" type="int">0</item>
428                    <item key="type"><![CDATA[method]]></item>
429                  </dictionary>
430                </item>
431                <item type="dictionary">
432                  <dictionary>
433                    <item key="custom"><![CDATA[<!--// BO scoSingleFrameTop //-->
434
435<dtml-var f_standard_html_request>
436<head>
437<dtml-var headCSS>
438<dtml-var headMeta>
439<dtml-var headScript>
440<dtml-var headScript_SCORM>
441</head>
442<dtml-var bodyTag>
443<dtml-var bodyTop>
444 <h1>
445  <dtml-var "getObjProperty('title',REQUEST)">
446 </h1>
447 <p>
448  Fragen:
449  <dtml-in "getObjChildren('exQuestions',REQUEST)">
450   [<a href="<dtml-var "url_append_params(REQUEST['URL'],{actionId:'scoSingleFrameBottom','cmiCurrInteractionNo:int':_['sequence-index']})">" target="scoSingleFrameBottom" class="navMicro"><dtml-var "_['sequence-index']+1"></a>]
451  </dtml-in>
452 </p>
453</body>
454</html>
455
456<!--// EO scoSingleFrameTop //-->]]>
457                    </item>
458                    <item key="id"><![CDATA[scoSingleFrameTop]]></item>
459                    <item key="mandatory" type="int">0</item>
460                    <item key="multilang" type="int">0</item>
461                    <item key="name"><![CDATA[Frame (Top)]]></item>
462                    <item key="repetitive" type="int">0</item>
463                    <item key="type"><![CDATA[method]]></item>
464                  </dictionary>
465                </item>
466                <item type="dictionary">
467                  <dictionary>
468                    <item key="custom"><![CDATA[<!--// BO scoSingleFrameBottom //-->
469
470<dtml-var f_standard_html_request>
471<head>
472<dtml-var headCSS>
473<dtml-var headMeta>
474<dtml-var headScript>
475<dtml-var headScript_SCORM>
476
477<script language="JavaScript">
478<!--//
479
480   var numQuestions = <dtml-var "len(getObjChildren('exQuestions',REQUEST))">;
481   var currQuestion = <dtml-var "REQUEST.get('cmiCurrInteractionNo',0)">;
482   var rawScore = window.parent.rawScore;
483   var actualScore = 0;
484
485   /**********************************************************************
486    * function calcRawScore():
487    *
488    * Gets the students answer to each of the questions. and checks if the
489    * students answers are correct and increments the rawScore value
490    **********************************************************************/
491   function calcRawScore()
492   {
493      <dtml-call "REQUEST.set('cmiInteractionNo',0)">
494      <dtml-in "getObjChildren('exQuestions',REQUEST)">
495       <dtml-if "_['sequence-index']==REQUEST.get('cmiCurrInteractionNo',0)">
496        <dtml-var "getObjProperty('js_calcRawScore',REQUEST)">
497       <dtml-else>
498        <dtml-call "REQUEST.set('s',getObjProperty('js_calcRawScore',REQUEST))">
499       </dtml-if>
500      </dtml-in>
501      window.parent.rawScore = rawScore;
502   }
503
504   /**********************************************************************
505    * calcScore():
506    **********************************************************************/
507   function calcScore()
508   {
509      calcRawScore();
510      // Finish exam.
511      if(currQuestion+1==numQuestions) {
512        exitPageStatus = true;
513        computeTime();  // the student has stopped here.
514        calcRawScore();
515        actualScore = ( rawScore / numQuestions ) * 100;
516        doSetValue( "cmi.score.raw", rawScore );
517        var mode = doGetValue( "cmi.mode" );
518        if ( mode != "review"  &&  mode != "browse" )
519        {
520          if ( actualScore < <dtml-var "getObjProperty('score',REQUEST)"> )
521          {
522            doSetValue( "cmi.success_status", "failed" );
523          }
524          else
525          {
526            doSetValue( "cmi.success_status", "passed" );
527          }
528          doSetValue( "cmi.completion_status", "completed" );
529          doSetValue( "cmi.exit", "" );
530        }
531        doCommit();
532        doTerminate();
533      }
534      // Display next question.
535      else {
536        doSetValue( "cmi.completion_status", "incomplete" );
537        window.location.href = "<dtml-var templateUrl>?<dtml-var actionId>=<dtml-var "REQUEST[actionId]">&cmiCurrInteractionNo:int=" + (currQuestion+1);
538      }
539   }
540
541//-->
542</script>
543
544</head>
545<body>
546
547<form name="examForm">
548<table cellspacing="8" cellpadding="0" border="0">
549<dtml-call "REQUEST.set('cmiInteractionNo',0)">
550<dtml-in "getObjChildren('exQuestions',REQUEST)">
551 <dtml-if "_['sequence-index']==REQUEST.get('cmiCurrInteractionNo',0)">
552 <tr>
553  <td>
554   <dtml-var "getBodyContent(REQUEST)"><br/>
555  </td>
556 </tr>
557 <dtml-else>
558  <dtml-call "REQUEST.set('s',getBodyContent(REQUEST))">
559 </dtml-if>
560</dtml-in>
561<tr>
562 <td>
563  <script language="JavaScript">
564  <!--//
565    var mode = doGetValue("cmi.mode");
566    if (mode=="normal") {
567      document.write("<hr size=\"1\">");
568      document.write("<input type=\"button\" class=\"buttonScorm\" value=\" <dtml-var "getLangStr('BTN_SUBMIT_ANSWERS',lang)"> \" onclick=\"calcScore()\">");
569      document.write("<br/>");
570    }
571    else if (mode=="browse") {
572      document.write("<hr size=\"1\">");
573      if ( currQuestion > 0)
574        document.write("[<a href=\"<dtml-var templateUrl>?<dtml-var actionId>=<dtml-var "REQUEST[actionId]">&cmiCurrInteractionNo:int="+(currQuestion-1)+"\"><dtml-var "getLangStr('ATTR_PREVIOUS',lang)"></a>]");
575      if ( currQuestion+1<numQuestions)
576        document.write("[<a href=\"<dtml-var templateUrl>?<dtml-var actionId>=<dtml-var "REQUEST[actionId]">&cmiCurrInteractionNo:int="+(currQuestion+1)+"\"><dtml-var "getLangStr('ATTR_NEXT',lang)"></a>]");
577      document.write("<br/>");
578    }
579  //-->
580  </script>
581 </td>
582</tr>
583</table>
584</form>
585
586</body>
587</html>
588
589<!--// EO scoSingleFrameBottom //-->]]>
590                    </item>
591                    <item key="id"><![CDATA[scoSingleFrameBottom]]></item>
592                    <item key="mandatory" type="int">0</item>
593                    <item key="multilang" type="int">0</item>
594                    <item key="name"><![CDATA[Frame (Bottom)]]></item>
595                    <item key="repetitive" type="int">0</item>
596                    <item key="type"><![CDATA[method]]></item>
597                  </dictionary>
598                </item>
599                <item type="dictionary">
600                  <dictionary>
601                    <item key="custom"><![CDATA[<!--// BO imsmanifestScore //-->
602
603<dtml-call "REQUEST.set('s_xml',[])">
604
605    <dtml-call "s_xml.append('<imsss:sequencing>\n')">
606    <dtml-call "s_xml.append('<imsss:objectives>\n')">
607    <dtml-call "s_xml.append('<imsss:primaryObjective')">
608    <dtml-call "s_xml.append(' objectiveID='+QUOT+id+'_primaryobj'+QUOT)">
609    <dtml-call "s_xml.append(' satisfiedByMeasure='+QUOT+'true'+QUOT)">
610    <dtml-call "s_xml.append('>\n')">
611    <dtml-call "s_xml.append('<imsss:minNormalizedMeasure>'+str(getObjProperty('score',REQUEST)/100.0)+'</imsss:minNormalizedMeasure>\n')">
612    <dtml-call "s_xml.append('</imsss:primaryObjective>\n')">
613    <dtml-call "s_xml.append('</imsss:objectives>\n')">
614    <dtml-call "s_xml.append('</imsss:sequencing>\n')">
615
616<dtml-call "REQUEST.set('s_xml',''.join(s_xml))">
617<dtml-return s_xml>
618
619<!--// EO imsmanifestScore //-->]]>
620                    </item>
621                    <item key="id"><![CDATA[imsmanifestScore]]></item>
622                    <item key="mandatory" type="int">0</item>
623                    <item key="multilang" type="int">0</item>
624                    <item key="name"><![CDATA[imsmanifest.score]]></item>
625                    <item key="repetitive" type="int">0</item>
626                    <item key="type"><![CDATA[method]]></item>
627                  </dictionary>
628                </item>
629                <item type="dictionary">
630                  <dictionary>
631                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_SCORMexQZMS -->
632
633<dtml-call "REQUEST.set('templateUrl','%s/bodyContentZMSCustom_%s'%(absolute_url(),meta_id))">
634<dtml-call "REQUEST.set('actionId','ACTION%s'%meta_id)">
635
636<!-- ### Display each Interaction on single page -->
637<dtml-if "getObjProperty('layout_sco_single_page', REQUEST)">
638 <dtml-if "REQUEST.get(actionId,'')==''">
639  <dtml-call "RESPONSE.redirect(url_append_params(templateUrl,{actionId:'scoSingleFrameset'}))">
640 <dtml-else>
641  <dtml-var "getObjProperty(REQUEST.get(actionId),REQUEST)">
642 </dtml-if>
643
644<!-- ### Display all Interactions on one page -->
645<dtml-else>
646
647<script language="JavaScript">
648<!--//
649
650   <dtml-call "REQUEST.set('cmiQuestionNo',0)">
651   <dtml-call "REQUEST.set('examFormSubmit',[])">
652   <dtml-in "getObjChildren('exQuestions',REQUEST)">
653    <dtml-let js_formSubmit="getObjProperty('js_formSubmit',REQUEST)">
654     <dtml-if js_formSubmit>
655      <dtml-call "examFormSubmit.append(js_formSubmit+'\n')">
656     </dtml-if>
657    </dtml-let>
658   </dtml-in>
659   <dtml-call "REQUEST.set('cmiQuestionNo',0)">
660   <dtml-call "REQUEST.set('calcRawScore',[])">
661   <dtml-in "getObjChildren('exQuestions',REQUEST)">
662    <dtml-let js_calcRawScore="getObjProperty('js_calcRawScore',REQUEST)">
663     <dtml-if js_calcRawScore>
664      <dtml-call "calcRawScore.append(js_calcRawScore+'\n')">
665     </dtml-if>
666    </dtml-let>
667   </dtml-in>
668
669   /**********************************************************************
670    * function examFormSubmit():
671    **********************************************************************/
672   function examFormSubmit()
673   {
674      // Include function formSubmit for every question of the exam.
675      var fmName = 'examForm';
676      var obj;
677      var msg;
678      <dtml-call "REQUEST.set('cmiInteractionNo',0)">
679      <dtml-var "''.join(examFormSubmit)">
680      return true;
681   }
682
683   var numQuestions = <dtml-var "len(calcRawScore)">;
684   var currQuestion = <dtml-if "REQUEST.get('cmiCurrInteractionNo')"><dtml-var "int(REQUEST.get('cmiCurrInteractionNo'))"><dtml-else>0</dtml-if>;
685   var rawScore = 0;
686   var actualScore = 0;
687
688   /**********************************************************************
689    * function calcRawScore():
690    *
691    * Gets the students answer to each of the questions. and checks if the
692    * students answers are correct and increments the rawScore value
693    **********************************************************************/
694   function calcRawScore()
695   {
696      // Include function calcRawScore for every question of the exam.
697      <dtml-call "REQUEST.set('cmiInteractionNo',0)">
698      <dtml-var "''.join(calcRawScore)">
699   }
700
701   /**********************************************************************
702    * calcScore():
703    **********************************************************************/
704   function calcScore()
705   {
706        exitPageStatus = true;
707        computeTime();  // the student has stopped here.
708        calcRawScore();
709        actualScore = ( rawScore / numQuestions ) * 100;
710        doSetValue( "cmi.score.raw", rawScore );
711        var mode = doGetValue( "cmi.mode" );
712        if ( mode != "review"  &&  mode != "browse" )
713        {
714          if ( actualScore < <dtml-var "getObjProperty('score',REQUEST)"> )
715          {
716            doSetValue( "cmi.success_status", "failed" );
717          }
718          else
719          {
720            doSetValue( "cmi.success_status", "passed" );
721          }
722          doSetValue( "cmi.completion_status", "completed" );
723          doSetValue( "cmi.exit", "" );
724        }
725        doCommit();
726        doTerminate();
727   }
728
729//-->
730</script>
731<h1 class="title"><dtml-var "getObjProperty('title',REQUEST)"></h1>
732
733  <script language="JavaScript">
734  <!--//
735    var mode = doGetValue("cmi.mode");
736    if (mode=="normal")
737    {
738<dtml-comment> 
739<!-- Fox: JavaScript zur Anzeige feedback_text falls cmi.Mode==normal -->
740<!-- Bei Kombi DTML innerhalb von JavaScript muss Textattribut zeilenweise herausgelesen und geschrieben werden. -->
741<!-- Und: Bei Verwendung von HTML duerfen nur 'Single Quotes' benutzt werden! -->
742</dtml-comment>
743        <dtml-if "getObjProperty('attr_dc_description',REQUEST)">
744                document.write("<p class=\"description\">");
745                                <dtml-in "string_list(getObjProperty('attr_dc_description',REQUEST))">
746                                        document.write("<dtml-var sequence-item><br />\n");
747                                </dtml-in>
748                document.write("</p>");
749        </dtml-if>
750    }
751    else
752    {
753                        <dtml-if "getObjProperty('feedback_text',REQUEST)">
754        document.write("<p>");
755                                <dtml-in "string_list(getObjProperty('feedback_text',REQUEST))">
756                                        document.write("<dtml-var sequence-item><br />\n");
757                                </dtml-in>
758                document.write("</p>");
759        </dtml-if>
760    }
761  //-->
762  </script>
763<form name="examForm">
764<table cellspacing="8" cellpadding="0" border="0">
765<dtml-call "REQUEST.set('cmiInteractionNo',0)">
766<dtml-in "getObjChildren('exQuestions',REQUEST)">
767 <tr>
768  <td>
769   <dtml-var "getBodyContent(REQUEST)"><br/>
770  </td>
771 </tr>
772</dtml-in>
773<tr>
774 <td>
775  <script language="JavaScript">
776  <!--//
777    document.write("<hr size=\"1\"/>");
778    var mode = doGetValue("cmi.mode");
779    if (mode=="normal") {
780      document.write("<input type=\"button\" class=\"buttonScorm\" value=\" <dtml-var "getLangStr('BTN_SUBMIT_ANSWERS',lang)"> \" onclick=\"if (examFormSubmit()) calcScore()\">");
781    }
782    else {
783      document.write("<input type=\"button\" class=\"buttonScorm\" value=\"  <dtml-var "getLangStr('BTN_CONTINUE',lang)">  \" onclick=\"doContinue('completed')\">");
784    }
785  //-->
786  </script>
787 </td>
788</tr>
789</table>
790</form>
791
792</dtml-if>
793
794<!-- EO bodyContentZMSCustom_SCORMexQZMS -->]]>
795                    </item>
796                    <item key="id"><![CDATA[bodyContentZMSCustom_SCORMexQZMS]]></item>
797                    <item key="mandatory" type="int">0</item>
798                    <item key="multilang" type="int">0</item>
799                    <item key="name"><![CDATA[Template: Exam (ZMS Generated)]]></item>
800                    <item key="repetitive" type="int">0</item>
801                    <item key="type"><![CDATA[DTML Method]]></item>
802                  </dictionary>
803                </item>
804              </list>
805            </item>
806            <item key="enabled" type="int">1</item>
807            <item key="id"><![CDATA[SCORMexQZMS]]></item>
808            <item key="name"><![CDATA[Exam (ZMS Generated)]]></item>
809            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
810            <item key="revision"><![CDATA[0.0.0]]></item>
811            <item key="type"><![CDATA[ZMSDocument]]></item>
812          </dictionary>
813        </item>
814      </dictionary>
815    </item>
816    <item type="dictionary">
817      <dictionary>
818        <item key="key"><![CDATA[SCORMmetaset]]></item>
819        <item key="value" type="dictionary">
820          <dictionary>
821            <item key="__obj_attrs__" type="list">
822              <list>
823                <item type="dictionary">
824                  <dictionary>
825                    <item key="id"><![CDATA[SCORM_General]]></item>
826                    <item key="mandatory" type="int">0</item>
827                    <item key="multilang" type="int">0</item>
828                    <item key="name"><![CDATA[General]]></item>
829                    <item key="repetitive" type="int">0</item>
830                    <item key="type"><![CDATA[delimiter]]></item>
831                  </dictionary>
832                </item>
833                <item type="dictionary">
834                  <dictionary>
835                    <item key="id"><![CDATA[SCORM_General_Title]]></item>
836                    <item key="mandatory" type="int">0</item>
837                    <item key="multilang" type="int">1</item>
838                    <item key="name"><![CDATA[Title]]></item>
839                    <item key="repetitive" type="int">0</item>
840                    <item key="type"><![CDATA[string]]></item>
841                  </dictionary>
842                </item>
843                <item type="dictionary">
844                  <dictionary>
845                    <item key="id"><![CDATA[SCORM_General_Description]]></item>
846                    <item key="mandatory" type="int">0</item>
847                    <item key="multilang" type="int">1</item>
848                    <item key="name"><![CDATA[Description]]></item>
849                    <item key="repetitive" type="int">0</item>
850                    <item key="type"><![CDATA[text]]></item>
851                  </dictionary>
852                </item>
853                <item type="dictionary">
854                  <dictionary>
855                    <item key="id"><![CDATA[SCORM_General_Keyword]]></item>
856                    <item key="mandatory" type="int">0</item>
857                    <item key="multilang" type="int">1</item>
858                    <item key="name"><![CDATA[Keyword]]></item>
859                    <item key="repetitive" type="int">0</item>
860                    <item key="type"><![CDATA[string]]></item>
861                  </dictionary>
862                </item>
863                <item type="dictionary">
864                  <dictionary>
865                    <item key="id"><![CDATA[SCORM_General_Identifier_Catalog]]></item>
866                    <item key="mandatory" type="int">0</item>
867                    <item key="multilang" type="int">1</item>
868                    <item key="name"><![CDATA[ID-Catalog]]></item>
869                    <item key="repetitive" type="int">0</item>
870                    <item key="type"><![CDATA[string]]></item>
871                  </dictionary>
872                </item>
873                <item type="dictionary">
874                  <dictionary>
875                    <item key="id"><![CDATA[SCORM_General_Identifier_Entry]]></item>
876                    <item key="mandatory" type="int">0</item>
877                    <item key="multilang" type="int">1</item>
878                    <item key="name"><![CDATA[ID-Entry]]></item>
879                    <item key="repetitive" type="int">0</item>
880                    <item key="type"><![CDATA[string]]></item>
881                  </dictionary>
882                </item>
883                <item type="dictionary">
884                  <dictionary>
885                    <item key="id"><![CDATA[SCORM_Lifecycle]]></item>
886                    <item key="mandatory" type="int">0</item>
887                    <item key="multilang" type="int">0</item>
888                    <item key="name"><![CDATA[Lifecyle]]></item>
889                    <item key="repetitive" type="int">0</item>
890                    <item key="type"><![CDATA[delimiter]]></item>
891                  </dictionary>
892                </item>
893                <item type="dictionary">
894                  <dictionary>
895                    <item key="id"><![CDATA[SCORM_Lifecycle_Version]]></item>
896                    <item key="mandatory" type="int">0</item>
897                    <item key="multilang" type="int">1</item>
898                    <item key="name"><![CDATA[Version]]></item>
899                    <item key="repetitive" type="int">0</item>
900                    <item key="type"><![CDATA[string]]></item>
901                  </dictionary>
902                </item>
903                <item type="dictionary">
904                  <dictionary>
905                    <item key="id"><![CDATA[SCORM_Lifecycle_Status]]></item>
906                    <item key="mandatory" type="int">0</item>
907                    <item key="multilang" type="int">1</item>
908                    <item key="name"><![CDATA[Status]]></item>
909                    <item key="repetitive" type="int">0</item>
910                    <item key="type"><![CDATA[string]]></item>
911                  </dictionary>
912                </item>
913                <item type="dictionary">
914                  <dictionary>
915                    <item key="id"><![CDATA[SCORM_Metametadata]]></item>
916                    <item key="mandatory" type="int">0</item>
917                    <item key="multilang" type="int">0</item>
918                    <item key="name"><![CDATA[Metametadata]]></item>
919                    <item key="repetitive" type="int">0</item>
920                    <item key="type"><![CDATA[delimiter]]></item>
921                  </dictionary>
922                </item>
923                <item type="dictionary">
924                  <dictionary>
925                    <item key="id"><![CDATA[SCORM_Metametadata_Identifier_Catalog]]></item>
926                    <item key="mandatory" type="int">0</item>
927                    <item key="multilang" type="int">0</item>
928                    <item key="name"><![CDATA[ID-Catalog]]></item>
929                    <item key="repetitive" type="int">0</item>
930                    <item key="type"><![CDATA[string]]></item>
931                  </dictionary>
932                </item>
933                <item type="dictionary">
934                  <dictionary>
935                    <item key="id"><![CDATA[SCORM_Metametadata_Identifier_Entry]]></item>
936                    <item key="mandatory" type="int">0</item>
937                    <item key="multilang" type="int">0</item>
938                    <item key="name"><![CDATA[ID-Entry]]></item>
939                    <item key="repetitive" type="int">0</item>
940                    <item key="type"><![CDATA[string]]></item>
941                  </dictionary>
942                </item>
943                <item type="dictionary">
944                  <dictionary>
945                    <item key="id"><![CDATA[SCORM_Metametadata_Scheme]]></item>
946                    <item key="mandatory" type="int">0</item>
947                    <item key="multilang" type="int">0</item>
948                    <item key="name"><![CDATA[Scheme]]></item>
949                    <item key="repetitive" type="int">0</item>
950                    <item key="type"><![CDATA[string]]></item>
951                  </dictionary>
952                </item>
953                <item type="dictionary">
954                  <dictionary>
955                    <item key="id"><![CDATA[SCORM_Technical_Format]]></item>
956                    <item key="mandatory" type="int">0</item>
957                    <item key="multilang" type="int">1</item>
958                    <item key="name"><![CDATA[Format]]></item>
959                    <item key="repetitive" type="int">0</item>
960                    <item key="type"><![CDATA[string]]></item>
961                  </dictionary>
962                </item>
963                <item type="dictionary">
964                  <dictionary>
965                    <item key="id"><![CDATA[SCORM_Technical_Location]]></item>
966                    <item key="mandatory" type="int">0</item>
967                    <item key="multilang" type="int">1</item>
968                    <item key="name"><![CDATA[Location/DOI]]></item>
969                    <item key="repetitive" type="int">0</item>
970                    <item key="type"><![CDATA[string]]></item>
971                  </dictionary>
972                </item>
973                <item type="dictionary">
974                  <dictionary>
975                    <item key="id"><![CDATA[SCORM_Rights]]></item>
976                    <item key="mandatory" type="int">0</item>
977                    <item key="multilang" type="int">0</item>
978                    <item key="name"><![CDATA[Rights]]></item>
979                    <item key="repetitive" type="int">0</item>
980                    <item key="type"><![CDATA[delimiter]]></item>
981                  </dictionary>
982                </item>
983                <item type="dictionary">
984                  <dictionary>
985                    <item key="id"><![CDATA[SCORM_Rights_Cost]]></item>
986                    <item key="keys" type="list">
987                      <list>
988                        <item><![CDATA[no]]></item>
989                        <item><![CDATA[yes]]></item>
990                      </list>
991                    </item>
992                    <item key="mandatory" type="int">0</item>
993                    <item key="multilang" type="int">1</item>
994                    <item key="name"><![CDATA[Cost]]></item>
995                    <item key="repetitive" type="int">0</item>
996                    <item key="type"><![CDATA[select]]></item>
997                  </dictionary>
998                </item>
999                <item type="dictionary">
1000                  <dictionary>
1001                    <item key="id"><![CDATA[SCORM_Rights_Copyright]]></item>
1002                    <item key="keys" type="list">
1003                      <list>
1004                        <item><![CDATA[no]]></item>
1005                        <item><![CDATA[yes]]></item>
1006                      </list>
1007                    </item>
1008                    <item key="mandatory" type="int">0</item>
1009                    <item key="multilang" type="int">1</item>
1010                    <item key="name"><![CDATA[Copyright]]></item>
1011                    <item key="repetitive" type="int">0</item>
1012                    <item key="type"><![CDATA[select]]></item>
1013                  </dictionary>
1014                </item>
1015                <item type="dictionary">
1016                  <dictionary>
1017                    <item key="id"><![CDATA[SCORM_Classification]]></item>
1018                    <item key="mandatory" type="int">0</item>
1019                    <item key="multilang" type="int">0</item>
1020                    <item key="name"><![CDATA[Classification]]></item>
1021                    <item key="repetitive" type="int">0</item>
1022                    <item key="type"><![CDATA[delimiter]]></item>
1023                  </dictionary>
1024                </item>
1025                <item type="dictionary">
1026                  <dictionary>
1027                    <item key="id"><![CDATA[SCORM_Classification_Purpose]]></item>
1028                    <item key="keys" type="list">
1029                      <list>
1030                        <item><![CDATA[discipline]]></item>
1031                        <item><![CDATA[idea]]></item>
1032                        <item><![CDATA[prerequisite]]></item>
1033                        <item><![CDATA[educational objective]]></item>
1034                        <item><![CDATA[accessibility]]></item>
1035                        <item><![CDATA[restrictions]]></item>
1036                        <item><![CDATA[educational level]]></item>
1037                        <item><![CDATA[skill level]]></item>
1038                        <item><![CDATA[security level]]></item>
1039                        <item><![CDATA[competency]]></item>
1040                      </list>
1041                    </item>
1042                    <item key="mandatory" type="int">0</item>
1043                    <item key="multilang" type="int">1</item>
1044                    <item key="name"><![CDATA[Purpose]]></item>
1045                    <item key="repetitive" type="int">0</item>
1046                    <item key="type"><![CDATA[select]]></item>
1047                  </dictionary>
1048                </item>
1049                <item type="dictionary">
1050                  <dictionary>
1051                    <item key="id"><![CDATA[SCORM_Classification_Description]]></item>
1052                    <item key="mandatory" type="int">0</item>
1053                    <item key="multilang" type="int">1</item>
1054                    <item key="name"><![CDATA[Description]]></item>
1055                    <item key="repetitive" type="int">0</item>
1056                    <item key="type"><![CDATA[text]]></item>
1057                  </dictionary>
1058                </item>
1059                <item type="dictionary">
1060                  <dictionary>
1061                    <item key="id"><![CDATA[SCORM_Classification_Keyword]]></item>
1062                    <item key="mandatory" type="int">0</item>
1063                    <item key="multilang" type="int">1</item>
1064                    <item key="name"><![CDATA[Keyword]]></item>
1065                    <item key="repetitive" type="int">0</item>
1066                    <item key="type"><![CDATA[string]]></item>
1067                  </dictionary>
1068                </item>
1069                <item type="dictionary">
1070                  <dictionary>
1071                    <item key="custom"><![CDATA[<!--// BO imsmanifest.xml ( DTML Method )  //-->
1072
1073<dtml-call "RESPONSE.setHeader('Content-Type','text/xml')">
1074<dtml-call "RESPONSE.setHeader('Content-Disposition','inline;filename=imsmanifest.xml')">
1075<dtml-return "getIMSManifest(REQUEST)">
1076
1077<!--// EO imsmanifest.xml ( DTML Method )  //-->]]>
1078                    </item>
1079                    <item key="id"><![CDATA[imsmanifest.xml]]></item>
1080                    <item key="mandatory" type="int">0</item>
1081                    <item key="multilang" type="int">0</item>
1082                    <item key="name"><![CDATA[Template: SCORM IMS Manifest XML]]></item>
1083                    <item key="repetitive" type="int">0</item>
1084                    <item key="type"><![CDATA[DTML Method]]></item>
1085                  </dictionary>
1086                </item>
1087                <item type="dictionary">
1088                  <dictionary>
1089                    <item key="custom"><![CDATA[<?xml version = "1.0"?>
1090<xs:schema targetNamespace = "http://www.adlnet.org/xsd/adlcp_v1p3"
1091           xmlns:xs = "http://www.w3.org/2001/XMLSchema"
1092           xmlns = "http://www.adlnet.org/xsd/adlcp_v1p3"
1093           elementFormDefault = "qualified"
1094           version = "1.0">
1095
1096   <xs:annotation>
1097      <xs:documentation>
1098          This file represents the W3C XML Schema Language Binding of the ADL namespaced elements for content packaging extensions.
1099      </xs:documentation>
1100   </xs:annotation>
1101
1102   <!-- *********************** -->
1103   <!-- ** Change History ** -->
1104   <!-- *********************** -->
1105   <xs:annotation>
1106      <xs:documentation>
1107      *************************************************************************
1108      *                           Change History                              *
1109      *************************************************************************
1110      2003-18-09  Initial creation.
1111      2003-19-09  Removed the restriction of the 255 character maximum length
1112                  on the dataFromLMS
1113      2004-01-06  Added completionThreshold to the ADL CP namespace
1114      2004-23-01  Final edits in preparation for release
1115      *************************************************************************
1116      </xs:documentation>
1117   </xs:annotation>
1118
1119   <xs:element name = "location" type = "locationType"/>
1120   <xs:element name = "dataFromLMS" type = "dataFromLMSType"/>
1121   <xs:element name = "timeLimitAction" type = "timeLimitActionType"/>
1122   <xs:element name = "completionThreshold" type = "completionThresholdType" />
1123
1124   <!-- ADL Extension to the IMS Content Packaging XSD -->
1125   <xs:attribute name = "scormType">
1126      <xs:simpleType>
1127         <xs:restriction base = "xs:string">
1128            <xs:enumeration value = "sco"/>
1129            <xs:enumeration value = "asset"/>
1130         </xs:restriction>
1131      </xs:simpleType>
1132   </xs:attribute>
1133
1134   <xs:attribute name = "persistState" default = "false" type = "xs:boolean" />
1135
1136   <xs:simpleType name = "locationType">
1137      <xs:restriction base = "xs:string"/>
1138   </xs:simpleType>
1139
1140   <xs:simpleType name = "dataFromLMSType">
1141      <xs:restriction base = "xs:string"/>
1142   </xs:simpleType>
1143
1144   <xs:simpleType name = "timeLimitActionType">
1145      <xs:restriction base = "xs:string">
1146         <xs:enumeration value = "exit,message"/>
1147         <xs:enumeration value = "exit,no message"/>
1148         <xs:enumeration value = "continue,message"/>
1149         <xs:enumeration value = "continue,no message"/>
1150      </xs:restriction>
1151   </xs:simpleType>
1152
1153   <xs:simpleType name = "completionThresholdType">
1154       <xs:restriction base = "xs:decimal">
1155          <xs:minInclusive value = "0.0"/>
1156          <xs:maxInclusive value = "1.0"/>
1157       </xs:restriction>
1158   </xs:simpleType>
1159
1160</xs:schema>]]>
1161                    </item>
1162                    <item key="id"><![CDATA[adlcp_v1p3.xsd]]></item>
1163                    <item key="mandatory" type="int">0</item>
1164                    <item key="multilang" type="int">0</item>
1165                    <item key="name"><![CDATA[Template: SCORM Schema]]></item>
1166                    <item key="repetitive" type="int">0</item>
1167                    <item key="type"><![CDATA[DTML Method]]></item>
1168                  </dictionary>
1169                </item>
1170                <item type="dictionary">
1171                  <dictionary>
1172                    <item key="custom"><![CDATA[<?xml version = "1.0" encoding = "UTF-8"?>
1173<!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
1174<xsd:schema xmlns = "http://www.imsglobal.org/xsd/imscp_v1p1"
1175         targetNamespace = "http://www.imsglobal.org/xsd/imscp_v1p1"
1176         xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
1177         version = "IMS CP 1.1.3"
1178         elementFormDefault = "unqualified">
1179        <xsd:import namespace = "http://www.w3.org/XML/1998/namespace" schemaLocation = "http://www.w3.org/2001/03/xml.xsd"/>
1180        <xsd:annotation>
1181                <xsd:documentation xml:lang = "en">DRAFT XSD for IMS Content Packaging version 1.1 DRAFT                </xsd:documentation>
1182                <xsd:documentation> Copyright (c) 2001 IMS GLC, Inc.                                                    </xsd:documentation>
1183                <xsd:documentation>2000-04-21, Adjustments by T.D. Wason from CP 1.0.                                   </xsd:documentation>
1184                <xsd:documentation>2001-02-22, T.D.Wason: Modify for 2000-10-24 XML-Schema version.                     </xsd:documentation>
1185                <xsd:documentation> Modified to support extension.                                                      </xsd:documentation>
1186                <xsd:documentation>2001-03-12, T.D.Wason: Change filename, target and meta-data namespaces              </xsd:documentation>
1187                <xsd:documentation> and meta-data filename.                                                             </xsd:documentation>
1188                <xsd:documentation> Add meta-data to itemType, fileType and organizationType.                           </xsd:documentation>
1189                <xsd:documentation> Do not define namespaces for xml in XML instances generated from this xsd.          </xsd:documentation>
1190                <xsd:documentation> Imports IMS meta-data xsd, lower case element names.                                </xsd:documentation>
1191                <xsd:documentation> This XSD provides a reference to the IMS meta-data root element as imsmd:record     </xsd:documentation>
1192                <xsd:documentation> If the IMS meta-data is to be used in the XML instance then the instance            </xsd:documentation>
1193                <xsd:documentation> must definean IMS meta-data prefix with a namespace.                                </xsd:documentation>
1194                <xsd:documentation> The meta-data targetNamespace should be used.                                       </xsd:documentation>
1195                <xsd:documentation>2001-03-20, Thor Anderson: Remove manifestref, change resourceref back to            </xsd:documentation>
1196                <xsd:documentation> identifierref, change manifest back to contained by manifest.                       </xsd:documentation>
1197                <xsd:documentation> --Tom Wason: manifest may contain _none_ or more manifests.                         </xsd:documentation>
1198                <xsd:documentation>2001-04-13 Tom Wason: corrected attirbute name structure.  Was misnamed type.        </xsd:documentation>
1199                <xsd:documentation>2001-05-14 Schawn Thropp: Made all complexType extensible with the group.any         </xsd:documentation>
1200                <xsd:documentation> Added the anyAttribute to all complexTypes.                                         </xsd:documentation>
1201                <xsd:documentation> Changed the href attribute on the fileType and resourceType to xsd:string           </xsd:documentation>
1202                <xsd:documentation> Changed the maxLength of the href, identifierref, parameters, structure             </xsd:documentation>
1203                <xsd:documentation> attributes to match the Information model.                                          </xsd:documentation>
1204                <xsd:documentation>2001-07-25 Schawn Thropp: Changed the namespace for the Schema of Schemas to         </xsd:documentation>
1205                <xsd:documentation> the 5/2/2001 W3C XML Schema Recommendation.                                         </xsd:documentation>
1206                <xsd:documentation> attributeGroup attr.imsmd deleted, was not used anywhere.                           </xsd:documentation>
1207                <xsd:documentation> Any attribute declarations that have use = "default"                                </xsd:documentation>
1208                <xsd:documentation> changed to use="optional" - attr.structure.req.                                     </xsd:documentation>
1209                <xsd:documentation> Any attribute declarations that have value="somevalue" changed to                   </xsd:documentation>
1210                <xsd:documentation> default="somevalue" - attr.structure.req (hierarchical).                            </xsd:documentation>
1211                <xsd:documentation> Removed references to IMS MD Version 1.1.                                           </xsd:documentation>
1212                <xsd:documentation> Modified attribute group "attr.resourcetype.req" to change use from optional        </xsd:documentation>
1213                <xsd:documentation> to required to match the information model.  As a result the default value          </xsd:documentation>
1214                <xsd:documentation> also needed to be removed                                                           </xsd:documentation>
1215                <xsd:documentation> Name change for XSD.  Changed to match version of CP Spec                           </xsd:documentation>
1216                <xsd:documentation> 2001-11-04 Chris Moffatt:                                                           </xsd:documentation>
1217                <xsd:documentation>  1. Refer to the xml namespace using the "x" abbreviation instead of "xml".         </xsd:documentation>
1218                <xsd:documentation>     This changes enables the schema to work with commercial XML Tools               </xsd:documentation>
1219                <xsd:documentation>  2. Revert to original IMS CP version 1.1 namespace.                                </xsd:documentation>
1220                <xsd:documentation>     i.e. "http://www.imsglobal.org/xsd/imscp_v1p1"                                  </xsd:documentation>
1221                <xsd:documentation>     This change done to support the decision to only change the XML namespace with  </xsd:documentation>
1222                <xsd:documentation>     major revisions of the specification i.e. where the information model or binding</xsd:documentation>
1223                <xsd:documentation>     changes (as opposed to addressing bugs or omissions). A stable namespace is     </xsd:documentation>
1224                <xsd:documentation>     necessary to the increasing number of implementors.                             </xsd:documentation>
1225                <xsd:documentation>  3. Changed name of schema file to "imscp_v1p1p3.xsd" and                           </xsd:documentation>
1226                <xsd:documentation>     version attribute to "IMS CP 1.1.3" to reflect minor version change             </xsd:documentation>
1227                <xsd:documentation>Inclusions and Imports                                                               </xsd:documentation>
1228                <xsd:documentation>Attribute Declarations                                                               </xsd:documentation>
1229                <xsd:documentation>element groups                                                                       </xsd:documentation>
1230                <xsd:documentation>                                                                                     
1231               
1232                </xsd:documentation>
1233                <xsd:documentation>2003-03-21 Schawn Thropp                                                             </xsd:documentation>
1234                <xsd:documentation>The following updates were made to the Version 1.1.3 "Public Draft" version:         </xsd:documentation>
1235                <xsd:documentation>  1. Updated name of schema file (imscp_v1p1.xsd) to match to IMS naming guideance   </xsd:documentation>
1236                <xsd:documentation>  2. Updated the import statement to reference the xml.xsd found at                  </xsd:documentation>
1237                <xsd:documentation>       "http://www.w3.org/2001/03/xml.xsd".  This is the current W3C schema          </xsd:documentation>
1238                <xsd:documentation>        recommended by the W3C to reference.                                         </xsd:documentation>
1239                <xsd:documentation>  3. Removed all maxLength's facets.  The maxLength facets was an incorrect binding  </xsd:documentation>
1240                <xsd:documentation>     implementation.  These lengths were supposed, according to the information      </xsd:documentation>
1241                <xsd:documentation>     model, to be treated as smallest permitted maximums.                            </xsd:documentation>
1242                <xsd:documentation>  4. Added the variations content model to support the addition in the information   </xsd:documentation>
1243                <xsd:documentation>     model.                                                                          </xsd:documentation>
1244        </xsd:annotation>
1245        <xsd:group name = "grp.any">
1246                <xsd:annotation>
1247                        <xsd:documentation>Any namespaced element from any namespace may be included within an "any" element.  The namespace for the imported element must be defined in the instance, and the schema must be imported.  </xsd:documentation>
1248                </xsd:annotation>
1249                <xsd:sequence>
1250                        <xsd:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded"/>
1251                </xsd:sequence>
1252        </xsd:group>
1253        <xsd:attributeGroup name = "attr.version">
1254                <xsd:attribute name = "version" type = "xsd:string"/>
1255        </xsd:attributeGroup>
1256        <xsd:attributeGroup name = "attr.structure.req">
1257                <xsd:attribute name = "structure" default = "hierarchical" type = "xsd:string"/>
1258        </xsd:attributeGroup>
1259        <xsd:attributeGroup name = "attr.resourcetype.req">
1260                <xsd:attribute name = "type" use = "required" type = "xsd:string"/>
1261        </xsd:attributeGroup>
1262        <xsd:attributeGroup name = "attr.identifierref.req">
1263                <xsd:attribute name = "identifierref" use = "required" type = "xsd:string"/>
1264        </xsd:attributeGroup>
1265        <xsd:attributeGroup name = "attr.identifierref">
1266                <xsd:attribute name = "identifierref" type = "xsd:string"/>
1267        </xsd:attributeGroup>
1268        <xsd:attributeGroup name = "attr.parameters">
1269                <xsd:attribute name = "parameters" type = "xsd:string"/>
1270        </xsd:attributeGroup>
1271        <xsd:attributeGroup name = "attr.isvisible">
1272                <xsd:attribute name = "isvisible" type = "xsd:boolean"/>
1273        </xsd:attributeGroup>
1274        <xsd:attributeGroup name = "attr.identifier">
1275                <xsd:attribute name = "identifier" type = "xsd:ID"/>
1276        </xsd:attributeGroup>
1277        <xsd:attributeGroup name = "attr.identifier.req">
1278                <xsd:attribute name = "identifier" use = "required" type = "xsd:ID"/>
1279        </xsd:attributeGroup>
1280        <xsd:attributeGroup name = "attr.href.req">
1281                <xsd:attribute name = "href" use = "required" type = "xsd:anyURI"/>
1282        </xsd:attributeGroup>
1283        <xsd:attributeGroup name = "attr.href">
1284                <xsd:attribute name = "href" type = "xsd:anyURI"/>
1285        </xsd:attributeGroup>
1286        <xsd:attributeGroup name = "attr.default">
1287                <xsd:attribute name = "default" type = "xsd:IDREF"/>
1288        </xsd:attributeGroup>
1289        <xsd:attributeGroup name = "attr.base">
1290                <xsd:attribute ref = "xml:base"/>
1291        </xsd:attributeGroup>
1292       
1293        <!-- Copyright (2) 2003 IMS Global Learning Consortium, Inc. -->
1294       
1295       
1296        <!-- ******************** -->
1297       
1298       
1299        <!-- ** Change History ** -->
1300       
1301       
1302        <!-- ******************** -->
1303       
1304       
1305        <!-- **************************** -->
1306       
1307       
1308        <!-- ** Attribute Declarations ** -->
1309       
1310       
1311        <!-- **************************** -->
1312       
1313       
1314        <!-- ************************** -->
1315       
1316       
1317        <!-- ** Element Declarations ** -->
1318       
1319       
1320        <!-- ************************** -->
1321       
1322        <xsd:element name = "dependency" type = "dependencyType"/>
1323        <xsd:element name = "file" type = "fileType"/>
1324        <xsd:element name = "item" type = "itemType"/>
1325        <xsd:element name = "manifest" type = "manifestType"/>
1326        <xsd:element name = "metadata" type = "metadataType"/>
1327        <xsd:element name = "organization" type = "organizationType"/>
1328        <xsd:element name = "organizations" type = "organizationsType"/>
1329        <xsd:element name = "resource" type = "resourceType"/>
1330        <xsd:element name = "resources" type = "resourcesType"/>
1331        <xsd:element name = "schema" type = "schemaType"/>
1332        <xsd:element name = "schemaversion" type = "schemaversionType"/>
1333        <xsd:element name = "title" type = "titleType"/>
1334       
1335        <!-- ******************* -->
1336       
1337       
1338        <!-- ** Complex Types ** -->
1339       
1340       
1341        <!-- ******************* -->
1342       
1343       
1344        <!-- **************** -->
1345       
1346       
1347        <!-- ** dependency ** -->
1348       
1349       
1350        <!-- **************** -->
1351       
1352        <xsd:complexType name = "dependencyType">
1353                <xsd:sequence>
1354                        <xsd:group ref = "grp.any"/>
1355                </xsd:sequence>
1356                <xsd:attributeGroup ref = "attr.identifierref.req"/>
1357                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1358        </xsd:complexType>
1359       
1360        <!-- ********** -->
1361       
1362       
1363        <!-- ** file ** -->
1364       
1365       
1366        <!-- ********** -->
1367       
1368        <xsd:complexType name = "fileType">
1369                <xsd:sequence>
1370                        <xsd:element ref = "metadata" minOccurs = "0"/>
1371                        <xsd:group ref = "grp.any"/>
1372                </xsd:sequence>
1373                <xsd:attributeGroup ref = "attr.href.req"/>
1374                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1375        </xsd:complexType>
1376       
1377        <!-- ********** -->
1378       
1379       
1380        <!-- ** item ** -->
1381       
1382       
1383        <!-- ********** -->
1384       
1385        <xsd:complexType name = "itemType">
1386                <xsd:sequence>
1387                        <xsd:element ref = "title" minOccurs = "0"/>
1388                        <xsd:element ref = "item" minOccurs = "0" maxOccurs = "unbounded"/>
1389                        <xsd:element ref = "metadata" minOccurs = "0"/>
1390                        <xsd:group ref = "grp.any"/>
1391                </xsd:sequence>
1392                <xsd:attributeGroup ref = "attr.identifier.req"/>
1393                <xsd:attributeGroup ref = "attr.identifierref"/>
1394                <xsd:attributeGroup ref = "attr.isvisible"/>
1395                <xsd:attributeGroup ref = "attr.parameters"/>
1396                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1397        </xsd:complexType>
1398       
1399        <!-- ************** -->
1400       
1401       
1402        <!-- ** manifest ** -->
1403       
1404       
1405        <!-- ************** -->
1406       
1407        <xsd:complexType name = "manifestType">
1408                <xsd:sequence>
1409                        <xsd:element ref = "metadata" minOccurs = "0"/>
1410                        <xsd:element ref = "organizations"/>
1411                        <xsd:element ref = "resources"/>
1412                        <xsd:element ref = "manifest" minOccurs = "0" maxOccurs = "unbounded"/>
1413                        <xsd:group ref = "grp.any"/>
1414                </xsd:sequence>
1415                <xsd:attributeGroup ref = "attr.identifier.req"/>
1416                <xsd:attributeGroup ref = "attr.version"/>
1417                <xsd:attribute ref = "xml:base"/>
1418                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1419        </xsd:complexType>
1420       
1421        <!-- ************** -->
1422       
1423       
1424        <!-- ** metadata ** -->
1425       
1426       
1427        <!-- ************** -->
1428       
1429        <xsd:complexType name = "metadataType">
1430                <xsd:sequence>
1431                        <xsd:element ref = "schema" minOccurs = "0"/>
1432                        <xsd:element ref = "schemaversion" minOccurs = "0"/>
1433                        <xsd:group ref = "grp.any"/>
1434                </xsd:sequence>
1435        </xsd:complexType>
1436       
1437        <!-- ******************* -->
1438       
1439       
1440        <!-- ** organizations ** -->
1441       
1442       
1443        <!-- ******************* -->
1444       
1445        <xsd:complexType name = "organizationsType">
1446                <xsd:sequence>
1447                        <xsd:element ref = "organization" minOccurs = "0" maxOccurs = "unbounded"/>
1448                        <xsd:group ref = "grp.any"/>
1449                </xsd:sequence>
1450                <xsd:attributeGroup ref = "attr.default"/>
1451                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1452        </xsd:complexType>
1453       
1454        <!-- ****************** -->
1455       
1456       
1457        <!-- ** organization ** -->
1458       
1459       
1460        <!-- ****************** -->
1461       
1462        <xsd:complexType name = "organizationType">
1463                <xsd:sequence>
1464                        <xsd:element ref = "title" minOccurs = "0"/>
1465                        <xsd:element ref = "item" minOccurs = "0" maxOccurs = "unbounded"/>
1466                        <xsd:element ref = "metadata" minOccurs = "0"/>
1467                        <xsd:group ref = "grp.any"/>
1468                </xsd:sequence>
1469                <xsd:attributeGroup ref = "attr.identifier.req"/>
1470                <xsd:attributeGroup ref = "attr.structure.req"/>
1471                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1472        </xsd:complexType>
1473       
1474        <!-- *************** -->
1475       
1476       
1477        <!-- ** resources ** -->
1478       
1479       
1480        <!-- *************** -->
1481       
1482        <xsd:complexType name = "resourcesType">
1483                <xsd:sequence>
1484                        <xsd:element ref = "resource" minOccurs = "0" maxOccurs = "unbounded"/>
1485                        <xsd:group ref = "grp.any"/>
1486                </xsd:sequence>
1487                <xsd:attributeGroup ref = "attr.base"/>
1488                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1489        </xsd:complexType>
1490       
1491        <!-- ************** -->
1492       
1493       
1494        <!-- ** resource ** -->
1495       
1496       
1497        <!-- ************** -->
1498       
1499        <xsd:complexType name = "resourceType">
1500                <xsd:sequence>
1501                        <xsd:element ref = "metadata" minOccurs = "0"/>
1502                        <xsd:element ref = "file" minOccurs = "0" maxOccurs = "unbounded"/>
1503                        <xsd:element ref = "dependency" minOccurs = "0" maxOccurs = "unbounded"/>
1504                        <xsd:group ref = "grp.any"/>
1505                </xsd:sequence>
1506                <xsd:attributeGroup ref = "attr.identifier.req"/>
1507                <xsd:attributeGroup ref = "attr.resourcetype.req"/>
1508                <xsd:attributeGroup ref = "attr.base"/>
1509                <xsd:attributeGroup ref = "attr.href"/>
1510                <xsd:anyAttribute namespace = "##other" processContents = "strict"/>
1511        </xsd:complexType>
1512       
1513        <!-- *************** -->
1514       
1515       
1516        <!-- ** variation ** -->
1517       
1518       
1519        <!-- *************** -->
1520       
1521       
1522        <!-- ****************** -->
1523       
1524       
1525        <!-- ** Simple Types ** -->
1526       
1527       
1528        <!-- ****************** -->
1529       
1530        <xsd:simpleType name = "schemaType">
1531                <xsd:restriction base = "xsd:string"/>
1532        </xsd:simpleType>
1533        <xsd:simpleType name = "schemaversionType">
1534                <xsd:restriction base = "xsd:string"/>
1535        </xsd:simpleType>
1536        <xsd:simpleType name = "titleType">
1537                <xsd:restriction base = "xsd:string"/>
1538        </xsd:simpleType>
1539</xsd:schema>]]>
1540                    </item>
1541                    <item key="id"><![CDATA[imscp_v1p1.xsd]]></item>
1542                    <item key="mandatory" type="int">0</item>
1543                    <item key="multilang" type="int">0</item>
1544                    <item key="name"><![CDATA[Template: SCORM Schema]]></item>
1545                    <item key="repetitive" type="int">0</item>
1546                    <item key="type"><![CDATA[DTML Method]]></item>
1547                  </dictionary>
1548                </item>
1549                <item type="dictionary">
1550                  <dictionary>
1551                    <item key="custom"><![CDATA[<?xml version = "1.0" encoding = "UTF-8"?>
1552<!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
1553<xs:schema xmlns = "http://www.imsglobal.org/xsd/imsss"
1554         targetNamespace = "http://www.imsglobal.org/xsd/imsss"
1555         xmlns:xs = "http://www.w3.org/2001/XMLSchema"
1556         elementFormDefault = "qualified"
1557         attributeFormDefault = "unqualified">
1558        <xs:include schemaLocation = "imsss_v1p0seqrule.xsd"/>
1559        <xs:include schemaLocation = "imsss_v1p0objective.xsd"/>
1560        <xs:include schemaLocation = "imsss_v1p0delivery.xsd"/>
1561        <xs:include schemaLocation = "imsss_v1p0random.xsd"/>
1562        <xs:include schemaLocation = "imsss_v1p0rollup.xsd"/>
1563        <xs:include schemaLocation = "imsss_v1p0control.xsd"/>
1564        <xs:include schemaLocation = "imsss_v1p0limit.xsd"/>
1565        <xs:include schemaLocation = "imsss_v1p0auxresource.xsd"/>
1566        <xs:element name = "sequencing" type = "sequencingType"
1567                 block = "#all">
1568                <xs:annotation>
1569                        <xs:documentation>The root element for all sequencing tags.  This tag will usually appear as a child element to an IMS CP item tag.</xs:documentation>
1570                </xs:annotation>
1571        </xs:element>
1572        <xs:complexType name = "sequencingType">
1573                <xs:annotation>
1574                        <xs:documentation>The type associated with any top-level sequencing tag</xs:documentation>
1575                </xs:annotation>
1576                <xs:sequence>
1577                        <xs:element name = "controlMode" type = "controlModeType"
1578                                 block = "#all" minOccurs = "0">
1579                                <xs:annotation>
1580                                        <xs:documentation>non-exclusive definition of acceptable control-modes</xs:documentation>
1581                                </xs:annotation>
1582                        </xs:element>
1583                        <xs:element name = "sequencingRules" type = "sequencingRulesType"
1584                                 block = "#all" minOccurs = "0"/>
1585                        <xs:element name = "limitConditions" type = "limitConditionsType"
1586                                 block = "#all" minOccurs = "0"/>
1587                        <xs:element name = "auxiliaryResources" type = "auxiliaryResourcesType"
1588                                 block = "#all" minOccurs = "0"/>
1589                        <xs:element name = "rollupRules" type = "rollupRulesType"
1590                                 block = "#all" minOccurs = "0"/>
1591                        <xs:element name = "objectives" type = "objectivesType"
1592                                 block = "#all" minOccurs = "0">
1593<!--
1594                                <xs:unique name = "uniqueGlobalObjective">
1595                                        <xs:selector xpath = ".//imsss:mapInfo[@writeSatisfiedStatus = 'true' or @writeNormalizedMeasure = 'true']"/>
1596                                        <xs:field xpath = "@targetObjectiveID"/>
1597                                </xs:unique>
1598-->
1599                        </xs:element>
1600                        <xs:element name = "randomizationControls" type = "randomizationType"
1601                                 block = "#all" minOccurs = "0"/>
1602                        <xs:element name = "deliveryControls" type = "deliveryControlsType"
1603                                 block = "#all" minOccurs = "0"/>
1604                        <xs:any namespace = "##other" processContents = "strict" minOccurs = "0" maxOccurs = "unbounded"/>
1605                </xs:sequence>
1606                <xs:attribute name = "ID" type = "xs:ID"/>
1607                <xs:attribute name = "IDRef" type = "xs:IDREF"/>
1608        </xs:complexType>
1609        <xs:element name = "sequencingCollection"
1610                 block = "#all">
1611                <xs:complexType>
1612                        <xs:sequence>
1613                                <xs:element ref = "sequencing" maxOccurs = "unbounded"/>
1614                        </xs:sequence>
1615                </xs:complexType>
1616        </xs:element>
1617</xs:schema>]]>
1618                    </item>
1619                    <item key="id"><![CDATA[imsss_v1p0.xsd]]></item>
1620                    <item key="mandatory" type="int">0</item>
1621                    <item key="multilang" type="int">0</item>
1622                    <item key="name"><![CDATA[Template: SCORM Schema]]></item>
1623                    <item key="repetitive" type="int">0</item>
1624                    <item key="type"><![CDATA[DTML Method]]></item>
1625                  </dictionary>
1626                </item>
1627                <item type="dictionary">
1628                  <dictionary>
1629                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_SCORMmetaset -->
1630
1631<dtml-in "getMetaobjAttrIds(meta_id)">
1632<dtml-let metaObjAttr="getMetaobjAttr(meta_id,_['sequence-item'])">
1633<dtml-if "getObjProperty(metaObjAttr['id'],REQUEST)">
1634<meta name="<dtml-var "metaObjAttr['id']">" value="<dtml-var "getObjProperty(metaObjAttr['id'],REQUEST)">">
1635</dtml-if>
1636</dtml-let>
1637</dtml-in>
1638
1639<!-- EO bodyContentZMSCustom_SCORMmetaset -->]]>
1640                    </item>
1641                    <item key="id"><![CDATA[bodyContentZMSCustom_SCORMmetaset]]></item>
1642                    <item key="mandatory" type="int">0</item>
1643                    <item key="multilang" type="int">0</item>
1644                    <item key="name"><![CDATA[Template: SCORM Metaset]]></item>
1645                    <item key="repetitive" type="int">0</item>
1646                    <item key="type"><![CDATA[DTML Method]]></item>
1647                  </dictionary>
1648                </item>
1649              </list>
1650            </item>
1651            <item key="enabled" type="int">0</item>
1652            <item key="id"><![CDATA[SCORMmetaset]]></item>
1653            <item key="name"><![CDATA[SCORM Metaset]]></item>
1654            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
1655            <item key="revision"><![CDATA[0.0.0]]></item>
1656            <item key="type"><![CDATA[ZMSResource]]></item>
1657          </dictionary>
1658        </item>
1659      </dictionary>
1660    </item>
1661    <item type="dictionary">
1662      <dictionary>
1663        <item key="key"><![CDATA[SCORMseq]]></item>
1664        <item key="value" type="dictionary">
1665          <dictionary>
1666            <item key="__obj_attrs__" type="list">
1667              <list>
1668                <item type="dictionary">
1669                  <dictionary>
1670                    <item key="id"><![CDATA[records]]></item>
1671                    <item key="mandatory" type="int">1</item>
1672                    <item key="multilang" type="int">0</item>
1673                    <item key="name"><![CDATA[DatensÀtze]]></item>
1674                    <item key="repetitive" type="int">0</item>
1675                    <item key="type"><![CDATA[list]]></item>
1676                  </dictionary>
1677                </item>
1678                <item type="dictionary">
1679                  <dictionary>
1680                    <item key="custom" type="int">1</item>
1681                    <item key="id"><![CDATA[seqCondition]]></item>
1682                    <item key="keys" type="list">
1683                      <list>
1684                        <item><![CDATA[attempted]]></item>
1685                        <item><![CDATA[satisfied]]></item>
1686                        <item><![CDATA[completed]]></item>
1687                        <item><![CDATA[always]]></item>
1688                      </list>
1689                    </item>
1690                    <item key="mandatory" type="int">1</item>
1691                    <item key="multilang" type="int">0</item>
1692                    <item key="name"><![CDATA[Condition]]></item>
1693                    <item key="repetitive" type="int">0</item>
1694                    <item key="type"><![CDATA[select]]></item>
1695                  </dictionary>
1696                </item>
1697                <item type="dictionary">
1698                  <dictionary>
1699                    <item key="custom" type="int">1</item>
1700                    <item key="id"><![CDATA[seqOperator]]></item>
1701                    <item key="keys" type="list">
1702                      <list>
1703                        <item><![CDATA[-]]></item>
1704                        <item><![CDATA[not]]></item>
1705                      </list>
1706                    </item>
1707                    <item key="mandatory" type="int">1</item>
1708                    <item key="multilang" type="int">0</item>
1709                    <item key="name"><![CDATA[Operator]]></item>
1710                    <item key="repetitive" type="int">0</item>
1711                    <item key="type"><![CDATA[select]]></item>
1712                  </dictionary>
1713                </item>
1714                <item type="dictionary">
1715                  <dictionary>
1716                    <item key="custom" type="int">1</item>
1717                    <item key="id"><![CDATA[seqReferencedObjective]]></item>
1718                    <item key="mandatory" type="int">1</item>
1719                    <item key="multilang" type="int">0</item>
1720                    <item key="name"><![CDATA[Referenced Objective]]></item>
1721                    <item key="repetitive" type="int">0</item>
1722                    <item key="type"><![CDATA[url]]></item>
1723                  </dictionary>
1724                </item>
1725                <item type="dictionary">
1726                  <dictionary>
1727                    <item key="custom"><![CDATA[<!--// BO imsmanifest //-->
1728
1729<dtml-call "REQUEST.set('s_xml',[])">
1730<dtml-call "REQUEST.set('i_count',0)">
1731
1732<dtml-in "getObjProperty('records',REQUEST)" mapping>
1733 <dtml-let ob="getLinkObj(seqReferencedObjective)">
1734  <dtml-if ob>
1735   <dtml-unless i_count>
1736    <dtml-call "s_xml.append('<imsss:sequencing>\n')">
1737    <dtml-call "s_xml.append('<imsss:sequencingRules>\n')">
1738   </dtml-unless>
1739   <dtml-call "s_xml.append('<imsss:preConditionRule>\n')">
1740   <dtml-call "s_xml.append('<imsss:ruleConditions>\n')">
1741   <dtml-call "s_xml.append('<imsss:ruleCondition')">
1742   <dtml-call "REQUEST.set( 'lCondition' ,seqCondition)">
1743   <dtml-call "REQUEST.set( 'lOperator' ,seqOperator)">
1744   <dtml-if "lCondition.lower() == 'completed' and lOperator.lower() == '-'">
1745    <dtml-call "REQUEST.set( 'lCondition' ,'satisfied')">
1746    <dtml-call "REQUEST.set( 'lOperator' ,'-')">
1747   <dtml-elif "lCondition.lower() == 'failed' and lOperator.lower() == '-'">
1748    <dtml-call "REQUEST.set( 'lCondition' ,'satisfied')">
1749    <dtml-call "REQUEST.set( 'lOperator' ,'not')">
1750   </dtml-if>
1751   <dtml-call "s_xml.append(' condition='+QUOT+lCondition.lower()+QUOT)">
1752   <dtml-if "lOperator != '-'">
1753    <dtml-call "s_xml.append(' operator='+QUOT+lOperator.lower()+QUOT)">
1754   </dtml-if>
1755   <dtml-call "s_xml.append(' referencedObjective='+QUOT+ob.id+QUOT)">
1756   <dtml-call "s_xml.append('>')">
1757   <dtml-call "s_xml.append('</imsss:ruleCondition>\n')">
1758   <dtml-call "s_xml.append('</imsss:ruleConditions>\n')">
1759   <dtml-call "s_xml.append('<imsss:ruleAction action='+QUOT+'skip'+QUOT+'>')">
1760   <dtml-call "s_xml.append('</imsss:ruleAction>\n')">
1761   <dtml-call "s_xml.append('</imsss:preConditionRule>\n')">
1762   <dtml-call "REQUEST.set('i_count',i_count+1)">
1763  </dtml-if>
1764 </dtml-let>
1765</dtml-in>
1766<dtml-if i_count>
1767 <dtml-call "s_xml.append('</imsss:sequencingRules>\n')">
1768 <dtml-call "s_xml.append('</imsss:sequencing>\n')">
1769</dtml-if>
1770
1771<dtml-call "REQUEST.set('s_xml',''.join(s_xml))">
1772<dtml-return s_xml>
1773
1774<!--// EO imsmanifest //-->]]>
1775                    </item>
1776                    <item key="id"><![CDATA[imsmanifest]]></item>
1777                    <item key="mandatory" type="int">0</item>
1778                    <item key="multilang" type="int">0</item>
1779                    <item key="name"><![CDATA[imsmanifest.xml]]></item>
1780                    <item key="repetitive" type="int">0</item>
1781                    <item key="type"><![CDATA[method]]></item>
1782                  </dictionary>
1783                </item>
1784                <item type="dictionary">
1785                  <dictionary>
1786                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_SCORMseq -->
1787
1788 <div class="form-text" style="padding:8px">
1789 <dtml-let recordAttrId="getMetaobj(meta_id)['attrs'][0]['id']" recordAttr="getObjProperty(recordAttrId,REQUEST)">
1790  <dtml-if recordAttr>
1791   <table cellspacing="1" cellpadding="1" border="0" class="neutralColorStrong0">
1792   <tr>
1793    <td class="form-small"><b>#</b></td>
1794    <td class="form-small"><b>Condition</b></td>
1795    <td class="form-small"><b>Referenced Objective</b></td>
1796   </tr>
1797   <dtml-in recordAttr mapping>
1798    <dtml-let ob="getLinkObj(seqReferencedObjective,REQUEST)">
1799     <dtml-if ob>
1800      <tr class="<dtml-if sequence-odd>zmiTableRowOdd<dtml-else>zmiTableRowEven</dtml-if>">
1801       <td class="neutralColorStrong0" align="right"><div class="form-small"><dtml-var "_['sequence-index']+1">.</div></td>
1802       <td class="form-small">
1803        <i>
1804         <dtml-unless "seqOperator == '-'"><dtml-var seqOperator></dtml-unless>
1805         <dtml-var seqCondition>
1806        </i>
1807       </td>
1808       <td class="form-small">
1809        <a href="<dtml-var "ob.absolute_url()">/manage_main?lang=<dtml-var lang>" target="_blank" class="zmi"><img src="<dtml-var "ob.display_icon(REQUEST)">" title="<dtml-var "ob.display_type(REQUEST)">" border="0" align="absmiddle"/></a>
1810        <a href="<dtml-var "ob.absolute_url()">/manage_main?lang=<dtml-var lang>" target="_blank" class="zmi"><dtml-var "ob.getTitlealt(REQUEST)"></a>
1811       </td>
1812      </tr>
1813     </dtml-if>
1814    </dtml-let>
1815   </dtml-in>
1816   </table>
1817  <dtml-else>
1818   <dtml-var "getZMILangStr('ATTR_NONE')">
1819  </dtml-if>
1820 </dtml-let>
1821 </div>
1822
1823<!-- EO bodyContentZMSCustom_SCORMseq -->]]>
1824                    </item>
1825                    <item key="id"><![CDATA[bodyContentZMSCustom_SCORMseq]]></item>
1826                    <item key="mandatory" type="int">0</item>
1827                    <item key="multilang" type="int">0</item>
1828                    <item key="name"><![CDATA[Template: SCORM-Preconditions]]></item>
1829                    <item key="repetitive" type="int">0</item>
1830                    <item key="type"><![CDATA[DTML Method]]></item>
1831                  </dictionary>
1832                </item>
1833              </list>
1834            </item>
1835            <item key="enabled" type="int">0</item>
1836            <item key="id"><![CDATA[SCORMseq]]></item>
1837            <item key="name"><![CDATA[SCORM-Preconditions]]></item>
1838            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
1839            <item key="revision"><![CDATA[0.0.0]]></item>
1840            <item key="type"><![CDATA[ZMSRecordSet]]></item>
1841          </dictionary>
1842        </item>
1843      </dictionary>
1844    </item>
1845    <item type="dictionary">
1846      <dictionary>
1847        <item key="key"><![CDATA[com.zms.elc.lcms]]></item>
1848        <item key="value" type="dictionary">
1849          <dictionary>
1850            <item key="__obj_attrs__" type="list">
1851              <list>
1852              </list>
1853            </item>
1854            <item key="enabled" type="int">1</item>
1855            <item key="id"><![CDATA[com.zms.elc.lcms]]></item>
1856            <item key="name"><![CDATA[com.zms.elc.lcms]]></item>
1857            <item key="package"/>
1858            <item key="revision"><![CDATA[0.0.0]]></item>
1859            <item key="type"><![CDATA[ZMSPackage]]></item>
1860          </dictionary>
1861        </item>
1862      </dictionary>
1863    </item>
1864    <item type="dictionary">
1865      <dictionary>
1866        <item key="key"><![CDATA[examQExplanation]]></item>
1867        <item key="value" type="dictionary">
1868          <dictionary>
1869            <item key="__obj_attrs__" type="list">
1870              <list>
1871                <item type="dictionary">
1872                  <dictionary>
1873                    <item key="custom">
1874                      <data content_type="image/gif" filename="explanation.gif" type="file">47494638396112001000b30000fc02fc7c88b8c4cedcdcedfc88a7d6f7fbfcc4e2fceeeefbb2b9c67c7bac8498c8b1d9fcd8e0eed0d8ece4e3fc8daedc21f90401000000002c000000001200100003045e10c849ab7d38634b5ff91f533c080710e0d7140ec9a1a9580cc49b168c8020b5a51ca901a3d150707e1fe0607930fa06a025d3590928670383e110e004a44b87d6d1b5041c62ad61b1207bd35a76bb5c49a0eff80427c1effbf526811411003b</data>
1875                    </item>
1876                    <item key="id"><![CDATA[icon]]></item>
1877                    <item key="mandatory" type="int">0</item>
1878                    <item key="multilang" type="int">0</item>
1879                    <item key="name"><![CDATA[Icon]]></item>
1880                    <item key="repetitive" type="int">0</item>
1881                    <item key="type"><![CDATA[resource]]></item>
1882                  </dictionary>
1883                </item>
1884                <item type="dictionary">
1885                  <dictionary>
1886                    <item key="id"><![CDATA[xqItems]]></item>
1887                    <item key="keys" type="list">
1888                      <list>
1889                        <item><![CDATA[ZMSGraphic]]></item>
1890                        <item><![CDATA[ZMSTable]]></item>
1891                        <item><![CDATA[ZMSTextarea]]></item>
1892                      </list>
1893                    </item>
1894                    <item key="mandatory" type="int">0</item>
1895                    <item key="multilang" type="int">0</item>
1896                    <item key="name"><![CDATA[Items]]></item>
1897                    <item key="repetitive" type="int">1</item>
1898                    <item key="type"><![CDATA[*]]></item>
1899                  </dictionary>
1900                </item>
1901                <item type="dictionary">
1902                  <dictionary>
1903                    <item key="custom"><![CDATA[//-- BO examQExplanation::js_calcRawScore --
1904
1905  // ############################################################
1906  // Explanation #<dtml-var "REQUEST.get('cmiInteractionNo',0)">
1907  // ############################################################
1908  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.id","<dtml-var id>");
1909
1910  // Get correct_responses.
1911  // ----------------------
1912  question = "";
1913  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern",question);
1914
1915  // Get learner_response.
1916  // ---------------------
1917  key = "";
1918  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response",key);
1919
1920  // Compare correct_responses with learner_responses.
1921  // -------------------------------------------------
1922  var b = question.toLowerCase()==key.toLowerCase();
1923  if (b)
1924  {
1925    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","correct");
1926    rawScore++;
1927  }
1928  else
1929  {
1930    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","incorrect");
1931  }
1932
1933  <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
1934
1935//-- EO examQExplanation::js_calcRawScore --]]>
1936                    </item>
1937                    <item key="id"><![CDATA[js_calcRawScore]]></item>
1938                    <item key="mandatory" type="int">0</item>
1939                    <item key="multilang" type="int">0</item>
1940                    <item key="name"><![CDATA[JavaScript: calcRawScore]]></item>
1941                    <item key="repetitive" type="int">0</item>
1942                    <item key="type"><![CDATA[method]]></item>
1943                  </dictionary>
1944                </item>
1945                <item type="dictionary">
1946                  <dictionary>
1947                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQExplanation -->
1948
1949  <h1><dtml-var "getObjProperty('xqTitle',REQUEST)"></h1>
1950  <dtml-in "getObjChildren('xqItems',REQUEST)">
1951   <dtml-var "getBodyContent(REQUEST)">
1952  </dtml-in>
1953  <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
1954
1955<!-- EO bodyContentZMSCustom_examQExplanation -->]]>
1956                    </item>
1957                    <item key="id"><![CDATA[bodyContentZMSCustom_examQExplanation]]></item>
1958                    <item key="mandatory" type="int">0</item>
1959                    <item key="multilang" type="int">0</item>
1960                    <item key="name"><![CDATA[Template: Explanation]]></item>
1961                    <item key="repetitive" type="int">0</item>
1962                    <item key="type"><![CDATA[DTML Method]]></item>
1963                  </dictionary>
1964                </item>
1965              </list>
1966            </item>
1967            <item key="enabled" type="int">1</item>
1968            <item key="id"><![CDATA[examQExplanation]]></item>
1969            <item key="name"><![CDATA[Explanation]]></item>
1970            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
1971            <item key="revision"><![CDATA[0.0.0]]></item>
1972            <item key="type"><![CDATA[ZMSObject]]></item>
1973          </dictionary>
1974        </item>
1975      </dictionary>
1976    </item>
1977    <item type="dictionary">
1978      <dictionary>
1979        <item key="key"><![CDATA[examQFillBlank]]></item>
1980        <item key="value" type="dictionary">
1981          <dictionary>
1982            <item key="__obj_attrs__" type="list">
1983              <list>
1984                <item type="dictionary">
1985                  <dictionary>
1986                    <item key="custom">
1987                      <data content_type="image/gif" filename="fillinl.gif" type="file">47494638396114001400b300004c4e4cb4b6b4fc02fcc4c6c4060a7f5303a1d1c9d1770177270000070000d30000000000501c68e3c30114124500000121f90401000002002c000000001400140003043950c849abbdb8829de50613d77920399ae8280a6bb7b6d95b0e8340db752a0e81ddf3a1124be812c230b2d330a84c9e9c2ae35133555aafca08003b</data>
1988                    </item>
1989                    <item key="id"><![CDATA[icon]]></item>
1990                    <item key="mandatory" type="int">0</item>
1991                    <item key="multilang" type="int">0</item>
1992                    <item key="name"><![CDATA[Icon]]></item>
1993                    <item key="repetitive" type="int">0</item>
1994                    <item key="type"><![CDATA[resource]]></item>
1995                  </dictionary>
1996                </item>
1997                <item type="dictionary">
1998                  <dictionary>
1999                    <item key="id"><![CDATA[xqText]]></item>
2000                    <item key="mandatory" type="int">1</item>
2001                    <item key="multilang" type="int">1</item>
2002                    <item key="name"><![CDATA[Text]]></item>
2003                    <item key="repetitive" type="int">0</item>
2004                    <item key="type"><![CDATA[text]]></item>
2005                  </dictionary>
2006                </item>
2007                <item type="dictionary">
2008                  <dictionary>
2009                    <item key="id"><![CDATA[xqItems]]></item>
2010                    <item key="mandatory" type="int">0</item>
2011                    <item key="multilang" type="int">0</item>
2012                    <item key="name"><![CDATA[Items]]></item>
2013                    <item key="repetitive" type="int">1</item>
2014                    <item key="type"><![CDATA[examQFillBlankItem]]></item>
2015                  </dictionary>
2016                </item>
2017                <item type="dictionary">
2018                  <dictionary>
2019                    <item key="id"><![CDATA[cmi_interactions]]></item>
2020                    <item key="mandatory" type="int">0</item>
2021                    <item key="multilang" type="int">0</item>
2022                    <item key="name"><![CDATA[CMI Interactions]]></item>
2023                    <item key="repetitive" type="int">0</item>
2024                    <item key="type"><![CDATA[delimiter]]></item>
2025                  </dictionary>
2026                </item>
2027                <item type="dictionary">
2028                  <dictionary>
2029                    <item key="default"><![CDATA[1.0]]></item>
2030                    <item key="id"><![CDATA[cmi_interactions_weighting]]></item>
2031                    <item key="mandatory" type="int">1</item>
2032                    <item key="multilang" type="int">0</item>
2033                    <item key="name"><![CDATA[Weighting]]></item>
2034                    <item key="repetitive" type="int">0</item>
2035                    <item key="type"><![CDATA[float]]></item>
2036                  </dictionary>
2037                </item>
2038                <item type="dictionary">
2039                  <dictionary>
2040                    <item key="custom"><![CDATA[fill_in]]></item>
2041                    <item key="id"><![CDATA[cmi_interactions_type]]></item>
2042                    <item key="mandatory" type="int">1</item>
2043                    <item key="multilang" type="int">0</item>
2044                    <item key="name"><![CDATA[Type]]></item>
2045                    <item key="repetitive" type="int">0</item>
2046                    <item key="type"><![CDATA[constant]]></item>
2047                  </dictionary>
2048                </item>
2049                <item type="dictionary">
2050                  <dictionary>
2051                    <item key="custom"><![CDATA[//-- BO examQFillBlank::js_calcRawScore --
2052
2053<dtml-let cmiInteractionType="getObjProperty('cmi_interactions_type',REQUEST)"
2054          cmiInteractionWeighting="getObjProperty('cmi_interactions_weighting',REQUEST)">
2055 <dtml-in "getObjChildren('xqItems',REQUEST)">
2056
2057  // ############################################################
2058  // Fill-In-Blank #<dtml-var "REQUEST.get('cmiInteractionNo',0)">
2059  // ############################################################
2060  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.id","<dtml-var id>");
2061  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.type","<dtml-var cmiInteractionType>");
2062  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.weighting","<dtml-var cmiInteractionWeighting>");
2063
2064  // Get correct_responses.
2065  // ----------------------
2066  question = "<dtml-var "getObjProperty('xqiValue',REQUEST)">";
2067  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern",question);
2068
2069  // Get learner_response.
2070  // ---------------------
2071  key = document.examForm.elements['inp_<dtml-var id>'].value;
2072  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response",key);
2073
2074  // Compare correct_responses with learner_responses.
2075  // -------------------------------------------------
2076  var b = question.toLowerCase()==key.toLowerCase();
2077  if (b)
2078  {
2079    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","correct");
2080    rawScore++;
2081  }
2082  else
2083  {
2084    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","incorrect");
2085  }
2086 
2087  <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2088 
2089 </dtml-in>
2090</dtml-let>
2091
2092//-- EO examQFillBlank::js_calcRawScore --]]>
2093                    </item>
2094                    <item key="id"><![CDATA[js_calcRawScore]]></item>
2095                    <item key="mandatory" type="int">0</item>
2096                    <item key="multilang" type="int">0</item>
2097                    <item key="name"><![CDATA[JavaScript: calcRawScore]]></item>
2098                    <item key="repetitive" type="int">0</item>
2099                    <item key="type"><![CDATA[method]]></item>
2100                  </dictionary>
2101                </item>
2102                <item type="dictionary">
2103                  <dictionary>
2104                    <item key="custom"><![CDATA[//-- BO examQFillBlank::js_formSubmit --//
2105
2106<dtml-let thisId="id"
2107          thisXqType="getObjProperty('xqType',REQUEST)">
2108 <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
2109</dtml-let>
2110
2111//-- EO examQFillBlank::js_formSubmit --//]]>
2112                    </item>
2113                    <item key="id"><![CDATA[js_formSubmit]]></item>
2114                    <item key="mandatory" type="int">0</item>
2115                    <item key="multilang" type="int">0</item>
2116                    <item key="name"><![CDATA[JavaScript: formSubmit]]></item>
2117                    <item key="repetitive" type="int">0</item>
2118                    <item key="type"><![CDATA[method]]></item>
2119                  </dictionary>
2120                </item>
2121                <item type="dictionary">
2122                  <dictionary>
2123                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQFillBlank -->
2124
2125 <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
2126 <h3><dtml-var "REQUEST.get('cmiQuestionNo')">. <dtml-var "getLangStr('LMS_CMI_QUESTION',lang)"></h3>
2127 <div class="form-label">
2128  <i><dtml-var "getObjProperty('xqText',REQUEST)"></i>
2129 </div>
2130 <br/>
2131 <div class="form-text">
2132 <dtml-in "getObjChildren('xqItems',REQUEST)">
2133  <dtml-var "getObjProperty('xqiTextPre',REQUEST)">
2134  <script language="JavaScript">
2135  <!--
2136   var sResult = "";
2137   var sType = "text";
2138   var sClass = "form-element";
2139   var sName = "inp_<dtml-var id>";
2140   var sTitle = "<dtml-var "getObjProperty('xqiHint',REQUEST)">";
2141   var sValue = "";
2142   try {
2143     var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
2144     var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
2145     sValue = learner_response;
2146     var b = (learner_response.toLowerCase()==correct_responses.toLowerCase());
2147     if (b) {
2148       sResult += "<font style='color:green'><b>"+correct_responses+"</b></font> ";
2149     }
2150     else {
2151       sResult += "<font style='color:red'><s>"+learner_response+"</s></font> ";
2152       sResult += "<font style='color:green'>"+correct_responses+"</font> ";
2153     }
2154   } catch (e) { }
2155   
2156   var sInput = "";
2157   if (sValue.length==0)
2158     sInput = "<input class='"+sClass+"' name='"+sName+"' value='"+sValue+"' size='8' title='"+sTitle+"'>";
2159   document.write(sInput);
2160   document.write(sResult);
2161  -->
2162  </script>
2163  <dtml-var "getObjProperty('xqiTextPost',REQUEST)">
2164  <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2165 </dtml-in>
2166 </div>
2167
2168<!-- EO bodyContentZMSCustom_examQFillBlank -->]]>
2169                    </item>
2170                    <item key="id"><![CDATA[bodyContentZMSCustom_examQFillBlank]]></item>
2171                    <item key="mandatory" type="int">0</item>
2172                    <item key="multilang" type="int">0</item>
2173                    <item key="name"><![CDATA[Template: Interaction (fill-in)]]></item>
2174                    <item key="repetitive" type="int">0</item>
2175                    <item key="type"><![CDATA[DTML Method]]></item>
2176                  </dictionary>
2177                </item>
2178              </list>
2179            </item>
2180            <item key="enabled" type="int">0</item>
2181            <item key="id"><![CDATA[examQFillBlank]]></item>
2182            <item key="name"><![CDATA[Interaction (fill-in)]]></item>
2183            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
2184            <item key="revision"><![CDATA[0.0.0]]></item>
2185            <item key="type"><![CDATA[ZMSObject]]></item>
2186          </dictionary>
2187        </item>
2188      </dictionary>
2189    </item>
2190    <item type="dictionary">
2191      <dictionary>
2192        <item key="key"><![CDATA[examQFillBlankItem]]></item>
2193        <item key="value" type="dictionary">
2194          <dictionary>
2195            <item key="__obj_attrs__" type="list">
2196              <list>
2197                <item type="dictionary">
2198                  <dictionary>
2199                    <item key="custom">
2200                      <data content_type="image/gif" filename="fillinl.gif" type="file">47494638396114001400b300004c4e4cb4b6b4fc02fcc4c6c4060a7f5303a1d1c9d1770177270000070000d30000000000501c68e3c30114124500000121f90401000002002c000000001400140003043950c849abbdb8829de50613d77920399ae8280a6bb7b6d95b0e8340db752a0e81ddf3a1124be812c230b2d330a84c9e9c2ae35133555aafca08003b</data>
2201                    </item>
2202                    <item key="id"><![CDATA[icon]]></item>
2203                    <item key="mandatory" type="int">0</item>
2204                    <item key="multilang" type="int">0</item>
2205                    <item key="name"><![CDATA[Icon]]></item>
2206                    <item key="repetitive" type="int">0</item>
2207                    <item key="type"><![CDATA[resource]]></item>
2208                  </dictionary>
2209                </item>
2210                <item type="dictionary">
2211                  <dictionary>
2212                    <item key="id"><![CDATA[xqiTextPre]]></item>
2213                    <item key="mandatory" type="int">0</item>
2214                    <item key="multilang" type="int">1</item>
2215                    <item key="name"><![CDATA[Text (Pre)]]></item>
2216                    <item key="repetitive" type="int">0</item>
2217                    <item key="type"><![CDATA[text]]></item>
2218                  </dictionary>
2219                </item>
2220                <item type="dictionary">
2221                  <dictionary>
2222                    <item key="id"><![CDATA[xqiValue]]></item>
2223                    <item key="mandatory" type="int">1</item>
2224                    <item key="multilang" type="int">1</item>
2225                    <item key="name"><![CDATA[Value]]></item>
2226                    <item key="repetitive" type="int">0</item>
2227                    <item key="type"><![CDATA[string]]></item>
2228                  </dictionary>
2229                </item>
2230                <item type="dictionary">
2231                  <dictionary>
2232                    <item key="id"><![CDATA[xqiHint]]></item>
2233                    <item key="mandatory" type="int">0</item>
2234                    <item key="multilang" type="int">1</item>
2235                    <item key="name"><![CDATA[Hint]]></item>
2236                    <item key="repetitive" type="int">0</item>
2237                    <item key="type"><![CDATA[string]]></item>
2238                  </dictionary>
2239                </item>
2240                <item type="dictionary">
2241                  <dictionary>
2242                    <item key="id"><![CDATA[xqiTextPost]]></item>
2243                    <item key="mandatory" type="int">0</item>
2244                    <item key="multilang" type="int">1</item>
2245                    <item key="name"><![CDATA[Text (Post)]]></item>
2246                    <item key="repetitive" type="int">0</item>
2247                    <item key="type"><![CDATA[text]]></item>
2248                  </dictionary>
2249                </item>
2250                <item type="dictionary">
2251                  <dictionary>
2252                    <item key="id"><![CDATA[xqiFeedback]]></item>
2253                    <item key="mandatory" type="int">0</item>
2254                    <item key="multilang" type="int">1</item>
2255                    <item key="name"><![CDATA[Feedback zur Aussage]]></item>
2256                    <item key="repetitive" type="int">0</item>
2257                    <item key="type"><![CDATA[text]]></item>
2258                  </dictionary>
2259                </item>
2260                <item type="dictionary">
2261                  <dictionary>
2262                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQFillBlankItem -->
2263
2264<div class="form-text">
2265 <dtml-var "getObjProperty('xqiTextPre',REQUEST)">
2266 <em><dtml-var "getObjProperty('xqiValue',REQUEST)"></em>
2267 <dtml-if "getObjProperty('xqiHint',REQUEST)">
2268  <i>(<dtml-var "getObjProperty('xqiHint',REQUEST)">)</i>
2269 </dtml-if>
2270 <dtml-var "getObjProperty('xqiTextPost',REQUEST)">
2271</div>
2272
2273<!-- EO bodyContentZMSCustom_examQFillBlankItem -->]]>
2274                    </item>
2275                    <item key="id"><![CDATA[bodyContentZMSCustom_examQFillBlankItem]]></item>
2276                    <item key="mandatory" type="int">0</item>
2277                    <item key="multilang" type="int">0</item>
2278                    <item key="name"><![CDATA[Template: Fill-in-Blank Item]]></item>
2279                    <item key="repetitive" type="int">0</item>
2280                    <item key="type"><![CDATA[DTML Method]]></item>
2281                  </dictionary>
2282                </item>
2283              </list>
2284            </item>
2285            <item key="enabled" type="int">0</item>
2286            <item key="id"><![CDATA[examQFillBlankItem]]></item>
2287            <item key="name"><![CDATA[Fill-in-Blank Item]]></item>
2288            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
2289            <item key="revision"><![CDATA[0.0.0]]></item>
2290            <item key="type"><![CDATA[ZMSObject]]></item>
2291          </dictionary>
2292        </item>
2293      </dictionary>
2294    </item>
2295    <item type="dictionary">
2296      <dictionary>
2297        <item key="key"><![CDATA[examQImageHotspot]]></item>
2298        <item key="value" type="dictionary">
2299          <dictionary>
2300            <item key="__obj_attrs__" type="list">
2301              <list>
2302                <item type="dictionary">
2303                  <dictionary>
2304                    <item key="custom">
2305                      <data content_type="image/gif" filename="hotspotl.gif" type="file">47494638396114001400b300008c0204fcae94b4dafcdceefcfc02fc7c8abcf7fbfc8ca6d4fc32047c7aace45e64849acce4e2fcc4e2fc8caedceceefc21f90401000004002c000000001400140003046f90c849abbd38ebecbaefc7e17046691acf736487192025bc62ad8904068c20b48d283bc422b3789880a5d7ee522c290000a782382801140128e087291807b8ac4251e05a0a833418da080408bc3383d16800020201039029d0eb0d797a0519097387880985098c8d8e1b9091929311003b</data>
2306                    </item>
2307                    <item key="id"><![CDATA[icon]]></item>
2308                    <item key="mandatory" type="int">0</item>
2309                    <item key="multilang" type="int">0</item>
2310                    <item key="name"><![CDATA[Icon]]></item>
2311                    <item key="repetitive" type="int">0</item>
2312                    <item key="type"><![CDATA[resource]]></item>
2313                  </dictionary>
2314                </item>
2315                <item type="dictionary">
2316                  <dictionary>
2317                    <item key="id"><![CDATA[xqText]]></item>
2318                    <item key="mandatory" type="int">1</item>
2319                    <item key="multilang" type="int">1</item>
2320                    <item key="name"><![CDATA[Text]]></item>
2321                    <item key="repetitive" type="int">0</item>
2322                    <item key="type"><![CDATA[text]]></item>
2323                  </dictionary>
2324                </item>
2325                <item type="dictionary">
2326                  <dictionary>
2327                    <item key="id"><![CDATA[xqImage]]></item>
2328                    <item key="mandatory" type="int">1</item>
2329                    <item key="multilang" type="int">1</item>
2330                    <item key="name"><![CDATA[Image]]></item>
2331                    <item key="repetitive" type="int">0</item>
2332                    <item key="type"><![CDATA[image]]></item>
2333                  </dictionary>
2334                </item>
2335                <item type="dictionary">
2336                  <dictionary>
2337                    <item key="id"><![CDATA[xqItems]]></item>
2338                    <item key="mandatory" type="int">0</item>
2339                    <item key="multilang" type="int">0</item>
2340                    <item key="name"><![CDATA[Items]]></item>
2341                    <item key="repetitive" type="int">1</item>
2342                    <item key="type"><![CDATA[examQImageHotspotItem]]></item>
2343                  </dictionary>
2344                </item>
2345                <item type="dictionary">
2346                  <dictionary>
2347                    <item key="id"><![CDATA[cmi_interactions]]></item>
2348                    <item key="mandatory" type="int">0</item>
2349                    <item key="multilang" type="int">0</item>
2350                    <item key="name"><![CDATA[CMI Interactions]]></item>
2351                    <item key="repetitive" type="int">0</item>
2352                    <item key="type"><![CDATA[delimiter]]></item>
2353                  </dictionary>
2354                </item>
2355                <item type="dictionary">
2356                  <dictionary>
2357                    <item key="default"><![CDATA[1.0]]></item>
2358                    <item key="id"><![CDATA[cmi_interactions_weighting]]></item>
2359                    <item key="mandatory" type="int">1</item>
2360                    <item key="multilang" type="int">0</item>
2361                    <item key="name"><![CDATA[Weighting]]></item>
2362                    <item key="repetitive" type="int">0</item>
2363                    <item key="type"><![CDATA[float]]></item>
2364                  </dictionary>
2365                </item>
2366                <item type="dictionary">
2367                  <dictionary>
2368                    <item key="custom"><![CDATA[choice]]></item>
2369                    <item key="id"><![CDATA[cmi_interactions_type]]></item>
2370                    <item key="mandatory" type="int">1</item>
2371                    <item key="multilang" type="int">0</item>
2372                    <item key="name"><![CDATA[Type]]></item>
2373                    <item key="repetitive" type="int">0</item>
2374                    <item key="type"><![CDATA[constant]]></item>
2375                  </dictionary>
2376                </item>
2377                <item type="dictionary">
2378                  <dictionary>
2379                    <item key="custom"><![CDATA[//-- BO examQImageHotspot::js_calcRawScore --
2380
2381<dtml-let cmiInteractionType="getObjProperty('cmi_interactions_type',REQUEST)"
2382          cmiInteractionWeighting="getObjProperty('cmi_interactions_weighting',REQUEST)">
2383
2384  // ############################################################
2385  // Image-Hotspot #<dtml-var "REQUEST.get('cmiInteractionNo',0)">
2386  // ############################################################
2387  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.id","<dtml-var id>");
2388  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.type","<dtml-var cmiInteractionType>");
2389  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.weighting","<dtml-var cmiInteractionWeighting>");
2390 
2391  // Get correct_responses.
2392  // ----------------------
2393  var questions = new Array();
2394  <dtml-in "getObjChildren('xqItems',REQUEST)">
2395   <dtml-if "getObjProperty('xqiValue',REQUEST)">
2396    questions[questions.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
2397   </dtml-if>
2398  </dtml-in>
2399  question = "{";
2400  for (i=0; i<questions.length; i++)
2401  {
2402    if (i>0)
2403      question += ",";
2404    question += questions[i];
2405  }
2406  question += "}";
2407  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern",question);
2408 
2409  // Get learner_response.
2410  // ---------------------
2411  var keys = new Array();
2412  var fm = document.examForm;
2413  for (i=0; i<fm.elements.length; i++)
2414  {
2415    var el = fm.elements[i];
2416    <dtml-in "getObjChildren('xqItems',REQUEST)">
2417     if (el.name=="inp_<dtml-var id>:int")
2418       if (el.value=='1')
2419         keys[keys.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
2420    </dtml-in>
2421  }
2422  key = "{";
2423  for (i=0; i<keys.length; i++)
2424  {
2425    if (i>0)
2426      key += ",";
2427    key += keys[i];
2428  }
2429  key += "}";
2430  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response",key);
2431 
2432  // Compare correct_responses with learner_responses.
2433  // -------------------------------------------------
2434  var b = true;
2435  for (i=0; i<questions.length; i++)
2436  {
2437    var found = false;
2438    for (j=0; j<keys.length; j++)
2439      found |= questions[i]==keys[j];
2440    b &= found;
2441  }
2442  for (j=0; j<keys.length; j++)
2443  {
2444    var found = false;
2445    for (i=0; i<questions.length; i++)
2446      found |= questions[i]==keys[j];
2447    b &= found;
2448  }
2449  if (b)
2450  {
2451    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","correct");
2452    rawScore++;
2453  }
2454  else
2455  {
2456    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","incorrect");
2457  }
2458 
2459 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2460 
2461</dtml-let>
2462
2463//-- EO examQImageHotspot::js_calcRawScore --]]>
2464                    </item>
2465                    <item key="id"><![CDATA[js_calcRawScore]]></item>
2466                    <item key="mandatory" type="int">0</item>
2467                    <item key="multilang" type="int">0</item>
2468                    <item key="name"><![CDATA[JavaScript: calcRawScore]]></item>
2469                    <item key="repetitive" type="int">0</item>
2470                    <item key="type"><![CDATA[method]]></item>
2471                  </dictionary>
2472                </item>
2473                <item type="dictionary">
2474                  <dictionary>
2475                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQImageHotspot -->
2476
2477 <script language="JavaScript">
2478 <!--//
2479  <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
2480  document.write( "<h3><dtml-var "REQUEST.get('cmiQuestionNo')">. <dtml-var "getLangStr('LMS_CMI_QUESTION',lang)"></h3>");
2481  function map_<dtml-var id>_Click(id) {
2482    var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
2483    if(learner_response=='')
2484    {
2485        fm = document.examForm;
2486        el = fm.elements['inp_'+id+':int'];
2487        el.value = 1;
2488        confirm("<dtml-var "getLangStr('LMS_CMI_CLICK_REGISTERED',lang)">!");
2489    }
2490    else
2491    {
2492        confirm("<dtml-var "getLangStr('LMS_CMI_QUESTION_ALREADY_ANSWERED',lang)">.");
2493    }
2494    return;
2495  }
2496 //-->
2497 </script>
2498 <div class="form-label">
2499  <dtml-var "getObjProperty('xqText',REQUEST)">
2500 </div>
2501 <div class="form-element">
2502  <dtml-in "getObjChildren('xqItems',REQUEST)">
2503   <dtml-let ch="_.chr(65+_['sequence-index']).upper()">
2504    <script language="JavaScript">
2505    <!--
2506     var sType = "hidden";
2507     var sName = "inp_<dtml-var id>:int";
2508     var sValue = "0";
2509     var sResult = "";
2510     try {
2511       var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
2512       var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
2513       if (learner_response.indexOf("<dtml-var ch>")>=0)
2514         sValue = "1";
2515       var b = ((learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) ||
2516                (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0));
2517       if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) {
2518         sResult += "<font style='color:green'><b>"+"<dtml-var ch>"+"</b></font> ";
2519       }
2520       else if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")<0) {
2521         sResult += "<font style='color:red'><s>"+"<dtml-var ch>"+"</s></font> ";
2522       }
2523       else if (correct_responses.indexOf("<dtml-var ch>")>=0) {
2524         sResult += "<font style='color:green'>"+"<dtml-var ch>"+"</font> ";
2525       }
2526     } catch (e) { }
2527     var sInput = "<input type='" + sType + "' name='"+sName+"' value='"+sValue+"'>";
2528     document.write(sInput);
2529     document.write(sResult);
2530    -->
2531    </script>
2532   </dtml-let>
2533  </dtml-in>
2534  <map name="map_<dtml-var id>">
2535   <dtml-in "getObjChildren('xqItems',REQUEST)">
2536    <area shape=rect coords="<dtml-var "getObjProperty('xqiCoords',REQUEST)">" href="javascript:map_<dtml-var "aq_parent.id">_Click('<dtml-var id>');">
2537   </dtml-in>
2538  </map>
2539  <dtml-let xqImage="getObjProperty('xqImage',REQUEST)">
2540   <br/><img src="<dtml-var "xqImage.getHref(REQUEST)">" usemap="#map_<dtml-var id>" border="0"><br/>
2541  </dtml-let>
2542 </div>
2543 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2544
2545<!-- EO bodyContentZMSCustom_examQImageHotspot -->]]>
2546                    </item>
2547                    <item key="id"><![CDATA[bodyContentZMSCustom_examQImageHotspot]]></item>
2548                    <item key="mandatory" type="int">0</item>
2549                    <item key="multilang" type="int">0</item>
2550                    <item key="name"><![CDATA[Template: Interaction (hot-spot)]]></item>
2551                    <item key="repetitive" type="int">0</item>
2552                    <item key="type"><![CDATA[DTML Method]]></item>
2553                  </dictionary>
2554                </item>
2555              </list>
2556            </item>
2557            <item key="enabled" type="int">0</item>
2558            <item key="id"><![CDATA[examQImageHotspot]]></item>
2559            <item key="name"><![CDATA[Interaction (hot-spot)]]></item>
2560            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
2561            <item key="revision"><![CDATA[0.0.0]]></item>
2562            <item key="type"><![CDATA[ZMSObject]]></item>
2563          </dictionary>
2564        </item>
2565      </dictionary>
2566    </item>
2567    <item type="dictionary">
2568      <dictionary>
2569        <item key="key"><![CDATA[examQImageHotspotItem]]></item>
2570        <item key="value" type="dictionary">
2571          <dictionary>
2572            <item key="__obj_attrs__" type="list">
2573              <list>
2574                <item type="dictionary">
2575                  <dictionary>
2576                    <item key="custom">
2577                      <data content_type="image/gif" filename="hotspotl.gif" type="file">47494638396114001400b300008c0204fcae94fc02fcfc3204f4fafce45e64d11ad1770277270000070000d30000000000501c8ee3c3011412d200000021f90401000002002c000000001400140003043e50c849abbd38ebcdbb9fc12089df1008e2406a6aa1ae9c4b10a1ba15003017450714811c60d0db9c823c5451130408022718067092383fd8ac76cbdd4600003b</data>
2578                    </item>
2579                    <item key="id"><![CDATA[icon]]></item>
2580                    <item key="mandatory" type="int">0</item>
2581                    <item key="multilang" type="int">0</item>
2582                    <item key="name"><![CDATA[Icon]]></item>
2583                    <item key="repetitive" type="int">0</item>
2584                    <item key="type"><![CDATA[resource]]></item>
2585                  </dictionary>
2586                </item>
2587                <item type="dictionary">
2588                  <dictionary>
2589                    <item key="id"><![CDATA[xqiCoords]]></item>
2590                    <item key="mandatory" type="int">1</item>
2591                    <item key="multilang" type="int">1</item>
2592                    <item key="name"><![CDATA[Koordinaten (x1,y1,x2,y2)]]></item>
2593                    <item key="repetitive" type="int">0</item>
2594                    <item key="type"><![CDATA[string]]></item>
2595                  </dictionary>
2596                </item>
2597                <item type="dictionary">
2598                  <dictionary>
2599                    <item key="id"><![CDATA[xqiValue]]></item>
2600                    <item key="mandatory" type="int">1</item>
2601                    <item key="multilang" type="int">0</item>
2602                    <item key="name"><![CDATA[True?]]></item>
2603                    <item key="repetitive" type="int">0</item>
2604                    <item key="type"><![CDATA[boolean]]></item>
2605                  </dictionary>
2606                </item>
2607                <item type="dictionary">
2608                  <dictionary>
2609                    <item key="id"><![CDATA[xqiFeedback]]></item>
2610                    <item key="mandatory" type="int">0</item>
2611                    <item key="multilang" type="int">1</item>
2612                    <item key="name"><![CDATA[Feedback fÌr Koordinaten]]></item>
2613                    <item key="repetitive" type="int">0</item>
2614                    <item key="type"><![CDATA[text]]></item>
2615                  </dictionary>
2616                </item>
2617                <item type="dictionary">
2618                  <dictionary>
2619                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQImageHotspotItem -->
2620
2621<div class="form-text">
2622 <code>(<dtml-var "getObjProperty('xqiCoords',REQUEST)">)</code>
2623</div>
2624
2625<!-- EO bodyContentZMSCustom_examQImageHotspotItem -->]]>
2626                    </item>
2627                    <item key="id"><![CDATA[bodyContentZMSCustom_examQImageHotspotItem]]></item>
2628                    <item key="mandatory" type="int">0</item>
2629                    <item key="multilang" type="int">0</item>
2630                    <item key="name"><![CDATA[Template: Image-Hotspot Item]]></item>
2631                    <item key="repetitive" type="int">0</item>
2632                    <item key="type"><![CDATA[DTML Method]]></item>
2633                  </dictionary>
2634                </item>
2635              </list>
2636            </item>
2637            <item key="enabled" type="int">0</item>
2638            <item key="id"><![CDATA[examQImageHotspotItem]]></item>
2639            <item key="name"><![CDATA[Image-Hotspot Item]]></item>
2640            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
2641            <item key="revision"><![CDATA[0.0.0]]></item>
2642            <item key="type"><![CDATA[ZMSObject]]></item>
2643          </dictionary>
2644        </item>
2645      </dictionary>
2646    </item>
2647    <item type="dictionary">
2648      <dictionary>
2649        <item key="key"><![CDATA[examQMultipleChoice]]></item>
2650        <item key="value" type="dictionary">
2651          <dictionary>
2652            <item key="__obj_attrs__" type="list">
2653              <list>
2654                <item type="dictionary">
2655                  <dictionary>
2656                    <item key="custom">
2657                      <data content_type="image/gif" filename="multiplechoicel.gif" type="file">47494638396114001400b300004c4e4cb4b6b4fcfefcc4c6c4fc02fcbcbebccccecc770077270000070000d30000000000081ce0ebc30614126500000021f90401000004002c000000001400140003044c90c849abbd38ebcdf530a0318c9c219c68e185e228a899899ec58bb1a201bcf625a3805d2d70db9d824201d11714208781a545874c4a2f03675319f51c5157cca0402e44c39db47acdc64400003b</data>
2658                    </item>
2659                    <item key="id"><![CDATA[icon]]></item>
2660                    <item key="mandatory" type="int">0</item>
2661                    <item key="multilang" type="int">0</item>
2662                    <item key="name"><![CDATA[Icon]]></item>
2663                    <item key="repetitive" type="int">0</item>
2664                    <item key="type"><![CDATA[resource]]></item>
2665                  </dictionary>
2666                </item>
2667                <item type="dictionary">
2668                  <dictionary>
2669                    <item key="id"><![CDATA[xqText]]></item>
2670                    <item key="mandatory" type="int">1</item>
2671                    <item key="multilang" type="int">1</item>
2672                    <item key="name"><![CDATA[Text]]></item>
2673                    <item key="repetitive" type="int">0</item>
2674                    <item key="type"><![CDATA[text]]></item>
2675                  </dictionary>
2676                </item>
2677                <item type="dictionary">
2678                  <dictionary>
2679                    <item key="id"><![CDATA[xqType]]></item>
2680                    <item key="keys" type="list">
2681                      <list>
2682                        <item><![CDATA[single]]></item>
2683                        <item><![CDATA[multiple]]></item>
2684                      </list>
2685                    </item>
2686                    <item key="mandatory" type="int">1</item>
2687                    <item key="multilang" type="int">1</item>
2688                    <item key="name"><![CDATA[Type]]></item>
2689                    <item key="repetitive" type="int">0</item>
2690                    <item key="type"><![CDATA[select]]></item>
2691                  </dictionary>
2692                </item>
2693                <item type="dictionary">
2694                  <dictionary>
2695                    <item key="id"><![CDATA[xqItems]]></item>
2696                    <item key="mandatory" type="int">0</item>
2697                    <item key="multilang" type="int">0</item>
2698                    <item key="name"><![CDATA[Items]]></item>
2699                    <item key="repetitive" type="int">1</item>
2700                    <item key="type"><![CDATA[examQMultipleChoiceItem]]></item>
2701                  </dictionary>
2702                </item>
2703                <item type="dictionary">
2704                  <dictionary>
2705                    <item key="id"><![CDATA[cmi_interactions]]></item>
2706                    <item key="mandatory" type="int">0</item>
2707                    <item key="multilang" type="int">0</item>
2708                    <item key="name"><![CDATA[CMI Interactions]]></item>
2709                    <item key="repetitive" type="int">0</item>
2710                    <item key="type"><![CDATA[delimiter]]></item>
2711                  </dictionary>
2712                </item>
2713                <item type="dictionary">
2714                  <dictionary>
2715                    <item key="default"><![CDATA[1.0]]></item>
2716                    <item key="id"><![CDATA[cmi_interactions_weighting]]></item>
2717                    <item key="mandatory" type="int">1</item>
2718                    <item key="multilang" type="int">0</item>
2719                    <item key="name"><![CDATA[Weighting]]></item>
2720                    <item key="repetitive" type="int">0</item>
2721                    <item key="type"><![CDATA[float]]></item>
2722                  </dictionary>
2723                </item>
2724                <item type="dictionary">
2725                  <dictionary>
2726                    <item key="custom"><![CDATA[multiple_choice]]></item>
2727                    <item key="id"><![CDATA[cmi_interactions_type]]></item>
2728                    <item key="mandatory" type="int">1</item>
2729                    <item key="multilang" type="int">0</item>
2730                    <item key="name"><![CDATA[Type]]></item>
2731                    <item key="repetitive" type="int">0</item>
2732                    <item key="type"><![CDATA[constant]]></item>
2733                  </dictionary>
2734                </item>
2735                <item type="dictionary">
2736                  <dictionary>
2737                    <item key="custom"><![CDATA[//-- BO examQMultipleChoice::js_calcRawScore --
2738
2739<dtml-let cmiInteractionType="getObjProperty('cmi_interactions_type',REQUEST)"
2740          cmiInteractionWeighting="getObjProperty('cmi_interactions_weighting',REQUEST)"
2741          thisId="id"
2742          thisXqType="getObjProperty('xqType',REQUEST)">
2743
2744  // ############################################################
2745  // Multiple-Choice #<dtml-var "REQUEST.get('cmiInteractionNo',0)">
2746  // ############################################################
2747  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.id","<dtml-var id>");
2748  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.type","<dtml-var cmiInteractionType>");
2749  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.weighting","<dtml-var cmiInteractionWeighting>");
2750
2751  // Get correct_responses.
2752  // ----------------------
2753  var questions = new Array();
2754  <dtml-in "getObjChildren('xqItems',REQUEST)">
2755   <dtml-if "getObjProperty('xqiValue',REQUEST)">
2756    questions[questions.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
2757   </dtml-if>
2758  </dtml-in>
2759  question = "";
2760  <dtml-if "thisXqType=='single'">
2761   if (questions.length==1) question += questions[0];
2762  <dtml-else>
2763   question += "{";
2764   for (i=0; i<questions.length; i++)
2765   {
2766     if (i>0)
2767       question += ",";
2768     question += questions[i];
2769   }
2770   question += "}";
2771  </dtml-if>
2772  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern",question);
2773 
2774  // Get learner_response.
2775  // ---------------------
2776  var keys = new Array();
2777  var fm = document.examForm;
2778  for (i=0; i<fm.elements.length; i++)
2779  {
2780    var el = fm.elements[i];
2781    <dtml-in "getObjChildren('xqItems',REQUEST)">
2782     <dtml-if "thisXqType=='single'">
2783      if (el.name=="inp_<dtml-var thisId>")
2784        if (el.checked && el.value=='<dtml-var id>')
2785          keys[keys.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
2786     <dtml-else>
2787      if (el.name=="inp_<dtml-var thisId>:list")
2788        if (el.checked && el.value=='<dtml-var id>')
2789          keys[keys.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
2790     </dtml-if>
2791    </dtml-in>
2792  }
2793  key = "";
2794  <dtml-if "thisXqType=='single'">
2795   if (keys.length==1) key += keys[0];
2796  <dtml-else>
2797   key += "{";
2798   for (i=0; i<keys.length; i++)
2799   {
2800     if (i>0)
2801       key += ",";
2802     key += keys[i];
2803   }
2804   key += "}";
2805  </dtml-if>
2806  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response",key);
2807 
2808  // Compare correct_responses with learner_responses.
2809  // -------------------------------------------------
2810  var b = true;
2811  for (i=0; i<questions.length; i++)
2812  {
2813    var found = false;
2814    for (j=0; j<keys.length; j++)
2815      found |= questions[i]==keys[j];
2816    b &= found;
2817  }
2818  for (j=0; j<keys.length; j++)
2819  {
2820    var found = false;
2821    for (i=0; i<questions.length; i++)
2822      found |= questions[i]==keys[j];
2823    b &= found;
2824  }
2825  if (b)
2826  {
2827    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","correct");
2828    rawScore++;
2829  }
2830  else
2831  {
2832    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","incorrect");
2833  }
2834 
2835 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2836 
2837</dtml-let>
2838
2839//-- EO examQMultipleChoice::js_calcRawScore --]]>
2840                    </item>
2841                    <item key="id"><![CDATA[js_calcRawScore]]></item>
2842                    <item key="mandatory" type="int">0</item>
2843                    <item key="multilang" type="int">0</item>
2844                    <item key="name"><![CDATA[JavaScript: calcRawScore]]></item>
2845                    <item key="repetitive" type="int">0</item>
2846                    <item key="type"><![CDATA[method]]></item>
2847                  </dictionary>
2848                </item>
2849                <item type="dictionary">
2850                  <dictionary>
2851                    <item key="custom"><![CDATA[//-- BO examQMultipleChoice::js_formSubmit --//
2852
2853<dtml-let thisId="id"
2854          thisXqType="getObjProperty('xqType',REQUEST)">
2855 <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
2856 <dtml-if "thisXqType=='single'">
2857  obj = document.forms[fmName].elements["inp_<dtml-var id>"];
2858  msg = "<dtml-var "getZMILangStr('MSG_REQUIRED')%'%i. %s'%(REQUEST.get('cmiQuestionNo'),getLangStr('LMS_CMI_QUESTION',lang))">";
2859  dofocus = true;
2860  if ( disallowBlank(obj,msg,dofocus)) return false;
2861 </dtml-if>
2862</dtml-let>
2863
2864//-- EO examQMultipleChoice::js_formSubmit --//]]>
2865                    </item>
2866                    <item key="id"><![CDATA[js_formSubmit]]></item>
2867                    <item key="mandatory" type="int">0</item>
2868                    <item key="multilang" type="int">0</item>
2869                    <item key="name"><![CDATA[JavaScript: formSubmit]]></item>
2870                    <item key="repetitive" type="int">0</item>
2871                    <item key="type"><![CDATA[method]]></item>
2872                  </dictionary>
2873                </item>
2874                <item type="dictionary">
2875                  <dictionary>
2876                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQMultipleChoice -->
2877
2878<dtml-let thisId="id"
2879          thisXqType="getObjProperty('xqType',REQUEST)">
2880 <script language="JavaScript">
2881 <!--
2882  <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
2883  document.write( "<h3><dtml-var "REQUEST.get('cmiQuestionNo')">. <dtml-var "getLangStr('LMS_CMI_QUESTION',lang)"></h3>");
2884  document.write( "<table cellspacing=0 cellpadding=1 border=1>\n");
2885  document.write( "<tr>\n");
2886  document.write( "<td class=\"form-label\" colspan=\"2\"><b><dtml-var "getObjProperty('xqText',REQUEST)" html_quote></b></td>\n");
2887  document.write( "</tr>\n");
2888 <dtml-in "getObjChildren('xqItems',REQUEST)">
2889  <dtml-let ch="_.chr(65+_['sequence-index']).upper()">
2890     var sPre = '<tr>';
2891     sPre += "<td class=\"form-text\"><dtml-var "getObjProperty('xqiText',REQUEST)" html_quote></td>";
2892     sPre += "<td class=\"form-element\">";
2893     var sPost = '</td></tr>';
2894     <dtml-if "thisXqType=='single'">
2895      var sType = "radio";
2896      var sClass = "form-element";
2897      var sName = "inp_<dtml-var thisId>";
2898      var sValue = "<dtml-var id>";
2899      var sInput = "<input type='" + sType + "' class='"+sClass+"' name='"+sName+"' value='"+sValue+"'>";
2900      var sResult = "";
2901      try {
2902        var success_status = doGetValue("cmi.success_status");
2903        var completion_status = doGetValue("cmi.completion_status");
2904        if ( completion_status == "completed")
2905        {
2906          sInput = "";
2907          var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
2908          var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
2909          var b = ((learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) ||
2910                   (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0));
2911          if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0)
2912            sResult += "<font style='color:green'><b>&#8730;</b></font> ";
2913          else if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")<0)
2914            sResult += "<font style='color:red'>f</font> ";
2915          // else if (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")>=0)
2916          //   sResult += "&#9679; ";
2917          else {
2918            sPre    = "";
2919            sResult = "";
2920            sPost   = "";
2921          }
2922          if ( sResult.length > 0) {
2923            sResult += "<dtml-var "getObjProperty('xqiFeedback',REQUEST)">";
2924          }
2925        }
2926      } catch (e) { }
2927     <dtml-else>
2928      var sType = "checkbox";
2929      var sClass = "form-element";
2930      var sName = "inp_<dtml-var thisId>:list";
2931      var sValue = "<dtml-var id>";
2932      var sChecked = "";
2933      var sResult = "";
2934      try {
2935        var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
2936        var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
2937        if (learner_response.indexOf("<dtml-var ch>")>=0)
2938          sChecked = " checked";
2939        var b = ((learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) ||
2940                 (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0));
2941        if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0)
2942          sResult += "<font style='color:green'><b>&#8730;</b></font> ";
2943        else if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")<0)
2944          sResult += "<font style='color:red'>f</font> ";
2945        // else if (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")>=0)
2946        //   sResult += "&#9679; ";
2947        else
2948          sResult += ""
2949      } catch (e) { }
2950      if ( sResult.length > 0) {
2951        sResult += "<dtml-var "getObjProperty('xqiFeedback',REQUEST)">";
2952      }
2953      var sInput = "<input type='"+sType+"' class='"+sClass+"' name='"+sName+"' value='"+sValue+"'"+sChecked+">";
2954     </dtml-if>
2955     document.write( sPre);
2956     document.write( sResult);
2957     document.write( sInput);
2958     document.write( sPost);
2959  </dtml-let>
2960 </dtml-in>
2961  document.write( "</table>\n");
2962 -->
2963 </script>
2964 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
2965</dtml-let>
2966
2967<!-- EO bodyContentZMSCustom_examQMultipleChoice -->]]>
2968                    </item>
2969                    <item key="id"><![CDATA[bodyContentZMSCustom_examQMultipleChoice]]></item>
2970                    <item key="mandatory" type="int">0</item>
2971                    <item key="multilang" type="int">0</item>
2972                    <item key="name"><![CDATA[Template: Interaction (multiple-choice)]]></item>
2973                    <item key="repetitive" type="int">0</item>
2974                    <item key="type"><![CDATA[DTML Method]]></item>
2975                  </dictionary>
2976                </item>
2977              </list>
2978            </item>
2979            <item key="enabled" type="int">0</item>
2980            <item key="id"><![CDATA[examQMultipleChoice]]></item>
2981            <item key="name"><![CDATA[Interaction (multiple-choice)]]></item>
2982            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
2983            <item key="revision"><![CDATA[0.0.0]]></item>
2984            <item key="type"><![CDATA[ZMSObject]]></item>
2985          </dictionary>
2986        </item>
2987      </dictionary>
2988    </item>
2989    <item type="dictionary">
2990      <dictionary>
2991        <item key="key"><![CDATA[examQMultipleChoiceItem]]></item>
2992        <item key="value" type="dictionary">
2993          <dictionary>
2994            <item key="__obj_attrs__" type="list">
2995              <list>
2996                <item type="dictionary">
2997                  <dictionary>
2998                    <item key="custom">
2999                      <data content_type="image/gif" filename="multiplechoicel.gif" type="file">47494638396114001400b300004c4e4cb4b6b4fcfefcc4c6c4fc02fcbcbebccccecc770077270000070000d30000000000081ce0ebc30614126500000021f90401000004002c000000001400140003044c90c849abbd38ebcdf530a0318c9c219c68e185e228a899899ec58bb1a201bcf625a3805d2d70db9d824201d11714208781a545874c4a2f03675319f51c5157cca0402e44c39db47acdc64400003b</data>
3000                    </item>
3001                    <item key="id"><![CDATA[icon]]></item>
3002                    <item key="mandatory" type="int">0</item>
3003                    <item key="multilang" type="int">0</item>
3004                    <item key="name"><![CDATA[Icon]]></item>
3005                    <item key="repetitive" type="int">0</item>
3006                    <item key="type"><![CDATA[resource]]></item>
3007                  </dictionary>
3008                </item>
3009                <item type="dictionary">
3010                  <dictionary>
3011                    <item key="id"><![CDATA[xqiText]]></item>
3012                    <item key="mandatory" type="int">1</item>
3013                    <item key="multilang" type="int">1</item>
3014                    <item key="name"><![CDATA[Aussage]]></item>
3015                    <item key="repetitive" type="int">0</item>
3016                    <item key="type"><![CDATA[string]]></item>
3017                  </dictionary>
3018                </item>
3019                <item type="dictionary">
3020                  <dictionary>
3021                    <item key="id"><![CDATA[xqiValue]]></item>
3022                    <item key="mandatory" type="int">1</item>
3023                    <item key="multilang" type="int">0</item>
3024                    <item key="name"><![CDATA[True?]]></item>
3025                    <item key="repetitive" type="int">0</item>
3026                    <item key="type"><![CDATA[boolean]]></item>
3027                  </dictionary>
3028                </item>
3029                <item type="dictionary">
3030                  <dictionary>
3031                    <item key="id"><![CDATA[xqiFeedback]]></item>
3032                    <item key="mandatory" type="int">0</item>
3033                    <item key="multilang" type="int">1</item>
3034                    <item key="name"><![CDATA[Feedback zur Aussage]]></item>
3035                    <item key="repetitive" type="int">0</item>
3036                    <item key="type"><![CDATA[text]]></item>
3037                  </dictionary>
3038                </item>
3039                <item type="dictionary">
3040                  <dictionary>
3041                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQMultipleChoiceItem -->
3042
3043<div class="form-text">
3044 <input class="form-checkbox" type="checkbox" disabled="disabled" <dtml-if "getObjProperty('xqiValue',REQUEST)">checked="checked"</dtml-if>/>
3045 <dtml-var "getObjProperty('xqiText',REQUEST)">
3046</div>
3047
3048<!-- EO bodyContentZMSCustom_examQMultipleChoiceItem -->]]>
3049                    </item>
3050                    <item key="id"><![CDATA[bodyContentZMSCustom_examQMultipleChoiceItem]]></item>
3051                    <item key="mandatory" type="int">0</item>
3052                    <item key="multilang" type="int">0</item>
3053                    <item key="name"><![CDATA[Template: Multiple Choice Item]]></item>
3054                    <item key="repetitive" type="int">0</item>
3055                    <item key="type"><![CDATA[DTML Method]]></item>
3056                  </dictionary>
3057                </item>
3058              </list>
3059            </item>
3060            <item key="enabled" type="int">0</item>
3061            <item key="id"><![CDATA[examQMultipleChoiceItem]]></item>
3062            <item key="name"><![CDATA[Multiple Choice Item]]></item>
3063            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
3064            <item key="revision"><![CDATA[0.0.0]]></item>
3065            <item key="type"><![CDATA[ZMSObject]]></item>
3066          </dictionary>
3067        </item>
3068      </dictionary>
3069    </item>
3070    <item type="dictionary">
3071      <dictionary>
3072        <item key="key"><![CDATA[examQTrueFalse]]></item>
3073        <item key="value" type="dictionary">
3074          <dictionary>
3075            <item key="__obj_attrs__" type="list">
3076              <list>
3077                <item type="dictionary">
3078                  <dictionary>
3079                    <item key="custom">
3080                      <data content_type="image/gif" filename="truefalsel.gif" type="file">47494638396114001400b300004c4e4c848284c4c6c4b4b6b4fcfefcfc02fcccceccbcbebc270000070000d30000000000b01c98e5c3021412f000000021f90401000005002c0000000014001400030448b0c849abbd38ebcdbbff93210a95689025a1126861ac2cf506001010870babb9f4d6359c6ed7d30101c217712220d06c8441a1b9933261d629d672e86625ddc317442e9bcfe84c04003b</data>
3081                    </item>
3082                    <item key="id"><![CDATA[icon]]></item>
3083                    <item key="mandatory" type="int">0</item>
3084                    <item key="multilang" type="int">0</item>
3085                    <item key="name"><![CDATA[Icon]]></item>
3086                    <item key="repetitive" type="int">0</item>
3087                    <item key="type"><![CDATA[resource]]></item>
3088                  </dictionary>
3089                </item>
3090                <item type="dictionary">
3091                  <dictionary>
3092                    <item key="id"><![CDATA[xqText]]></item>
3093                    <item key="mandatory" type="int">1</item>
3094                    <item key="multilang" type="int">1</item>
3095                    <item key="name"><![CDATA[Text]]></item>
3096                    <item key="repetitive" type="int">0</item>
3097                    <item key="type"><![CDATA[text]]></item>
3098                  </dictionary>
3099                </item>
3100                <item type="dictionary">
3101                  <dictionary>
3102                    <item key="id"><![CDATA[xqItems]]></item>
3103                    <item key="mandatory" type="int">0</item>
3104                    <item key="multilang" type="int">0</item>
3105                    <item key="name"><![CDATA[Items]]></item>
3106                    <item key="repetitive" type="int">1</item>
3107                    <item key="type"><![CDATA[examQTrueFalseItem]]></item>
3108                  </dictionary>
3109                </item>
3110                <item type="dictionary">
3111                  <dictionary>
3112                    <item key="id"><![CDATA[cmi_interactions]]></item>
3113                    <item key="mandatory" type="int">0</item>
3114                    <item key="multilang" type="int">0</item>
3115                    <item key="name"><![CDATA[CMI Interactions]]></item>
3116                    <item key="repetitive" type="int">0</item>
3117                    <item key="type"><![CDATA[delimiter]]></item>
3118                  </dictionary>
3119                </item>
3120                <item type="dictionary">
3121                  <dictionary>
3122                    <item key="default"><![CDATA[1.0]]></item>
3123                    <item key="id"><![CDATA[cmi_interactions_weighting]]></item>
3124                    <item key="mandatory" type="int">1</item>
3125                    <item key="multilang" type="int">0</item>
3126                    <item key="name"><![CDATA[Weighting]]></item>
3127                    <item key="repetitive" type="int">0</item>
3128                    <item key="type"><![CDATA[float]]></item>
3129                  </dictionary>
3130                </item>
3131                <item type="dictionary">
3132                  <dictionary>
3133                    <item key="custom"><![CDATA[true_false]]></item>
3134                    <item key="id"><![CDATA[cmi_interactions_type]]></item>
3135                    <item key="mandatory" type="int">1</item>
3136                    <item key="multilang" type="int">0</item>
3137                    <item key="name"><![CDATA[Type]]></item>
3138                    <item key="repetitive" type="int">0</item>
3139                    <item key="type"><![CDATA[constant]]></item>
3140                  </dictionary>
3141                </item>
3142                <item type="dictionary">
3143                  <dictionary>
3144                    <item key="custom"><![CDATA[//-- BO examQTrueFalse::js_calcRawScore --
3145
3146<dtml-let cmiInteractionType="getObjProperty('cmi_interactions_type',REQUEST)"
3147          cmiInteractionWeighting="getObjProperty('cmi_interactions_weighting',REQUEST)">
3148
3149  // ############################################################
3150  // True/False #<dtml-var "REQUEST.get('cmiInteractionNo',0)">
3151  // ############################################################
3152  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.id","<dtml-var id>");
3153  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.type","<dtml-var cmiInteractionType>");
3154  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.weighting","<dtml-var cmiInteractionWeighting>");
3155
3156  // Get correct_responses.
3157  // ----------------------
3158  var questions = new Array();
3159  <dtml-in "getObjChildren('xqItems',REQUEST)">
3160   <dtml-if "getObjProperty('xqiValue',REQUEST)">
3161    questions[questions.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
3162   </dtml-if>
3163  </dtml-in>
3164  question = "{";
3165  for (i=0; i<questions.length; i++)
3166  {
3167    if (i>0)
3168      question += ",";
3169    question += questions[i];
3170  }
3171  question += "}";
3172  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern",question);
3173 
3174  // Get learner_response.
3175  // ---------------------
3176  var keys = new Array();
3177  var fm = document.examForm;
3178  for (i=0; i<fm.elements.length; i++)
3179  {
3180    var el = fm.elements[i];
3181    <dtml-in "getObjChildren('xqItems',REQUEST)">
3182     if (el.name=="inp_<dtml-var id>:int")
3183       if (el.checked && el.value=='1')
3184         keys[keys.length] = "<dtml-var "_.chr(65+_['sequence-index'])">";
3185    </dtml-in>
3186  }
3187  key = "{";
3188  for (i=0; i<keys.length; i++)
3189  {
3190    if (i>0)
3191      key += ",";
3192    key += keys[i];
3193  }
3194  key += "}";
3195  doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response",key);
3196 
3197  // Compare correct_responses with learner_responses.
3198  // -------------------------------------------------
3199  var b = true;
3200  for (i=0; i<questions.length; i++)
3201  {
3202    var found = false;
3203    for (j=0; j<keys.length; j++)
3204      found |= questions[i]==keys[j];
3205    b &= found;
3206  }
3207  for (j=0; j<keys.length; j++)
3208  {
3209    var found = false;
3210    for (i=0; i<questions.length; i++)
3211      found |= questions[i]==keys[j];
3212    b &= found;
3213  }
3214  if (b)
3215  {
3216    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","correct");
3217    rawScore++;
3218  }
3219  else
3220  {
3221    doSetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.result","incorrect");
3222  }
3223 
3224 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
3225 
3226</dtml-let>
3227
3228//-- BO examQTrueFalse::js_calcRawScore --]]>
3229                    </item>
3230                    <item key="id"><![CDATA[js_calcRawScore]]></item>
3231                    <item key="mandatory" type="int">0</item>
3232                    <item key="multilang" type="int">0</item>
3233                    <item key="name"><![CDATA[JavaScript: calcRawScore]]></item>
3234                    <item key="repetitive" type="int">0</item>
3235                    <item key="type"><![CDATA[method]]></item>
3236                  </dictionary>
3237                </item>
3238                <item type="dictionary">
3239                  <dictionary>
3240                    <item key="custom"><![CDATA[//-- BO examQTrueFalse::js_formSubmit --//
3241
3242<dtml-let thisId="id"
3243          thisXqType="getObjProperty('xqType',REQUEST)">
3244 <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
3245</dtml-let>
3246
3247//-- EO examQTrueFalse::js_formSubmit --//]]>
3248                    </item>
3249                    <item key="id"><![CDATA[js_formSubmit]]></item>
3250                    <item key="mandatory" type="int">0</item>
3251                    <item key="multilang" type="int">0</item>
3252                    <item key="name"><![CDATA[JavaScript: formSubmit]]></item>
3253                    <item key="repetitive" type="int">0</item>
3254                    <item key="type"><![CDATA[method]]></item>
3255                  </dictionary>
3256                </item>
3257                <item type="dictionary">
3258                  <dictionary>
3259                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQTrueFalse -->
3260
3261 <dtml-call "REQUEST.set('cmiQuestionNo',REQUEST.get('cmiQuestionNo',0)+1)">
3262 <h3><dtml-var "REQUEST.get('cmiQuestionNo')">. <dtml-var "getLangStr('LMS_CMI_QUESTION',lang)"></h3>
3263 <table cellspacing="0" cellpadding="1" border="0">
3264 <tr>
3265  <td class="form-label" colspan="3"><dtml-var "getObjProperty('xqText',REQUEST)"></td>
3266 </tr>
3267 <tr>
3268  <td class="form-label">&nbsp;</td>
3269  <td class="form-label" width="50" align="center">Falsch</td>
3270  <td class="form-label" width="50" align="center">Richtig</td>
3271 </tr>
3272 <dtml-in "getObjChildren('xqItems',REQUEST)">
3273 <dtml-let ch="_.chr(65+_['sequence-index']).upper()">
3274 <tr>
3275  <td class="form-text"><dtml-var "getObjProperty('xqiText',REQUEST)"></td>
3276  <td class="form-element" width="50" align="right">
3277   <script language="JavaScript">
3278   <!--
3279    var sType = "radio";
3280    var sClass = "form-element";
3281    var sName = "inp_<dtml-var id>:int";
3282    var sValue = "0";
3283    var sInput = "<input type='" + sType + "' class='"+sClass+"' name='"+sName+"' value='"+sValue+"'>";
3284    var sResult = "";
3285    try {
3286      var success_status = doGetValue("cmi.success_status");
3287      var completion_status = doGetValue("cmi.completion_status");
3288      if ( completion_status == "completed")
3289      {
3290        sInput = "";
3291        var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
3292        var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
3293        var b = ((learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) ||
3294                 (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0));
3295        if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")<0)
3296          sResult += "<font style='color:green'>&raquo;</font> ";
3297        else if (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0)
3298          sResult += "<font style='color:green'><b>&raquo;</b></font> ";
3299        else if (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")>=0)
3300          sResult += "<font style='color:red'>f</font> ";
3301        else
3302          sResult += "&nbsp;";
3303      }
3304    } catch (e) { }
3305    document.write(sResult);
3306    document.write(sInput);
3307   -->
3308   </script>
3309   &nbsp;
3310  </td>
3311  <td class="form-element" width="50" align="right">
3312   <script language="JavaScript">
3313   <!--
3314    var sType = "radio";
3315    var sClass = "form-element";
3316    var sName = "inp_<dtml-var id>:int";
3317    var sValue = "1";
3318    var sInput = "<input type='" + sType + "' class='"+sClass+"' name='"+sName+"' value='"+sValue+"'>";
3319    var sResult = "";
3320    try {
3321      var success_status = doGetValue("cmi.success_status");
3322      var completion_status = doGetValue("cmi.completion_status");
3323      if ( completion_status == "completed")
3324      {
3325        sInput = "";
3326        var learner_response = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.learner_response");
3327        var correct_responses = doGetValue("cmi.interactions.<dtml-var "REQUEST.get('cmiInteractionNo',0)">.correct_responses.0.pattern");
3328        var b = ((learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0) ||
3329                 (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")<0));
3330        if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")>=0)
3331          sResult += "<font style='color:green'><b>&raquo;</b></font> ";
3332        else if (learner_response.indexOf("<dtml-var ch>")>=0 && correct_responses.indexOf("<dtml-var ch>")<0)
3333          sResult += "<font style='color:red'>f</font> ";
3334        else if (learner_response.indexOf("<dtml-var ch>")<0 && correct_responses.indexOf("<dtml-var ch>")>=0)
3335          sResult += "<font style='color:green'>&raquo;</font> ";
3336        else
3337          sResult += "&nbsp;"
3338      }
3339    } catch (e) { }
3340    document.write(sResult);
3341    document.write(sInput);
3342   -->
3343   </script>
3344   &nbsp;
3345  </td>
3346 </tr>
3347 </dtml-let>
3348 </dtml-in>
3349 </table>
3350 <dtml-call "REQUEST.set('cmiInteractionNo',REQUEST.get('cmiInteractionNo',0)+1)">
3351
3352<!-- EO bodyContentZMSCustom_examQTrueFalse -->]]>
3353                    </item>
3354                    <item key="id"><![CDATA[bodyContentZMSCustom_examQTrueFalse]]></item>
3355                    <item key="mandatory" type="int">0</item>
3356                    <item key="multilang" type="int">0</item>
3357                    <item key="name"><![CDATA[Template: Interaction (true-false)]]></item>
3358                    <item key="repetitive" type="int">0</item>
3359                    <item key="type"><![CDATA[DTML Method]]></item>
3360                  </dictionary>
3361                </item>
3362              </list>
3363            </item>
3364            <item key="enabled" type="int">0</item>
3365            <item key="id"><![CDATA[examQTrueFalse]]></item>
3366            <item key="name"><![CDATA[Interaction (true-false)]]></item>
3367            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
3368            <item key="revision"><![CDATA[0.0.0]]></item>
3369            <item key="type"><![CDATA[ZMSObject]]></item>
3370          </dictionary>
3371        </item>
3372      </dictionary>
3373    </item>
3374    <item type="dictionary">
3375      <dictionary>
3376        <item key="key"><![CDATA[examQTrueFalseItem]]></item>
3377        <item key="value" type="dictionary">
3378          <dictionary>
3379            <item key="__obj_attrs__" type="list">
3380              <list>
3381                <item type="dictionary">
3382                  <dictionary>
3383                    <item key="custom">
3384                      <data content_type="image/gif" filename="truefalsel.gif" type="file">47494638396114001400b300004c4e4c848284c4c6c4b4b6b4fcfefcfc02fcccceccbcbebc270000070000d30000000000b01c98e5c3021412f000000021f90401000005002c0000000014001400030448b0c849abbd38ebcdbbff93210a95689025a1126861ac2cf506001010870babb9f4d6359c6ed7d30101c217712220d06c8441a1b9933261d629d672e86625ddc317442e9bcfe84c04003b</data>
3385                    </item>
3386                    <item key="id"><![CDATA[icon]]></item>
3387                    <item key="mandatory" type="int">0</item>
3388                    <item key="multilang" type="int">0</item>
3389                    <item key="name"><![CDATA[Icon]]></item>
3390                    <item key="repetitive" type="int">0</item>
3391                    <item key="type"><![CDATA[resource]]></item>
3392                  </dictionary>
3393                </item>
3394                <item type="dictionary">
3395                  <dictionary>
3396                    <item key="id"><![CDATA[xqiText]]></item>
3397                    <item key="mandatory" type="int">1</item>
3398                    <item key="multilang" type="int">1</item>
3399                    <item key="name"><![CDATA[Aussage]]></item>
3400                    <item key="repetitive" type="int">0</item>
3401                    <item key="type"><![CDATA[string]]></item>
3402                  </dictionary>
3403                </item>
3404                <item type="dictionary">
3405                  <dictionary>
3406                    <item key="id"><![CDATA[xqiValue]]></item>
3407                    <item key="mandatory" type="int">1</item>
3408                    <item key="multilang" type="int">0</item>
3409                    <item key="name"><![CDATA[True?]]></item>
3410                    <item key="repetitive" type="int">0</item>
3411                    <item key="type"><![CDATA[boolean]]></item>
3412                  </dictionary>
3413                </item>
3414                <item type="dictionary">
3415                  <dictionary>
3416                    <item key="id"><![CDATA[xqiFeedback]]></item>
3417                    <item key="mandatory" type="int">0</item>
3418                    <item key="multilang" type="int">1</item>
3419                    <item key="name"><![CDATA[Feedback zur Aussage]]></item>
3420                    <item key="repetitive" type="int">0</item>
3421                    <item key="type"><![CDATA[text]]></item>
3422                  </dictionary>
3423                </item>
3424                <item type="dictionary">
3425                  <dictionary>
3426                    <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_examQTrueFalseItem -->
3427
3428<div class="form-text">
3429 <input class="form-checkbox" type="checkbox" disabled="disabled" <dtml-if "getObjProperty('xqiValue',REQUEST)">checked="checked"</dtml-if>/>
3430 <dtml-var "getObjProperty('xqiText',REQUEST)">
3431</div>
3432
3433<!-- EO bodyContentZMSCustom_examQTrueFalseItem -->]]>
3434                    </item>
3435                    <item key="id"><![CDATA[bodyContentZMSCustom_examQTrueFalseItem]]></item>
3436                    <item key="mandatory" type="int">0</item>
3437                    <item key="multilang" type="int">0</item>
3438                    <item key="name"><![CDATA[Template: True/False Item]]></item>
3439                    <item key="repetitive" type="int">0</item>
3440                    <item key="type"><![CDATA[DTML Method]]></item>
3441                  </dictionary>
3442                </item>
3443              </list>
3444            </item>
3445            <item key="enabled" type="int">0</item>
3446            <item key="id"><![CDATA[examQTrueFalseItem]]></item>
3447            <item key="name"><![CDATA[True/False Item]]></item>
3448            <item key="package"><![CDATA[com.zms.elc.lcms]]></item>
3449            <item key="revision"><![CDATA[0.0.0]]></item>
3450            <item key="type"><![CDATA[ZMSObject]]></item>
3451          </dictionary>
3452        </item>
3453      </dictionary>
3454    </item>
3455  </list>
Note: See TracBrowser for help on using the repository browser.