JHS 170 Julkishallinnon XML-skeemat



Samankaltaiset tiedostot
Julkishallinnon XML-skeemat v0.5 JHS-suositus

JHS XXX Julkishallinnon XML-skeemat

JHS XXX Julkishallinnon XML-skeemat

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta

SÄHKE-hanke. Tekninen mallintaminen SÄHKE-metatietojen XML Schema

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Yhteentoimivuutta edistävien työkalujen kehittäminen

JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 3 XML-skeeman kuvaus ja esimerkit

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

JHS 193 Paikkatiedon yksilöivät tunnukset Liite 1. URI:n muodostamisen prosessi

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

P e d a c o d e ohjelmointikoulutus verkossa

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

Korkeakoulujen yhteentoimivuusmalli

Schema Asiakasprofiili.xsd

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

JHS 187 Tunnussuositusten koontisuositus

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

T2V2 Vaaratilanneilmoitussanomakuvaus

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Liite B. Asemakaavan mallinnus tiedonsiirtoa varten

SÄHKE-hanke. Tekninen mallintamisen Siirtotiedoston metatietokuvaukset

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Liite A. Kantakartan mallinnus tiedonsiirtoa varten

Liite D: Poikkeamispäätösten ja suunnittelutarveratkaisujen mallinnus tiedonsiirtoa varten

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

T2V2 Turvallisuushavaintoilmoitussanomakuvaus

Tietojen toimittaminen Skeemat Aineistotilaukset Kansallisen tulorekisterin perustamishanke

JHS XXX Kuntien ja kuntayhtymien palveluluokitus

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

JHS-järjestelmä ja yhteentoimivuus

Schema ReitinTilaus.xsd

Sanomakuvausten järjestelmäkohtaiset tiedostot

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Modulaariset tietosisältömäärittelyt Tilannekatsaus

OHJE TESTIAINEISTON ANONYMISOINNISTA

Luonnos eams-rakenteeksi

JHS XXX Paikkatiedon yksilöivät tunnisteet Liite 1: URI:n muodostamisen prosessi

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

1. Lähtökohta ja taustat

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Helsingin yliopisto / TKTL XML-Metakieli XML Schema

JHS XML suositus. XML Finland tapahtuma Mikael af Hällström ylitarkastaja, Verohallinto JHS XML työryhmän vetäjä

Suvi Remes Miika Alonen Petri Mustajoki Totti Tuhkanen

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

Sosiaalihuollon asiakirjastandardi kehittyy. Konstantin Hyppönen Erikoissuunnittelija Tietojenkäsittelytieteen laitos Kuopion yliopisto

Tietojen jakelu Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

JHS XXX Julkishallinnon XML-skeemat

Product: Maa-ainesluvat Reporter: jesse

Kansallinen koodistojen siirtoformaatti

Opintosuoritukset. Kaaviokuva

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

Yhteinen kansallinen koodistopalvelu ( Suomi.fi koodistopalvelu )

INSPIREn määrittelyjen mukaisen tietotuotteen muodostaminen: <Mineraalivarat>

Inspire-kohdetunnisteet

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset 2020 Tulorekisteriyksikkö

Yhteentoimivuusalusta ja Sanastot-työkalu

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

- Korkeakoulutuksen ja tutkimuksen (linkitetty) tietomalli

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus

JHS XXX Tunnussuositusten koontisuositus

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

Yhteentoimivuutta edistävien työkalujen kehittäminen - JulkICTLab pilottiehdotus

Kohti aidosti palvelevaa hallintoa yhteinen metatietoarkkitehtuuri yhteentoimivuuden kulmakivenä

JHS 109 Huoneiston tunniste

Saavutettavuus tietojärjestelmien hankinnoissa

Yhteentoimivuusvälineistö

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Liite C: Rakennuslupatietojen mallinnus tiedonsiirtoa varten

Tietojen jakelu Skeemat Maksajan palkkatietojen yhteenveto Kansallisen tulorekisterin perustamishanke

ISNI-järjestelmä. Sähköisten sisältöjen aamupäivä Maarit Huttunen. KANSALLISKIRJASTO - Tutkimuskirjasto

XML-saatavuuskysely. XML-tiedoston kuvaus. versio

Pysyvät tunnukset ja niiden hyödyntäminen

Tietojen toimittaminen Skeemat Aineistotilaukset Kansallisen tulorekisterin perustamishanke

JHS 181 Julkisen hallinnon standardisalkku

JHS XXX Kansallisen tie- ja katuverkostoaineiston ylläpito ja ylläpitotietojen dokumentointi

Opiskeluoikeudet. Kaaviokuva

Luento 12: XML ja metatieto

JHS 178 Kunnan paikkatietopalvelurajapinta Liite 2 Asemakaavan mallinnus tiedonsiirtoa varten

Paikkatietojen tietotuotemäärittely

Tuomiorekisterin ratkaisuhaun kehittäminen

Katsaus tietoarkkitehtuurityöhön

PALKKA-AINEISTON SIIRTOTIEDOSTO

3 Verkkosaavutettavuuden tekniset perusteet

JULKISTEN VERKKOPALVELUJEN LAATUKRITEERISTÖN KONSEPTI

Transkriptio:

JHS 170 Julkishallinnon XML-skeemat Versio: 1.2 5.10.2012 Julkaistu: 30.3.2009 Voimassaoloaika: Toistaiseksi Sisällys 1 Johdanto... 2 2 Soveltamisala... 2 3 Termit ja määritelmät... 2 4 Sanastotyön ja XML-skeemojen yhteys... 3 5 XML-rakenteiden nimeäminen... 3 5.1 Yleisiä nimeämissääntöjä... 5 5.2 Elementtien nimeäminen... 5 5.3 Attribuuttien nimeäminen... 5 5.4 Tyyppien nimeäminen... 5 5.5 Yleiset lyhenteet... 6 5.6 Ilmentymät (Representation Terms)... 7 6 Skeemojen tekemisen perusohjeistus... 8 6.1 Elementtejä vai attribuutteja... 8 6.2 Tyyppimäärittelyt... 8 6.3 Ilmentymien ja tietotyyppien vastaavuudet... 8 6.4 Globaalit määritykset... 9 6.5 Koodistot... 10 7 Nimiavaruuksien nimeäminen... 10 8 Skeemojen modulaarisuus ja hierarkkisuus... 11 8.1 Skeemojen modulaarisuuden perusmalli... 11 8.2 Atomaaristen elementti- ja tyyppimääritysten JHS-skeema... 12 8.3 Koosteskeemat... 12 8.4 Rajapintaskeemat... 13 8.5 Skeemojen xs:import-määritykset... 13 8.6 Hierarkkiset XML-puurakenteet... 13 9 Skeemojen versiointi... 13 9.1 Julkishallinnon yhteisten skeemojen versiointi... 13 9.2 Organisaatiokohtaisten skeemojen versiointi... 14 10 Merkistö... 14 11 Opastavat tiedot... 14 12 Liitteet... 14 1/14

1 Johdanto Tämä JHS-suositus ohjeistaa XML-skeemojen tuottamista ja hallintaa julkishallinnossa. Suosituksessa kuvataan julkisen hallinnon XML-skeemojen muodostamisen yhteisiä periaatteita. Lisäksi on laadittu 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. Suosituksessa viitatut XML- ja XML-skeemateknologiat perustuvat W3C:n suosituksiin: http://www.w3.org/xml/ ja http://www.w3.org/xml/schema. XML-skeemojen tuottamisella on läheinen yhteys sanastotyöhön. Tätä suositusta PITÄÄ noudattaa johdettaessa tekniikkaan sitomattomista sanastojen käsitteistä XML-rakenteita. Tässä suosituksessa käytetään seuraavia termejä niin kuin ne on määritelty IETF:n (Internet Engineering Task Force) toimesta (RFC 2119 [3]). http://www.ietf.org/rfc/rfc2119.txt. PITÄÄ(MUST) EI SAA (MUST NOT) PAKOLLINEN (REQUIRED) PITÄISI (SHOULD) EI PITÄISI (SHOULD NOT) SAA (MAY) VAPAAEHTOINEN (OPTIONAL) Jos organisaatio haluaa, että sen XML-skeemat ovat tämän JHS-suosituksen mukaisia, niin suosituksessa esitetyt vaatimukset PITÄÄ täyttää. Järjestelmien yhteentoimivuus edellyttää, että pidemmällä aikavälillä useat organisaatiot laativat XML-skeemoja suosituksen vaatimusten mukaan. 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. 2/14

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 PITÄISI alkaa sanaston käsitteiden määrittelemisestä tai jo määriteltyjen käsitteiden hyödyntämisestä. Sanastojen ja XML-skeemojen hallinnointi ja tekniset varastointiratkaisut PITÄISI kehittää siten, että ne tukevat sanaston käsitteistä lähtevää skeemojen tuottamista. Tässä suosituksessa ei ohjeisteta sanastojen määrittelyä. Sanastojen laatijoiden PITÄISI huomioida tämän suosituksen linjaukset siltä osin kuin ne koskevat XML-skeemojen johtamista sanaston käsitteistä. 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 ja Representation term.) Objektiluokka yksilöi jonkin objektin tai toiminnan jossain asiayhteydessä. Luokka- tai oliomalleissa Objektiluokat kuvautuisivat nimensä mukaisesti luokiksi. Ominaisuustermi yksilöi objektin yhden ominaisuuden. Luokka- tai oliomalleissa Ominaisuustermit kuvautuisivat luokkien attribuuteiksi. Ilmentymä määrittelee ominaisuuden tietotyypin ilmentymistavan. Lisäksi jokaista osaa tarkentamaan SAA käyttää Määreitä (Qualifier). Alla on esitetty esimerkki nimen muodostumisesta. Nimen osien erottamiseen on käytetty pistettä.. Yllä esitetty muoto on käsitteestä käytettävä sanaston tekninen termi, joka kuvataan sanastossa. Kun sanaston teknisestä termistä muodostetaan XML-skeemassa käytettävä JHS-elementtinimi, siitä rajataan pois Objektiluokka, minkä jälkeen Ominaisuustermi ja Ilmentymä yhdistetään toisiinsa. Jos ominaisuustermin lopussa oleva sana on sama kuin Ilmentymä, voidaan päällekkäinen sana poistaa. Muodostettava nimi päättyy tällöin isolla kirjaimella alkavaan Ilmentymään. Yllä olevasta sanaston teknisestä termistä johdettu JHS-elementtinimi on siten: SukuNimi 3/14

Määreen käyttöä selventää esimerkkikäsite Henkilön edellinen sukunimi. Käsitettä vastaava sanaston tekninen termi olisi: Henkilo. Edellinen_ Sukunimi. Nimi Yllä olevassa teknisessä termissä Edellinen on Määre, joka tarkentaa Ominaisuustermiä Sukunimi. Määreen erotinmerkkinä käytetään alaviivaa _. Vastaava JHS-elementtinimi olisi tällöin: EdellinenSukuNimi Alla olevassa taulukossa on esimerkkejä, joissa on kuvattu käsite, sitä vastaava sanaston tekninen termi ja siitä johdettu JHS-elementtinimi. Käsitteen nimi ja tekninen termi voivat poiketa taivutusmuodoltaan. Esimerkiksi taulukon käsitteestä Kuolinpäivä muodostettu tekninen termi on Henkilo. Kuolema. Pvm. Käsite Sanaston tekninen termi JHS-elementtinimi Henkilötunnus Henkilo. Henkilotunnus. Tunnus HenkiloTunnus Etunimet Henkilo. Etunimet. Nimi EtunimetNimi Sukunimi Henkilo. Sukunimi. Nimi SukuNimi Turvakielto Henkilo. Turvakielto. Kytkin TurvakieltoKytkin Kuolinpäivä Henkilo. Kuolema. Pvm KuolemaPvm Kadun nimi Osoite. Katu. Nimi KatuNimi Postinumero Osoite. Postinumero. Koodi PostinumeroKoodi Sanaston teknisestä termistä rajatun Objektiluokan PITÄISI olla JHS-elementtien isäelementti XMLskeemaa vastaavassa XML-rakenteessa. Alla on esimerkki XML-rakenteista, joissa JHS-elementit on sisällytetty Objektiluokkia vastaaviin isäelementteihin. <Henkilo> <SukuNimi>Meikäläinen</SukuNimi> <EtunimetNimi>Matti Juhani</EtunimetNimi> <HenkiloTunnus>111111-1111</HenkiloTunnus> <TurvakieltoKytkin>False</TurvakieltoKytkin>... <!-- Muita Henkilo-elementin lapsielementtejä -->... </Henkilo> <Osoite> <KatuNimi>Kotikatu</KatuNimi> <PostinumeroKoodi>99999</PostinumeroKoodi>... <!-- Muita Osoite-elementin lapsielementtejä -->... </Osoite> 4/14

5.1 Yleisiä nimeämissääntöjä Elementtien ja attribuuttien nimien PITÄISI olla ensisijaisesti suomenkielisiä. Tarvittaessa nimistä SAA tehdä englanninkieliset käännökset, joita voidaan käyttää englanninkielisissä skeemoissa. Samassa skeemassa EI PITÄISI käyttää sekä suomen- että englanninkielisiä nimiä. Mikäli jollakin toimialalla on kansainväliseen standardointiin perustuvia englanninkielisiä skeemoja, on niiden käyttö luonnollisesti sallittua ja usein pakollistakin. Nimien PITÄÄ olla kirjakielen muotoisia substantiiveja, verbejä ja adjektiiveja. Substantiivien PITÄÄ olla 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 Skandinaavisia merkkejä EI SAA käyttää XML-sanomien elementti-, attribuutti- ja tyyppinimissä. XMLsanomien sisällössä SAA käyttää skandinaavisia merkkejä. Elementtien, attribuuttien ja tyyppien nimissä EI SAA käyttää alaviivaa ( _ ), pistettä (. ), väliviivaa ( - ) eikä muita aakkosten ulkopuolisia merkkejä. Nimissä SAA käyttää numeroita ( 0-9 ). Kaikki elementtien, tyyppien ja attribuuttien nimet PITÄÄ kirjoittaa yhteen. 5.2 Elementtien nimeäminen Elementtinimien PITÄÄ noudattaa ns. Upper Camel Case -tyyliä. Nimen kaikkien sanojen alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Esimerkiksi: HenkiloTunnus KatuNimi 5.3 Attribuuttien nimeäminen Attribuuttinimien PITÄÄ noudattaa ns. lower Camel Case -tyyliä. Muiden paitsi nimen ensimmäisen sanan alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Esimerkiksi: kielikoodi 5.4 Tyyppien nimeäminen Käyttäjien määrittelemien johdettujen tietotyyppien PITÄÄ noudattaa ns. Upper Camel Case -tyyliä. Nimen kaikkien sanojen alkukirjaimet kirjoitetaan isolla kirjaimella. Sanat kirjoitetaan yhteen. Tyypin nimen loppuun PITÄÄ lisätä pääte Tyyppi. Esimerkiksi: HenkiloTunnusTyyppi Englanninkielisissä skeemoissa tyypin nimen loppuun PITÄÄ lisätä pääte Type. 5/14

5.5 Yleiset lyhenteet Lyhenteitä ovat yleisesti käytetyt tai tunnetut lyhennemerkinnät, joilla alkuperäistä sanaa lyhennetään merkittävästi. Lyhenne voi esiintyä missä kohdassa nimeä hyvänsä. Lyhenteet PITÄÄ kirjoittaa isoilla tai pienillä kirjaimilla niiden tyypillisen käyttötavan mukaan. Alla olevassa lyhenneluettelossa on esitetty yleisimpiä lyhenteitä kirjoitusasussaan. Lyhenteitä PITÄÄ käyttää nimissä sellaisissa kohdissa, joissa kyseinen sana esiintyy. Luettelon lähteenä on käytetty Suomen kielitoimiston julkaisemaa lyhenneluetteloa (http://www.kotus.fi/index.phtml?s=2149). Lyhenne ALV ATK BKT CV db Dnro EU ICT ISBN ISSN JNro Km Kv Max Min Nro Oy Oyj Puh Pvm Srk Tmi Selite arvonlisävero automaattinen tietojenkäsittely bruttokansantuote lat. curriculum vitae, elämänvaiheet, elämäkerta; ansioluettelo Desibeli(ä) diaarinumero Euroopan unioni engl. information and communication technology, informaatio- ja kommunikaatioteknologia engl. International Standard Book Number, kirjan kansainvälinen standardinumero 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 6/14

URL 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.jhs-suositukset.fi) Vrk vuorokausi, vuorokautta Tavoitetilassa XML-elementtinimet PITÄISI johtaa sanaston käsitteistä. Elementtien nimien PITÄISI olla pääsääntöisesti samoja kuin vastaavien käsitteiden nimet sanastossa. Jos sanastossa käytetään lyhennettä, PITÄÄ samaa lyhennettä käyttää myös XML-skeemassa. Organisaatioiden nimilyhenteitä PITÄISI ylläpitää keskitetysti. Niitä ei ole kuvattu ylläolevassa taulukossa kaikkein yleisimpiä organisaatiolyhenteitä (esim. EU) lukuun ottamatta. Tässä suosituksessa ei linjata organisaatioiden nimilyhenteiden vastuutahoja. 5.6 Ilmentymät (Representation Terms) Ilmentymä (Representation Term) on elementin nimen loppuun liitettävä termi, joka kuvaa elementin sisällön tyypin. Ilmentymä PITÄÄ liittää sellaisen elementin nimen loppuun, joka voi sisältää dataa. Termi Termi englanniksi Käyttötarkoitus Aika Time Kellonaika, ajankohta (ISO 8601) Arvo Value Numeerinen 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 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. Numero Number Numero Prosentti Percent Prosenttilukuna esitettävä numeroarvo Pvm Date Päivä kalenterissa, ajankohta (ISO 8601) Hetki DateTime Päivä kalenterissa ja kellonaika, ajankohta (ISO 8601) Suhde Rate Suhde numeerisena arvona 7/14

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 PITÄÄ käyttää elementtejä. Attribuuttien PITÄISI sisältää pääasiassa elementin sisällön arvoa kuvaavaa metatietoa. 6.2 Tyyppimäärittelyt Elementtien yksinkertaisissa tyyppimäärittelyissä (SimpleType) PITÄÄ pääsääntöisesti käyttää W3C:n XML Schema -suosituksen perustyyppejä. Määrittelyissä PITÄISI käyttää alla olevassa taulukossa lueteltuja perustyyppejä. Tyyppi Selite Esimerkki xs:string merkkijono Kotitaloustyö xs:integer kokonaisluku -123 xs:decimal 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 xs:base64binary binäärityyppi Ks. http://www.ietf.org/rfc/rfc2045.txt XML Schema -suositus sisältää lisäksi muita perustyyppejä, joita EI SAA käyttää kuin poikkeustapauksissa. Poikkeukseen on oltava painava syy. Jos perustyyppiin tehdään lisärajoitteita, se PITÄÄ nimetä omaksi tietotyypikseen (ks. 5.4 tyyppien nimeäminen). 6.3 Ilmentymien ja tietotyyppien vastaavuudet XML-skeemassa elementtien yksinkertaiset tietotyypit (simpletype) PITÄÄ esittää W3C:n XML Schema -suosituksen perustyyppeinä. Alla on kuvattu vastaavuudet ilmentymien ja perustyyppien välillä. 8/14

Ilmentymä Aika Arvo Binaari Koodi Kuva Kytkin Lkm Mitta Maara Nimi Numero Prosentti Pvm Hetki Suhde Teksti Tunnus Tietotyyppi xs:time xs:decimal xs:base64binary xs:string xs:base64binary xs:string, xs:boolean xs:decimal xs:decimal xs:decimal xs:string xs:decimal xs:decimal xs:date xs:datetime xs:decimal xs:string xs:string 6.4 Globaalit määritykset Kaikki elementit ja tyypit PITÄÄ määritellä globaaleina. Tämä tarkoittaa, että ne PITÄÄ määritellä skeeman ylimmällä tasolla xs:schema-elementin alla. Globaalit elementti- ja tyyppimääritykset ovat uudelleenkäytettäviä. Muutokset määritykseen heijastuvat kaikkiin siihen viittaaviin kohtiin. Lisäksi globaalit määritykset löytyvät paremmin skeemoista, koska niitä ei ole upotettu muiden määritysten sisään. Suunnittelumallia (Design Pattern), jossa kaikki elementit ja tyypit määritellään globaaleina, kutsutaan Garden of Eden -malliksi. Globaaliin elementtiin viitataan xs:element-määrityksen ref-attribuutilla. Globaaliin tyyppiin viitataan xs:element-määrityksen type-attribuutilla 9/14

Alla on esimerkki viittauksesta globaaliin elementtimääritykseen (EtunimetNimi) sekä kaksi esimerkkiä viittauksesta globaaliin tyyppimääritykseen (EtunimetNimiTyyppi ja HenkiloTyyppi). <xs:type name EtunimetNimiTyyppi type xs:string /> <xs:element name="etunimetnimi" type= EtunimetNimiTyyppi /> <xs:complextype name= HenkiloTyyppi > <xs:sequence> <xs:element ref="etunimetnimi"/>... </xs:sequence> </xs:complextype> <xs:element name= Henkilo type= HenkiloTyyppi /> 6.5 Koodistot Koodistot ovat standardoituja, vakiintuneita tai virallistettuja koodiluetteloita. Koodistoa ylläpitää tavallisesti jokin nimetty taho. XML-skeemoissa koodistoja käytetään rajaamaan elementtien sallittuja arvoja. Esimerkkejä yleisistä koodistoista ovat: Postinumerot Maakoodit Kielikoodit Mikäli yleisiä importoitavia XML-skeemamuotoisia koodistoja käytetään, PITÄÄ niiden ylläpito 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 PITÄÄ nimetä kohdenimiavaruus (targetnamespace). XML Schema -määritykseen kuuluvat osat tarkennetaan nimiavaruudella http://www.w3.org/2001/xmlschema. Sen lyhyenä nimenä PITÄÄ käyttää lyhennettä xs. Nimiavaruuden nimen perusrakenne on seuraava: perusosa/<organisaatiokohtainen rakenne>/vuosi/kuukausi/päivä/ Julkishallinnon yhteisten XML-skeemojen perusnimiavaruus (perusosa) on: http://skeemat.jhs-suositukset.fi/ Kunkin organisaation PITÄÄ määritellä organisaatiokohtaisten XML-skeemojen nimiavaruuksien perusosa itse. Nimiavaruuden osan <organisaatiokohtainen rakenne> organisaatio SAA muodostaa itse, koska kohdealueet ja käyttökohteet riippuvat voimakkaasti toimialasta ja organisaatiosta. <organisaatiokohtainen rakenne> SAA sisältää useita hierarkkisia tasoja tilanteen mukaan. Julkishallinnon yhteisen skeemaluettelon organisaatiokohtainen osa on yhteiset. 10/14

Nimiavaruuden nimen loppuun PITÄÄ merkitä skeeman julkaisemisen päivämäärä. Nimiavaruus ilmaisee päivämäärän avulla skeeman version (ks. luku 9 Skeemojen versiointi). Esimerkiksi 12.2.2009 julkaistun julkishallinnon yhteisen skeemaluettelon nimiavaruus on: http://skeemat.jhs-suositukset.fi/yhteiset/2009/03/04 URL-osoitteen käyttö nimiavaruuden nimenä mahdollistaa nimiavaruuden käyttämisen fyysisessä skeemaviittauksessa. URL-osoitetta SAA käyttää suoraan fyysiseen osoittamiseen. Skeeman tallentaminen URL-osoitteeseen on kuitenkin VAPAAEHTOISTA. URL-linkin takaa PITÄISI löytyä 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 elementti- ja tyyppimää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 tiettyyn skeemaan kuuluvien elementtien järjestys ja pakollisuus vaihtelevat organisaatioittain. Tällaisten skeemamääritysten uudelleenkäyttö johtaa usein organisaatio- ja kohdealuekohtaisiin muutoksiin ja epäviralliseen versiointiin. Kuvassa 1 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 elementti- tai tyyppimäärityksiä sisältäviä skeemoja. Kuvassa on esitetty yksi atomaaristen elementti- ja tyyppimääritysten skeema (JHSYdin.xsd), joka sisältää koko julkishallinnolle yhteiset elementti- ja tyyppimäärittelyt. Pääsääntöisesti organisaatioiden PITÄÄ importoida nämä yhteiset atomaariset määrittelyt omiin skeemoihinsa. 11/14

Kuva 1. Skeemojen modularisoinnin perusmalli Kukin organisaatio SAA määritellä myös omia kohdealuekohtaisia elementti- ja tyyppimäärityksiään vastaaviksi atomaariskeemoiksi. Organisaatiokohtaiset atomaariskeemat voivat tarvittaessa periä (importoida) JHS-skeeman määrityksiä ja erikoistaa niitä organisaation tarpeita vastaaviksi. 8.2 Atomaaristen elementti- ja tyyppimääritysten JHS-skeema Atomaaristen elementti- ja tyyppimääritysten JHS-skeema sisältää julkishallinnon yhteiset skeemamääritykset. Atomaarinen elementtimääritys muodostuu yhdestä elementin määrittelystä, esimerkiksi: <xs:element name="henkilotunnus" type="jhs:henkilotunnustyyppi"/> Jokaista atomaarista elementtimääritystä vastaa skeemassa yksinkertainen tyyppimääritys (simpletype), esimerkiksi: <xs:simpletype name="henkilotunnustyyppi"> <xs:restriction base="xs:string"/> </xs:simpletype> Skeemojen ja sanaston käsitteiden välinen yhteys muodostuu siten, että yhden sanaston käsitteen PITÄÄ vastata joko yhtä atomaarista elementtimäärittelyä tai sitä vastaavaa tyyppimäärittelyä. Näin pyritään varmistamaan yhteisten käsitteiden käyttö sekä yhtenäinen skeemanimeäminen kaikilla kohdealueilla. Sanasto SAA sisältää myös sellaisia käsitteitä, joilla ei ole vastinetta atomaarisena elementti- ja tyyppimäärittelynä. Jokaista atomaarista elementti- ja tyyppimäärittelyä PITÄISI vastata sanaston käsite. Pääsääntöisesti organisaation omissa skeemoissa PITÄISI viitata atomaariseen elementtimääritykseen. Atomaarisen määrittelyn muuttaminen organisaation tarpeita vastaavaksi on helpompaa viittaamalla vastaavaan tyyppimääritykseen. Tämän vuoksi organisaatio SAA omissa skeemoissaan viitata tyyppimääritykseen. Esimerkiksi sukunimen tyyppimääritys on atomaaristen määritysten JHS-skeemassa: <xs:simpletype name="sukunimityyppi"> <xs:restriction base="xs:string"/> </xs:simpletype> Organisaatio voi viitata JHS-skeeman tyyppimääritykseen ja muuttaa sitä esimerkiksi rajoittamalla elementin pituutta: <xs:simpletype name="sukunimityyppi"> <xs:restriction base="jhs:sukunimityyppi"> <xs:maxlength value="50"/> </xs:restriction> </xs:simpletype> Tällainen määritys SAA sisältyä organisaation omaan atomaaristen elementti- ja tyyppimäärittelyjen skeemaan. Jos uuden muodostetun tyypin nimi on sama kuin JHS-tyypin nimi, erotetaan muodostettu tyyppi alkuperäisestä JHS-tyypistä kiinnittämällä se organisaation itse määrittämään nimiavaruuteen. 8.3 Koosteskeemat Koosteskeema sisältää tietyn organisaation, kohdealueen, projektin tms. määrittelemän täsmällisen rakenteen jollekin elementtien joukolle. Koosteskeema PITÄISI koota atomaarisista elementtimäärityksistä tai 12/14

viittaamalla niitä vastaaviin tyyppimäärityksiin. Koosteskeemassa voidaan määritellä elementtien järjestys ja pakollisuus. Joissakin tapauksissa voi olla tarkoituksenmukaista, että jokin organisaatio määrittelee esimerkiksi täsmällisen osoitteen rakenteen. Useat organisaation rajapintaskeemat voivat uudelleenkäyttää tällaista osoiteskeemaa. Organisaatio voi julkaista uudelleenkäytettävän koosteskeeman julkiseen skeemahakemistoon, josta muutkin organisaatiot voivat hyödyntää sitä. 8.4 Rajapintaskeemat Rajapintaskeema on jonkin organisaation palvelun tai järjestelmän edustalle kehitetyn rajapinnan tekninen sanomakuvaus. Rajapintaskeemojen joukko muodostuu tyypillisesti kysely-vastaus-pareista. Tietty skeema kuvaa palvelukyselyä vastaavan sanoman ja toinen skeema kyseistä kyselyä vastaavan vastaussanoman. Rajapintaskeemoista PITÄISI viitata pääsääntöisesti atomaarisiin elementtimäärityksiin tai niitä vastaaviin tyyppimäärityksiin. Rajapintaskeemoista SAA myös viitata uudelleenkäytettäviin koosteskeemoihin. Jos rajapintaskeemasta viitataan koosteskeemaan, viittaukset atomaarisiin elementtimäärityksiin PITÄÄ tehdä näistä koosteskeemoista. Rajapintaskeemoissa kiinnitetään muun muassa elementtien järjestys ja pakollisuus. Rajapintaskeemassa PITÄÄ atomaariset elementtimääritykset sisällyttää xs:import-määrityksin osaksi skeemaa. 8.5 Skeemojen xs:import-määritykset Alemman tason skeemat PITÄÄ sisällyttää osaksi ylemmän tason skeemaa xs:import-määrityksillä. Esimerkiksi: <xs:import namespace= "http://skeemat.jhs-suositukset.fi/yhteiset/ 2009/03/04" schemalocation="jhsydin20090304.xsd"/> 8.6 Hierarkkiset XML-puurakenteet Sanomaskeemojen XML-rakenteissa PITÄISI pyrkiä mahdollisimman mataliin hierarkioihin. Turhia välitasoja PITÄÄ välttää. Sallittujen hierarkiatasojen lukumäärää ei kuitenkaan täsmällisesti rajoiteta. Tasojen määrä riippuu vaatimuksista ja tietomallin monimutkaisuudesta. Loogiset kokonaisuudet PITÄISI sisällyttää isä-elementin sisään. Alla olevassa esimerkissä hierarkiaa havainnollistetaan XML-instanssin avulla. <Henkilo> <EtunimetNimi>Matti Juhani</EtunimetNimi> <SukuNimi>Meikäläinen</SukuNimi> <HenkiloTunnus>111111-1111</HenkiloTunnus> </Henkilo> 9 Skeemojen versiointi Skeemojen eri tasojen versiointi asettaa haasteita XML-rajapintaratkaisuille. Rajapintojen PITÄÄ toimia myös skeemamuutosten jälkeen. 9.1 Julkishallinnon yhteisten skeemojen versiointi Julkishallinnon yhteisten skeemojen versiointiin PITÄÄ käyttää nimiavaruudessa ilmaistua versiota. Nimiavaruuksien nimeäminen on esitetty luvussa 7. Jokaisen skeemaan kohdistuvan muutoksen yhteydessä versiota PITÄÄ päivittää vastaamaan muutoksen julkaisupäivää. 13/14

9.2 Organisaatiokohtaisten skeemojen versiointi Organisaatiokohtaisten skeemojen 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 PITÄÄ ilmaista 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 Jos muutos ei vaikuta skeeman aikaisemman version mukaisten XML-instanssien validointiin, muutos PITÄÄ ilmaista xs:schema-elementin 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 version-attribuutissa. Skeeman ensimmäiseksi aliversioksi PITÄÄ asettaa 1.0. 10 Merkistö XML-skeemoissa ja -sanomissa PITÄÄ käyttää UTF-8 koodausta ja encoding-attribuuttia, joka selkeästi ilmaisee käytetyn koodauksen. 11 Opastavat tiedot Tätä suositusta ylläpitää Julkisen hallinnon tietohallinnon neuvottelukunta JUHTA, puh. 0295 16001, sähköposti: jhs-sihteeri@jhs-suositukset.fi JHS-järjestelmän verkkosivut: http://www.jhs-suositukset.fi/ 12 Liitteet Liite 1: Julkishallinnon yhteinen XML-ydinskeema 14/14