Tiedonsiirtomaaritykset korkeakouluille

 Ks. myös tietovarannon tiedot, tietovarannon koodistot ja tietokantakuvaus.

Lukurajapintojen määritykset ovat sisällöllisesti samat kuin XML-tiedonsiirtomääritykset korkeakouluille. Tieto välitetään per henkilö (virta.xsd) joko henkilötunnuksen tai valtakunnallisen oppijanumeron perusteella.

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 (viimeisimmät versiot : https://github.com/CSCfi/VIRTA-Opintotietopalvelu/tree/master/XML-skeemat)

Päivityshistoria


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":

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:

(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.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" (hymy). Mikäli virheitä löytyy, xmllint-ohjelma kyllä melko hyvin osaa raportoida epäkohdista!

Suurten XML-tiedostojen (>2 GB) tarkistaminen xmllint-ohjelmalla voi (kirjaimellisesti) kaatua muistin loppumiseen. Xmllint käyttää muistia moninkertaisesti (jopa yli 10x) tarkistettavan tiedoston kokoon nähden. Ongelma poistuu käyttämällä --stream-lippua:

>xmllint.exe --noout --stream --schema "Opiskelijat.xsd" "Opiskelijat esim1.xml"
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).

>xml.exe val --err --xsd Opintosuoritukset.xsd Opintosuoritukset.xml

Toivottu tulos: "Opintosuoritukset.xml - valid"


Valmis XMLStarlet-paketti jossa Virran XML skeemat.

validointiOhjelma.zip

Pura validointiOhjelma.zip ja vie validoitava XML samaan hakemistoon.
Aja validointi esim. Virta.xml tiedostolle (ilman lokia, virheet komentorivin ikkunaan): validate.bat Virta.xml

Validointi lokitiedostolla (tässä lokitiedostoon virheet.txt): validate.bat Virta.xml 1>virheet.txt 2>&1


Validointi powershellillä

Powershell-skripti on poistettu 11.9.2017 koska se ei toiminut oikein.



Esimerkki-XML-tiedostoja

Esimerkkitiedostoja löytyy Virta-Opintotietopalvelun GitHub:sta, kuten xml-skeematkin: https://github.com/CSCfi/VIRTA-Opintotietopalvelu