Podpora XML výstupu

14
Úno/10
52

Vyspělé databázové systémy umožňují vracet výsledky SQL dotazů nejen jako klasické výsledkové sady, ale i jako XML. Proto jsem do programu SQL Výuka doplnil podporu pro vypisování XML.

Použití je jednoduché: pokud chcete vypsat XML, napište dotaz tak, aby vracel jeden sloupeček a ten se jmenoval pouze_xml. Výstupem potom nebude obvyklá tabulka, ale výsledek dotazu se vypíše do elementu <pre/>, tudíž se zachováním odsazení řádků.

SELECT query_to_xml(
	'SELECT * FROM tabulka;',
	true, 
	false, 
	'http://sql-vyuka.cz/xmlns/pokus1')
AS pouze_xml;

Dokumentaci k PostgreSQL najdete zde: XML Functions.

Ptáte se k čemu je to dobré? XML výstup z databáze vám může pomoci zjednodušit vaši aplikaci a zkrátit řetězec transformací, kterými data musí projít, než se dostanou z databáze k uživateli. Tento přístup není použitelný vždy, lépe řečeno, je použitelný spíše výjimečně – ale je dobré o něm vědět.

Někdy je totiž nadbytečné převádět data z databáze na objekty a následně z objektů zase generovat XML. Typicky:

databáze → DAO/ORM (převod na objekty) → aplikační vrstva → prezentační vrstva (převod na XML – XHTML, ATOM, RSS, ISDOC…)

Celý proces můžete výrazně zkrátit:

databáze generující XML → XSLT transformace (převod na požadovaný výstupní XML formát)

Aplikace se pak smrskne na vykonavatele XSLT šablony a práci s objekty si můžeme odpustit – celou dobu se pohybujeme ve světě XML.