Amikor egy XML fájl társítva van egy DTD meghatározással vagy XML sémával, akkor kötik a DTD meghatározásban vagy XML sémában található szerkezeti szabályok. Ahhoz, hogy egy fájlt érvényes XML fájlnak tekintsen a rendszer, a dokumentumhoz tartoznia kell egy DTD fájlnak vagy XML sémának, és meg kell felelnie az abban szereplő összes deklarációnak.
Két különböző mód van az XML fájlok társítására DTD fájlokkal vagy XML sémákkal.
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">
Az InvoiceId a DTD fájl nyilvános azonosítója. Ez használatos az XML fájl társítására egy DTD fájllal (ebben az esetben a DTD fájl az Invoice.dtd). Ha az InvoiceId megfelel az Invoice.dtd fájlhoz tartozó XML katalógus bejegyzés Kulcs értékének, akkor a rendszer az XML katalógus bejegyzés URI azonosítójának segítségével (ami az Invoice.dtd fájl helyéről tartalmaz információkat) keresi meg a DTD fájlt. Máskülönben a DOCTYPE rendszerazonosítója ("C:\mydtds\Invoice.dtd") - ami közvetlenül a DTD fájlrendszerbeli helyére vonatkozik - használatos a DTD megkeresésére.
<!DOCTYPE Root-name SYSTEM "MyDTD.dtd">
ahol a MyDTD.dtd egy XML katalógus bejegyzés Kulcsának megfelelő rendszer azonosító.
Ha egy XML fájl társítva van egy XML sémával, akkor legalább egy séma hely attribútum található az XML fájlban. A schemaLocation attribútumban található információk "tippként" szolgának az XML feldolgozó számára. Az alábbi példák a schemaLocation attribútumokat mutatják be:
<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"> ....
Az 1. példában a schemaLocation 'tipp' ('C:\myschemas\PurchaseOrder.xsd') közvetlenül az XML séma fájlrendszerbeli helyére vagy URI azonosítójára vonatkozik. Ebben az esetben az XML feldolgozó közvetlenül keresi meg a sémafájlt.
A 2. példában a schemaLocation 'tipp' ('PO.xsd') egy XML katalógusbejegyzésre vonatkozik. A PO.xsd a PurchaseOrder.xsd fájlhoz tartozó XML katalógusbejegyzés Kulcsának felel meg, és a rendszer az XML katalógusbejegyzés URI azonosítójának segítségével (ami az PurchaseOrder.xsd fájl helyéről tartalmaz információkat) keresi meg a XML fájlt.
Mindkét példában a http://www.ibm.com az xsi:schemaLocation címkében egy olyan URI azonosító, ami azonosítja a névteret az XML séma számára.
<purchaseOrder xmlns:="www.ibm.com" xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">
A schemaLocation attribútum a Kulcsra és a séma tényleges helyére is mutat.
A DTD vagy XML séma egy távoli kiszolgálón található
Az XML szerkesztő számos funkciója, például az érvényesítés és a tartalomsegéd megköveteli a DTD vagy XML séma rendelkezésre állását. A termékdokumentáció biztosít használati információkat az olyan esetekre, amikor a DTD vagy XML séma a helyi gépen található. Azonban számos esetben a DTD vagy XML séma távoli kiszolgálón található, például
<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">
Ez az eset általában nem jelent problémát, mert a DTD vagy XML séma lekérhető a távoli kiszolgálóról. Ha azonban tűzfal mögött van és nem rendelkezik SOCKSified rendszerrel, akkor a munkaterület jelenleg nem ad módot egy socks kiszolgáló megadására a DTD vagy XML séma lekéréséhez. Ha nem képes SOCKSify végrehajtására a rendszeren, akkor az áthidaló megoldás a DTD vagy XML séma egy példányának lekérése (például egy webböngésző segítségével) és elmentése a helyi gépre. Majd vagy elhelyezhet egy helyi példányt ugyanabban a projektben, mint az XML fájl, vagy pedig az XML katalógus segítségével társíthat egy nyilvános azonosítót a DTD (helyi) helyével.
Ha közvetlen társítást hoz létre egy XML fájl és egy XML séma vagy DTD fájl között, és bármikor módosítja a séma vagy DTD helyét, akkor követnie és frissítenie kell az összes hivatkozó XML fájlt a DTD vagy a séma új helyével. Ha azonban az XML fájlokat XML séma vagy DTD fájl Kulcsokkal társítja, akkor a séma vagy a DTD helyének módosításakor csak az XML katalógusbejegyzést kell frissítenie az egyes XML fájlok helyett.
Például tegyük fel, hogy rendelkezik egy Building.dtd nevű DTD fájllal, ami öt XML fájllal van társítva: Office.xml, House.xml, Apartment.xml, Bank.xml és PostOffice.xml. Áthelyezi a Building.dtd DTD fájlt egy új helyre. Ha közvetlen társítással rendelkezik a Building.dtd és az összes XML fájl között, akkor minden egyes XML fájlban frissítenie kell a <DOCTTYPE> deklarációt, hogy tükrözze a Building.dtd új helyét. Ha azonban XML katalógus társítással rendelkezik, és az összes XML fájl a Building.dtd fájl kulcsára hivatkozik, akkor csak az URI azonosítót kell frissítenie, és az összes XML fájl a Building.dtd új helyére fog mutatni.
Elképzelhető, hogy miután frissített egy bejegyzést az XML katalógusban,
frissítenie kell az XML szerkesztő nézetet, hogy az az új információkat
használja. Ehhez kattintson a Függőségek újrabetöltése eszköztárgombra
, és a nézet frissítésre kerül az aktuális
XML katalógus beállítások használatával. Csak akkor kell
frissítenie az XML szerkesztő nézetet, ha nyitva van egy olyan XML fájl,
ami a frissített XML katalógusbejegyzésre hivatkozik.
További információkért nézze meg a kapcsolódó feladatokat.