4 Johdanto XML-maailmaan

Samankaltaiset tiedostot
4 Kommentoitu johdanto XML-maailmaan

4 Johdanto XML-maailmaan

3 Verkkosaavutettavuuden tekniset perusteet

XML johdanto, uusimmat standardit ja kehitys

W3C, Web-teknologiat ja XML

XML-evoluutio ja kestävä kehitys

W3C, XML ja tietojenkäsittely: Ihmisen ja tietokoneen yhteinen ymmärrys suoritettavasta tehtävästä ja XML-standardien merkitys tietosysteemeissä (MH)

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Paikkatiedot ja Web-standardit

2 Rakenteisten dokumenttien perusteet

4 Kommentoitu johdanto XML-maailmaan

XML - mahdollisuudet ja kehitys

XML ja Web Services update

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys

Johdatus XML teknologioihin

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

W3C ja alueellinen standardointi

6 DTD ja dokumentin tyyppimääritys

W3C-teknologiat ja yhteensopivuus

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

XML-tietojenkäsittely

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Johdatus rakenteisiin dokumentteihin

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Rakenteisten dokumenttien jatkokurssi, syksy 2006

Hohde Consulting 2004

3 Verkkosaavutettavuuden tekniset perusteet

W3C, Web-teknologiat ja Semanttinen Web

XML, XHTML ja CSS. T Hypermediadokumentin laatiminen. Mikko Pohja

W3C & verkkojulkaisun standardit

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

Luento 1: Johdanto merkintäkieliin

6 XML-työkalut 1. 6 XML-työkalut

Dokumenttien tietosisällön hallinta

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Luento 7: XML-ohjelmointirajapinnat

W3C ja Web-teknologiat

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

5 Merkkaus: XML protokollana

2. PEHMEÄ XHTML XRAJAHTML

W3C: teknologia ja (tieto)yhteiskunta

5 Merkkaus: XML protokollana

Tutkija Mikko Salmenperä. huone: sd109. TTY / Systeemitekniikan laitos. puh: mikko.salmenpera@tut.fi

XML-pohjaiset rakennemäärittelyt

XML, standardointi ja kehitys

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

Neoxen Systems on suomalainen ohjelmistotalo. Olemme erikoistuneet tiedon- ja oppimisen hallinnan ratkaisuihin.

7 Kommentoitu johdanto XML:ään

Digitaalisen median tekniikat. JSP ja XML

Rakenteiset dokumentit Mitä hyötyä niistä on?

2 Rakenteisten dokumenttien perusteet

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

Mikä on semanttinen web?

Extensible Stylesheet Language (XSL)

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

W3C ja Web-teknologiat

12 Dokumenttiluokan toteuttamisesta

3 XHTML-dokumenttien anatomia

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

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

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Avoimet standardit ja asiakirjamuodot Suomen julkisessa hallinnossa: teoriasta käytäntöön

Interfacing Product Data Management System

P e d a c o d e ohjelmointikoulutus verkossa

Verkkopalveluiden saavutettavuus

Sisällönhallinnan menetelmiä

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

Yhteenvetoa XML:n sovellusalueista

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

Rakenteiset dokumentit, kevät 2005

OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

12 Dokumenttiluokkien suunnittelusta

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Avoimet standardit ja arkistointi

Luento 12: XML ja metatieto

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Tiedonsiirto- ja rajapintastandardit

Heikki Helin Metatiedot ja tiedostomuodot

Rakenteiset dokumentit, kevät 2007

XML johdatus: DTD. Jaana Holvikivi

10 Ohjelmoinnista Semanttisessa Webissä

W3C, XML ja sovellukset

Helsingin yliopisto/tktl XML-metakieli k2013 CSS XML-dokumenttien käsittely. XML-dokumenttien käsittely

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Rakenteiset dokumentit, kevät 2006

10 Nykyaikainen WWW-arkkitehtuuri

Rakenteiset dokumentit, kevät 2008

Markup languages and an introduction to XML

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Helsingin yliopisto/tktl XML-metakieli CSS XML-dokumenttien käsittely. XML-dokumenttien käsittely

Tuomas Komulainen LUOVA LOMAKE ANALYSOINTITYÖKALU

Transkriptio:

4 Johdanto XML-maailmaan Rakenteisia dokumentteja ei voi "ymmärtää" osamaatta niiden perustekniikkaa. Niinpä seuraavaksi kohdistamme huomion tekniikoihin. Rakenteisten dokumenttien yleisiin menetelmiin palaamme taas siten kun osaamme esim. (teknisesti) määritellä dokumenttityyppejä... Seuraavassa luodaan johdatteleva katsaus XMLmaailmaan, jatkossa yksittäisiin tekniikoihin pureudutaan tarkemmin. Tavoitteena on nyt oivaltaa metakielen perusidea ja nähdä metsä puilta potentiaalisesti tarpeellista osattavaa löytyy jo XML-perheestä todella paljon. Tällä kurssilla käsittely rajataan keskeisiin perustekniikoihin. 61

4.1 Uusi merkintäkieli? XHTML soveltuu Web-sivujen julkaisuformaatiksi, mutta ei tarjoa kunnon välineitä mallintaa muuntyyppistä tietoa (vrt. musiikki.html) Myös "omien merkkausrakenteiden esittely HTMLkieleen" onnistuu esim. div- ja span-elementtien sekä class-attribuutin avulla Merkkauksesta tulee kuitenkin erittäin kömpelöä, ja käsittelijä joudutaan kuitenkin ohjelmoimaan itse (jopa julkaisusovelluksissa koska CSS ei mahdollista esim. elementtien uudelleenjärjestelyä eikä selain tietenkään ymmärrä itse keksittyjä classattribuutteja) "Rajoittuneisuus" ei kuitenkaan johdu merkkauksesta, vaan XHTMLdokumenttityypistä joka ei tietenkään taivu kaikkiin sovelluksiin (lue: ei sisällä merkkausrakennetta esim. cd-levyn tiedoille) 62

4.2 XHTML-merkkaus kierrätykseen Vaihdetaan siis sanasto...ja merkataan esim. seuraavasti (musiikki.alb): <music> <album artist="dire Straits" year="1978"> <name>dire Straits</name> <tracks> <track len="5m34s">sultans of swing</track> <track len="6m14s">in the gallery</track> </tracks> </album> <album artist="pet Shop Boys" year="1993"> <name>very</name> <tracks> <track len="3m55s">yesterday, When I Was Mad</track> </tracks> </album> </music> 63

4.3 Huomioita Merkkausrakenne on tuttu XHTML-kielestä, mutta käytössä on nyt music-sanasto (looginen rakenne!) Tiedot on nyt ilmeisestikin merkattu musiikkilevyjen käsitteiden näkökulmasta Se miten em. rakenteeseen päädyttiin on suunnitteluongelma -...oikeassa sovelluksessa ko. dokumentin tyyppi pitäisi tietenkin määritellä, esitellä (ja ohjeistaa sen käyttö) täsmällisesti <!DOCTYPE music SYSTEM "cd-music.dtd"> Mutta: kuka osaa yo. tietoa käsitellä, mikä ohjelma ymmärtää yo. rakenteen tiedot, kuka tietoa tuottaa, jne. - kannattaa siis suosia jo saatavilla olevia tyyppejä, jos mahdollista No, ainakin esitystavan määrittely onnistuu esim. CSS:n avulla (vrt. oheinen prosessointiohje), mutta tällä ei vielä pitkälle pötkitä: <?xml-stylesheet href="mystyle.css" type="text/css"?> 64

4.4 Miksi sama vanha merkkauskielioppi? Täysin uudentyyppisen merkintäkielen (myös uusi merkkauskielioppi) kehittäminen olisi toki myös mahdollista, mutta työlästä, eikä työhön kannata ryhtyä ilman hyviä perusteluita! Käytännössä pelkän merkintäkielen lisäksi kun tarvitaan yleensä "muutakin", esim. - editori, jolla dokumentteja voidaan tuottaa - sovellus(ohjelmia) tuotettujen dokumenttien hyödyntämiseen - sovelluksia, joissa tiedolla on käyttöä - yhteisö, joka ko. merkintäkielen suostuu ottamaan käyttöön Homma helpottuu huomattavasti, jos pyörää ei lähdetä keksimään uudestaan, vaan uusi merkintäkieli suunnitellaan jonkin standardoidun merkintäkielten kuvausjärjestelmän puitteissa (kokemukset!) -...merkkauskieliopin ja välineiden yhteensopivuus on XML:n perusta 65

4.5 No niin... XML - mikä se on? Extensible Markup Language (XML) 1.0 (Third Edition) on virallinen W3C suositus (ns. recommendation, 1. versio vuodelta 1998) XML määrittelee (teksti)dokumenttien loogisen ja fyysisen rakenteen, (merkkauskielioppi ja entiteetit) sekä DTD-määrityskielen tietyn (rajoitetun) elementtirakenteen omaavien, tietyntyyppisten dokumenttiluokkien kuvaamiseen XML 1.0 määrittelee keskeisesti XML-dokumenttien luokan, ts. sen, millaisia XML-dokumentit ovat ja miten niitä tulee käsitellä - XML-prosessori vs. XML-sovellus (ts. XML ~ rajapinta!) XML on SGML:n osajoukko (tästä seuraa ) Kaksi versiota: 1.0 (v. 1998) ja 1.1 (v. 2004); erot vähäisiä XML-sovelluksissa tarvitaan useita muitakin XML-perheen teknisiä suosituksia 66

4.6 XML-spesifikaation suunnittelukriteerit XML:ää kehittäneet XML Working Group (vanha SGML Editorial Review Board) ja XML Special Interest Group (vanha SGML Working Group) asettivat XML:n kehitystyölle seuraavia tavoitteita: - suoraviivainen käyttö Internetin yli - laaja sovellusalue (ei esim. laite- tai ohjelmistoriippuvuutta) - yhteensopivuus SGML:n kanssa - XML:ää käsittelevien ohjelmien kirjoittamisen helppous - vähän valinnaisia ominaisuuksia - dokumenttien luettavuus ja selkeys (myös ihmisten näkökulmasta) - määrityksen tulee valmistua nopeasti (työ alkoi toukokuussa 1996) - määrityksen suunnittelun on oltava tarkkaa ja huolellista - dokumenttien tekemisen helppous - minimalistiseen merkkauksen ei pyritä (esim. pitkät nimet ovat sallittuja) 67

4.7 XML-merkkaus pähkinänkuoressa (dok. esiintymäosa) <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE music SYSTEM "cd-music.dtd"> <!-- taustalla tyyppimääritys --> <?xml-stylesheet href="mystyle.css" type="text/css"?> <music xml:lang="en" xml:space="default"> <album artist="dire Straits" year="1978"> <name>dire Straits</name> <tracks> <track len="5m34s">sultans of swing</track> </tracks> <!-- lisäsin editorin kommentin --> <ed_note> Mercury Records. Dire Straits -- wrong time, wrong place? Note: Should comments be added to <![CDATA[<track>]]> elements as well? </ed_note> <cover src="dd79.png" title="painting by Chuck Loyola" /> </album> </music> Ts. iso osa merkkauksesta tuli jo XHTML-esimerkeissä, nyt uutta oikeastaan enää merkkidatalohko 68

4.8 Tässäkö kaikki?! Ei (mutta "XML ~ ASCII of the 20th Century") Merkkaus on tärkeä mutta pieni askel kohti sovelluksia Todellinen pihvi ovat XML-merkkauksen ansiosta yhteensopivat ja standardoidut sovellukset; - dokumenttistandardit (esim. tyypit XHTML, SVG, SMIL, DocBook,... ja niiden sovellukset) - yhtenäinen perustekniikka (ohjelmointirajapinnat, salaus ja kryptausvälineet, kyselyt,...) - käsittelymenetelmät ja jo tehdyt välineet (muunnostyylit, dokumenttien koostaminen, kyselyt, prosessorit, selaimet,...)...joiden kehittämisessä ja soveltamisessa tarvitaan ilmeisesti muitakin kuin "merkkaustaitoja" Sovellusten kirjo on mahdollinen koska XML:n määrittelemä tietorakenne on yleiskäyttöinen (abstrakti) ja laajennettavissa (tähän palaamme vielä...) 69

4.9 Eräs XML-teknologiaperheen yleisjäsennys Standardoituja XMLpohjaisia teknologioita on todella paljon (puhumattakaan eri organisaatioiden omista XMLsovelluksista) Kärjistettynä: XMLmerkkaus tuo siis käyttöön paljon ko. rajapintaa tukevia teknologioita (sekä välineitä ja sisältöä) XHTML SVG SMIL EMMA XSL-FO XSLT RDFS, OWL RDF CSS XPath MathML CC/PP P3P XQuery VoiceXML WSDL WAI... XForms SOAP......... DOM Canonical Base Fragments Encryption Signature Inclusions Events XKMS XLink XPointer... XML 1.0/1.1 Namespaces 1/1.1 XML Schema HTTP Unicode URI 70

4.10 XML-perheen keskeisiä "standardeja" XML 1.0 (1.1) (*) - merkkauskielioppi, DTD-määrityskieli ja entiteetit (fyysinen rakenne) Namespaces (1.1) (*) - nimiavaruuden käsite (sanastojen yksikäsitteisyys) SAX & DOM (*) - ohjelmointirajapintoja (tapahtuma/mallipohjainen) XML Schema - DTD-kieltä ilmaisuvoimaisempi skeemakieli (sis. mm. std-tietotyypit) XSL (*) - erityisesti XSL-muunnoskieli XSLT (dokumenttiluokkien väliset muunnokset, esim. music xhtml, DocBook xsl-fo,...) (SAX = Simple API to XML, DOM = Document Object Model, XSL[T] = Extensible Stylesheet Language [Transformations]) 71

4.11 Mihin XML:ää voi käyttää? (1/2) Yksinkertaisimmillaan XML soveltuu HTML:n manttelinperijäksi, ts. kaikki, mitä HTML:llä voidaan tehdä, voidaan (periaatteessa) tehdä paremmin e01 e10 ID XML(-standardiperhee)llä e11 IDREF XML on kuitenkin yleisempi, ns. metakieli, ts. se ei ole rajoittunut vain XHTML-tyyppisten, ainoastaan esitettäväksi tarkoitettujen, jne. dokumenttien merkkaamiseen, vaan XML-dokumentteja voi käyttää miltei mihin tahansa (tietorakenne!) Abstraktin perusluonteensa ansiosta dokumentit voivat sisältää mitä tahansa tietoa mitä viittauksia sisältävällä puumaisella tietorakenteella voidaan ylipäänsä mallintaa, siis myös "tietueista koostuvia relaatioita" Suurin hyöty yleensä saavutetaan kun XML-tekniikat ja rakenteinen dokumentaatio nähdään (teknisenä ja [suunnittelu]menetelmällisenä) osana käsittelyaskelista koostuvia tiedonhallintaprosesseja e00 72

4.12 Mihin XML:ää voi käyttää? (2/2) Koska XML tarjoaa mahdollisuuden myös dokumenttien täsmälliseen tyypittämiseen, soveltuu XML lähtökohtaisesti - tiedon esitysmuodon standardointiin (XML-tekstiformaatit) - kommunikaation pohjaksi (XML-viestit) - tiedon arkistointitekniikaksi (...koska laite- ja ohjelmistoriippumatonta, periaatteessa helppoa käsitellä ja siten myös helppoa virkistää) XML-ohjelmien ja XML-prosessorirajapintojen ansiosta XML tarjoaa myös taloudellisen pohjan standardoitujen kehysten ja toisen tason metakielten määrittelyyn eri sovelluksiin (vrt. CC/PP, SOAP, RDF) -...ts. sovellushierarkia (tai palvelupino), perustana yksinkertainen XMLtietorakenne 73

4.13 Webin standardipinon yleisrakenne Saavutettavuus sovellusten sanastot yms. merkkausk. yms. Tiedonsiirto 74

4.14 Miksi ja mihin XML:ää ei pitäisi käyttää? XML:kään ei kannata ottaa perusteitta käyttöön teknologiavetoisesti, onhan olemassa - csv-tietorakenteita, taulukkolaskentaohjelmia, relaatiotietokantoja, hyviä propietarytekstiformaatteja, jne. XML-perustekniikan pulmina voidaan pitää esim. - tekstimuotoisuutta ja monisanaisuutta (verbose) (Binary XML tulossa...) - rajoittuneita merkkaus- ja tyyppimäärityskieliä (DTD), SGML-taustaa - käsittelyn "hitautta" (verrattuna optimoituihin relaatiotietokantoihin) Näissäkin tapauksissa XML voi kuitenkin tarjota luontevan tavan nimetä ja kehystää tietoa esim. tiedonsiirrossa tarvittavan rajapinta/liimakielen tavoin Osa (teknisistä) pulmista myös ratkeaa hyvällä suunnittelulla ja ottamalla käyttöön muitakin XML-standardiperheen määrityksiä ja kunnon työkaluja 75

4.15 Mitä XML:n käyttämiseen tarvitaan? (1/3) XML 1.0 on pohjimmiltaan varsin abstrakti ja yleiskäyttöinen määritys, joka kertoo, millaisia XML-dokumentit ovat (std-tietorakenne vs. sen sovellus) Koska tietorakenteen tulee olla kunnossa, tekstinkäsittelytyökalun rinnalla käytetään aina (validoivaa) XML-jäsennintä: - XML-dokumenttien merkkauksen tarkistaminen, so. onko dokumentti ns. hyvin muodostettu (well-formed) - XML-dokumenttien (rakenteen) validointi, so. dokumentin vahvistaminen tiettyyn dokumenttiluokkaan kuuluvaksi 76

4.16 Mitä XML:n käyttämiseen tarvitaan? (2/3) Tekstinkäsittelytyökalu ja jäsennin voidaan myös yhdistää, tuloksena... - graafinen esitys dokumentin puurakenteesta - XML-merkkauksen syntaksiväritys - elementtien menupohjainen valintatyökalu - tyylieditori ja dokumentin esikatselu,... Editoriin voidaan integroida muutakin, esim. - suunnitteluvälineitä, tyyppikirjastoja - tuki muille XML-standardiperheen välineille - yhteys tietokantajärjestelmään ja (yrityksen tai organisaation) muihin operatiivisiin järjestelmiin, objektieditoreita,... "XML-tuotantoympäristöjä ja -editoreita" ovat esim. - esim. FrameMaker, XML Spy, XMetaL, XRay,... - myös komentorivipohjaisia XML-jäsentimiä löytyy tavallisten tekstieditorien tueksi (esim. Xerces) 77

4.17 Mitä XML:n käyttämiseen tarvitaan? (3/3) Huom. Graafisten ympäristöjen käyttö on toisinaan "makuasia", toisinaan ei - vrt. "ohjelmointi" - mutta esim. tekniset kirjoittajat ("sisällöntuottajat") eivät ole kiinnostuneita merkkauksen tekniikasta vaan kirjoittamisesta! 78

4.18 Lopuksi: XML kulissien takaa vs. näyttämöllä Edellä kuvattiin lähinnä XML:ää kehittäjän näkökulmasta (tekniikkaa...) - loppukäyttäjän näkökulmasta XML on kuin mikä tahansa perustekniikka: - "taas uusia tiedostotyyppejä, jolle integroitu ohjelmistotuki" (vrt. Open Office) Rajatuissa sovelluksissa XML-syntaksi on käytännössä tarkoituksenmukaista piilottaa loppukäyttäjiltä, myös kirjoittajilta (vrt. HTML ja esim. Composerin käyttö) Mitä loppukäyttäjät sitten loppujen lopuksi tarvitsevat? - XML:ää hyödyntävän sovellusohjelman, pluginin tms., käyttöohjeineen Lue: loppukäyttäjän näkökulmasta rakenteisten dokumenttien ja esim. XML-tekniikoiden hyödyt ovat vain välillisiä - yhteensopivien ohjelmistojen runsaus, ominaisuudet, hinta (kehitystyön kustannukset), sovellusten hallittavuus ja virheettömyys,... 79