XML ja WWW
- Luentotaltiointi
- Mikä on XML?
- Dokumenttityyppimääritys (DTD, Document Type Definition)
- Skeemat
- Nimiavaruudet
- CSS
- XSLT (Extensible Stylesheet Language Transformation)
- Semanttinen web
- RDF
- Dublin Core
- RSS (Rich Site Summary)
- FOAF
- Lisätietoa
Tällä luennolla tutustutaan XML:n käyttämiseen WWW:ssä. XML-dokumenttien ulkomuotoilu ja muuntaminen CSS:n ja XSL:n avulla. Käydään RDF:n käyttäminen läpi RSS-esimerkin avulla.
Mikä on XML?
Extensible Markup Language (XML) on yksinkertainen ja joustava metakieli, jolla määritellään rakenteellisia merkkauskieliä. XML on kehitetty SGML:n pohjalta.
SGML on 80-luvulla kehitetty metakieli. Ensimmäiset versiot HTML:stä oli määritelty SGML:llä.
HTML:n historia
- Ensimmäinen versio 1990-luvun alussa
- HTML 2.0 1995
- HTML 3.2 1997
- HTML 4.0/4.01
- XHTML 1.0 / XHTML 1.0 transitional
- XHTML Basic ja XHTML 1.1
XHTML
XHTML on XML-sovellus. XHTML on merkkauskieli.
XML-dokumentin on oltava hyvin muodostettu (well-formed). vrt. vanhempien HTML-versioiden tagisoppa (engl. tagsoup)
Yleensä XML-dokumentti on myös validi eli noudattaa jotakin dokumenttityyppiä
Dokumenttityyppimääritys (DTD, Document Type Definition)
Määrittelee sallittujen elementtien nimet, elementtien suhteet ja elementtien attribuutit. Julkisia dokumenttityyppejä ovat mm.
Miksi kannattaa määritellä dtd?
- DTD:n avulla voi tarkistaa xml-tiedostojensa oikeellisuuden
- Osataan tuottaa oikeanlaisia xml-tiedostoja
- Voidaan määritellä yhteinen dokumenttimuoto tietojen vaihtoon
- XML-tiedostosta nähdään millainen tiedosto on kyseessä
Skeemat
Skeema (schema) on DTD:tä vastaava malli, jolla kuvataan dokumentin rakenne.
DTD määritellään omalla kielellään. Skeemat määritellään XML:llä.
Skeemat mahdollistavat useiden eri nimiavaruuksia käyttävien elementtien käyttämisen samassa dokumentissa.
Skeemoilla voidaan elementin tietosisältöä rajoittaa tiukemmin kuin DTD:llä.
- Voidaan määrittää elementin sisällölle tietotyyppi
- Elementti voi olla simpletype eli sisältää vain tekstiä.
- Elementti voi olla complextype eli sisältää muita elementtejä.
Skeemaesimerkki
<?xml version="1.0" encoding="iso-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="foobar">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="bar" type="xsd:string"/>
<xsd:element name="foo" type="OmaTyyppi"/>
<xsd:element name="bar" type="xsd:string" minOccurs="1" maxOccurs="2" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Nimiavaruudet
Nimiavaruuksien avulla voidaan samassa dokumentissa käyttää useampaa erilaista dokumenttityyppiä ilman että ne sotkevat toisiaan
- MathML ja XHTML
- XHTML-dokumentti jossa nimiavaruus on määritelty
- XHTML-dokumentti jossa nimiavaruutta ei ole määritelty
CSS
XML-dokumenttien ulkoasu voidaan muotoilla CSS:llä tismalleen samoin kuin XHTML-dokumenttienkin ulkoasu
CSS-tiedosto linkitetään XML-tiedostoon prosessointiohjeen avulla:
XSLT (Extensible Stylesheet Language Transformation)
XSLT:n avulla voidaan muuntaa xml-dokumentin rakenne toiseen muotoon.
Muunnos voidaan tehdä joko WWW-palvelimella tai WWW-selaimessa
kelmit.xml kelmit.xsl kelmit2.xsl
vrt. ulkomuotoilu CSS:llä kelmit2.xml
RSS-tiedoston muunnos xhtml:ksi: rss.xml rss.xsl
XSL www-julkaisun apuna
XSL:n avulla voidaan piilottaa "vaikea" XHTML sisällöntuottajalta, joka muokkaa jotain yksinkertaisempaa XML-tiedostoa
Office 2003:n myötä myös Word-, Powerpoint- ja Excel-tiedostot on voitu suoraan tallentaa XML-muodossa, joka taas mahdollistaa näiden dokumenttien "helpon" muuntamisen esim. XHTML:ksi. Sama onnistuu myös Open Officen tiedostoista.
Esimerkki WordML-tiedostosta (Word 2003:n XML-muoto)
Semanttinen web
Semanttinen web on normaalin WWW:n "laajennos" jossa kaikki tieto on yhtä hyvin ihmisen kuin koneenkin ymmärrettävissä.
Semanttinen web edellyttää riittävää määrää metatietoa eli dokumentin kuvailutietoa muodossa, jonka myös tietokone ymmärtää.
Metatieto voi olla:
- Dokumentin hallintaan liittyvää
- Dokumenttia kuvailevaa
- Dokumentin säilytykseen liittyvää
- Dokumentin käyttöön ja käyttäjiin liittyvää
- Teknistä tietoa
meta
meta-elementillä XHTML:ssä määritellään dokumenttiin liittyvää metatietoa
<meta name="description"
content="Tietoverkot työvälineenä - Tietotekniikan approbatur-kurssi Jyväskylän
yliopistossa tietotekniikan laitoksen ja avoimen yliopiston yhteisopetuksena " />
<meta name="keywords"
content="tietotekniikka, jyväskylän yliopisto, avoin yliopisto,
tietotekniikan laitos, informaatioteknologia, opetus, kurssi" />
<meta name="author" content="Tommi Lahtonen" />
Linkkielementti - link
- link-elementti saa esiintyä vain head-elementin sisällä.
- link-elementille määritellään dokumentin suhde muihin dokumentteihin
<link title="Oletustyyli" rel="StyleSheet" href="/appro2003.css" type="text/css" media="all" />
<link rel="icon" href="/favicon.ico" type="image/ico" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="Copyright" href="/copyright.html" title="Copyright Notice" />
<link rel="Prev" href="../luento1/" title="Edellinen" />
<link rel="Next" href="../luento3/" title="Seuraava" />
<link rel="Start" href="../../" title="Tietoverkot työvälineenä" />
<link rel="Contents" href="../" title="Sisällys" />
<link rel="Parent" href="../" title="Edellinen taso" />
<link rel="First" href="../luento1/" title="Ensimmäinen" />
<link rel="Last" href="../luento10/" title="Viimeinen" />
<link rel="Search" href="/haku/" title="Haku" />
Lisätietoja ja esimerkkejä
RDF
RDF on W3C:n määrittelemä kehys jonka avulla voidaan kuvailla esim. www-sivu ja sen sisältö (metadata).
RDF:llä kuvataan resurssi (subjekti), sen ominaisuus (predikaatti) ja ominaisuuden arvo (objekti)
Esim. resurssin http://appro.mit.jyu.fi/ tekijä (creator) on Tommi Lahtonen
<rdf:RDF> <rdf:Description about="http://appro.mit.jyu.fi/"> <Creator>Tommi Lahtonen</Creator> </rdf:Description> </rdf:RDF>
Dublin Core
Dublin Core on kansainvälinen, erityisesti digitaalisten julkaisujen kuvailuun kehitetty metadataformaatti. Dublin Core -kuvailu voidaan upottaa suoraan xhtml-dokumenttiin tai erilliseen RDF-tiedostoon.
JHS 143 Asiakirjojen kuvailun ja hallinnan metatiedot
Seuraavan koodin voi upottaa suoraan XHTML-tiedoston head-osaan:
<meta name="DC.Title" content="XML ja WWW" />
<meta name="DC.Creator " content="Lahtonen, Tommi" />
<meta name="DC.Subject" content="xml" />
<meta name="DC.Subject" content="rss" />
<meta name="DC.Subject" content="dublin core" />
<meta name="DC.Description" content=" Tässä dokumentissa kerrotaan
XML:n käyttämisestä WWW:ssä" />
<meta name="DC.Publisher" content="Jyväskylän yliopisto" />
<meta name="DC.Date" content="2003-04-01" />
<meta name="DC.Format" content="application/xhtml+xml" />
<meta name="DC.Type" content="Text" />
<meta name="DC.Identifier" content="http://appro.mit.jyu.fi/www/luennot/luento9/" />
<meta name="DC.Language" content="fi" />
<meta name="DC.Coverage" content="Suomi " />
<meta name="DC.Rights content="Public domain" />
<meta name="DC.Rights content="http://appro.mit.jyu.fi/copyright.html" />
RDF-versio Dublin Core metatiedoista
<? xml version="1.0" ?>
<RDF xmlns = "http://w3.org/TR/1999/PR-rdf-syntax-19990105#"
xmlns:DC = "http://purl.org/DC#" >
<Description about = "http://appro.mit.jyu.fi/www/luennot/luento2/" >
<DC:Title>XML ja WWW</DC:Title>
<DC:Creator>Lahtonen, Tommi</DC:Creator>
<DC:Subject>xml</DC:Subject>
<DC:Subject>rss</DC:Subject>
<DC:Subject>dublin core </DC:Subject>
<DC:Description> Tässä dokumentissa kerrotaan
XML:n käyttämisestä WWW:ssä</DC:Description>
<DC:Publisher>Jyväskylän yliopisto</DC:Publisher>
<DC:Date>2003-04-01</DC:Date>
<DC:Format>application/xhtml+xml</DC:Format>
<DC:Type>Text </DC:Type>
<DC:Identifier>http://appro:mit:jyu:fi/www/luennot/luento9/</DC:Identifier>
<DC:Language>fi</DC:Language>
<DC:Coverage>Suomi</DC:Coverage>
<DC:Rights>Public domain</DC:Rights>
<DC:Rights>http://appro:mit:jyu:fi/copyright:html</DC:Rights>
</Description>
</RDF>
- Expressing Dublin Core in HTML/XHTML meta and link elements
- Dublin Core -kuvailuformaatin HTML-syntaksi
RSS (Rich Site Summary)
RSS on XML-sovellus, jonka avulla on helppo jakaa uutisia tai mitä tahansa tietoa.
WWW-sivuston uutiset tai muut muutokset listataan RSS-tiedostossa, jonka sisältöä seurataan RSS-formaattia ymmärtävällä ohjelmalla
- Sage Firefox
- RSS Reader Panel Mozilla
- Aggreg8 Mozilla
FOAF
FOAF (Friend Of A Friend) on hieman samantapainen asia kuin RSS mutta koskee henkilötietoja. FOAF-tiedoston voi ajatella olevan tietokoneen ymmärrettävissä oleva versio kotisivusta.
Tee itsellesi FOAF-tiedosto käyttäen FOAF-a-Maticia ja linkitä se kotisivuusi:
<link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf" />
Linkitä ystäviesi FoaF-tiedostot omaan FoaF-tiedostoon niin muodostamaanne verkostoa voi selailla esim. FoaF-Explorer-ohjelmalla.
Lisätietoa
- RDF Primer
- What is RDF?
- DOM ja SAX
- XSL (Kalevi Manninen)
- XSL FAQ
- Xpath RTF
- XML Path Language
- XPath Tutorial
- XSLT
- What is RSS?
- The Semantic Web lifts off

Käyttäjien kommentit