OZ 2004/2

M 67 ORGANIZACIJA ZNANJA 2004, LETN. 9, ZV. 2 POROČILO XPath, XSLT, XQuery Osnova specifikacij XPath 2.0, XSLT 2.0 in XQuery 1.0 je novi podatkovni model, definiran v specifikaciji XQu- ery 1.0 and XPath 2.0 Data Model [44]. Novost je tudi skupen sistem podatkovnih tipov, ki je prevzet iz specifi- kacije XML Schema Part 2: Datatypes [17]. To omogoča uporabo primitivnih podatkovnih tipov iz sheme XML ( integer , double , string , boolean , date , any- URI , QName , hexBinary itd.), izpeljanih prostih tipov ( derived simple types ) in tudi uporabniško definiranih tipov [59]. Množice vozlišč ( node-sets ) iz starega po- datkovnega modela so v novem podatkovnem modelu zamenjane z zaporedji ( sequences ), ki vsebujejo iteme . Item je lahko vrednost atoma (atomic value ) ali vozlišče ( node ), ki ni zaporedje ( sequence ) – element , att- tribute , comment , processing-instruction , text , document , namespace . To je omogočeno z eksplicitno deklaracijo podatkovnih tipov, ker implicitna konverzija tipov ni več možna. Posledica tega je 99-od- stotna kompatibilnost dokumentov XSLT, kreiranih po specifikaciji 1.0, z novo specifikacijo. Novosti v teh specifikacijah je na predkonferenci XSLT 2.0 and XPath 2.0 podrobneje predstavil Michael Kay, ki je avtor specifikacije XSLT 2.0 in eden od avtorjev spe- cifikacije XPath 2.0. Michael Kay je tudi avtor XSLT in XQuery procesorja Saxon [60]. Saxon 7.x že podpira te novosti, kot tudi Oracle v beta verziji. Apache je za Xalan najavil, da bo spremembe podprl, Microsoft pa se ni ob- vezal. Na konferenci je Michael Kay imel še en prispevek XSLT and XPath Optimization , v katerem je opisal glavne tehnike, uporabljene pri procesorju Saxon za optimizacijo obdelave predlog XSLT in izrazov XPath jezika. Tehniki optimizacije za procesorja XSLT 2.0 in XSLT 1.0 se v bistvu ne razlikujeta, čeprav procesor XSLT 2.0 obdeluje tudi informacije vezane na shemo, ker procesor XSLT 1.0 že zdaj upošteva podatkovne tipe pri transformacijah (implicitna deklaracija podatkovnih tipov). Razen podatkovnega modela in podatkovnih tipov so novosti tudi v funkcionalnosti. V XPath 2.0 je dosti novih operacij, relacij in funkcij (število funkcij je s 25 naraslo na več kot 100), ki  podpirajo obogateno množico poda- tkovnih tipov. Sintaksa jezika XSLT 2.0 se je povečala za dvakrat, njegova funkcionalnost pa celo za desetkrat. Najpomembnejše nove možnosti so: • razvrstitev niza elementov v hierarhije elementov z ukazom for-each-group po sortnem ključu ( group-by ), skupni lastnosti ( group-adja- cent ) ali po začetnem/končnem elementu v skupini ( group-starting-with , group-ending- with ); • uporaba regularnih izrazov ( regular expressions ), ki bazirajo na sintaksi izrazov iz jezika XML Schema in Perl, v funkcijah matches() , replace() in tokenizer() iz jezika XPath, in v ukazu ana- lyze-string , ki je uporaben pri kreiranju novih elementov in pri konverziji nestrukturiranih besedil v format XML (na primer, <xsl:analyze-string select=”abstract” regexe=”\[.*?\]”> ); • definicija funkcij z ukazom function , podo- bno kot definicija imenovanih predlog template , s to razliko, da funkcije lahko prikličemo tudi iz izrazov XPath, pri čem so argumenti in rezultat deklarirani po tipu (na primer, <xsl:func- tion name=”prefix-length” as=”xs: integer”><xsl:param name=”in” as=”xs:string”> ); • obdelava glede na shemo XML z ukazom import- schema , ki omogoča uporabo tipov, definiranih v shemi, in validacijo rezultatov transformacije. Po dokumentih XML je možno iskati na več načinov. Eden od načinov je s procesorjem XSLT, ki dela z raz- hroščevalnikom DOM. Razhroščevalnik DOM za obde- lavo dokumentov XML potrebuje približno desetkrat več prostora, kot je velikost samega dokumenta, kar je lahko problem pri velikih dokumentih. Zato se XSLT uporablja bolj za manjše dokumente, XQuery pa za povpraševanje po večjih dokumentih XML. XQuery omogoča iskanje tudi po nestrukturiranih in delno strukturiranih podatkih in relacijskih in objektnih bazah podatkov. Nekateri pro- izvajalci programske opreme za relacijske baze podatkov uporabljajo XQuery za prikaz relacijskih podatkov v formatu XML. V okviru jezika SQL 2003 za iskanje po relacijskih bazah podatkov je definiran modul SQL/XML [61], ki omogoča prikaz najdenih podatkov v formatu XML. Jonathan Robie, ki je eden od avtorjev specifikacij DOM 1, DOM 2 in XQuery 1.0, je v prispevku SQL/ XML, XQuery, and Native XML Programming Languages opisal razlike med jezikoma XQuery in SQL/XML in njuno uporabo. Za učinkovito iskanje po velikih dokumentih XML z iz- razi jezika XPath je Mark Scardina iz Oracle Corporation v prispevku High-Performance XML Data Retrieval predstavil njihovo orodje XML Extractor, ki uporablja razhroščevalnik SAX. Razhroščevalnik SAX zaporedno obdeluje elemente v dokumentu XML in jih ne shranjuje v spominu kot razhroščevalnik DOM in je zato primeren za večje dokumente. Odprta arhitektura orodja omogoča njegovo enostavno vključevanje v aplikacije za upravlja- nje vsebine, spletne storitve in v procesorje XQuery in XSLT.

RkJQdWJsaXNoZXIy MTAxMzI5