• Nebyly nalezeny žádné výsledky

3.2 XPath

XPath9, standard W3C velice u´zce propojeny´ se standardem XSLT, umozˇnˇuje vybı´rat cˇa´sti XML dokumentu pomocı´ jednoduchy´ch vy´razu˚. XML dokument je prˇitom mozˇne´ si prˇedstavit jako stromovou strukturu, kde jednotlive´ ele-menty, atributy i text jsou cha´pa´ny jako uzly stromu [18].

Nova´ verze XPath 2.0, ktera´ je teˇsneˇ prˇed schva´lenı´m standardizacˇnı´m orga´-nem, nabı´zı´ mnoho mozˇnostı´, ktere´ ve verzi 1.0 chybeˇly nebo byly do programu˚

prˇida´ny proprieta´rneˇ. Obeˇ dveˇ verze jsou sice popsa´ny jako: „jazyk pro adreso-va´nı´ cˇa´sti XML dokumentu“, ale plneˇ to vystihuje pouze verzi 1.0. Lepsˇı´ popis verze 2.0 by byl: „jazyk pouzˇı´vajı´cı´ vy´razy pro zpracova´nı´ sekvencı´ s vestaveˇ-nou podporou dotazova´nı´ XML dokumentu˚“. Tı´m se cˇa´stecˇneˇ dosta´va´ na pole pu˚sobnosti XQuery10. To vsˇak nenı´ na´hoda, protozˇe XPath 2.0 opravdu z velke´

cˇa´sti prˇevzal vlastnosti, ktere´ byly pu˚vodneˇ sepsa´ny pro XQuery 1.0 [11].

Jednou z novinek je rozsˇı´rˇenı´ pouzˇitelny´ch datovy´ch typu˚ – seznam ob-sahuje vsˇechny za´kladnı´ typy zna´me´ z XML sche´mat. Je tak mozˇne´ pouzˇı´t typy jako je rˇeteˇzec, datum, URI atd. – toho se s vy´hodou vyuzˇije ve funkcı´ch pro operace s typy. Dalsˇı´ du˚lezˇitou novinkou je, zˇe vsˇe, co XPath 2.0 vracı´, je sekvence. Tyto sekvence je da´le mozˇno zpracova´vat pomocı´ nove´ho cyklufor.

Noveˇ je take´ mozˇne´ vyuzˇı´t v jiny´ch jazycı´ch beˇzˇny´ prˇı´kaz pro podmı´nku if ...

then ... else ... .

Dalsˇı´ch novinek, ktere´ prˇisˇly s verzı´ XPath 2.0 a rozhodneˇ stojı´ za pozornost, je cela´ rˇada. Pro dalsˇı´ informace je vhodne´ si prostudovat standard na stra´nka´ch W3C [6] a prˇı´padneˇ cˇla´nky o tomto standardu, ktery´ch je na internetu k nalezenı´

cela´ rˇada.

9XPath – XML Path Language

10XQuery – XML Query Language

Kapitola 4 TMAPI

TMAPI1 je programovacı´ rozhranı´ pro prˇı´stup k datu˚m ulozˇeny´m v mapeˇ te´mat, a manipulaci s nimi. Hlavnı´m du˚vodem pro jeho vznik byl fakt, zˇe existovaly ru˚zne´ komercˇnı´ i nekomercˇnı´ procesory a aplikace schopne´ pracovat s mapami te´mat, nicme´neˇ neexistovala mezi nimi zˇa´dna´ kompatibilita. Ten, kdo chteˇl ve sve´ aplikaci prˇejı´t z jednoho procesoru na jiny´, musel prˇepsat velkou cˇa´st ko´du. Cı´lem projektu TMAPI se tak stalo, by´t pro mapy te´mat tote´zˇ, co SAX2 a DOM3 znamena´ pro XML – poskytnout jednotne´ API, ktere´ budou vyuzˇı´vat vsˇichni programa´torˇi [27].

Obra´zek 5.Ontopia Knowledge Suite – hlavnı´ menu pro pra´ci s Topic Maps

Specifikace TMAPI definuje sadu klı´cˇovy´ch rozhranı´, ktera´ musı´ by´t apli-kacı´ implementovana´ a sadu rozsˇirˇujı´cı´ch rozhranı´, ktera´ mu˚zˇe by´t implemen-tovana´. Pro zjisˇteˇnı´, jake´ funkce dany´ procesor podporuje, je mozˇne´ zavolat k tomu urcˇenou funkci. Tı´m by meˇlo by´t zarucˇeno, zˇe jednotlive´ TMAPI imple-mentace budou navza´jem zameˇnitelne´ bez za´sadnı´ho za´sahu do zdrojove´ho ko´du aplikace.

1TMAPI – Topic Maps Application Programming Interface

2SAX – Simple API for XML

KAPITOLA 4. TMAPI

Velkou vy´hodou tohoto rozhranı´ je, zˇe bylo vytvorˇeno hromadneˇ lidmi (open process), kterˇı´ pracovali na vy´voji aplikacı´ pracujı´cı´ch s mapami te´mat, a je ve verˇejne´m vlastnictvı´. Jsou tak splneˇny vsˇechny prˇedpoklady pro to, aby rozhranı´ bylo kvalitnı´ a nebyla vytvorˇena zˇa´dna´ umeˇla´ omezenı´ jeho pouzˇitı´.

To a jeho kvalitnı´ podpora mu zajistily pomeˇrneˇ znacˇne´ rozsˇı´rˇenı´. Existujı´ sice alternativnı´ API pro prˇı´stup k mapa´m te´mat, nicme´neˇ aplikace nabı´zejı´cı´ toto alternativnı´ API veˇtsˇinou za´rovenˇ umozˇnˇujı´ pra´ci v TMAPI kompatibilnı´m rezˇimu.

TMAPI je popsa´no jako objektovy´ na´vrh rozhranı´ pro pra´ci s mapami te´-mat. Jeho implementace je tedy nejobvyklejsˇı´ v Javeˇ, ale existujı´ i implemen-tace v PHP nebo Pythonu. Protozˇe ne vsˇechny programovacı´ a skriptovacı´

jazyky nabı´zejı´ mozˇnost objektove´ho prˇı´stupu nebo nejsou prima´rneˇ urcˇeny pro grafickou interakci s uzˇivatelem (XSLT je toho nejlepsˇı´m prˇı´kladem), mu˚-zˇeme se setkat s implementacemi, ktere´ jsou oproti na´vrhu upravene´ pro ru˚zna´

prostrˇedı´. Ota´zkou je, zdali je pak jesˇteˇ mozˇne´ tvrdit, zˇe se jedna´ o TMAPI kompatibilnı´ rozhranı´.

Nejzna´meˇjsˇı´ implementace jsou pravdeˇpodobneˇ TM4J4 a OKS5. Zajı´mave´

je, zˇe obeˇ nabı´zejı´ nejen TMAPI, ale take´ vlastnı´ API pro pra´ci s mapami te´mat.

TM4J – Topic Maps for Java – je nekomercˇnı´ software, je zameˇrˇen hlavneˇ na poskytnutı´ API pro programa´tory a nema´ vlastnı´ graficke´ rozhranı´. OKS – Ontopia Knowledge Suite – je komercˇnı´ software, ktery´ nabı´zı´ jak samotne´

API, tak pomeˇrneˇ dobrˇe zpracovane´ prostrˇedı´ pracujı´cı´ ve webove´m prohlı´zˇecˇi umozˇnˇujı´cı´ pra´ci s mapami te´mat, viz obra´zky5.a3..

TMAPI je rozdeˇleno na trˇi hlavnı´ skupiny trˇı´d – core, index a exceptions.

V teˇchto trˇı´da´ch jsou jak funkce pro cˇtenı´ z mapy, tak pro za´pis do mapy te´mat.

Coredefinuje datovy´ model TMAPI a rozhranı´ pro pra´ci s mapami te´mat.Index popisuje za´kladnı´ rozhranı´ pro seznamy vytvorˇene´ z dat obsazˇeny´ch v mapeˇ.

Exceptionsdefinuje vy´jimky, ktere´ majı´ by´t vyvola´ny prˇi chybeˇ prˇi pra´ci s ma-pou. Graficky´ na´vrh rozhranı´ TMAPI je v prˇı´loze 1. Jsou na neˇm zobrazeny jednotlive´ trˇı´dy a vza´jemna´ za´vislost jejı´ch komponent. Cˇa´st rozhranı´ imple-mentovana´ v te´to pra´ci bude popsa´na v dalsˇı´ch kapitola´ch.

Dobrˇe navrzˇene´ rozhranı´ pro pra´ci s mapami te´mat nebo i jaky´mkoliv jiny´m forma´tem dat, tedy nejen TMAPI, by meˇlo programa´tora zcela zbavit nutnosti zna´t forma´t za´pisu dat. TMAPI to tı´m, zˇe ma´ silnou vazbu na datovy´ model map te´mat, zcela umozˇnˇuje – programa´tor pı´sˇe na u´rovni datove´ho modelu a nemusı´ se zajı´mat o to, jak jsou data ulozˇena´ [26].

TMAPI vu˚bec nerˇesˇı´, jaky´m zpu˚sobem a kde je mapa te´mat ulozˇena. To je vy´hodne´, protozˇe tak implementa´toru˚m umozˇnˇuje vyuzˇı´t jaky´koliv forma´t pro ulozˇenı´ dat. Na druhou stranu to ani nezmensˇuje sı´lu TMAPI, protozˇe je v za´jmu samotny´ch programa´toru˚ implementovat alesponˇ ty nejrozsˇı´rˇeneˇjsˇı´

forma´ty. Mezi ty v dnesˇnı´ dobeˇ patrˇı´ minima´lneˇ XTM, ale trˇeba i LTM.

4TM4J – Topic Maps for Javahttp://www.tm4j.org

5OKS – Ontopia Knowledge Suitewww.ontopia.net

Kapitola 5

Prˇı´prava implementace

Hlavnı´ na´plnı´ te´to pra´ce je prakticke´ oveˇrˇenı´ vhodnosti XSLT pro pra´ci s Topic Maps. Pro co nejdu˚sledneˇjsˇı´ otestova´nı´ bude vytvorˇeno rozhranı´ na za´kladeˇ TMAPI. Vsˇechny potrˇebne´ souvisejı´cı´ technologie byly popsa´ny v prˇedcho-zı´ch kapitola´ch. V dalsˇı´ch odstavcı´ch bude popsa´na prˇı´prava prˇed zaha´jenı´m implementacˇnı´ch pracı´. Pote´ bude zmı´neˇno prˇizpu˚sobenı´ TMAPI pro XSLT vcˇetneˇ popisu jednotlivy´ch funkcı´ a zpu˚sob jejich implementace. Na´sledovat bude vytvorˇenı´ vzorove´ aplikace, ktera´ cele´ rozhranı´ otestuje a da´le budou uvedeny prakticke´ poznatky zjisˇteˇne´ beˇhem cele´ho procesu. Na za´veˇr budou zhodnoceny vy´sledky implementace a posouzena vhodnost XSLT pro pra´ci s Topic Maps.

5.1 Analy´za a prˇı´prava software

Mysˇlenka vyuzˇitı´ rozhranı´ v XSLT pro pra´ci s mapami te´mat je takova´, zˇe ten, kdo ho bude chtı´t vyuzˇı´t, si vytvorˇene´ sˇablony prˇipojı´ ke sve´ a prˇi pra´ci s mapou te´mat pak pouze vola´ vybrane´ funkce. Nemusı´ tak detailneˇ zna´t forma´t ulozˇenı´ map te´mat, nemusı´ se zajı´mat o to, v jake´m forma´tu je mapa ulozˇena (v te´to pra´ci vsˇak bude implementova´n pouze forma´t XTM) a vymy´sˇlet XPath dotazy pro zjisˇteˇnı´ pozˇadovany´ch informacı´. Vytvorˇene´ rozhranı´ tak bude mozˇne´ vyuzˇı´vat v ru˚zny´ch projektech umozˇnˇujı´cı´ch pra´ci s XSLT 2.0, ktere´ budou pracovat s XTM forma´tem ulozˇenı´ map te´mat.

Rozhranı´ se s vy´hodou mu˚zˇe vyuzˇı´t zejme´na u prˇevodu Topic Maps do jine´ho forma´tu. Vzhledem k tomu, zˇe mapy te´mat se staly popula´rnı´ zejme´na dı´ky XML forma´tu XTM, bude rozhranı´ navrzˇeno pra´veˇ pro tento forma´t.

U´ lohy, ktere´ by se s jeho vyuzˇitı´m daly mimo jine´ realizovat, jsou prˇevod XTM do jine´ho forma´tu map te´mat, naprˇ. LTM, zpracova´nı´ XTM a vy´beˇr neˇjaky´ch dat a nove´ ulozˇenı´ jako XTM nebo prˇevod XTM do HTML. Poslednı´ jmenovany´

prˇevod byl zvolen pro prˇedvedenı´ funkcˇnosti rozhranı´.

Uka´zkova´ aplikace pra´ce rozhranı´ ma´ i tu vy´hodu, zˇe ten, kdo chce rozhranı´

vyuzˇı´t, se mu˚zˇe snadno inspirovat, jak ru˚zne´ funkce fungujı´ a zda vracejı´

pozˇadovane´ hodnoty. Studiem zdrojove´ho ko´du sˇablon si take´ snadno oveˇrˇı´,

KAPITOLA 5. PRˇI´PRAVA. . . 5.1. ANALY´ZA A PRˇI´PRAVA. . .

zda je to opravdu to, co hleda´, tedy zˇe jsou nabı´zeny vsˇechny potrˇebne´ funkce.

Uka´zkovou aplikacı´ lze take´ snadno demonstrovat sı´lu TMAPI rozhranı´ – pro vsˇechny obory, u programu˚ dvojna´sob, platı´, zˇe jedna prakticka´ uka´zka je mnohem lepsˇı´, nezˇ mnoho stra´nek teoreticky´ch popisu˚ funkcionality.

Du˚vod, procˇ jako vzor bylo zvoleno TMAPI je ten, zˇe se jedna´ o zna´me´ a otestovane´ rozhranı´. Je tedy velka´ nadeˇje, zˇe obsahuje vsˇechny potrˇebne´ funkce pro pra´ci s mapami te´mat. Te´meˇrˇ u´plneˇ tak odpada´ potrˇeba od za´kladu roz-my´sˇlet, jake´ funkce by meˇly by´t implementova´ny a k cˇemu by meˇly slouzˇit.

Za´rovenˇ existujı´ alternativnı´ implementace rozhranı´, takzˇe je v prˇı´padeˇ jaky´ch-koliv proble´mu˚ mozˇne´ je prozkoumat a chybu tak snadneˇji nale´zt. TMAPI ma´

take´ velkou uzˇivatelskou za´kladnu a „mailing list“ vcˇetneˇ jeho archivu, kde lze nale´zt odpoveˇdi na te´meˇrˇ vsˇechny mozˇne´ nejasnosti.

TMAPI bylo navrzˇeno pro objektoveˇ orientovane´ jazyky, zejme´na pro pro-gramovacı´ jazyk Java. Na to je trˇeba prˇi analy´ze neusta´le myslet, protozˇe do rozhranı´ budou muset by´t udeˇla´ny pomeˇrneˇ za´sadnı´ zmeˇny tak, aby vyhovo-valo funkciona´lnı´mu prˇı´stupu, ktery´ ma´ XSLT 2.0. TMAPI navı´c obsahuje jak trˇı´dy pro cˇtenı´, tak pro za´pis dat, cozˇ z du˚vodu˚ uvedeny´ch da´le, take´ celou veˇc mı´rneˇ komplikuje.

Cˇa´st pro cˇtenı´ z map je bez veˇtsˇı´ch proble´mu˚ implementovatelna´ do te´meˇrˇ jake´hokoliv programovacı´ho jazyka, ktery´ ma´ prostrˇedky pro manipulaci se sta´le oblı´beneˇjsˇı´m forma´tem XML. Touto mozˇnostı´ dnes disponujı´ snad vsˇechny programovacı´ jazyky. V XSLT ve spojenı´ s XPath, ktere´ byly pro pra´ci s XML forma´tem navrzˇeny, jsou takove´ operace skutecˇneˇ snadne´. Navı´c s no-vou verzı´ XSLT 2.0 a novy´mi vlastnostmi jsou mozˇnosti jesˇteˇ veˇtsˇı´, bez nutnosti vyuzˇı´vat proprieta´rnı´ch rozsˇı´rˇenı´ ru˚zny´ch procesoru˚1.

Proble´m nasta´va´ u zapisovacı´ cˇa´sti. TMAPI je navrzˇeno tak, aby se te´mata mohla prˇida´vat a opravovat, vytva´rˇet asociace a prova´deˇt dalsˇı´ zmeˇny s vyu-zˇitı´m jeho funkcı´. Ty budou zpravidla vola´ny z programu po provedenı´ zmeˇn v neˇjake´m GUI a funkce TMAPI rozhranı´ vlastnı´ operaci provede. Tak je to navrzˇeno naprˇı´klad i v Ontopia Knowledge Suite, viz obra´zek 6. Tam se edi-tace mapy te´mat prova´dı´ z prostrˇedı´ webove´ho prohlı´zˇecˇe. Server, na ktere´m se zmeˇny odehra´vajı´, vola´ Java aplikaci, ktera´ zmeˇny prova´dı´.

XSLT vsˇak nenı´ jazyk, ve ktere´m by se pocˇı´talo s interakcı´ od uzˇivatele.

Transformace se spousˇteˇjı´ za pomoci XSLT procesoru, ktery´ se zpravidla vola´

z prˇı´kazove´ rˇa´dky. Bylo by sice mozˇne´ vytvorˇit prostrˇedı´, ktere´ by volalo XSLT procesor po kazˇde´m vstupu uzˇivatele, ale to by nebylo nijak zvla´sˇt’ vy´konne´

a pro dane´ zada´nı´ existujı´ lepsˇı´ zpu˚soby realizace v jiny´ch programovacı´ch jazycı´ch. Rozumnou alternativou by bylo v Javeˇ prˇipojit neˇktery´ z procesoru˚ a po natazˇenı´ do pameˇti prova´deˇt transformaci prˇı´mo – ta by se v tomto prˇı´padeˇ prova´deˇla pomeˇrneˇ rychle. Touto cestou se vsˇak tato pra´ce ubı´rat nebude, a tak bude potrˇeba prove´st veˇtsˇı´ za´sah do pu˚vodnı´ho TMAPI rozhranı´.

1Dnes se samozrˇejmeˇ teˇzˇko odhaduje, jake´ budou za neˇjaky´ cˇas proprieta´rnı´ mozˇnosti XSLT 2.0 procesoru˚, vzhledem k tomu, zˇe tento standard je ve fina´lnı´ verzi relativneˇ kra´tkou dobu.

KAPITOLA 5. PRˇI´PRAVA. . . 5.1. ANALY´ZA A PRˇI´PRAVA. . .

Obra´zek 6.OKS – nova´ hudebnı´ skupina zada´vana´ z webove´ho rozhranı´.

Vzhledem k zamy´sˇlene´mu zpu˚sobu vyuzˇitı´ tak budou implementova´ny pouze takove´ funkce, ktere´ se starajı´ o zı´ska´va´nı´ dat. V TMAPI to jsou ty, jejichzˇ na´zev zacˇı´na´ naget. Ne vsˇechny funkce vsˇak budou vzhledem k jine´mu programovacı´mu prostrˇedı´ potrˇebne´ a neˇktere´ naopak budou chybeˇt. Je proto dobre´ nejdrˇı´ve prove´st detailnı´ analy´zu, jaky´m zpu˚sobem se rozhranı´ bude vyuzˇı´vat2.

Tato analy´za spocˇı´va´ v neˇkolika krocı´ch. Nejdrˇı´ve je nutne´ prostudovat TMAPI rozhranı´ a pochopit co jednotlive´ funkce deˇlajı´. Da´le je vhodne´ pro-jı´t neˇktere´ jizˇ hotove´ realizace v ru˚zny´ch prostrˇedı´ch. Prˇı´kladem za vsˇechny mu˚zˇe by´t PHPTMAPI3, ktere´ jisteˇ alesponˇ cˇa´stecˇneˇ muselo rˇesˇit podobne´ pro-ble´my. Nakonec je zapotrˇebı´ promyslet, jak se jednotlive´ funkce budou chovat a jake´ budou vracet hodnoty. Ty je mozˇne´ posle´ze elegantneˇ implementovat dı´ky jedne´ z novinek v XSLT 2.0 – prˇirˇazenı´ typu hodnoty k promeˇnny´m, parametru˚m a na´vratovy´m hodnota´m funkcı´.

Dalsˇı´ krok na´vrhu je prˇejmenova´nı´ funkcı´ tak, aby na´zvy odpovı´daly pojetı´

XSLT – tedy odstraneˇnı´ anglicke´ho slova get na jejich zacˇa´tku. XSLT se totizˇ prima´rneˇ vyuzˇı´va´ pro zı´ska´va´nı´ dat, a tak bygetmuselo by´t prakticky u vsˇech funkcı´, respektive te´meˇrˇ nikde by se nevyuzˇiloset. Navı´c XSLT funkce, pomocı´

ktery´ch bude vsˇe provedeno, neumozˇnˇujı´ za´pis prˇı´mo na vy´stup – vsˇe, co se uvnitrˇ funkce zapı´sˇe na standardnı´ vy´stup, se projevı´ jako na´vratova´ hodnota funkce.

Potrˇeba veˇtsˇı´ch zmeˇn nasta´va´ u objektove´ho prˇı´stupu, pro ktery´ bylo TMAPI vytvorˇeno. Ten se nasˇteˇstı´ da´ s trochou pra´ce prˇeve´st na funkciona´lnı´

prˇı´stup tı´m, zˇe se kazˇda´ funkce obohatı´ o parametr, ktery´ urcˇuje jake´ho objektu

2Vzdoroval jsem dlouho, ale nakonec jsem byl i ja´ vedoucı´m diplomove´ pra´ce prˇesveˇdcˇen o vy´hodnosti tohoto prˇı´stupu.

KAPITOLA 5. PRˇI´PRAVA. . . 5.2. PRˇIZPU˚ SOBENI´ TMAPI PRO. . .

se ma´ operace ty´kat. Zajistı´ se tak prˇeda´nı´ potrˇebne´ informace o kontextu v ja-ke´m ma´ funkce pracovat. Tı´mto zpu˚sobem lze s pomeˇrneˇ velkou u´speˇsˇnostı´

te´meˇrˇ vsˇe implementovat.

Neˇkde vsˇak i prˇesto mohou nastat proble´my, naprˇı´klad se zjisˇt’ova´nı´m prˇedku˚ konkre´tnı´ch elementu˚. U objektove´ho prˇı´stupu nenı´ proble´m zjistit prˇedka dane´ho objektu. Programa´tor tak ma´ v ruce mocny´ na´stroj pro okamzˇite´

zjisˇteˇnı´ kontextu, ve ktere´m se objekt nacha´zı´. To ve funkciona´lnı´m prˇı´stupu XSLT nenı´ mozˇne´, protozˇe promeˇnne´ majı´ urcˇen pouze svu˚j typ a neexistuje tam neˇco jako deˇdeˇnı´ vlastnostı´ a metod. Tento proble´m je nasˇteˇstı´ rˇesˇitelny´, je vsˇak zapotrˇebı´ na to prˇi analy´ze da´t pozor a neˇktere´ funkce upravit cˇi prˇidat.

Pro praktickou cˇa´st bude vyuzˇit software Oxygen XML Editor4. Je to vy´-borny´ pomocnı´k, ktery´ mimo funkcı´ beˇzˇny´ch pro XML editory nabı´zı´ i rezˇim ladeˇnı´ XSLT sˇablon. Je tak mozˇne´ proces prˇevodu krokovat, vyhodnocovat aktua´lnı´ hodnoty promeˇnny´ch a prova´deˇt kontextove´ XPath vy´razy. Tı´m pro XSLT nabı´zı´ na´stroj obvykly´ v jiny´ch programovacı´ch jazycı´ch, cozˇ vy´razneˇ urychluje pra´ci na ladeˇnı´ sˇablon a umozˇnˇuje rychle´ nalezenı´ chyb.

Pro provedenı´ XSL transformace bude vyuzˇit jizˇ zmı´neˇny´ procesor Saxon5. Dlouho se jednalo o jediny´ software schopny´ pracovat s XSLT 2.0 a tak byla jeho volba jednoznacˇna´. Dnes jizˇ existuje i neˇkolik dalsˇı´ch implementacı´ a dalsˇı´

jisteˇ jesˇteˇ vzniknou. Saxon bude vyuzˇit proto, zˇe je velice kvalitnı´ a je sta´le k dispozici i ve verzi zdarma. Jednı´m z du˚vodu˚ jeho kvality je pravdeˇpodobneˇ i to, zˇe autor Saxonu je za´rovenˇ i spoluautorem na´vrhu standardu XSLT 2.0.

Pro potrˇeby te´to pra´ce byl zalozˇen projekt TMAPI-XSLT6 na internetove´m porta´lu SourceForge.net. Ten se beˇzˇneˇ vyuzˇı´va´ prˇi vy´voji tzv. Open source pro-jektu˚. Jaky´koliv ko´d, ktery´ se jeho tvu˚rci zda´ by´t uzˇitecˇny´, se tı´mto zpu˚sobem mu˚zˇe dostat mezi sˇirokou verˇejnost. Obvykle´ take´ je, zˇe se cˇasem zapojı´ dalsˇı´

vy´voja´rˇi nebo pote´, co pu˚vodnı´ autor projekt opustı´, na neˇm zacˇne pracovat neˇkdo jiny´.