XML
- Tämä kirja perustuu W3C:n nykyisen suositukseen Extensible Markup Language (XML) 1.0 (Fourth Edition) (2006-08-16).
XML on laajennettava w:merkintäkieli, jolla datan joukkoon voidaan lisätä sen merkitystä kuvaavaa tietoa.
Ominaispiirteitä
muokkaaXML on suunniteltu datan säilykseen ja siirtämiseen ei sen esittämiseen. XML tulee sanoista EXtensible Markup Language eli laajennettava merkintäkieli. XML on W3C:n suositus. XML:n ei ole tarkoitus korvata HTMLää.
XML ei tee mitään. XML-tiedosto on pelkkää tekstidataa.
XML-tagit eivät ole ennalta määrättyjä vaan ne tulee määritellä kussakin XML-tiedostossa. Täten XML-tiedosto kuvailee itsensä.
Merkintä
muokkaaXML-data koostuu elemeteistä ja niille annetusta sisäsällöstä sekä elementtejä määrittävistä attribuuteista.
Sisältö on elementin avauksen ja sulkemisen välissä.
<elmentti>sisältö</elementti>
Attribuutit ovat elementin avauksen sisässä ja niiden arvo on aina lainausmerkeissä
<elementti attribuutti="arvo">
Pääsääntönä data merkitään elementtien sisältönä ja metadata elementtien attrbibuutteina.
Elementtien nimet ovat case-sensitive eli iso ja pieni kirjain ovat eriasioita.
Elementtien nimien tulee noudattaa seuraavaa:
- ei saa alkaa numerolla tai välimerkillä
- ei saa alkaa kirjaimilla xml (oli kirjaimet sitten suuria tai pieniä)
- ei saa sisältää välilyöntejä.
Yhteen sopivuussyistä vältettäviä merkkejä ovat myös "-", "." ja ":". Muuten nimet voivat sisältää kirjaimia, numeroita ja muita merkkejä vapaasti. Koska välilyöntejä ei saa olla merkitään sanayhdistelmät yleensä alaviivalla "_".
Elementin eivät saa ristetä
- ei näin
vaan<pre><code></pre></code><pre><code></code></pre>
.
Tiedostolla tulee olla yksi ja vain yksi juuri (root) -elementti. Alun julistuksia ei lasketa elementeiksi.
Kommentointi merkitään
<!--kommentti-->
Ylimääräiset välilyönnit säilyy näkyvissä.
XML-tiedosto oikealla syntaksialla on hyvin muodostettu (Well Formed). XML-tiedosto tarkastettuna jotain DTDä vastaan on validi (Valid).
Sivun perusrakenne
muokkaa<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE viesti SYSTEM "Viesti.dtd"> <viesti> <keneltä>Tove</keneltä> <kenelle>Jani</kenelle> <otsikko>Muistutus</otsikko> <leipäteksti>Älä unohda!</leipäteksti> </viesti>
missä
- <?xml version="1.0" encoding="ISO-8859-1"?>
- on XML-julistus, joka kertoo XMLn version ja käytettävän koodauksen
- <!DOCTYPE viesti SYSTEM "Viesti.dtd">
- on DTD eli Document Type Definition -julistus, kertoo käytettävän DTDn
- <viesti>
- on juuri (root) -elementin avaus
- <keneltä>, <kenelle> ja <otsikko>
- ovat juurielementin lapsielementtejä ja sisaruksia keskenään
- </viesti>
- on juuri-elementin sulkeminen
Erikoismerkit
muokkaaSeuraavat merkit tulee antaa koodina.
Koodi | Merkki | Nimi |
---|---|---|
< | < | pienempi kuin |
> | > | suurempi kuin |
& | & | ampersandi eli et-merkki |
' | ' | apostrofi eli heittomerkki |
" | " | lainausmerkki |
Document Type Definition eli DTD
muokkaaImoittaminen
- <!DOCTYPE note SYSTEM "Note.dtd">
dtd-tiedoston rakenne
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
XML Schema
muokkaaXML Scheman rakenne, tiedostopääte xsd
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Esittämien
muokkaaXML-datan esittämiseen on kaksi tapaa, CSS ja XSLT.
CSS
muokkaaXSLT
muokkaaeXtensible Stylesheet Language Transformations
Parserointi / XML JavaScript
muokkaaNimiavaruudet
muokkaaNimiavaruus (namespace) on elementtien nimien merkityksen määrittelevä avaruus. Se merkitään juuri-elementtiin tai muuhun haluttuun elementtiin xmlns-attribuutilla, jonka arvona on nimiavaruuden määrittelevän datan sijainti URI-osoite. Määrittely periytyy elementin lapsille. Nimiavaruus merkitään <nimiavaruus:elementti>.
Tietotyypit
muokkaaXML-parseri parseroi oletuksena kaiken XML-datan sillä data on oletuksena parseroitavaa merkkidataa (Parsed Character Data eli PCDATA). Mikäli dataa ei haluta parseroitavan tulee se merkitä parseroimattomaksi merkkidataksi (Character Data eli CDATA). Merkitseminen tehdään muodossa:
<script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> </script>
eli datan CDATAn merkitä aloitetaan merkinnällä
- <![CDATA[
ja päätetään merkinnällä
- ]]>.
Tästä johtuen annettava CDATA ei voi sisältää ]]> merkkijonoa. Parseri jättää huomiotta CDATA-tekstin.
Merkistökoodaus
muokkaaXML-käyttää oletuksena unicode-merkistöä. xml-julistuksessa on syytä aina ilmoittaa käytettävä merkistökoodaus encoding attribuutilla.
XML-kieliä ja sovelluksia
muokkaa- XHTML (Extensible HTML)
- Tiukemmennin määritelty ja puhtaampi versio HTMLstä.
- XML DOM (XML Document Object Model)
- A standard document model for accessing and manipulating XML.
- XSL (Extensible Style Sheet Language)
- XML-datan ulkoasun määrittely tai rakennemuutoksen tekeminen, koostuu kolmesta osasta:
- XQuery (XML Query Language)
- XML-pohjainen XML-data kyselykieli
- DTD (Document Type Definition)
- XMLssä sallittujen elementtien määrittämistandardi
- XSD (XML Schema)
- XML-pohjainen XMLssä sallittujen elementtien määrittämistandardi
- XLink (XML Linking Language)
- Kieli hyperlikkien tekemiseksi XML-tiedostoihin
- XPointer (XML Pointer Language)
- Allows the XLink hyperlinks to point to more specific parts in the XML document.
- XForms (XML Forms)
- SOAP (Simple Object Access Protocol)
- XML-pohjainen protokolla sovellusten tiedonvaihtoon HTTPn kautta
- WSDL (Web Services Description Language)
- XML-pohjainen kieli WWW-palvelujen kuvaamiseen
- RDF (Resource Description Framework)
- WWW-resurssien kuvailukieli
- RSS (Really Simple Syndication)
- verkkosyöte
- WAP (Wireless Application Protocol)
- XML-pohjainen matkapuhelinten tapaisissa laitteissa käytettävä internet-protokolla
- SMIL (Synchronized Multimedia Integration Language)
- multimediaesityksiä varten kehitetty ohjauskieli
- SVG (Scalable Vector Graphics)
- XML-pohjainen verktorigrafiikka