jezyk xls VMP4LJC4EE4BNYHVZSXZ Nieznany

background image

- ]\N;6/

*

Tomasz Traczyk

Instytut Automatyki i Informatyki Stosowanej, Politechnika Warszawska

e-mail: ttraczyk@ia.pw.edu.pl

Abstrakt.

- ]\N ;6/ eXtensible Stylesheet Language  VWDQRZL X]XSHáQLHQLH ;0/  : ]DáR*HQLX PD RQ

VáX*\üGRIRUPDWRZDQLDGRNXPHQWyZZ;0/ SRGREQLHMDN&66GOD+70/ 0R*HE\üWDN*HX*\ZDQ\GR

SU]HNV]WDáFDQLDGRNXPHQWyZ;0/RZ\FKGRWHJRV]F]HJyOQLHGREU]HQDGDMHVL SRG]ELyU;6/QD]ZDQ\
XSLT (XSL Transformations

  5HIHUDW VWDQRZL NRQW\QXDFM  SUH]HQWDFML SRZL FRQ\FK M ]\NRZL ;0/ ]

dwóch poprzednich konferencji PLOUG [1, 2]. Przedstawiono w nim podstawy XSL i XSLT oraz zaprezen-
WRZDQRPR*OLZRFLX*\FLDW\FKM ]\NyZZSRZL]DQLX]SRSXODUQ\PLSU]HJOGDUNDPL:::RUD]]'%06
Oracle.

1. Wprowadzenie

'RNXPHQWZ;0/SRZLQLHQE\ü]EXGRZDQ\QD]DVDG]LH]QDNRZDQLD]QDF]HQLRZHJRDQLHWy-

po

JUDILF]QHJR&DáDLQIRUPDFMDRVSRVRELHIRUPDWRZDQLDGRNXPHQWXSU]H]SU]HJOGDUN PXVLE\ü

]DWHPVIRUPXáRZDQDRVREQR

'R RNUHOHQLD VSRVREX SUH]HQWDFML GRNXPHQWyZ VáX* W]Z DUNXV]H VW\OLVW\F]QH stylesheets).

:áDQLH GR GHILQLRZDQLD DUNXV]\ VW\OLVW\F]Q\FK GOD GRNXPHQWyZ Z ;0/ VWZRU]RQR M ]\N ;6/
(eXtensible Stylesheet Language).

3RP\VáVSRVREXSU]HWZDU]DQLDZ\NRU]\VWDQ\Z;6/SRFKRG]L]'666/ Document Style Se-

mantics and Specification Language

²]ZL]DQHJR]6*0/M ]\NDSRGREQHJRGRLISP-u. XSL

SU]HMáRG'666/RJyOQLGH DOHMHJRVNáDGQLD]RVWDáDZSHáQL]GHILQLRZDQDZ;0/]X*\FLHP
przestrzeni nazw (namespaces).

;6/SRP\ODQ\SLHUZRWQLHMDNRURGHNGHILQLRZDQLDDUNXV]\VW\OLVW\F]Q\FKRND]DáVL WDN*H

]QDNRPLW\PQDU] G]LHPGRSU]HNV]WDáFDQLDGRNXPHQWyZ;0/²WDNLH]DVWRVRZDQLHZ\GDMHVL

WH*V]F]HJyOQLHLQWHUHVXMFHGODSURMHNWDQWyZV\VWHPyZ]ED]DPLGDQ\FK

2. Podstawy XSL

3UH]HQWDFMDGRNXPHQWX]X*\FLHP;6/SROHJDQDWUDQVIRUPDFMLGU]HZDKLHUDUFKLL]QDF]QLNyZ

GRNXPHQWXZHMFLRZHJRQDGU]HZRW]Zformatting objects, NWyU\PSU]\SLVDQRRNUHORQHVSRVRE\

SUH]HQWDFML3U]HJOGDUNDVáX*FDGRSUH]HQWDFMLSRZLQQDUR]XPLHüM ]\NRZ\FKRELHNWyZIRUPa-
tuj

cych.

2EHFQLHSU]HJOGDUNL]DSRPRFNWyU\FKSUH]HQWRZDQHVGRNXPHQW\;0/QLHPDMPR*OLZo-

FLLQWHUSUHWDFMLRSLVXIRUPDWRZDQLDZ\UD*RQHJRZSURVWZ;6/DOHVSU]\VWRVRZDQHGRSUH]HQWa-

FMLGRNXPHQWyZZ +70/  3UDNW\F]Q\P VSRVREHP IRUPDWRZDQLD GRNXPHQWyZ ]D SRPRF ;6/

MHVWZL FSU]HWZRU]HQLHLFKQD+70/7DNWH*VNRQVWUXRZDQ\]RVWDáSU]\NáDGSRGDQ\SRQi*HM

2.1. Rzut oka na XSL

3RGDQRWXSURVW\SU]\NáDGNWyU\SR]ZDOD]RULHQWRZDüVL MDNZ\JOGDüPR*HDUNXV]VW\OLVW\Fz-

Q\Z;6/LMDNDMHVW]DVDGDMHJRG]LDáDQLD

*

Praca wspierana z

JUDQWX']LHNDQD:\G]LDáX(OHNWURQLNLL7HFKQLN,QIRUPDF\MQ\FK3ROLWHFKQLNL:Dr-

szawskiej.

background image

120

Tomasz Traczyk

3U]\NáDG

3U]HGVWDZLRQ\SU]\NáDG

1

dokumentu w XML pochodzi z rzeczywistego systemu informacyjne-

JRZVSRPDJDMFHJR]DU]G]DQLHGX*\PZ\G]LDáHPZ\*V]HMXF]HOQL>1, 2].

2WRSU]\NáDGRZ\GRNXPHQW

<?xml version="1.0" encoding="ISO-8859-2"?>

<!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd">

<?xml-stylesheet type="text/xsl" href="konspekty.xslt"?>
.RPHQWDU]WRMHVWSU]\NáDGQU!
<eres_konspekty>

<przedmiot id=”KBD2” wersja=”1”>

<slowo_kluczowe>bazy danych</slowo_kluczowe>

<slowo_kluczowe>Oracle</slowo_kluczowe>

<konspekt>

<czesc_konspektu id=”Streszczenie”>

3!0RQRJUDILF]Q\SU]HGPLRWSRZL FRQ\ED]LHGDQ\FKLQDU] G]LRP

Oracle.

</P>

</czesc_konspektu>

F]HVFBNRQVSHNWXLG ´7UHü´!

3!2PDZLDQHVSRGVWDZRZH]DJDGQLHQLD]ZL]DQH]Z\NRU]\VWDQLHP

RDBMS Oracle7 i <I>Oracle8</I> oraz administrowaniem nimi.

</P>
3!3U]HGVWDZLDQHVWDN*HQDU] G]LDGREXGRZ\DSOLNDFML
</P>

<UL>

<LI> Oracle Forms, </LI>

<LI> Oracle Reports. </LI>

</UL>

</czesc_konspektu>

</konspekt>

</przedmiot>

</eres_konspekty>

3U]\NáDG

3RQL*V]\VNU\SWZ;6/VáX*\GRSUH]HQWDFMLNRQVSHNWXGRNXPHQWX]SU]\NáDGX

<?xml version="1.0" encoding="windows-1250"?>
7RMHVWSU]\NáDGQU!
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html" indent="yes" encoding="windows-1250" />

<xsl:template match="eres_konspekty">
[VOFRPPHQW!:\JHQHURZDQR]DSRPRFVNU\SWXNRQVSHNW\[VOW[VOFRPPHQW!
<HTML>

<HEAD><TITLE>Konspekty</TITLE></HEAD>

<BODY>

<H1>Konspekty przedmiotów</H1>

<xsl:apply-templates select="przedmiot">

<xsl:sort select="@id" />

</xsl:apply-templates>

</BODY>

1

 7HQ VDP SU]\NáDGRZ\ GRNXPHQW ;0/ E\á SUH]HQWRZDQ\ Z UHIHUDFLH QD SRSU]HGQLHM NRQIHUHQFML

PLOUG [2

@7HUD]MHGQDNE G]LHRQIRUPDWRZDQ\]DSRPRFLQQHJRVNU\SWX;6/]Z\NRU]\VWDQLHPQRw-

V]HMZHUVMLM ]\ND

background image

- ]\N;6/

121

</HTML>

</xsl:template>

<xsl:template match="przedmiot">

<H2>

<xsl:value-of select="@id" />

(<xsl:value-of select="@wersja" />)

</H2>

<xsl:if test="slowo_kluczowe">
+!6áRZDNOXF]RZH+!
<TABLE BORDER="1">

<xsl:for-each select="slowo_kluczowe">

<xsl:sort select="text()"/>

<TR><TD><xsl:value-of select="."/></TD></TR>

</xsl:for-each>

</TABLE>

</xsl:if>

<xsl:apply-templates select="*[name() != 'slowo_kluczowe']"/>

<HR/>

</xsl:template>

<xsl:template match="konspekt">

<H3>Konspekt</H3>

<xsl:apply-templates />

</xsl:template>

<xsl:template match="czesc_konspektu">

<H4>

<xsl:value-of select="@id"/>

</H4>

<xsl:apply-templates />

</xsl:template>

<xsl:template match="P | I | UL | OL | LI">

<xsl:element name="{name()}">

<xsl:apply-templates/>

</xsl:element>

</xsl:template>

</xsl:stylesheet>

,VWRW G]LDáDQLDSRZ\*V]HJRVNU\SWXVWDQRZLUHNXUHQF\MQHSU]HWZDU]DQLH]QDF]QLNyZ,QVWUXk-

cja

xsl:apply-templates

MHVWZ\ZRáDQLHPRZHMUHNXUHQFML$WU\EXW\

select

]DZ *DM]a-

NUHVG]LDáDQLDGRZ\EUDnych elementów dokumentu. Atrybuty

match

SRGDMZ]RU]HF]QDF]QLND

który jest przetwa

U]DQ\ ]D SRPRF GDQHJR V]DEORQX

template

  :]RUFH PDM SRVWDü FLH*HN

(paths

RNUHODMF\FKPLHMVFHHOHPHQWXOXEDWU\EXWXZKLHUDUFKLF]QHMVWUXNWXU]HGRNXPHQWX

Instrukcje

value-of

SRZRGXMZáF]HQLHRGSRZLHGQLHMF] FLSU]HWZDU]DQHJRGRNXPHQWXGR

dokumentu wynikowego. Nazwy poprzedzone znakiem

@

R]QDF]DMRGZRáDQLHGRZDUWRFLDWUy-

butu.

(IHNW\ IRUPDWRZDQLD SU]\NáDGRZHJR GRNXPHQWX ]D SRPRF SRZ\*V]HJR VNU\SWX SU]HGVWDZLD

Rys. 1.

background image

122

Tomasz Traczyk

<!--Wygenerowano za pomoc

VNU\SWX

konspekty.xslt-->

<HTML>

<HEAD>

<META http-equiv="Content-Type"

content="text/html;

charset=windows-1250">

<TITLE>Konspekty</TITLE>

</HEAD>

<BODY>

<H1>Konspekty przedmiotów</H1>

.........

</BODY>

</HTML>

Rys. 1

:\QLNIRUPDWRZDQLDGRNXPHQWX;0/]DSRPRF;6/

2.2.

=DVDGDG]LDáDQLD;6/

3U]HWZDU]DQLH]DSRPRF;6/GRW\F]\GU]HZUHSUH]HQWXMF\FKKLHUDUFKL HOHPHQWyZLDWU\Eu-

tów. Schemat przetwarzania przedstawiono na Rys. 2.

Dokument

XML

Rozbiór

gramatyczny

Transformacja

XSL

Serializacja

Drzewo

wej

FLRZH

Drzewo

wynikowe

Dokument
wyj

FLRZ\

Rys. 2. Fazy przetwarzania XSL

:HMFLRZ\GRNXPHQWMHVWSRGGDZDQ\UR]ELRURZLJUDPDW\F]QHPXSU]H]parser. W wyniku roz-

ELRUXSRZVWDMHGU]HZRUHSUH]HQWXMFHKLHUDUFKL HOHPHQWyZLDWU\EXWyZ

6NU\SWZM ]\NX;6/VWHUXMHSU]HNV]WDáFHQLHPWHJRGU]HZDZGU]HZRZ\QLNRZHNWyUHPR*H

PLHü]XSHáQLHLQQVWUXNWXU 1DVW SQLHGU]HZRZ\QLNRZHPR*HE\ü²ZZ\QLNXSURFHVXW]Z

VHULDOL]DFML²SU]HNV]WDáFRQHZGRNXPHQWZ\QLNRZ\QSZ;0/OXE+70/=DPLDVWserializacji

PR*HE\üZ\NRQDQHLQQHG]LDáDQLHQSEH]SRUHGQLDSUH]HQWDFMDGU]HZDZ\QLNRZHJRSU]H]SU]e-

JOGDUN SRGGaQLHGU]HZDZ\QLNRZHJRNROHMQ\PSU]HNV]WDáFHQLRPLWS

,VWRWG]LDáDQLD;6/MHVWZL FSU]HNV]WDáFDQLHGU]HZUHSUH]HQWXMF\FKVWUXNWXU GRNXPHQWyZ

3U]HNV]WDáFHQLHWDNLHQD]\ZDVL WUDQVIRUPDFM;6/ XSL transformation).

$E\ SU]HNV]WDáFHQLH E\áR PR*OLZH GRNXPHQW ZHMFLRZ\ PXVL E\ü SRSUDZQ\ SU]\QDMPQLHM Z

sensie well-formed, by parser

;0/PyJáSU]HNV]WDáFLüJRGRSRVWDFLGU]HZD

3RSUDZQRüGRNXPHQWX;0/ZVHQVLHwell-formed (patrz [3, 4@ R]QDF]DSU]HGHZV]\VWNLPL*

GRNXPHQWPDGRNáDGQLHMHGHQHOHPHQWJáyZQ\]QDF]QLNLSRF]WNRZHLNRFRZHHOHPHQWyZQLHV

ÄVNU]\*RZDQH´ ND*GD NRQVWUXNFMD ]DZDUWD Z LQQHM PXVL E\ü Z QLHM ]DZDUWD Z FDáRFL  RUD]

ZV]\VWNLH]QDF]QLNLVMDZQLH]DNRF]RQH

background image

- ]\N;6/

123

3U]\NáDG

3RQL*HMSRGDQRGZDPDáHGRNXPHQW\Z+70/

lewy jest poprawnym dokumentem HTML, ale nie jest poprawnym w sensie well-formed do-
kumentem XML;

SUDZ\MHVWSRSUDZQ\WDN*HZVHQVLHwell-formedLPR*HE\üSU]HWZDU]DQ\]DSRPRFQDU] -
dzi dla XML.

Paragraf pierwszy.<P>

Paragraf drugi.

<UL>

<LI> Pozycja 1.

<LI> Pozycja 2.

</UL>

<HTML>

<P>Paragraf pierwszy.</P>

<P>Paragraf drugi.</P>

<UL>

<LI>Pozycja 1.</LI>

<LI>Pozycja 2.</LI>

</UL>

</HTML>

Proces

VHULDOL]DFMLQLHPXVLSURZDG]LüGRSRZVWDQLDGRNXPHQWXSRSUDZQHJR]SXQNWXZLG]HQLD

VSHF\ILNDFML;0/²QSZ\MFLRZ\GRNXPHQWZ+70/PR*HQLHVSHáQLDüZDUXQNyZ]DP\NDQLD
znaczników.

3U]HNV]WDáFHQLD V VWHURZDQH ]D SRPRF W]Z V]DEORQyZ template rules). Szablon zawiera

zwykle atrybut

match

 SRGDMF\ Z]RU]HF pattern  NWyU\ RNUHOD HOHPHQW\ GU]HZD ZHMFLRZHJR

SU]HWZDU]DQH]DSRPRFV]DEORQX:HZQ WU]XV]DEORQXRNUHODVL FRPD]QDOH(üVL ZGU]HZLH
wynikowym. Przetwarzanie ma charakter rekurencyjny.

-DNRX]XSHáQLHQLHSU]HWZDU]DQLDUHNXUHQF\MQHJRVWRVRZDQHMHVWWDN*HSU]HWZDU]DQLHSURFHGXUDl-

QHS WOHSU]HELHJDMFHSU]H]Z\EUDQHZ ]á\GU]HZDZHMFLRZHJRZDUXQNLUR]JDá ]LHQLD0R*Oi-

ZHMHVWWH*Z\ZRá\ZDQLHVNU\SWyZZM ]\NXECMAScript

2

.

;6/PDVáX*\üGRGHILQLRZDQLDDUNXV]\VW\OLVW\F]Q\FK]DWHPRSUyF]GHILQLRZDQLDSU]HNV]WDá-

FH ZLQLHQ WDN*H XPR*OLZLDü RNUHODQLH VSRVREX SUH]HQWDFML  6áX* GR WHJR HOHPHQW\ ]ZDQH

RELHNWDPLIRUPDWXMF\PL formatting objects -HOLZGU]HZLHZ\QLNRZ\P]QDMGVL RZHRELHNW\

WRSRZLQQ\RQHE\üLQWHUSUHWRZDQHSU]H]SU]HJOGDUN LVWHURZDüVSRVREHPSUH]HQWDFML

2.3.

&] FLLZHUVMHVSHF\ILNDFML;6/

3RQLHZD*F] üM ]\ND;6/VWHUXMFDSU]HNV]WDáFHQLDPLMHVWNOXF]RZDZWRNXSUDFQDGM ]y-

NLHPZ\G]LHORQRMZRVREQVSHF\ILNDFM QD]ZDQ;6/7 XSL Transformations) [9@SUDFHQDGW

F] FLVSHF\ILNaFMLZ]DVDG]LHXNRF]RQR

: WUDQVIRUPDFMDFK ;6/ GR ]QDOH]LHQLD HOHPHQWX Z GU]HZLH ZHMFLRZ\P X*\ZDQH V Z]RUFH

(patterns

]DSLV\ZDQHZSRVWDFLW]ZFLH*HN paths 6SHF\ILNDFMDRZ\FKFLH*HN²ZVSyOQDGOD

;6/M ]\ND;3RLQWHU SDWU]>3, 4]) oraz XML Query²]RVWDáDZ\G]LHORQDSRGQD]Z;3DWK>10]

LWDN*HMHVWXNRF]RQD

3HáQDGHILQLFMDM ]\ND;6/VNáDGDVL ]DWHP]GHILQLFMLSU]HNV]WDáFH;6/7Z]RUFyZ;3DWK

RUD]VáRZQLNDRELHNWyZIRUPDWXMF\FK

1LHVWHW\SUDFQDGVSHF\ILNDFMRELHNWyZIRUPDWXMF\FKMHV]F]HQLHXNRF]RQRQLHPDWH*LFK

LPSOHPHQWDFML Z SRSXODUQ\FK SU]HJOGDUNDFK  'ODWHJR REHFQLH QDMEDUG]LHM W\SRZ\P VSRVREHP

Z\NRU]\VWDQLD;6/GRWZRU]HQLDDUNXV]\VW\OLVW\F]Q\FKMHVWSLVDQLHVNU\SWyZSU]HNV]WDáFDMF\FK

;0/QD+70/:\GDZDáRE\VL *HGRWHJRFHOXQDOH*\X*\üZHUVMLM ]\ND]DZDUWHMZVSHF\ILNa-

FML;6/7OHF]QLHVWHW\LWDF] ü;6/QLHMHVWMHV]F]H]DLPSOHPHQWRZDQDZSRSXODUQ\FKSU]HJO-

2

ECMAScript jest to

XVWDQGDU\]RZDQDRGPLDQDM ]\NDJavaScript.

background image

124

Tomasz Traczyk

GDUNDFK'ODWHJRGRSLVDQLDDUNXV]\VW\OLVW\F]Q\FKX*\ZDVL QLHNLHG\VWDUV]HMZHUVML;6/NWyUHM

SURFHVRUMHVWF] FLSU]HJOGDUNLMicrosoft Internet Explorer 5 (MSIE 5) — i tak skonstruowano

SU]\NáDGSRGaQ\Z]HV]áRURF]Q\PUHIHUDFLH>2].

=QDF]QLH Z\JRGQLHMV]HM QRZV]HM ZHUVML M ]\ND WUDQVIRUPDFML ZJ VSHF\ILNDFML ;6/7  PR*QD

QDWRPLDVW ] SRZRG]HQLHP X*\ZDü GR VDPHJR SU]HNV]WDáFDQLD GRNXPHQWyZ ;0/ Z LQQH GRNu-

PHQW\;0/OXE+70/LVWQLHMMX*ERZLHPSURFHVRU\;6/]JRGQH]QDMQRZV]VSHF\ILNDFM

3RQLHZD*SUDFHQDGSHáQGHILQLFMM ]\NDWUZDMREHFQLHGRVW SQDMHVWMHG\QLHZHUVMDworking

draft

VSHF\ILNDFMLFDáRFL;6/>7].

2.4.

6NáDGQLDM ]\ND

6NáDGQLD;6/]RVWDáDZSHáQL]GHILQLRZDQDZ;0/]X*\FLHPSU]HVWU]HQLQD]Z namespaces).

2.4.1.

3URORJLHOHPHQWJáyZQ\

6NU\SW F]\DUNXV]VW\OLVW\F]Q\ Z;6/MHVWGRNXPHQWHP;0/PR*HZL FUR]SRF]\QDüVL RG

instrukcji przetwarzania

<?xml... ?>

-HOLVNU\SW;6/PD]DZLHUDü]QDNLQDURGRZHZNRGo-

ZDQLX LQQ\P RG 87) VWDQGDUGX GOD ;0/  WR WD LQVWUXNFMD SU]HWZDU]DQLD MHVW RERZL]NRZD L

PXVL]DZLHUDüDWU\EXW

encoding

SRGDMF\ZáDFLZHNRGRZDQLH SDWU]SU]\NáDG 

-DN ND*G\ GRNXPHQW ;0/RZ\ VNU\SW Z ;6/ ]DZLHUD MHGHQ HOHPHQW JáyZQ\

xsl:stylesheet

 : ]QDF]QLNX HOHPHQWX JáyZQHJR GHILQLXMH VL  SU]HVWU]H QD]Z SDWU] >3, 4])

M ]\ND;6/'ODZHUVML;6/]DLPSOHPHnWRZDQHMZ06,(]QDF]QLNSRF]WNRZ\Z\JOGDWDN

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

]DGOD;6/7WDN

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

przy czym atrybut

version

 MHVW RERZL]NRZ\  3URFHVRU\ ;6/ SRZLQQ\ DQDOL]RZDü DGUHV 85,

podany w atrybucie

xmlns

LZ]DOH*QRFLRGQLHJRRGSRZLHGQLRLQWHUSUHWRZDü]DZDUWRüVNU\SWX

2F]\ZLFLH Z VNU\SWDFK ;6/ PR*QD WDN*H XPLHV]F]Dü NRPHQWDU]H Z VSRVyE ZáDFLZ\ GOD

;0/ SDWU]SU]\NáDG 

2.4.2. Przypisanie arkusza stylistycznego do dokumentu

-HOLVNU\SW;6/PDSHáQLüGODGRNXPHQWX;0/URO DUNXV]DVW\OLVW\F]QHJRWRSRWU]HEQHMHVW

SRZL]DQLH GRNXPHQWX ;0/ ] RZ\P VNU\SWHP  6SRVyE ZVND]DQLD GRP\OQHJR DUNXV]D VW\Oi-

VW\F]QHJRRNUHODRVREQDVSHF\ILNDFMD>11@'HILQLXMHRQDLQVWUXNFM SU]HWZDU]DQLDRQDVW SXMFHM

SRVWDFL SDWU]SU]\NáDG 

<?xml-stylesheet type="text/xsl" href="

plik_arkusza_stylistycznego"?>

,QVWUXNFM W XPLHV]F]DVL ZSURORJXIRUPDWRZDQHJRGRNXPHQWX;0/
3RQLHZD*GRNXPHQWPR*HZ\PDJDüUy*QHJRIRUPDWRZDQLDZ]DOH*QRFLRGVSRVREXSU]HSUo-

ZDG]DQLDSUH]HQWDFML QSRGSURJUDPXGRWHJRVáX*FHJR ZMHGQ\PGRNXPHQFLHPR*QDXPLHFLü
kilka instrukcji

<?xml-stylesheet?>

Uy*QLF\FKVL ZDUWRFLpseudoatrybutu

media

. W pliku

]SU]\NáDGXPR*QDE\QSXPLHFLüGRGDWNRZRLQVWUXNFM SRVWDFL

<?xml-stylesheet type="text/xsl" media="lynx" href="konspekty.lynx.xslt"?>

²LQVWUXNFMDWDE\áDE\XZ]JO GQLRQDMHOLGRSUH]HQWDFMLX*\W\E\áE\SURJUDPlynx. Ta z instrukcji

<?xms-stylesheet?>

, która nie ma pseudoatrybutu

media

 ZVND]XMH GRP\OQ\ DUNXV] VW\Oi-

styczny.

=Z\NOHMHVWPR*OLZHWDN*HWDNLHZ\ZRáDQLHSURFHVRUD;6/E\X*\W\]RVWDáDUNXV]VW\OLVW\F]Q\

Uy*Q\RGDrkuszy podanych w samym dokumencie.

background image

- ]\N;6/

125

2.4.3. Sterowanie

VHULDOL]DFM

:VNU\SWDFK]JRGQ\FK]HVSHF\ILNDFM;6/7PR*QDXPLHFLüLQVWUXNFM 

xsl:output

, steruj

-

FSURFHVHPVHULDOL]DFML2NUHODVL ZQLHMWDNLHFHFK\Z\MFLRZHJRSOLNXWHNVWRZHJRMDNVSRVyE

NRGRZDQLD]QDNyZQDURGRZ\FKWZRU]HQLHZFL üZWHNFLHXPLHV]F]DQLHZWHNFLHZ\MFLRZ\P
instrukcji przetwarzania

<?xml ...>

itp.

1DMZD*QLHMV]\PSDUDPHWUHPserializacji jest tzw. metoda. Przewidziano trzy metody standar-

dowe:

xml

— wyprowadzanie pliku w XML, poprawnego przynajmniej w sensie well-formed;

html

 ² Z\SURZDG]DQLH SOLNX Z +70/ QLH MHVW RQ SRSUDZQ\P SOLNLHP ;0/ JG\* QLH

prze

VWU]HJDVL ;0/RZ\FKUHJXá]DP\NDQLD]QDF]QLNyZ 

text

²Z\SURZDG]DVL Z\áF]QLHWHNVWRZ]DZDUWRüHOHPHQWyZDOHEH]VDP\FK]QDF]Qi-

ków.

3U]\NáDGRZDLQVWUXNFMDVWHUXMFDVHULDOL]DFMPR*HPLHüSRVWDü

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="iso-

8859-2" />

,QQ\SU]\SDGHNSRND]DQRZSU]\NáDG]LH

2.4.4.

Ä&LDáR´VNU\SWX

Ä&LDáR´VNU\SWX]DZLHUD]Z\NOHZLHOHV]DEORQyZ template rules VáX*F\FKGRSU]HWZDU]DQLD

NROHMQ\FK ÄSR]LRPyZ´ GU]HZD ZHMFLRZHJR  0RJ WH* WX ]QDMGRZDü VL  GHILQLFMH ]PLHQQ\FK L
parametrów globalnych.

2.4.5. Wzorce

W atrybutach

match

V]DEORQyZSRGDMHVL Z]RUFHVáX*FHGRZ\V]XNLZDQLDRGSRZLHGQLFKHOe-

PHQWyZZGU]HZLHZHMFLRZ\P:]RUFHWHV]DSLVDQHZM ]\NX;3DWKRNWyU\PZL FHMQDSLVDQR
dalej.

3.

;6/EDUG]LHMV]F]HJyáRZR

W kolejnym rozdziale

RSLVDQREDUG]LHMV]F]HJyáRZRSRV]F]HJyOQHVNáDGQLNL;6/

3.1. Transformacje XSL

,VWRWG]LDáDQLD;6/MHVWWUDQVIRUPDFMDGU]HZDZHMFLRZHJRZLQQHGU]HZRUHSUH]HQWXMFHHOe-

PHQW\LDWU\EXW\7UDQVIRUPDFMDSROHJDZL FQDZ\V]XNLZDQLXZ ]áyZZGU]HZLHZHMFLRZ\PL

WZRU]HQLXZ ]áyZGU]HZDZ\MFLRZHJR

3.1.1. Szablony i przetwarzanie rekurencyjne

7UDQVIRUPDFM GU]HZD ZHMFLRZHJR VWHUXM V]DEORQ\  'U]HZR MHVW SU]HJOGDQH RG NRU]HQLD L

wykonywana jest próba dopasowania wzorców

match

LVWQLHMF\FKV]DEORQyZ-HOLGRSDVRZDQLH

XGDVL DÄFLDáR´V]DEORQX]DZLHUDLQVWUXNFM 

xsl:apply-templates

, to proces jest powtarzany

rekurencyjnie.

2F]\ZLFLHDE\GDQ\V]DEORQPyJáE\üZRJyOHZ\NRU]\VWDQ\ZSU]HWZDU]DQLXQLH]E GQHMHVW

E\ SURFHV UHNXUHQF\MQHJR SU]HWZDU]DQLD GU]HZD GRV]HGá GR SR]LRPX HOHPHQWyZ SU]HWZDU]DQ\FK

SU]H] yZ V]DEORQ  0XV] ZL F LVWQLHü V]DEORQ\ SU]HWZDU]DMFH QDGU] GQH SR]LRP\ Z GU]HZLH L

SU]HND]XMFHSU]HWZDU]DQLH ]DSRPRFLQVWUXNFML

xsl:apply-templates

GRNROHMQ\FKQL*V]\FK

poziomów hierarchii.

background image

126

Tomasz Traczyk

:VWDQGDUG]LHRNUHORQRL*V]DEORQLQLFMXMF\SU]HWZDU]DQLHGU]HZD WMSRZRGXMF\SU]HWZa-

U]DQLHHOHPHQWyZEH]SRUHGQLRSRGU] GQ\FKNRU]HQLDGU]HZD F]\OL

<xsl:template match="/">

<xsl:apply-templates/>

<xsl:template/>

jest szablonem wbudowanym (built-in template

LQLHZ\PDJDVL MHJRSRGDZDQLD

3U]HWZDU]DQLHNROHMQ\FKHOHPHQWyZNRF]\VL QDSR]LRPLHOLFLGU]HZD/LFLHGU]HZDRGSo-

ZLDGDM ]DZDUWRFL HOHPHQWyZ QDMQL*V]HJR SR]LRPX ² D ZL F WHNVWRZL QLH ]DZLHUDMFHPX MX*

]QDF]QLNyZ1DMF] FLHMWD]DZDUWRüPDE\üSU]HSLVDQDGRGU]HZDZ\MFLRZHJR6WDQGDUG;6/

RNUHODZáDQLHWDNLGoP\OQ\VSRVyESU]HWZDU]DQLDF]\OL

<xsl:template match="text()">

<xsl:value-of/>

</xsl:template>

MHVWWDN*HV]DEORQHPZEXGRZDQ\PLQLHZ\PDJDVL MHJRSRGDZDQLD

:LPSOHPHQWDFMDFK QSZ06,( V]DEORQ\ZEXGRZDQHE\ZDMMHGQDNQLHXZ]JO GQLRQHQLe-

]E GQHMHVWZyZF]DVMDZQHLFKSRGDQLHFRWH*XF]\QLRQRZSU]\NáDG]LHSRGDQ\PZUHIHUDFLH]e-

V]áorocznym [2].

3.1.2. Kontekst

Wzorce (patterns

VáX*FHGRZ\ELHUDQLDHOHPHQWyZSRGOHJDMF\FKSU]HWZDU]DQLXPDMSRVWDü

FLH*HN paths SRGDMF\FKZVSyáU] GQH axis V]XNDQHJRHOHPHQWXZ]JO GHPELH*FHJRNRQWHNVWX

.RQWHNVWWHQ]DOH*\RGV\WXDFMLZNWyUHMZ\ZRáDQD]RVWDáDLQVWUXNFMDSRZRGXMFDGRSDVRZ\ZDQLH
wzorców.

1DMZD*QLHMV]\PNRQWHNVWHPMHVWWHQ]ZL]DQ\]ZQ WU]HPV]DEORQX3U]\M WR*HNRQWHNVWHP

LQVWUXNFMLG]LDáDMF\FKZÄFLHOH´V]DEORQXMHVWWHQHOHPHQWNWyU\MHVWZáDQLHSU]HWZDU]DQ\SU]H]

yZV]DEORQ:]RUFHX*\ZDQHZÄFLHOH´V]DEORQXVZL FSRGDZDQHZ]JO GHPELH*FHJRHOHPHQWX
dopasowanego do wzorca

match

szablonu.

5HNXUHQF\MQH SU]HWZDU]DQLH SRZRGXMH ZL F ÄZ GUyZN ´ NRQWHNVWX SR NROHMQ\FK SR]LRPDFK

GU]HZD ZHMFLRZHJR  8DNW\ZQLHQLH V]DEORQX QD VNXWHN G]LDáDQLD LQVWUXNFML

xsl:apply-

templates

SRZRGXMH]PLDQ NRQWHNVWXRMHGHQSR]LRPZNLHUXQNXOLFLGU]HZD

3

.

']L NLWHPXUR]ZL]DQLXZ]RUFH

match

V]DEORQyZQLHPXV]]DZLHUDüFLH*HNEH]Z]JO GQ\FK

LWHQVDPV]DEORQPR*HE\üZ\NRU]\VWDQ\GRSU]HWZDU]DQLDWDNLFKVDP\FK]QDF]QLNyZXPLHV]F]o-

Q\FKQDUy*Q\FKSR]LRPDFKKLHUDUFKLLHOHPHQWyZ:SU]\NáDG]LHZWDNLVSRVyEVSU]HWZDU]DQH
np. znaczniki

<I>

.

3.1.3. Konflikty

wzorców

=GDU]\üVL PR*HL*GRGDQHJRHOHPHQWXZGU]HZLHZHMFLRZ\PSDVXMZ]RUFHNLONXV]DEOo-

QyZÏZNRQIOLNWMHVWUR]VWU]\JDQ\]SRPRFRNUHORQ\FKZVSHF\ILNDFMLSULRU\WHWyZ6WRVRZDQ\

MHVWW\ONRWHQ]V]DEORQyZNWyUHJRZ]RU]HFPDQDMZ\*V]\SULRU\WHW

-HOLSULRU\WHW\SDVXMF\FKZ]RUFyZVUyZQHWRGHF\GXMHNROHMQRüXPLHV]F]HQLDV]DEORQyZZ

skrypcie — stosowany jest ostatni z szablonów.

3

:;6/7LVWQLHMHZD*Q\Z\MWHNRGWHMUHJXá\GRW\F]F\V]DEORQyZQD]ZDQ\FK

background image

- ]\N;6/

127

3.1.4. Przetwarzanie

proceduralne

8]XSHáQLHQLHPSU]HWZDU]DQLDUHNXUHQF\MQHJR]DSRPRFV]DEORQyZMHVWSU]HWZDU]DQLHSURFHGu-

UDOQH  : ÄFLHOH´ V]DEORQX PR*H ]QDMGRZDü VL  SURJUDP ]DSLVDQ\ ]D SRPRF LQVWUXNFML S WOL

xsl:for-each

czy warunków

xsl:if

lub

xsl:choose

.

3 WOD

xsl:for-each

XPR*OLZLDLWHUDF\MQHSU]HJOGDQLHHOHPHQWyZGRSDVRZDQ\FKGRZ]RUFD

podanego w atrybucie

select

:SU]\NáDG]LHZ\NRU]\VWDQRS WO GRZ\SHáQLDQLDWDEHOL

Instrukcja warunkowa

xsl:if

 Z\NRU]\VW\ZDQD MHVW F] VWR GR WZRU]HQLD HOHPHQWyZ GU]HZD

Z\MFLRZHJRSRFKRG]F\FKRGRSFMRQDOQ\FKHOHPHQWyZZHMFLRZHJRGRNXPHQWX-HOLZDWU\Eu-
cie

test

SRGDP\Z]RU]HFWRZDUXQHNE G]LHVSHáQLRQ\JG\ZVND]\ZDQ\SU]H]yZZ]RU]HFHOe-

PHQWOXEDWU\EXWLVWQLHMH:]RUFHGHILQLRZDQHVZM ]\NX;3DWKZNWyU\PPR*QDSRGDZDüZa-
runki logiczne w postaci tzw. predykatów.

Instrukcja

xsl:if

QLHPDF] FLelse-HOLZL FSRWU]HEQDMHVWWHJRW\SXNRQVWUXNFMDWRZ\No-

U]\VWDü QDOH*\ LQVWUXNFM  ]ZURWQLF\

xsl:choose

  0D RQD SRVWDü FLJX DOWHUQDW\ZQ\FK EORNyZ

ZDUXQNRZ\FK]PR*OLZRFLSRGDQLDEORNXGRP\OQHJR

<xsl:choose>

<xsl:when test="...">

...

</xsl:when>

...

<xsl:otherwise>

...

</xsl:otherwise>

</xsl:choose>

3.1.5.

7ZRU]HQLHGU]HZDZ\MFLRZHJR

,QVWUXNFMHLWHNVW\]DZDUWHZÄFLHOH´V]DEORQXPDM]D]DGDQLHXWZRU]HQLHRGSRZLHGQLHMF] FL

GU]HZD Z\MFLRZHJR  : W\P FHOX RNUHORQR V]HUHJ LQVWUXNFML VáX*F\FK GR WZRU]HQLD VWUXNWXU\

GU]HZDZ\MFLRZHJRQS

xsl:element

VáX*\GRWZRU]HQLDHOHPHQWyZZGU]HZLHZ\MFLRZ\P SDWU]SU]\NáDG 

xsl:attribute

XPR*OLZLDGRGDQLHDWU\EXWXGRRVWDWQLRXWZRU]RQHJRHOHPHQWX

xsl:text

XPLHV]F]DZGU]HZLHZ\MFLRZ\PSRGDQ\ZLQVWUXNFMLWHNVW

xsl:comment

SR]ZDODXPLHV]F]DüZGU]HZLHZ\MFLRZ\PNRPHQWDU]H SDWU]SU]\NáDG 

xsl:processing-instruction

WZRU]\LQVWUXNFM SU]HWZDU]DQLD

'RSU]HQRV]HQLDGRGU]HZDZ\MFLRZHJR]DZDUWRFLHOHPHQWyZOXEDWU\EXWyZVáX*\LQVWUXNFMD

xsl:value-of

 SDWU]SU]\NáDG). Instrukcje

xsl:copy

i

xsl:copy-of

SR]ZDODMQDVNRSLRZa-

QLHFDá\FKIUDgPHQWyZGU]HZDZHMFLRZHJRGRGU]HZDZ\MFLRZHJR

3U]\M WRWH*ZD*QLEDUG]RZ\JRGQ]DVDG L*ZV]\VWNLHF] FLÄWHNVWRZH´VNU\SWX²WMWH

NWyUHQLHQDOH*GRSU]HVWU]HQLQD]Z

xsl

OXELQQHMSU]HVWU]HQLQD]Z]QDQHMSURFHVRURZL;6/²V

po prostu kopiowane „literalnie” (tzw. literal result elements

 GR GU]HZD Z\MFLRZHJR  -HOL Z

RZ\FKF] FLDFKV]QDF]QLNL QS+70/ WRPXV]VSHáQLDüZDUXQNLSRSUDZQRFLZVHQVLHwell-
formed

  .RQWHNVW GR NWyUHJR VNRSLRZDQH ]RVWDQ RGSRZLHGQLH F] FL VNU\SWX MHVW Z\]QDF]RQ\

SU]H]LQVWUXNFM ;6/ZHZQWU]NWyUHM]QDMGXMHVL NRSLRZDQ\WHNVW-HVWWREDUG]RF] VWRZ\NRU]y-

VW\ZDQDFHFKDX*\WRMHMWH*ZSU]\NáDG]LH²ZWHQVSRVyEWZRU]RQHVQSZ\MFLRZH]QDF]QLNL
HTML.

3.1.6. Sortowanie

:W\FKLQVWUXNFMDFK;6/NWyUHSU]HWZDU]DM]ELRU\HOHPHQWyZ QS

xsl:apply-templates

czy

xsl:for-each

PR*OLZHMHVWZ\NRQDQLHVRUWRZDQLDWMSU]HND]DQLHGRGU]HZDZ\MFLRZHJR

background image

128

Tomasz Traczyk

HOHPHQWyZXSRU]GNRZDQ\FKZ]JO GHPZDUWRFLHOHPHQWXOXEDWU\EXWX:VWDUV]HMZHUVML;6/GR

RNUHOHQLDVSRVREXVRUWRZDQLDVáX*\áDWU\EXW

order-by

 SDWU]SU]\NáDGZUHIHUDFLH>2]). W XSLT

ZSURZDG]RQR GRGDWNRZ LQVWUXNFM  R ZL NV]\FK PR*OLZRFLDFK

xsl:sort

 SDWU] SU]\NáDG  

:DUWRüDWU\EXWX

select

GHF\GXMHRW\PZHGáXJ]DZDUWRFLNWyUHJRHOHPHQWXF]\DWU\EXWXZy-

NRQDQH PD E\ü VRUWRZDQLH  2NUHOLü PR*QD WDN*H LQQH FHFK\ VRUWRZDQLD QS M ]\N RG NWyUHJR

]DOH*\NROHMQRü]QDNyZDOIDEeWX SRU]GHN URVQF\OXEPDOHMF\ LWS

3.2. XPath

:ZLHOXLQVWUXNFMDFK;6/VWRVXMHVL Z]RUFHGRZ\V]XNLZDQLDRGSRZLHGQLFKHOHPHQWyZOXE

DWU\EXWyZZGU]HZLHZHMFLRZ\P3RQLHZD*WDNLHVDPHZ]RUFH]DSLVDQHZSRVWDFLFLH*HN pa-
ths

X*\ZDQHVWDN*HGRDGUHVRZDQLDIUDJPHQWyZGRNXPHQWyZZM ]\NX;3RLQWHU SDWU]>4]) i

]DSHZQHE GSRGVWDZVSHF\ILNDFMLM ]\ND]DS\WD;0/Query (patrz [4@ VSHF\ILNDFM M ]\ND
wzorców wydzielono i nazwano XPath [10].

:\V]XNLZDQLHRGE\ZDVL  Z GU]HZLH ZHMFLRZ\P  : ]á\ nodes  WHJR GU]HZD RGSRZLDGDM

HOHPHQWRPDWU\EXWRPRUD]WHNVWRPVWDQRZLF\P]DZDUWRüHOHPHQWyZ7DN*HNRPHQWDU]HLLn-

VWUXNFMHSU]HWZDU]DQLDSRZRGXMSRZVWDQLHRGSoZLHGQLFKZ ]áyZZGU]HZLHZHMFLRZ\P

FLH*NL ]D SRPRF NWyU\FK ]DSLVXMH VL  Z]RUFH PDM RG]ZLHUFLHGODü PLHMVFH SRV]XNLZDQHJR

HOHPHQWXZGU]HZLH²Z]RURZDQRVL WX]DSHZQHQDFLH*NDFK]QDQ\FK]V\VWHPX8QL[FLH*ND

RNUHOD SRáR*HQLH V]XNDQ\FK Z ]áyZ Z GU]HZLH ZHMFLRZ\P RUD] ZDUXQNL NWyUH PXV] VSHáQLDü

V]XNDQHZ ]á\

FLH*ND;3DWKVNáDGDVL ]RGG]LHORQ\FKXNRQLNDPL

/

) kroków (steps

.D*G\]NURNyZPR*H

E\ü

VSHF\ILNDWRUHPZVSyáU] GQ\FK axis specifier);

WHVWHPZ ]áD node test HZHQWXDOQLHX]XSHáQLRQ\PSUHG\NDWHP

:Z\QLNXZ\V]XNLZDQLD]DSRPRFZ]RUFD;3DWKRGQDMG\ZDQHVRGSRZLHGQLHZ ]á\GU]HZD

ZHMFLRZHJR-HOLZ]RU]HFÄSDVXMH´GRZLHOXRELHNWyZWRZ\QLNZ\V]XNDQLD]DZLHUDMHZV]\Vt-
kie.

3.2.1.

:VSyáU] GQH

=DSLVR]QDF]DMF\W]ZZVSyáU] GQH axis Z\V]XNLZDQHJRHOHPHQWXVáX*\GRRNUHOHQLDPLHj-

VFDZGU]HZLHZHMFLRZ\PZNWyU\PZ\V]XNLZDQHE GHOHPHQW\:VSyáU] GQHV]Z\NOHSo-

GDZDQHZ]JO GHPELH*FHJRNRQWHNVWXPR*QDWH*SRGDüZVSyáU] GQHEH]Z]JO GQHUR]SRF]\QDMF

FLH*N RGV\mbolu korzenia (podobnie jak w Unixie).

'R ]DSLVX ZVSyáU] GQ\FK VáX* RGSRZLHGQLH V\PEROH VáRZQH QDMZD*QLHMV]H ] QLFK PDM WH*

VNUyW\1DMF] FLHMX*\ZDQHVSHF\ILNDWRU\ZVSyáU] GQ\FKSRGDMHTabela 1.

Tabela 1

1DMF] FLHMX*\ZDQHVSHF\ILNDWRU\ZVSyáU] GQ\FKZ

XPath

Symbol

Skrót

Opis znaczenia

/

QDSRF]WNXFLH*NL

.RU]HGU]HZD

self

.

%LH*F\Z ]Há

parent

..

: ]HáEH]SRUHGQLRQDGU] GQ\

ancestor

: ]á\QDGU] GQH QLHNRQLHF]QLHEH]SRUHGQLR

child

: ]á\EH]SRUHGQLRSRGU] GQH ZVSyáU] GQHGRP\OQH

descendant

: ]á\SRGU] GQH QLHNRQLHF]QLHEH]SRUHGQLR

descendant-or-self

//

: ]á\SRGU] GQHZUD]]ELH*F\P

attribute

@

$WU\EXW\ELH*FHJRHOHPHQWX

background image

- ]\N;6/

129

6áRZQH V\PEROH ZVSyáU] GQ\FK RGG]LHOD VL  RG QDVW SXMF\FK SR QLFK NURNyZ ]QDNLHP So-

GZyMQHJR FXG]\VáRZX QS

descendant::przedmiot

oznacza wszystkie elementy typu

przedmiot

, pod

U] GQH QLHNRQLHF]QLHEH]SRUHGQLR ZVWRVXQNXGRELH*FHJRZ ]áD

3.2.2.

7HVW\Z ]áyZ

7HVW Z ]áD node test  SRGDMH NWyUH HOHPHQW\ V Z\V]XNLZDQH Z RNUHORQ\P SU]H] SRGDQH

ZVSyáU] GQHREV]DU]HGU]HZD7HVWWHQPR*HZ\V]XNLZDüHOHPHQW\DWU\EXW\OXEZ ]á\WHNVWRZH

=DSLV WHVWX Z ]áD ]DZLHUD QD]Z  Z\V]XNLZDQHJR HOHPHQWX

4

 QD]Z  DWU\EXWX OXE RNUHOHQLH W\SX

Z ]áD6\PEROHW\SyZZ ]áyZ]HVWDZLDTabela 2.

Tabela 2

6\PEROHW\SyZZ ]áyZZ

XPath

Symbol

Opis znaczenia

node()

'RZROQ\Z ]Há

*

Dowolny element

@*

Dowolny atrybut

text()

: ]HáWHNVWRZ\

comment()

: ]HáNRPHQWDU]D

processing-instruction()

: ]HáLQVWUXNFMLSU]HWZDU]ania

.URNZFLH*FHPR*H]DZLHUDüDOWHUQDW\Z NLONXWHVWyZRGG]LHORQ\FKSLRQRZNUHVN

|

); wy-

ko

U]\VWDQRWRZSU]\NáDG]LH

3.2.3. Predykaty

7HVWZ ]áDPR*HE\üRJUDQLF]DQ\SUHG\NDWHPNWyU\SRGDMHZDUXQHNMDNLPXV]VSHáQLDüZy-

V]XNLZDQHZ ]á\3UHG\NDWSRGDMHVL ZQDZLDVDFKNZDGUDWRZ\FKEH]SRUHGQLRSRWHNFLHWHVWX

Z ]áD

1DMSURVWV]\SUHG\NDW]DZLHUDOLF]E NWyUDRNUHODNROHMQ\QXPHUHOHPHQWXQS

przedmiot[2]

R]QDF]DGUXJLHOHPHQWW\SXSU]HGPLRW=DPLDVWOLF]E\PR*HE\üX*\W\V\PEROIXQNFMLRNUHODMFHM
numer kolejny, np.

przedmiot[last()]

R]QDF]DRVWDWQLZNROHMQRFLHOHPHQWW\SX

przedmiot

.

3UHG\NDW]DZLHUDüPR*HZHZQWU]FLH*N ]DSLVDQZ]JO GHPNRQWHNVWXWHJRZ ]áDNWyUHJR

WHVWMHVWRJUDQLF]DQ\GDQ\PSUHG\NDWHP7DNLSUHG\NDWMHVWSUDZG]LZ\MHOLRZDFLH*NDSURZDG]L

GR LVWQLHMFHJR HOHPHQWX  1S ]DSLV

przedmiot[slowo_kluczowe]

oznacza elementy typu

przedmiot

SRVLDGDMFHSRGU] GQHHOHPHQW\W\SX

slowo_kluczowe

8*\ZDMFIXQNFML

not()

PR*HP\

]QDOH(ü

SU]HGPLRW\

QLH

PDMFH

VáyZ

NOXF]RZ\FK

przed-

miot[not(slowo_kluczowe)]

.

3UHG\NDWPR*H]DZLHUDüZDUXQHNORJLF]Q\PDMF\]UHJXá\SRVWDüSRUyZQDQLD:SRUyZQDQLX

X*\WDPR*HE\üZDUWRüHOHPHQWXOXEDWU\EXWXQS

przedmiot[@id='KBD2']

wyszuka element

typu

przedmiot

o identyfikatorze ‘KBD2’

5

8*\üWH*PR*QDVSHFMDOQ\FKIXQNFMLLRSHUDWRUyZQS

przedmiot[position() mod 2 = 0]

wyszuka przedmioty o parzystych pozycjach.

=HVWDZLHQLHZD*QLHMV]\FKIXQNFMLLRSHUDWRUyZSRGDMHTabela 3.

Tabela 3

:D*QLHMV]HRSHUDWRU\LIXQNFMHZSUHG\NDWDFK

XPath

Symbol

Opis znaczenia

=

,

!=

,

<

,

>

,

<=

,

>=

Porównania

4

1D]ZDHOHPHQWXPR*HE\üSRSU]HG]RQDQD]ZSU]HVWU]HQLQD]Z namespace) i dwukropkiem.

5

-HOLZZDUXQNXZ\VWSLüPDVWDáD]QDNRZDWRMHVWRQDXMPRZDQDZSRMHG\QF]HDSRVWURI\

background image

130

Tomasz Traczyk

or

,

and

,

not(...)

Operacje logiczne

+

,

-

,

div

,

mod

Operacje arytmetyczne

position()

1XPHUNROHMQ\Z ]áD ZUyGZ ]áyZWHJRVDPHJRW\SX

last()

1XPHUNROHMQ\RVWDWQLHJR]Z ]áyZWHJRVDPHJRW\SX

count(...)

/LF]EDZ ]áyZSDVXMF\FKGRZ]RUFDSRGDQHJRZDUJXPHQFLH

name()

Nazwa elementu/atrybutu

string(...)

Konwersja na napis

format-number(...)

Konwersja liczby na napis z formatowaniem

number(...)

.RQZHUVMDQDOLF]E

normalize-space(...)

8VXQL FLHZLRGF\FKLNRFRZ\FKVSDFML

starts-with(...)

7HVWSRF]WNXWHNVWX

contains(...)

7HVW]DZDUWRFLWHNVWX

3UHG\NDW\PRJE\üX*\WHZZLHOXPLHMVFDFKZMHGQHMFLH*FHZV] G]LHWDPJG]LHX*\WRWHVWX

Z ]áD  1S

przedmiot[contains(@id,'2')]/slowo_kluczowe[. !='Oracle']

poda

Uy*QHRGµ2UDFOH¶VáRZDNOXF]RZHSU]HGPLRWyZNWyU\FKLGHQW\ILNDWRU]DZLHUDF\IU 

: ZDUXQNDFK SRUyZQ\ZDü PR*QD ZDUWRFL HOHPHQWyZ OXE DWU\EXWyZ Uy*Q\FK RG ELH*FHJR

NRQWHNVWX²SRGDMHVL GRQLFKFLH*N QS

SU]HGPLRW>F]HVFBNRQVSHNWX#LG 7UHü @

oznacza elementy typu

przedmiot

PDMFHHOHPHQW\SRGU] GQH QLHNRQLHF]QLHEH]SRUHGQLR W\SX

czesc_konspektu

RLGHQW\ILNDWRU]Hµ7UHü¶

3.3. XSLT

3RF]WNRZRM ]\NWUDQVIRUPDFMLQLHE\áZ\G]LHORQ\]HVSHF\ILNDFML;6/:URNXGRNRQa-

QRWDNLHJRZ\G]LHOHQLDLRSXEOLNRZDQRRVREQVSHF\ILNDFM ;6/7 XSL Transformations) [9]. W

VSHF\ILNDFMLWHMGRNRQDQRLVWRWQ\FK]PLDQLX]XSHáQLHM ]\ND3RZRGXMHWRL*ZF]HQLHMV]HLm-

SOHPHQWDFMH;6/QLHG]LDáDM];6/7:V]F]HJyOQRFLGRW\F]\WRSURFHVRUD;6/ZEXGRZDQHJR
w popu

ODUQSU]HJOGDUN 06,(

1DMZD*QLHMV]H]PLDQ\ZSURZDG]RQHZVSHF\ILNDFML;6/7RSLVDQRQL*HM

3.3.1. Zmienne

:VNU\SFLH;6/7PR*QDGHILQLRZDü]PLHQQH6áX*\GRWHJRLQVWUXNFMD

xsl:variable

, mo-

JFDSU]\EUDüGZLHSRVWDFLH

<xsl:variable name="

nazwa_zmiennej" select="

Z\UD*HQLH"/>

<xsl:variable name="

nazwa_zmiennej">wzorzec</xsl:variable>

3LHUZV]D]W\FKSRVWDFLSRGDMHZDUWRüMDNRZ\QLNZ\UD*HQLDGUXJDSRZRGXMHZ\OLF]HQLHZDr-

WRFLMDNRUR]ZLQL FLDSRGDQHJRZ]RUFD=PLHQQDPR*H]DZLHUDüZDUWRüWHNVWRZ]ELyUZ ]áyZ

OXEGU]HZRZ ]áyZ

=DVL J ]PLHQQHM ]GHILQLRZDQHM Z RNUHORQ\P HOHPHQFLH VNU\SWX ;6/ REHMPXMH WHQ HOHPHQW

RUD]MHJRHOHPHQW\SRGU] GQH,QVWUXNFMD

xsl:variable

PR*HE\üX*\WDMDNRW]Ztop-level ele-

ment

WMHOHPHQWEH]SRUHGQLRSRGSRU]GNRZDQ\HOHPHQWRZLJáyZQHPX

xsl:stylesheet

. Tak

zdefiniowana zmienna jest globalna.

=GHILQLRZDQD]PLHQQDPR*HE\üX*\WDZDWU\EXWDFKLQVWUXNFML;6/ZV] G]LHWDPJG]LHRF]e-

NLZDQDMHVWZDUWRüZ\UD*HQLD1D]Z ]PLHQQHMSRSU]HG]DVL ]QDNLHP

$

.

=PLHQQHM DWDN*HSDUDPHWUXOXEZ\UD*HQLD PR*QDX*\üGRSRGVWDZLHQLDZDUWRFLWDNLHJRDWUy-

EXWXZNWyU\PRF]HNLZDQDMHVWZDUWRüWHNVWRZD7DNFHFK PDMQSDWU\EXW\

name

instrukcji

xsl:element

i

xsl:attribute

:WDNLFKV\WXDFMDFKZ\UD*HQLH OXEQD]Z ]PLHQQHMSRSU]e-

background image

- ]\N;6/

131

G]RQ]QDNLHP

$

XMPXMHVL GRGDWNRZRZQDZLDV\NODPURZH²R]QDF]DWRL*ZDUWRü]PLHQQHM

OXEZ\UD*HQLDE G]LH]DPLHQLRQDQDQDSLV.RQVWUXNFM W Z\NRU]\VWDQRZSU]\NáDG]LH

3.3.2. Tryby

(modes)

=GDU]DVL L*WHQVDPHOHPHQWSRZLQLHQE\üSU]HWZDU]DQ\NLONXNURWQLHZUy*Q\FKNRQWHNVWDFK

6WRVXMFSURVW\PHFKDQL]PV]DEORQyZ]Z]RUFDPLQLHPR*QD]Uy*QLFRZDüVSRVREXSU]HWZDU]DQLD

Z]DOH*QRFLRGNRQWHNVWX'ODWHJRXPR*OLZLRQRGRGDQLHGRV]DEORQXDWU\EXWX

mode

, który umo

*-

OLZLD Z\EUDQLH NRQNUHWQHJR V]DEORQX VSRUyG NLONX PDMF\FK Z]RU]HF SDVXMF\ GR GDQHJR HOe-

PHQWX  :\ZRáXMF SU]HWZDU]DQLH UHNXUHQF\MQH LQVWUXNFM

xsl:apply-templates

 PR*HP\ M

WDN*H X]XSHáQLü R DWU\EXW

mode

 :\ELHUDP\ Z WHQ VSRVyE WHQ VSRUyG V]DEORQyZ R SDVXMF\P

Z]RUFXNWyU\PDWDNVaPZDUWRüDWU\EXWX

mode

.

3.3.3. Szablony

nazwane

,QQ\PHFKDQL]PXPR*OLZLDZ\ZRá\ZDQLHSU]HWZDU]DQLD]DSRPRFNRQNUHWQHJRV]DEORQX²Z

WHQ VSRVyE PR*QD ]EXGRZDü V]DEORQ X*\ZDQ\ GR SU]HWZDU]DQLD Uy*Q\FK HOHPHQWyZ QLH SDVXM-

F\FKGRZVSyOQHJRZ]RUFD']LDáDWRZVSRVyE]EOL*RQ\GRZ\ZRáDQLDSURFHGXU\

6]DEORQNWyU\PDE\üZWHQVSRVyEX*\W\X]XSHáQLDVL RDWU\EXWRQD]ZLH

name

²VWDMHVL RQ

tzw. szablonem nazwanym (named template

6]DEORQWDNLPR*QDZ\ZRáDüLQVWUXNFM

<xsl:call-template name="

nazwa_szablonu"/>

:SU]\SDGNXWDNLHJRZ\ZRáDQLDNRQWHNVWZNWyU\PG]LDáDMLQVWUXNFMH]DZDUWHZÄFLHOH´V]a-

EORQXQLH]PLHQLDVL L²LQDF]HMQL*GODZ\ZRáDQLDQDVNXWHN

xsl:apply-templates

— pozo-

VWDMHWDNLVDPMDNLRERZL]\ZDáGODPLHMVFDVNGV]DEORQZ\ZRáDQR

6]DEORQQD]ZDQ\PR*HPLHüSDUDPHWU\3DUDPHWU\IRUPDOQHV]DEORQXGHILQLXMHVL XPLHV]F]a-

MFZMHJRZQ WU]XLQVWUXNFMH

xsl:param

1D]Z SDUDPHWUXSRGDMHDWU\EXW

name

DZDUWRüGo-

P\OQRNUHODVL WDNMDNGOD]PLHQQHM

'R ZDUWRFL WDN ]GHILQLRZDQHJR SDUDPHWUX RGZRá\ZDü VL  PR*QD ZHZQWU] V]DEORQX SU]H]

podanie jego nazwy poprzedzonej znakiem

$

— podobnie jak do zmiennych.

:FHOXSU]HND]DQLDSDUDPHWUyZDNWXDOQ\FKSU]\Z\ZRáDQLXV]DEORQXZ]DZDUWRFLHOHPHQWX

xsl:call-template

XPLHV]F]DVL LQVWUXNFMH

xsl:with-param

=QRZXQD]Z SDUDPHWUXSo-

GDMHVL ZDWU\EXFLH

name

]DZDUWRüRNUHODVL WDNMDNGOD]PLHQQHM²SRGDMFZ\UD*HQLHZ

atrybucie

select

OXEZ]RU]HFZHZQ WU]XHOHPHQWX

3.3.4.

:áF]DQLHSOLNyZ;6/

:;6/7LVWQLHMLQVWUXNFMH

xsl:include

i

xsl:import

XPR*OLZLDMFHZáF]DQLHGRELH*-

FHJRVNU\SWX]DZDUWRFLLQQHJRSOLNX;6/$GUHV 85, ZáF]DQHJRSOLNXSRGDMHVL ZDWU\EXFLH

href

. Instrukcja

xsl:include

SRZRGXMHZáF]HQLH]DZDUWRFLSOLNXZPLHMVFXZ\VWSLHQLDLn-

VWUXNFMLZáF]RQD]DZDUWRüMHVWZL FWUDNWRZDQDWDNVDPRMDNSR]RVWDáDWUHüVNU\SWX1DWRPLDVW

X*\FLHLQVWUXNFML

xsl:import

SRZRGXMH*H]DLPSRUWRZDQHV]DEORQ\VSU]HWZDU]DQH]QL*V]\P

priory

WHWHPQL*V]DEORQ\ORNDOQH

3.4. Formatowanie

&KRüREHFQLHGRIRUPDWRZDQLDGRNXPHQWyZZ;0/QDMF] FLHMVWRVXMHVL SU]HNV]WDáFDQLHLFK

QD +70/ Z SURSR]\FML VSHF\ILNDFML ;6/ SU]HZLG]LDQR GR WHJR FHOX VSHFMDOQ\ M ]\N RELHNWyZ
forma

WXMF\FK

'RNXPHQW;0/PDE\ü]DSRPRF;6/7SU]HNV]WDáFDQ\GRSRVWDFLGU]HZDRZ\FKRELHNWyZ

IRUPDWXMF\FKNWyUHPDE\üLQWHUSUHWRZDQHSU]H]SU]HJOGDUNLLZ\ZLHWODQH0R*OLZRFLIRUPa-

WRZDQLDZ;6/VWDQRZLPQLHMZL FHMVXP PR*OLZRFLM ]\NyZ+70/L&66

background image

132

Tomasz Traczyk

:VSHF\ILNDFML;6/]GHILQLRZDQRVáRZQLNRELHNWyZIRUPDWXMF\FK3RZRáDQRGODQLFKRVREQ

SU]HVWU]HQD]Z

fo

.

3.4.1. Model

prezentacji

dokumentu

:;6/SU]\M WRPRGHOSUH]HQWDFMLZNWyU\PGRNXPHQWPR*H]DZLHUDüQDVW SXMFHRELHNW\

page-sequence

²JáyZQHF] FLGRNXPHQWXUy*QLFHVL PL G]\VREUR]NáDGHPVWURQ\

flow

²F] FLGRNXPHQWXPDMFHFKDUDNWHUVHNFML UR]G]LDá\SRGUR]G]LDá\LWS ]DZDUWHZ

obiektach page-sequence;

block

²DNDSLW\LSRGREQHF] FLGRNXPHQWX

inline

²F] FLDNDSLWyZUy*QLFHVL QSF]FLRQN

wrapper

²ÄQLHZLG]LDOQH´RELHNW\E GFHF] FLDPLEORNXOXEinlineVáX*FHGRÄ]DF]HSLe-

QLD´GDMF\FKVL G]LHG]LF]\üZáDFLZRFL

graphic

²UHIHUHQFMHGR]HZQ WU]Q\FKRELHNWyZJUDILF]Q\FK

list

²OLVW\ EORNOLVW\VNáDGDVL ]HOHPHQWyZOLVW\ND*G\HOHPHQWPDZ\G]LHORQHW\NLHW 

table — tabele (o budowie podobnej jak w HTML).

;6/]DZLHUDWDN*H]áR*RQ\PRGHOVWURQLFRZDQLDGRNXPHQWyZ

3.4.2.

:áDFLZRFLL]DZDUWRüRELHNWyZ

2ELHNW\IRUPDWXMFHPDMZáDFLZRFL SRGDZDQHMDNRDWU\EXW\ NWyUHGHF\GXMRLFKVSRVRELH

SUH]HQWDFML'RW\SRZ\FKZáDFLZRFLQDOH*F]FLRQNDPDUJLQHVLZáDFLZRFLGRW\F]FHRGVW -

SyZZáDFLZRFLGRW\F]FHMXVWRZDQLDZFL FLDLWGQS

<fo:page-sequence font-family="serif" font-size="12pt">

RNUHODF]FLRQN X*\ZDQGRIRUPDWRZDQLDÄGX*HM´F] FLGRNXPHQWX

:áDFLZRFLPDMZDUWRFLGRP\OQH1LHNWyUHZáDFLZRFLSRGOHJDMG]LHG]LF]HQLX²RELHNW\

SRGU] dQHG]LHG]LF]MHRGQDGU] GQ\FK

7HNVWSRGOHJDMF\IRUPDWRZDQLXMHVWXPLHV]F]DQ\MDNR]DZDUWRüHOHPHQWyZIRUPDWXMcych.

4. Zastosowania XSL

3RGVWDZRZ\P]DVWRVRZDQLHP;6/MHVWRF]\ZLFLHIRUPDWRZDQLHGRNXPHQWyZZ;0/-Hd-

QDN*HRND]DáRVL *H;6/PR*HE\ü]SRZRG]HQLHPZ\NRU]\VW\ZDQ\GRLQQ\FKFHOyZZV] G]LH

WDPJG]LHSRWU]HEQHMHVWSU]HNV]WDáFDQLHGRNXPHQWyZ

4.1. Implementacje

2EHFQLHLVWQLHMHVSRURLPSOHPHQWDFML;6/DOHGRW\F]RQHQLHPDOZ\áF]QLHM ]\NDWUDQVIRr-

PDFML)DGQD]SRSXODUQ\FKSU]HJOGDUHNQLHUR]XPLHM ]\NDRELHNWyZIRUPDWXMF\FK

,VWQLHMFHLPSOHPHQWDFMH;6/]Z\NOH]ZL]DQHV]SDUVHUDPL;0/QDWRPLDVWZL NV]RüLVt-

QLHMF\FKSU]HJOGDUHNQLH]DZLHUDREVáXJL;6/

1DMSRSXODUQLHMV]\P QDU] G]LHP Z\SRVD*RQ\P Z SURFHVRU ;6/ MHVW QLHZWSOLZLH Microsoft

Internet Explorer 5

:EXGRZDQRZHREVáXJ ZL NV]HMF] FLLQVWUXNFML;6/GRW\F]F\FKWUDQs-

formacji, ale w wersji sprzed specyfikacji XSLT.

1LHZWSOLZ]DOHW06,(MHVWIDNW*HSURFHVRU;0/MHVWZEXGRZDQ\ZSU]HJOGDUN PR*QD

ZL FSU]HV\áDüGRQLHMEH]SRUHGQLRGRNXPHQW\Z;0/LDUNXV]HVW\OLVW\F]QHZ;6/3U]HJOGDr-

NDGRNRQXMHWUDQVIRUPDFMLQD+70/LSUH]HQWDFMLZ\QLNRZHJRGRNXPHQWX8*\WNRZQLNPDGRVW S

background image

- ]\N;6/

133

GR(UyGáRZHJRGRNXPHQWXZ;0/ PR*HJRX*\üQSGRGDOV]HJRSU]HWZDU]DQLD 3R]DLQVWDOo-

ZDQLXGRVW SQ\FKRGQLHGDZQDSRSUDZHNX*\WNRZQLNPR*HWDN*HREHMU]HüZ\QLNWUDQVIRUPDFML²
jest to bardzo przydatne w czasie uruchamiania skryptów XSL. Zarówno dokument XML jak ar-
kusz styli

VW\F]Q\PRJE\üSU]HFKRZ\ZDQHZSDPL FLcacheSU]HJOGDUNL

1LHVWHW\SRQLHZD*Z06,(ZEXGRZDQRVWDUZHUVM ;6/QLHPR*QDX*\üQRZ\FKPR*OLZo-

FL;6/73UDFHQDGSURFHVRUHP;6/7VMHGQDN]DDZDQVRZDQHPR*QDJRQDZHWGRLQVWDORZDü

GR SU]HJOGDUNL  :\ZRáDQLH QRZHJR SURFHVRUD MHVW MHGQDN PR*OLZH MHG\QLH SURJUDPRZR QS ]
programu

9%6FULSW LQLHPR*HRQE\üQRUPDOQLHX*\W\GRIRUPDWRZDQLDGRNXPHQWyZon-line.

Konkurencja — czyli firma

1HWVFDSH²WDN*HSUDFXMHQDGREVáXJ;0/ZVZRMHMSU]HJOGDUFH

Niestety, nawet w najnowszych wersjach próbnych programu nie ma wsparcia dla XSL, a arkusze

VW\OLVW\F]QHGRGRNXPHQWyZ;0/GHILQLRZDüPR*QDMHG\QLHZ&66

4.2. XSL a Oracle

2UDFOHRGGáX*V]HJRF]DVXSRSLHUDUR]ZyML]DVWRVRZDQLD;0/7RWH*MX*RGSRQDGURNXGo-

VW SQH V Uy*QRURGQH QDU] G]LD XPR*OLZLDMFH WZRU]HQLH DSOLNDFML ;0/ Z W\P WDN*H SURFHVRU
XSLT.

3URFHVRUWHQZFKRG]LZVNáDGSDNLHWXOracle XML Developer’s Kit (XDK). Pakiet ów, wspóá-

SUDFXMF\]'%062UDFOHi, zawiera m.in. SDUVHU\;0/Z\SRVD*RQHZSURFHVRU;6/7SU]H]Qa-

F]RQHGODM ]\NyZ-DYD&&RUD]3/64/1S$3,SDUVHUDGODM ]\ND-DYDXGRVW SQLDNODV\

XSLStylesheet

i

XSLProcessor

 ZUD] ] RGSRZLHGQLPL PHWRGDPL NWyUH SU]HWZDU]DM GRNu-

PHQW\;0/]X*\FLHPDUNXV]\VW\OLVW\F]Q\FKZ;6/

3U]HWZDU]DQLH]DSRPRF;6/7PR*HE\üX*\WHGRIRUPDWRZDQLDZ\QLNyZG]LDáDQLDZFKRG]-

FHJRZVNáDG;'.QDU] G]LDOracle SQL Utility for Java1DU] G]LHWRQDSRGVWDZLHSRGDQHJR

]DS\WDQLDZ64/WZRU]\GRNXPHQW;0/]DZLHUDMF\Z\QLN]DS\WDQLDRVWDQGDUGRZ\Pgenerycz-

Q\P IRUPDFLH  'RNXPHQW WHQ PR*QD SURJUDPRZR SRGGDü WUDQVIRUPDFML ]D SRPRF ;6/7 X]y-

VNXMFSR*GDQ\IRUPDWZ\QLNRZ\1DU] G]LHPR*HWDN*HZF]\W\ZDüGDQH]SOLNyZ;0/GRED]\

GDQ\FK DOH ZyZF]DV GDQH PXV] E\ü SRGDQH Z SOLNX R XVWDORQHM VNáDGQL  8*\ZDMF SURFHVRUD

;6/7PR*QDSU]HNV]WDáFLüRU\JLQDOQ\GRNXPHQW;0/GRSRVWDFLZ\PDJDQHMSU]H]QDU] G]LH

3URFHVRU;6/7SHáQLZD*QURO ZG]LDáDQLXNROHMQHJRVNáDGQLND;'.]ZDQHJRXSQL Servlet.

1DU] G]LH WR SU]HWZDU]D ]DS\WDQLD 64/ RSDNRZDQH Z VNáDGQL  ;0/ D Z\QLNL ]DS\WDQLD WDN*H
formatuje w postaci dokumentu XML o standardowej

JHQHU\F]QHMEXGRZLH-HOLSRWU]HEQDMHVW

QSGRFHOyZSUH]HQWDFMLLQQDEXGRZDGRNXPHQWXZ\QLNRZHJRQDU] G]LHDXWRPDW\F]QLHZ\ZRáXMH

SURFHVRU;6/7NWyU\SU]HNV]WDáFDZ\QLNRZ\GRNXPHQWX*\ZDMFDUNXV]DVW\OLVW\F]QHJR:WHQ

VSRVyE]HVWDQGDUGRZ\FKZ\QLNyZ]DS\WDQLDX]\VNDüPR*QDQLHPDOGRZROQSRVWDüSUH]HQWacji.

:VNáDG;'.ZFKRG]LWDN*HFLHNDZ\SDNLHW]ZDQ\XML Transviewer Java BeansE GF\]ELo-

rem komponentów Java Beans. Jeden z tych komponentów, o nazwie XSL Transformer Bean

VáX*\

GRSU]HSURZDG]DQLDWUDQVIRUPDFMLGRNXPHQWyZ;0/]X*\FLHP;6/.RPSRQHQWWHQPR*HE\ü

X*\W\]DUyZQRSRVWURQLHVHUZHUD MDNRVNáDGQLNyZDSOLNDFMLserwerowych lub servletów), jak po
stronie klienta — np. w apletach.

0R*OLZRFLWUDQVIRUPDFML;6/VWDN*HZ\NRU]\VW\ZDQHSU]H]SURGXNWRQD]ZLHOracle Portal-

To-Go

3URGXNWWHQWUDQVIRUPXMHG\QDPLF]QLH]DZDUWRüVWURQLQWHUQHWRZ\FKQDIRUPDW\UR]XPLa-

QHSU]H]Uy*QRURGQHXU]G]HQLDZW\PQDM ]\N:0/GODWHOHIRQyZNRPyUNRZ\FK]SURWRNRáHP

:$3,QIRUPDFMH],QWHUQHWXVSU]HNV]WDáFDQHGRgenerycznego formatu ;0/RZHJRDQDVW SQLH

SURFHVRU;6/SU]HNV]WDáFDZMHGRIRUPDWyZVSHF\ILF]Q\FKGODGDQHJRXU]G]enia.

4.3.

3U]\NáDG\]DVWRVRZD;6/

1DMEDUG]LHMW\SRZ\P]DVWRVRZDQLHP;6/MHVWRF]\ZLFLHSUH]HQWDFMDGRNXPHQWyZ;0/$OH

PR*OLZRFL]DVWRVRZDQLD;6/V]QDF]QLHV]HUV]HNLOND]QLFKV]F]HJyOQLH]ZL]DQ\FK]ED]DPL
danych, opi

VDQRSRQL*HM

background image

134

Tomasz Traczyk

4.3.1. Przetwarzanie stron na serwerach WWW

=D SRPRF ;6/ PR*QD G\QDPLF]QLH SU]HWZDU]Dü VWURQ\ ::: QD VHUZHUDFK E\ XGRVW SQLü

X*\WNRZQLNRZL GDQH Z SR*GDQHM SU]H] QLHJR IRUPLH  3U]HWZDU]DQLH WDNLH PR*H GRW\F]\ü VWURQ

NUHRZDQ\FKG\QDPLF]QLHQSZZ\QLNXUHDOL]DFML]DS\WDGRED]\GDQ\FK²SU]\SDGHNWDNLRSi-

VDQRZ\*HMZRGQLHVLHQLXGRQDU] G]LDXSQL Servlet3U]HWZDU]DüZWHQVSRVyEPR*QDWDN*HVWa-
tyczne strony w HTML lub XML — tego typu zastosowanie XSL w produkcie Portal-To-Go

WDN*H

RSLVDQRZ\*HM

&LHNDZ\PSRP\VáHPMHVWG\QDPLF]QHJHQHURZDQLHDUNXV]\VW\OLVW\F]Q\FKQDSRGVWDZLH]DSa-

PL WDQ\FKZED]LHGDQ\FKSUHIHUHQFMLX*\WNRZQLND:WHQVSRVyEPR*QDWZRU]\üSRUWDOH]XVáu-

JDPLSHUVRQDOL]RZDQ\PLQLHW\ONRFRGRWUHFLDOHWDN*HFRGRIRUP\

4.3.2.

:\PLDQDGDQ\FKPL G]\ED]DPL

;0/Z\GDMHVL LGHDOQ\PPHGLXPGRZ\PLDQ\GDQ\FKPL G]\ED]DPLGDQ\FK:SOLNX;0/

SU]HQRV]RQHVQLHW\ONRGDQHDOHWDN*HPHWDLQIRUPDFMD-HGQDNMHOLPRGHOHGDQ\FKZED]LHZ\j-

FLRZHMLGRFHORZHMUy*QLVL NRQLHF]QHMHVWGRNRQDQLHRGSRZLHGQLHMWUDQVIRUPDFML;6/PR*H

E\üX*\W\GRWHMWUDQVIRUPDFML]ZáDV]F]DMHOLUy*QLFHPL G]\PRGHODPLV]QDF]QHLQLH]E GQHMHVW

]áo*RQHSU]HNV]WDáFHQLH

4.3.3. Zastosowanie XSL do tworzenia dokumentacji

$XWRUWHJRUHIHUDWXPDEDUG]RSR]\W\ZQHGRZLDGF]HQLDZQLHFRQLHW\SRZ\PVWRVRZDQLX;6/

2Wy*X*\ZDJRRVWDWQLRGRüLQWHQV\ZQLHGRSURGXNRZDQLDGRNXPHQWDFMLSURMHNWRZHMZ]áR*RQ\FK
projektach informatycznych.

;6/V]F]HJyOQLHSU]\GDMHVL ZHZF]HVQ\FKID]DFKSURMHNWX SODQRZDQLHDQDOL]DVWUDWHJLF]QD 

JG\SU]HWZDU]DQDLQIRUPDFMDMHVWZGX*HMF] FLWHNVWRZDDQLHGRNRQDQRMHV]F]HZ\ERUXQDU] G]L

GODSURMHNWX QLHPR*QDZL FSRVáX*\üVL QSSDNLHWHP&$6( 

3U]\NáDG

:GX*HMNRUSRUDFMLSURZDG]RQRSURMHNWSLORWRZ\PDMF\QDFHOXSUyEQH]DVWRVRZDQLHWHFKQLN

data mining

GRXVSUDZQLHQLDSURFHVyZEL]QHVRZ\FK3LHUZV]\PHWDSHPSURMHNWXE\áRZ\W\SRZa-

QLHW\FKSURFHVyZZNWyU\FK]DVWRVRZDQLHHNVSORUDFMLGDQ\FKMHVWZRJyOHPR*OLZH QSLVWQLHM

WDPGDQHZRGSRZLHGQLHMLORFLLMDNRFL LGDMHMDNLHQDG]LHMHQDSRSUDZ SURFHVX

6WZRU]RQR VIRUPDOL]RZDQ\ VSRVyE RSLVX SURFHVyZ EL]QHVRZ\FK ]DOH*QRFL SRPL G]\ QLPL

PDJD]\QyZ GDQ\FK L LFK X*\FLD Z SRV]F]HJyOQ\FK SURFHVDFK  :SURZDG]RQR WH* RGSRZLHGQLH
kryteria oceny.

Wyniki tak prowadzonej analizy zapisano w postaci plików w XML, o specjalnie zaprojektowa-

QHMVWUXNWXU]H3U]HNV]WDáFDMFRZHSOLNL]DSRPRFVNU\SWyZZ;6/X]\VNDQRUy*QRURGQHRSLV\L
zestawienia, w tym finalny ranking procesów najbardziej odpowiednich do zastosowania eksplora-
cji danych.

:\WZRU]RQH Z WHQ VSRVyE ]HVWDZLHQLD L RSLV\ ]áR*\á\ VL  QD JáyZQ F] ü VSUDZR]GDQLD ]

SLHUZV]HMID]\SURMHNWX&RZD*QHX]\VNDQHZ\QLNLE\á\RGUD]XVIRUPDWRZDQHZVSRVyERGSo-

ZLHGQLGR]DPLHV]F]HQLDZVSUDZR]GDQLXDXWRUQLHPXVLDáZL FWUDFLüF]DVXQDSUDFRFKáRQQHUHGa-
gowanie opracowania.

:D*Q]DOHWWHJRSRGHMFLDGRWZRU]HQLDGRNXPHQWDFMLMHVWXQLNDQLHZLHORNURWQHJR]DSLV\Za-

QLDWHMVDPHMLQIRUPDFMLFRRV]F] G]DF]DVL²FRZD*QLHMV]H²QLHGRSXV]F]DQLHVSyMQRFL,n-
formacja jest wprowadzana do pliku XML jednokrotnie, a wykorzystywana jest w wielu zestawie-
niach, produkowanych przez odpowiednie skrypty XSL.

background image

- ]\N;6/

135

.ROHMQZD*QFHFKWDNLHJRSRGHMFLDMHVWXQLNQL FLHSUDFRFKáRQQ\FKF]\QQRFLUHGDNF\MQ\FK

'RNXPHQWSU]HNV]WDáFRQ\]DSRPRF;6/GR+70/GDMHVL EH]WUXGQRFLSU]HNRQZHUWRZDüGR
formatu

.rtf

UR]XPLDQHJRSU]H]ZL NV]RüSURFHVRUyZWHNVWX0LáRQLF\EDUG]LHMZ\UDILQRZa-

Q\FKPHWRGVNáDGXPRJSRVáX*\üVL VSHFMDOQ\PLZHUVMDPLSURJUDPXTE;SRWUDILF\PLEH]So-

UHGQLRLQWHUSUHWRZDüSOLNLZ;0/

6NU\SW\;6/PRJRF]\ZLFLHSURGXNRZDü]DUyZQRVSUDZR]GDQLDSU]H]QDF]RQHGRGUXNXMDNL

]DZLHUDMFHáF]QLNLhipertekstowe dokumenty do prezentacji w WWW.

1LHGDMFVL SRPLQü]DOHWWHJR]DVWRVRZDQLD;6/MHVWX*\FLHGDUPRZ\FKQDU] G]L²ZLHOH

SURFHVRUyZ ;6/ PR*QD SR]\VNDü EH] RSáDW  1LH V ]DWHP Z\PDJDQH *DGQH LQZHVW\FMH FR ZH
wcze

VQ\FKVWDGLDFKSURMHNWyZMHVWQDRJyáEDUG]RNRU]\VWQH

5. Podsumowanie

;6/MHVWHODVW\F]Q\PLVLOQ\PQDU] G]LHPVáX*F\PGRSU]HNV]WDáFDQLDLIRUPDWRZDQLDGRNu-

PHQWyZZ;0/=HZ]JO GXQDPR*OLZRFL]DVWRVRZDQLDGR]áR*RQ\FKWUDQVIRUPDFMLGRNXPHn-

WyZ]DZLHUDMF\FKGDQH;6/Z\GDMHVL E\üLQWHUHVXMF\GODSURMHNWDQWyZV\VWHPyZLQIRUPDF\j-
nych z bazami danych.

6SHF\ILNDFMD;6/MHVWQDXNRF]HQLXDF] FLQDMEDUG]LHMLQWHUHVXMFH]SXQNWXZLG]HQLD]DVWo-

VRZD]ZL]DQ\FK]ED]DPLGDQ\FKVJRWRZH3RMDZLá\VL WH*SLHUZV]H]GDWQHGRSUDNW\F]QHJR

]DVWRVRZDQLD LPSOHPHQWDFMH MHGQD ] QLFK ]DZDUWD MHVW Z QDU] G]LDFK WRZDU]\V]F\FK '%06
Oracle8i.

:\GDMHVL *HZQDMEOL*V]\FKODWDFK;0/E G]LHMHGQ\P]SRGVWDZRZ\FKURGNyZZ\PLDQ\

LQIRUPDFMLD]QDMRPRü]ZL]DQ\FK]QLPQDU] G]LZW\P;6/E G]LHQLH]E GQDND*GHPXSUo-
jektantowi systemów informacyjnych.

Bibliografia

1. Traczyk

T.,

0DFHZLF]:- ]\N;0/ZDSOLNDFMDFK]ED]DPLGDQ\FK²PR*OLZRFL]DVWRVR

wania, pierw-

V]HGRZLDGF]HQLD0DWHULDá\,9.RQIHUHQFML

Developerów

LX*\WNRZQLNyZ2UDFOH

Ewolucja systemów in-

IRUPDW\F]Q\FKGDQHVSU] WRSURJUDPRZDQLHLDSOLNDFMH

, Zakopane 1998, ss. 143-146.

2.

7UDF]\N7- ]\N;0/ZDSOLNDFMDFK]ED]DPLGDQ\FK²SRURNX0DWHULDá\9.RQIHUHQFML

Developerów i

X*\WNRZQLNyZ2UDFOH

Integracja danych i systemów informatycznych, Zakopane 1999, ss. 45-58.

3.

7UDF]\N7:SURZDG]HQLHGRM ]\ND;0/,QIRUPDW\ND,661VV

4.

7UDF]\N7;0/L;6/0DWHULDá\;,,*yUVNLHM6]NRá\37,6]F]\UNF]HUZLHF

5. Grosso P., Walsh N.: XSL Concepts and Practical Use. XML Europe 2000, Paris, June 2000.

http://www.arbortext.com/xsl/tutorial.html

6. Extensible Markup Language (XML) 1.0. W3C Recommendation.

7. Extensible Stylesheet Language (XSL) 1.0. W3C Working Draft.

8. Namespaces in XML. W3C Recommendation.

9. XSL Transformations (XSLT) 1.0. W3C Recommendation.

10. XML Path Language (XPath) 1.0. W3C Recommendation.

11. Associating Style Sheets with XML Documents. Version 1. W3C Recommendation.

12. XML Support in Oracle8i and Beyond.

http://technet.oracle.com/tech/xml/

13. Using XML in Oracle Database Applications.

http://technet.oracle.com/tech/xml/


Wyszukiwarka

Podobne podstrony:
Jezyk id 221797 Nieznany
kultura jezyk z punktu widzenia Nieznany
2015 matura JEZYK FRANCUSKI poz Nieznany (2)
helion jezyk uml 2 0 w modelowa Nieznany
2015 matura JEZYK NIEMIECKI poz Nieznany (2)
jezyk c id 227978 Nieznany
NAROD i JEZYK id 313973 Nieznany
Jezyk id 221797 Nieznany
Jezyk XLS
niebieski jezyk Nieznany
2015 matura probna JEZYK POLSKI Nieznany (2)
Jezyk japonski id 222080 Nieznany
Jezyk angielski 1 id 221932 Nieznany
arkusz Jezyk polski poziom r ro Nieznany (12)
Egzamin gimnazjalny 2015 jezyk Nieznany
jezyk hiszpanski etap wojewodzk Nieznany
Jezyk polski wsrod jezykow swia Nieznany
jezyk angielski matura poziom Nieznany (4)

więcej podobnych podstron