XML ja WWW

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.

Luentotaltiointi

XHTML

XHTML on XML-sovellus

XHTML-dokumentin runko

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"

 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">
<head>
<title>XML</title>
</head>

<body>
<h1>Pääotsikko</h1>
<p>Kappale</p>
</body>
</html>

XML-dokumentin runko selitettynä

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
    Ensimmäiseksi määritellään käytetty xml-versio ja käytettävä merkistö
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
    
     "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
    
    Dokumentin juurielementiksi määritellään html-elementti.

    Määritellään dokumentissa käytettävä dokumenttityyppi ("-//W3C//DTD XHTML Basic 1.0//EN").

    Kerrotaan missä julkinen (PUBLIC) dokumenttityyppimäärittely sijaitsee ("http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd").

    Määritellään nimiavaruus (xmlns="http://www.w3.org/1999/xhtml"). Nimiavaruudet erotetaan toisistaan uniikeilla uri:lla.

    Määritellään dokumentin oletuskieli (xml:lang="fi").

  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi">

    Varsinainen dokumentti sijaitsee kokonaisuudessaan juurielementin (html) sisällä

Yleisimmistä selaimista Internet Explorer ja Mozilla tukevat hyvin XML-muotoista dataa.

XML-vaatimukset

XML-dokumentin on oltava hyvin muodostettu (well-formed)

Yleensä XML-dokumentti on myös validi eli noudattaa jotakin dokumenttityyppiä

Dokumenttityyppimääritys (DTD

Määrittelee sallittujen elementtien nimet, elementtien suhteet ja elementtien attribuutit. Julkisia dokumenttityyppejä ovat mm. Docbook XHTML Basic ja XHTML 1.1.

Miksi kannattaa määritellä dtd?

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äminen samassa dokumentissa.

Skeemoilla voidaan elementin tietosisältöä rajoittaa tiukemmin kuin DTD:llä.

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

CSS

XML-dokumenttien ulkoasu voidaan muotoilla CSS:llä tismalleen samoin kuin XHTML-dokumenttienkin ulkoasu

CSS-tiedosto linkitetään XML-tiedostoon prosessointiohjeen avulla:

rss_css.xml

XSLT (Extensible Stylesheet Language Transformation)

XSLT:n avulla voidaan muuntaa xml-dokumentin rakenne toiseen muotoon.

XSLT käyttää XPath-kieltä dokumenttipuussa liikkumiseen.

kelmit.xml kelmit.xsl kelmit2.xsl

vrt. ulkomuotoilu CSS:llä kelmit2.xml

RSS-tiedoston muunnos xhtml:ksi: rss.xml

Semanttinen web

Semanttinen web on normaalin WWW:n "laajennos" jossa kaikki tieto on yhtä hyvin ihmisen kuin koneenkin ymmärrettävissä

RDF on W3C:n määrittelemä kehys jonka avulla voidaan kuvailla esim. www-sivu ja sen sisältö (metadata).

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.

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:


<? 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/luento9/" >
<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>

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

Rss-lukija

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" /> 

Lisätietoa

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/www/luennot/luento9/
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2004-04-15 13:52:02
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto