Hlavní navigace

Akta X 0501

Petr Cimprich 7. 2. 2005

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?

7. 2. 2005 10:18

To je naprosto genialni napad pridat XPath do findu. Vyradrovaci schopnosti XPath jsou o nekolik radu lepsi nez to ceho je schopen bezny find za pomoci prepinacu prikazove radky.

7. 2. 2005 7:22

Ten XPath ve findu je uzasny napad. Pokud by v tom slo dobre pracovat i s obsahem souboru [@content='^Date:\t$'] tak jsem ochoten casem zapomenout na grep 8-)
Dockame se taky doby, kdy si budeme delat poradek ve svych souborech pres XSLT?
Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí