The structure of the eLML XML Schema

eLML uses W3C XML Schema to define all the elements and attributes that are allowed within an eLML eLearning lesson. To some extent the content of elements and attributes is also defined (e.g. enumerations). eLML consists of three XML "core" schemas named elml.xsd, biblio_harvard.xsd and metadata_elml.xsd completed with the project-specific validate.xsd (the latter is not in the structure folder but in the _config folder of your project - see chapter about the folder structure). Referencing the validate.xsd from a XML document allows for validation of the document against the eLML structure defined in the XML Schema.

Please note that the exact definition of the eLML Schema structure is found the "manual" folder within the eLML "core" folder. This extensive automatically generated reference file is updated with every eLML version and always reflects the current eLML Schema definitions.

The elml.xsd file

The elml.xsd file is the heart of the eLML structure. All the main elements are defined within this XML Schema. Some explanations about this schema can be found in the schema itself when opened in a simple text editor or with an XML editor. In order to be part of the "eLML community" it is absolutely imperative that everyone is using the same XML Schema. XML documents that can be validated against the standard defined in the eLML XML Schema will be able to share XSLT files, scripts and tools developed for eLML. To validate an eLML lesson XML file use the validate.xsd file described below (it includes all the following files).

The biblio_harvard.xsd file

The elml.xsd file includes the biblio_harvard.xsd file. In the latter all the bibliography elements are defined according to the Harvard standard. The creation of this XML Schema was roughly guided by the referencing guide of the Bournemouth University (SCILS 2004). If you want to use another referencing style you will have to create a new XML Schema defining the needed elements. Call this new XML Schema "biblio_yourstylename.xsd" and save into the structure folder. To replace the biblio_harvard.xsl file you will need to change the following line in the validate.xsd

<xs:include schemaLocation="biblio_harvard.xsd"/>
<xs:include schemaLocation="biblio_yourstylename.xsd"/>.

Note that then you will also need to change the layout files to include the new bibliography elements. Besides the Harvard style eLML also offers transformation files for the APA bibliographic style (American Psychological Association 2007). Please note for both XSLT files (APA and Harvard) the same biblio_harvard.xsd schema file is used (both standards use more or less the same elements).

The metadata_elml.xsd file

The elml.xsd file includes the metadata_elml.xsd file. In the latter all the metadata elements are defined. Those metadata elements were adapted from GITTA and do not directly comply with any official metadata standard such as LOM (Learning Object Metadata by IMS). But the eLML XSLT file contains a template to create an IMS Metadata compatible LOM file! This is actually required for the IMS Content Package manifest file. If you want to use another set of metadata (e.g. an official metadata standard) then you will have to take the XSD file of the selected metadata standard and include it in the validate.xsd file replacing the current reference to the metadata_elml.xsd (see below). Save the XSD file of the selected metadata standard into the structure folder or in a subfolder (to be created) of the structure folder. To replace the metadata_elml.xsl file you will need to change the following line in the validate.xsd

<xs:include schemaLocation="metadata_elml.xsd"/>
<xs:include schemaLocation="pathIfNeeded/filenameOfYourStandard.xsd"/>.

Note that then you will also need to change the layout files to include the new metadata elements.

The validate.xsd file

Even though it is recommended that all use the unchanged elml.xsd file there are some possibilities to adapt the structure to the needs of your project. Most of these possibilities are united in the validate.xsd file (located in the_config folder of your project not in the core structure folder). Like the name says this is a configuration file in which some changes for the needs of your own project can be made. The parameters that can be changed are:

  • the levels of the lessons
  • the module names (shortcuts)
  • the icons used for the layout and their format
  • the institutions and departments
  • the lesson labels
  • the language shortcuts available
  • the copyright statement
  • etc.

We used to have fix values like "_blank" or "_top" also for the "target" attribute of the link element. But this was not very convenient because users want to name the target (window) according to their needs. Therefore since eLML 5 we changed this and now the value entered is not checked. If you still want to have just a list of values allowed for the "target" attribute you need to replace the following line 8 in the validate.xsd:

<xs:include schemaLocation="../../core/structure/elml.xsd"/>

with this statement (basically replace a xs:include with a xs:redefine):

<xs:redefine schemaLocation="../../core/structure/elml.xsd">
<xs:simpleType name="targetType">
<xs:restriction base="elml:targetType">
<xs:enumeration value="_blank"/>
<xs:enumeration value="_top"/>
<xs:enumeration value="yourtargetname"/>

Please note that in XHTML 1.1 Strict the target-attribute is not allowed and thus if you choose to generate XHTML 1.1 Strict code you should not use the target-attribute of the link element because eLML will simply ignore it.

The config.xsd file

The config.xsd file defines the structure of the "config.xml" configuration file which lies in the _config folder of your project. eLML uses this file while transforming lessons into different formats. You can find detailed information about configuring the eLML output transformation here. An exact schema reference for the config.xsd file can also be found in the core/manual folder.