[Alku]
Testaa CSS-oppaan navigoinnin toimivuutta!
 
 Etsi sivuiltani: [Apua]

XMLja XHTML

Aiheet

XML

XML on syntynyt kaupallisten yhtiöiden erityistarpeiden takia. HTML-elementit ovat rajoittuneita eivätkä ne kuvaa aina itse asiaa riittävän hyvin. XML-dokumenteissa voi käyttää omia elementtejä, jotka kuvaavat itsessään käyttötarkoitusta, esim. <BOOK-CONTENTS>.

Haluatko luoda XML-dokumentteja?

Erityisesti Microsoftin tarkoituksena on ollut luoda laajoja maailmanlaajuisia tietokantoja, joissa on mahdollista käyttää etsintäkriteereinä elementtejä ja elementtiryhmiä. Myös erilaiset tieteenalat, kuten matematikka ja kemia voisivat käyttää omia elementtejä. Koska mahdollisille elementeille ei ole mitään rajoituksia ei ole, XML kertoo jo nimenä tämän asian XML is extensible (eXtensible M arkup Language = 'laajennettavissa oleva merkkauskieli').

HTML-dokumenteissa elementeillä on esimääritellyt esitystavat. XML-elementeillä ei ole mitään oletusesitystapaa. Määrittelemätön XML-elementti ei tee yhtään mitään! Eräs tapa antaa XML-elementeille esitystapa on CSS. Jos XML-dokumentit käyttävät samoja elementtejä kuin HTML-elementit, samaa CSS-tiedostoa voidaan käyttää niin HTML- kuin XML-dokumenteillekin (tein lisäsivu:n tästä asiasta[S]).

Toinen keino on XSL (eXtensible Stylesheet Language), jossa on enemmän mahdollisuuksia vaikuttaa XML-dokumenttien rakenteeseen. Microsoft suosii sitä. Se antaa enemmän mahdollisuuksia asettaa elementit toiseen järjestykseen kuin CSS. On kuitenkin huomattava, XSL:n suosiminen johtuu osittain siitä, että Microsoft Internet Explorer:n CSS-tuki ei ole valmis. Puuttuvat piirteet olisivat XML-dokumenttien suhteen tärkeitä. CSS:llä ei voi saada MS IE -selaimille kunnon esitysasua.

Jos toteutus olisi parempi tilanne voisi olla toinen. Lyhyesti sanottuna MS IE ei CSS-tuen osalta täytä XML-vaatimuksia. Esim. Netscape 6.x+ ja Opera 4.x+ -selaimille on XML-dokumenteille luotavissa kunnollinen esitysasu. Käsittelen MS IE 5.5+n ongelmia eräällä lisäsivu:lla[S]).

XML-dokumenttien yhteensopivuus (compatibility) HTML 3.2 -tasoon kykenevien selainten kanssa riippuu XML-sivujen tekijästä. Pahimmassa tapauksessa XML-dokumentit ovat vanhoille selaimille toisiinsa liittynyttä tiivistä tekstiä ja erityiskoodeja (lue alaviite 1[S][Pw], jos tahdot tietää mitä tarkoitan erityiskoodeilla) - käytännössä mahdotonta tai erittäin vaikea lukea. Itse asiassa sivujen tekijä voi luoda oman HTML:ää muistuttavat kielen - XML on ihanne kieli "tee se itse" -ihmisille! XML-dokumentit voidaan kuitenkin laatia sangen luettaviksi myös vanhoille selaimille, jollin kaikki tai useimmat elementit ovat samoja kuin HTML-dokumenteissa (elementtien ei kuitenkaan tarvitse käyttäytyä samalla lailla kuin XML:ää osaavilla selaimilla).

XHTML

Mitä XHTML (eXtensible Hyper Text M arkup Language) dokumentteihin tulee kyse on erityisistä XML-dokumenteista, jotka käyttävät pääosin täysin samoja elementtejä kuin HTML-dokumentit. Ne voidaan ilmoittaa joko HTML tai XML dokumentteina. XHTML-dokumentit pitää aina tehdä XML-sääntöjen mukaan, jotka ovat paljon tiukemmat kuin HTML-dokumenteilta edellytettävät vaatimukset. Ensinnäkin kaikki dokumentit täytyy olla hyvin muotoiltua (well-formed) - enää ei ole sallittua tehdä niin paljon virheitä kuin aiemmin! HTML-dokumenttien ja XHTML-dokumenttien välillä on esim. seuraavia eroja:

 
  1. Dokumentissa voi olla XML-ilmoitus (<?xml ...?>), mutta se ei ole pakollinen. HTML-dokumentille ei ole olemassa vastaavaa ilmoitusta. HTML-dokumenttien tavoin dokumentit tulee ilmoittaa XHTML-dokumentiksi ainakin standardilla DTD-ilmoituksella, esim. <!DOCTYPE HTML PUBLIC "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/TR/xhtml1/"/dtd/transitional.dtd"> (tiukassa DTD-ilmoituksessa on pieni virhe - lue alaviite 2[S][Pw]).

  2. Dokumentin juurielementti (root element) on aina html ja siihen liittyy aina XML-nimiavaruusilmoitus: <html xmlns="http://www.w3.org/TR/xhtml1/">.

  3. Kaikki HTML-elementit ja -attribuutit kirjoitetaan pienillä kirjaimilla. Kaikki elementit ovat pieni-iso-eroavia. Tämän kaltainen kombinaatio on XML-dokumenteissa laiton vaikka se on kelpaa HTML-dokumenteille: <BODY>... </body>. Mikäli attribuutille on standardit arvot, nekin kirjoitetaan pienillä kirjaimilla (esim. align="center").

  4. Kaikki attribuuttien arvot ympäröidään sitaateilla mukaan luettuina nekin, joissa arvot ovat vain numeroita. Attribuutti width=3 ei ole kelpaa XHTML-dokumentille, sen täytyy olla merkattu width="3".

  5. Id-attribuuttien arvot ovat pieni-iso-eroavia (lisäksi on huomattava, että jos esim. elementille A antaa tunnisteen, name-attribuutti ei riitä vaan sen ohella tai sen sijaan tulee käyttää id-attribuuttia, jolla on täsmälleen sama arvo).

  6. Elementit jaetaan tiukemmin normaaleihin ja ns. tyhjiin elementteihin. Tyhjät elementit eivät HTML-dokumenteissa kaipaa mitään päätösmerkkausta. Menettely ei kuitenkaan käy XML-dokumenteille. Myös tyhjillä elementeillä täytyy olla jonkinlainen päätösmerkkaus. Päätösmerkkaus sisällytetään elementin aloitusmerkkaukseen ennen sen päättävää > -merkkiä, esim. <br /><img scr="image.gif" /> (jos ennen etukenoviivaa (/) jätetään tyhjä väli kaikki selaimet osaavat lukea merkkauksen oikein). Siten elementin aloitusmerkkaus on samalla sen päätösmekkaus. HTML-dokumentissa esim. elementeiltä P ja LI voidaan jättää pois päätösmerkkaus vaikka päätösmerkkaukset voidaan niihin laittaa (on jopa suositeltavaa laittaa elementille P päätösmerkkaus - käytän itse tälle elementille aina päätösmerkkausta). Menettely on laitonta XHTML-dokumenteille. Myös <p />      tai <li /> merkkaukset ovat laittomia, sillä em. elementit eivät ole olemukseltaan tyhjiä elementtejä.

Alla on esimerkki hyvin yksinkertaisesta XHTML-dokumentista ([M][S][Pw]):

<!DOCTYPE HTML PUBLIC "-//w3c//dtd xhtml 1.0 transitional//en"
http://www.w3.org/TR/xhtml1/"/DTD/transitional.dtd">
<html xmlns="http://www.w3.org/TR/xhtml1/">
   <head> 
      <meta name="keywords"
      content="Opera,Mozilla,Netscape,Internet Explorer,CSS" />
      <title>Esimerkki XHTML-dokumentista</title>
   </head>

   <body>
      <h1>Pääotsikko</h1>
      <br />
      <p>Tekstiä.</p>
      <p>Tekstiä.</p>
      <blockquote>Tekstiä lohkositaatin sisällä.</blockquote>
      <ol>
         <li>Tekstiä listan sisällä.</li>
         <li>Tekstiä listan sisällä.</li>
      </ol>
</body>
</html>

CSS-oppaan sivut ovat nykyisin XHTML 1.0 dokumentteja mallisivuja lukuun ottamatta. HTML-tiedostoja on helppo kääntää XHTML:ksi käyttämällä ilmaisen HTML-Kit-editorin HTML Tidy-toimintoa. Jos haluat käyttää samaa CSS-tiedostoa HTML, XHTML ja XML-dokumenteille, on järkevää kirjoittaa elementtien nimet aina pienillä kirjaimilla. Olen pyrkinyt tekemään esimerkkini siten, että niitä voi käyttää myös XHTML-dokumenteissa. Skriptien käyttö on kuitenkin ongelmallista, mutta olen käyttänyt niitä HTML-dokumenttien tapaan.

W3C: XHTML 1.0 (4.8 Script and Style elements and C.4 Embedded Style Sheets and Scripts), Namespaces in XML[Pw].
Other sites: HTML-Kit Home Page[Pw]
.

Seuraava sivu käsittele perus menetelmiä, joilla CSS liitetään Web-sivuille.

[Alku]
 

Alaviite 1. XML-tiedostoille tarkoitetut DTD-tiedostot laaditaan pääsääntöisesti samoja periaatteita noudattaen kuin HTML-tiedostoillekin. Omat yleisentiteetit[S] (common entities - yleensä lyhenteitä) tulee ilmoittaa. On suositeltavaa käytää CDATA jaksoja sections[S] (CDATA sections) yleisentiteettien sijaan jos tarkoituksena on esittää näytöllä erityiskoodeja. Jos koodin tekijä luo omia entiteettejä, dokumentit ovat joiltakin osin vanhoille selaimille lukukelvottomia, sillä vanhat selaimet eivät tiedät mitä omat entiteetit merkitsevät.

Alaviite 2. XHTML 1.0 Strict DTD-tiedostossa on virheellinen parametrientiteetti-ilmoitus (<!ENTITY % FrameTarget "CDATA"> <!-- render in this frame -->), koska se ei vastaa elementin A attribuuttilistaa kuten se tekee HTML 4.0 loose -dokumenttityypin DTD:ssä (target %FrameTarget; #IMPLIED -- render in this frame --).

[Alku]
   
Copyright Tapio Markula 1999-2003, Salo (kotisivu, s-posti - lisää s-postiosoiteeseen pisteellä erotettuna nimeni, Tapio Markula) (@dnainternet.net) - ei julkiskäyttöön ilman sopimusta.
Get Expression!
Editori, jolla saa luotua standardit täyttäviä HTML ja XML dokumentteja. Tämän sivuston sivut on useimmissa tapauksissa tarkastettu Dave Raggetin (W3C) tekemällä HTML-Tidy apuohjelmalla ja satunnaisesti W3C-organisaation virallisella koodintarkastusohjelmalla. Useimpien sivujen syntaksin pitäisi olla sopusoinnussa W3C:n XHTML 1.0 spesifikaation kanssa. Testaa tämä sivu!
Informaatiota selaimista, jotka näyttävät tai tulostavat tämän sivuston parhaiten.
[Hae Opera] [Hae Mozilla!]
CSS-opasta on viimeksi muutettu 20.12.2004