Kun XML-tiedosto on liitetty DTD-tiedostoon tai XML-skeemaan, sitä sitovat kaikki DTD-tiedostoon tai XML-skeemaan sisältyvät rakenteelliset säännöt. Jotta asiakirja olisi kelvollinen XML-tiedosto, siihen on oltava liitettynä DTD-tiedosto tai XML-skeema ja sen on oltava kaikkien DTD-tiedostoon tai XML-skeemaan sisältyvien esittelyjen mukainen.
Voit liittää XML-tiedoston DTD-tiedostoon XML-skeemaan kahdella eri tavalla.
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">
InvoiceId on DTD-tiedoston julkinen tunnus. Sen avulla XML-tiedosto voidaan liittää DTD-tiedostoon (tässä tapauksessa DTD-tiedosto on Invoice.dtd). Jos julkinen tunnus InvoiceId on sama kuin XML-luettelomerkinnän avain tunnukselle Invoice.dtd, järjestelmä etsii DTD-tiedoston XML-luettelomerkinnän mukaisen URI-osoitteen perusteella. Muussa tapauksessa järjestelmä etsii DTD-tiedoston käyttämällä DOCTYPE-esittelyn järjestelmätunnusta ("C:\mydtds\Invoice.dtd"), joka viittaa suoraan DTD-tiedoston sijaintiin tiedostojärjestelmässä.
Huomautus: Voit käyttää järjestelmätunnusta XML-luettelomerkinnän avaimena. Kun avaimena on järjestelmätunnus, XML-tiedostossa on seuraavanlainen DOCTYPE-tunniste:
<!DOCTYPE Root-name SYSTEM "MyDTD.dtd">
MyDTD.dtd on XML-luettelomerkinnän avainta vastaava järjestelmätunnus.
Kun XML-tiedosto on liitetty XML-skeemaan, XML-tiedostossa on vähintään yksi skeeman paikan ilmaiseva määrite. Tällaisen schemaLocation-määritteen tiedot ovat XML-prosessorin käyttämiä sijaintivihjeitä. Seuraavissa esimerkeissä on schemaLocation-määritteitä.
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd"> <shipTo country="US"> ...
<purchaseOrder xmlns="http://www.ibm.com" xsi:schemaLocation="http://www.ibm.com PO.xsd"> <shipTo country="US"> ....
Esimerkissä 1 schemaLocation-määritteen sijaintivihje ('C:\myschemas\PurchaseOrder.xsd') on suora viite tiedostojärjestelmän sijaintiin tai XML-skeeman URI-osoitteeseen. Tässä tapauksessa XML-prosessori etsii skeematiedoston suoraan.
Esimerkissä 2 schemaLocation-sijaintivihje (PO.xsd) on viite XML-luettelomerkintään. PO.xsd on XML-luettelomerkinnän PurchaseOrder.xsd avain, jota vastaavan XML-luettelomerkinnän URI-osoitteen (jossa on tietoja PurchaseOrder.xsd-tiedoston sijainnista) avulla XML-skeema haetaan.
Molemmissa esimerkeissä xsi:schemaLocation-tunnisteessa oleva http://www.ibm.com-osa on XML-skeeman nimitilan määrittävä URI-osoite.
<purchaseOrder xmlns:="www.ibm.com" xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">
Tällöin schemaLocation-määrite on viite sekä avaimeen että skeeman varsinaiseen sijaintiin.
Etäpalvelimessa sijaitseva DTD-tiedosto tai XML-skeema
Monia XML-muokkausohjelman toimintoja, kuten tarkistusta ja sisällönhallinnan aputoimintoa, varten on oltava DTD-tiedosto tai XML-skeema. Tuotteen ohjeissa on hyödyllisiä ohjeita sellaisiin tapauksiin, joissa DTD-tiedosto tai XML-skeema on muualla kuin paikallisessa koneessa. DTD-tiedosto tai XML-skeema voi olla usein etäpalvelimessa, kuten seuraavassa esittelyssä:
<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">
Yleensä tämä ei aiheuta ongelmia, koska DTD-tiedoston tai XML-skeeman voi noutaa etäpalvelimesta. Jos kuitenkin käytät tuotetta palomuurilla suojatussa järjestelmässä, joka ei ole SOCKS-yhteensopiva, työympäristössä ei ole toimintoa, jolla voisit määrittää SOCKS-palvelimen DTD-tiedoston tai XML-skeeman noutoa varten. Jos et voi määrittää järjestelmään SOCKS-asetuksia, voit kiertää tämän ongelman noutamalla (esimerkiksi selaimella) kopion DTD-tiedostosta tai XML-skeemasta ja tallentamalla siitä kopion paikalliseen koneeseen. Voit sijoittaa paikallisen kopion samaan projektiin kuin XML-tiedoston tai liittää julkisen tunnuksen DTD-tiedoston (paikalliseen) sijaintiin XML-luettelon avulla.
Huomautus: Jos olet liittänyt XML-tiedostoon XML-skeeman tai DTD-tiedoston, joka sijaitsee muussa kuin käyttämässäsi verkon osassa, ja työskentelet koneella, joka ei ole liitetty verkkoon, voit käyttää sisällönhallinnan aputoimintoa tai XML-tiedoston tarkistustoimintoa toimimalla edellä kuvatulla tavalla.
Jos luot suoran liitoksen XML-tiedoston ja XML-skeeman tai DTD-tiedoston välille, joudut etsimään ja päivittämään kaikki XML-tiedostot, joissa on viitteitä XML-skeemaan tai DTD-tiedostoon aina, kun muutat XML-skeeman tai DTD-tiedoston sijaintia. Jos liität XML-tiedoston XML-skeeman tai DTD-tiedoston avaimeen, joudut päivittämään vain XML-luettelomerkinnän, kun muutat XML-skeeman tai DTD-tiedoston sijaintia.
Oletetaan esimerkiksi, että käytät DTD-tiedostoa Rakennus.dtd, joka on liitetty viiteen XML-tiedostoon Toimisto.xml, Omakotitalo.xml, Kerrostalo.xml, Pankki.xml ja Posti.xml. Siirrät DTD-tiedoston Rakennus.dtd uuteen paikkaan. Jos olet määrittänyt Rakennus.dtd-tiedoston ja XML-tiedostojen väliset liitokset suoraan, joudut päivittämään Rakennus.dtd-tiedoston uuden sijainnin kunkin XML-tiedoston <DOCTTYPE>-esittelyyn. Toisaalta, jos käytät liittämiseen XML-luetteloa niin, että XML-tiedostoissa on viite Rakennus.dtd-tiedoston avaimeen, joudut päivittämään Rakennus.dtd-tiedoston uuden paikan vain XML-luettelomerkinnän URI-osoitteeseen. Kaikki XML-tiedostot toimivat normaalisti.
Kun päivität
XML-luettelomerkinnän, XML-muokkausohjelman näkymä on ehkä verestettävä, jotta
uudet tiedot tulevat näkyviin. Voit tehdä tämän napsauttamalla työkalurivin
Lataa riippuvuudet uudelleen -painiketta ().
Tällöin näkymä päivittyy käytössä olevien XML-luettelon asetusten mukaiseksi.
XML-muokkausohjelman näkymä on verestettävä vain, jos avoinna on XML-tiedosto,
jossa on viitteitä päivitettyyn XML-luettelomerkintään.
Lisätietoja on aiheeseen liittyvissä tehtävissä.
(c) Copyright 2001, World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University).