XML-skeema vs. DTD
DTD tai Document Type Definition ja XML Schema, joka tunnetaan myös nimellä XSD, ovat kaksi tapaa kuvata XML-asiakirjan rakennetta ja sisältöä. DTD on näistä kahdesta vanhempi, ja sellaisenaan sillä on rajoituksia, joita XML-skeema on yrittänyt parantaa. Ensimmäinen ero DTD: n ja XML-skeeman välillä on nimitilan tietoisuus; XML-skeema on, kun taas DTD ei. Nimitilan tietoisuus poistaa epäselvyydet, jotka voivat johtaa tiettyjen elementtien ja määritteiden saamiseen useista XML-sanastoista antamalla niille nimitilat, jotka asettavat elementin tai määritteen kontekstiin.
Osa siitä, miksi XML-skeema on nimitilaan tietoinen, kun taas DTD ei ole, on se, että XML-skeema on kirjoitettu XML-muodossa eikä DTD: tä. Siksi XML-kaaviot voidaan prosessoida ohjelmallisesti kuten mitä tahansa XML-dokumentteja. XML-kaavio eliminoi myös tarpeen oppia toista kieltä, koska se kirjoitetaan XML-muodossa, toisin kuin DTD.
Toinen XML-skeeman etu on sen kyky toteuttaa vahva konekirjoitus. XML-kaavio voi määritellä tiettyjen elementtien tietotyypin ja jopa rajoittaa sen tietyn pituuden tai arvojen rajoissa. Tämä kyky varmistaa, että XML-asiakirjaan tallennetut tiedot ovat oikeita. DTD: ltä puuttuu vahvat kirjoitusominaisuudet, eikä sillä ole mitään keinoa validoida sisältöä tietotyypeille. XML-skeemalla on runsaasti johdettuja ja sisäänrakennettuja tietotyyppejä sisällön validoimiseksi. Tämä tarjoaa yllä mainitun edun. Sillä on myös yhtenäiset tietotyypit, mutta koska kaikkien prosessorien ja validoijien on tuettava näitä tietotyyppejä, se aiheuttaa usein vanhempien XML-jäsennysten epäonnistumisen.
DTD: n ominaispiirre, jota ihmiset pitävät usein sekä etuna että haittana, on kyky määritellä DTD: t inline, mikä XML-kaavasta puuttuu. Tämä on hyvä, kun työskentelet pienten tiedostojen kanssa, koska sen avulla voit sisältää sekä sisällön että skeeman samassa asiakirjassa, mutta suurempien asiakirjojen osalta tämä voi olla haitta, koska vedät sisältöä joka kerta kun haet skeeman. . Tämä voi johtaa vakaviin yleiskustannuksiin, jotka voivat heikentää suorituskykyä.
Yhteenveto:
1. XML-kaavio on nimitilasta tietoinen, kun taas DTD ei.
2. XML-kaaviot kirjoitetaan XML-muodossa, kun taas DTD: t eivät ole.
3. XML-skeema kirjoitetaan voimakkaasti, kun taas DTD ei.
4. XML-skeemalla on paljon johdettuja ja sisäänrakennettuja tietotyyppejä, joita ei ole saatavana DTD: ssä.
5. XML-skeema ei salli inline-määritelmiä, kun taas DTD tekee.