Hlavní navigace

Akta X 0501

7. 2. 2005
Doba čtení: 2 minuty

Sdílet

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.

skolení ELK

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.