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 perusrakenneMuokkaa

<?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

ErikoismerkitMuokkaa

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 DTDMuokkaa

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 SchemaMuokkaa

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ämienMuokkaa

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

CSSMuokkaa

XSLTMuokkaa

eXtensible Stylesheet Language Transformations


Parserointi / XML JavaScriptMuokkaa

NimiavaruudetMuokkaa

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>.


TietotyypitMuokkaa

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ökoodausMuokkaa

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

XML-kieliä ja sovelluksiaMuokkaa

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