Co je obsaženo v přísném souboru dtd. DTD - Atributy. Atributy ID, IDREF a IDREFS
V dokumentech XML definuje DTD sadu platných prvků, identifikuje prvky, které mohou být obsaženy v jiných prvcích, a pro každý z nich definuje platné atributy. Syntaxe DTD je velmi unikátní a při vytváření takových dokumentů je vyžadováno další úsilí od autora-vývojáře (složitost DTD je jedním z důvodů, proč použití SGML, které vyžaduje Definice DTDžádný dokument není tak rozšířený jako například HTML). Jak bylo uvedeno, není nutné používat DTD v XML – dokumenty vytvořené bez těchto pravidel budou parserem zpracovány správně, pokud splňují základní požadavky syntaxe XML. Kontrola nad typy prvků a správností vztahů mezi nimi však bude v tomto případě zcela spočívat na autorovi dokumentu. Dokud nebude popsána gramatika našeho nového jazyka, budeme jej moci používat pouze my, a k tomu budeme nuceni používat speciálně vyvinutý software, nikoli univerzální analyzační programy.
DTD pro XML používá následující typy pravidel: pravidla pro prvky a jejich atributy, popisy kategorií (definice maker), popisy formátů binárních dat. Všechny popisují základní konstrukce jazyka - prvky, atributy, symbolické konstanty, externí binární datové soubory.
Abychom mohli použít DTD v našem dokumentu, můžeme jej buď popsat externí soubor a při popisu DTD jednoduše uveďte odkaz na tento soubor nebo přímo v dokumentu samotném vyberte oblast, ve které chcete definovat potřebná pravidla. V prvním případě dokument specifikuje název souboru obsahujícího popisy DTD:
...
Uvnitř dokumentu jsou deklarace DTD zahrnuty takto:
... ... ]> ...
V případě, že jsou současně použity interní a externí popisy, program analyzátoru nejprve vezme v úvahu interní, tzn. jejich priorita je vyšší. Při ověřování dokumentu procesor XML nejprve hledá DTD v dokumentu. Pokud pravidla uvnitř dokumentu nejsou definována a atribut není nastaven standalone="ano", pak program načte zadaný externí soubor a odtud se načtou pravidla v něm obsažená. Pokud je atribut samostatný záležitosti "Ano“, pak bude použití externích popisů DTD zakázáno.
Definice prvku
Prvek v DTD je definován pomocí handle! ŽIVEL, který určuje název prvku a strukturu jeho obsahu.
Například pro prvek
Klíčové slovo ELEMENT označuje, že tento příkaz bude popisovat prvek XML. Uvnitř této instrukce je uveden název prvku (květina) a typ jeho obsahu.
V definici prvku nejprve určíme název prvku (květina), a poté jeho obsahový model – určíme, jaké další prvky nebo datové typy se v něm mohou vyskytovat. V v tomto případě obsah květinového elementu bude určen pomocí speciálního PCDATA markeru (což znamená parsovatelná znaková data - jakákoliv informace, se kterou může program analyzátoru pracovat). Existují dva další příkazy, které definují typ obsahu: EMPTY,ANY. První znamená, že prvek by měl být prázdný (např.
Posloupnost podřízených objektů pro aktuální prvek je určena jako seznam názvů prvků oddělených čárkami. V tomto případě, aby bylo možné uvést počet opakování inkluzí těchto prvků, symboly +, *, ? :
Tento příklad určuje, že uvnitř prvku
Znak * v tomto příkladu označuje, že posloupnost definovaných vnitřních prvků se může několikrát opakovat nebo se nemusí vůbec použít.
Pokud definice prvku specifikuje "smíšený" obsah, tzn. textová data nebo sadu prvků, musíte nejprve zadat PCDATA a poté oddělit znakem "|" seznam prvků.
Příklad platného dokumentu XML:
]>
...
Definování atributů
Seznamy atributů prvků jsou definovány pomocí klíčového slova! ATTLIST. Uvnitř jsou uvedeny názvy atributů, typy jejich hodnot a další parametry. Například pro prvek
V tomto příkladu pro prvek článek jsou definovány tři atributy: id, o A typ, které mají typy ID (identifikátor), CDATA a seznam možných hodnot, resp. Existuje celkem šest možných typů hodnot atributů:
- CDATA - obsah dokumentu může být libovolný znakový údaj
- ID – definuje jedinečný identifikátor prvku v dokumentu
- IDREF(IDREFS) – označuje, že hodnotou atributu by měl být název (nebo několik takových názvů, ve druhém případě oddělených mezerami) jedinečného identifikátoru prvku definovaného v tomto dokumentu
- ENTITY(ENTITIES) - hodnota atributu musí být název (nebo seznam názvů, pokud je použit ENTITIES) komponenty (definice makra) definované v dokumentu
- NMTOKEN (NMTOKENS) - obsah prvku může být pouze jedno slovo (tj. tento parametr je omezenou variantou CDATA)
- Seznam platných hodnot - definuje seznam hodnot, které může mít tento atribut.
V definici atributu můžete také použít následující parametry:
- #REQUIRED - definuje povinný atribut, který musí být nastaven na všech prvcích tohoto typu
- #IMPLIED – atribut je volitelný
- #FIXED "value" - označuje, že atribut musí mít pouze zadanou hodnotu, samotná definice atributu však není povinná, ale během procesu analýzy bude jeho hodnota v každém případě předána programu analyzátoru
- Hodnota – nastavuje výchozí hodnotu atributu
Definování komponent (definice maker)
Entita představuje definice, jejichž obsah lze v dokumentu znovu použít. V jiných programovacích jazycích se podobné prvky nazývají makrodefinice. Komponenty DTD se vytvářejí pomocí příkazu!ENTITY:
Program analyzátoru, který se nejprve podívá na obsah oblasti definice DTD, tuto instrukci zpracuje a při další analýze dokumentu použije obsah komponenty DTD v místě, kde se vyskytuje její název. Tito. Nyní v dokumentu můžeme použít výraz, který bude nahrazen řádkem "Rádi vás vítáme"
Obecně lze v rámci DTD definovat tři typy definic maker:
Interní definice maker- jsou navrženy tak, aby s jejich pomocí definovaly řetězcovou konstantu, můžete uspořádat odkazy na často se měnící informace, čímž se dokument stane čitelnějším; Vnitřní součásti jsou v dokumentu zahrnuty pomocí ampersand &
V XML je pět předdefinovaných interních znakových konstant:
- < - символ "<"
- > - symbol ">"
- & - symbol "&"
- " - symbol apostrofu """
- " - znak dvojitých uvozovek """
Externí definice maker- ukažte na obsah externího souboru a tento obsah může být textová nebo binární data. V prvním případě budou vloženy textové řetězce tam, kde je makro použito, ve druhém - binární data, která analyzátor nezohledňuje a používají je externí programy
Definice makra pravidla- definice makra parametrů lze použít pouze v oblasti DTD a jsou označeny speciálním symbolem % vloženým před název makra. V tomto případě bude obsah komponenty umístěn přímo v textu pravidla DTD
Například pro následující fragment dokumentu:
Můžete použít kratší formulář:
Makra se často používají k popisu parametrů v pravidlech atributů. V tomto případě je možné použít stejné definice atributů pro různé prvky:
Typování dat
Poměrně často potřebuje vývojář při vytváření prvku XML určit, jaký typ dat lze použít jako jeho obsah. Tito. pokud definujeme prvek
Pokud je jako klientský program použit ověřovací XML procesor, lze informace o typu přenášet pomocí prvku speciálně vytvořeného pro tento atribut, který má vhodnou definici DTD. Během procesu analýzy předá analyzátor hodnotu tohoto atributu klientské aplikaci, která může tyto informace použít podle očekávání. Chcete-li například určit, že obsah prvku musí být dlouhé celé číslo, můžete použít následující definici DTD:
Nastavením atributu na výchozí hodnotu LONG a jeho definováním jako FIXED jsme umožnili klientskému programu získat potřebné informace o typu obsahu tohoto prvku a nyní může nezávisle určit, zda je typ obsahu tohoto prvku zadán. v definici DTD.
Zde je příklad dokumentu XML, který definuje a používá několik prvků s různými datovými typy:
...
Jak je vidět z příkladu, mechanismus vytváření prvků dokumentu se vůbec nezměnil. Všechny informace potřebné ke kontrole datových typů jsou obsaženy v definicích prvků uvnitř bloku DTD.
Na závěr bych rád poznamenal, že DTD nám poskytuje velmi pohodlný mechanismus pro kontrolu obsahu dokumentu. Dnes téměř všechny programy pro prohlížení internetových dokumentů používají pravidla DTD. Není to však zdaleka jediný způsob, jak zkontrolovat správnost dokumentu. Konsorcium W3 v současné době zvažuje nový standard jazyka pro strukturu dokumentů nazvaný datová schémata. Další část je věnována práci s nimi.
Senior Technology Writer
Poslal vám někdo e-mailem soubor s příponou DTD, a Vy nevíte, jak jej otevřít? Možná jste soubor s příponou DTD našli ve svém počítači a zajímá Vás, co to je? Systém Windows vám může oznámit, že jej nelze otevřít, nebo v nejhorším případě můžete narazit na odpovídající chybovou zprávu spojenou se souborem DTD.
Než budete moci otevřít soubor DTD, musíte zjistit, jaký typ souboru je přípona souboru DTD.
Tip: Chyby přiřazení nesprávné přípony DTD danému souboru mohou být příznakem jiných hlubších problémů ve Vašem operačním systému Windows. Tyto neplatné položky mohou také způsobit související příznaky, jako je pomalé spouštění systému Windows, zamrzání počítače a další problémy s výkonem počítače. Proto se důrazně doporučuje, abyste v registru Windows prohledali neplatné přidružení souborů a další problémy související s fragmentovaným registrem.
Odpověď:
Soubory DTD jsou datové soubory, které jsou primárně spojeny s DesignTools 2D Design (TechSoft UK Limited).
Soubory DTD jsou také spojeny s ArcView UNIX Hyperhelp Supporting File (ESRI), SGML Document Definition File a FileViewPro.
Navíc, příponu DTD možná využívají i jiné typy souborů. Pokud víte o jakýchkoli dalších formátech souborů, které používají příponu souboru DTD, kontaktujte nás, abychom mohli odpovídajícím způsobem aktualizovat naše informace.
Jak otevřít soubor DTD:
Nejrychlejší a snadný způsob Otevření souboru DTD znamená poklepání na něj. V tomto případě systém Windows ona si vybere potřebný program otevřete soubor DTD.
V případě, že se váš soubor DTD neotevře, je velmi pravděpodobné, že na vašem počítači není nainstalován potřebný software. aplikačního programu pro zobrazení nebo úpravu souborů s příponami DTD.
Pokud Váš počítač soubor s příponou DTD sice otevře, ale použije k tomu nesprávnou aplikaci, musíte změnit nastavení přiřazování souborů. registru Windows. Jinými slovy, Windows spojuje přípony souborů DTD s nesprávným programem.
Nainstalujte volitelné produkty - FileViewPro (Solvusoft) | | | |
DTD Multipurpose Internet Mail Extensions (MIME):
- mime text/xml
Nástroj pro analýzu souborů™ DTD
Nejste si jisti, jaký je typ souboru DTD? Chcete získat přesné informace o souboru, jeho tvůrci a jak jej lze otevřít?
Nyní můžete okamžitě získat vše potřebné informace o souboru DTD!
Revoluční Nástroj pro analýzu souborů™ DTD skenuje, analyzuje a podává zprávy podrobné informace o souboru DTD. Náš patentovaný algoritmus rychle analyzuje soubor a poskytuje podrobné informace během několika sekund v jasném a snadno čitelném formátu.†
Během několika sekund budete přesně vědět, jaký typ souboru DTD máte, aplikaci přidruženou k souboru, jméno uživatele, který soubor vytvořil, stav zabezpečení souboru a další užitečné informace.
Chcete-li začít bezplatná analýza jednoduše přetáhněte váš soubor DTD dovnitř níže uvedené tečkované čáry nebo klikněte na "Procházet můj počítač" a vyberte soubor. Zpráva o analýze souboru DTD se zobrazí níže přímo v okně prohlížeče.
Přetažením souboru DTD sem zahájíte analýzu
Zobrazit můj počítač »
Zkontrolujte také, zda můj soubor neobsahuje viry
Váš soubor se analyzuje... čekejte prosím.
Popis schématu dokumentu
DTD popisuje rozvržení dokumentu pro konkrétní značkovací jazyk prostřednictvím sady deklarací (parametrové objekty, prvky a atributy), které popisují jeho třídu (nebo typ) z hlediska syntaktických omezení daného dokumentu. DTD může také deklarovat konstrukce, které jsou vždy nezbytné k definování struktury dokumentu, ale mohou ovlivnit interpretaci určitých dokumentů.
Deklarace objektů parametrů
Deklarace objektu parametru definuje makro určitý typ, na který lze odkazovat a nasadit jej někde v DTD. Tato makra se nemusí objevit v samotném dokumentu, ale pouze v DTD. Pokud se na objekt parametru odkazuje jeho název DTD, je rozbalen do řetězce, který určuje obsah tohoto objektu.
Objekt parametru fontstyle obsahuje skupinu tagů TT | já | B | VELKÉ | MALÝ.
"#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
Vložený objekt parametru obsahuje textová data a další čtyři objekty parametrů fontstyle, fráze, speciální a formctrl.
Deklarace prvků
Deklarace prvků poskytují seznam povolených názvů prvků v dokumentu a také určují informace týkající se značek (zda jsou vyžadovány) a modelu obsahu pro každý prvek.
Různé klíčová slova a znaky definují obsah prvku:
- EMPTY - prázdný obsah
- ANY – jakýkoli obsah
- , - označuje pořadí
- | - oddělení alternativ
- () - seskupení
- * - libovolný počet prvků (nula nebo více)
- + - alespoň jeden prvek (jeden nebo více)
- ? - volitelná přítomnost prvku (nula nebo jedna)
- Pokud ne *, + nebo ? - musí existovat pouze jeden prvek
(DT|DD) +>
Prvek DL musí obsahovat jeden nebo více prvků DT nebo DD v libovolném pořadí.
(%block;|SCRIPT) + -(FORM) >
Element FORM musí obsahovat jeden nebo více prvků s objektem parametru bloku nebo prvky SCRIPT v libovolném pořadí, ale není možné obsahovat další prvek FORM.
Definování atributů
Každý prvek v dokumentu DTD může mít přiřazený seznam atributů. K tomu slouží direktiva!ATTLIST, která určuje název prvku, na který lze mapovat seznam atributů, a parametry každého atributu: jeho název, typ a výchozí vlastnosti.
Například:
název CDATA #REQUIRED>
Tento příklad definuje atribut názvu pro prvek MAP. Je to povinné.
Existují tyto typy atributů:
- CDATA (Znaková sada dat) - hodnota atributu může být jakákoli znaková data
- ID – hodnota atributu musí být jedinečný identifikátorživel
- IDREF - hodnota prvku je odkaz na prvek podle jeho ID
- IDREFS - totéž jako IDREF, ale s možností propojení ne jedním identifikátorem, ale několika
- NMTOKEN - hodnota atributu může být posloupnost znaků, poněkud podobná jménu (odtud název - token jména). Toto je řetězec, který obsahuje libovolnou kombinaci těch znaků, které jsou povoleny pro názvy XML.
- NMTOKENS - hodnota atributu je seznam hodnot
- ENTITY - hodnota se používá k odkazování na externí entitu.
- ENTITY - umožňuje zadat seznam externích entit oddělených mezerami.
- NOTATION - hodnota atributu může být jedním z dříve definovaných zápisů
- ZÁPISY - umožňuje zadat seznam zápisů.
- Výpisy a výpisy NOTACE
- VÝPOČET – určuje seznam možných alternativ hodnot.
K dispozici jsou následující výchozí vlastnosti:
- IMPLIED - hodnota atributu nemusí být specifikována;
- POVINNÉ - musí být zadána hodnota atributu;
- FIXED - hodnota tohoto atributu je uvedena jako konstanta v DTD a nelze ji v dokumentu změnit;
- nějakou konkrétní hodnotu, která se používá ve výchozím nastavení.
Asociace dokumentu s konkrétní DTD
Chcete-li přidružit dokument ke konkrétnímu DTD, musíte na začátku textu dokumentu zadat prvek Deklarace typu dokumentu.
V závislosti na umístění DTD může být deklarace typu dokumentu dvou typů:
- Vnitřní podmnožina DTD
Sada deklarací DTD je obsažena v těle samotného dokumentu. Například:
]> ]>
- Externí podmnožina DTD
Sada deklarací DTD je umístěna v samostatném textový soubor s příponou .dtd V tomto případě lze odkaz na soubor provést prostřednictvím veřejného identifikátoru a (nebo) prostřednictvím systémového identifikátoru. Například:
"http://www.w3.org/TR/html4/strict.dtd">
Příklad
Příklad velmi jednoduchého XML DTD popisujícího seznam lidí:
(osoba*) > (jméno, datum narození?, pohlaví?, číslo sociálního zabezpečení?) > (#PCDATA) > (#PCDATA) > (#PCDATA) >
Počínaje prvním řádkem:
- Živel
Obsahuje libovolný počet prvků Znamení<*>znamená, že je možných 0, 1 nebo více prvků Uvnitř prvku . - Živel
Obsahuje prvky , , A . Znamení>znamená, že prvek je volitelný. Živel neobsahuje>, což znamená, že prvek mošt obsahovat prvek . - Živel
obsahuje data. - Živel
obsahuje data. - Živel
obsahuje data. - Živel
obsahuje data.
Příklad dokumentu XML s tímto DTD:
Viz také
Nadace Wikimedia.
2010.
Podívejte se, co je "DTD" v jiných slovnících: DTD
Podívejte se, co je "DTD" v jiných slovnících:- , die in einer ASCII Datei (ASCII) abgelegte Beschreibung der Struktur von Dokumenten, welche alle vom selben Typ sind. Eine DTD wird nach den Regeln der international anerkannten… … Universal-Lexikon
Podívejte se, co je "DTD" v jiných slovnících:- může znamenat: Obsah 1 Média 2 Hudba 3 Sport 4 Technologie 4.1 Výpočetní technika ... Wikipedie
- steht für: Inhaltsverzeichnis 1 Medien 2 Music 3 Technologien 3.1 Computer 3.1.1 Spiele … Deutsch Wikipedia Dtd
Podívejte se, co je "DTD" v jiných slovnících:- existuje pro: Darwin Digital Television, australische Fernsehstation Delta Delta Tau, americká americká studentská organizace Definice typu dokumentu, definice typu dokumentu … Deutsch Wikipedia
Podívejte se, co je "DTD" v jiných slovnících:- (dē tē dēʹ) n. Sada pravidel pro označování dokumentu v SGML. * * * … Universalium obsahující informace o formátu konkrétního dokumentu (Počítače) ... Anglický současný slovník
Toto je další článek ze série“ Základy XML“ a v něm se podíváme na základy popisu struktury XML dat pomocí DTD. Je to docela starý způsob popisy struktury XML dokumentů, ale stále se používá, takže se na to ještě podíváme.
Chci také podotknout, že toto skvělý způsob ukázat jak v XML probíhá kontrola obsah dokumentu, jeho gramatiku atd. Novější a pokročilejší způsob popisu struktury XML dokumentů pomocí XML technologie Na Schema se podíváme v příštím článku, ale nyní přejděme přímo ke studiu DTD XML.
V tomto článku se podíváme na několik důležité body. To je to, co XML DTD je a k čemu je potřeba, pojďme si promluvit o nevýhodách DTD a také se naučte, jak si samostatně sestavit vlastní DTD pro ověřování XML dokumentů. To vše, jako obvykle, bude prezentováno krok za krokem, co nejstručněji a nejjasněji, abychom ušetřili váš čas.
Tak začněme.
Co je DTD v XML a proč je potřeba?
Stručně řečeno, DTD v XML se používá ke kontrole gramatiky dokumentu a jeho souladu s normou (takou, se kterou přišel vývojář nebo vy sami). To umožňuje analyzátoru (procesoru) určit ve fázi zpracování, zda dokument splňuje naše požadavky. To znamená, že dokument XML je ověřen.
Potřeba zkontrolovat gramatiku dokumentů XML je následující:
- Dokument XML nemusí být určen pro váš systém.
- XML dokument může obsahovat nesprávná data.
- XML dokument může obsahovat chyby ve struktuře ().
Takže jsme přišli na to, co je XML DTD a proč je potřeba. Nyní se krátce podíváme na nevýhody DTD a poté přejdeme k samotnému procesu Tvorba DTD soubory pro ověřování XML dokumentů.
Nevýhody XML DTD
- Syntaxe jazyka odlišná od XML. To způsobuje mnoho problémů, jako jsou problémy s kódováním nebo nemožnost sledovat chyby.
- Žádná kontrola typu dat. V DTD je pouze jeden typ - řetězec.
- Neexistuje žádné DTD. K dokumentu nelze přiřadit dva nebo více popisů DTD.
Bylo krátký seznam Nedostatky DTD, které byly úspěšně opraveny v XML schématech, o kterých si povíme v následujících článcích.
Deklarace prvků, atributů a entit v DTD. Modifikátory „*“, „?“, „+“
Speciální deklarace a modifikátory se používají k deklaraci prvků, atributů a entit v DTD. Abychom vše dopodrobna pochopili, podívejme se nejprve na teoretické informace a poté ve druhé části článku přejdeme k praktickým příkladům.
Definování prvku XML a sekvence prvků XML
Prvek kniha obsahuje jeden prvek název, autor, cena a popis.
Alternativy prvků
Prvek ceník obsahuje prvky title, price a jeden ze tří prvků na výběr – autor, firma nebo vzorek.
Prázdné prvky
Element none musí být prázdný.
Deklarace atributů
Element pricelist může obsahovat dva atributy – atribut id a atribut name. V tomto případě je atribut id povinný, protože je zadáno #REQUIRED a atribut name je nepovinný (je zadáno #IMPLIED). CDATA zase indikuje obsluze, že není potřeba analyzovat obsah atributů.
Definování entit
Pokud je nalezena entita „“, bude místo ní automaticky nahrazen „Dmitrij Denisov“.
Modifikátory (vysvětlete opakování prvků)
* - nula nebo mnoho.
? – nula nebo jedna.
+ - jeden nebo více.
Prvek knihy může obsahovat jeden nebo více prvků knihy.
Nyní se podívejme, jak to celé vypadá, na dalších praktických příkladech.
Vytvoření souboru DTD pro ověření XML dokumentu na příkladu ceníku knih
Mějme stejný ceník knih, který používáme jako příklady v téměř každém článku o XML. Samotný XML dokument bude vypadat nějak takto.
Výše uvedený příklad samozřejmě není konečným snem, ale jako příklad poslouží. Jak můžete vidět z příkladu, máme ceník kořenového prvku, který obsahuje vnořené prvky knihy. Uvnitř prvků knihy jsou prvky název, autor, cena a případně popis, které mohou obsahovat některé textové údaje.
Pro ověření tohoto ceníku můžeme použít následující dokument DTD.
Nyní se na vše podíváme podrobněji.
- — deklarujeme knihy kořenového prvku a v závorkách uvedeme, co může obsahovat. V tomto případě může obsahovat jeden nebo více prvků knihy (znaménko plus znamená jeden nebo více, viz výše).
- — definovat prvek knihy. Prvek knihy může obsahovat jeden prvek názvu, jeden nebo více prvků autora (znaménko plus), jeden prvek ceny a jeden nebo žádný prvek popisu (otazník).
- — definovat prvek title. Jako obsah prvku zadáme #PCDATA. To znamená, že analyzátor musí analyzovat to, co je uvnitř tohoto prvku.
- Podobně definujeme prvky autor, cena, popis.
- — definujeme podstatu. Nejprve napíšeme samotnou entitu a poté v uvozovkách to, co se zobrazí na jejím místě. Ve výchozím nastavení jsou v XML definovány pouze 3 entity. Toto je více (">" -<), меньше («<» — >) a ampersand („&“ - &). Pokud chcete, můžete pomocí této metody vytvořit neomezený počet entit. Významy mohou být nejen slova, ale i celé věty významné délky.
Připojení DTD pro ověřování dokumentů XML
Deklarativní metoda
Tato metoda se používá velmi zřídka, protože její podstatou je vytvářet soběstačné dokumenty. To znamená, že dokument bude okamžitě obsahovat DTD i XML. Následující konstrukce se používá k přidání DTD do XML.
kde místo DOCUMENT označujeme kořenový prvek XML dokumentu.
Pro názornost se podívejme na příklad hotového soběstačného dokumentu s deklarativním způsobem zařazení DTD.
]>
Externí definice DTD - připojení dokumentu DTD
Podstatou této metody je připojení souboru DTD k dokumentu XML pomocí následující konstrukce.
kde DOCUMENT – označujeme kořenový prvek XML dokumentu.
file.dtd – odkaz na soubor DTD.
Pro jasnost zvažte následující příklad.
XML dokument
Tímto je tento článek uzavřen. Podívali jsme se na všechny hlavní body při práci s XML DTD a doufám, že se mi vše podařilo srozumitelně vysvětlit. Pokud si nechcete nechat ujít další XML a XSLT tutoriály, doporučuji se přihlásit k odběru newsletteru pomocí formuláře níže.
To je vše. Hodně štěstí a úspěchů při učení XML!
Použijte schémata XML namísto DTD k definování struktury dokumentů XML
XML Schema je výkonnější než DTD. Abychom ilustrovali výhody použití nástroje XML Schema, první tři výpisy porovnávají různé způsoby reprezentace prvků. Následuje výňatek z dokumentu XML. B ukazuje dva prvky deklarované v syntaxi DTD a B ukazuje syntaxi odpovídající schématu XML. Všimněte si, že syntaxe ve výpisu 3 je podobná syntaxi XML. Při použití schématu může validační analyzátor zkontrolovat, zda je prvek InvoiceNo kladné celé číslo a zda ProductID sestává z dané sady znaků (šest číslic a jedno písmeno od A do Z). Analyzátor zpracovávající definici DTD může pouze potvrdit, že dané prvky jsou řetězce.
Výpis 1: Fragment dokumentu XML
Výpis 2: Fragment DTD popisující prvky z Výpisu 1
Výpis 3: Fragment schématu XML popisující prvky z Výpisu 1
Použití jmenných prostorů ve schématu XML
Omezení DTD
Přestože DTD sloužily vývojářům SGML a HTML jako mechanismus pro popis strukturovaných informací již 20 let, mají DTD ve srovnání se schématy XML určitá omezení.
Podle DTD může být prvek reprezentován jedním ze tří způsobů:
- Textový řetězec
- Textový řetězec smíchaný s jiným podřízeným prvkem
- Sada dětí
DTD nemají syntaxi XML a nabízejí pouze omezenou podporu pro typy a jmenné prostory.
Při společné práci může jedna strana zpracovávat dokumenty ostatních stran a různé strany mohou své datové prvky zastupovat odlišně. Navíc v samostatném dokumentu mohou potřebovat nezávisle odkazovat na prvky se stejným názvem vytvořené různými stranami. Použití schématu XML umožňuje odlišit definice se stejným názvem definováním různých jmenných prostorů.
Takové schéma XML definuje sadu nových názvů, jako jsou názvy prvků, typů, atributů a skupin atributů, jejichž definice a deklarace jsou popsány ve schématu. Názvy jsou definovány jako InvoiceNo , ProductID a ProductCode .
Názvy definované ve schématu patří do tzv cílový jmenný prostor. Samotný jmenný prostor je pevný, libovolný název, který musí odpovídat syntaxi adresy URL. Například jmenný prostor pro schéma uvedené v , lze nastavit takto: http://www.SampleStore.com/Account.
Syntaxe pro deklaraci jmenného prostoru může být někdy matoucí. Deklarace začíná http:// , ale neodkazuje na soubor schématu. Ve skutečnosti odkaz http://www.SampleStore.com/Account nevede vůbec na žádný soubor, ale pouze na přiřazený název.
Definice a deklarace ve schématu mohou odkazovat na jména, která mohou patřit do jiných jmenných prostorů. V tomto článku odkazujeme na takové jmenné prostory jako: původní jmenné prostory. Každé schéma může definovat jeden cílový jmenný prostor a případně více zdrojových jmenných prostorů. Obecně platí, že každé jméno v daném schématu patří do určitého jmenného prostoru. Názvy jmenných prostorů mohou být poměrně dlouhé, ale lze je zkrátit pomocí syntaxe deklarace xmlns v dokumentu schématu XML. Všechny tyto pojmy jsou znázorněny v.
Výpis 4: Cílové a zdrojové jmenné prostory
Ve schématu XML reprezentovaném pomocí je jmenný prostor targetNamespace http://www.SampleStore.com/Account a obsahuje názvy InvoiceNo, ProductID a ProductCode. Názvy schéma , element , simpleType , pattern , string a kladné celé číslo patří do původního jmenného prostoru http://www.w3.org/1999/XMLSchema , který je zkrácen na xsd deklarováním xmlns . Na aliasu xsd není nic zvláštního, můžete si vybrat jiné jméno. Pro pohodlí a jednoduchost budeme ve zbývající části tohoto článku používat předponu xsd k odkazování na jmenný prostor http://www.w3.org/1999/XMLSchema, přičemž v některých částech kódu vynecháme kvalifikaci xsd. V našem příkladu je targetNamespace také jedním z původních jmenných prostorů, protože název ProductCode se používá v definici jiných jmen.
Obrázek 1: Jmenné prostory pro výpis 4
Výpis 5: Vícenásobné zdrojové jmenné prostory, import jmenných prostorů
Definování prvků
Definování prvku spočívá v definování jeho názvu a modelu obsahu. Ve schématu XML je model obsahu prvku určen jeho typem. Prvky v dokumentu XML proto mohou mít pouze hodnoty, které odpovídají typům definovaným v jeho schématu.
Jednoduché typy
Specifikace schématu XML definuje několik jednoduchých typů hodnot, jak ukazuje Tabulka 2 – předdefinované jednoduché typy hodnot.
Typ prvku může být jednoduchý nebo komplexní (komplexní). Živel jednoduchý typ nemůže obsahovat jiné prvky nebo atributy. Komplexní typ může mít za následek vkládání prvků do jiných prvků nebo může k prvku přidružovat atributy. Dosud jsme používali pouze příklady s jednoduchými uživatelsky definovanými typy (viz Kód produktu). Specifikace XML Schema také obsahuje předdefinované jednoduché typy (viz rámeček). Předdefinovaný jednoduchý typ Omezuje hodnoty na jejich základní typ. Například hodnota předdefinovaného jednoduchého typu ProductCode je podmnožinou hodnot základní typřetězec .
Jednoduché, nevnořené prvky mají jednoduchý typ
Prvku, který neobsahuje žádné atributy nebo jiné prvky, lze přiřadit jednoduchý typ, předdefinovaný nebo definovaný uživatelem, jako je řetězec, celé číslo, desítkové číslo, čas, Kód produktu atd.
Výpis 7: Některé jednoduché typy prvků
Prvky s atributy musí být komplexního typu
Nyní zkusme přidat jednoduchý prvek cena z atributu měny. Nebudete to moci udělat, protože prvek jednoduchého typu nemůže mít atributy. Pokud chcete přidat atribut, musíte definovat cenu jako prvek komplexního typu. V příkladu z , definujeme tzv anonymní typ, ve kterém komplexní typ nemá explicitní název. Jinými slovy, atribut name prvku complexType není definován.
Výpis 8: Prvek komplexního typu
Prvky obsahující vnořené prvky musí být komplexního typu
V dokumentu XML mohou být do prvku vnořeny další prvky. Tento požadavek je vyjádřen přímo v DTD. Schéma XML místo toho definuje prvek a jeho typ, který může zahrnovat deklarace dalších prvků a atributů. Příklad je uveden v.
Tabulka 1: Porovnání komplexních datových typů v DTD a XML Schema
XML dokument
DTD
Schéma XML
Výpis 10: Skrytí BookType jako místního typu
Vyjádření komplexních omezení na prvky
Schéma XML nabízí větší flexibilitu než DTD při vyjadřování omezení v modelu obsahu prvku. Na nejjednodušší úrovni, jako je DTD, můžete přiřadit atributy k prvku a také určit, že sekvence pouze jednoho (1), nula nebo více (*) nebo jednoho nebo více (+) prvků daného prvku prvek se v něm může objevit. Ve schématu XML můžete vyjádřit dodatečná omezení, pomocí například atributů minOccurs a maxOccurs na elementu elementu a choice , group a všech elementech pro tento účel.
Výpis 11: Výraz omezení pro typy prvků
Tag Title je volitelný s ohledem na tag Book (stejné pravidlo lze nastavit v DTD). Také však říká, že prvek Kniha musí mít alespoň jeden a ne více než dva prvky Autor. Výchozí hodnota atributů minOccurs a maxOccurs tagu prvku je 1. Element choice označuje, že se může objevit pouze jeden ze zadaných podřízených prvků. Další prvek all určuje, že vše podřízené prvky se může objevit pouze jednou, společně a v libovolném pořadí, nebo se nemusí objevit vůbec. B prohlašuje, že jak značky Title, tak Author, se musí objevit v Knize v libovolném pořadí, nebo se nemusí objevit vůbec. Taková omezení je obtížné vyjádřit pomocí DTD.
Výpis 12: Označení, že prvek musí mít definovány všechny typy
Shrnutí
V tento dokument Prostřednictvím jednoduchých příkladů jsme probrali nejzákladnější koncepty potřebné k definování struktury prvků pomocí schématu XML. K dispozici je také mnoho dalších výkonných mechanismů:
- Schéma XML poskytuje komplexní podporu pro dědičnost typů, což vám umožňuje znovu použít dříve definované struktury. Toto použití se nazývá aspekty. Můžete odvodit nové typy, které představují menší podmnožinu hodnot jiných typů, například definovat podmnožinu pomocí výčtu, rozsahu nebo shody vzoru. V jednom z příkladů v tomto článku byl typ ProductCode definován pomocí aspektu vzoru. V podtypu můžete také přidat nové prvky a atributy k základnímu typu.
- Několik mechanismů k ovládání obecná definice podtyp nebo jej nahraďte konkrétní dokument. Můžete například určit, že typ InvoiceType (typ čísla faktury) nemůže obsahovat podtypy, to znamená, že nikdo nebude schopen určit nová verze Typ faktury. Můžete také určit, že v konkrétním kontextu pro typ Kód produktu nemohou existovat substituce podtypů.
- Kromě použití podtypů je možné definovat ekvivalentní typy, to znamená, že hodnota jednoho typu může být nahrazena hodnotou jiného.
- Schéma XML poskytuje mechanismus pro nahrazení prvku nebo typu jeho prohlášením za abstraktní.
- Pro větší pohodlí můžete definovat a pojmenovat skupiny atributů nebo prvků. To umožňuje jejich opětovné použití v následujících hovorech.
- Schéma XML poskytuje tři prvky – appInfo, dokumentaci a anotace – pro použití komentářů jak lidmi (dokumentace), tak aplikacemi (appInfo).
- Můžete vyjádřit jedinečná omezení založená na určité atributy podřízené prvky.
Další informace o schématech XML lze získat z dokumentace na stránkách W3C (viz) a v zóně dW XML. Nyní, když byla specifikace XML Schema potvrzena jako kandidát na doporučení W3C, můžete ji s jistotou využít v plném rozsahu.