XML-tiedostojen liittäminen DTD-tiedostoihin ja XML-skeemoihin

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.

  1. Suorassa liitoksessa XML-tiedoston doctype-esittelyssä on DTD-tiedoston nimi (esimerkiksi <!DOCTYPE root-element SYSTEM " dtdfile.dtd" >, jossa dtdfile.dtd on DTD-tiedoston nimi), tai XML-tiedoston juurielementin schemaLocation-määritteessä on XML-skeeman polku (esimerkiksi <xsi:schemaLocation="http://www.ibm.com schema.xsd">, jossa schema.xsd on XML-skeeman nimi).
  2. XML-luettelomerkintää käytettäessä käytät XML-luetteloa. Voit rekisteröidä XML-luetteloon DTD-tiedostoja ja XML-skeematiedostoja ja määrittää niille avaimen. Tällöin voit viitata XML-tiedostossa DTD-tiedostoihin ja XML-skeematiedostoihin niiden avaimella suorien viitteiden käytön sijasta. XML-luettelossa on kaksi osaa: DTD-tiedostoa tai XML-skeemaa vastaava avain ja DTD-tiedoston tai XML-skeeman paikan määrittävä URI-osoite.

Liittäminen

XML-tiedoston liittäminen DTD-tiedostoon
Kun XML-tiedosto on liitetty DTD-tiedostoon, XML-tiedostossa on oltava seuraavanlainen DOCTYPE-tunniste:
<!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.

XML-tiedoston liittäminen XML-skeemaan

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

Esimerkki 1
<purchaseOrder xmlns="http://www.ibm.com"
xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd">
<shipTo country="US">
...
Esimerkki 2
<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.

Voit käyttää myös nimitilaa XML-luettelomerkinnän avaimena. Kun avaimena on nimitila, XML-tiedostossa on seuraavanlainen schemaLocation-määrite:
<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.

XML-luettelomerkinnän avulla liittämisen edut

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.

XML-luettelomerkinnän päivitys

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 (Työkalurivin Lataa riippuvuudet uudelleen -painikkeen kuva). 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).

Aiheeseen liittyviä käsitteitä
XML-muokkausohjelma
Aiheeseen liittyviä tehtäviä
Muokkaus DTD-rajoitteiden tai XML-skeeman rajoitteiden kanssa
DOCTYPE-esittelyjen muokkaus
Merkintöjen lisäys XML-luetteloon
DTD-tiedostoihin ja skeemoihin tehtyjen muutosten päivittäminen XML-tiedostoihin
Nimitilatietojen muokkaus
XML-käsittelykäskyjen muokkaus
Muokkaus suunnittelunäkymässä
Muokkaus lähdenäkymässä