<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://fsws.usit.no/schemas/basdata" targetNamespace="http://fsws.usit.no/schemas/basdata" elementFormDefault="qualified">
    <xs:annotation>
        <xs:documentation xml:lang="en">
            Versjon 1.7.0 av basdata
            Utviklet av: Universitetet Oslo, USIT, Leiv Hellebø
            Epost: fs-ws-core@usit.uio.no
        </xs:documentation>
        <xs:documentation> 
            Skjemaet er ment for utveksling av studentdata og fagpersondata
            mellom FS (http://www.fs.usit.uio.no) og
            brukeradministrasjonssystemer (BAS) i bruk ved institusjonene.
        </xs:documentation>
        <xs:documentation>             
            Skjemaet spesifiserer utdanningselementer som studieprogram, 
            kurs, undervisningsenheter, studenter, fagpersoner mm.
        </xs:documentation>
        <xs:documentation>             
            Skjemaet er en nyskriving av CDM-2.01 utviklet av USIT/Pharos,
            som igjen var en modifisert utgave av utdanning.no's CDM.
        </xs:documentation>
        <xs:documentation>             
            Dokumentasjon finnes på: http://www.fs.usit.uio.no
            Skjemalokasjon: http://fsws.usit.no/schemas/basdata/basdata-1.6.xsd
        </xs:documentation>
    </xs:annotation>
    <xs:element name="basdata">
        <xs:annotation>
            <xs:documentation>Rot for studentdata-eksporten.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="institusjon"/>
                <xs:element ref="program" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="undenhet" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="kurs" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="fagperson" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="student" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="aar" type="xs:gYear" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Aar og termin angir hvilket semester eksporten gjelder for.
                        Semester beregnes ut fra hvilket semester som har tidspunkt for eksport mellom
                            Semesterregistrering.Dato_Gjelder_Fra  og
                            Semesterregistrering.Dato_Gjelder_Til.
                        Hvis semester ikke blir funnet slik, gis en defaultverdi basert på eksporttidspunkt
                        og tabellen Arstermin.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="termin" type="xs:token" use="required"/>
            <xs:attribute name="generert" type="xs:dateTime" use="required">
                <xs:annotation>
                    <xs:documentation>Tidspunkt for generering av XML-dokumentet.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="database" type="xs:token" use="required">
                <xs:annotation>
                    <xs:documentation>Databasenavn (FSHIG, HIGDEMO)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="fullEksport" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>True, hvis det blir gjort full eksport.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="versjon" type="xs:token" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Versjonen av basdata.xsd som instans-dokumentet er generert ut i fra.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="terminStart" type="xs:date">
                <xs:annotation>
                    <xs:documentation>
                        Semesterregistrering.Dato_Fra
                        (viss tidspunkt for eksport er innenfor en termin)
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="terminSlutt" type="xs:date">
                <xs:annotation>
                    <xs:documentation>
                        Semesterregistrering.Dato_Til
                        (viss tidspunkt for eksport er innenfor en termin)
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="endringerSiden" type="xs:dateTime">
                <xs:annotation>
                    <xs:documentation>
                        Entiteter som er endret etter dette tidspunktet er inkludert i eksporten.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="fagperson">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="fornavn" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Person.Fornavn</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="etternavn" type="xs:token">
                    <xs:annotation>
                        <xs:documentation>Person.Etternavn</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="forkortetNavn">
                    <xs:annotation>
                        <xs:documentation>Person.Forkortet_Navn</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="epost" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            Epost hvis den finnes.
                            type=arbeid for Person.EmailAdresse
                            type=hjem   for Person.EmailAdresse_Privat
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:token">
                                <xs:attribute name="type" use="required">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:token">
                                            <xs:enumeration value="arbeid"/>
                                            <xs:enumeration value="hjem"/>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="telefon" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="tittel" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            Fagperson.Stillingstittel_Norsk
                            Fagperson.Stillingstittel_Engelsk
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:simpleContent>
                            <xs:extension base="xs:string">
                                <xs:attribute name="lang" type="xs:language" use="required"/>
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="bygningskode" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            Fagperson.BYGNINGSKODE
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="romkode" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>
                            Fagperson.ROMKODE
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element ref="stedref" minOccurs="0"/>
                <xs:element ref="adresse" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="kommune" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="fylkenr" type="xs:short"/>
                            <xs:element name="kommunenr" type="xs:short"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="undervisning" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="rolle" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="nin" type="xs:token" use="optional">
                <xs:annotation>
                    <xs:documentation>Fødselsnummer (National Identification Number).
                        Person.Fodselsdato og Person.PersonNr</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="permisjon" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>Fagperson.Status_Permisjon</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="aktiv" type="xs:boolean" use="required">
                <xs:annotation>
                    <xs:documentation>Fagperson.Status_Aktiv</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="morsmal" type="xs:language">
                <xs:annotation>
                    <xs:documentation>
                        Person.Sprakkode_Morsmal ihht. ISO-639-1
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="malform" type="xs:language">
                <xs:annotation>
                    <xs:documentation>
                        Person.Sprakkode_Malform ihht. ISO-639-1
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="harBilde" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>Om det finnes Personbilde for fagpersonen.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="kjonn" type="kjonnFormat" use="required"/>
            <xs:attribute name="dead" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>Person.Status_Dod</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="fsLopenr" type="xs:long" use="required">
                <xs:annotation>
                    <xs:documentation>Person.PersonLopenr</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="brukernavn" type="xs:token" use="optional">
                <xs:annotation>
                    <xs:documentation>Person.Brukernavn</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="bankkontonr" type="xs:long" use="optional">
                <xs:annotation>
                    <xs:documentation>Person.Bankkontonr</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="hjemland" type="iso3166Format" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Person.Landnr_hjemland (formattert ihht iso 3166)
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="tillatLMS" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>Person.Status_Reserv_LMS</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="tillatNETTPUBL" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>PersonAkseptanse Akseptansetypekode=NETTPUBL</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="tillatFLR" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>PersonAkseptanse Akseptansetypekode=FLR</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="steder">
        <xs:annotation>
            <xs:documentation>0 eller flere sted-element</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="sted" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="aktiveKull">
        <xs:annotation>
            <xs:documentation>0 eller flere kull-element</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="kull" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="id">
                                <xs:annotation>
                                    <xs:documentation>
		  Studieprogramkode, Arstall, Terminkode, satt sammen med "_"
	                            </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="navn" type="BASNameType" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation>
               Kull.StudiekullNavn med lang="no"
               Kull.StudiekullNavn_Engelsk med lang="en"</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- *** TYPES *** -->
    <xs:complexType name="institusjonType">
        <xs:sequence>
            <xs:element name="institusjonsnr" type="xs:short">
                <xs:annotation>
                    <xs:documentation>Institusjonsnummer</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="navn" type="xs:token">
                <xs:annotation>
                    <xs:documentation>Eierinstitusjon.Institusjonsnavn_Norsk</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="akronym" type="xs:token">
                <xs:annotation>
                    <xs:documentation>Eierinstitusjon.Instakronym</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="programType">
        <xs:sequence>
            <xs:element name="programID" type="xs:token">
                <xs:annotation>
                    <xs:documentation>Studieprogramkode</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="programName" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Studieprogram.StudieprogNavn
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="BASNameType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="lang" type="xs:language" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="courseLevelType">
        <xs:annotation>
            <xs:documentation>Enumeration set of course level types.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="evu"/>
            <xs:enumeration value="regular"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="studieElementType">
        <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="id" type="xs:token">
                <xs:annotation>
                    <xs:documentation>
                        Sammensatt nøkkel som identifiserer kurset.
                        
                        For Undervisningsenheter:
                        Institusjonsnr _ Emnekode _  Versjonskode _ Arstall
                        _ Terminkode _ Terminnr
                        
                        For EVU-kurs:
                        Etterutdkurskode _ Kurstidsangivelsekode
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="stedref" maxOccurs="unbounded"/>
            <xs:element name="navn" type="BASNameType" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Navn tilhørende EVU-kurs eller Undervisningsenhet.
                        
                        For Undervisningsenheter brukes
                        Emnenavn_bokmal  (language=nb, alltid inkludert)
                        Emnenavn_nynorsk (language=nn)
                        Emnenavn_engelsk (language=en)
                        
                        For EVU-kurs brukes
                        Etterutdkursnavn         (language=nb, alltid inkludert)
                        Etterutdkursnavn_nynorsk (language=nn)
                        Etterutdkursnavn_engelsk (language=en)
                        Studieprogram.StudieprogNavn
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="courseLevelType" use="optional"/>
    </xs:complexType>
    <xs:complexType name="undenhetType">
        <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="id" type="undenhetidFormat">
                <xs:annotation>
                    <xs:documentation>
                        Sammensatt nøkkel som identifiserer kurset.
                        
                        For Undervisningsenheter:
                        Institusjonsnr _ Emnekode _  Versjonskode _ Arstall
                        _ Terminkode _ Terminnr
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="stedref" maxOccurs="2"/>
            <xs:element name="navn" type="BASNameType" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Emnenavn_bokmal  (language=nb, alltid inkludert)
                        Emnenavn_nynorsk (language=nn)
                        Emnenavn_engelsk (language=en)
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="undaktivitet" type="undAktivitetType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="studentType">
        <xs:sequence>
            <xs:element name="fornavn" type="xs:token">
                <xs:annotation>
                    <xs:documentation>Person.Fornavn</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="etternavn" type="xs:token">
                <xs:annotation>
                    <xs:documentation>Person.Etternavn</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="epost" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Epost hvis den finnes.
                        type=intern for Person.EmailAdresse
                        type=ekstern for Person.EmailAdresse_Privat
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:token">
                            <xs:attribute name="type" use="required">
                                <xs:simpleType>
                                    <xs:restriction base="xs:token">
                                        <xs:enumeration value="intern"/>
                                        <xs:enumeration value="ekstern"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element ref="telefon" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                                    En eller flere telefonnummer knyttet til studenten.
                                    Hentes fra Student:
                                    Telefonlandnr_semtelefon,  Telefonretnnr_semtelefon, Telefonnr_semtelefon
                                    Telefonlandnr_arbeid, Telefonretnnr_arbeid, Telefonnr_arbeid
                                    Fra Person:
                                    Telefonlandnr_Hjemsted, Telefonretnnr_Hjemsted, Telefonnr_Hjemste
                                    Telefonlandnr_Mobil, Telefonretnnr_Mobil ,Telefonnr_Mobil
                                </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="adresse" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="studieTilknytninger" type="studieTilknytningerType" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="kjonn" type="kjonnFormat" use="required"/>
        <xs:attribute name="morsmal" type="xs:language">
            <xs:annotation>
                <xs:documentation>
                    Person.Sprakkode_Morsmal ihht. ISO-639-1
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="malform" type="xs:language">
            <xs:annotation>
                <xs:documentation>
                    Person.Sprakkode_Malform ihht. ISO-639-1
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="bibsysmedlem" type="xs:token" use="optional">
            <xs:annotation>
                <xs:documentation>Student.BibsysLanetakerID</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tillatLMS" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation>Person.Status_Reserv_LMS</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tillatNETTPUBL" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation>PersonAkseptanse Akseptansetypekode=NETTPUBL</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tillatFLR" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation>PersonAkseptanse Akseptansetypekode=FLR</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="betalingOk" type="xs:boolean" use="required">
            <xs:annotation>
                <xs:documentation>Registerkort.Status_Bet_OK</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="registreringOk" type="xs:boolean" use="required">
            <xs:annotation>
                <xs:documentation>Registerkort.Status_Reg_OK</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="brukernavn" type="xs:token" use="optional">
            <xs:annotation>
                <xs:documentation>Person.Brukernavn</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="studentnr" type="xs:int" use="optional">
            <xs:annotation>
                <xs:documentation>Student.StudentNR_Tildelt</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fsLopenr" type="xs:long" use="required">
            <xs:annotation>
                <xs:documentation>Person.PersonLopenr</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="nin" type="xs:token" use="optional">
            <xs:annotation>
                <xs:documentation>Fødselsnummer (National Identification Number).
                    Person.Fodselsdato og Person.PersonNr</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="dead" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation>Person.Status_Dod</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="personkode" type="pinkodeFormat">
            <xs:annotation>
                <xs:documentation>
                    PersonReg.Personkode (om den er satt)
                    Paddet med nuller i front s.a. lengden er fire siffer.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="utskriftskode" type="xs:token">
            <xs:annotation>
                <xs:documentation>
                    Student.Utskriftskode (om den er satt)
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="studierettSlutt" type="xs:date" use="required">
            <xs:annotation>
                <xs:documentation>
                    Slutt-tidspunkt for studentens studierett.
                    Beregnet ut fra sluttdato for
                    studieprogramtilknytninger og kurstilknytninger.
                    Hvis en programtilknytning er åpen, returneres 9999-12-31.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="studieTilknytningerType">
        <xs:sequence>
            <xs:element name="programLink" type="programLinkType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="undervisningsLink" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="undaktivitetLink" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:attribute name="ref" type="undaktivitetidFormat"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="ref" type="undenhetidFormat"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="vurderingsMelding" type="vurderingsMeldingType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        En students tilknytning til et studieelement.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="kursLink" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="ref" type="kursidFormat"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="undAktivitetType">
        <xs:sequence>
            <xs:element name="id" type="undaktivitetidFormat" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Undaktivitet id</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="stedref" minOccurs="0"/>
            <xs:element name="navn" type="BASNameType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Undervisningsaktivitet.Aktivitetsnavn
                        Undervisningsaktivitet.Aktivitetsnavn_Nynorsk
                        Undervisningsaktivitet.Aktivitetsnavn_Engelsk
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="epost" type="xs:token" minOccurs="0"/>
            <xs:element name="url" type="xs:token" minOccurs="0"/>
            <xs:element name="underaktiviteter" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="undaktivitet" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="klasseType">
        <xs:sequence>
            <xs:element ref="stedref" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="kode" type="xs:token" use="required"/>
        <xs:attribute name="navn" type="xs:token" use="required"/>
    </xs:complexType>
    <xs:complexType name="membershipType">
        <xs:annotation>
            <xs:documentation>
                Information block for a role related membership.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="memberOf" type="xs:token"/>
            <xs:element name="memberID" type="xs:token"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="kullType">
        <xs:sequence>
            <xs:element name="klasse" type="klasseType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="kullID" type="xs:token" use="required"/>
        <xs:attribute name="kullNavn" type="xs:token" use="required"/>
    </xs:complexType>
    <xs:complexType name="programLinkType">
        <xs:sequence>
            <xs:element name="kull" type="kullType">
                <xs:annotation>
                    <xs:documentation>
                        Kull og klasse-tilknytning studenten.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:token" use="optional"/>
        <xs:attribute name="start" type="xs:token" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Startsemester (År + Termin) for denne studieprogramtilknytningen.
                    StudieprogramStudent.Arstall_Start og Termin_Start
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="studierettTildelt" type="xs:date" use="required"/>
        <xs:attribute name="studierettGyldigTil" type="xs:date" use="optional"/>
        <xs:attribute name="privatist" type="xs:boolean" use="required"/>
        <xs:attribute name="studentStatus" type="xs:token" use="required">
            <xs:annotation>
                <xs:documentation>
                    StudieprogramStudent.Studentstatkode
                    Lokale koder kan forekomme, men felles studentstatuskoder er:
                    DELTID
                    AKTIV
                    FULLFØRT
                    PERMISJON
                    SLUTTET
                    TRUKKET
                    OVERGANG
                    INNDRATT
                    RELEGERT
                    UTGÅTT
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="studierettStatus" type="xs:token" use="required">
            <xs:annotation>
                <xs:documentation>
                    StudieprogramStudent.Studierettstatkode
                    Lokale koder kan forekomme, men felles studierettstatuskoder er:
                    BARENTPLUS
                    6RAMME
                    CURIE
                    ERASMUSLIN
                    ERASMUSMUN
                    INDIVID
                    LLP-ANNET
                    LLP-ERASMU
                    LLP-ØVRIG
                    NORAD-ANDR
                    NORDOMRÅDE
                    NORFA
                    NORTH
                    NOVA
                    PRAKSIS
                    ØSTEUROPA
                    WUN
                    RAMME
                    FULLFØRT
                    INNPASS
                    CANDMAG
                    DIVERSE
                    EKSPRIV
                    ERASMUS
                    GJEST
                    LEONARDO
                    NORDPLUS
                    ORDOPPTAK
                    OVERGANG
                    SOKRATES
                    AUTOMATISK
                    AVTALE
                    PRIVATIST
                    ARKHANG
                    EVU
                    FJERNUND
                    FULBRIGHT
                    HOSPITANT
                    KULTURAVT
                    KVOTEPROG
                    LUBECK
                    NORAD
                    NUFU
                    UTLOPPTAK
                    BILATERAL
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="aktiv" type="xs:boolean" use="required">
            <xs:annotation>
                <xs:documentation>
                    StudentStatus.Status_Aktiv_Student
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="studierettBegrensning" type="xs:token" use="optional">
            <xs:annotation>
                <xs:documentation>
                    StudentStatus.Status_Aktiv_Student
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="undervisningsLinkType">
        <xs:sequence>
            <xs:element ref="refKurs"/>
            <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Gruppetilhørighet for studentent.
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="undaktivitet" type="xs:token" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="start" type="xs:token" use="optional"/>
    </xs:complexType>
    <xs:complexType name="vurderingsMeldingType">
        <xs:sequence>
            <xs:element name="id" type="xs:token">
                <xs:annotation>
                    <xs:documentation>
                        Felt fra VurdKombMelding sammensatt med "_" som fuge:
                        Institusjonsnr, EmneKode, VersjonsKode, Vurdkombkode, Arstall, Vurdtidkode
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="kandidatnr" type="xs:int" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        KandidatLøpenummer (VurdKombMelding.KandidatLopenr)
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="kontaktType">
        <xs:annotation>
            <xs:documentation>
                Kontaktinfo for en student.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence/>
    </xs:complexType>
    <!-- *** ELEMENTS *** -->
    <xs:element name="institusjon" type="institusjonType"/>
    <xs:element name="program" type="studieElementType"/>
    <xs:element name="undenhet" type="undenhetType">
        <xs:annotation>
            <xs:documentation>
                Konkret instans av et emne. (f.eks. MA100 2008 HØST for emnet MA100)
            </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="undaktivitet" type="undAktivitetType">
        <xs:annotation>
            <xs:documentation>
                Aktivitet knyttet til en undervisningsenhet.
                
                Studenter knyttes til undervisningsaktiviteter.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="kurs" type="studieElementType">
        <xs:annotation>
            <xs:documentation>Et kurs.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="student" type="studentType"/>
    <xs:element name="refKurs">
        <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="stedref">
        <xs:annotation>
            <xs:documentation>
                Konkatenering av flg info med "_" som fuge:
                Institusjonsnr
                Fakultetsnr
                Instituttnr
                Gruppenr
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="stedFormat">
                    <xs:attribute name="type" type="xs:token"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="sted">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="institusjonsnr" type="xs:short"/>
                <xs:element name="faknr" type="xs:short"/>
                <xs:element name="instituttnr" type="xs:short"/>
                <xs:element name="gruppenr" type="xs:short"/>
                <xs:element name="navn" type="BASNameType" maxOccurs="3"/>
                <xs:element name="stedakronym" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="kode" type="stedFormat" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="stedFormat">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{1,8}_\d{1,2}_\d{1,2}_\d{1,2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="undenhetidFormat">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{3,4}_.+_.+_\d{4}_.+_\d+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="undaktivitetidFormat">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{3,4}_.+_.+_\d{4}_.+_\d+_.+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="kursidFormat">
        <xs:restriction base="xs:string">
            <xs:pattern value=".+_.+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="pinkodeFormat">
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iso3166Format">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-z]{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="kjonnFormat">
        <xs:restriction base="xs:token">
            <xs:enumeration value="m"/>
            <xs:enumeration value="k"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="telefon">
        <xs:annotation>
            <xs:documentation>
                En eller flere telefonnummer knyttet til studenten.
                Hentes fra Student:
                Telefonlandnr_semtelefon,  Telefonretnnr_semtelefon, Telefonnr_semtelefon
                Telefonlandnr_arbeid, Telefonretnnr_arbeid, Telefonnr_arbeid
                Fra Person:
                Telefonlandnr_Hjemsted, Telefonretnnr_Hjemsted, Telefonnr_Hjemste
                Telefonlandnr_Mobil, Telefonretnnr_Mobil ,Telefonnr_Mobil
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="landkode" type="xs:string" minOccurs="0"/>
                <xs:element name="retnnr" type="xs:string" minOccurs="0"/>
                <xs:element name="nr" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="type" type="xs:token" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="adresse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="co" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Ekstra addresseinfo (adrlin1)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="gate" type="xs:string" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>gateadresse (adrlin2)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sted" type="xs:token" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Sted (Adrlin3)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="postnr" type="xs:token" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Postnr</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="land" type="xs:token" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>land</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="type">
                <xs:simpleType>
                    <xs:restriction base="xs:token">
                        <xs:enumeration value="hjem"/>
                        <xs:enumeration value="arbeid"/>
                        <xs:enumeration value="semester"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <!--  restrict to hjem/semester/arbeid -->
        </xs:complexType>
    </xs:element>
    <xs:element name="fagpersoner">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="fagperson" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="undervisning">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="aar" type="xs:short"/>
                <xs:element name="termin" type="xs:token"/>
                <xs:element ref="stedref"/>
            </xs:sequence>
            <xs:attribute name="aktiv" type="xs:boolean"/>
            <xs:attribute name="kanPubliseres" type="xs:boolean"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="rolle">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="kode" type="xs:token"/>
                <xs:element name="startDato" type="xs:date"/>
                <xs:element name="sluttDato" type="xs:date" minOccurs="0"/>
                <xs:choice>
                    <xs:element name="program" type="xs:token"/>
                    <xs:element name="kull" type="xs:token"/>
                    <xs:element name="klasse" type="xs:token"/>
                    <xs:element name="emne" type="xs:token"/>
                    <xs:element name="undenhet" type="xs:token"/>
                    <xs:element name="undaktivitet" type="xs:token"/>
                    <xs:element name="kurs" type="xs:token"/>
                    <xs:element name="kursaktivitet" type="xs:token"/>
                </xs:choice>
                <xs:element ref="stedref" minOccurs="0"/>
            </xs:sequence>
            <xs:attribute name="institusjonsnr">
                <xs:annotation>
                    <xs:documentation>
                        Personrolle.Institusjonsnr
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="romliste">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="rom" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="rom">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="bygningskode" type="xs:string"  minOccurs="0" />
                <xs:element name="romkode" type="xs:string"  minOccurs="0" />
                <xs:element name="romnavn" type="xs:string"  minOccurs="0" />
                <xs:element name="etasje" type="xs:string"  minOccurs="0" />
                <xs:element name="bygningsnavn" type="xs:string"  minOccurs="0" />
                <xs:element name="romtypenavn" type="xs:string"  minOccurs="0" />
                <xs:element name="tall_kapasitet_und" type="xs:string"  minOccurs="0" />
                <xs:element name="tall_kapasitet_eks" type="xs:string"  minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
