XML-rakennekuvaus

Rakennekuvaus määrittää kunkin XML-dokumentin sallitun tietorakenteen eli tietojen esittämisen järjestyksen ja tägit, joilla kukin tieto merkitään. Kunkin tägin merkityksen ja sisällön kuvaa käytetty sanomastandardi. Yleensä dokumentin tietorakenne määritellään DTD (Document Type Definition) tai XSD (W3C XML Schema) rakennekuvauksena. Muiden rakennekuvausten, kuten Relax NG, käyttö on Euroopassa harvinaista. Nykyään lähes poikkeuksetta tietorakenteet määritellään XSD-rakennekuvauksina.

XSD-rakennekuvausten suosimiseen suhteessa DTD:hen on useita syitä. DTD:n ilmaisuvoima on rajallinen. Sillä voidaan ilmaista tietojen sallittu järjestys ja sallitut tägit, mutta sen kyky ilmaista tietojen sallittuja arvoja on rajallinen. Etenkin organisaatioiden välisessä sähköisessä tiedonsiirrossa on tärkeää, että tiedot ovat täsmälleen oikein, koska vastaanottaja käsittelee ne koneellisesti. Siten DTD on usein riittävä vain XML-aineistoille, jotka on tarkoitettu visualisoitaviksi eli tapauksiin, joissa tietoja tulkitaan silmämääräisesti. DTD:n on niin ikään hyvin rajoitteinen XML-nimiavaruuksien (XML namespaces) osalta, mikä rajaa sen käyttökohteita. Lisäksi DTD on ajalta ennen "XML-aikakautta", joten sen määrittämiseen käytetty syntaksi ei pohjaudu XML-kieleen toisin kuin XSD.

Rakennekuvausten puutteena on, ettei määrittelyihin voida sisällyttää XML-dokumenttia koskevia teknisiä tai kaupallisia sääntöjä. Yleisiä tarvittuja sääntöjä ovat etenkin ehdolliset pakollisuudet ja erilaiset eheysvaatimukset. Nämä ovat myös virheitä, joita silmämääräisesti on vaikein havaita, joten ilman lisätestausta virheet havaitaan vasta kun aineistoja lähetetään vastaanottajalle.

Kun halutaan varmistua, että muodostettu XML-dokumentti on määritellyn rakennekuvauksen mukainen eli validi, suoritetaan aineiston testaus, eli niin sanottu XML-validointi. Yleensä rakennekuvauksen ohella laaditaan soveltamisohje, jossa on rakenteen kuvauksen ohella sääntöjen sanallinen kuvaus. Harvoin kuitenkaan tarjotaan testausvälineitä, joilla voitaisiin itsenäisesti varmistua, että aineisto on soveltamisohjeen sääntöjen mukainen. Määrittämällä testausprofiili voidaan yhdellä testauksella kattaa sekä XML-validointi että sääntötarkistukset.

XML-validointi