Errors found while checking this document as XHTML 1.0 Strict!

Result: 3 Errors
:
Modified:(undefined)
Server:Apache/2.2.16 (Debian)
Size:(undefined)
Content-Type:text/html
: utf-8
: XHTML 1.0 Strict
Root Element: html
Root Namespace: http://www.w3.org/1999/xhtml
Options

Help on the options is available.

↑ Top

Validation Output: 3 Errors

  1. Error Line 136, Column 4: end tag for element "p" which is not open
    </p>The import process is somewhat different based on whether you're running mo…

    The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

    If this error occurred in a script section of your document, you should probably read this FAQ entry.

  2. Error Line 138, Column 110: end tag for element "p" which is not open
    …dle system in order to host the Access database while importing test banks.</p>

    The Validator found an end tag for the above element, but that element is not currently open. This is often caused by a leftover end tag from an element that was removed during editing, or by an implicitly closed element (if you have an error related to an element being used where it is not allowed, this is almost certainly the case). In the latter case this error will disappear as soon as you fix the original problem.

    If this error occurred in a script section of your document, you should probably read this FAQ entry.

  3. Error Line 153, Column 51: there is no attribute "target"
    …p://odbcsock.sourceforge.net/" target="_new"><b>ODBC Socket Server</b></a>.  I…

    You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).

    This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.

    How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the <embed> element to incorporate flash media in a Web page, see the FAQ item on valid flash.

↑ Top

Source Listing

Below is the source input I used for this validation:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en" xml:lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" type="text/css" href="http://www.di.uevora.pt/moodle/theme/standard/styles.php" />
  6. <link rel="stylesheet" type="text/css" href="http://www.di.uevora.pt/moodle/theme/standardwhite/styles.php" />
  7. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/yui/yahoo/yahoo-min.js"></script><script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/yui/event/event-min.js"></script><script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/yui/connection/connection-min.js"></script><script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/swfobject/swfobject.js"></script><script type="text/javascript">
  8. //<![CDATA[
  9. var flashversion = swfobject.getFlashPlayerVersion();
  10. YAHOO.util.Connect.asyncRequest('GET','http://www.di.uevora.pt/moodle/login/environment.php?sesskey=NrsX51XruC&flashversion='+flashversion.major+'.'+flashversion.minor+'.'+flashversion.release);
  11. //]]>
  12. </script>
  13. <!--[if IE 7]>
  14. <link rel="stylesheet" type="text/css" href="http://www.di.uevora.pt/moodle/theme/standard/styles_ie7.css" />
  15. <![endif]-->
  16. <!--[if IE 6]>
  17. <link rel="stylesheet" type="text/css" href="http://www.di.uevora.pt/moodle/theme/standard/styles_ie6.css" />
  18. <![endif]-->
  19. <meta name="keywords" content="moodle, Help " />
  20. <title>Help</title>
  21. <link rel="shortcut icon" href="http://www.di.uevora.pt/moodle/theme/standardwhite/favicon.ico" />
  22. <!--<style type="text/css">/*<![CDATA[*/ body{behavior:url(http://www.di.uevora.pt/moodle/lib/csshover.htc);} /*]]>*/</style>-->
  23. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/javascript-static.js"></script>
  24. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/javascript-mod.php"></script>
  25. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/overlib/overlib.js"></script>
  26. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/overlib/overlib_cssstyle.js"></script>
  27. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/cookies.js"></script>
  28. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/ufo.js"></script>
  29. <script type="text/javascript" src="http://www.di.uevora.pt/moodle/lib/dropdown.js"></script>
  30. <script type="text/javascript" defer="defer">
  31. //<![CDATA[
  32. setTimeout('fix_column_widths()', 20);
  33. //]]>
  34. </script>
  35. <script type="text/javascript">
  36. //<![CDATA[
  37. function openpopup(url, name, options, fullscreen) {
  38. var fullurl = "http://www.di.uevora.pt/moodle" + url;
  39. var windowobj = window.open(fullurl, name, options);
  40. if (!windowobj) {
  41. return true;
  42. }
  43. if (fullscreen) {
  44. windowobj.moveTo(0, 0);
  45. windowobj.resizeTo(screen.availWidth, screen.availHeight);
  46. }
  47. windowobj.focus();
  48. return false;
  49. }
  50. function uncheckall() {
  51. var inputs = document.getElementsByTagName('input');
  52. for(var i = 0; i < inputs.length; i++) {
  53. inputs[i].checked = false;
  54. }
  55. }
  56. function checkall() {
  57. var inputs = document.getElementsByTagName('input');
  58. for(var i = 0; i < inputs.length; i++) {
  59. inputs[i].checked = true;
  60. }
  61. }
  62. function inserttext(text) {
  63. text = ' ' + text + ' ';
  64. if ( opener.document.forms['theform'].message.createTextRange && opener.document.forms['theform'].message.caretPos) {
  65. var caretPos = opener.document.forms['theform'].message.caretPos;
  66. caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
  67. } else {
  68. opener.document.forms['theform'].message.value += text;
  69. }
  70. opener.document.forms['theform'].message.focus();
  71. }
  72. function getElementsByClassName(oElm, strTagName, oClassNames){
  73. var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
  74. var arrReturnElements = new Array();
  75. var arrRegExpClassNames = new Array();
  76. if(typeof oClassNames == "object"){
  77. for(var i=0; i<oClassNames.length; i++){
  78. arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
  79. }
  80. }
  81. else{
  82. arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
  83. }
  84. var oElement;
  85. var bMatchesAll;
  86. for(var j=0; j<arrElements.length; j++){
  87. oElement = arrElements[j];
  88. bMatchesAll = true;
  89. for(var k=0; k<arrRegExpClassNames.length; k++){
  90. if(!arrRegExpClassNames[k].test(oElement.className)){
  91. bMatchesAll = false;
  92. break;
  93. }
  94. }
  95. if(bMatchesAll){
  96. arrReturnElements.push(oElement);
  97. }
  98. }
  99. return (arrReturnElements)
  100. }
  101. //]]>
  102. </script>
  103. </head>
  104. <body class=" course-1 dir-ltr lang-en_utf8" id="help">
  105. <div id="page">
  106. <!-- END OF HEADER -->
  107. <div id="content" class=" clearfix"><div class="box generalbox generalboxcontent"><h1>Importing "Course Test Manager" files</h1>
  108. <p>Course Test Manager is an "End of Lifetime" software package from Course Technology.
  109. It is no longer being actively developed by Course Technology. It has been replaced by
  110. a new test manager called ExamView. However, there has never been a migration path to allow
  111. this format to be exported from CTM test banks to any other common test format. This is why this
  112. module has been written.</p>
  113. <p> In order to import questions from CTM, you must have CTM installed on a Windows machine, and
  114. have access to the MS Access data files on that machine. Two data files are required in order to
  115. access the data files:</p>
  116. <ul><li>System.mda - This file is in the top directory of your CTM installation, and is referred to
  117. in MS access parlance as the "System Database".</li>
  118. <li>ctm.mdb - this is the database that contains the test bank questions. There is one of these databases
  119. for each course installed in CTM. It is located in a directory one level below your CTM installation
  120. directory.</li>
  121. </ul>
  122. </p>The import process is somewhat different based on whether you're running moodle on Windows or Linux.
  123. Regardless of what platform moodle is running on, you must have a Windows system (Windows 2000 or Windows XP)
  124. on the same network as your moodle system in order to host the Access database while importing test banks.</p>
  125. <p>The process is somewhat easier on a <b>Windows-based</b> moodle system. All you need to do to use the CTM import
  126. class is:</p>
  127. <ol><li>upload the system.mda system database to moodle using the file manager. It doesn't matter what course you
  128. upload the system.mda file to. Moodle will find it regardless.</li>
  129. <li>Crete your quiz and go into the "import questions from file" process. Upload your chosen ctm.mdb
  130. database as the file to import. If you did this correctly, you will see another screen that allows you
  131. to choose the sub-category of questions to import from the database. The reason this step is here is that
  132. CTM test banks often contain a large number of categorised questions, based on the chapters of the book or
  133. sections of the course.</li>
  134. </ol>
  135. <p>The process on a <b>Linux-based</b> moodle system includes a third-party software component called the
  136. <a href="http://odbcsock.sourceforge.net/" target="_new"><b>ODBC Socket Server</b></a>. In order to import CTM databases on Linux, you must first download and install
  137. this small network program on the Windows system that hosts your CTM databases. <b>Do not</b> follow the installation
  138. steps outlined in the ODBC Socket Server Installation. They're more complicated than they need to be!
  139. Instead, follow these steps to install this program on your Windows system:</p>
  140. <ol><li>Go to the windows system and unzip the install file you downloaded from
  141. <a href="http://odbcsock.sourceforge.net/" target="_new">this site</a> on the system.</li>
  142. <li>Copy the binary ODBCSocketServer.exe to a permanent location, such as your system directory
  143. (probably C:\WINNT\ or C:\Windows) or your Program Files directory. </li>
  144. <li>Install the ODBC Socket Server as a Service on the system with this command:<br />
  145. <b>&lt;path you copied the file to in the step above&gt;ODBCSocketServer.exe /Service</b><br />
  146. You may do this by typing this command from Start-&gt;Run... dialog, or from a command prompt.</li>
  147. <li>Open the Service Manager by either going to
  148. Start-&gt;Settings-&gt;Control Panels-&gt;Administrative Tools-&gt;Services or by right-clicking on
  149. <b>My Computer</b>, choosing <b>Manage</b>, then choosing <b>Services and Applications-&gt;Services</b> from
  150. the right panel. You may also access the Service manager by typing <b>services.msc</b> in the Start-&gt;Run...
  151. dialog</li>
  152. <li>In the Service manager, right-click the ODBC Socket Server item and choose the <b>Start</b> item. It's status
  153. should change to "started" when you do this. Note that you may stop and/or disable this service completely after
  154. you've completed the import process.</li>
  155. <li>Make sure that the system.mda and ctm.mdb access data files are on the machine,
  156. and that the MS Access ODBC driver is present. It is installed in a standard Windows installation. You can
  157. determine if it installed by opening the "Data Sources" item in "Administrative Tools" and referring to the "Drivers"
  158. tab. You're going to have to determine where CTM is installed and locate the system.mda file and the ctm.mdb database
  159. or databases you're interested in importing data from. Make note of the full local paths to these files as well
  160. as the IP address or hostname of the Windows server. You're going to need this information for the import process.</li>
  161. <li>Now you may import the testbank or testbanks into moodle. Crete your quiz and go into the
  162. "import questions from file" process. <b>NOW HERE'S WHERE THINGS ARE DIFFERENT FOR LINUX - </b>
  163. YOU MUST SPECIFY A DUMMY FILE IN THE UPLOAD FIELD TO GET THE IMPORT PROCESS STARTED. THIS FILE <b>WILL NOT</b>
  164. BE PROCESSED, IT'S JUST A PLACEHOLDER FOR THE IMPORT FORM. YOU WILL GET A PLACE TO SPECIFY THE WINDOWS SERVER
  165. INFORMATION NEXT. Next, you will get a screen where you can type in the hostname for the Windows ODBC Socket Server
  166. machine as well as the paths to the system and testbank databases. Type in the information you wrote down from the
  167. previous step here and click "Connect to Server". If everything was set up correctly, you'll get another form to allow
  168. you to choose the sub-category of questions to import from the database. The reason this step is here is that
  169. CTM test banks often contain a large number of categorised questions, based on the chapters of the book or
  170. sections of the course. IF YOU GET TO THIS STEP WITHOUT ERROR MESSAGES, YOU HAVE SET UP THE SOCKET SERVER CORRECTLY
  171. AND YOU'RE ABOUT TO IMPORT QUESTIONS TO MOODLE!</li>
  172. </ol>
  173. <p>If you received error messages during this process, you may find this technical information useful.
  174. The ODBC Socket server uses port 9628 to open a socket and trade and XML query for an XML result table of
  175. the query results. The import class parses that XML and use it just like I use a local query to do the importing.
  176. </p>
  177. </div><div class="closewindow">
  178. <form action="#"><div><input type="button" onclick="self.close();" value="Close this window" /></div></form></div>
  179. <p class="helpindex"><a href="help.php?file=index.html">Index of all help files</a></p></div><div id="footer"><hr /><p class="helplink"></p> <div class="validators"><ul>
  180. <li><a href="http://validator.w3.org/check?verbose=1&amp;ss=1&amp;uri=http%3A%2F%2Fwww.di.uevora.pt%2Fmoodle%2Fhelp.php%3Fmodule%3Dquiz%26file%3Dformatctm.html">Validate HTML</a></li>
  181. <li><a href="http://www.contentquality.com/mynewtester/cynthia.exe?rptmode=-1&amp;url1=http%3A%2F%2Fwww.di.uevora.pt%2Fmoodle%2Fhelp.php%3Fmodule%3Dquiz%26file%3Dformatctm.html">Section 508 Check</a></li>
  182. <li><a href="http://www.contentquality.com/mynewtester/cynthia.exe?rptmode=0&amp;warnp2n3e=1&amp;url1=http%3A%2F%2Fwww.di.uevora.pt%2Fmoodle%2Fhelp.php%3Fmodule%3Dquiz%26file%3Dformatctm.html">WCAG 1 (2,3) Check</a></li>
  183. </ul></div>
  184. </div>
  185. </div>
  186. </body>
  187. </html>

↑ Top