Přidružování souboru XML definicím DTD a schématům XML

Když je soubor XML přidružen k DTD nebo schématu XML, je soubor vázán případnými strukturálními pravidly obsaženými v DTD nebo schématu XML. Má-li být soubor XML považován za platný, musí být společně s dokumentem k dispozici soubor DTD nebo schéma XML a tento soubor musí vyhovovat všem deklaracím v DTD nebo ve schématu XML.

Existují dva různé způsoby přidružování souborů XML k DTD nebo schématům XML.

  1. Přímé přidružení - Soubor XML obsahuje buď název DTD ve své deklaraci typu dokumentu (například, <!DOCTYPE root-element SYSTEM " dtdfile.dtd" >, kde dtdfile.dtd je název souboru DTD), nebo obsahuje cestu ke schématu XML v atributu schemaLocation kořenového prvku souboru XML (například, <xsi:schemaLocation="http://www.ibm.com/schema.xsd">, kde schema.xsd je název schématu XML.
  2. Položka katalogu XML - Soubory DTD a schémat XML můžete registrovat v katalogu XML a přidružovat je ke Klíči, který je představuje. Poté můžete ze souboru XML odkazovat na Klíč souboru DTD nebo schématu XML namísto odkazování přímo na soubor schématu DTD nebo XML. Položka katalogu XML obsahuje dvě části - proměnnou Klíč (která reprezentuje schéma DTD nebo XML) a URI (které obsahuje informace o umístění schématu DTD nebo XML).

Jak přidružování funguje

Přidružování souboru XML k DTD
Pokud je soubor XML přidružen k DTD, je do souboru XML vložena značka DOCTYPE následujícího typu:
<!DOCTYPE root-name PUBLIC "InvoiceId" "C:\mydtds\Invoice.dtd">

InvoiceId je veřejný identifikátor souboru DTD. Používá se k přidružení souboru XML k souboru DTD (v tomto případě soubor DTD odpovídá souboru Invoice.dtd). Pokud veřejný identifikátor InvoiceId odpovídá Klíči položky katalogu XML pro soubor Invoice.dtd, použije se k vyhledání DTD identifikátor URI položky katalogu XML (který obsahuje informace o umístění souboru Invoice.dtd). Jinak se k vyhledání DTD použije identifikátor systému DOCTYPE ("C:\mydtds\Invoice.dtd"), který odkazuje přímo na umístění systému souborů DTD.

Poznámka: Jako Klíč v položce katalogu XML můžete použít také systémový identifikátor. Pokud použijete identifikátor systému jako Klíč, do souboru XML se vloží značka DOCTYPE následujícího typu:
<!DOCTYPE Root-name SYSTEM "MyDTD.dtd"> 

kde MyDTD.dtd je identifikátor systému, který odpovídá Klíči položky katalogu XML.

Přidružování souboru XML ke schématu XML

Pokud je soubor XML přidružen ke schématu XML, do souboru XML se vloží jeden nebo více atributů umístění schématu. Informace v umístění schématu jsou poskytovány jako "hint" procesoru XML. Následující příklady zobrazují atributy schemaLocation:

Příklad 1
<purchaseOrder xmlns="http://www.ibm.com"
xsi:schemaLocation="http://www.ibm.com C:\myschemas\PurchaseOrder.xsd">
<shipTo country="US">
...
Příklad 2
<purchaseOrder xmlns="http://www.ibm.com"
xsi:schemaLocation="http://www.ibm.com PO.xsd">
<shipTo country="US">
....

V příkladě 1 'hint' schemaLocation ('C:\myschemas\PurchaseOrder.xsd') odkazuje přímo na umístění systému souborů nebo URI schématu XML. V tomto případě bude soubor schématu vyhledán přímo procesorem XML.

V příkladě 2, 'hint' schemaLocation ('PO.xsd') odkazuje na položku katalogu XML. PO.xsd odpovídá proměnné Klíč položky katalogu XML pro PurchaseOrder.xsd a URI položky katalogu XML (které obsahuje informace o umístění PurchaseOrder.xsd) se použije k vyhledání schématu XML.

V obou příkladech je http://www.ibm.com ve značce xsi:schemaLocation URI, které označuje obor názvů pro schéma XML.

Můžete také použít obor názvů jako Klíč pro položku katalogu XML. Pokud použijete obor názvů jako Klíč, vloží se do souboru XML značka schemaLocation následujícího typu:
<purchaseOrder xmlns:="www.ibm.com"
xsi:schemaLocation="http://www.ibm.com po/xsd/PurchaseOrder.xsd ">

Atribut schemaLocation ukazuje na Klíč i na skutečné umístění schématu.

Schéma DTD nebo XML je umístěno na vzdáleném serveru

Některé funkce v editoru XML, jako například asistence ověřování platnosti a obsahová asistence, vyžadují dostupnost schématu DTD nebo XML. Dokumentace produktu poskytuje informace o použití pro případy, kdy se schéma DTD nebo XML nachází na vašem lokálním počítači. Avšak v mnoha případech se může schéma DTD nebo XML nacházet na vzdáleném serveru, například:

<!DOCTYPE Catalog PUBLIC "abc/Catalog" "http://xyz.abc.org/dtds/catalog.dtd">

Za normálních okolností tato skutečnost neznamená žádný problém, protože schéma DTD nebo XML může být načteno ze vzdáleného serveru. Avšak pokud se nacházíte za bránou firewall a nemáte systém s uplatněním SOCKS, pracovní plocha aktuálně neposkytuje žádný způsob, jak určit server socks pro načítání schématu DTD nebo XML. Pokud nejste schopni uplatnit SOCKS ve vašem systému, náhradní řešení tohoto problému spočívá v načtení kopie schématu DTD nebo XML (například s použitím webového prohlížeče) a uložení této kopie na vašem lokálním počítači. Poté můžete lokální kopii umístit buďto ve stejném projektu jako váš soubor XML, nebo můžete použít katalog XML k přidružení veřejného identifikátoru k (místnímu) umístění DTD.

Poznámka: Pokud jste přidružili soubor XML ke schématu XML nebo k souboru DTD, který se nachází na jiném místě v síti, a pracujete na počítači, který je odpojen od sítě, můžete při použití obsahové asistence nebo ověřování svého souboru XML postupovat podle dříve popsaných kroků.

Výhody přidružení položek katalogu XML

Pokud vytvoříte přímé přidružení souboru XML k souboru schématu XML nebo k DTD, při každé změně umístění schématu nebo DTD musíte vyhledat a aktualizovat všechny referenční soubory XML novým umístěním DTD nebo schématu. Avšak pokud přidružíte soubor XML ke schématu XML nebo ke klíči DTD, při změně umístění schématu nebo DTD musíte aktualizovat pouze položku katalogu XML, namísto aktualizace každého jednotlivého souboru XML.

Například, pokud máte soubor DTD s názvem Building.dtd, který je přidružen k pěti souborům XML - Office.xml, House.xml, Apartment.xml, Bank.xml a PostOffice.xml. Přesunete soubor DTD Building.dtd do nového umístění. Máte-li přidružení směru mezi Building.dtd a všemi soubory XML, budete muset aktualizovat deklaraci <DOCTTYPE> v každém souboru XML tak, aby odrážela nové umístění Building.dtd. Avšak pokud máte přidružení katalogu XML a všechny soubory XML odkazují pouze na Klíč Building.dtd, musíte aktualizovat pouze URI a všechny soubory XML budou ukazovat do nového umístění Building.dtd.

Aktualizace položky v katalogu XML

Poté, co aktualizujete položku v katalogu XML, budete možná potřebovat obnovení zobrazení editoru XML tak, aby používal nové informace. Tento krok provedete tak, že klepnete na tlačítko panelu nástrojů Znovu načíst závislosti Tento obrázek je tlačítkem panelu nástroj Znovu načíst závislosti zobrazení bude aktualizováno s použitím aktuálních nastavení katalogu XML. Zobrazení editoru XML musíte obnovit pouze tehdy, pokud máte otevřen soubor XML, který odkazuje na položku katalogu XML, která byla aktualizována.

Další informace viz související úlohy.

Související koncepce
Editor XML
Související úlohy
Úprava s omezeními DTD nebo schématu XML
Úprava deklarací DOCTYPE
Přidání položek do katalogu XML
Aktualizace souborů XML s použitím změn DTD a změn schémat XML
Úprava informací o oboru názvů
Úprava instrukcí pro zpracování XML
Úprava v pohledu Návrh
Úpravy v pohledu Zdroj