Hlavní navigace

Akta X 0501

Petr Cimprich

Amara není jen limonáda podezřelé chuti z dob mého mládí, ale také sada nástrojů pro intuitivní práci s XML v Pythonu. Unixový find se učí XPath. Pestrou mozaiku soupeřících verzí syndikačních formátů doplňuje RSS 1.1.

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.

Našli jste v článku chybu?