JHS XXX Julkishallinnon XML-skeemat Versio: 0.5 Julkaistu: Voimassaoloaika: Sisällys 1 Johdanto... 2 2 Soveltamisala... 2 3 Termit ja määritelmät... 2 4 Sanastotyön ja XML-skeemojen yhteys... 2 5 XML-rakenteiden nimeäminen... 3 5.1 Yleisiä nimeämissääntöjä... 3 5.2 Elementtien nimeäminen... 3 5.3 Attribuuttien nimeäminen... 4 5.4 Tyyppien nimeäminen... 4 5.5 Yleiset lyhenteet... 4 5.6 Ilmentymät (Representation Terms)... 5 6 Skeemojen tekemisen perusohjeistus... 5 6.1 Elementtejä vai attribuutteja... 5 6.2 Globaalit elementit... 5 6.3 Tyyppimäärittelyt... 7 6.4 Ilmentymien ja tietotyyppien vastaavuudet... 7 6.5 Koodistot... 8 7 Nimiavaruuksien nimeäminen... 8 8 Skeemojen modulaarisuus ja hierarkkisuus... 9 8.1 Skeemojen modulaarisuuden perusmalli... 9 8.2 Atomaaristen elementtien skeemat... 10 8.3 Koosteskeemat... 10 8.4 Rajapintaskeemat... 11 8.5 Skeemojen xs:import-määritykset... 11 8.6 Hierarkkiset XML-puurakenteet... 11 9 Skeemojen versiointi... 11 10 Merkistö... 12 11 Opastavat tiedot... 12 11.1 Liitteet... 12 1/12
1 Johdanto Tämä JHS-suositus ohjeistaa XML-skeemojen tuottamista ja hallintaa julkishallinnossa. Suosituksessa kuvataan julkisen hallinnon XML-skeemojen muodostamisen yhteisiä periaatteita. Lisäksi laaditaan alustava useille julkishallinnon toimijoille yhteinen skeemaluettelo. Suosituksessa tukeudutaan soveltuvin osin kansainvälisiin standardeihin sekä tunnettuihin referenssisuosituksiin. Suosituksen keskeisinä lähtökohtina on pidetty yksinkertaisuutta ja käytännönläheisyyttä. Kansainvälisiä standardeja ei suositella käyttöön sellaisenaan, vaan niistä on pyritty löytämään Suomen julkishallinnon kannalta parhaiten soveltuvia käytäntöjä. Samanaikaisesti tavoitteena on varmistaa mahdollisimman hyvä yhteensopivuus kansainvälisiin standardeihin. XML-skeemojen tuottamisella on läheinen yhteys sanastotyöhön. Tätä suositusta tulee noudattaa johdettaessa teknikkaan sitomattomista sanastojen käsitteistä XML-rakenteita. 2 Soveltamisala Suositus esittelee julkisen hallinnon yhteisten XML-skeemojen muodostamisen periaatteet ja sisältää alustavan useille julkishallinnon toimijoille yhteisen skeemaluettelon. Suosituksen kohderyhmiä ovat: julkishallinnon tietojärjestelmien kehittäjät järjestelmäkehityshankkeiden vetäjät ja asiantuntijat 3 Termit ja määritelmät XML W3C:n suositus rakenteisen tiedon esittämiseen sähköisessä muodossa. XML-skeema W3C:n suositus XML-dokumenttien rakenteen ja sisällön määrittelyyn. 4 Sanastotyön ja XML-skeemojen yhteys Sanastotyöllä tarkoitetaan niitä menetelmiä ja käytännön työtä, joilla kehitetään semanttista yhteentoimivuutta edistäviä sanastoja. Sanastolla tarkoitetaan luetteloa jossain kielessä sallituista sanoista luokitteluineen, määritelmineen, kuvauksineen ja esimerkkeineen. Sanastoilla kuvataan käsitteiden merkityksiä siten, että eri tietojärjestelmät voivat ymmärtää käsittelemäänsä tietoa. Sanastot ovat lähtökohtaisesti teknologiariippumattomia. Sanastoista voidaan johtaa erilaisia teknisiä kuvaustapoja kuten XML-skeemat. XML-skeemojen tuottamisen tulisi alkaa sanaston käsitteiden määrittelemisestä tai jo määriteltyjen käsitteiden hyödyntämisestä. Sanastojen ja XML-skeemojen hallinnointi ja tekniset varastointiratkaisut tulisi kehittää siten, että ne tukevat sanaston käsitteistä lähtevää skeemojen tuottamista. Tässä suosituksessa ei ohjeisteta sanastojen määrittelyä. Sanastojen laatijoiden tulisi kuitenkin huomioida tämän suosituksen linjaukset siltä osin kuin ne koskevat XML-skeemojen johtamista sanaston käsitteistä. 2/12
5 XML-rakenteiden nimeäminen XML-rakenteiden nimeämisessä tukeudutaan soveltuvin osin kansainvälisiin standardeihin. Nimeämisohjeen lähtökohta on ISO 11179-5 standardi (Information technology Specification for standardization and registration of data elements and associated metadata Part 5: Naming and identification principles). Nimeäminen perustuu ISO 11179-5:n sisältämään kolmitasoiseen nimeämismalliin. Standardin mukaisesti nimetyn tietoelementin yksilöivä nimi on kolmiosainen ja muodostuu Objektiluokasta, Ominaisuustermistä ja Ominaisuustermin tietotyyppiin viittaavasta Ilmentymästä. (Vastaavat englanninkieliset termit ovat Object class, Property term, Representation term.). Esimerkkejä mallin mukaisesta nimeämisestä ovat: KatuNimi SukuNimi HenkiloTunnus TuloVerotettavaMaara 5.1 Yleisiä nimeämissääntöjä Elementtien ja attribuuttien nimet ovat ensisijaisesti suomenkielisiä. Tarvittaessa nimistä voidaan tehdä englanninkieliset käännökset, joita voidaan käyttää englanninkielisissä skeemoissa. Samassa skeemassa ei suositella käytettäväksi sekä suomen- että englanninkielisiä nimiä. Nimet ovat kirjakielen muotoisia substantiiveja, verbejä ja adjektiiveja. Substantiivit ovat lähtökohtaisesti yksikkömuodossa, ellei käsite itsessään ole monikkomuotoinen. XML:ssä sekä isot että pienet kirjaimet ovat merkitseviä (case-sensitive). Tämä tarkoittaa, että esimerkiksi seuraavat nimet eivät ole samoja: KATUNIMI, katunimi, KatuNimi, katunimi Skandinaaviset merkit EIVÄT ole sallittuja XML-sanomien elementti-, attribuutti- ja tyyppinimissä. XMLsanomien sisällössä skandinaaviset merkit ovat sallittuja. Kaikki elementtien, tyyppien ja attribuuttien nimet kirjoitetaan yhteen. Alla on esimerkkejä nimien muodostamisesta: Käsite/termi Elementin nimi Attribuutin nimi Katuosoite KatuOsoiteTeksti katuosoiteteksti Henkilötunnus HenkiloTunnus henkilotunnus Pinta-ala PintaAlaMitta pintaalamitta maa- ja metsätalous MaaJaMetsatalous maajametsatalous (henkilön) verotettava tulo TuloVerotettavaMaara tuloverotettavamaara 5.2 Elementtien nimeäminen Elementtinimet noudattavat ns. Upper Camel Case -tyyliä. Nimen kaikkien sanojen alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Esimerkiksi: 3/12
KatuNimi Elementtien nimissä ei pidä käyttää alaviivaa ( _ ), pistettä (. ), väliviivaa ( - ) eikä muita aakkosten ulkopuolisia merkkejä. Nimissä saa käyttää numeroita ( 0-9 ). 5.3 Attribuuttien nimeäminen Attribuuttinimet noudattavat ns. Lower Camel Case -tyyliä. Muiden paitsi nimen ensimmäisen sanan alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Esimerkiksi: kielikoodi Attribuuttien nimissä ei pidä käyttää alaviivaa ( _ ), pistettä (. ), väliviivaa ( - ) eikä muita aakkosten ulkopuolisia merkkejä. Nimissä saa käyttää numeroita ( 0-9 ). 5.4 Tyyppien nimeäminen Käyttäjien määrittelemät johdetut tietotyypit noudattavat ns. Upper Camel Case -tyyliä. Nimen kaikkien sanojen alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Tyypin nimen loppuun lisätään pääte Tyyppi. Esimerkiksi: HenkiloTunnusTyyppi 5.5 Yleiset lyhenteet Lyhenteitä ovat yleisesti käytetyt tai tunnetut lyhennemerkinnät, joilla alkuperäistä sanaa lyhennetään merkittävästi. Lyhenne voi periaatteessa esiintyä missä kohdassa nimeä hyvänsä. Lyhenteet kirjoitetaan isoilla tai pienillä kirjaimilla niiden tyypillisen käyttötavan mukaan. Lyhenne alkaa aina isolla kirjaimella. Tavoitetilassa XML-elementtinimet johdetaan sanaston käsitteistä. Elementtien nimet ovat pääsääntöisesti samoja kuin vastaavien käsitteiden nimet sanastossa. Jos sanastossa käytetään lyhennettä, samaa lyhennettä käytetään myös XML-skeemassa. Seuraavia lyhenteitä pitää käyttää nimissä sellaisissa kohdissa, joissa kyseinen sana esiintyy. Lyhenne ALV ATK BKT CV db Dnro EU ICT ISBN Selite arvonlisävero automaattinen tietojenkäsittely bruttokansantuote lat. curriculum vitae, elämänvaiheet, elämäkerta; ansioluettelo desibeli(ä) diaarinumero Euroopan unioni engl. information ja communication technology, informaatio- ja kommunikaatioteknologia engl. International Standard Book Number, kirjan kansainvälinen standardinumero 4/12
ISSN JNro Km Kv Max Min Nro Oy Oyj Puh Pvm Srk Tmi URL Vrk engl. International Standard Serial Number, aikakausjulkaisun kansainvälinen standardinumero järjestysnumero kilometri(ä) kansainvälinen maksimi, korkeintaan, enintään minimi, vähintään numero osakeyhtiö julkinen osakeyhtiö puhelin päivämäärä seurakunta toiminimi engl. uniform resource locator, Internetissä olevan tiedoston tai hakemiston sekä sen käyttöön tarvittavan yhteyskäytännön yksilöivä tunnus (esim. http://www.jhssuositukset.fi) vuorokausi, vuorokautta Organisaatioiden nimilyhenteitä tulee ylläpitää keskitetysti. Niitä ei ole kuvattu ylläolevassa taulukossa kaikkein yleisimpiä organisaatiolyhenteitä (esim. EU) lukuunottamatta. 5.6 Ilmentymät (Representation Terms) Ilmentymä (Representation Term) on elementin nimen loppuun liitettävä termi, joka kuvaa elementin sisällön tyypin. Alla on luetteloitu sallitut termit. Termi Termi englanniksi Käyttötarkoitus Aika Time Kellonaika, ajankohta (ISO 8601) Arvo Value Numeerinen arvo Aste Rate Aste numeerisena arvo Binaari BinaryObject Binäärimuotoinen tieto Koodi Code Sallittujen arvojen luettelo, jonka jokainen yksittäinen arvo on merkkijono, jota käytetään korvaamaan tai edustamaan 5/12
tiettyä koodatun tiedon arvoa tai määritelmää Kuva Graphic Kuvien tallennustyyppi Kytkin Indicator Kahdesta arvosta koostuva pari, joka ilmaisee tilaa on/off, true/false jne. (synonyymi: Boolean ) Lkm Quantity Muiden kuin rahayksikköjen lukumäärä Mitta Measure Numeerinen arvo, joka on määritelty mittaamalla jokin objekti. Mitta tarkennetaan mittayksiköllä. Maara Amount Rahallinen arvo valuuttayksikköinä Nimi Name Jonkin objektin identifiointiin käytettävä merkkijono. Toisin kuin tunnuksen, nimen ei tarvitse olla yksiselitteinen. Nro Number Numero Prosentti Percent Prosenttilukuna esitettävä numeroarvo Pvm Date Päivä kalenterissa, ajankohta (ISO 8601) PvmAika DateTime Päivä kalenterissa ja kellonaika, ajankohta (ISO 8601) Teksti Text Jonkin luonnollisen kielen merkkijono Tunnus ID, Identifier Merkkijono, jota käytetään muodostamaan jollekin objektin esiintymälle identiteetti tai erottamaan se muista yksiselitteisellä tavalla 6 Skeemojen tekemisen perusohjeistus 6.1 Elementtejä vai attribuutteja XML-muotoisen tiedon ensisijaisena esitysrakenteena käytetään elementtejä. Attribuutit sisältävät pääasiassa elementin sisällön arvoa kuvaavaa metatietoa. 6.2 Globaalit elementit Kaikki elementit tulee määritellä globaaleina. Tämä tarkoittaa, että elementit pitää määritellä skeeman ylimmällä tasolla xs:schema-elementin lapsielementteinä. Globaaliin elementtiin viitataan xs:elementmäärityksen ref-attribuutilla. Globaalit elementtimääritykset ovat uudelleenkäytettäviä. Muutokset elementin määritykseen heijastuvat kaikkiin elementtiin viittaaviin kohtiin. Lisäksi globaalit elementtimääritykset löytyvät paremmin skeemoista, koska niitä ei ole upotettu muiden määritysten sisään. Alla on esimerkki viittauksesta globaaliin elementtiin (EtuNimi) <xs:element name="etunimi" type xs:string/> <xs:complextype name= HenkiloTiedotTyyppi > <xs:sequence> 6/12
<xs:element ref="etunimi"/>... </xs:sequence> </xs:complextype> 6.3 Tyyppimäärittelyt Elementtien tyyppimäärittelyissä (SimpleType) käytetään pääsääntöisesti W3C:n XML Schema -suosituksen perustyyppejä. Suositus on, että käytetään alla olevassa taulukossa lueteltuja perustyyppejä. Tyyppi Selite Esimerkki xs:string merkkijono Kotitaloustyö xs:integer kokonaisluku -123 desimaaliluku -2.54 xs:time kellonaika 12:00:00 xs:date päivämäärä 2006-06-14 xs:datetime ajankohta 2006-06-14T12:00:00 xs:boolean totuusarvo (true/false) true XML Schema -suositus sisältää lisäksi muita perustyyppejä, joita ei ole taulukossa esitelty. Niiden käyttö voi olla perusteltua poikkeustapauksissa. Poikkeukseen on oltava painava syy. Jos perustyyppiin tehdään lisärajoitteita, se nimetään omaksi tietotyypikseen (ks. 5.4 tyyppien nimeäminen). 6.4 Ilmentymien ja tietotyyppien vastaavuudet XML-skeemassa elementtien tietotyypit esitetään W3C:n XML Schema -suosituksen perustyyppeinä. Alla on kuvattu vastaavuudet ilmentymien (Representation Terms) ja perustyyppien välillä. Ilmentymä Aika Arvo Aste Binaari Koodi Kuva Tietotyyppi xs:time xs:binary xs:string xs:binary 7/12
Kytkin Lkm Mitta Maara Nimi Nro Prosentti Pvm PvmAika Teksti Tunnus xs:string, xs:boolean xs:string xs:date xs:datetime xs:string xs:string 6.5 Koodistot Koodistot ovat standardoituja, vakiintuneita tai virallistettuja koodiluetteloita. Koodistoa ylläpitää tavallisesti jokin nimetty taho. Esimerkkejä yleisistä koodistoista ovat: Postinumerot Maakoodit Kielikoodit XML-skeemoissa koodistoja käytetään rajaamaan elementtien sallittuja arvoja. XML-skeemamuotoisten koodistojen ylläpito tulee vastuuttaa. 7 Nimiavaruuksien nimeäminen XML nimiavaruudet on määritelty W3C:n nimiavaruussuosituksessa (Namespaces in XML). Nimiavaruuksien avulla elementit ja attribuutit kiinnitetään yksiselitteisesti nimettyyn asiayhteyteen. Jos kahdella elementillä tai attribuutilla on sama nimi, ne voidaan erottaa toisistaan kiinnittämällä ne omiin nimiavaruuksiinsa. Nimiavaruus kuvataan URI-viittauksena. Jokaisessa skeemassa tulee nimetä kohdenimiavaruus (targetnamespace). Skeeman oletusnimiavaruus (default namespace) on sama kuin sen kohdenimiavaruus (targetnamespace). XML Schema -määritykseen kuuluvat osat tarkennetaan nimiavaruudella http://www.w3.org/2001/xmlschema. Sen lyhyenä nimenä käytetään lyhennettä xs. Nimiavaruuden nimen perusrakenne on seuraava: perusosa/kohdealue/tarkenne/vuosi/kuukausi/päivä/ 8/12
Julkishallinnon XML-skeemojen perusnimiavaruus (perusosa) on: http://skeemat.jhs-suositukset.fi/ [Huom! Nimiavaruudesta ei ole vielä tehty päätöstä.] Kohdealue voi olla esim. Yhteiset. Kohdealue Yhteiset kattaa yhteiset uudelleenkäytettävät elementtimääritykset. Tarkenne ilmaisee skeeman tarkan käyttökohteen, esim. Osoite. Nimiavaruuksien versioinnissa käytetään skeeman julkaisemisen päivämäärää, joka lisätään nimiavaruuden loppuun. Esimerkki nimiavaruudesta on: http://skeemat.jhs-suositukset.fi/yhteiset/osoite/2008/08/21 URL-osoitteen käyttö nimiavaruuden nimenä mahdollistaa nimiavaruuden käyttämisen fyysisessä skeemaviittauksessa. URL-osoitetta saa käyttää suoraan fyysiseen osoittamiseen. On kuitenkin sallittua, että URL-osoitteeseen ei ole tallennettu skeemaa. On suositeltavaa, että URL-linkin takaa löytyy vähintään skeemaa kuvaavaa dokumentaatiota. 8 Skeemojen modulaarisuus ja hierarkkisuus 8.1 Skeemojen modulaarisuuden perusmalli Skeemojen modulaarisuudella pyritään tehokkaaseen uudelleenkäyttöön. Kerran määriteltyjä skeemojen osia voidaan käyttää useissa ylemmän tason skeemoissa. Skeemojen modulaarisuuden perusmallin tavoitteita ovat: 1. Malli on tarpeeksi yksinkertainen, jotta sitä voidaan soveltaa käytännössä 2. Malli on riittävän monipuolinen, jotta se vähentää kehittäjien työtä skeemojen määrittelyssä 3. Kerran määritellyt skeemamääritykset ovat uudelleenkäytettäviä 4. Skeemojen elementtimääritykset voidaan johtaa suoraan sanaston käsitteistä Joustava skeemojen muodostaminen edellyttää, että tiukkoja ja monimutkaisia rakenteita ei pyritä kiinnittämään omiksi aliskeemoikseen. Tyypillisesti esimerkiksi elementtien järjestys ja pakollisuus tietyn skeeman sisällä vaihtelevat organisaatioittain. Tällaisten skeemamääritysten uudelleenkäyttö johtaa usein organisaatio- ja kohdealuekohtaisiin muutoksiin ja epäviralliseen versiointiin. Alla on esitetty kaaviokuvana esimerkki skeemojen modularisoinnista. Ylimmällä tasolla ovat Rajapintaskeemat. Rajapintaskeemoihin voidaan sisällyttää uudelleenkäytettäviä koosteskeemoja. Rajapintaskeemoihin ja koosteskeemoihin voidaan sisällyttää atomaarisia elementtimäärityksiä sisältäviä skeemoja. 9/12
8.2 Atomaaristen elementtien skeemat Atomaarinen elementtimääritys muodostuu yhdestä elementin määrittelystä, esimerkiksi: <xs:element name="henkilotunnus" type="xs:string"/> Yksi fyysinen skeematiedosto voi sisältää yhden tai useamman atomaarisen elementtimäärityksen. Samaan skeematiedostoon kootut atomaariset elementtimääritykset jakavat yhteisen versiohistorian. Jos yhden tiedostoon kuuluvan elementin määritys muuttuu, kaikkien tiedostossa olevien elementtimääritysten versio vaihtuu. Ainoastaan yhden elementtimäärityksen sisältävät aliskeemat tarjoavat joustavan mahdollisuuden versioida skeemoja yksittäisten elementtimääritysten tasolla. Skeemojen ja sanaston käsitteiden välinen yhteys muodostuu siten, että yhtä atomaarista elementtimäärittelyä vastaa yksi sanaston käsite. Näin pyritään varmistamaan yhteisten käsitteiden käyttö sekä yhtenäinen skeemanimeäminen kaikilla kohdealueilla. Sanasto voi sisältää myös sellaisia käsitteitä, joilla ei ole vastinetta atomaarisena elementtimäärittelynä. 8.3 Koosteskeemat Koosteskeema sisältää tietyn organisaation, kohdealueen, projektin tms. määrittelemän täsmällisen rakenteen jollekin elementtien joukolle. Koosteskeema kootaan atomaarisista elementtimäärityksistä. Koosteskeemassa voidaan määritellä elementtien järjestys ja pakollisuus. Voi olla tarkoituksenmukaista, että esimerkiksi jokin organisaatio määrittelee täsmällisen osoitteen rakenteen. Useat organisaation rajapintaskeemat voivat uudelleenkäyttää tällaista osoiteskeemaa. Oraganisaatio voi julkaista uudelleenkäytettävän koosteskeeman julkiseen skeemahakemistoon, josta muutkin organisaatiot voivat hyödyntää sitä. 10/12
8.4 Rajapintaskeemat Rajapintaskeema on jonkin organisaation palvelun tai järjestelmän edustalle kehitetyn rajapinnan tekninen sanomakuvaus. Rajapintaskeemat muodostavat tyypillisesti kysely-vastaus-pareja. Rajapintaskeemoista viitataan (xs:import) pääsääntöisesti atomaarisiin elementtimäärityksiin. Rajapintaskeemoista voidaan myös viitata uudelleenkäytettäviin koosteskeemoihin. Jos rajapintaskeemasta viitataan koosteskeemaan, viittaukset atomaarisiin elementtimäärityksiin tehdään näistä koosteskeemoista. Rajapintaskeemoissa kiinnitetään muun muassa elementtien järjestys ja pakollisuus. Rajapintaskeemassa tulee atomaariset elementtimääritykset sisällyttää xs:import-määrityksin osaksi skeemaa. Isoissa rajapintaskeemoissa tämä voi tarkoittaa jopa kymmenien xs:import-määritysten tekemistä. Kehittäjien työtä tukemaan tulisi rakentaa joko valmiita skeemapohjia tai automatiikkaa, jolla xs:importmäärityksiä voidaan generoida tarpeen mukaan. 8.5 Skeemojen xs:import-määritykset Alemman tason skeemat sisällytetään osaksi ylemmän tason skeemaa xs:import-määrityksillä. Esimerkiksi: <xs:import namespace= "http://skeemat.jhs-suositukset.fi/yhteiset/ Osoite/2008/08/21" schemalocation="jhs_osoite_20080821.xsd"/> 8.6 Hierarkkiset XML-puurakenteet Sanomaskeemojen XML-rakenteissa pyritään mahdollisimman mataliin hierarkioihin. Turhia välitasoja tulee välttää. Sallittujen hierarkiatasojen lukumäärää ei kuitenkaan täsmällisesti rajoiteta. Tasojen määrä riippuu vaatimuksista ja tietomallin monimutkaisuudesta. Pääsääntöisesti loogiset kokonaisuudet sisällytetään isä-elementin sisään. Esim. <Henkilo> <EtuNimi>Matti</EtuNimi> <SukuNimi>Meikäläinen</SukuNimi> <HenkiloTunnus>111111-1111</HenkiloTunnus> </Henkilo> 9 Skeemojen versiointi Skeemojen eri tasojen versiointi asettaa haasteita XML-rajapintaratkaisuille. Rajapintojen tulee toimia myös skeemamuutosten jälkeen. Versiointia edellyttävät muutokset voidaan jakaa kahteen luokkaan: 1. Muutos vaikuttaa skeeman aikaisemman version mukaisten XML-instanssien validointiin Jos muutos vaikuttaa skeeman aikaisemman version mukaisten XML-instanssien validointiin, uusi versio ilmaistaan nimiavaruuden nimessä. Nimiavaruuksien nimeäminen on esitetty luvussa 7. Tyypillinen esimerkki luokkaan 1 kuuluvasta muutoksesta on, että skeemaan lisätään yksi tai useampi elementtimääritys, jossa elementti määritellään pakolliseksi. Muutos vaikuttaa skeeman aikaisemman version mukaisten XML-instanssien validointiin, koska sellaiset XML-instanssit, joista kyseinen elementti puuttuu, ovat uuden skeeman mukaan virheellisiä. Tällöin skeeman pääversiota (nimiavaruuden nimi) pitää muuttaa. 2. Muutos ei vaikuta skeeman aikaisemman version mukaisten XML-instanssien validointiin 11/12
Jos muutos ei vaikuta skeeman aikaisemman version mukaisten XML-instanssien validointiin, muutos ilmaistaan xs:schema-elementin xs:version-attribuutissa. Numerointi aloitetaan aliversiosta 1.0. Tyypillinen esimerkki luokkaan 2 kuuluvasta muutoksesta on, että skeemaan lisätään yksi tai useampi elementtimääritys, jossa elementti määritellään vapaaehtoiseksi. Tämä muutos ei vaikuta skeeman aikaisemman version mukaisten XML-instanssien validointiin, sillä kaikki XML-istanssit ovat myös uuden skeeman mukaan valideja. Tällöin skeeman pääversiota ei tarvitse vaihtaa, vaan riittää että ilmaistaan sen aliversio numerolla. Kun skeema luodaan ensimmäisen kerran, se saa sekä pääversion nimiavaruuden nimessä että aliversion xs:schema-elementin xs:version-attribuutissa. Skeeman ensimmäiseksi aliversioksi asetetaan 1.0. 10 Merkistö XML-skeemoissa ja -sanomissa käytettävä merkkien koodaus (encoding) on UTF-8. 11 Opastavat tiedot Tätä suositusta ylläpitää Julkisen hallinnon tietohallinnon neuvottelukunta JUHTA, puh (09) 16001, sähköposti: jhs-sihteeri@jhs-suositukset.fi JHS-järjestelmän verkkosivut: http://www.jhs-suositukset.fi/ 11.1 Liitteet Liite 1: Julkishallinnon yhteisiä XML-skeemoja Liite 2: Esimerkki XML-skeemojen muodostamisesta 12/12