<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by Astrid Jenssen (University of Oslo) -->
<!-- version 2.01 of CDM;  2005.03.09  (University of Oslo, USIT) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:annotation>
    <xs:documentation xml:lang="en">
		Version 2.01 of CDM, Date: 2005.03.09
			Developed on behalf of  Norway Opening Universities (NOU) by:
			University of Oslo, USIT: Dagfinn Bergsager, Astrid Jenssen, Tina Lingjærde, Andora Sjøgren, Geir Vangen
			Pharos: Dag Belsnes
			Email: cdm-arbeidsgruppe@usit.uio.no
			
			Changes from Version 2:
			- Added attribute language to the text-element
			
        This XML schema is a specificaion for describing courses (or other forms of educational offerings at all levels).
        Groupe Technique de CDM-fr (Université des Sciences etTechnologies de Lille  - Lille1- Claude Viéville) :
		- Ajout des types infoBlock français et utilisés par les éléments de CDM 
		- modifications des codeSet de programCode et courseCode
		</xs:documentation>
  </xs:annotation>
  <xs:element name="CDM">
    <xs:annotation>
      <xs:documentation>Root element. A course information container with a collection of course related information. </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="properties" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Basic packaging information that is used to manage the exchange of the data between the source and target systems</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="datasource" type="xs:token" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>This is the source address/identifier of the Enterprise system that is initiating the data transfer.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="target" type="xs:token" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>An identifier for the target Enterprise System. This identifier should be capable of uniquely identifying the appropriate Enterprise System.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="type" type="xs:token" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Describes the type of event that caused the source system to generate the data objects. </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="datetime" type="CDMdateTime" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>The date and time the data objects were generated by the data source.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element ref="infoBlock" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="language" type="xs:language" use="optional"/>
          </xs:complexType>
        </xs:element>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="orgUnit"/>
          <xs:element ref="program"/>
          <xs:element ref="course"/>
          <xs:element ref="person"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="language" type="xs:language" use="optional"/>
    </xs:complexType>
  </xs:element>
  <!-- *** Types *** -->
  <xs:simpleType name="orgUnitCodeValueSet">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for orgUnitCode  (national codesets in Norway). so = nasjonale koder som brukes til opptak via SO. vigo = nasjonale koder for videregående opplæring.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="so"/>
      <xs:enumeration value="vigo"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="orgUnitKindValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for orgUnitKind (university, high school etc)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="universitet"/>
      <xs:enumeration value="vitenskapeligHogskole"/>
      <xs:enumeration value="kunsthogskole"/>
      <xs:enumeration value="folkehogskole"/>
      <xs:enumeration value="hogskole"/>
      <xs:enumeration value="fagskole"/>
      <xs:enumeration value="videregaendeFylke"/>
      <xs:enumeration value="videregaende"/>
      <xs:enumeration value="studieforbund"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="programCodeValueSet">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for programCode (national codesets in Norway). soUtdanningsomraadet= oversikt fra SO (samordna opptak) for kategorisering av utdanning. so = nasjonale koder som brukes til opptak via SO. NUS= Norsk utdanningsstandard, defineres av SSB.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="soUtdanningsomraadet"/>
      <xs:enumeration value="so"/>
      <xs:enumeration value="nus"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="courseCodeValueSet">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for courseCode (national codesets in Norway). NUS= Norsk utdanningsstandard, defineres av SSB.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="nus"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="studyPaceValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for programDuration (full time, part time)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="heltid"/>
      <xs:enumeration value="deltid"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="timeOfDayValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for program teachingPlace (daytime, evening)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="dagtid"/>
      <xs:enumeration value="kveldstid"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="degreeValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for degree (degrees in Norway)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="bachelor"/>
      <xs:enumeration value="master"/>
      <xs:enumeration value="phd"/>
      <xs:enumeration value="hogskolekandidat"/>
      <xs:enumeration value="utgaatteKoder"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="levelValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for level (levels  in Norway).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="vgs"/>
      <xs:enumeration value="folkehogskole"/>
      <xs:enumeration value="bachelor"/>
      <xs:enumeration value="master"/>
      <xs:enumeration value="phd"/>
      <xs:enumeration value="fagskole"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="levelCompetenceYieldingValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for levelCompetenceYielding.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="academic"/>
      <xs:enumeration value="nonAcademic"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="formOfTeachingOrgValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for formOfTeaching (distance education, centralized, decentralized). How the teaching is organized.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="fjernundervisning"/>
      <xs:enumeration value="desentralisert"/>
      <xs:enumeration value="samling"/>
      <xs:enumeration value="kombinert"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="formOfTeachingMethodValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for formOfTeaching (faceToFace, web based, web enhanced, correspondance). How the teaching is accomplished.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="ansiktTilAnsikt"/>
      <xs:enumeration value="webBasert"/>
      <xs:enumeration value="webStøttet"/>
      <xs:enumeration value="korrespondanse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="teachingTermValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for teachingTerm (every spring, every other autumn etc) </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="vaarOgHoest"/>
      <xs:enumeration value="hverVaar"/>
      <xs:enumeration value="hverHoest"/>
      <xs:enumeration value="annenhverVaar"/>
      <xs:enumeration value="annenhverHoest"/>
      <xs:enumeration value="annet"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="examKindValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for examKind (ordinary, continuation, postponed). Kontinuasjon gjelder for de som har strøket til eksamen, utsatt for de med gyldig fravær.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="ordinaer"/>
      <xs:enumeration value="kontinuasjon"/>
      <xs:enumeration value="utsatt"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="examFormValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for examForm (written, oral)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="skriftlig"/>
      <xs:enumeration value="muntlig"/>
      <xs:enumeration value="mappe"/>
      <xs:enumeration value="hjemmeeksamen"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="partStructureValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for examOrganisation</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="alternative"/>
      <xs:enumeration value="allParts"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="programType">
    <xs:annotation>
      <xs:documentation>Description of a program. ECTS: An approved set of course units or modules recognised for the award of a specific degree form a study programme and can be defined through the set of learning outcomes to be achieved for the award of a specified number of credits. (I Norge: på univ. og høgskolenivå tilsvarer det studieprogram og studieretninger. I vgs tilsvarer det løp eller deler av løp i vgs. (GK, VK1 eller VK2).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="programID" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Shorthand identification of the study program</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="programName" type="textType">
        <xs:annotation>
          <xs:documentation>Full name of the study program</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="programCode" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A study program code according to a codification scheme. The choice of codification rule can be given by the attribute codeSet. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="codeSet" type="xs:token" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="webLink" minOccurs="0"/>
      <xs:element name="programDescription" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A (short) general description of the study program</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="qualification" minOccurs="0"/>
      <xs:element ref="level" minOccurs="0"/>
      <xs:element ref="learningObjectives" minOccurs="0"/>
      <xs:element ref="admissionInfo" minOccurs="0"/>
      <xs:element ref="recommendedPrerequisites" minOccurs="0"/>
      <xs:element ref="formalPrerequisites" minOccurs="0"/>
      <xs:element ref="teachingPlace" minOccurs="0"/>
      <xs:element ref="targetGroup" minOccurs="0"/>
      <xs:element ref="formOfTeaching" minOccurs="0"/>
      <xs:element ref="programDuration" minOccurs="0"/>
      <xs:element ref="programStructure" minOccurs="0"/>
      <xs:element ref="regulations" minOccurs="0"/>
      <xs:element ref="studyAbroad" minOccurs="0"/>
      <xs:element ref="expenses" minOccurs="0"/>
      <xs:element ref="universalAdjustment" minOccurs="0"/>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="subProgram"/>
        <xs:element ref="refProgram"/>
      </xs:choice>
      <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="optional"/>
    <xs:attribute name="ident" type="xs:token" use="optional"/>
    <xs:attribute name="language" type="xs:language" use="optional"/>
  </xs:complexType>
  <xs:complexType name="examType">
    <xs:annotation>
      <xs:documentation>Exam information</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="examName" type="textType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Name of the exam</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="examKind" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Type of assessment: e.g. oral examination, written examination, oral presentation, test, paper, portfolio, thesis, report about an internship, report on fieldwork, continuous assessment. 
Kind of exam: e.g. ordinary, extraordinary examination.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="infoBlockL1Type">
              <xs:attribute name="examKind" type="examKindValueType" use="optional"/>
              <xs:attribute name="examForm" type="examFormValueType" use="optional"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="registrationDeadline" minOccurs="0"/>
      <xs:element ref="cancelDeadline" minOccurs="0"/>
      <xs:element ref="evaluationDeadline" minOccurs="0"/>
      <xs:element ref="examStart" minOccurs="0"/>
      <xs:element ref="examEnd" minOccurs="0"/>
      <xs:element name="examDuration" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Duration of the exam. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="infoBlockL1Type">
              <xs:attribute name="duration" type="xs:duration" use="optional"/>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="examLocation" minOccurs="0"/>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
      <xs:element name="examStructure" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Exam part structure </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="partStructure" type="infoBlockL1Type" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Description of relationships between the exam parts</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="examParts" type="examType" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>List of exam parts</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="examPartStructure" type="partStructureValueType" use="optional"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="teachingActivityValueType">
    <xs:annotation>
      <xs:documentation>Enumeration set of values for teachingActivity (lecture, class work, seminar, project etc)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="forelesning"/>
      <xs:enumeration value="kollokvie"/>
      <xs:enumeration value="seminar"/>
      <xs:enumeration value="ovingsgruppe"/>
      <xs:enumeration value="prosjekt"/>
      <xs:enumeration value="gruppearbeid"/>
      <xs:enumeration value="labovelse"/>
      <xs:enumeration value="samling"/>
      <xs:enumeration value="webBasert"/>
      <xs:enumeration value="webStøttet"/>
      <xs:enumeration value="korrespondanse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="CDMdateTime" mixed="true">
    <xs:annotation>
      <xs:documentation>Moment of time given by date and/or time of day and/or text</xs:documentation>
    </xs:annotation>
    <xs:complexContent mixed="true">
      <xs:extension base="infoBlockL1Type">
        <xs:attribute name="date" type="xs:date" use="optional"/>
        <xs:attribute name="time" type="xs:time" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CDMdate" mixed="true">
    <xs:annotation>
      <xs:documentation>Period of time given by date and/or text</xs:documentation>
    </xs:annotation>
    <xs:complexContent mixed="true">
      <xs:extension base="infoBlockL1Type">
        <xs:attribute name="date" type="xs:date" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CDMtime" mixed="true">
    <xs:annotation>
      <xs:documentation>Moment of time given by time of day and/or text</xs:documentation>
    </xs:annotation>
    <xs:complexContent mixed="true">
      <xs:extension base="infoBlockL1Type">
        <xs:attribute name="time" type="xs:time" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CDMlocation">
    <xs:annotation>
      <xs:documentation>Location given by room and/or building and/or text</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="adr" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="room" type="xs:token" use="optional"/>
    <xs:attribute name="building" type="xs:token" use="optional"/>
  </xs:complexType>
  <xs:complexType name="textType" mixed="true">
    <xs:annotation>
      <xs:documentation>Text expressed in one or more languages</xs:documentation>
    </xs:annotation>
    <xs:sequence maxOccurs="unbounded">
      <xs:element name="text">
        <xs:annotation>
          <xs:documentation>The information of this text expressed in a given languages</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:string">
              <xs:attribute name="language" type="xs:language" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <!-- *** Organisational Unit *** -->
  <xs:complexType name="orgUnitType">
    <xs:annotation>
      <xs:documentation>An element of type orgUnitType represents an organisational unit that organises or provides study programs and courses. In general, a given program or course may be organised/provided by multiple organisational units. An organisational unit can have a hierarchical structure with subordinate organisational units (e.g. university, faculty, institute). The concept of organisational unit is supposed to encompass all organisational structures with educational offerings from a traditional university to a loosely defined consortium. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="orgUnitID" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Shorthand identification of the organisation unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="orgUnitName" type="textType">
        <xs:annotation>
          <xs:documentation>Full name of the organisation unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="orgUnitAcronym" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Acronym for the organisation unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="orgUnitCode" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>An organisation unit code according to a codification scheme. The choice of codification rule can be given by the attribute codeSet. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="codeSet" type="orgUnitCodeValueSet" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="orgUnitKind" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Kind of organisation unit, ex university, high school and responsible body such as public or privat. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="infoBlockL1Type">
              <xs:attribute name="orgType" type="orgUnitKindValueType" use="optional"/>
              <xs:attribute name="responsibleBody" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="offentlig"/>
                    <xs:enumeration value="privat"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="webLink" minOccurs="0"/>
      <xs:element name="orgUnitDescription" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A general description of the organisational unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="admissionInfo" minOccurs="0"/>
      <xs:element ref="regulations" minOccurs="0"/>
      <xs:element ref="expenses" minOccurs="0"/>
      <xs:element ref="studentFacilities" minOccurs="0"/>
      <xs:element ref="universalAdjustment" minOccurs="0"/>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="program">
          <xs:annotation>
            <xs:documentation>gjelder som løp eller deler av løp i vgs. (GK, VK1 eller VK2)</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element ref="refProgram"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="course"/>
        <xs:element ref="refCourse"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="person"/>
        <xs:element ref="refPerson"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="orgUnit"/>
        <xs:element ref="refOrgUnit"/>
      </xs:choice>
      <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="optional"/>
    <xs:attribute name="ident" type="xs:token" use="optional"/>
    <xs:attribute name="language" type="xs:language" use="optional"/>
  </xs:complexType>
  <xs:element name="orgUnit" type="orgUnitType">
    <xs:annotation>
      <xs:documentation>Organisational unit</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="studentFacilities" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>General information for students such as cost of living, accommodation, meals, medical facilities, insurance, sports facilities, student associations etc.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!-- *** Program  *** -->
  <xs:element name="program">
    <xs:annotation>
      <xs:documentation>A description of a study program that is organised or provided by an organisational unit.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="programType"/>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="programDescription" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>A (short) general description of the study program</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="qualification">
    <xs:annotation>
      <xs:documentation>Learning outcomes, skills, competencies, marks and/or grades obtained, rights to practise and/or professional status at different levels accorded to the holders of the qualification.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="qualificationName" type="textType" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Full name of the qualification</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="qualificationDescription" type="infoBlockL1Type" minOccurs="0"/>
        <xs:element ref="credits" minOccurs="0"/>
        <xs:element ref="degree" minOccurs="0"/>
        <xs:element ref="profession" minOccurs="0"/>
        <xs:element ref="studyQualification" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="level">
    <xs:annotation>
      <xs:documentation>Level of the study, eg undergraduate, bachelor, master.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="level" type="levelValueType" use="optional"/>
          <xs:attribute name="competenceYielding" type="levelCompetenceYieldingValueType" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="learningObjectives" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Aim and objective of the study (preferably expressed in terms of learning outcomes and competence). Learning outcomes are statements of what a learner is expected to know, understand and/or be able to demonstrate after completion of a process of learning.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="admissionInfo">
    <xs:annotation>
      <xs:documentation>General information about admission.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="admissionDescription" type="infoBlockL1Type" minOccurs="0"/>
        <xs:element ref="studentPlaces" minOccurs="0"/>
        <xs:element ref="teachingStart" minOccurs="0"/>
        <xs:element ref="registrationDeadline" minOccurs="0"/>
        <xs:element ref="cancelDeadline" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="recommendedPrerequisites" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Description of any recommended prerequisites for the program or course.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="formalPrerequisites" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Description of any formal prerequisites for the program or course.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="teachingPlace">
    <xs:annotation>
      <xs:documentation>Where the teaching and learning activities takes place.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="CDMlocation"/>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="targetGroup" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>The intended target group of the information about the study.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="formOfTeaching">
    <xs:annotation>
      <xs:documentation>Describes the form of teaching, e.g. face to face,   web enhanced, web based.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="org" type="formOfTeachingOrgValueType" use="optional"/>
          <xs:attribute name="method" type="formOfTeachingMethodValueType" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="programDuration">
    <xs:annotation>
      <xs:documentation>Information about time and duration of the program.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="start" type="xs:date" use="optional"/>
          <xs:attribute name="duration" type="xs:duration" use="optional"/>
          <xs:attribute name="studyPace" type="studyPaceValueType" use="optional"/>
          <xs:attribute name="timeOfDay" type="timeOfDayValueType" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="programStructure" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Information about how the study program is structured, e.g. as a course structure diagram.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="regulations" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>A general description of regulations, e.g. examination regulations and regulations regarding courses, assessment types and grading scales.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="studyAbroad" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Information about possibilities of performing study abroad</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="expenses">
    <xs:annotation>
      <xs:documentation>Expected expenses associated with the organisational unit, program or course.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="price" type="xs:nonNegativeInteger" use="optional"/>
          <xs:attribute name="currency" type="xs:token" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="universalAdjustment" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Facilities for special needs students</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="studentPlaces">
    <xs:annotation>
      <xs:documentation>Limitation on the number of attending students</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="places" type="xs:nonNegativeInteger" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="teachingStart" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Information about the start of study </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="degree">
    <xs:annotation>
      <xs:documentation>Degree describes the qualification awarded by a higher education institution after successful completion of a prescribed study programme.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="degree" type="degreeValueType" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="profession" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Learning outcomes, skills,  	job opportunities. What does the qualification give in terms of employment or professional practice.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="studyQualification" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Qualification giving access to further study.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="subProgram">
    <xs:annotation>
      <xs:documentation>Description of a sub-program, e.g. discipline (I Norge: eks. studieretning,  spesialisering)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="programType"/>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- *** Course  *** -->
  <xs:complexType name="courseType">
    <xs:annotation>
      <xs:documentation>Description of a course unit with curriculum, time schedule, teaching activities and exam.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="courseID" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Shorthand identification of the course unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="courseName" type="textType">
        <xs:annotation>
          <xs:documentation>Full name of the course unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="courseCode" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A course unit code according to a codification scheme. The choice of codification rule can be given by the attribute codeSet. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="codeSet" type="xs:token" use="optional"/>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="webLink" minOccurs="0"/>
      <xs:element name="courseDescription" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A (short) general description of the course unit</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="level" minOccurs="0"/>
      <xs:element ref="teachingTerm" minOccurs="0"/>
      <xs:element ref="credits" minOccurs="0"/>
      <xs:element ref="learningObjectives" minOccurs="0"/>
      <xs:element ref="admissionInfo" minOccurs="0"/>
      <xs:element ref="recommendedPrerequisites" minOccurs="0"/>
      <xs:element ref="formalPrerequisites" minOccurs="0"/>
      <xs:element ref="teachingPlace" minOccurs="0"/>
      <xs:element ref="targetGroup" minOccurs="0"/>
      <xs:element ref="formOfTeaching" minOccurs="0"/>
      <xs:element ref="formOfAssessment" minOccurs="0"/>
      <xs:element name="benefits" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Description of benefits, e.g. grants, available for students attending the course.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="instructionLanguage" minOccurs="0"/>
      <xs:element name="overlap" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Overlap, ex between courses.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="syllabus" minOccurs="0"/>
      <xs:element ref="expenses" minOccurs="0"/>
      <xs:element ref="universalAdjustment" minOccurs="0"/>
      <xs:element name="exam" type="examType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Description of the exam of the course</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="teachingActivity" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Description of the teaching activities of the course</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="teachingActivityType"/>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
      <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="optional"/>
    <xs:attribute name="ident" type="xs:token" use="optional"/>
    <xs:attribute name="language" type="xs:language" use="optional"/>
  </xs:complexType>
  <xs:element name="course">
    <xs:annotation>
      <xs:documentation>Description of a course (I Norge: emne, kurs, fag)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="courseType"/>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="teachingTerm">
    <xs:annotation>
      <xs:documentation>Information on when the course is held, ex every spring, year of study.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="start" type="xs:token" use="optional"/>
          <xs:attribute name="term" type="teachingTermValueType" use="optional"/>
          <xs:attribute name="studyPace" type="studyPaceValueType" use="optional"/>
          <xs:attribute name="timeOfDay" type="timeOfDayValueType" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="credits">
    <xs:annotation>
      <xs:documentation>Indication of the student workload as ECTS (European Credit Transfer System)-credits and/or as hours per week and/or as text.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="ECTScredits" type="xs:nonNegativeInteger" use="optional"/>
          <xs:attribute name="hoursPerWeek" type="xs:nonNegativeInteger" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="formOfAssessment" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>How is the students assessed. The total range of written, oral and practical tests/examinations, projects and portfolios, used to evaluate the student’s progress in the course unit or module, form an assessment. These measures may be used by the students to evaluate their own progress (formative assessment) or by the institution to judge whether the student has achieved the learning outcomes of the course unit or module (summative assessment).</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="instructionLanguage">
    <xs:annotation>
      <xs:documentation>Main language of instruction</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="infoBlockL1Type">
          <xs:attribute name="teachingLang" type="xs:language" use="optional"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="syllabus" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Information on syllabus, ex  books/literature prescribed for study. (This is a natural place to refer to LOM objects).</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!-- *** Exam  *** -->
  <xs:element name="registrationDeadline" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Deadline for registration to the study or exam</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="cancelDeadline" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Deadline for cancelling any registration to the study or exam. </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="evaluationDeadline" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Deadline for announcement of the results of the exam</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="examStart" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Date and time for the start of the exam</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="examEnd" type="CDMdateTime">
    <xs:annotation>
      <xs:documentation>Date and time for the end of the exam</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="examLocation" type="CDMlocation">
    <xs:annotation>
      <xs:documentation>Location of the exam</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!-- *** Teaching activity *** -->
  <xs:complexType name="teachingActivityType">
    <xs:annotation>
      <xs:documentation>Information on how the teaching activity is organised, ex lecture, seminar, research seminar, exercise course, practical, laboratory work, guided personal study, tutorial, independent studies, internship, placement or ‘stage’, fieldwork, project work etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="teachingActivityID" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Shorthand identification of the teaching activity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="teachingActivityName" type="textType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Full name of the teaching activity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="admissionInfo" minOccurs="0"/>
      <xs:element ref="timetableElement" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="instructionLanguage" minOccurs="0"/>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
      <xs:element name="teachingActivityStructure" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Teaching activity part structure</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="partStructure" type="infoBlockL1Type" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Description of relationships between the activity parts</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="activityParts" type="teachingActivityType" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>List of teaching activity parts</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="activityPartStructure" type="partStructureValueType" use="optional"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="method" type="teachingActivityValueType" use="optional"/>
    <xs:attribute name="org" type="formOfTeachingOrgValueType" use="optional"/>
    <xs:attribute name="timeOfDay" type="timeOfDayValueType" use="optional"/>
    <xs:attribute name="userDefined" type="xs:token" use="optional"/>
  </xs:complexType>
  <!-- *** Timetable element *** -->
  <xs:complexType name="timetableType">
    <xs:annotation>
      <xs:documentation>Description of an entry in a time table</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="0">
        <xs:element name="reoccurringEvents">
          <xs:annotation>
            <xs:documentation>Events occurring many times in a period</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="occurrenceRule" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Rule of the occurrences, e.g. each Monday</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:complexContent>
                    <xs:extension base="infoBlockL1Type">
                      <xs:attribute name="weekday" type="xs:token" use="optional"/>
                    </xs:extension>
                  </xs:complexContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="dateFrom" type="CDMdate" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Start of period</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="dateTo" type="CDMdate" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>End of period</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="timeFrom" type="CDMtime" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Time of the start of each event in the period</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="timeTo" type="CDMtime" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Time of the end of each event in the period</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="singleEvent">
          <xs:annotation>
            <xs:documentation>Start and end of a single event</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="start" type="CDMdateTime" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Time of the start of the event</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="end" type="CDMdateTime" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Time of the end of the event</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:element ref="teachingPlace" minOccurs="0"/>
      <xs:element ref="contacts" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="timetableElement" type="timetableType">
    <xs:annotation>
      <xs:documentation>Time table entry</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!-- *** Person *** -->
  <xs:complexType name="personType">
    <xs:annotation>
      <xs:documentation>Contact information of persons related to the accomplishment of courses.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="personID" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Identification of the person</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="name">
        <xs:annotation>
          <xs:documentation>Name of the person</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="given" type="xs:token">
              <xs:annotation>
                <xs:documentation>Given name</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="family" type="xs:token">
              <xs:annotation>
                <xs:documentation>Family name</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="title" type="textType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Title posessed by the person</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="role" type="textType" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A person may have different roles in different contexts, e.g. lecturer.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="contactData" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="optional"/>
    <xs:attribute name="ident" type="xs:token" use="optional"/>
    <xs:attribute name="language" type="xs:language" use="optional"/>
  </xs:complexType>
  <xs:element name="person">
    <xs:annotation>
      <xs:documentation>Information about a person</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="personType"/>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- *** Address and contact information*** -->
  <xs:element name="adr">
    <xs:annotation>
      <xs:documentation>The address used to deliver physical objects to this contact. </xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="pobox" type="xs:token" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The post office box number component of the address</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="extadr" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Extra address space. Any non-street components of the address e.g., suite number, etc</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="street" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The actual street address</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="locality" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The locality component of the address e.g., the City. Use attribute for County code.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:token">
                <xs:attribute name="countyCode" type="xs:nonNegativeInteger" use="optional"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
        <xs:element name="region" type="xs:token" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The region component of the address. State and Province are examples of Region</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="pcode" type="xs:token" minOccurs="0">
          <xs:annotation>
            <xs:documentation>The postal code component of the address. This format varies from country to country.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="country" type="xs:token" minOccurs="0">
          <xs:annotation>
            <xs:documentation>he country component of the address. The format is based upon ISO3166.</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="contactDataType">
    <xs:annotation>
      <xs:documentation>Information such as address, telephone, fax, email, URL etc. related to a given contact.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="contactName" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The name relevant for this contact.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="textType"/>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
      <xs:element ref="adr" minOccurs="0"/>
      <xs:element name="visitHour" type="infoBlockL1Type" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Information on when the contact is available.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="telephone" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>The telephone numbers used for this contact. Attribute: mobil, home and office</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="teltype" use="optional">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="mobile"/>
                    <xs:enumeration value="office"/>
                    <xs:enumeration value="home"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="fax" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Fax number</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="email" minOccurs="0"/>
      <xs:element ref="webLink" minOccurs="0"/>
      <xs:element ref="infoBlock" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="userDefined" type="xs:token" use="optional"/>
  </xs:complexType>
  <xs:element name="contacts">
    <xs:annotation>
      <xs:documentation>A set of contact information. A contact can be given by contact data (address, etc.), by indication of a person, by indication of a organisational unit, or by a textual description.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="contactData" minOccurs="0"/>
        <xs:element ref="person" minOccurs="0"/>
        <xs:element ref="refPerson" minOccurs="0"/>
        <xs:element ref="refOrgUnit" minOccurs="0"/>
        <xs:element ref="infoBlock" minOccurs="0"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <xs:element name="contactData" type="contactDataType">
    <xs:annotation>
      <xs:documentation>Information such as address, telephone, fax, email, URL etc. related to a given contact.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!--*** infoBlock ***-->
  <xs:complexType name="infoBlockType" mixed="true">
    <xs:annotation>
      <xs:documentation>General type for various kind of information</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="header" type="xs:token" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Header text for this information block</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="bold" type="xs:string">
          <xs:annotation>
            <xs:documentation>Text in bold</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="italic" type="xs:string">
          <xs:annotation>
            <xs:documentation>Text in italic</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="list">
          <xs:annotation>
            <xs:documentation>A list of items. The list can be bulleted or numbered</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
              <xs:element name="listItem" type="infoBlockType"/>
            </xs:sequence>
            <xs:attribute name="listType" use="optional" default="bulleted">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="bulleted"/>
                  <xs:enumeration value="numbered"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="email" type="xs:token">
          <xs:annotation>
            <xs:documentation>email address</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element ref="webLink"/>
        <xs:choice>
          <xs:annotation>
            <xs:documentation>A reference to a xxx-element based on application rules. </xs:documentation>
          </xs:annotation>
          <xs:element ref="refOrgUnit"/>
          <xs:element ref="refProgram"/>
          <xs:element ref="refCourse"/>
          <xs:element ref="refPerson"/>
        </xs:choice>
        <xs:element name="picture" type="infoBlockType">
          <xs:annotation>
            <xs:documentation>Picture, use attribute to refer to picture file and/or type text in the element. </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
      <xs:element name="extension" type="xs:anyType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>To ensure extensibility, the specification requires that there be no limit on potential extensions by use of the extension element. To be used for adding information to an existing XML structure.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subBlock" type="infoBlockType" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Nesting of information in sub-blocks</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="altLangBlock" type="infoBlockType" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>The information of this block expressed in other languages</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="blockLang" type="xs:language" use="optional"/>
    <xs:attribute name="userDefined" type="xs:token" use="optional"/>
  </xs:complexType>
  <xs:element name="infoBlock" type="infoBlockL1Type">
    <xs:annotation>
      <xs:documentation>Miscellaneous information</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="email" type="xs:token">
    <xs:annotation>
      <xs:documentation>Email address</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="webLink">
    <xs:annotation>
      <xs:documentation>Link to a web page. Possbile to describe the role of the web page such as home page and LOM (learning object metadata)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="href"/>
        <xs:element name="linkName" type="xs:token" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Name of the web page</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="role" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="homepage"/>
            <xs:enumeration value="learningObjectMetadata"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="userDefined" type="xs:token" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="href" type="xs:anyURI">
    <xs:annotation>
      <xs:documentation>URL, ex http://www.estandard.no</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="refOrgUnit">
    <xs:annotation>
      <xs:documentation>Reference to a orgUnit element</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="idRef" type="xs:IDREF" use="optional"/>
      <xs:attribute name="ref" type="xs:token" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="refProgram">
    <xs:annotation>
      <xs:documentation>Reference to a program element</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="idRef" type="xs:IDREF" use="optional"/>
      <xs:attribute name="ref" type="xs:token" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="refCourse">
    <xs:annotation>
      <xs:documentation>Reference to a course element</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="idRef" type="xs:IDREF" use="optional"/>
      <xs:attribute name="ref" type="xs:token" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="refPerson">
    <xs:annotation>
      <xs:documentation>Reference to a person element</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="idRef" type="xs:IDREF" use="optional"/>
      <xs:attribute name="ref" type="xs:token" use="optional"/>
      <xs:attribute name="role" type="xs:token" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="searchword" type="xs:token">
    <xs:annotation>
      <xs:documentation>A search text that can be used to identify the enclosing element.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <!--InfoBlock for CDM-fr-->
  <xs:complexType name="infoBlockL1Type" mixed="true">
    <xs:complexContent mixed="true">
      <xs:restriction base="infoBlockType">
        <xs:sequence>
          <xs:element name="header" type="xs:token" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Header text for this information block</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="bold" type="xs:string">
              <xs:annotation>
                <xs:documentation>Text in bold</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="italic" type="xs:string">
              <xs:annotation>
                <xs:documentation>Text in italic</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="list">
              <xs:annotation>
                <xs:documentation>A list of items. The list can be bulleted or numbered</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="listItem" type="infoBlockType"/>
                </xs:sequence>
                <xs:attribute name="listType" use="optional" default="bulleted">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="bulleted"/>
                      <xs:enumeration value="numbered"/>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="email" type="xs:token">
              <xs:annotation>
                <xs:documentation>email address</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element ref="webLink"/>
            <xs:choice>
              <xs:annotation>
                <xs:documentation>A reference to a xxx-element based on application rules. </xs:documentation>
              </xs:annotation>
              <xs:element ref="refOrgUnit"/>
              <xs:element ref="refProgram"/>
              <xs:element ref="refCourse"/>
              <xs:element ref="refPerson"/>
            </xs:choice>
            <xs:element name="picture" type="infoBlockType">
              <xs:annotation>
                <xs:documentation>Picture, use attribute to refer to picture file and/or type text in the element. </xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:choice>
          <xs:element name="subBlock" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Nesting of information in sub-blocks</xs:documentation>
            </xs:annotation>
            <xs:complexType mixed="true">
              <xs:complexContent mixed="true">
                <xs:extension base="infoBlockL2Type"/>
              </xs:complexContent>
            </xs:complexType>
          </xs:element>
          <xs:element name="altLangBlock" type="infoBlockAltType" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>The information of this block expressed in other languages</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="infoBlockL2Type">
    <xs:complexContent>
      <xs:restriction base="infoBlockType">
        <xs:sequence>
          <xs:element name="header" type="xs:token" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Header text for this information block</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="bold" type="xs:string">
              <xs:annotation>
                <xs:documentation>Text in bold</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="italic" type="xs:string">
              <xs:annotation>
                <xs:documentation>Text in italic</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="list">
              <xs:annotation>
                <xs:documentation>A list of items. The list can be bulleted or numbered</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="listItem" type="infoBlockType"/>
                </xs:sequence>
                <xs:attribute name="listType" use="optional" default="bulleted">
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="bulleted"/>
                      <xs:enumeration value="numbered"/>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="email" type="xs:token">
              <xs:annotation>
                <xs:documentation>email address</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element ref="webLink"/>
            <xs:choice>
              <xs:annotation>
                <xs:documentation>A reference to a xxx-element based on application rules. </xs:documentation>
              </xs:annotation>
              <xs:element ref="refOrgUnit"/>
              <xs:element ref="refProgram"/>
              <xs:element ref="refCourse"/>
              <xs:element ref="refPerson"/>
            </xs:choice>
            <xs:element name="picture" type="infoBlockType">
              <xs:annotation>
                <xs:documentation>Picture, use attribute to refer to picture file and/or type text in the element. </xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:choice>
          <xs:element name="extension" type="xs:anyType" minOccurs="0">
            <xs:annotation>
              <xs:documentation>To ensure extensibility, the specification requires that there be no limit on potential extensions by use of the extension element. To be used for adding information to an existing XML structure.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="subBlock" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Nesting of information in sub-blocks</xs:documentation>
            </xs:annotation>
            <xs:complexType mixed="true">
              <xs:complexContent mixed="true">
                <xs:extension base="infoBlockL2Type"/>
              </xs:complexContent>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="infoBlockAltType">
    <xs:complexContent>
      <xs:restriction base="infoBlockType">
        <xs:sequence>
          <xs:element name="header" type="xs:token" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Header text for this information block</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="email" type="xs:token">
              <xs:annotation>
                <xs:documentation>email address</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element ref="webLink"/>
            <xs:element name="picture" type="infoBlockType">
              <xs:annotation>
                <xs:documentation>Picture, use attribute to refer to picture file and/or type text in the element. </xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:choice>
          <xs:element name="subBlock" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Nesting of information in sub-blocks</xs:documentation>
            </xs:annotation>
            <xs:complexType mixed="true">
              <xs:complexContent mixed="true">
                <xs:extension base="infoBlockL2Type"/>
              </xs:complexContent>
            </xs:complexType>
          </xs:element>
          <xs:element ref="searchword" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>
