artykuł - Instytut Automatyki i Informatyki Stosowanej

Transkrypt

artykuł - Instytut Automatyki i Informatyki Stosowanej
Tomasz Traczyk*
XML – UNIWERSALNY J=<. :<0,$1< ,NFORMACJI
W E-:,(&,(
XML sáX*\ GR WZRU]HQLD M
]\NyZ ]QDNRZDQLD NWyUH PRJ E\ü X*\WH GR SU]HND]\ZDQLD
informacji, zwáDV]F]D Z VLHFL :HE Z VSRVyE GRü SURVW\ DOH VIRUPDOL]RZDQ\ L GRJRGQ\
do prezentacji lub dalszego przetwarzania.
Referat prezentuje podstawowe poj
FLD ]ZL]DQH ] M
]\NLHP ;0/ RUD] SRND]XMH GOaczego j
]\N WHQ PR*H RGHJUDü V]F]HJyOQ URO
Z e-ZLHFLH
1. WPROWADZENIE
Rozpowszechnienie technologii internetowych spowodowaáR SRWU]HE
VWRVRZania ustandaryzowanych i powszechnie akceptowanych form przekazywania
informacji. Pierwsze wáDFLZH GOD ,QWHUQHWX UR]ZL]DQLD QS +70/ F]\ 3'F)
sáX* GREU]H GR SU]HND]\ZDQLD WHNVWyZ X]XSHáQLRQ\FK R HOHPHQW\ multimedialne, ale nie nadaj VL
GR WUDQVIHURZDQLD LQIRUPDFML SU]H]QDF]RQ\FK GR GDlszego przetwarzania. Tymczasem jest to niezb
GQH Z FRUD] OLF]QLHMV]\FK ]DVWosowaniach, zwáDV]F]D ]ZL]DQ\FK ] JRVSRGDUN HOHNWURQLF]Q -
]\N ;0/
wydaje si
EDUG]R GREU]H ]DVSRNDMDü WH QRZH SRWU]HE\ L VWDMH VL
ZD*Q\P URdkiem wymiany informacji w e-ZLHFLH
2. PODSTAWY XML
XML (eXtensible Markup Language, [6]) sáX*\ GR WZRU]HQLD VSHFMDOL]RZDQ\FK
j
]\NyZ ]QDNRZDQLD SU]H]QDF]RQ\FK GR UHSUH]HQWRwania záR*RQ\FK GRNumentów i struktur danych. Przetwarzanie informacji zapisanej w takiej postaci
– ze wzgl
GX QD WR *H MHVW WR SRVWDü WHNVWRZD RUD] *H ;0/ ]DSURMHNWRZDQR Z
odpowiedni sposób – jest stosunkowo áDWZH L GDMH VL
Z\NRQDü ]D SRPRF VWDndardowych, áDWZR GRVW
SQ\FK QDU]
dzi.
XML jest zmodyfikowanym podzbiorem SGML, majFHJR GáXJ WUDG\FM
VWDndardu ISO, sáX*FHJR GR ]DSLVX GRNXPHQWyZ WHNVWRZ\FK : VWRVXQNX GR SLHrwowzoru dokonano znaczF\FK XSURV]F]H RUD] PRG\ILNDFML XáDWZLDMF\FK
przetwarzanie dokumentów XML w URGRZLVNX VLHFL :HE
* Politechnika
Warszawska, Instytut Automatyki i Informatyki Stosowanej
O szybkim zdobyciu popularnoFL SU]H] ;0/ SU]HVG]LáR PL
G]\ LQQ\PL SodobieVWZR GR M
]\ND +70/ XáDWZLáR WR ERZLHP SU]\M
FLH QRZHJR VWDQGDUGX
jako czego QLHPDO*H ]QDQHJR 0L
G]\ W\PL M
]\NDPL V MHGQDN ]QDF]QH Uy*Qice. J
]\N +70/ MHVW ZSUDZG]LH WDN*H SRFKRGQ 6*0/ DOH QLH MHVW MHJR SRdzbiorem, lecz konkretyzacj ]DZLHUD ]DPNQL
W\ ]ELyU ]QDF]QLNyZ GRVWRVRZany do swego zadania. XML jest za XQLZHUVDOQ\P QDU]
G]LHP GR EXGRZ\ VSecjalizowanych j
]\NyZ QLH PD *DGQHJR SUHGHILQLRZDQHJR ]ELRUX ]QDF]Qików.
Dokument XML jest plikiem tekstowym, w którym struktura informacji okreORQD MHVW ]D SRPRF ]QDF]QLNyZ tags). Znaczniki wyznaczaj SRF]WHN L Noniec fragmentów nazywanych elementami. Ka*G\ HOHPHQW PR*H PLHü SDUDPetry zwane atrybutami. Zawartoü HOHPHQWX VWDQRZL WHNVW PRJF\ WDN*H ]DZLeraü ]QDF]QLNL HOHPHQW\ PRJ ZL
F E\ü ]DJQLH*G*ane.
Dokument musi speáQLDü RJyOQH ]DVDG\ SRSUDZQRFL VNáDGQLRZHM QS ZV]\Vtkie elementy musz E\ü MDZQLH ]DNRF]RQH QLH PRJ VL
ÄNU]\*RZDü´ LWG
Taki dokument nazywa si
GREU]H VIRUPXáRZDQ\P well formed) i mo*H E\ü
interpretowany przez programy, np. przegldarki.
JeOL MHGQDN GRNXPHQW PD E\ü GDOHM SU]HWZDU]DQ\ WR SRZLQLHQ E\ü ]JRGQ\ QLH
tylko z ogólnymi zasadami XML, ale tak*H ] GHILQLFM NRQNUHWQHM VWUXNWXU\
przewidzianej dla danego typu dokumentu. Dokument poprawny w tym sensie
nazywa si
SUDZLGáRZ\P valid). Do definiowania takich struktur dokumentów sáX* VSHFMDOQH IRUPDOQH ]DSLV\ '7' Document Type Definition) lub
schematy (XML Schema, [14]).
Konstruowanie nowych struktur na podstawie ju* LVWQLHMF\FK GHILQLFML XPR*Oiwiono wprowadzajF W]Z SU]HVWU]HQLH QD]Z namespaces, [7]). Zastosowanie
przestrzeni nazw pozwala na unikni
FLH NRQIOLNWyZ ]QDF]QLNyZ SRFKRG]F\FK
z ró*Q\FK (UyGHá Z MHGQ\P GRNXPHQFLH PR*QD X*\ü HOHPHQWyZ ] Uy*Q\FK
schematów przy zachowaniu peáQHM NRQWUROL SUDZLGáRZRFL
Standaryzacj M
]\ND
tium (W3C), majFD
tem1.
;0/ ]DMPXMH VL RUJDQL]DFMD
ZLHONL DXWRU\WHW Z
World Wide Web Consor]ZL]DQ\FK ] Interne-
URGRZLVNDFK
3. U)<&,( '2.80(17Ï: ;0/
Najbardziej typowe sposoby u*\FLD LQIRUPDFML ]DZDUWHM Z GRNXPHQWDFK ;0/
to prezentacja lub wydruk oraz przetwarzanie za pomoc VSHFMDOL]RZDQ\FK
programów. Poniewa* WH X*\FLD V SRZV]HFKQH RSUDFRZDQR ]ZL]DQH ] QLPL
standardy. Zapisywanie informacji wáDQLH Z ;0/ PD ERZLHP VHQV ZWHG\
gdy mo*H RQD E\ü SU]HWZDU]DQD ]H ]QDF]Q\P Z\NRU]\VWDQLHP VWDQGDUGRZHJR
oprogramowania.
1
Wa*QLHMV]H GRNXPHQW\ VWDQGDU\]XMFH ;0/ Z\PLHQLRQR Z VSLVLH OLWeratury.
Dokument w XML jest zbudowany wyáF]QLH QD ]DVDG]LH ]QDNRZDQLD ]QDF]eniowego, a nie typograficznego. CaáD LQIRUPDFMD R VSRVRELH IRUPDWRZDQLD
dokumentu przez przeglGDUNL PXVL E\ü ]DWHP VIRUPXáRZDQD RVREQR Z W]Z
arkuszach stylistycznych (style-sheets).
XSL (eXtensible Stylesheet Language [8]) jest j
]\NLHP VáX*F\P GR GHILQLowania takich arkuszy stylistycznych i skryptów do przeksztaáFDQLD GRNXPHQWyZ
XML. Transformacja [10] polega na rekurencyjnym przeksztaáFDQLX GU]HZD
reprezentujFHJR GRNXPHQW ZHMFLRZ\ Z GU]HZR Z\QLNRZH NWyUH PR*H E\ü
zapisane jako nowy dokument (XML, HTML albo zwyká\ WHNVW OXE EH]SoUHGQLR
Z\ ZLHWORQH SU]H] SU]HJOGDUN 3RQLHZD* SU]HJOGDUNL V REHFQLH
zwykle przystosowane do prezentacji HTML, popularnym sposobem formatowania za pomoc ;6/ MHVW SU]HWZDU]DQLH ;0/ QD +70/
Dane zawarte w dokumentach XML musz GDü VL
Z\JRGQLH SU]HWZDU]Dü Z
programach. Opracowano standardy takiego przetwarzania, dla których dost
pne s ± F]
VWR GDUPRZH ± DQDOL]DWRU\ OHNV\NDOQH (parsery) XML, wyposa*RQH
w interfejsy (API) do popularnych j
]\NyZ SURJUDPRZDQLD %XGXMF SURJUDP
przetwarzajF\ GRNXPHQW\ ;0/ WU]HED ZL
F MHG\QLH Z\EUDü RGSRZLHGQL GOD
danego zastosowania parser i wykorzystaü JR
Najbardziej znanym standardem przetwarzania jest DOM (Document Object
Model, [15]). Definiuje on obiektowy model dokumentu oraz dostarcza zbioru
klas i metod umo*OLZLDMF\FK PDQLSXORZDQLH GRNXPHQWDPL :DG '20 MHVW
znaczna wielkoü ]DVREyZ Z\PDJDQ\FK GR UHSUH]HQWRZDQLD GX*\FK GRNumentów, zalet ± PR*OLZRü SURJUDPRZHM PRG\ILNDFML SU]HWZDU]DQ\FK GRNumentów.
Innym popularnym modelem przetwarzania jest SAX (Simple API for XML).
Opiera si
RQ QD SURJUDPRZDQLX ]GDU]HQLRZ\P ]GDU]HQLD Z\ZRá\ZDQH V QS
przez pojawienie si
SRF]WNX L NRFD HOHPHQWX Z DQDOL]RZDQ\P GRNXPHQFLH
Nie jest potrzebne tworzenie struktury danych reprezentujFHM FDá\ GRNXPHQW
co powoduje ma áH ]X*\FLH ]DVREyZ L ]QDF]Q Z\GDMQRü :DG MHVW MHGQDN
niemo*QRü PRG\ILNRZDQLD SU]HWZDU]DQ\FK GRNumentów.
Istnienie DTD lub schematu pozwala wykorzystaü VWDQGDUGRZH parsery do
sprawdzenia prawidáRZRFL GRNXPHQWX SU]HG MHJR GDOV]\P SU]HWZDU]DQLHP
Nie jest zatem konieczne tworzenie specjalizowanych procedur sprawdzajF\FK
dla ka*GHM QRZHM VWUXNWXU\ =ZáDV]F]D Z SU]\SDGNX ]DVWRVRZDQLD VFKHPDWyZ
kontrola prawidáRZRFL W]Z ZDOLGDFMD MHVW FDáNLHP V]F]HJyáRZD GRW\F]\
bowiem nie tylko skáDGQL DOH WDN*H W\SyZ GDQ\FK ]DNUHVyZ ZDUWRFL SRSUDwnoFL ]ZL]NyZ UHIHUHQF\MQ\FK LWS
4. XML W E-:,(&,(
XML sáX*\
URGRZLVNX
SU]HGH ZV]\VWNLP GR Z\PLDQ\ ]áR* RQ\FK LQIRUPDFML ]ZáDV]F]D Z
VLHFL :HE
-
]\NL ]GHILQLRZDQH ]D SRPRF ;0/ PR * QD MDN VL
wydaje, podzieliü ]H Z]JO
GX QD UR]SRZV]HFKQLHQLH QDVW
pujFR
•
J
]\NL SU]H]QDF]RQH GR SRZV]HFKQHJR X*\FLD QS :0/ Wireless Markup
Language – j
]\N GRVW
SX GR ::: ] WHOHIRQyZ NRPyUNRZ\FK 69*
(Scalable Vector Graphics – j
]\N RSLVX JUDILNL ZHNWRURZHM [16]); zwykle
proponowane przez organizacje standaryzacyjne.
•
J
]\NL X*\ZDQH Z RNUHORQHM EUDQ*\ OXE VSRáHF]QRFL VSHFMDOLVWyZ QS
MathML (Mathematical Markup Language), CML (Chemical Markup Language), rozwi]DQLD QD SRWU]HE\ DGPLQLVWUDFML SXEOLF]QHM
•
J
]\NL WZRU]RQH ad hoc na potrzeby konkretnego nietypowego zastosowania, np. do wymiany danych w heterogenicznym systemie informacyjnym.
WUyG Uy*QRURGQ\FK ]DVWRVRZD ;0/ V]F]HJyOQLH ZD*QH Z\GDM VL
WH ]ZLzane z elektroniczn Z\PLDQ GRNXPHQWDFML RUD] V]HURNR UR]XPLDQ JRVSRGDrk HOHNWURQLF]Q
Idea elektronicznej wymiany dokumentacji (EDI, Electronic Data Interchange)
jest ju* GRü VWDUD GRF]HNDáD VL
WH* ZáDVQ\FK VWDQGDUGyZ QS (',)$&7
Jednak, ze wzgl
GX QD VZ ]áR*RQRü RUD] NRV]WRZQH RSURJUDPRZDQLH VWDndardy EDI nie zyskaá\ QLJG\ ZLHONLHM SRSXODUQRFL 7\PF]DVHP SRWU]HE\ Z WHM
dziedzinie s RJURPQH =DVWRVRZDQLH ;0/ PR*H WX SU]\QLHü SU]HáRP M
]\N
ten – przy wzgl
GQHM SURVWRFLH áDWZRFL L QLHZLHONLFK NRV]WDFK SU]HWZDU]DQLD ±
wydaje si
ERZLHP EDUG]R GREU]H VSHáQLDü Z\PDJDQLD VWDZLDQH (', 0R*OLZH
jest tak*H Z\NRU]\VWDQLH GRW\FKF]DVRZ\FK GRZLDGF]H L VWDQGDUGyZ (',
semantyk
VWDQGDUGRZ\FK NRPXQLNDWyZ (', PR*QD ERZLHP ]DSLVDü Z VNáDGQL
XML.
W powszechnym przekonaniu XML stanowi niemal idealny URGHN NRPXQLNacji dla gospodarki elektronicznej, zarówno typu B2C (Business to Customer),
jak i B2B (Business to Business). O wielkiej przydatnoFL ;0/ GHF\GXMH PLQ
dostosowanie do u*\FLD Z VLHFL ,QWHUQHW SU]\ Z\NRU]\VWDQLX SRSXODUQ\FK Qarz
G]L QS W\SRZ\FK SU]HJOGDUHN RUD] QLHZLHONLH QDNáDG\ SRWU]HEQH GR ]Eudowania systemów opartych na XML, co pozwala na wykorzystywanie tej
technologii przez maáH L UHGQLH ILUP\
Inn ZD*Q G]LHG]LQ Z NWyUHM ;0/ PR*H E\ü V]F]HJyOQLH SU]\GDWQ\ MHVW
komunikacja zwi]DQD ]H VIHU SXEOLF]Q DGPLQLVWUDFMD VNDUERZRü LWS
Wymiana sformalizowanych dokumentów za pomoc VLHFL PR*H LQVW\WXFMRP
przedsi
ELRUVWZRP L RE\ZDWHORP ]QDF]QLH XáDWZLü GRVW
S GR XU]
GyZ = NROHL
sprawna wymiana danych mi
G]\ XU]
GDPL PR*H SU]\F]\QLü VL
GR LFK OHSV]ego funkcjonowania. Wa*Q ]DOHW ;0/ Z W\P ]DVWRVRZDQLX MHVW SURVWRWD L
otwartoü VWDQGDUGX FR SRZRGXMH *H ND*G\ X*\WNRZQLN PR*H SU]HWZDU]Dü
dokumenty XML bez ponoszenia nadmiernych kosztów, a wielkie firmy infor-
matyczne nie mog ]PRQRSROL]RZDü U\QNX SU]H] QDU]XFHQLH ZáDVQ\FK UR]ZLza NRPXQLNDF\MQ\FK : 3ROVFH SURZDG]RQH V SUDFH QDG WHJR W\SX ]DVWRVowaniami XML, doczekaliP\ VL
QDZHW SLHUZV]\FK XVWDOH QRUPDW\wnych [5].
XML ma wiele cech powodujF\FK L* MHVW RQ RGSRZLHGQLP L XQLZHUVDOQ\P
URGNLHP GR Z\PLDQ\ LQIRUPDFML Z e-ZLHFLH 1DMLVWRWQLHMV]H ] W\FK FHFK
wymieniono ni*HM
•
Sformalizowany zapis informacji – umo*OLZLDMF\ MHM ÄEH]VWUDWQH´ RGF]\Wanie, dokáDGQ ZHU\ILNDFM
SRSUDZQRFL L áDWZH GDOV]H SU]HWZarzanie.
•
Uniwersalnoü ± ;0/ SR]ZDOD
byü Z\UD*RQH WHNVWRZR
•
Wielka siáD Z\UD]X ± ]D
ne struktury informacji.
•
Elastycznoü ± VWUXNWXUD LQIRUPDFML MHVW áDWZD GR UR]V]HU]DQLD
FL Z\NRU]\VWDQLD VWUXNWXU ZF]HQLHM ]GHILQLRZDQ\FK
•
Mo*OLZRü ]Uy*QLFRZDQHM SUH]HQWDFML ± G]L
NL ]QDNRZDQLX ]QDF]HQLRZHPX
oraz zastosowaniu arkuszy stylistycznych ten sam dokument mo*H E\ü Uy*norodnie prezentowany w zale*QRFL RG SRWU]HE L PR*OLZRFL VSU]
WX
•
Czytelnoü ± GRNXPHQW\ ;0/ PRJ E\ü QLH W\ONR áDWZR RGF]\WDQH SU]H]
programy, ale te* V ]UR]XPLDáH GOD F]áRZLHND ND*G\ GRNXPHQW QLHVLH Eowiem oprócz wáDFLZHM LQIRUPDFML WDN*H metainformacj
Z SRVWDFL ]QDF]Qików. Czytelnoü XáDWZLD SRVáXJLZDQLH VL
GRNXPHQWDPL ;0/ SR]ZDOD QS
szybko oceniü ]DZDUWRü RUD] NRPSOHWQRü GRNXPHQWX XáDWZLD XUXFKDPLanie oprogramowania itd.
•
Dostosowanie do specyfiki przetwarzania w sieci Web – liczne szczegóáowe rozwi]DQLD ;0/ ED]XM QD LGHDFK ]ZL]DQ\FK ] 6LHFL QS DGUHVRZanie dokumentów jest oparte na pomyOH 85/ UR]EXGRZDQ\P 3RSXODUQH
narz
G]LD LQWHUQHWRZH SU]HJOGDUNL VHUZHU\ DSOLNDF\MQH LWG V Z\SRVD*ane w rozwi]DQLD parsery, procesory XSL itp.) uáDWZLDMFH X*ycie XML.
•
Niewygórowane koszty – do przetwarzania i prezentacji dokumentów XML
mo*QD X*\ü VWDQGDUGRZHJR F]
VWR GDUPRZHJR RSURJUDPRZDQLD 2]Qacza to, i* QDZHW QLHZLHONLH ILUP\ PRJ WZRU]\ü ZáDVQH UR]ZL]DQLD ED]XMce na XML, nie ponoszF QLHUR]VGQLH GX*\FK QDNáDGyZ
•
Wzgl
GQD SURVWRWD ± LGHD M
]\NyZ ]QDNRZDQLD MHVW RG GDZQD ]QDQD Jáywne zaáR*HQLD ;0/ V NODURZQH D QDZHW ]DDZDQVRZDQH UR]ZL]DQLD V VWosunkowo áDWZH GR ]UR]XPLHQLD
]DSLVDü ZV]HONLH LQIRUPDFMH NWyUH PRJ
SRPRF ;0/ PR* QD Z\UD]Lü QDZHW EDUG]R ]áR*o-
] PR* OLZo-
XML zyskaá GX*H ]DLQWHUHVRZDQLH ]H VWURQ\ QDMZL
NV]\FK SURGXFHQWyZ RSUogramowania. Wyposa*DM RQL VZRMH SURGXNW\ Z QDU]
G]LD XPR*OLZLDMFH
wzgl
GQLH áDWZH Z\NRU]\VWDQLH ;0/ QS Z V\VWHPDFK LQIRUPDF\MQ\FK ] Ea-
zami danych. Co ciekawe, pierwotnie wielcy producenci próbowali narzucaü
wáDVQH UR]ZL]DQLD OHF] REHFQLH JG\ QDMZD*QLHMV]H VSHF\ILNDFMH ;0/ V
ustabilizowane, przystosowuj RQL VZH SURGXNW\ GR VWDQGDUGyZ :&
5. PODSUMOWANIE
XML jest nowym uniwersalnym standardem zapisu i przekazywania informacji.
Wydaje si
DWUDNF\MQ\ GOD Uy*Q\FK JUXS X*\WNRZQLNyZ DOH V]F]HJyOQLH LVWRWQ
rol
RGHJUD ]DSHZQH Z Z\PLDQLH LQIRUPDFML Z VLHFL :HE ]ZáDV]F]D Z ]DVWosowaniach zwi]DQ\FK ] V]HURNR UR]XPLDQ JRVSRGDUN HOHNWURQLF]Q :\Norzystanie XML w e-ZLHFLH SUDZGRSRGREQLH VWDQLH VL
SRZV]HFKQH MX* Z QDjbli*V]\FK ODWDFK :Sá\QLH WR ]QDF]FR QD UR]ZyM WHFKQRORJLL V\VWHPyZ LQIRrmacyjnych, a szczególnie na systemy internetowe.
LITERATURA
[1] T.Traczyk: Wprowadzenie do j
]\ND ;0/ Informatyka, 12/1999.
[2] T.Traczyk: XML i XSL. Materiaá\ ;,, *yUVNLHM 6]NRá\ 37, 6]F]\UN http://www.ia.pw.edu.pl/~ttraczyk
[3] T.Traczyk: J
]\N ;6/. Materiaá\ 9, .RQIHUHQFML Deweloperów i U*\WNRwników Oracle Systemy informatyczne w dobie Internetu, Zakopane 2000.
[4] T.Traczyk: Czy ju* ZDUWR X*\ZDü ;0/" Materiaá\ , 6HPLQDULXP 6WRZarzyszenia Polskiej Grupy U*\WNRZQLNyZ 6\VWHPX 2UDFOH :DUV]DZD [5] RozporzG]HQLH 0LQLVWUD =GURZLD ] GQ JUXGQLD U Z VSUDZLH WU\EX
i sposobu przekazywania oraz zakresu danych o obrocie refundowanymi
lekami i materiaáDPL PHG\F]Q\PL SU]HND]\ZDQ\FK SU]H] DSWHNL Dziennik
Ustaw RP, nr 4, 2001.
[6] Extensible Markup Language (XML) 1.0. W3C Recommendation.
http://www.w3c.org
[7] Namespaces in XML. W3C Recommendation.
[8] Extensible Stylesheet Language (XSL) 1.0. W3C Candidate Recommendation.
[9] Associating Style Sheets with XML Documents 1.0. W3C Recommendation.
[10] XSL Transformations (XSLT) 1.0. W3C Recommendation.
[11] XML Path Language (XPath) 1.0. W3C Recommendation.
[12] XML Linking Language (XLink) 1.0. W3C Recommendation.
[13] XML Pointer Language (XPointer) 1.0. W3C Recommendation.
[14] XML Schema, Parts 0, 1, 2. W3C Recommendation.
[15] Document Object Model Level 2. W3C Recommendation.
[16] Scalable Vector Graphics (SVG) 1.0. W3C Proposed Recommendation.