You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 44 Next »

Perustuu tietovarannon tietosisällöstä tehtyyn rajausluonnokseen, Korkeakoulujen tietomallin (xdw-malli) perusteella tehtyyn tietomalliluonnokseen sekä näihin perustuvaan koodistoluonnokseen, jotka saatavilla sivulla Tietovarannon tiedot.

Tämän sivun sisältö

Yleistä tiedonsiirrosta

Nämä tiedonsiirtomääritykset koskevat tietojen siirtämistä korkeakoulusta tietovarantoon. Tietojen lukemiseksi on erikseen web services-tyyppinen rajapinta, joka palauttaa tiedon järjestettynä CEN\SFS-standardin EUROLMAI-mukaan viranomaiskäyttöön tai korkeakoululle siirrettyjen tietojen tarkistamiseksi tai muuhun käyttöön.

Ohjausryhmän päätöksen 25/25.5.2012 perusteella tuetaan vain oletustiedonsiirtotapaa, mikä perustuu eräsiirtoon korkeakoulusta tietovarantoon.

Tietovarannon tietosisällön päivittämisen perustapaus on, että korkeakoulu päivittää eräsiirrolla kaikki tiedot uudestaan eli kaikki aiemmin tuotu tieto poistetaan alta. Kehitteillä on tapa päivittää eräsiirrolla tietoja vain muuttuneilta osin, eli yksittäisiä tietoja lisätään, muutetaan tai poistetaan (yksilöivät id:t!). 

Tiedonsiirto korkeakoulusta tietovarantoon muodostuu xml-tyyppisestä siirtotiedostosta tai vastaavasta(, kuten json?). Koska tietovarantoon sisältyy tietoja, jotka voivat saada nollasta useaan tiettyä ominaisuutta, ei CSV-kaltaiset yksiulotteiset tiedonsiirtoformaatit ole hyviä: esimerkki hylätystä CSV-vaihtoehdosta.

Tiedonsiirtomääritykset korkeakoulusta tietovarantoon

Tiedonsiirtomääritykset XML-skeemoina (http://www.w3.org/XML/http://www.w3.org/XML/Schema) on listattu alla (alisivuja). Jokainen skeematiedosto on alisivun liitetiedostona siten, että myös vanhemmat versiot on saatavilla. Lisäksi kustakin varsinaisesta tietorakenteita kuvaavasta skeemasta (skeeman nimi alkaa isolla kirjaimella) löytyy wikistä sekä kaavio että skeematiedosto.

XML-skeemat

Päivityshistoria
  • Tulevia muutoksia/päivityksiä
    • Patevyys-tiedon suhde opiskeluoikeusjaksoon: 0..1 => 0..n
    • Koodistot: Pätevyys?, ...
  • 10.12.2013 Päivitetty koodistot-skeema versioon 1.05.3
    • Huom! Skeeman nimiavaruutta ei muutettu, joten versiopäivitykseksi riittää kopioida koodistot.xsd-tiedosto!
    • Muutoksia
      • koodistot.xsd
        • Lisätty Organisaatio-koodistoon oppilaitosrekisterin vuoden 2012 tiedot
        • Lisätty Koulutuskoodi-koodistoon koulutusluokituksen vuoden 2012 tiedot
        • Siistitty tiedostoa mm. karsimalla selitetekstit pois
  • 4.11.2013 Päivitetty koodistot-skeema versioon 1.05.2
    • Huom! Skeeman nimiavaruutta ei muutettu, joten versiopäivitykseksi riittää kopioida koodistot.xsd-tiedosto!
    • Muutoksia
      • koodistot.xsd
        • Lisätty Taideyliopiston oppilaitostunnus 10103, eli korkeakoulujen valtakunnallisen tietovarannon Organisaatio-koodiston arvo, koodistot-skeemaan.
  • 6.9.2013 Päivitetty koodistot- ja tyypit-skeemat versioon 1.05.1
    • Huom! Skeeman nimiavaruutta ei muutettu, joten versiopäivitykseksi riittää kopioida koodistot.xsd ja tyypit.xsd -tiedostot!
    • Huom2! Vaikka XML-teknisesti mukana oleva arvosana-koodistojen laajennus tapahtuukin myös XML-elementin lisäyksellä (~= rakenteellinen muutos), pidetään versiopäivitys kuitenkin "koodistopäivityksenä". Täten nimiavaruus ei muutu ja tämän version käyttöönottamisen aikataulu ei ole missään määrin kriittinen. XML-elementin lisäys ei siis kajoa olemassa oleviin rakenteisiin mitenkään.
    • Muutoksia
      • tyypit.xsd
        • Henkilotunnus-tiedon muodollinen tarkistus säännöllisellä lausekkeella: "(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])[0-9][0-9][+\-A]((00[2-9]|[0-8][1-9][0-9]|[1-8][0-9][0-9])[0-9ABCDEFHJKLMNPRSTUVWXY])?".
          • Korjaa aiemmassa lausekkeessa olleen virheen, joka salli välimerkiksi huomattavan suuren joukon merkkejä.
          • Lisäksi nyt käytettävä lauseke on muutenkin huomattavasti paremmin hetun muodon oikeellisuuden tarkistava.
          • Kiitokset Arcadaan uudesta säännöllisestä lausekkeesta!
        • Päivämäärä-kenttiin yleinen sääntö siten, että ennen 1.1.1900 päivämäärää aiemmat eivät kelpaa.
          • Pyrkimys vähentää virheitä ja mahdollistaa virheiden mahdollisimman varhainen havaitseminen esimerkiksi tapauksissa, että järjestelmään on syötetty vuosi 0998 tai jopa 0008.
        • Lisätty EiKaytossa-arvosana-asteikko. Ks. alla
      • koodistot.xsd
        • Lisätty arvosana Arvosana ei käytössä EiKaytossa-arvosana-asteikkoon.
          • Tämän lisäyksen ansiosta esimerkiksi tutkinnot, joihin liittyen ei aina ole arvosanaa, voidaan ilmoittaa ilman arvosanaa. Arvosanattomuus voidaan ilmoittaa nyt kuitenkin siten, että opintosuoritus-elementissä arvosana on edelleen pakollinen tieto.
  • 29.01.2013 Päivitetty skeemat (ja kaaviot) versioon 1.05
    • Muutoksia:
      • Opintosuoritukset.xsd
        • Ensimmäinen pakollinen Organisaatio-elementti muutettu nimelle Myontaja.
        • Nimi- ja JulkinenLisatieto-elementteihin laajennuksena valinnainen kieli-attribuutti.
        • Nimi- ja JulkinenLisatieto-elementtien toistuvuus muutettu rajoittamattomaan (0..1) => (0..*). Erityisesti siksi, jos suorituksen ko. tietoja halutaan antaa usealla eri kielellä.
        • (Tämä muutos pääosin tyypit.xsd-skeemassa, mutta vaikutus erityisesti Opintosuoritukset-skeemaan)
          Muu-arvosana-asteikon elementtien nimet muutettu sekä lähdejärjestelmän tunnistetietoa sisältänyt kenttä muutettu attribuutiksi.
          • Arvosana.Muu.Asteikko.Koodi (elem) -> Arvosana.Muu.Asteikko.avain (attr)
          • Arvosana.Muu.Asteikko.Arvosana -> Arvosana.Muu.Asteikko.AsteikkoArvosana
          • Arvosana.Muu.Asteikko.Arvosana.Koodi (elem) -> Arvosana.Muu.Asteikko.AsteikkoArvosana.avain (attr)
          • Arvosana.Muu.Asteikko.Arvosana.Arvosana -> Arvosana.Muu.Asteikko.AsteikkoArvosana.Koodi
      • Opiskeluoikeudet.xsd
        • Ensimmäinen pakollinen Organisaatio-elementti muutettu nimelle Myontaja.
      • LukukausiIlmoittautumiset.xsd
        • Lisätty pakollinen Myontaja-elementti. Tämä siksi, että yhdistettäessä useassa korkeakoulussa opiskelevan opiskelijan tiedot yhteen voidaan aukottomasti päätellä mihin mm. avain-tiedot viittaavat.
      • Opiskelijat.xsd
        • Ei muita muutoksia kuin versionumeron sekä nimiavaruuden muutokset.
      • tyypit.xsd
        • Poistettu tarpeettomana xml-nimiavaruuden haku mukaan skeemaan pois.
        • Poistettu tarpeettomina ja osittain haitallina JuuriElementtiLaajennusTyyppi-tyypin sisältö. Eli juurielementtienxml:lang- ja organisaatio-attribuutteja ei enää ole.
        • Siistitty yleisesti teknisiä kommentteja pois.
      • koodistot.xsd
        • Siistitty yleisesti teknisiä kommentteja pois.
  • 21.01.2013 Päivitetty koodistot-skeema versioon 1.04.2
    • Huom! Skeeman nimiavaruutta ei muutettu, joten versiopäivitykseksi riittää kopioida koodistot.xsd -tiedosto!
    • Muutoksia
      • koodistot.xsd
        • Lisätty arvoja Kunta-, Maa- ja Kieli-koodistoihin. Kieli-koodistoon lisätty arvo 98, Maa-koodistoon lisätty arvo 891 ja Kunta-koodistoon paljon arvoja, jotka ovat olleet aiemmin käytössä.
        • Päivitetty Arvosana-asteikkoja. Lisätty Viisiportainen-asteikkoon arvosana HYV=Hyväksytty sekä poistettu arvosana 0. Poistettu Hyvaksytty-asteikosta arvosana HYL=hylätty.
  • 11.01.2013 Päivitetty tyypit- ja koodistot-skeemat versioon 1.04.1
    • Huom! Skeemojen nimiavaruutta ei muutettu, joten versiopäivitykseksi riittää kopioida tyypit.xsd ja koodistot.xsd -tiedostot!
    • Muutoksia:
      • koodistot.xsd
        • Päivitetty Kunta-, Maa- ja Organisaatio-koodistot sisältämään koko 2000-luvun tiedot.
        • Huom! Organisaatio-koodisto ulottuu vasta 2010-vuoteen saakka. Lisäksi Koulutuskoodi (koulutusluokitus/tutkinto) sisältää toistaiseksi vain vuoden 2010 tiedot.
      • tyypit.xsd
        • Poistettu tarpeeton ylimääräinen tyyppimääritys HenkilotunnusTyyppi-elementistä (maxLength=11).

        • Muutettu KoulutusmoduulitunnisteTyyppi ja ValtakunnallinenKoulutusmoduulitunnisteTyyppi-tyyppien pituudet 200-merkkiin.
  • 26.11.2012 Päivitetty skeemat ja kaaviot versioon 1.04
    • Muutoksia:
      • koodistot.xsd
        • Päivitetty Pätevyys-koodistoon asiantuntijoiden ilmoittamia arvoja erityisesti Valviraan liittyen
      • tyypit.xsd
        • Tarkennettu henkilötunnuksenmuotoa siten, että vain aidot suomalaiset hetut kelpaavat (tarkistusosan ensimmäinen merkki 0-8 (ei 9)) sekä vain syntymäaikaa ilmoittaville välimerkki (=vuosisatamerkki) on pakollinen.
        • Nimetty: OpintosuoritusLisatietoTyyppi => OpintosuoritusJulkinenLisatietoTyyppi
        • Lisätty: Opintosuorituksiin liittyen 'Muu' arvosana-asteikkoon liittyen rakenne, jolla arvosana-asteikko arvosanoineen voidaan ilmoittaa osana tiedonsiirtoa.
      • Opintosuoritukset.xsd
        • Nimetty uudestaan: Lisatieto -> JulkinenLisatieto
        • (lisäksi tyyppi.xsd-skeeman muutos 'Muu' arvosana-asteikkoon liittyen koskee tietysti erityisesti opintosuorituksia)
      • Virta.xsd
        • Muutettu: Opiskeluoikeuksien pakollisuus valinnaiseksi.
      • Muut skeemat muutettu vain vastaamaan versionumeroltaan sekä nimiavaruudeltaan.
  • 5.11.2012 Päivitetty skeemat ja kaaviot versioon 1.03
    • Muutoksia:
      • Nimetty kattavasti elementtejä ja attribuutteja uudestaan siten, että nimet vastaavat paremmin korkeakoulujen tietomallia (xdw-malli). Selkein esimerkki tästä on kaikki elementit ja attribuutit, joissa esiintyi "id".
      • Joitakin rakenteellisia muutoksia, esim opiskeluoikeuden opiskelijaliikkuvuus (oli tarpeeton).
      • Ilmoittautumiset-skeema nimetty uudestaan nimelle LukukausiIlmoittautumiset
      • Lisätty Kansainvälistä vaihtoa -koodisto tiedonsiirtoskeemaan
    • Puutteita/tulevaa
      • Koodistojen tarkentaminen ja täydentäminen: pätevyys, arvosana-asteikot
  • 30.10.2012
    • Puutteita/tulevaa
      • Elementtien ja attribuuttien nimeäminen uusitaan
  • 25.10.2012 Päivitetty skeemat ja kaaviot versioon 1.02
    • Muutoksia:
      • Lisätty valtakunnallinen koulutusmoduuli id Opiskeluoikeudet ja Opintosuoritukset -skeemoihin
      • Koodistoa tarkennettu arvosana-asteikkojen osalta. Samalla Opintosuoritukset-skeemaa päivitetty arvosanojen osalta.
      • Lisätty täysin uutena uusi skeema Virta, joka oikeastaan vain yhdistää kaikki muut skeemat.
    • Puutteita/tulevaa
      • id-tietotyyppien muutos ja linkittäminen toisiinsa, kun mahdollista tai suotavaa
      • Koodistojen tarkentaminen ja täydentäminen: pätevyys, arvosana-asteikot
  • 11.10.2012 Päivitetty skeemat ja kaaviot versioon 1.01.
    • Muutoksia:
      • Poistettu toistaiseksi tarpeettomat <Koodi>-tagit, jotka voi helposti laajentaa myöhemmin mukaan, jos tarvetta ilmenee.
      • Opintosuoritukset-skeemaan muutettu Opinnaytetyo-elementin rakenne: Lisätty Koodi-elementti ja muutettu hankkeistettu->Hankkeistettu (attribuutista elementiksi).
      • Koodistoja tarkennettu ja täydennetty. Vielä on keskeneräisiä mm. pätevyys ja arvosana-asteikot.
    • Puutteita/tulevaa:
      • Valtakunnallinen koulutusmoduuliID
      • id-tietotyyppien muutos ja linkittäminen toisiinsa, kun mahdollista tai suotavaa
      • Koodistojen tarkentaminen ja täydentäminen: pätevyys, arvosana-asteikot
  • 10.10.2012 Päivitetty skeemat ja kaaviot versioon 1.0. Versionumero on ohjausryhmän päätöksen jälkeen "virallinen julkaistu versio", mutta asiavirheitä ja tarkennuksia tehdään vielä. Erityisesti nyt alkavien Virta-projektin pilottitoteutusten aikana.
    • Puutteita/tulevaa:
      • Valtakunnallinen koulutusmoduuliID
      • id-tietotyyppien muutos ja linkittäminen toisiinsa, kun mahdollista tai suotavaa
      • Koodistojen tarkentaminen ja täydentäminen (esim. pätevyys, organisaatio)
      • Luovutaan toistaiseksi turhista <Koodi>-elementeistä, kuten Opiskeluoikeus.Tyyppi.Koodi, Opintosuoritus.Patevyys.Koodi jne.
  • 4.10.2012 Päivitetty skeemat ja kaaviot versioon 0.6 ja 0.61. Lukuisia muutoksia asiantuntijaryhmän työpajan (2.10.2012) perusteella. Myös laajoja tietotyyppien tarkentamista ja keräämistä kahteen skeemaan (tyypit ja koodistot).
  • 28.9.2012 Päivitetty skeemat ja kaaviot versioon 0.5. Muutokset enimmäkseen aiempien "TODO"-kohtien läpikäyntiä ja ratkaisuja niihin. Joitakin rakenteellisia muutoksia.
  • 25.9.2012 Päivitetty skeemat ja kaaviot versioon 0.4. Muutoksia rakenteissa niin tietosisältöön liittyen kuin yleisemminkin. Lisäyksiä tietosisältöön, mm. kirjoilletulopvm. Dokumentaatiota lisätty.
  • 19.9.2012 Lisätty version 0.3 mukaiset kaaviokuvat XML-skeemoista
  • 18.9.2012 Päivitetty mittavasti kaikkia skeemoja. Lisätty ilmoittautumiset-skeema. Versio 0.3
  • 17.9.2012 Tuotu ensimmäiset "julkiset" versiot (opiskelijat, opiskeluoikeudet, opintosuoritukset, tyypit, koodistot). Versio 0.2

XML-tiedoston tarkastaminen skeemaa vasten

XML-tiedoston voi tarkastaa (validoida) lukuisilla tavoilla XML-tiedostoa vastaavaa skeemaa vasten. Validointi tarkoittaa, että tarkistetaan olemassa olevan XML-tiedoston oikeellisuus "yhteisesti sovitun" XML-skeeman mukaisena.

xmllint

VIRTA-projektin yhteydessä on käytetty kehittämisen yhteydessä ohjelmaa xmllint. Ohjelman xmllint löytää vapaasti ladattavana internetistä useistakin paikoista, mutta suosittelemme ohjelman lataamista ohjelman kehittäjän omilta sivuilta:

Edellä mainitusta www-osoitteesta (zlatkovic.com) tarvitaan "paketit":

  • libxml2
  • iconv
  • zlib

Esim. Windows-ympäristössä ladattavat paketit löytyvät edellä mainitun www-osoitteen oikeassa reunassa olevan otsikon "Binaries" alta, josta avautuu tiedostolista, ja josta edelleen ladattavat zip-paketit ovat:

  • libxml2-2.7.8.win32.zip
  • iconv-1.9.2.win32.zip
  • zlib-1.2.5.win32.zip

(Unix/Linux-versiot löytyvät ohjelmien virallisilta sivuilta: http://xmlsoft.org/ [18.12.2012], http://www.gnu.org/software/libiconv/ [18.12.2012] ja http://www.zlib.net/ [23.8.2013].)

Purkamalla ko. zip-paketit ja kopioimalla (tai siirtämällä) bin\-hakemistojen sisältö samaan paikkaan, voi xmllint.exe-ohjelmaa käyttää komentoriviltä ("kehote", Windows: cmd.exe). Ohjelma tulostaa lyhyet omat käyttöohjeet kun ohjelman käynnistää ilman parametreja.

Tyypillisin tarkistustapa VIRTA-projektin XML-skeemojen kehittämisen yhteydessä on ollut:

xmllint-ohjelman käyttöesimerkki
>xmllint.exe --noout --schema "Opiskelijat.xsd" "Opiskelijat esim1.xml"

Esimerkistä on jätetty hakemistopolut tarkoituksella esimerkin siistinä pitämisen vuoksi pois, mutta jos sattuisi kaikki tarvittava olemaan samassa hakemistossa tai esim. xmllint-ohjelma asetettu käyttöjärjestelmän PATH-ympäristömuuttujaan, niin esimerkki luultavasti toimisi suoraan (olettaen tietysti että xml-tiedoston nimi on sama kuin esimerkissä). Tuloksena toivomme ohjelman tulostaman ilmoituksen: "Opiskelijat esim1.xml validates" (smile). Mikäli virheitä löytyy, xmllint-ohjelma kyllä melko hyvin osaa raportoida epäkohdista!

XMLStarlet

Vaihtoehtoinen ohjelma Windows ja Linux ympäristöön on XMLStarlet:

XMLStarlet-ohjelman avulla onnistuu isojenkin XML-tiedostojen tarkastaminen (onnituneesti on kokeiltu n. 2,34 GB opintosuoritusten XML-tiedostolla).

XMLStarlet-ohjelman käyttöesimerkki
>xml.exe val --err --xsd Opintosuoritukset.xsd Opintosuoritukset.xml

Toivottu tulos: "Opintosuoritukset.xml - valid"

Validointi powershellillä

Oheinen skripti on tehty korkeakoulujen avuksi erityisesti suurien tiedostojen validointiin. Se perustuu .NET IO.StreamReader ja XMLReader luokkiin, jolloin koko XML-tiedostoa ei tarvitse mahduttaa muistiin kerralla.
Skripti ottaa parametreina validoitavan XML-tiedoston (-xml) ja skeeman (-xsd). Huom. anna aina koko polku tiedostoon parametrina. Ison tiedoston validointiin (>2GB) voi mennä koneesta riippuen jopa 20min tai enemmän.

validoi_xml skriptin käyttöohje
>.\validoi_xml.ps1 -xml C:\tmp\Testi.xml -xsd C:\tmp\opintosuoritukset.xsd

 

Esimerkki-XML-tiedostoja

Kehitystyössä apuna käytettyjä esimerkki-XML-tiedostoja on lisätty tälle sivulle liitetiedostoiksi. Esimerkkitiedostot on ladattu saman nimisinä eri XML skeemojen versioille useaan kertaan, joten katsomalla tämän sivun liitetiedostosivua voi nähdä ko. tiedostojen versioista enemmän tietoa sekä ladata itselleen mahdollisesti aikaisempia versioita. Seuraavassa linkit ko. tiedostojen viimeisimpiin versioihin:

  • No labels