4 Kommentoitu johdanto XML-maailmaan

Samankaltaiset tiedostot
4 Johdanto XML-maailmaan

4 Johdanto XML-maailmaan

XML johdanto, uusimmat standardit ja kehitys

4 Kommentoitu johdanto XML-maailmaan

3 Verkkosaavutettavuuden tekniset perusteet

W3C, Web-teknologiat ja XML

XML-evoluutio ja kestävä kehitys

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

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

XML - mahdollisuudet ja kehitys

Paikkatiedot ja Web-standardit

6 DTD ja dokumentin tyyppimääritys

XML ja Web Services update

6 DTD ja dokumentin tyyppimääritys

2 Rakenteisten dokumenttien perusteet

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

Johdatus XML teknologioihin

6 DTD ja dokumentin tyyppimääritys

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

W3C-teknologiat ja yhteensopivuus

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

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

W3C ja alueellinen standardointi

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

XML-tietojenkäsittely

Rakenteisten dokumenttien jatkokurssi, syksy 2006

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

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

Luento 7: XML-ohjelmointirajapinnat

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

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

XML, standardointi ja kehitys

Johdatus rakenteisiin dokumentteihin

2. PEHMEÄ XHTML XRAJAHTML

Digitaalisen median tekniikat. JSP ja XML

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

W3C ja Web-teknologiat

W3C, Web-teknologiat ja Semanttinen Web

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

3 Verkkosaavutettavuuden tekniset perusteet

W3C & verkkojulkaisun standardit

W3C: teknologia ja (tieto)yhteiskunta

Hohde Consulting 2004

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

Luento 1: Johdanto merkintäkieliin

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

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

XML-pohjaiset rakennemäärittelyt

Dokumenttien tietosisällön hallinta

5 Merkkaus: XML protokollana

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

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

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

5 Merkkaus: XML protokollana

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

Extensible Stylesheet Language (XSL)

Interfacing Product Data Management System

W3C ja Web-teknologiat

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

W3C, XML ja sovellukset

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

12 Dokumenttiluokan toteuttamisesta

3.27 "Tuotantoesimerkkien" rakenne ja viittaukset (1/2)

Rakenteiset dokumentit, kevät 2005

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

XML / DTD / FOP -opas Internal

Mikä on semanttinen web?

3 XHTML-dokumenttien anatomia

Yhteenvetoa XML:n sovellusalueista

Tiedonsiirto- ja rajapintastandardit

10 Ohjelmoinnista Semanttisessa Webissä

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

2 Rakenteisten dokumenttien perusteet

Avoimet standardit ja arkistointi

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

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

Verkkopalveluiden saavutettavuus

Rakenteiset dokumentit, kevät 2007

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

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

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

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

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

HOJ J2EE & EJB & SOAP &...

P e d a c o d e ohjelmointikoulutus verkossa

12 Pari sanaa sovelluskehityksestä

Järjestelmäarkkitehtuuri (TK081702)

12 Dokumenttiluokkien suunnittelusta

XML rakenteen suunnittelu. Jaana Holvikivi

XML johdatus: DTD. Jaana Holvikivi

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

Rakenteiset dokumentit, kevät 2008

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

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

M. Merikanto 2012 XML. Merkkauskieli, osa 2

HSMT J2EE & EJB & SOAP &...

in condition monitoring

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

Sisällönhallinnan menetelmiä

Transkriptio:

4 Kommentoitu johdanto XML-maailmaan Yksinkertainen XML-merkkauskielioppi on modernin rakenteisen dokumentaation ja mitä monimaisimpien XML-sovellusten pienin yhteinen tekijä. Pelkästä merkkauskielestä ei kuitenkaan ole juuri mitään hyötyä. Seuraavassa luodaan johdatteleva katsaus XMLmaailmaan, jatkossa (tiettyihin) yksittäisiin tekniikoihin pureudutaan tarkemmin. Tavoitteena on nyt oivaltaa XML-metakielen perusidea ja nähdä metsä puilta potentiaalisesti tarpeellista osattavaa löytyy jo XMLperheestä todella paljon. Tällä kurssilla käsittely rajataan keskeisiin perustekniikoihin. 70

4.1 Välisoitto Koska tavoitteena on yleensä kehittää hyviä sovelluksia kohtuuresurssein, RDkehitystyö(kin) perustuu pitkälti (valmis)komponenttien hyödyntämiseen XML-tekniikat tarjoavat välineitä useille tietotekniikan osa-alueille joissa hyödynnetään yhteensopivaa XMLkielioppia esim. sovellusintegraatiossa myös XML-teknologiaperhe kehittyy jatkuvasti (joskin spesifikaatiot kehittyvät toisinaan nopeammin kuin käytännön sovellukset ja päinvastoin) 71

4.2 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 ( mikroformaatit) Merkkauksesta tulee kuitenkin erittäin kömpelöä, ja käsittelijä joudutaan kuitenkin ohjelmoimaan itse (jopa julkaisusovelluksissa koska CSS-toteutukset ei mahdollista esim. elementtien uudelleenjärjestelyä eikä esim. selain välttämättä ymmärrä itse keksittyjä class-attribuutteja) "Rajoittuneisuus" ei kuitenkaan johdu merkkauksesta, vaan XHTMLdokumenttityypistä joka ei tietenkään taivu kaikkiin sovelluksiin (lue: ei sisällä merkkausrakennetta esim. cd-levyn tiedoille) 72

4.3 XHTML-sanasto vaihtoon (merkkauskielioppi saa jäädä) 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> 73

4.4 Huomioita Merkkausrakenne on tuttu XHTML-kielestä, mutta tiedot on nyt ilmeisestikin merkattu musiikkilevyjen käsitteiden näkökulmasta (looginen rakenne) Rakenteen suunnittelu on vain osatehtävä: <!DOCTYPE music SYSTEM "cd-music.dtd"> <!-- Mitä tällä tehdään? --> Mutta kuka osaa yo. tietoa käsitellä? Mikä ohjelma ymmärtää yo. rakenteen tiedot? Kuka tietoa tuottaa? jne. Ellei aio toteuttaa "kaikkea itse", kannattaa siis suosia jo saatavilla olevia & tuettuja dokumenttityyppejä, jos suinkin 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"?> 74

4.5 XML:n rooli sovelluskehityksessä XML-dokumenttien/rajapintojen käyttö yleistää HTML-kielestä tuttua rajapinta-ajattelua: Nyt motiivi on hyödyntää XMLteknologiaperheen välineitä: - editorit, ohjelmointirajapinnat, valmisohjelmat, tunnetut sovellukset, kokemukset, hyvät käytännöt, koulutus ja osaaminen, yhteisö, tilaajan valmius ymmärtää suunnittelua [conforms to] [can write] System component (Requestor) Schema definition Data instance in XML [implemented as] [implements] [can read] System component (Provider) [standard interface for] Techniques and tools from the XML family of technologies 75

4.6 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 76

4.7 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) 77

4.8 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? (&on;) </ed_note> <cover src="dd79.png" title="painting by Chuck Loyola" /> </album> </music> Ts. iso osa merkkauksesta tuli jo XHTML-esimerkeissä, (joskin merkkidatalohko uupui aikaisemmista esimerkeistä) 78

4.9 Vastaava SVG-esimerkki (1/2) <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/graphics/svg/1.1/dtd/svg11.dtd" [ <!ENTITY hello "Napsauta"> ]> <?xml-stylesheet href="napsauta.css" type="text/css"?> <svg viewbox="-100-100 200 200" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="fi" xml:space="preserve"> <defs> <script type="text/javascript"> <![CDATA[ var c = 0; function setcolor(evt) { if (c<11) { evt.target.setattribute('fill', "rgb("+c*25+","+c*25+","+c*25+")"); 79

4.10 Vastaava SVG-esimerkki (2/2) c = c + 1 } else c = 0; } ]]> </script> </defs> <!-- Ympyränkin tyylitieto kannattaisi siirtää css-tiedostoon --> <circle r="50" fill="black" onclick="setcolor(evt)" /> <text x="-30" y="70" class="title">&hello; </text> </svg> 80

4.11 Siinäkö kaikki? Ei suinkaan, vrt. Web-standardipino 81

4.12 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 MathML VoiceXML XForms... DOM Encryption EMMA RDFS, OWL XSL-FO XSLT RDF CSS P3P XPath XQuery CC/PP WSDL WAI... SOAP... Canonical Base Fragments Signature Inclusions Events XKMS XLink XPointer... XML 1.0/1.1 Namespaces 1/1.1 XML Schema HTTP Unicode URI... 82

4.13 XML-perheen keskeisiä suosituksia 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]) 83

4.14 Mihin XML:ää voi/kannattaa käyttää? XML tarjoaa siis valmista sisältöä(!), abstraktin metakielen, suunnittelufilosofian ja tekniikoita joiden tuella voi periaatteessa implementoida mitä sovelluksia tahansa RD-maailmassa tyypillisiä käyttökohteita esim. - tiedon esitysmuodon standardointi ja integrointi - automatisoitu käsittely (XML-tekstiformaatit) - hajautus ja mekaaninen kommunikaatio (XML-viestit) - arkistointi ja pitkäaikaissäilytys (virkistäminen helppoa) Laajennettavuutensa ansiosta XML tarjoaa perustan myös erilaisten tietoa kehystävien rakenteiden, kuvailukielten, mikroformaattien yms. pinomaiseen, laajennettavissa/tarkennettavissa olevaan määrittelyyn eri sovelluksissa (vrt. esim. ATOM, CC/PP, SOAP, RDF, RSS, SKOS, OWL) 84

4.15 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ä propietary- (teksti)formaatteja, binääriformaatteja, jne. XML-perustekniikan pulmina voidaan pitää esim. - tekstimuotoisuutta ja monisanaisuutta (verbose) silloin kun tilaa on vähän ( Binary XML) - rajoittuneita merkkaus- ja tyyppimäärityskieliä (DTD), SGML-perintöä - käsittelyn "hitautta" (ja optimoinnin vaikeutta) Näissäkin tapauksissa XML voi kuitenkin tarjota luontevan tavan nimetä ja kehystää tietoa esim. tiedonsiirrossa tarvittavan rajapinta/liimakielen tavoin Osa pulmista ratkeaa hyvällä suunnittelulla (esim. pakkaus), osa ei 85

4.16 Dokumenttituotannon perusvälineistä Kuten tavallista, XML:n plussat ja miinukset realisoituvat vasta suhteessa sovellusten tarpeisiin ja käytössä oleviin välineisiin Koska XML-tietorakenteen tulee aina olla kunnossa, tekstinkäsittelytyökalun rinnalla käytetään (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 - sovellusohjelmointi nojautuu parseriin (joka suorittaa jäsennyksen ja tarjoaa tähän perustuvan ohjelmointirajapinnan) 86

4.17 Lisää ominaisuuksia Tekstinkäsittely ja jäsennin voidaan yhdistää, tuloksena... - graafinen esitys dokumentin puurakenteesta - XML-merkkauksen syntaksiväritys - elementtien menupohjainen valintatyökalu - tyylieditori ja dokumentin esikatselu, WYSIWYGeditointi... Editoriin integroitavissa esim. - suunnitteluvälineitä, tyyppikirjastoja - tuki muille XML-standardiperheen välineille - yhteys tietokantajärjestelmään ja (yrityksen tai organisaation) muihin operatiivisiin järjestelmiin, objektieditoreita,... Ks. esim. - XML Spy, XMetaL, FrameMaker,, Oxygen,, XRay, - myös komentorivipohjaisia XML-jäsentimiä (yms. työkaluja) löytyy tavallisten tekstieditorien tueksi (esim. Xerces) 87

4.18 Esimerkki "WYSIWYG-editoinnista": Oxygen 88

4.19 Välineet ja sovelluskehitys Huom. Graafisten ympäristöjen käyttö on toisinaan "makuasia", toisinaan ei - vrt. ohjelmointi Javakielellä - vrt. XRay ja XSLT - mutta esim. tekniset kirjoittajat ("sisällöntuottajat") eivät ole kiinnostuneita merkkauksen tekniikasta vaan kirjoittamisesta! 89

4.20 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 usein tarkoituksenmukaista piilottaa hallitusti paitsi loppukäyttäjiltä, myös kirjoittajilta (vrt. WYSIWYG) Mitä loppukäyttäjät sitten loppujen lopuksi tarvitsevat? New model with ASCII support! Buy NOW! - 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,... 90