Přiřazová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řiřazování souborů XML k DTD nebo schématům XML.

  1. Přímé přiřazení - Soubor XML obsahuje buďto 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 - Můžete registrovat soubory schémat DTD a XML do katalogu XML a přiřazovat je k proměnné Klíč, která je reprezentuje. Poté můžete odkazovat na proměnnou souboru schématu DTD nebo XML Klíč ze souboru 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řiřazová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 "IdFaktury" "C:\mydtds\Invoice.dtd">

IdFaktury 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á proměnné Klíč položky katalogu XML pro soubor Invoice.dtd, URI položky katalogu XML (které obsahuje informace o umístění souboru Invoice.dtd) se použije k vyhledání 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: Můžete také použít identifikátor systému jako Klíč v položce katalogu XML. 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 umístění schématu.

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 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 postupovat dle dříve popsaných kroků, chcete-li použít obsahovou asistenci nebo ověřit váš soubor XML.

Výhody přiřazení 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 DTD s názvem "Building.dtd", které je přidruženo 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 Toto znázornění představuje tlačítko panelu nástrojů Znovu načíst závislosti a 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.

(c) Copyright 2001, World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University).

Související pojmy
XML editor
Související úlohy
Úprava s omezeními DTD nebo schématu XML
Úprava deklarací DOCTYPE
Přidává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 pokynů pro zpracování XML
Úprava v pohledu Návrh
Úprava v pohledu Zdroj