Amara XML Toolkit
V průběhu ledna Uche Ogbuji představil v diskusní skupině XML-DEV a na serveru xml.com svou sadu doplňků pro práci s XML v jazyce Python zvanou Amara XML Toolkit. Amara vychází ze základní pythonové sady nástrojů pro XML 4Suite, ale zatímco 4Suite se zaměřuje na striktní implementaci standardů XML v Pythonu, Amara usiluje o co nejpřirozenější práci s XML s využitím všech předností a typických rysů jazyka Python. Amara tedy zapadá do trendu integrace XML do konkrétních programovacích jazyků, o kterém už jsem v loňském roce na těchto stránkách psal (ECMAScript,PHP).
Hlavními součástmi Amary jsou Bindery (vazba dokumentů XML na pythonové objekty, dříve samostatný projekt Anobind), Scimitar (implementace validačního jazyka Schematron), domtools a saxtools (utilitky pro usnadnění práce s rozhraními DOM a SAX) a Flextyper (implementace jazyka DTLL pro definici datových typů pro XML).
Zůstanu-li u stejného elementátrního příkladu jako pro ECMAScript, pak pro přečtení jména zákazníka z tohoto souboru customer.xml
<customer> <name>Jan</name> <surname>Novák</surname> </customer>
můžu použít následující kód v Pythonu:
from amara import binderytools customer = binderytools.bind_file('customer.xml') print customer.name
find a XPath
Integrace XML s vyššími programovacími jazyky sotva může někoho překvapit, ale pronikání technologií XML do rigidního světa unixového příkazového řádku stojí za bližší pohled. Oleg Paraschenko v XML-DEV oznámil dostupnost standardní unixové utility find s podporou výrazů XPath. Tento find zachází se souborovým systémem jako s virtuálním dokumentem XML; adresáře a soubory jsou uzly a jejich vlastnosti atributy.
Takto si například můžete nechat vrátit seznam všech souborů z adresáře /bin, které jsou větší než bash:
$ ./find -xpath '/bin/*[@size > /bin/bash/@size]'
Možná je to trochu úchylné, ale pokud budeme uvažovat o jazyku XPath jako o nástroji pro navigaci po stromové struktuře, tak proč ne? Paraschenko vyhrožuje, že chce přidat XPath do dalších céčkových programů, třeba jeho výtvory proniknou do běžných linuxových distribucí.
Specifikace
W3C v lednu nepřišlo s ničím z mého pohledu příliš zajímavým. Za zmínku stojí snad jen poznámka Extending XLink 1.0 pracovní skupiny XML Core, svědčící o záměru nevzdávat se zatím nepříliš úspěšného standardu XLink a vypracovat jeho verzi 1.1.
Rovněž verzi 1.1, ale tentokrát mnohem úspěšnějšího syndikačního jazyka RSS, ohlásiljménem nezávislé skupiny vývojářů Sean B. Palmer. RSS 1.1 je vylepšenou verzí RSS 1.0, patří tedy k vývojové větvi RSS založené na XML a RDF, jež konkuruje původní, méně striktní řadě verzí RSS 0.9 a 2.0. Verze 1.1 nepřináší velké změny, pouze opravuje chyby, upřesňuje a doplňuje specifikaci RSS 1.0.
Současně s novou verzí specifikace je uvolněna sada nástrojů pro RSS 1.1, včetně validátoru, konvertorů na jiné verze RSS a implementací aktualizovaného syndikačního formátu pro rozšířené publikační systémy. Odkazy na tyto nástroje se nacházejí v příručce Guide to RSS 1.1.