HOME > HOWTO > WEBCODINGHOWTO

XML - Značkovací metajazyk (5)

10. Červenec 2002, 00:00 (2962x zobrazeno)

Deklarace notace

V minulých dílech jsme se občas setkali s pojmem notace. Nyní si musíme tento pojem trochu více přiblížit. Někdy potřebujeme, aby XML dokument obsahoval data v jiném formátu. Tyto data může obsahovat buď element nebo entita. V obou případech se tak děje odkazem na jméno notace, které je definováno v deklaraci notace.

K deklaraci notace se používá klíčové slovo NOTATION, které je následováno jménem notace. Dále musíme určit aplikaci pro zpracování příslušných dat. To se děje identifikátorem externí notace, přičemž je možné použít veřejný i systémový.

<!NOTATION Spec SYSTEM "/home/user/specapl">

Je nutné si uvědomit, že minimální forma deklarace notace musí obsahovat alespoň systémový identifikátor s prázdnou hodnotou.

<!NOTATION Spec SYSTEM "">

Pokud předem neznáme umístění a jméno aplikace (například na Internetu), měli bychom používat veřejný identifikátor.

<!NOTATION Spec PUBLIC "-//Ja//NOTATION Spec//CZ" "/home/user/specapl">

Podmíněné sekce

V některých případech potřebujeme vytvářet alternativní modely DTD. To znamená, že za určitých podmínek bude DTD vypadat jinak než za jiných. K tomu nám slouží právě podmíněné sekce. Části DTD mohou být identifikovány jako samostatné segmenty. Pokud je segment označen, jeho obsah je skryt nebo naopak zobrazen pro zpracování XML. K označení slouží dvě klíčová slova a to INCLUDE a IGNORE.

Deklarace podmíněného segmentu je následující. Použijí se počáteční znaky deklarace <!, dále počáteční hranatá závorka, za níž následuje klíčové slovo a další hranatá závorka. Pak následují deklarace, které tvoří segment. Vše je ukončeno znaky ]]>. S touto konstrukcí jsme se seznámili již v sekci znakových dat (CDATA). Narozdíl od konstrukce CDATA je v podmíněných sekcích možné okolo klíčových slov libovolně vkládat mezery.

Chceme-li tedy využít podmíněné sekce, můžeme použít těchto dvou konstrukcí.

<![INCLUDE[
<!-- Toto bude zpracováno -->

]]>

<![IGNORE[
<!-- Toto nebude zpracováno -->
]]>

Velmi výhodné je pro vytvoření podmíněných sekcí použít entity. Princip je takový, že se vytvoří dvě entity. První bude zastupovat standarní stav a druhá stav alternativní. Změnou definice entity tak můžeme segmenty vložit či naopak vyjmout.

<!ENTITY % Standard "INCLUDE">
<!ENTITY % Alternate "IGNORE">

<![%Standard;[
    <!-- standardní segment -->

]]>

<![%Alternate;[
    <!-- alternativní segment -->
]]>

XML editory

Tímto bychom zakončili povídání o DTD. Na závěr bychom si ještě měl říci, v čem psát XML dokumenty. Existuje několik editorů XML, které podporují DTD (XML SPY, XML Writer, XXE a další). Záleží na každém, jaký editor bude používat. Já osobně preferuji editor známý především linuxářům a to Emacs a proto zde popíši práci právě s tímto editorem.

Emacs a XML

Budu předpokládat, že máte Emacs nainstalován. Nyní záleží na verzi Emacsu. Nejnovější verze je 21, která má již podporu PSGML, kterou musíme doinstalovat pokud používáme verzi starší. Stáhnout si jej můžete zde. Nyní již můžeme psát XML dokumenty, ovšem ne v unicodu. Podporu unicodu (Mule-UCS) si musíte nainstalovat i v 21. Po instalaci musíte ještě do souboru .emacs napsat:

(require 'psgml)
(require 'un-define)

Nyní vám již nic nebrání v pořizování XML dokumentů.. Stačí jen otevřít nový soubor, napsat deklaraci dokumentu a deklaraci typu dokumentu.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root SYSTEM "/umístění/moje.dtd">

Nyní necháme DTD projít parserem, tj. buď klávesová zkratka C-c C-p, nebo v menu: DTD->Parse DTD. Poté, pokud je DTD validní a dobře formované, se automaticky vygenerují všechny povinné elementy a atributy. Pokud chceme přidat element, najedeme kurzorem na místo, kde má být element vložen a klávesovou zkratkou C-c C-e (menu: Markup->Insert Element) vložíme element. Tímto způsobem lze vložit jen element, který je v této části dokumentu přípustný podle DTD, doporučuji používat tabulátor.. Chceme-li vložit atribut, najedeme kurzorem na určitý element a C-c + (menu: Markup->Insert Atribute) vložíme určitý atribut.

Osobně se domnívám, že Emacs je pro psaní XML dokumentů velmi vhodný. Tímto způsobem napřiklad můžeme psát i (x)html dokumenty. Stačí jen stáhnout DTD.

Tímto dílem jsme zakončili povídání o struktuře XML dokumentů a v příštích dílech se konečně začneme zabývat něčím zajímavějším, například tím jak se dají XML dokumenty zobrazovat v prohlížečích, jak se dají převádět na jiné formáty, či programovým zpracováním XML dokumentů. Mohli bychom také vytvořit nějaké konkrétní DTD, na kterém bychom si ukazovali všechny možné techniky. Máte-li zájem, tak napište na můj email či do komentářů vaše nápady. Může to být například nějaký katalog, či kniha či úplně něco jiného.

autor: David Sivek

Líbil se vám článek?

Tento článek ještě nebyl hodnocen.12345

Přidejte si článek do oblíbených

Linkuj.cz ico linkuj.czdel.icio.us icodel.icio.usrss icorss - HOWTOrss icorss - HOWTO > WEBCODING

Související články

Komentáře

HACKER SITES  SEZNAMKA PRAHA  LUHILL DESIGN WEAR  STREET Wear LuHill PRAGUE  www.czfree.net  Hack This Page  RYCHLE RANDE V PRAZE  DETSKA SKOLKA - STODULKY - PRAHA 13  www.BASTARDSERVERS.com  DEBIAN GNU LINUX 
www.blackhole.cz  www.linux.sk  www.abclinuxu.cz  www.underground.cz  www.zi.cz  SEZNAMKY PRAHA - RYCHLORANDE  www.linuxzone.cz  www.root.cz  www.penguin.cz  www.krypta.cz 
HACKER T SHIRTS  RYCHLE SEZNAMOVANI  HELL toplist  www.BASTARDSERVERS.com  G$BIT SERVERS  geek music  www.soom.cz  TRICKA A MIKINY PRAHA  HackThisPage  BABBY SITTING - BABY DAY CARE- PRAHA 13 
GEEK T-SHIRTS  BABYSITTING PRAHA 13  photopost.cz  apsara.cz  RANDIX HLIDANI DETI V PRAZE  sport, outdoor, cyklo obchod  dfklub.cz  www.zi.cz  Moderni seznamovaci agentura RANDIX  DETI - HLIDANI