XML - DTD (definice typu dokumentu) část čtvrtá - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Web

XML - DTD (definice typu dokumentu) část čtvrtá

22. února 2001, 00.00 | Dnes si vysvětlíme co jsou entity, k čemu se
dají využít a jak je správně deklarovat v DTD.

Vítám vás u dalšího dílu seriálu o XML. Dnes si vysvětlíme co jsou entity, k čemu se dají využít a jak je správně deklarovat v DTD.

Při psaní XML dokumentů nastávají situace, kdy není vhodné celý dokument uložit do jednoho souboru. Důvodů k rozdělení na menší části může být mnoho, například když píšeme knihu a její jednotlivé kapitoly chceme mít pro přehlednost uloženy zvlášť, nebo když jednotlivé kapitoly knihy píše více autorů. Důvodem může být také potřeba použití části dokumentu v jiných dokumentech atd. Jak sami vidíte, příkladů využití se najde mnoho.

XML umožňuje informace obsažené v dokumentu rozdělit na menší části, kterým se říká entity. Každá entita má své jméno, pomocí kterého může být jednoznačně identifikována. XML podporuje několik druhů entit, které se liší svými vlastnostmi. Entity mohou obsahovat buď data ve formátu XML nebo v jiném formátu. Podle toho je dělíme na entity textové (formát XML) a entity binární (ostatní datové formáty). Dále můžeme entity rozlišovat podle toho, zda jsou uloženy přímo v hlaním dokumentu nebo v externím souboru. Podle tohoto rozlišení máme entity interní textové, externí textové a externí binární. Myslíte si, že jsem zapoměl na interní binární entity? Není tomu tak, interní binární entity neexistují, protože bychom velice těžko uložili nějaká binární data do XML dokumentu.

Entita je definována v DTD a do dokumentu se vkládá pomocí odkazů na požadovanou entitu. V textu může být použito několik odkazů na stejnou entitu a její obsah nahradí každý výskyt odkazu. U deklarací entit je jedno, zda jsou umístěny v lokálním či externím DTD dokumentu. Obecná deklarace vypadá následovně:

<!ENTITY "název entity" ...>

Takto definovanou entitu pak můžeme v textu použít pomocí odkazu, který má tvar:

& "název entity";

Nyní si rozebereme jednotlivé druhy entit:

1. INTERNÍ TEXTOVÉ ENTITY

Tento drun entit nalezne uplatnění především tam, kde v dokumentu často opakujeme nějaký text. Představme si například, že píšeme recenzi nějaké knihy a v textu se často opakuje jméno autora, tak toto jméno můžeme nahradit entitou, kterou budeme vkládat do textu místo opisování celého jména. Dokument by v tom případě mohl vypadat např. takto:

<?xml version="1.0" encoding="windows-1250"?>
<!DOCTYPE recenze [
<!ENTITY autor "prof. Dr. Venca Pivrnec">
]>

<recenze>
  <kniha>Jak se stát správným pivařem</kniha>
  <podtitul>Příručka pro začátečníky</podtitul>
  <autor_knihy>&autor;</autor_knihy>
  <text>&autor; v této knize popisuje všechny aspekty správného pití piva.
         Dále se zde zaměřuje na správné plánování chození do hospody, tak
         aby manželka nic nepoznala. Kniha ,Jak se stát správným pivařem, je 
         velice zdařilým titulem, &autor; zde uvádí spoustu návodů i příkladů
         z vlastního života.
         ...
  </text>
</recenze>

2. EXTERNÍ TEXTOVÉ ENTITY

Princip použití externích textových entit je totožný jako u interních. Na rozdíl od interních entit však při jejich deklaraci nespecifikujeme přímo text, jenž entita zastupuje, ale pouze odkazujeme na soubor, který požadovaná data obsahuje. Používání tohoto druhu entit je výhodné především při vkládání dlouhých textů, nebo když jednu entitu chceme použít ve více dokumentech. Obecná deklarace v DTD vypadá následovně:

<!ENTITY "název entity" SYSTEM "URL souboru s textem">

URL souboru může být relativní nebo absolutní, to už záleží na vašem uvážení. Na takovouto entitu se v dokumentu odkazuje stejně jako na entity interní v předcházejícím příkladu. Slovo SYSTEM je systemový identifikátor, který upozorňuje že se zde nachází URL adresa externího souboru.

3. EXTERNÍ BINÁRNÍ ENTITY

Deklarace binárních entit je obdobná jako externích entit textových. Za systémovým identifikátorem (SYSTEM) je však potřeba uvést typ dat binární entity. Pomocí tohoto typu (tzv. notace) aplikace pozná, jak má s uvedenými daty naložit. Deklarace může vypadat např. takto:

<!ENTITY obrazek SYSTEM "/pictures/obrazek.gif" NDATA "GIF">

V příkladě jsme deklarovali entitu obrazek, která odpovídá soubou obrazek.gif, jenž je umístěný v adresáři pictures. Aplikace zpracovávající dokument může odhadnout formát dat podle uvedené přípony souboru, ale to není vždy spolehlivé, a proto se typ dat udává v uvozovkách za klíčovým slovem NDATA. Takto definovanou entitu nelze vložit přímo do textu dokumentu. Můžeme na ní ale odkázat pomocí atributu, který má typ ENTITY nebo ENTITIES:

Rozsáhlost tohoto komplexu je vidět na následujícím nákresu <picture name="obrazek"/>.

Tímto příkladem se s vámi loučím a u dalšího dílu seriálu o XML se těším nashledanou.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Web  

 » Rubriky  » HTML  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: