XML

Kohteesta Wikikirjasto
Siirry navigaatioon Siirry hakuun
Tämä kirja perustuu W3C:n nykyisen suositukseen Extensible Markup Language (XML) 1.0 (Fourth Edition) (2006-08-16).

Wikipedia
Wikipedia-tietosanakirjassa on artikkeli aiheesta:

XML on laajennettava w:merkintäkieli, jolla datan joukkoon voidaan lisätä sen merkitystä kuvaavaa tietoa.

Ominaispiirteitä[muokkaa]

XML 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ä[muokkaa]

XML-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 <pre><code></pre></code> vaan <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[muokkaa]

Seuraavat merkit tulee antaa koodina.

Koodi Merkki Nimi
&lt; < pienempi kuin
&gt; > suurempi kuin
&amp; & ampersandi eli et-merkki
&apos; ' apostrofi eli heittomerkki
&quot; " lainausmerkki


Document Type Definition eli DTD[muokkaa]

Imoittaminen

<!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[muokkaa]

XML 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[muokkaa]

XML-datan esittämiseen on kaksi tapaa, CSS ja XSLT.

CSS[muokkaa]

XSLT[muokkaa]

eXtensible Stylesheet Language Transformations


Parserointi / XML JavaScript[muokkaa]

Nimiavaruudet[muokkaa]

Nimiavaruus (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[muokkaa]

XML-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[muokkaa]

XML-käyttää oletuksena unicode-merkistöä. xml-julistuksessa on syytä aina ilmoittaa käytettävä merkistökoodaus encoding atttribuuttilla.

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:
XSLT (XSL Transform) 
kieli XML-dokumenttien muuntamiseen
XSL-FO (XSL Formatting Objects)
kieli XML-dokumenttien ulkoasun määrittelemiseksi
XPath 
viittaustapa XML-dokumenttien rakenteessa
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