XML a databáze – pokročilé konstrukce XML-QL
Je to už nějaká doba, kdy se na Interval.cz objevil poslední článek o XML. Jazyk XML se neustále rozvíjí a s jeho použitím se dnes setkáváme stále častěji. Připravil jsem si pro vás zajímavý článek o tom, jak můžete s běžným XML dokumentem pracovat jako s databází. Seznámím vás se základy dotazovacích jazyků nad XML, a to zejména s jazykem XML-QL. Uvidíte, že nejde o nic těžkého a že příklady si budete moci sami vyzkoušet.
XML dokumenty cestovní kanceláře
Pro účely tohoto článku zadefinuji jednoduchý XML dokument, který bude zachycovat jednoduchou databázi klientů cestovní kanceláře. O každém klientovi si budu evidovat jeho jméno, příjmení, adresu, telefon, e-mail, číslo a jméno zájezdu, na který se přihlásil. Jednoduché DTD (o základech XML jste se mohli na Interval.cz dočíst zde) modelující tuto situaci bude vypadat v souboru zajezd.dtd takto:
|
Následuje jednoduchý XSL dokument, který definuje vzhled zobrazení adresáře např. v prohlížeči (který ovšem umí interpretovat XML). Soubor zajezd.xsl definuje, jak se jednotlivé části XML dokumentu „dosadí“ do struktury HTML stránky. V našem případě vytvoří seznam seznamů (tj. využití <OL> a <UL>).
|
Nyní mám připravené oba základní důležité soubory – jeden popisuje logickou strukturu (tj. datový model – databázi) a druhý popisuje vzhled, jak se data z databáze zobrazí. Třetím souborem jsou vlastní data, tedy databáze. Její obsah je uložen v souboru zajezd.xml:
|
V souboru jsou uloženi celkem 3 klienti cestovní kanceláře. Nad tímto souborem budu demonstrovat použití dotazovacího jazyka.
Dotazovací jazyky nad XML
Dotazovacích jazyků nad XML je celá řada. Liší se od sebe stupněm propracovanosti a zejména vyjadřovací silou. Dotazovací jazyk nad XML daty by měl splňovat několik požadavků, aby měl vůbec rozumnou šanci se uchytit a být používán. Zejména by měl být zaručen mocný přístup ke strukturovaným datům podobně jako v dosud zavedeném SQL, dále možnost vyhledávání pomocí klíčových slov a použití uživatelem definovaných funkcí, které umožní např. generovat automaticky určité části dokumentů, apod.
Příklady dotazovacích jazyků mohou být např. XSL, který v oblasti dotazování má slabší vyjadřovací sílu a spíše se používá pro definici vzhledu zobrazení XML dat. Dalšími jazyky jsou XML-QL, XQL, X2QL. Na přední místo bych právě dal jazyk XML-QL (XML Query Language), který je již docela propracován a v němž je vidět realizace uvedených požadavků na dotazovací jazyky.
XML-QL
Sami uvidíte, že tvorba dotazů v XML-QL je velice jednoduchá a že je trochu blízká SQL. XML-QL dotaz se skládá ze dvou základních částí: první část – dotazovací – specifikuje vlastní dotaz a druhá část – konstrukční – definuje strukturu vrácených dat, která splnila podmínky dotazu. Na následujících příkladech se pokusím vysvětlit jednoduché použití jazyka XML-QL.
Příklady
První příklad: chceme e-mailovou adresu Jaromíra Skřivana:
|
Odpověď na tento dotaz bude následující:
|
V části where se zapíšou XML značky přesně tak, aby odpovídaly XML značkám v základním dokumentu. Selekci podle hodnoty nějakého tagu provedeme tak, že tag s obsahem zapíšeme. Naopak, hodnoty, které chceme dotazem vrátit, zapíšeme její tagy a mezi ně uvedeme nějakou tzv. vazební proměnou, která je tvaru $identifikátor. Na tuto vazební proměnnou se pak odkazujeme v části construct. Všechny tagy samozřejme se musí zapsat párově. Není třeba uvádět všechny tagy, ty hodnoty, které nás nezajímají, jednoduše neuvedeme. Za posledním uzavíracím tagem v části where následuje klíčové slovo in, za nímž je uveden název XML souboru, ze kterého se budou brát data.
Druhý příklad je už složitější. Chceme jména a příjmení všech klientů, kteří pojedou do Dolomit:
|
Oproti předchozímu je rozšířena část construct. Nemusí se nutně vracet jenom hodnoty prostřednictvím vazebních proměnných, ale můžeme vracet stejnou nebo dokonce i jinou XML strukturu. Tento dotaz nám vrátí dva XML záznamy, konkrétně
|
které lze dále jakýmkoliv způsobem strojově zpracovat. Tyto dva uvedené příklady představují dotazy typu „porovnávání vzorků“. Tyto dotazy představují nejjednodušší použití XML-QL. Abyste si tyto příklady mohli vyzkoušet potřebujete mít nainstalovaný XML-QL interpret, který si můžete stáhnout např. na stránkách reseach.att.com.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
10 nejpopulárnějších programovacích jazyků a jejich využití
9. listopadu 2023 -
Nejlevnější VPS: To je nový Cloud Server Mini od ZonerCloud
4. června 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024