You are on page 1of 138

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Cng ngh XML v ng dng 2009


Li gii thiu: XML l g?
XML, hoc Extensible Markup Language (ngn ng nh du m rng), l mt ngn ng nh du m bn c th s dng to ra th ring ca mnh. N c to nn bi Lin minh mng ton cu nhm khc phc nhng hn ch ca HTML - ngn ng nh du siu vn bn, l c s ca mi trang Web. Ging nh HTML, XML cng c da trn SGML Standard Generalized Markup Language. Mc d SGML c s dng trong ngnh cng nghip xut bn trong nhiu thp k, nhng s phc tp ca n u khin nhng ai tng s dng n m khng c cch no khc phi thy mt mi (mt cch ni vui, SGML cng l "Sounds great, maybe later"). Ti sao chng ta cn XML? HTML l ngn ng nh du thnh cng nht t trc ti nay. Bn c th thy du n ca HTML n gin nht trn bt c cng c no, t thit b cm tay ti my ch, thm ch bn cn c th chuyn i nh du HTML sang li ni hoc cc nh dng khc vi nhng cng c chnh xc. HTML thnh cng nh th, ti sao W3C li to ra XML? tr li cho cu hi ny, hy xem ti liu di y:

c son tho bi Quang, Converted from PDF to Multi PDF to Doc and Join Doc.

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 1

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

cng
1. Mc tiu - Cung cp cc kin thc c bn v cng ngh XML - Rn luyn cc k nng lp trnh x l trn ti liu XML == > ng dng tt cc cng ngh DTD, DOM, XSLT trong qu trnh thit k v thc hin phn mm 2. Ni dung Chng 1 : M u 1. Cc v d m u 2. Ti liu XML 3. Cng ngh XML 4. Gii thiu v DOM Chng 2 : c t cu trc v ni dung ti liu XML 1. Cc khi nim 2. c t cu trc ti liu XML vi DTD 3. c t cu trc ti liu XML vi Xml-Schema Chng 3 : Truy xut ti liu XML vi DOM 1. Gii thiu chung v DOM 2. Cc thao tc c bn 3. Ngn ng XPath 4. DOM v cc cng ngh khc Chng 4 : Bin i ti liu XML vi XSLT 1. Gii thiu chung v XSLT 2. H thng cc th c bn 3. Mi trng thc hnh Visual Studio.NET 2005 4. Ti liu tham kho - Sch : Sch v mi trng Visual Studio.NET ( phn lin quan XML ) Sch k thut lin quan XML,DOM,Xpath,XSLT - Gio trnh : Gio trnh "Cng ngh XML v ng dng " - Nguyn tin Huy c Convert bi Quang

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 2

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Chng 1 : M u
Gii thiu chung v chng 1 I. Cc v d m u: Mc tiu : - Minh ha vic s dng tp tin Xml lu tr thng tin cc i tng trong thc t - M u cho vic trnh by cc khi nim v ti liu Xml cng vi nh chun Xml 1. Phn s Tp tin Phan_so.xml biu din thng tin v phn s 4/7 trn b nh ph <?xml version="1.0" encoding="utf-8" ?> <PHAN_SO Tu_so="4" Mau_so="7" /> 2. Dy s nguyn Tp tin Day_so.xml biu din thng tin v dy cc s nguyn -4,22,-3,15,7,12 <?xml version="1.0" encoding="utf-8" ?> <DAY_SO> <SO Gia_tri="-4" /> <SO Gia_tri="22" /> <SO Gia_tri="-3" /> <SO Gia_tri="15" /> <SO Gia_tri="7" /> <SO Gia_tri="12" /> </DAY_SO> 3. ng trn Tp tin Duong_tron.xml biu din thng tin v ng trn C c tm O(2,1) v bn knh R=4 <?xml version="1.0" encoding="utf-8" ?> <DUONG_TRON Ban_kinh="4"> <DIEM x="2"y="1" /> </DUONG_TRON> 4. Bng n gi thu phng Tp tin Bang_don_gia.Xml biu din thng tin v bng n gi thu phng ca khch sn <?xml version="1.0" encoding="utf-8" ?> <KHACH_SAN Ten="X" Dia_chi="123 ABC" > <LOAI_PHONG Ten="Loi A" Don_gia="280000" /> <LOAI_PHONG Ten="Loi B" Don_gia="240000" /> <LOAI_PHONG Ten="Loi C" Don_gia="180000" /> <LOAI_PHONG Ten="Loi c bit" Don_gia="320000" /> </KHACH_SAN> 5. Bng t gi Tp tin Bang_ty_gia.xml biu din thng tin bng t gi cc ngoi t admincnttvn@gmail.com http://www.ebook.edu.vn Trang 3

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<?xml version="1.0" encoding="utf-8" ?> <BANG_TY_GIA Ngay="14/6/2007"> <NGOAI_TE Ten=" la M" Ky_hieu="USD" Mua_tien_mat="16103" Mua_chuyen_khoan="16124" Ban="16127" /> <NGOAI_TE Ten="Bng Anh" Ky_hieu="GBP" Mua_tien_mat="31604" Mua_chuyen_khoan="31699" Ban="31910" /> <NGOAI_TE Ten=" la HongKong" Ky_hieu="HKD" Mua_tien_mat="2030" Mua_chuyen_khoan="2054" Ban="2074" /> </BANG_TY_GIA> 6. Kt qu x s Tp tin Ket_qua_xo_so.xml biu din thng tin kt qu x s tnh Bnh thun <?xml version="1.0" encoding="utf-8" ?> <KET_QUA Ngay="14/6/2007" Tinh="Bnh Thun" > <GIAI Ten="Gii tm" > <SO Gia_tri="98" /> </GIAI> <GIAI Ten="Gii by" > <SO Gia_tri="709" /> </GIAI> <GIAI Ten="Gii su" > <SO Gia_tri="6137" /> <SO Gia_tri="0429" /> <SO Gia_tri="1351" /> </GIAI> <GIAI Ten="Gii nm" > <SO Gia_tri="1268" /> </GIAI> <GIAI Ten="Gii bn" > <SO Gia_tri="00044" /> <SO Gia_tri="74572" /> <SO Gia_tri="49335" /> <SO Gia_tri="38644" /> <SO Gia_tri="74331" /> <SO Gia_tri="05085" /> <SO Gia_tri="66071" /> </GIAI> <GIAI Ten="Gii ba" > <SO Gia_tri="20579" /> <SO Gia_tri="49194" /> </GIAI> <GIAI Ten="Gii nh" > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 4

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<SO Gia_tri="54621" /> </GIAI> <GIAI Ten="Gii nht" > <SO Gia_tri="58998" /> </GIAI> <GIAI Ten="Gii c bit" > <SO Gia_tri="02700" /> </GIAI> </KET_QUA> 7. Mch in Tp tin Mach_dien.xml biu din thong tin v mch in vi cc in tr <?xml version="1.0" encoding="utf-8" ?> <MACH_NOI_TIEP> <DIEN_TRO Gia_tri="4" /> <MACH_SONG_SONG> <DIEN_TRO Gia_tri="2" /> <MACH_NOI_TIEP> <DIEN_TRO Gia_tri="2" /> <MACH_SONG_SONG> <DIEN_TRO Gia_tri="3" /> <DIEN_TRO Gia_tri="3" /> </MACH_SONG_SONG> <DIEN_TRO Gia_tri="4" /> </MACH_NOI_TIEP> <MACH_NOI_TIEP> <DIEN_TRO Gia_tri="2" /> <DIEN_TRO Gia_tri="1" /> </MACH_NOI_TIEP> </MACH_SONG_SONG> <DIEN_TRO Gia_tri="8" /> <DIEN_TRO Gia_tri="6" /> </MACH_NOI_TIEP>

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 5

B mn Cng Ngh XML II. Ti liu XML

Cng ngh XML v ng dng

Nguyn tin Huy

Mc tiu : - Trnh by khi nim v ngha s dng ca ti liu Xml - Trnh by chi tit v nh chun Xml 1. Khi nim v ti liu XML Vn bn c cu trc theo nh chun XML cho php biu din thng tin v cc i tng trong thc t i tng x thuc loi X trong thc t ==== > Th X trong ti liu Xml Thuc tnh a ca i tng x thuc loi X trong thc t === > Thuc tnh a ca th X trong ti liu Xml V d 1 : Phn s 4/5 trong thc t == > Th <PHAN_SO Tu_so="4" Mau_so="5" /> V d 2 : Dy cc s nguyn a bao gm cc s nguyn 1,4,5,-3 === > Th <DAY_SO> <SO Gia_tri="1" /> <SO Gia_tri="4" /> <SO Gia_tri="5" /> <SO Gia_tri="-3" /> </DAY_SO> 2. nh chun XML * Qui nh 1 : H thng cc th nh du Cc th nh du trong ngn ng theo nh chun XML ch bao gm 2 loi : Th c ni dung v th rng. Cc th c ni dung c dng <Tn> Ni dung </Ten> Cc th rng c dng <Tn /> Cc th (ni chung ) c th c hoc khng cc thuc tnh vi cc tn khc nhau ( trong cng th ). Thuc tnh trong mt th c dng Ten_thuoc_tinh=Gia_tri Hay Ten_thuoc_tinh=Gia_tri V d : vi ti liu XML <?xml version="1.0" encoding="utf-8"?> <DUONG_TRON Ban_kinh="5"> <DIEM x="4" y="2"/> </DUONG_TRON> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 6

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Th c ni dung l th DUONG_TRON Th rng l th DIEM Th DUONG_TRON c 1 thuc tnh l Ban_kinh Th DIEM c 2 thuc tnh l x, y

* Qui nh 2 : Quan h lng nhau ( cha trong ) gia cc th c ni dung Ni dung bn trong th c ni dung c th l cc th khc ( c ni dung hay rng). Khi th A c ni dung l th B ta gi Th A l th cha ca B , th A cha th B Th B l th con ca A, th B uc cha trong A Qui nh 2 yu cu cc th vi quan h lng nhau hon ton. Khi th A l th cha ca th B, A phi cha phn bt u v c phn kt thc ca B V d : Th A l th cha ca B vi dng lng nhau hon ton ( hp l) <A> <B> .</B> </A> Th A l th cha ca B vi dng lng nhau khng hon hon ton ( khng hp l) <A> <B> .</A> </B> * Qui nh 3 : Th nh du gc Qui nh 3 yu cu ti liu XML phi c duy nht ( mt v ch mt) th cha ( trc tip hay gin tip ) tt c cc th cn li ( nu c ) V d : Ti liu XML sau biu din thng tin 2 ung trin l khng hp l v khng c th gc <?xml version="1.0" encoding="utf-8"?> <DUONG_TRON Ban_kinh="5"> <DIEM x="4" y="2"/> </DUONG_TRON> <DUONG_TRON Ban_kinh="5"> <DIEM x="4" y="2"/> </DUONG_TRON>

III. Cng ngh XML admincnttvn@gmail.com http://www.ebook.edu.vn Trang 7

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Mc tiu : - Trnh by khi nim v ngha ca cng ngh Xml - Trnh by cc kh nng ng dng c bn ca cng ngh Xml 1. Khi nim v cng ngh XmlNi dung - M t tm tt v cc loi cng ngh trong lnh vc cng ngh thng tin - Trnh by qu trnh hnh thnh ca cng ngh Xml v quan h vi cc loi cng ngh khc a. Cng ngh thng tin - Ngnh khoa hc ngin cu v vic xy dng cc h thng tin hc tng ng vi h thng thc t - Ngnh khoa hc nghin cu v vic biu din v x l thng tin ca h thng tin hc tng ng vi cc thng tin v nghip v ca h thng thc t Hai hng nghin cu chnh trong Cng ngh thng tin - Cng ngh phn cng - Cng ngh phn mm * Cng ngh x l thng tin - Mt trong cc hng nghin cu chnh ca cng ngh phn mm - Ngnh khoa hc nghin cu v cc m hnh, phng php, k thut x l thng tin Cc m hnh x l (chung) chnh trong Cng ngh x l thng tin - Th tc/Hm (Procedure/Function) - n th (Module) - i tng (Object) - Thnh phn (Component) - Dch v (Service) - . * Cng ngh biu din thng tin - Mt trong cc hng nghin cu chnh ca cng ngh phn mm - Ngnh khoa hc nghin cu v cc m hnh, phng php, k thut biu din thng tin Cc m hnh biu din (chung) chnh trong Cng ngh biu din thng tin - Tp tin (File) : Thng tin lu tr trn b nh ph - C s d liu ( Database) : Thng tin lu tr trn b nh ph - Cu trc d liu (Data Structure) : Thng tin x l trong b nh chnh - Trang Web (WebPage) : Thng tin th hin - Lung d liu (Data Stream) : Thng tin trao i ni b bn trong mt h thng tin hc hay gia cc cc h thng tin hc - . admincnttvn@gmail.com http://www.ebook.edu.vn Trang 8

B mn Cng Ngh XML b. Cng ngh Xml

Cng ngh XML v ng dng

Nguyn tin Huy

Khi nim v Cng ngh XML - Thuc loi cng ngh biu din thng tin - Hnh thnh t nhu cu v vn cn gii quyt ca vic trao i thng tin - C phm vi nghin cu v ng dng trn tt c m hnh biu din ca cng ngh biu din thng tin - C hng nghin cu cho php ng dng mt m hnh x l thng tin mi thuc v cng ngh x l thng tin * Nhu cu trao i thng tin 1. Trao i thng tin ni b bn trong h thng tin hc S pht trin v qui m, phc tp, phm vi s dng ca cc h thng tin hc dn n s phn r h thng cn xy dng thnh cc h thng con ( kin trc a tng l mt v d in hnh v s phn r nh th ) === > Nhu cu v trao i thng tin bn trong cc h thng con 2. Trao i thng tin gia cc h thng tin hc - S pht trin ca Internet v cc ng dng trn Web , c bit l cc ng dng trong lnh vc thng mi in t ==== > Nhu cu v trao i thng tin gia cc ng dng ny - Cc yu cu cao v cht lng phn mm ( Tin dng, Tng thch, Bo mt, v.v) kh nng p ng cao, chuyn bit ca mt s h thng sn c (WebBrowser, Excel, Word, Fax, v.v) ==== > Nhu cu v trao i thng tin gia h thng ang xy dng v cc h thng c sn * M hnh trao i thng tin M hnh trao i thng tin trc khi XMl ra i ch yu da trn cng ngh v lung d liu ( Data Stream ) vi 2 dng chnh - Dng nh phn : D liu trao i l chui cc byte theo mt cu trc v ng ngha ring bit ca tng ng dng - Dng vn bn : D liu trao i l chui cc k t theo cch m ha chung nhng cu trc v ng ngha vn l ring bit cho tng ng dng C 2 dng trao i trn u khng thch hp vi cc nhu cu pha trn vi cng khuyt im : "Thng tin cn trao i c cu trc v ng ngha ring bit theo tng ng dng " === > Nhu cu v mt nh chun chung khi trao i thng tin admincnttvn@gmail.com http://www.ebook.edu.vn Trang 9

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

* S ra i ca Cng ngh XML Cng ngh XML ra i l kt qu ca cc nghin cu v dng biu din thng tin khi cn trao i gia cc h thng tin hc. Dng biu din cn tha mn cc yu cu sau 1) Cho php trao i trn phm vi rng ( Internet) 2) D dng trong vic kt xut v tip nhn khi trao i 3) Tun theo mt nh chun chung c chp nhn v h tr ca nhiu mi trng pht trin phn mm Ghi ch : Cng ngh XML ra i v xut mt dng biu din thch hp cho cc yu cu trn ( ti liu XML). Tuy nhin vi bn cht hnh thnh ca mnh, phm vi ng dng ca cc ti liu XML khng ch dng vic trao i thng tin m bao hm c cc vn biu din thng tin khc nh : Lu tr thng tin , cu trc d liu , th hin thng tin , v.v.. ( chi tit trong phn ng dng ca XML) 2. Mt s ng dng ca cng ngh Xml Ni dung : Trnh by cc hng ng dng chnh ca cng ngh Xml * Trao i thng tin ng dng Xml trong vic trao i thng tin Trao i thng tin l xut pht im cho s hnh thnh ca cng ngh XML. Trao i thng tin l ng dng chnh yu nht ca XML C 2 dng trao i thng tin chnh Dng 1 : Trao i thng tin ni b gia cc thnh phn ca cng h thng tin hc Dng 2 : Trao i thng tin gia cc h thng tin hc khc nhau XML c th ng dng tt cho c 2 dng trao i thng tin trn A c nhu cu trao i thng tin vi B Dng 1 : - A, B l 2 thnh phn bn trong mt h thng tin hc ( giao din hay x l hay lu tr ) - Ti liu XML uc thit k cho vic s dng ni b Dng 2 : - A l h thng tin hc ang xem xt - B l h thng c trc vi kh nng chuyn bit no - A phi s dng ti liu XML c cu trc do do B xut V d : XML c th c s dng - Trao i thng tin gia cc tng ca mt ng dng uc thit k theo m hnh kin trc a tng - Trao i thng gia mt tng vi h thng khc bn ngoi C th c th - S dng XML trao i thng tin gia h thng lu tr d liu ( thng thng l h qun admincnttvn@gmail.com http://www.ebook.edu.vn Trang 10

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

tr c s d liu ) v tng x l lu tr d liu - S dng XML trao i thng tin gia tng d liu v tng x l nghip v - S dng XML trao i thng tin gia tng x l nghip v v tng th hin - S dng XML trao i thng tin gia cc tng x l nghip v ( khi h thng c nhiu tng x l nghip v ) * Lu tr thng tin ng dng Xml trong vic lu tr thng tin C 3 cch ng dng chnh ca XML lu tr d liu bn trong h thng tin hc Cch 1 : Ch s dng cc tp tin XML lu tr d liu Cch 2 : Mt s d liu lu tr di dng tp tin XML, mt s khc lu tr bn trong c s d liu Cch 3 : Lu tr ton b bn trong c s d liu, ti liu XML khi uc nhng vo ni dung cc bng d liu Cch 1 : - u im chnh : Khng cn s h tr ca cc h qun tr c s d liu == > D ci t, trin khai - Khuyt im chnh : Tnh hiu qu khng cao khi khi lng d liu l - Nhn xt : Cc phn mm tr chi l ng vin tt cho ng dng XMl theo cch 1 Cc phn mm qun l khng thch hp cho cch ng dng ny Rt thch hp cho cc ng dng trn cc mi trng tin hc khng c (hoc cha c ) h qun tr c s d liu nh : in thoi di ng, My cng c , v.v Cch 2, 3 : - u im chnh : C th kt hp tt u im ca c 2 m hnh lu tr thng tin : XML , C c d liu - Khuyt im chnh : Cn c s cn nhc v quyt nh ng n loi thng tin no s ng hnh thc lu tr no - Nhn xt : Cch 2 l cch s dng ph bin nht hin nay Cu hnh ca h thng tin hc ( phn h ng dng ) l loi thng tin thng c chn lu tr theo dng ti liu XML * Cu trc d liu ng dng Xml vi cc cu trc d liu admincnttvn@gmail.com http://www.ebook.edu.vn Trang 11

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Vi m hnh DOM ( uc gii thiu tm tt trong phn k tip v chi tit trong chng 3 ), c th s dng ti liu XMLnh mt loi cu trc d liu ng vi nhiu u im - c/Ghi d dng Cc cu trc d liu ng nh Mng ng ( Dynamic Array), Xu (List ), Ngn xp ( Stack), Hng i ( Queue), Cy (Tree), c nhiu tnh nng tt trong vic biu din v x l thng tin trong b nh chnh. Tuy nhin vic c/ghi thng tin ca cc cu trc d liu ny t/vo b nh ph ( thng thng thng qua tp tin ) l khng n gin v thng phi thc hin gin tip vi mt b c ghi. Ti liu XML c th s dng ci t li hu ht cc cu trc d liu ng trn ( vi mt s chc nng b sung vo DOM qua c ch k tha hay bao bc ca hng i tng !!!) v c bit l vic c/ghi rt d dng ( thng thng ch l mt lnh gi hm n gin ) V d : Vi VB.NET c ti liu XML Tai_lieu.Load(Ten_tap_tin_XML) ghi ti liu XML Tai_lieu.Save (Ten_tap_tin_XML) - Kh nng truy vn cao Vic truy vn cc thnh phn/tp hp thnh phn ca cc cu trc d liu ng pha trn thng thng phi thng qua cc vng lp duyt n tng phn t. Vi ti liu XML, c th s dng ngn ng truy vn Xpath truy xut n thnh phn/tp hp thnh phn mt cch rt d dng ( v thng thng cng ch thng qua mt lnh gi hm n gin ) V d : Vi VB.Net , gi s c Tai_lieu tng ng thng tin v cy cc s nguyn. lp danh sch cc nt ( thnh phn ca cy ) c gi tr dng Nut_duong=Tai_lieu.SelectNodes(//Phan_tu[@Gia_tri >0]) * X l thng tin ng dng Xml khi x l thng tin Nh trnh by trong cc phn trn , cng ngh XML uc xp vo loi cng ngh biu din thng tin, v nh th cc hng ng dng chnh ca XML u nhm vo gii quyt/ ci tin cc vn v biu din thng tin trn cc loi hnh biu din khc nhau. Tuy nhin mt trong cc kh nng ng dng kh th v v c nhiu ha hn s pht trin mnh trong tng li lin quan n cng ngh x l thng tin vi vic xut mt m hnh x l thng tin mi theo hng c t thay v lp trnh ( chi tit v hng ng admincnttvn@gmail.com http://www.ebook.edu.vn Trang 12

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

dng ny uc trnh by chi tit trong chng cui ) tng xut pht t vic ti liu XML cho php biu din rt tt cc vn bn c cu trc. V chng trnh ngun trong cc ngn ng lp trnh cng l cc vn bn c cu trc. C nn hay khng ? to ra mt ngn ng lp trnh mi tng t nh ngn ng lp trnh hin nay nhng vi cc t kha l cc th nh du ( v d <for> .</for>, <function>.<function> ) Cu tr li rt tic l khng, v lp trnh trn mt ngn ng nh th l rt kh khn, khng t nhin theo cc thut gii xut. tng v mt ngn ng lp trnh mi theo nh chun XML khng thnh cng, nhng ny thay v s dng ngn ng lp trnh m li s dng ngn ng c t ( ch m t m khng i vo chi tit thut gii) th kt qu c uc rt kh quan. Ngn ng c t XSLT ra i trong bi cnh nh th.) Vi XSLT c th xy dng mt chng trnh theo hng c t vi cc th x l c ng ngha rt cao(m c bit l mt c ch mi v vng lp) v tnh d mang chuyn tt nht c th c ( v y l ngn ng XML ). XSLT cn c nhiu c tnh th v khc s uc trnh by chi tit trong chng cui IV. Gii thiu v DOM Khi nim v DOM (Document Object Model) - M hnh i tng cho php x l trn ti liu XML t cc ngn ng lp trnh - Cu trc d liu ng biu din thng tin ca vn bn c cu trc ni chung v ti liu XML ni ring DOM bao gm h thng cc i tng th vin cho php truy xut ni dung ca ti liu Xml. Ton b tp tin Xml trn b nh ph === > i tng XmlDocument ca DOM Mi th bn trong tp tin Xml === > i tng XmlElement ca DOM Mi thuc tnh ca th ==== > i tng XmlAttribute ca DOM V d 1 : Tp tin Duong_tron.xml biu din thng tin v ng trn C c tm O(2,1) v bn knh R=4 <?xml version="1.0" encoding="utf-8" ?> <DUONG_TRON Ban_kinh="4"> <DIEM x="2"y="1" /> </DUONG_TRON> Tng ng 1 i tng XmlDocument 2 i tng XmlElement 3 i tng XmlAttribute V d 2 : Tp tin Bang_don_gia.Xml biu din thng tin v bng n gi thu phng ca khch sn <?xml version="1.0" encoding="utf-8" ?> <KHACH_SAN Ten="X" Dia_chi="123 ABC" > <LOAI_PHONG Ten="Loi A" Don_gia="280000" /> <LOAI_PHONG Ten="Loi B" Don_gia="240000" /> <LOAI_PHONG Ten="Loi C" Don_gia="180000" /> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 13

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<LOAI_PHONG Ten="Loi c bit" Don_gia="320000" /> </KHACH_SAN> Tng ng 1 i tng XmlDocument 5 i tng XmlElement 10 i tng XmlAttribute 1. Cc thao tc c bn Trnh by cc thao tc c bn nht v DOM * Khai bo s dng th vin DOM Khai bo s dng DOM VB6 S dng th vin Microsoft XML, v50 Khai bo trong chc nng Project- References VB.NET S dng th vin Xml Imports System.Xml C# S dng th vin Xml using System.Xml ; * Khai bo s dng ti liu Xml Khai bo s dng ti liu XML VB6 Khai bo i tng thuc lp DOMDocument Dim Tai_lieu As New DOMDocument VB.NET Khai bo i tng thuc lp XmlDocument Dim Tai_lieu As New XmlDocument C# Khai bo i tng thuc lp XmlDocument XmlDocument Tai_lieu = new XmlDocument (); * c - Ghi ti liu Xml c/ghi ti liu Xml VB6 c : Kq= Tai_lieu.Load (Ten_tap_tin) Ghi : Tai_lieu.Save(Ten_tap_tin) VB.NET c : Tai_lieu.Load (Ten_tap_tin) Ghi : Tai_lieu.Save(Ten_tap_tin) C# c : Tai_lieu.Load (Ten_tap_tin) ; Ghi : Tai_lieu.Save(Ten_tap_tin) ; admincnttvn@gmail.com http://www.ebook.edu.vn Trang 14

B mn Cng Ngh XML * Truy xut nt gc

Cng ngh XML v ng dng

Nguyn tin Huy

Truy xut n nt gc ca ti liu XML VB6 Khai bo i tng thuc giao din IXMLDOMElement v nhn i tng t chc nng tng ng trong Tai_lieu Dim Goc As IXMLDOMElement Set Goc= Tai_lieu.documentElement VB.NET Khai bo i tng thuc giao din XmlElement v nhn i tng t chc nng tng ng trong Tai_lieu Dim Goc As XmlElement Goc=Tai_lieu.DocumentElement C# Khai bo i tng thuc giao din XmlElement v nhn i tng t chc nng tng ng trong Tai_lieu XmlElement Goc ; Goc=Tai_lieu.DocumentElement; * Truy xut nt con trc tip ca nt Truy xut n nt con trc tip ca mt nt VB6 Khai bo i tng Nut_con thuc giao din IXMLDOMElement v nhn i tng t chc nng tng ng ca Nut_cha Dim Nut_con As IXMLDOMElement Set Nut_con= Nut_cha.selectSingleNode(Ten_nut_con) VB.NET Khai bo i tng Nut_con thuc giao din XmlElement v nhn i tng t chc nng tng ng ca Nut_cha Dim Nut_con As XmlElement Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) C# Khai bo i tng Nut_con thuc giao din XmlElement v nhn i tng t chc nng tng ng ca Nut_cha XmlElement Nut_con ; Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) ; * Truy xut thuc tnh ca nt admincnttvn@gmail.com http://www.ebook.edu.vn Trang 15

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Truy xut n thuc tnh ca mt nt VB6 Nhn gi tr : Gia_tri=Nut.getAttribute(Ten_thuoc_tinh) Cp nht/b sung thuc tnh vi gi tr Nut.setAttribute Ten_thuoc_tinh, Gia_tri VB.NET Nhn gi tr : Gia_tri=Nut.GetAttribute(Ten_thuoc_tinh) Cp nht/b sung thuc tnh vi gi tr Nut.SetAttribute (Ten_thuoc_tinh, Gia_tri) C# Nhn gi tr : // Nhn mt s nguyn Gia_tri=int.Parse(Nut.GetAttribute(Ten_thuoc_tinh)) ; Cp nht/b sung thuc tnh vi gi tr Nut.SetAttribute(Ten_thuoc_tinh, Gia_tri.ToString()) ; * Truy xut ni dung ca nt Truy xut n ni dung ( gi tr chui ) ca mt nt VB6 Nhn ni dung : Gia_tri=Nut.nodeValue Cp nht ni dung Nut.nodeValue=Gia_tri VB.NET Nhn ni dung : Gia_tri=Nut.InnerText Cp nht ni dung Nut.InnerTextt=Gia_tri C# Nhn ni dung : // Nhn s thc Gia_tri=Double.Parse(Nut.InnerText); Cp nht ni dung Nut.InnerTextt=Gia_tri.ToSstring(); * To nt mi To nt mi VB6 Khai bo i tng Nut thuc giao din IXMLDOMElement

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 16

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

v nhn i tng t chc nng tng ng ca Tai_lieu Dim Nut As IXMLDOMElement Set Nut= Tai_lieu.CreateElement(Ten_nut) VB.NET Khai bo i tng Nut thuc giao din XmlElement v nhn i tng t chc nng tng ng ca Tai_lieu Dim Nut As XmlElement Nut= Tai_lieu.CreateElement(Ten_nut) C# Khai bo i tng Nut thuc giao din XmlElement v nhn i tng t chc nng tng ng ca Tai_lieu XmlElement Nut ; Nut= Tai_lieu.CreateElement(Ten_nut) ; * B sung nt vo nt cha B sung nt con vo nt cha VB6 Nut_cha.appendChild Nut_con VB.NET Nut_cha.AppendChild( Nut_con) C# Nut_cha.appendChild (Nut_con); 2. V d minh ha Gii thiu chung v cc v d minh ha * c phn s Cch 1 : Ch s dng hm Main Imports System.Xml Module Doc_phan_so_Main Public Sub Main() Dim Tu_so, Mau_so As Integer Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Tu_so = Goc.GetAttribute("Tu_so") Mau_so = Goc.GetAttribute("Mau_so") admincnttvn@gmail.com http://www.ebook.edu.vn Trang 17

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Dim Chuoi As String = "Phn s : " Chuoi &= Tu_so & "/" & Mau_so Console.Write(Chuoi) Console.ReadLine() End Sub End Module ========================= Cch 2 : S dng kiu & hm t nh ngha Imports System.Xml Module Doc_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As Integer Public Mau_so As Integer End Structure Public Sub Main() Dim Ps As PHAN_SO Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Ps = Doc_phan_so(Duong_dan) Dim Chuoi As String = "Phn s : " & Chuoi_phan_so(Ps) Console.Write(Chuoi) Console.ReadLine() End Sub Public Function Doc_phan_so(ByVal Duong_dan As String) As PHAN_SO Dim Kq As PHAN_SO Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Kq.Tu_so = Goc.GetAttribute("Tu_so") Kq.Mau_so = Goc.GetAttribute("Mau_so") Return Kq End Function Public Function Chuoi_phan_so(ByVal Ps As PHAN_SO) As String Dim Kq As String = "" Kq &= Ps.Tu_so & "/" & Ps.Mau_so Return Kq End Function End Module - c phn s VB.NET Cch 1 : Ch s dng hm Main Imports System.Xml Module Doc_phan_so_Main Public Sub Main() Dim Tu_so, Mau_so As Integer Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Dim Tai_lieu As New XmlDocument admincnttvn@gmail.com http://www.ebook.edu.vn Trang 18

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Tu_so = Goc.GetAttribute("Tu_so") Mau_so = Goc.GetAttribute("Mau_so") Dim Chuoi As String = "Phn s : " Chuoi &= Tu_so & "/" & Mau_so Console.Write(Chuoi) Console.ReadLine() End Sub End Module ========================= Cch 2 : S dng kiu & hm t nh ngha Imports System.Xml Module Doc_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As Integer Public Mau_so As Integer End Structure Public Sub Main() Dim Ps As PHAN_SO Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Ps = Doc_phan_so(Duong_dan) Dim Chuoi As String = "Phn s : " & Chuoi_phan_so(Ps) Console.Write(Chuoi) Console.ReadLine() End Sub Public Function Doc_phan_so(ByVal Duong_dan As String) As PHAN_SO Dim Kq As PHAN_SO Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Kq.Tu_so = Goc.GetAttribute("Tu_so") Kq.Mau_so = Goc.GetAttribute("Mau_so") Return Kq End Function Public Function Chuoi_phan_so(ByVal Ps As PHAN_SO) As String Dim Kq As String = "" Kq &= Ps.Tu_so & "/" & Ps.Mau_so Return Kq End Function End Module - c phn s C# Cch 1 : Ch s dng hm Main using System; using System.Xml; admincnttvn@gmail.com http://www.ebook.edu.vn Trang 19

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

public class Doc_phan_so_Main { public static void Main() { int Tu_so, Mau_so; String Duong_dan = "..\\..\\Du_lieu\\Phan_so.xml"; XmlDocument Tai_lieu = new XmlDocument(); Tai_lieu.Load (Duong_dan) ; // Cha x l li XmlElement Goc=Tai_lieu.DocumentElement ; Tu_so =int.Parse (Goc.GetAttribute ("Tu_so")) ; Mau_so =int.Parse (Goc.GetAttribute ("Mau_so")); String Chuoi = "Phn s :"; Chuoi += Tu_so + "/" + Mau_so; Console.Write(Chuoi); Console.ReadLine(); } } Cch 2 : S dng kiu & hm t nh ngha using System; using System.Xml; public class Ghi_phan_so_Kieu_Ham { public struct PHAN_SO { public int Tu_so; // > 0 public int Mau_so; // > 0 } public static void Main() { PHAN_SO Ps; Ps = Nhap_phan_so(); String Duong_dan = "..\\..\\Du_lieu\\Phan_so.xml"; if (Ghi_phan_so(Ps, Duong_dan)) Console.Write(" ghi "); else Console.Write("Li khi ghi "); Console.ReadLine(); } public static PHAN_SO Nhap_phan_so() { PHAN_SO Kq; Console.Write("T s:"); Kq.Tu_so = int.Parse(Console.ReadLine()); // Cha x l li Console.Write("Mu s:"); Kq.Mau_so = int.Parse(Console.ReadLine()); // Cha x l li return Kq; admincnttvn@gmail.com http://www.ebook.edu.vn Trang 20

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

} public static Boolean Ghi_phan_so(PHAN_SO Ps, String Duong_dan ) { Boolean Kq = true; XmlDocument Tai_lieu = new XmlDocument(); XmlElement Goc = Tai_lieu.CreateElement("PHAN_SO"); Goc.SetAttribute("Tu_so", Ps.Tu_so.ToString()); Goc.SetAttribute("Mau_so", Ps.Mau_so.ToString()); Tai_lieu.AppendChild(Goc); // Ghi ti liu Xml Tai_lieu.Save(Duong_dan); return Kq; } } * c ng trn Imports System.Xml Module Doc_duong_tron Structure DIEM Public x As Double Public y As Double End Structure Structure DUONG_TRON Public Tam As DIEM Public Ban_kinh As Double End Structure Public Sub Main() Dim Dt As DUONG_TRON Dim Duong_dan As String = "..\..\Du_lieu\Duong_tron.xml" Dt = Doc_duong_tron(Duong_dan) Dim Chuoi As String = "Phng trnh dng trn : " & Chuoi_duong_tron(Dt) Console.Write(Chuoi) Console.ReadLine() End Sub Public Function Doc_duong_tron(ByVal Duong_dan As String) As DUONG_TRON Dim Kq As DUONG_TRON Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Kq.Ban_kinh = Goc.GetAttribute("Ban_kinh") Dim Nut As XmlElement = Goc.ChildNodes(0) Kq.Tam.x = Nut.GetAttribute("x") Kq.Tam.y = Nut.GetAttribute("y") admincnttvn@gmail.com http://www.ebook.edu.vn Trang 21

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Return Kq End Function Public Function Chuoi_duong_tron(ByVal Dt As DUONG_TRON) As String Dim Kq As String = "" Kq &= String.Format(" (x -{0})^2 + ( y -{1})^2 = {2} ^2", Dt.Tam.x, Dt.Tam.y, Dt.Ban_kinh) Return Kq End Function End Module * c dy s Imports System.Xml Module Doc_day_so Public Sub Main() Dim a As ArrayList Dim Duong_dan As String = "..\..\Du_lieu\Day_so.xml" a = Doc_day_so(Duong_dan) Dim Chuoi As String = "Dy s : " & Chuoi_day_so(a) Console.Write(Chuoi) Console.ReadLine() End Sub Public Function Doc_day_so(ByVal Duong_dan As String) As ArrayList Dim Kq As New ArrayList Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement For Each Nut As XmlElement In Goc.ChildNodes Kq.Add(Nut.GetAttribute("Gia_tri")) Next Return Kq End Function Public Function Chuoi_day_so(ByVal a As ArrayList) As String Dim Kq As String = "" For Each So As Integer In a Kq &= So & " " Next Return Kq End Function End Module * Ghi phn s Cch 1 : Ch s dng hm Main Imports System.Xml Module Ghi_phan_so_Main Public Sub Main() admincnttvn@gmail.com http://www.ebook.edu.vn Trang 22

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Dim Tu_so, Mau_so As Integer 'Nhp liu Console.Write("T s:") Tu_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Mu s:") Mau_so = Integer.Parse(Console.ReadLine) ' Cha kim tra ' To ti liu Xml \ Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("PHAN_SO") Goc.SetAttribute("Tu_so", Tu_so) Goc.SetAttribute("Mau_so", Mau_so) Tai_lieu.AppendChild(Goc) 'Ghi Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Tai_lieu.Save(Duong_dan) Console.ReadLine() End Sub End Module ============================== Cch 2 : S dng kiu & hm t nh ngha Imports System.Xml Module Ghi_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As Integer Public Mau_so As Integer End Structure Public Function Nhap_phan_so() As PHAN_SO Dim Kq As PHAN_SO Console.Write("T s") Kq.Tu_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Mu s") Kq.Mau_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Return Kq End Function Public Function Ghi_phan_so(ByVal Ps As PHAN_SO, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("PHAN_SO") Goc.SetAttribute("Tu_so", Ps.Tu_so) Goc.SetAttribute("Mau_so", Ps.Mau_so) Tai_lieu.AppendChild(Goc) Tai_lieu.Save(Duong_dan) Return Kq End Function Public Sub Main() Dim Ps As PHAN_SO Ps = Nhap_phan_so() admincnttvn@gmail.com http://www.ebook.edu.vn Trang 23

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Ghi_phan_so(Ps, Duong_dan) Console.ReadLine() End Sub End Module - Ghi phn s VB.NET Cch 1 : Ch s dng hm Main Imports System.Xml Module Ghi_phan_so_Main Public Sub Main() Dim Tu_so, Mau_so As Integer 'Nhp liu Console.Write("T s:") Tu_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Mu s:") Mau_so = Integer.Parse(Console.ReadLine) ' Cha kim tra ' To ti liu Xml \ Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("PHAN_SO") Goc.SetAttribute("Tu_so", Tu_so) Goc.SetAttribute("Mau_so", Mau_so) Tai_lieu.AppendChild(Goc) 'Ghi Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Tai_lieu.Save(Duong_dan) Console.ReadLine() End Sub End Module ============================== Cch 2 : S dng kiu & hm t nh ngha Imports System.Xml Module Ghi_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As Integer Public Mau_so As Integer End Structure Public Function Nhap_phan_so() As PHAN_SO Dim Kq As PHAN_SO Console.Write("T s") Kq.Tu_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Mu s") Kq.Mau_so = Integer.Parse(Console.ReadLine) ' Cha kim tra Return Kq End Function Public Function Ghi_phan_so(ByVal Ps As PHAN_SO, ByVal Duong_dan As String) admincnttvn@gmail.com http://www.ebook.edu.vn Trang 24

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("PHAN_SO") Goc.SetAttribute("Tu_so", Ps.Tu_so) Goc.SetAttribute("Mau_so", Ps.Mau_so) Tai_lieu.AppendChild(Goc) Tai_lieu.Save(Duong_dan) Return Kq End Function Public Sub Main() Dim Ps As PHAN_SO Ps = Nhap_phan_so() Dim Duong_dan As String = "..\..\Du_lieu\Phan_so.xml" Ghi_phan_so(Ps, Duong_dan) Console.ReadLine() End Sub End Module - Ghi phn s C# Cch 1 : Ch s dng hm Main using System; using System.Xml; public class Ghi_phan_so_Main { public static void Main() { int Tu_so, Mau_so; // Nhp liu Console.Write ("T s:"); Tu_so =int.Parse (Console.ReadLine() ) ; // Cha x l li Console.Write("Mu s:"); Mau_so =int.Parse (Console.ReadLine() ) ; // Cha x l li // To ni dung ti liu Xml XmlDocument Tai_lieu = new XmlDocument(); XmlElement Goc=Tai_lieu.CreateElement ("PHAN_SO"); Goc.SetAttribute ("Tu_so",Tu_so.ToString ()); Goc.SetAttribute ("Mau_so",Mau_so.ToString ()); Tai_lieu.AppendChild (Goc) ; // Ghi ti liu Xml String Duong_dan = "..\\..\\Du_lieu\\Phan_so.xml"; Tai_lieu.Save (Duong_dan) ; Console.ReadLine(); admincnttvn@gmail.com http://www.ebook.edu.vn Trang 25

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

} } ====================== Cch 2 : S dng kiu & hmt nh ngha using System; using System.Xml; public class Ghi_phan_so_Kieu_Ham { public struct PHAN_SO { public int Tu_so; // > 0 public int Mau_so; // > 0 } public static void Main() { PHAN_SO Ps; Ps = Nhap_phan_so(); String Duong_dan = "..\\..\\Du_lieu\\Phan_so.xml"; if (Ghi_phan_so(Ps, Duong_dan)) Console.Write(" ghi "); else Console.Write("Li khi ghi "); Console.ReadLine(); } public static PHAN_SO Nhap_phan_so() { PHAN_SO Kq; Console.Write("T s:"); Kq.Tu_so = int.Parse(Console.ReadLine()); // Cha x l li Console.Write("Mu s:"); Kq.Mau_so = int.Parse(Console.ReadLine()); // Cha x l li return Kq; } public static Boolean Ghi_phan_so(PHAN_SO Ps, String Duong_dan ) { Boolean Kq = true; XmlDocument Tai_lieu = new XmlDocument(); XmlElement Goc = Tai_lieu.CreateElement("PHAN_SO"); Goc.SetAttribute("Tu_so", Ps.Tu_so.ToString()); Goc.SetAttribute("Mau_so", Ps.Mau_so.ToString()); Tai_lieu.AppendChild(Goc); // Ghi ti liu Xml Tai_lieu.Save(Duong_dan); return Kq; } admincnttvn@gmail.com http://www.ebook.edu.vn Trang 26

B mn Cng Ngh XML } * Ghi ng trn

Cng ngh XML v ng dng

Nguyn tin Huy

Imports System.Xml Module Ghi_duong_tron Structure DIEM Public x As Double Public y As Double End Structure Structure DUONG_TRON Public Tam As DIEM Public Ban_kinh As Double End Structure Public Function Nhap_duong_tron() As DUONG_TRON Dim Kq As DUONG_TRON Console.Write("Honh tm:") Kq.Tam.x = Double.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Tung tm:") Kq.Tam.y = Double.Parse(Console.ReadLine) ' Cha kim tra Console.Write("Bn knh :") Kq.Ban_kinh = Double.Parse(Console.ReadLine) ' Cha kim tra Return Kq End Function Public Function Ghi_duong_tron(ByVal Dt As DUONG_TRON, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("DUONG_TRON") Goc.SetAttribute("Ban_kinh", Dt.Ban_kinh) Tai_lieu.AppendChild(Goc) Dim Nut As XmlElement = Tai_lieu.CreateElement("DIEM") Nut.SetAttribute("x", Dt.Tam.x) Nut.SetAttribute("y", Dt.Tam.y) Goc.AppendChild(Nut) Tai_lieu.Save(Duong_dan) Return Kq End Function Public Sub Main() Dim Dt As DUONG_TRON Dt = Nhap_duong_tron() Dim Duong_dan As String = "..\..\Du_lieu\Duong_tron.xml" Ghi_duong_tron(Dt, Duong_dan) Console.ReadLine() End Sub End Module * Ghi dy s admincnttvn@gmail.com http://www.ebook.edu.vn Trang 27

B mn Cng Ngh XML Imports System.Xml Module Ghi_day_so

Cng ngh XML v ng dng

Nguyn tin Huy

Public Function Nhap_day_so() As ArrayList Dim Kq As New ArrayList Console.Write("Dy s") Dim Chuoi As String = Console.ReadLine Dim M As String() = Chuoi.Split(",") ' Cha kim tra For Each Con As String In M Kq.Add(Integer.Parse(Con)) ' Cha kim tra Next Return Kq End Function Public Function Ghi_day_so(ByVal a As ArrayList, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("DAY_SO") Tai_lieu.AppendChild(Goc) For Each So As Integer In a Dim Nut As XmlElement = Tai_lieu.CreateElement("SO") Nut.SetAttribute("Gia_tri", So) Goc.AppendChild(Nut) Next Tai_lieu.Save(Duong_dan) Return Kq End Function Public Sub Main() Dim a As ArrayList a = Nhap_day_so() Dim Duong_dan As String = "..\..\Du_lieu\Day_so.xml" Ghi_day_so(a, Duong_dan) Console.ReadLine() End Sub End Module V. Bi tp Bi tp Gii thiu chung v cc bi tp 1. Biu din thng tin vi Xml * Tam gic Yu cu : Biu din thng tin tam gic ABC vi A(1,0) , B(-8,3), C(4,4) vi Xml Bi gii : admincnttvn@gmail.com http://www.ebook.edu.vn Trang 28

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<TAM_GIAC> <DIEM Ten="A" x="1" y="0" /> <DIEM Ten="B" x="-8" y="3" /> <DIEM Ten="C" x="4" y="4" /> </TAM_GIAC> * a thc Yu cu : Biu din thng tin a thc P(x) = 4x5 -7x3 +2x2 +4 vi Xml Bi gii : <DA_THUC Ten="P" Bien_so="x"> <DON_THUC He_so="4" So_mu="5" /> <DON_THUC He_so="-7" So_mu="3" /> <DON_THUC He_so="2" So_mu="2" /> <DON_THUC He_so="4" So_mu="0" /> </DA_THUC> * Ma trn Yu cu : Biu din thng tin ma trn cc s nguyn 1 2 -4 6 8 0 7 12 0 9 11 -3 vi Xml Bi gii : Cch 1 : <MA_TRAN> <SO y="0" x="0" Gia_tri="1" /> <SO y="0" x="1" Gia_tri="2" /> <SO y="0" x="2" Gia_tri="-4" /> <SO y="0" x="3" Gia_tri="6" /> <SO y="1" x="0" Gia_tri="8" /> <SO y="1" x="1" Gia_tri="0" /> <SO y="1" x="2" Gia_tri="7" /> <SO y="1" x="3" Gia_tri="12" /> <SO y="2" x="0" Gia_tri="0" /> <SO y="2" x="1" Gia_tri="9" /> <SO y="2" x="2" Gia_tri="11" /> <SO y="2" x="3" Gia_tri="-3" /> </MA_TRAN>

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 29

B mn Cng Ngh XML * Bng im danh

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu : Biu din thng tin bng im danh Bng im danh hc sinh lp !0A Thng 11/2007 H tn Vng c php Vng khng php ... .... vi Xml Bi gii : <BANG_DIEM_DANH Ten_lop="10A" Thang="11" Nam="2007"> <HOC_SINH Ho_ten="Trn vn Long" Vang_co_phep="0" Vang_khong_phep="2" /> <HOC_SINH Ho_ten="L th b Nh" Vang_co_phep="0" Vang_khong_phep="0" /> <HOC_SINH Ho_ten="Nguyn vn A" Vang_co_phep="0" Vang_khong_phep="0" /> <HOC_SINH Ho_ten="H th p" Vang_co_phep="0" Vang_khong_phep="0" /> <HOC_SINH Ho_ten="L vn Tt" Vang_co_phep="1" Vang_khong_phep="4" /> </BANG_DIEM_DANH> * Bn c car Yu cu : Biu din thng tin v cc qun c ca mt bn c car Hng dn :S dng tp tin Caro.xml vi th gc BAN_CO ( c th ch c 1 thuc tnh So_dong hay ch c 1 thuc tnh So_cot, hay c 2 thuc tnh So_dong, So_cot, hay khng c thuc tnh no ht !!! ) Th BAN_CO gm nhiu th QUAN_CO ( Cc thuc tnh ca QUAN_CO tng ng thng tin v qun c ) * S gh Yu cu : Biu din thng tin v s gh ca mt sn khu biu din bt k ( V d Idecaf, Ha Bnh, Nh vn ha qun 1, Nh ht thnh ph, v.v..) Hng dn : S dng tp tin So_do_ghe.xml vi th gc SO_DO ( c th ch c 1 thuc tnh So_dong hay ch c 1 thuc tnh So_cot, hay c 2 thuc tnh So_dong, So_cot, hay khng c thuc tnh no ht !!! ) Th SO_DO gm nhiu th GHE ( Cc thuc tnh ca GHE tng ng thng tin ca gh ) * Bng lch tu thng nht Yu cu : Biu din thng tin v bng lch tu thng nht Ghi ch : y l bi tp kh dnh cho cc sinh vin t xp mnh vo loi kh, gii * S cc chuyn bay ni a admincnttvn@gmail.com http://www.ebook.edu.vn Trang 30

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu : Biu din thng tin v s cc chuyn bay ni a ca VN Ghi ch : y l bi tp kh dnh cho cc sinh vin t xp mnh vo loi gii 2. Lp trnh vi DOM * Tnh gi tr n thc Yu cu : Vit chng trnh tnh gi tr n thc P(x) =axn ( c thng tin uc lu tr dui dng tp tin Xml ) vi x0 cho trc Hng dn thit k chng trnh : Biu din thng tin : - B nh ph : S dng tp tin Xml vi mt th duy nht DON_THUC ( gm 2 thuc tnh ) - B nh chnh : S dng 3 bin P : DON_THUC x0 : S thc Kq : S thc vi DON_THUC l kiu cu trc gm 2 thnh phn Biu din x l : S dng cc hm sau Hm x l chnh Main Khai bo cc bin P,x0,Kq P = D liu c t tp tin Xml x0 = D liu nhp t ngi dng Kq = Gi tr ca P vi x0 Xut Kq Hm Doc_don_thuc Tham s : Chui Duong_dan n tp tin Xml Kt qu : on thc tng ng Hm Nhap_so_thuc Tham s : Chui Ghi_chu Kt qu : S thc nhp t ngi dng Ham Gia_tri Tham s : n thc P, Gi tr x0 Kt qu : Gi tr ca P vi x0 VB.NET Imports System.Xml Module Tinh_gia_tri_don_thuc_Kieu_Ham Structure DON_THUC admincnttvn@gmail.com http://www.ebook.edu.vn Trang 31

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Public He_so As Double Public So_mu As Integer ' >=0 End Structure Public Sub Main() Dim Duong_dan As String = "..\..\Du_lieu\Don_thuc.xml" Dim P As DON_THUC Dim x0 As Double Dim Kq As Double ' c n thc ' Nhp x0 ' Tnh Kq' Xut Kq End Sub Public Function Doc_don_thuc(ByVal Duong_dan As String) As DON_THUC Dim Kq As DON_THUC ' c d liu ca tp tin vo i tng Tai_lieu XmlDocument ' Gn gi tr ca kt qu t gc ca Tai_lieu Return Kq End Function Public Function Gia_tri(ByVal P As DON_THUC, ByVal x0 As Double) As Double Dim Kq As Double Kq = P.He_so * Math.Pow(x0, P.So_mu) Return Kq End Function Public Function Chuoi_don_thuc(ByVal P As DON_THUC) As String Dim Kq As String = "" Kq &= P.He_so & "x^" & P.So_mu ' Cha xem xt cc trng hp c bit Return Kq End Function Public Function Nhap_so_thuc(ByVal Ghi_chu As String) As Double Dim Kq As Double Console.Write(Ghi_chu) Kq = Double.Parse(Console.ReadLine) ' Cha x l li Return Kq End Function End Module C# using System; using System.Xml; public class Tinh_gia_tri_don_thuc_Kieu_Ham { public struct DON_THUC { public Double He_so; admincnttvn@gmail.com http://www.ebook.edu.vn Trang 32

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

public int So_mu; // > 0 } public static void Main() { String Duong_dan = "..\\..\\Du_lieu\\Don_thuc.xml"; DON_THUC P; Double x0; Double Kq; // c n thc P // Nhp gi tr x0 // Tnh Kq // Xut Kq } public static DON_THUC Doc_don_thuc(String Duong_dan ) { DON_THUC Kq; // c d liu ca tp tin vo i tng Tai_lieu XmlDocument // Gn gi tr cho Kq t nt gc ca Tai_lieu return Kq; } public static Double Gia_tri(DON_THUC P, Double x0 ) { Double Kq; Kq = P.He_so * Math.Pow(x0, P.So_mu); return Kq; } public static String Chuoi_don_thuc(DON_THUC P) { String Kq = ""; Kq += P.He_so; Kq += "x^"; Kq += P.So_mu; // Cha xem xt cc trng hp c bit return Kq; } public static Double Nhap_so_thuc(String Ghi_chu) { Double Kq; Console.Write(Ghi_chu); Kq = Double.Parse(Console.ReadLine()); // Chua xem xt ngi dng nhp chui return Kq; } } * Gii phng trnh bc 2 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 33

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu : Vit chng trnh gii phng trnh bc 2 ax2+bx+c=0 ( a khc 0) c thng tin uc lu tr dui dng tp tin Xml Hng dn thit k chng trnh : Biu din thng tin - B nh ph : S dng tp tin Xml vi mt th duy nht TAM_THUC ( gm 3 thuc tnh ) - B nh chnh : S dng 3 bin P : TAM_THUC Ng : Mng 1 chiu(dy) cc s thc vi kch thc ti a 2 vi TAM_THUC l kiu cu trc gm 3 thnh phn Biu din x l : S dng cc hm sau Hm x l chnh Main Khai bo cc bin P,Ng P = Tam thc c t tp tin Xml Ng = Nghim ca P Chuoi = Chui tng ng nghim Ng Xut Chuoi Hm Doc_tam_thuc Tham s : Chui Duong_dan n tp tin Xml Kt qu : Tam thc tng ng Hm Giai_phuong_trinh Tham s : Tam thc P Kt qu : Mng 1 chiu(dy) cc s thc vi kch thc ti a 2 Ham Chuoi_nghiem Tham s : Mng 1 chiu(dy) cc s thc vi kch thc ti a 2 Kt qu : Chui tng ng VB.NET Imports System.Xml Module Giai_phuong_trinh_bac_2_Kieu_Ham Structure TAM_THUC Public a As Double ' khc 0 Public b As Double Public c As Double End Structure Public Sub Main() Dim Duong_dan As String = "..\..\Du_lieu\Tam_thuc.xml" Dim P As TAM_THUC Dim Ng As New ArrayList ' c tam thc P admincnttvn@gmail.com http://www.ebook.edu.vn Trang 34

B mn Cng Ngh XML ' Tnh nghim Ng

Cng ngh XML v ng dng

Nguyn tin Huy

' Xut nghim Ng End Sub Public Function Doc_tam_thuc(ByVal Duong_dan As String) As TAM_THUC Dim Kq As TAM_THUC Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Kq.a = Goc.GetAttribute("a") Kq.b = Goc.GetAttribute("b") Kq.c = Goc.GetAttribute("c") Return Kq End Function Public Function Giai_phuong_trinh(ByVal P As TAM_THUC) As ArrayList Dim Kq As New ArrayList Dim Delta As Double = P.b * P.b - 4 * P.a * P.c ' Tnh nghim v a vo Kq da trn xt du ca Delta Return Kq End Function Public Function Chuoi_tam_thuc(ByVal P As TAM_THUC) As String Dim Kq As String = "" Kq &= String.Format("{0}x^2 + {1}x +{2}", P.a, P.b, P.c) ' Cha xem xt trnh by s m, 0 Return Kq End Function Public Function Chuoi_nghiem(ByVal Ng As ArrayList) As String Dim Kq As String = "" If Ng.Count = 0 Then Kq = "Phng trnh v nghim" ElseIf Ng.Count = 1 Then Kq = String.Format("Phng trnh c nghim kp x1=x2={0:F2}", Ng(0)) ElseIf Ng.Count = 2 Then Kq = String.Format("Phng trnh c 2 nghim x1={0:F2} , x2={1:F2}", Ng(0), Ng(1)) End If Return Kq End Function End Module C# using System;using System.Xml;using System.Collections; // Khai bo th vin hm cho php s dng ArrayList public class Giai_phuong_trinh_bac_2_kieu_ham { public struct TAM_THUC { public Double a; // Khc 0 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 35

B mn Cng Ngh XML public Double b; public Double c;

Cng ngh XML v ng dng

Nguyn tin Huy

} public static void Main() { String Duong_dan = "..\\..\\Du_lieu\\Tam_thuc.xml"; TAM_THUC P; ArrayList Ng; // c tam thc P // Tnh nghim Ng // Xut nghim Ng } public static TAM_THUC Doc_tam_thuc(String Duong_dan) { TAM_THUC Kq; XmlDocument Tai_lieu = new XmlDocument(); Tai_lieu.Load(Duong_dan); // Cha x l li XmlElement Goc = Tai_lieu.DocumentElement; Kq.a = Double.Parse(Goc.GetAttribute("a")); Kq.b = Double.Parse(Goc.GetAttribute("b")); Kq.c = Double.Parse(Goc.GetAttribute("c")); return Kq; } public static ArrayList Giai_phuong_trinh(TAM_THUC P) { ArrayList Kq = new ArrayList(); Double Delta = P.b * P.b - 4 * P.a * P.c; // Tnh nghim v a vo Kq da trn xt u ca Delta return Kq; } public static String Chuoi_tam_thuc(TAM_THUC P) { String Kq = ""; Kq = String.Format("{0}x^2 + {1}x + {2}", P.a, P.b, P.c); // Cha xem xt cc trng hp c bit return Kq; } public static String Chuoi_nghiem(ArrayList Ng ) { String Kq = ""; if (Ng.Count == 0) Kq = "Phng trnh v nghim"; else if (Ng.Count == 1) admincnttvn@gmail.com http://www.ebook.edu.vn Trang 36

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Kq = String.Format("phng trnh c nghim kp x1=x2={0:F2}", Ng[0]); else if (Ng.Count == 2) Kq = String.Format("phng trnh c 2 nghim x1{0:F2} , x2={1:F2}", Ng[0],Ng[1]); return Kq; } } * Tnh gi tr hm s Yu cu : Vit chng trnh tnh gi tr hm s f(x) f(x) = (a1x2+b1x+c1) /(a2x2+b2x+c2) c thng tin c lu tr dui dng tp tin Xml vi x0 cho trc Hng dn thit k chng trnh : Biu din thng tin : - B nh ph : S dng tp tin Xml vi th gc HAM_SO bao gm 2 th conTAM_THUC - B nh chnh : S dng 3 bin f : HAM_SO x0 : S thc Kq : S thc vi HAM_SO l kiu cu trc gm 2 thnh phn tng ng vi 2 tam thc P,Q Biu din x l : S dng cc hm sau Hm x l chnh Main Khai bo cc bin f,x0,Kq f = Hm s c t tp tin Xml x0 = D liu nhp t ngi dng Kq = Gi tr ca f vi x0 Xut Kq Hm Doc_ham_so Tham s : Chui Duong_dan n tp tin Xml Kt qu : Hm s tng ng Hm Nhap_so_thuc Tham s : Chui Ghi_chu Kt qu : S thc nhp t ngi dng Ham Gia_tri Tham s : Hm s f , Gi tr x0 Kt qu : Gi tr ca f vi x0 * Tnh tin thu phng

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 37

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu : Vit chng trnh tnh tin thu phng khi bit s ngy thu lai phng da trn bng n gi uc lu tr di dng tp tin Xml Hng dn thit k chng trnh : Biu din thng tin : - B nh ph : S dng tp tin Bang_don_gia.Xml vi th gc BANG_DON_GIA bao gm cc th con LOAI_PHONG ( c cc thuc tnh Ten, Don_gia ) - B nh chnh : S dng 3 bin Bdg: Mng 1 chiu( dy) cc LOAI_PHONG So_ngay_thue : S nguyn >0 ChI_so : S nguyn tng ng s th t ca loi phng thu trong Bdg ( Chi_so>=0 v Chi_so < S cc loi phng) Tien_phai_tra : S nguyn vi LOAI_PHONG l kiu cu trc Biu din x l : S dng cc hm sau Hm x l chnh Main Khai bo cc bin Bdg,So_ngay_thue,Chi_so,Tien_phai_tra Bdg = Bng n gi c t tp tin Xml So_ngay_thue = D liu nhp t ngi dng ChI_so= D liu nhp t ngi dng Tien_phai_tra = Tin phi tr vi So_ngay_thue v loi phng Bdg[Chi_so] Xut Tien_phai_tra Hm Doc_bang_don_gia Tham s : Chui Duong_dan n tp tin Xml Kt qu : Bng n gi tng ng Hm Nhap_so_nguyen Tham s : Chui Ghi_chu , Can_duoi, Can_tren Kt qu : S nguyn n nhp t ngi dng vi Can_duoi<=n<=Can_tren Ham Tinh_tien Tham s : Bng n gi , S ngy thu, Ch s ca loi phng Kt qu : Tin phi tr * i ngai t Yu cu : Vit chng trnh i ngai t khi bit s tin cn i, lai ngai t, hnh thc i da trn bng t gi uc lu tr di dng tp tin Xml Hng dn thit k chng trnh : Biu din thng tin : - B nh ph : S dng tp tin Bang_ty_gia.Xml vi th gc BANG_TY_GIA bao gm cc th con NGOAI_TE ( c cc thuc tnh Ten, Mua_tien_mat,Mua_chuyen_khoan, Ban ) - B nh chnh : S dng 3 bin admincnttvn@gmail.com http://www.ebook.edu.vn Trang 38

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Btg: Mng 1 chiu( dy) cc NGOAI_TE So_tien_doi : S nguyn >0 Hinh_thuc_doi : Chui vi 1 trong 3 gi tr "MTM", "MCK", "BAN" Ngoai_te_doi : Ngoi t cn i Tien_doi_duoc : S thc vi NGOAI_TE l kiu cu trc Biu din x l : S dng cc hm sau Hm x l chnh Main Khai bo cc bin Btg,So_tien_doi, Ngoai_te_doi,Tien_doi_duoc Btg = Bng t gi c t tp tin Xml So_tien_doi = D liu nhp t ngi dng Ngoai_te_doi= Ngoi t c chn t ngi dng Hinh_thuc_doi=Hnh thc i c chn t ngi dng Tien_doi_duoc = Tin i c vi Bng t gi,S tin i, Ngoi t i v hnh thc i Xut Tien_doi_duoc Hm Doc_bang_ty_gia Tham s : Chui Duong_dan n tp tin Xml Kt qu : Bng t gi tng ng Hm Nhap_so_nguyen Tham s : Chui Ghi_chu , Can_duoi, Can_tren Kt qu : S nguyn n nhp t ngi dng vi Can_duoi<=n<=Can_tren Hm Chon_ngoai_te Tham s : ??? Kt qu : Ngoi t c chn Hm Chon_hinh_thuc Tham s : Kt qu : Hnh thc i c chn Ham Doi_tien Tham s : ??? Kt qu : S tin i c * D v s Yu cu : Vit chng trnh d v s da trn kt qu x s uc lu tr di dng tp tin Xml Hng dn thit k chng trnh : Biu din thng tin : - B nh ph : S dng tp tin Kqxs.Xml vi th gc KET_QUA bao gm cc th con GIAI ( c cc thuc tnh Ten, Tien_thuong ) , th GIAI bao gm cc th con SO( vi thuc tnh Gia_tri) - B nh chnh : S dng 3 bin Kqxs: Mng 1 chiu( dy) cc GIAI Ve_so : S nguyn Tien_thuong : S nguyn vi GIAI l kiu cu trc tng ng cu trc tp tin Xml Biu din x l : S dng cc hm sau Hm x l chnh Main admincnttvn@gmail.com http://www.ebook.edu.vn Trang 39

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Khai bo cc bin Kqxs ,Ve_so, Tien_thuong Kqxs = Kt qu x s c t tp tin Xml Ve_so = D liu nhp t ngi dng Tien_thuong= Tng tin thng vi kt qu x s v Ve_so ( Mt v s c th trng thng nhiu gii) Xut Tien_thuong Hm Doc_ket_qua_xo_so Hm Nhap_so_nguyen Ham Tinh_tien_thuong * Tnh tng tr Yu cu : Vit chng trnh tnh tng tr ca mch in ch gm cc in tr ( c thng tin lu tr dui dng tp tin Xml) Ghi ch : Bi tp kh dnh cho cc sinh vin t xp mnh vo loi kh gii Gi : K thut qui hay K thut lp trnh hng i tng vi k thut a x * S chuyn bay Yu cu : Vit chng xut s cc chuyn bay vi thng tin c lu tr trn mt tp tin Xml Ghi ch : Bi tp kh dnh cho cc sinh vin t xp mnh vo loi gii.

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 40

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Mc tiu : - Trnh by cc kh nng ca cng ngh Xml khi c ng dng trong giai on thit k thnh phn d liu - Rn luyn k nng c t ti liu Xml biu din thng tin ca i tng trong thc t - Bc u ng dng Xml trong ng dng nh, n gin I. M u 1. Ni dung ti liu XML Khi nim v ni dung ti liu Xml Ni dung ca ti liu XML bao gm 2 phn Ni dung chnh H thng cc th nh du ( c hay khng c ni dung ) tng ng vi cc thng tin cn biu din Ni dung ph H thng cc th khc c ngha b sung, tng cng mt s thng tin v ti liu XML. Cc th ny c tc dng gip cho vic s dng, x l trn ti liu XML tt hn trong mt s trng hp nht nh Cc th bn trong ni dung ph bao gm loi sau - Th khai bo tham s - Th ch th x l - Th ghi ch - Th CDATA - Th khai bo cu trc - Th khai bo thc th Cc th khai bo tham s, th ch th x l,th ghi ch v th CDATA c ngha s dng n gin s uc din gii chi tit ngay trong phn sau Th khai bo cu trc lin quan n cu trc ti liu XML vi nhiu khi nim khc. Th ny s uc trnh by chi tit trong phn c t cu trc vi DTD Th khai bo thc th lin quan n nhiu k thut khc nhau c th p dng trn ti liu XML. Th ny s c trnh by chi tit trong phn K thut c t ni dung ti liu XML * Th khai bo tham s Th khai bo tham s Th khai bo tham s cho php m t thm mt s thng tin chung (tham s ) v ti liu XML ngoi cc thng tin biu din trong ni dung chnh. Dng khai bo chung nh sau <?xml Ten_1=Gia_tri_1 Ten_2=Gia_tri_2 ?>Ten_1, Ten_2, l cc tn ca cc tham s v Gia_tri_1, Gia_tri_2, l cc gi tr tng ng. Cho n hin nay c 3 tham s uc dng l version, encoding, v standalone. Tham s version bt buc phi c nu cc tham s khc uc s dng Tham s version : Khai bo v phin bn ca nh chun XML uc s dng V d : Ti liu XML thuc nh chun 1.0 <?xml version=1.0 ?> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 41

Chng 2 : c t ni dung & cu trc ti liu XML

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Tham s encoding : Khai bo v cch m ha cc k t trong ti liu V d Ti liu XML s dng cch m ha Unicode k hiu utf-8 <?xml version=1.0 encoding=utf-8 ?> Ti liu XML s dng cch m ha Unicode k hiu utf-16 <?xml version=1.0 encoding=utf-16 ?> Tham s standalone : Khai bo v lin kt ca ti liu XML v cc ti liu khc. Tham s ny ch c 2 gi tr hp l l yes , no. Gi tr nh sn l no V d : Ti liu XML c lin kt vi cc ti liu khc <?xml standalone=yes ?> Ti liu XML khng c lin kt vi cc ti liu khc <?xml version=1.0 standalone=no ?> * Th ch th x l Th ch th x l ngha chung ca cc th ch th x l l cho php m t thm mt s thng tin ( lin quan x l ) v ti liu XML c ngha ring vi mt cng c x l no . y chnh l mt phng php cho php m rng, b sung cc x l ring vo mt lp ti liu XML cng thuc mt h thng phn lp no Dng khai bo chung nh sau <? Bo_xu_ly Du_lieu ?> Bo_xu_ly l k hiu ca b x l s tin hnh mt s x l no trn ti liu XML . Du_lieu l thng tin c gi n Bo_xu_ly V d: <?xml-stylesheet type=text/css href=Dinh_dang.css ?> L th ch th cn x l nh dng th hin ti liu XML vi chng trnh nh dng theo ngn ng css uc lu tr bn trong tp tin Dinh_dang.css Th ny s c ngha vi mt s trnh duyt Web nh E ( phin bn 50. v sau ), Netscape ( phin bn 6.0 v sau) * Th ghi ch Th ghi ch Th ghi ch cho php b sung cc thng tin ghi ch c ngha i vi con ngi v hon ton khng c ngha vi cc h thng x l ti liu XML Dng khai bo chung nh sau <-- Ni dung ghi ch --> * Th CDATA Th CDATA Th CDATA c ngha yu cu cc b phn tch ti liu XML b qua v khng phn tch vo ni dung bn trong ca th ny. Tc dng ca th l cho php s dng trc tip bn trong th mt s k hiu khng uc php nu s dng bn ngoi ( v d cc k t < , > , ) admincnttvn@gmail.com http://www.ebook.edu.vn Trang 42

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Dng khai bo chung nh sau <![CDATA [ Ni dung ]]> 2. Cu trc ti liu XML Khi nim v cu trc ti liu XML - Ch tng ng cu trc ca ni dung chnh - Cch thc t chc, sp xp ca cc th (c hay khng c ni dung) trong ni dung chnh Khi nim v c t cu trc ti liu XML - M t ngn gn, chnh xc cu trc ti liu XML - M t ngn gn, chnh xc cch thc t chc, sp xp ca cc th * Ngn ng c t cu trc C rt nhiu ngn ng c t uc xut m t cu trc ti liu Xml nh DTD, XML Schema, XMl-Data, Schematron , RELAX NG, v,v.. .Trong s c 2 ngn ng thng dng l DTD, XML Schema c im ca DTD - Ra i rt sm - Cho php m t vn bn c cu trc bt k - n gin, d hc v s dng - Ch cho php c t mt s kiu d liu n gin trong ni dung chnh ca ti liu XML c im ca XML Schema - uc xut bi W3C - Ch p dng cho ti liu XML - Kh hc v s dng so vi DTD - Cho php c t chi tit v cc kiu d liu uc s dng trong ni dung chnh ca ti liu XML V d : Vi ti liu Xml <?xml version="1.0" encoding="utf-8"?> <PHAN_SO> <Tu_so> 4 </Tu_so> <Mau_so> 3 </Mau_so> </PHAN_SO> c t vi DTD<!DOCTYPE PHAN_SO [ <!ELEMENT PHAN_SO (Tu_so, Mau_so) > <!ELEMENT Tu_so #PCDATA > <!-- Tu_so : S nguyn // >0 --> <!ELEMENT Mau_so #PCDATA> <!-- Mau_so : S nguyn // >0 --> ]> c t vi Xml Schema <?xmlversion="1.0"encoding="utf-8"?> <xs:schemaid="PHAN_SO" admincnttvn@gmail.com http://www.ebook.edu.vn Trang 43

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

targetNamespace="http://tempuri.org/PHAN_SO.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:elementname="PHAN_SO" type="PHAN_SO"/> <xs:complexTypename="PHAN_SO"> <xs:sequence> <xs:elementname="Tu_so"type="SO_NGUYEN_DUONG" minOccurs="1"maxOccurs="1"/> <xs:elementname="Mau_so"type=" SO_NGUYEN_DUONG " minOccurs="1"maxOccurs="1 /> </xs:sequence> </xs:complexType> <xs:simpleTypename="SO_NGUYEN_DUONG"> <xs:restrictionbase="xs:int"> <xs:minExclusivevalue="0"/> </xs:restriction> </xs:simpleType> </xs:schema> * S dng c t cu trc ngha ca c t cu trc C 2 trng hp chnh cn thit s dng cc ti liu c t cu trc - Trng hp 1 : S dng cho vic trao i thng tin ngi ngi - Trng hp 1 : S dng cho vic trao i thng tin ngi h thng x l Trng hp 1 l trng hp thng dng nht, vi trng hp ny ti liu c t cu trc - c s dng nh phng tin giao tip gia cc chuyn vin tin hc c lin quan n ti liu XML tng ng - C th uc lu tr theo bt k nh dng no thch hp cho vic s dng ( trnh by, xem bo co , v.v..) V d : C th s dng cc ti liu c t cu trc ( DTD/ XML Schema trn ) trong - H s thit k phn mm hay gio trnh ny ( theo dng tp tin ca Microsoft Word) - Ti liu m t cch thc trao i thng tin gia cc chuyn vin tin cng xy dng cc phn mm bi tp phn s Ghi ch : - y l trng hp s dng chnh v thng dng nht - y l trng hp d s dng nht v khng yu cu tht cht ch v c php. Nu trong ti liu c t cu trc c sai st mt t v c php th ngi s dng cng c th hiu hay cng c th pht hin v trao i li vi ngi to lp - Vi trng hp ny, ty vo tng trng hp c th vi cc mt s qui c ring mang tnh cc b trong mt nhm ngi no , c th m rng cc ngn ng c t cu trc hin c b sung thm cc t vng, c php v ng ngha ring admincnttvn@gmail.com http://www.ebook.edu.vn Trang 44

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Trng hp 2 ch uc s dng khi - C h thng x l (phn mm, hm , i tng th vin ) hiu v thc hin cc x l tng ng no vi ti liu c t cu trc (x l thng dng nht l kim tra mt ti liu XML c theo ng cu trc uc m t trong ti liu c t cu trc hay khng.) - Tht s c nhu cu cn n cc x l ca h thng x l ni trn V d : - C th s dng cc ti liu c t cu trc ( DTD/ XML Schema trn ) vi b phn tch XmlTextReader trong VB.NET yu cu b phn tch ny kim tra tnh hp l ca ti liu XML. Tuy nhin, mt cch tng qut x l kim tra ny khng tht s cn thit !!! - Vi cc ng dng thng mi in t vic trao i cc ti liu XML lin quan cc nghip v thng mi ( thng tin v cc mt hng, n t hng , phiu giao hng, v.v) t ra nhu cu tht s v vic kim tra mt ti liu XML c ng theo cu trc mong i hay khng. Vi ng cnh ny nht thit phi to lp v s dng cc b phn tch c php thch hp tin hnh kim tra tnh hp l v x l tng ng Ghi ch : - Trng hp ny yu cu ti liu c t cu trc phi tun th hon ton theo ngn ng c t cu trc tng ng, mi sai st v c php s khng uc b phn tch c php chp nhn - Cn cn nhc khi s dng ti liu c t cu trc trong trng hp ny v mt trong cc c im quan trng trong tip cn ca XML l Cho php c t ni dung m khng nht thit c t cu trc II. Mt s k thut c t ni dung 1. S dng th thc th K thut s dng th thc th ngha chung cc th khai bo thc th l cho php ti liu XML tham chiu n mt tp hp cc gi tr chun b trc di dng mt tn gi nh ( tn thc th). Mi cch thc tham chiu v loi ca tp hp gi tr uc tham chiu tng ng vi mt ngha/mc tiu ( dng s dng ) ring v s yu cu dng th khai bo thc th thch hp. C 4 dng s dng chnh cc thc th - Dng 1 : Tham chiu n mt chui gi tr bn trong ti liu XML ang xem xt - Dng 2 : Tham chiu n cc k t c bit uc nh ngha trc - Dng 3 : Tham chiu n mt tp hp cc gi tr bn ngoi ti liu - Dng 4 : Tham chiu n mt ti liu XML khc Cch thc khai bo v s dng chung cc th khai bo thc th ( cho c 4 dng trn ) nh sau Khai bo <!DOCTYPE Ten_goc [ Khai bo thc th X Khai bo thc th Y ]> S dng admincnttvn@gmail.com http://www.ebook.edu.vn Trang 45

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

&X; < -- S dng tham chiu ca X --> &Y; <-- S dng tham chiu ca Y --> * Dng 1 Tham chiu n mt chui gi tr bn trong ti liu XML ang xem xt ngha : - Tng cng tnh d c ca ti liu XML - Tng cng tnh d bo tr ca ti liu XML Dng khai bo v s dng : <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Goc [ <!ENTITY Ten_1 Chuoi_1 > <!ENTITY Ten_2 Chuoi_2 > ]> <Goc> <A X=&Ten_1;> <B> &Ten_2; </B> </A> <C Y=&Ten_1;> &Ten_2; </C> <D Y> &Ten_2; </C> </Goc> Ti liu XML trn khai bo v s dng 2 thc th Thc th th 1 : Tn l Ten_1 v uc s dng trong thuc tnh ca 2 th A,C Thc th th 2 : Tn l ten_2 v uc s dng trong ni dung ca 3 th B,C,D Vic s dng thc th trong trng hp ny gip - Ti liu d c hn : Dng gin tip cc tn Ten_1, ten_2 vi ng ngha c th no thay v trc tip cc Chuoi_1, Chuoi_2 - Ti liu d bo tr hn khi cn thay i ni dung ca Chuoi_1, Chuoi_2 ( ch cn thay i trong khai bo ) * Dng 2 Tham chiu n cc k t c bit uc nh ngha trc ngha : Cho php s dng mt s k t c bit S dng k t c bit c nh ngha trc &lt; K t < &gt; K t > &quot; K t nhy kp admincnttvn@gmail.com http://www.ebook.edu.vn Trang 46

B mn Cng Ngh XML &apos; K t nhy n &amp; K t &

Cng ngh XML v ng dng

Nguyn tin Huy

S dng cc k t thng qua m s trong cch m ha Nu dng h thp phn &#So_thap_phan; K t c m s l s thp phn V d : &#48; K s 0 &#97; K t a Nu dng h thp lc phn &#xSo_thap_luc_phan; K t c m s l s thp lc phn V d : &#x30; K s 0 &#x41; K t a * Dng 3 Tham chiu n mt tp hp cc gi tr bn ngoi ti liu XML ngha : Cho php tham chiu n tp tin cha gi tr cn s dng no . Cc gi tr ny khng nht thit theo nh chun XML. Cch s dng ny ca thc th thng thng b sung vo ni dung cc hnh nh, m thanh, v.v.v. Dng khai bo thng dng : <!ENTITY Ten_thuc_the SYSEM Ten_tap_tin > Thc th Ten_thuc_the tham chiu n tp tin c v tr uc cho bi Ten_tap_tin Ghi ch : - Ten_tap_tin bao hm c ung dn - C th dng a ch URL nh Ten_tap_tin V d : Gi s c tp tin Hinh.jpg lu tr hnh nh mt nhn vin trong th mc hin hnh<!DOCTYPE NHAN_VIEN [ <!ENTITY Hinh_nhan_vien SYSTEM Hinh.jpg > ]> <NHAN_VIEN Hinh=&Hinh_nhan_vien; .> . </NHAN_VIEN>

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 47

B mn Cng Ngh XML * Dng 4

Cng ngh XML v ng dng

Nguyn tin Huy

Tham chiu n mt ti liu XML khc ngha : Cho php phn r ti liu XML thnh cc ti liu con uc lu tr trong cc tp tin c lp. Dng khai bo thng dng : tng t dng trn <!ENTITY Ten_thuc_the SYSEM Ten_tap_tin > V d : Gi s c cc tp tin Thu_tien_1.xml , Thu_tien_2.xml , . Thu_tien_12.xml lu tr thng tin v cc phiu thu tin trong cc thng 1,2,..12 ca nm ang xt. Tp tin Thu_tien.xml lu tr thng tin v cc phiu thu trong nm ang xt nh sau <!DOC_TYPE THU_TIEN [ <!ENTITY Thu_tien_1 SYSTEM Thu_tien_1.xml > <!ENTITY Thu_tien_2 SYSTEM Thu_tien_2.xml > <!ENTITY Thu_tien_12 SYSTEM Thu_tien_12.xml > ]> <THU_TIEN> &Thu_tien_1; &Thu_tien_2; &Thu_tien_12; </THU_TIEN> 2. S dng tn K thut s dng tn th Tn th , tn cc thuc tnh trong ti liu XML thuc v 1 trong 2 loi sau Loi 1 : Tn khng tin t Loi 2 : Tn c tin t Tn khng tin t M t y cc qui tc t tn cho cc tn th, thuc tnh l cng vic khng n gin v c bit l cng khng cn thit. Mt cchtm tt ( v tt nhin cha y ! ) tn l chui bao gm cc k t ch ( a-z, A-Z), k s (0-9) v mt s k t khc nh , _ , .. Tn c tin t Tn c tin t c dng 2 chui k t cch nhau bi k t : Chuoi_tien_to : Chuoi_ten V d : <A:MAT_HANG ./> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 48

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<B:MAT_HANG /> Th A:MAT_HANG tng ng thng tin v mt hng trong cng ty A. Th B:MAT_HANG tng ng thng tin v mt hng trong cng ty B. 2 th ny c th c cc thuc tnh khc nhau. S dng tn c tin t : Nu ch s dng ti liu XML n l, ring cho ng dng cc b th khng cn thit dng tin t trong tn. Tuy nhin nu cn thit tip nhn, kt xut ton b/mt phn ti liu XML t/n mt ng dng khc ( rt thng dng trong thng mi in t ) vic s dng tn vi tin t l rt cn thit. Tin t ca tn s ng phn bit uc ngun gc ca mt th trong ti liu XML uc to thnh t nhiu ti liu XML khc c cc th trng phn tn khng tin t. Thuc tnh xmlns Xt ti liu XML vi vic s dng cc tin t A tng ng tn cng ty A trong giao dch thng mi in t <A:The_goc> <A:The_1 . / > <A:The_2> Ni dung </A:The_2> <A:The_2> Ni dung </A:The_2> <A:The_3 ./> </A:The_goc> Vic s dng thuc tnh xmlns cho php n gin ha ti liu XML trn <The_goc xmlns=A > <The_1 . / > <The_2> Ni dung <The_2> <The_2> Ni dung <The_2> <The_3 ./> <The_goc> C php khai bo ca thuc tnh xmlns nh sau: Dng 1 : <Ten_the xmlns=Chuoi_tien_to .> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 49

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

</Ten_the> Khai bo trn c ngha rng tt c cc tn bn trong th ang xt ( bao hm chnh th ny ) nu khng c tin t th tin t chnh l Chuoi_tien_to Dng 2 : <Ten_the xmlns:Chuoi_tien_to_1=Chuoi_tien_to_2 .> </Ten_the> Khai trn c ngha rng tt c cc tn bn trong th ang xt ( bao hm chnh th ny ) nu c tin t l chuoi_tien_to_1 th tin t thc s l Chuoi_tien_to_2 Khai bo trn thng thng c dng khi trong ti liu XML c s dng ng thi nhiu tin t khc nhau v khai bo dng 1 ch c th p dng c vi mt trong s cc tin t v cc tin t cn li th li qu di ( nhng ti sao li t di ?) Khng gian tn ( namespace) Bn cht ca khng gian tn chnh l Chuoi_tien_to c s dng trong mt s cc ti liu XML Khng gian tn l chuoi_tien_to vi c im quan trng nh sau : Chuoi_tien_to phi l duy nht trn phm vi ton cu c im trn nhm bo m rng khi mt n v/ng dng s dng cc ti liu XML ca mnh vi Chuoi_tien_to th khng c ti liu XML no ca cc n v/ng dng khc trn phm vi ton cu s dng Chuoi_tien_to . Vi c im trn thng thng khng gian tn uc chn l chui tng ng vi mt a ch URL ca mt tn min trong nh v ca th gii Internet Cch dng trn l gii v sao li phi dng cc Chuoi_tien_to rt di trong ti liu XML. III. c t cu trc vi DTD c t cu trc ti liu XML vi DTD C nhiu dng khc nhau cho php khai bo ( c t ) cu trc ca ti liu XML Dng 1 : Khai bo cu trc ti liu XML uc lu tr ngay bn trong chnh ti liu XML <!DOCTYPE Ten_the_goc [ c t cu trc ni dung cc th c t thuc tnh cc th ]> Dng 2 : Khai bo cu trc ti liu XML uc lu tr bn ngoi di dng mt tp tin cha c t cu trc ni dungcc th , c t thuc tnh cc th <!DOCTYPE Ten_the_goc SYSTEM Ten_tap_tin > V d : <!DOCTYPE DUONG_TRON SYSTEM DUONG_TRON.dtd > Dng 3 : Khai bo cu trc ti liu XML c chun ha , c phm vi s dng rng ri. dng ny thng uc dng vi cc ngn ng XML chung c phm vi p dng ton cu nh MathML, VML, admincnttvn@gmail.com http://www.ebook.edu.vn Trang 50

B mn Cng Ngh XML XHTML, v.v

Cng ngh XML v ng dng

Nguyn tin Huy

<!DOCTYPE Ten_the_goc PUBLIC Chuoi_nhan_dang > 1. c t cu trc ni dung cc th C php chung c t cu trc ni dung ca mt th nh sau <!ELEMENT Ten_the Bieu_thuc_dac_ta__cau_truc_noi_dung > Bieu_thuc_cau_truc_dac_ta_noi_dung c th ch l mt t kho Bieu_thuc_cau_truc_dac_ta_noi_dung cng c th bao gm nhiu t kha khc m t cch b tr, sp xp cc thnh phn con bn trong th Vi A, B l 2 th con ca th X A, B A, B sp xp theo th t tun t A n B A* A c th lp li t nht 0 ln B+ B c th lp li t nht 1 ln A? A c th c hay khng c A|B C th chn s dng A hay B * Dng 1 T kha ANY : Th c ni dung bt k theo nh chun XML V d : <!ELEMENT X ANY > X c th cha ni dung bt k. Thng thng cch khai bo ny ch m t s tn ti ca X bn trong mt th khc T kha EMPTY : Th khng c ni dung V d : <!ELEMENT PHAN_SO EMPTY > PHAN_SO khng th c ni dung m ch c th c cc thuc tnh T kha #PCDATA : Th vi ni dung l chui vn bn V d : <!ELEMENT Ho_ten (#PCDATA) > Ho_ten c ni dung l chui v khng th cha cc th khc. y l mt trong cc gii hn chnh ca DTD v khng cho php m t chi tit v kiu hay loi ca chui vn bn. Vi DTD mun m t chi tit hn c th dng th ghi ch V d : <!ELEMENT He_so (#PCDATA) > <!-- He_so : A_Float --> * Dng 2 Bieu_thuc_dac_ta_cau_truc_noi_dung cng c th bao gm nhiu t kha khc m t cch b tr, sp xp cc thnh phn con bn trong th Vi A, B l 2 th con ca th X admincnttvn@gmail.com http://www.ebook.edu.vn Trang 51

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

A, B A, B sp xp theo th t tun t A n B A* A c th lp li t nht 0 ln B+ B c th lp li t nht 1 ln A? A c th c hay khng c A|B C th chn s dng A hay B - Tun t Dng tun t : Cc th con ch c th xut hin 1 ln duy nht v phi theo ng th t xut hin trong biu thc C php : <!ELEMENT Ten_the (Ten_the_1, Ten_the_2, .) > ngha : The_1, The_2, ..., The_k phi xut hin mt ln duy nht theo ng th t trn V d : <!ELEMENT DON_THUC(He_so,So_mu) > Th DON_THUC phi bao hm bn trong 2 th con He_so,So_mu theo ng th t trn Ghi ch : - Cc th bn trong c th c tn trng nhau V d : <!ELEMENT TAM_GIAC (DIEM,DIEM,DIEM) > Th TAM_GIAC phi bao hm bn trong ng 3 th con vi tn th l DIEM - C th s dng t kha #PCDATA trong biu thc tun t ( v cc loi biu thc khc ) V d : <!ELEMENT X (#PCDATA,A,#PCDATA)> Th X phi bao gm 3 thnh phn : Thnh phn th 1 l chui vn bn Thnh phn thc 2 l th c tn A Thnh phn th 3 l chui vn bn - Ty chn Dng ty chn : Th con c th c s dng hay khng s dng C php ( dng n gin) : <!ELEMETNT Ten_the (Ten_the_con ?) > Th ang xt c th cha 1 hay 0 ln xut hin ca th c tn l Ten_the_con V d : <!ELEMETNT DON_THUC (Ten?) > Th DON_THUC c th cha hay khng th Ten Ghi ch : - C th kt hp vi biu thc tun t <!ELEMENT X (A,B?,C) > Thnh phn u tin ca th X l th A, k n c th c hay khng c th B v thnh phn cui cng phi l C admincnttvn@gmail.com http://www.ebook.edu.vn Trang 52

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

- C th cho php ty chn mt tp hp cc th <!ELEMENT X (A,B,C)? > X c th bao hm bn trong cc th A,B,C ( theo th t trn ) hay cng c th khng cha bt k th no Dng chn : Bt buc chn mt th con s dng trong tp hp th cho trc C php ( dng n gin) : <!ELEMETNT Ten_the(Ten_the_1|Ten_the_2|..|Ten_the_k) > Th ang xt bt buc phi cha duy nht mt trong cc th c tn Ten_the_1 hay ten_the_2, hay ... Ten_the_k Ghi ch : - C th kt hp vi biu thc tun t <!ELEMENT X (A,B|C,D) > Thnh phn u tin ca th X l th A, k n l th B hay th C v thnh phn cui cng phi l D - C th cho php chn mt tp hp cc th <!ELEMENT X ( (A,B) | (C,D) ) > X c th bao hm bn trong cp th A,B ( theo th t trn ) hay cp th C,D ( theo th t trn ) - Lp Dng lp t nht 0 ln : Cc th con c th lp li nhiu ln hay c th khng c ln no C php : <!ELENEMT Ten_the (Ten_the_con*) > ngha : Th ang xt c th bao hm bn trong nhiu th c tn l Ten_the_con hay cng c th l th rng ( khng c ni dung ) V d : <!ELEMENT LOP (HOC_SINH*) > Th LOP c th cha nhiu th HOC_SINH hay khng c th HOC_SINH no Ghi ch : - C th m t lp ng thi nhiu th con <!ELEMENT X (A,B,C)* > Cc th A,B,C theo th t trn c th lp li t nht 0 ln trong th X - C th kt hp vi biu thc tun t V d : <!ELEMENT X (A,B*,C) > Th X c thnh phn u tin l th A, k n c th c nhiu hay 0 ln lp ca th B v cui cng l th C - C th kt hp vi biu thc ty chn V d : <!ELEMENT X (A,B*,C?,D) > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 53

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Th X c thnh phn u tin l th A, k n c th c nhiu hay 0 ln lp ca th B, k n c th c hay khng th C v cui cng l th D - C th kt hp vi biu thc chn V d : <!ELEMENT X (A|B,C*,D) > Th X c thnh phn u tin l th A hay th B , k n c th c nhiu hay 0 ln lp ca th B v cui cng l th D Dng lp t nht 1 ln : Cc th con c th lp li nhiu ln v t nht l mt ln C php : <!ELENEMT Ten_the (Ten_the_con+) > ngha : Th ang xt c th bao hm bn trong t nht mt th c tn l Ten_the_con V d : <!ELEMENT DA_THUC (DON_THUC+) > Th DATHUC phi bao hm bn trong t nht mt th DON_THUC Ghi ch : - C th m t lp ng thi nhiu th con <!ELEMENT CT_HOA_DON (Mat_hang,So_luong,Don_gia) + > Cc th CT_HOA_DON phi bao hm t nht 3 th Mat_hang,So_luong,Don_gia - C th kt hp vi biu thc tun t V d : <!ELEMENT DA_GIAC (DIEM,DIEM,DIEM+) > Cc th DA_GIAC phi bao hm t nht 3 th DIEM - C th kt hp vi biu thc ty chn V d : <!ELEMENT BIEU_THUC (Ten?,PHAN_SO+) > Th BIEU_THUC c th cha hay khng thnh phn u l th Ten v k n t nht mt th PHAN_SO - C th kt hp vi biu thc chn V d : <!ELEMENT X (A|B,C+,D) > Th X c thnh phn u tin l th A hay th B , n t nht mt th B v cui cng l th D 2. c t thuc tnh ca th C php khai bochung : C php khai bo cc thuc tnh ca th tng t nh c php khai bo kiu cu trc trong ngn ng lp trnh Ten_thuoc_tinh_2 Kieu_2 Tham_so_2 ... admincnttvn@gmail.com http://www.ebook.edu.vn Trang 54

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Ten_thuoc_tinh_k Kieu_k Tham_so_k > ngha : Ten_the : tn th cn khai bo cc thuc tnh Ten_thuoc_tinh_1,Ten_thuoc_tinh_2, ...Ten_thuoc_tinh_k : Tn cc thuc tnh ca th ang khai bo Kieu_1,Kieu_2, ..., Kieu_k : M t tp hp cc gi tr m thuc tnh c th nhn Tham_so_1,Tham_so_2,.., Tham_so_k : M t mt s tnh cht trn thuc tnh tng ng V d : c t cu trc ti liu XML biu din thng tin v biu thc phn s P = 4/5 + 6/7*1/3 - 10/3 +11/2*2/3 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE BIEU_THUC [ <!ELEMENT BIEU_THUC (PHAN_SO | TICH_SO)+ > <ATTLIST BIEU_THUC Ten CDATA #IMPLIED <!-- Ten : A_String --> > <!ELEMENT PHAN_SO EMPTY > <ATTLIST PHAN_SO Tu_so CDATA #REQUIRED <!-- Tu_so : A_Int --> Mau_so CDATA #REQUIRED <!-- Mau_so : A_Int // >0 --> > <!ELEMENT TICH_SO (PHAN_SO)+ > ]> * Kiu Kiu : M t tp hp cc gi tr ca thuc tnh C nhiu cch khc nhau cho php m t tp hp cc gi tr c th c ca mt thuc tnh. Phn sau ch gii thiu 2 cch m t chnh v thng dng. bit thm chi tit v cc cch m t khc xin tham kho cc ti liu chuyn bit v DTD Cch 1 : Dng t kho CDATA C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh CDATA ... > ngha : Tp hp cc gi tr ca huc tnh vi khai bo CDATA chnh l tp hp cc chui. y l trng hp s dng thng dng nht, v y cng l mt trong cc gii hn ca DTD v khng cho php m t admincnttvn@gmail.com http://www.ebook.edu.vn Trang 55

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

chi tit hn v kiu ca thuc tnh. Tng t nh ni dung vn bn ca th, m t thm thng tin cn s dng cc ghi ch V d : c t cu trc ti liu XMl biu din phng trnh ung thng trong mt phng <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE DUONG_THANG [ <!ELEMENT DUONG_THANG EMPTY> <!phng trnh ax + by+c =0 --> <ATTLIST DUONG_THANG Ten CDATA #IMPLIED <!-- Ten : A_String --> a CDATA #REQUIRED <!-- a : A_Float --> b CDATA #REQUIRED <!-- b : A_Float --> c CDATA #REQUIRED <!-- c : A_Float --> > <!a,b khng ng thi l 0 --> ]> Cch 2 : Dng biu thc lit k C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh ( Gia_tri_1,Gia_tri_2,...._gia_tri_k) ... > ngha : Tp hp cc gi tr c th c ca thuc tnh ang xt chnh l tp hp cc gi tr c lit k Gia_tri_1,Gia_tri_2, ....,Gia_tri_k. Cc gi tr ny l cc chui k t V d : c t cu trc ti liu XML biu din thng tin v phiu im ca mt hc sinh <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE PHIEU_DIEM [ <!ELEMENT PHIEU_DIEM (HOC_SINH, DIEM_SO+ ) > <!ELEMENT HOC_SINH EMPTY > <ATTLIST HOC_SINH Ho_ten CDATA #REQUIRED admincnttvn@gmail.com http://www.ebook.edu.vn Trang 56

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<!-- Ho_ten : A_String --> Ngay_sinh CDATA #REQUIRED <!--Ngay_sinh : A_Date --> Xep_loai (Gii, Kh, Trung bnh, Yu) #IMPLIED > <!ELEMENT DIEM_SO EMPTY > <ATTLIST DIEM Ten_mon CDATA #REQUIRED <!-- Ten_mon : A_String --> Gia_tri CDATA #REQUIRED <!-- Gia_tri : A_Float // t 0 n 10 --> > ]> * Tham s Tham_so : M t tnh cht ca thuc tnh C nhiu cch khc nhau cho php m t tp hp cc gi tr c th c ca mt thuc tnh. Phn sau ch gii thiu 3 cch m t chnh v thng dng. bit thm chi tit v cc cch m t khc xin tham kho cc ti liu chuyn bit v DTD Cch 1 : Dng t kha #REQUIRED C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #REQUIRED ... > ngha : Thuc tnh ang xt l thuc tnh bt buc phi c. y l cch s dng ph bin nht V d : c t cu trc ti liu XML biu din thng tin v cc n thc vi tn bt buc phi c <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE DON_THUC [ <!ELEMENT DON_THUC (He_so, So_mu ) > <ATTLIST DON_THUC Ten CDATA #REQUIRED <!-- Ten : A_String --> Bien_so CDATA #REQUIRED <!-- Bien_so: A_String --> > <!ELEMENT He_so #PCDATA > <!-- He_so : A_Float --> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 57

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Ten_thuoc_tinh Kieu #IMPLIED ... > ngha : Thuc tnh ang xt l ty chn v khng bt buc phi c V d : c t cu trc ti liu XML biu din thng tin v tam thc P(x) =2x2 -4x +6

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TAM_THUC [ <!ELEMENT TAM_THUC (DON_THUC,DON_THUC,DON_THUC) > <ATTLIST TAM_THUC Ten CDATA #IMPLIED <!-- Ten : A_String --> Bien_so CDATA x <!-- Bien_so: A_String // nh sn l x --> > <!ELEMENT DON_THUC EMPTY > <ATTLIST DON_THUC He_so CDATA #REQUIRED <!-- He_so : A_Float // Khc 0 nu So_mu=2 --> So_mu (0,1,2) #REQUIRED <!-- So_mu : A_Int // =0,1,2 v khc nhau --> > ]> Cch 3 : Dng t kha #FIXED C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #FIXED Gia_tri ... > ngha : Thuc tnh ang xt phi c gi tr c nh l Gia_tri. Trng hp ny t c s dng V d : c t cu trc ti liu XML biu din thng tin v cc n thc ch vi bin s x <?xm lversion="1.0" encoding="utf-8"?> <!DOCTYPE DON_THUC [ <!ELEMENT DON_THUC (He_so, So_mu ) > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 58

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<ATTLIST DON_THUC Ten CDATA #REQUIRED <!-- Ten : A_String --> Bien_so CDAT #FIXED x <!-- Bien_so: A_String --> > <!ELEMENT He_so (#PCDATA) > <!-- He_so : A_Float --> <!ELEMENT So_mu (#PCDATA) > <!-- So_mu : A_Int // >=0 --> ]> IV. c t cu trc vi XML-Schema c t cu trc ti liu XML vi Xml-Schema XML Schema thuc h cc ngn ng XML nn khai bo XML Schema chnh l to lp ti liu XML m ni dung chnh l cc th nh du, cc th ny s m t cho cu trc cc th ca mt ti liu XML khc. Cu trc chung ( thng dng ) ca cc ti liu trong XML Shema nh sau <?xmlversion="1.0"encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> c t cc th c t cc kiu </xs:schema> Vi DTD, c t cu trc ti liu XML bao gm 2 phn : c t cu trc ni dung cc th , c t thuc tnh cc th. Thng tin v mt th c m t qua 2 phn tch bit nhau : c t cu trc ni dung m t cch sp xp cc thnh phn bn trong ca th ang xt, c t thuc tnh m t h thng cc thuc tnh ca th ang xt. Vi XML Schema, thng tin v mt th c m t tp trung qua mt nim duy nht l kiu. Mi th s c tng ng mt kiu. c t kiu m t kiu ca th cng vi mt s tnh cht khc. c t kiu m t cc thng tin v cc th thuc kiu ( c th c nhiu th cng thuc mt kiu ) bao hm c cc thng tin v cch sp xp cc thnh phn bn trong ca th v h thng cc thuc tnh ca th. V d <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="DA_THUC" type="K_DA_THUC"/> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 59

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<xs:complexType name="K_DA_THUC"> <xs:sequence> <xs:element name="DON_THUC" type="K_DON_THUC" minOccurs="1"/> </xs:sequence> <xs:attribute name="Ten" type="xs:string" /> <xs:attribute name="Bien_so" type="xs:string"/> </xs:complexType> <xs:complexType name="K_DON_THUC"> <xs:attribute name="He_so" type="xs:float"/> <xs:attribute name="So_mu" type="SO_TU_NHIEN"/> </xs:complexType> <xs:simpleType name="SO_TU_NHIEN"> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:schema> ngha ca c t : <xs:element name="DA_THUC" type="K_DA_THUC"/> Ti liu XML c th gc l DA_THUC th ny c kiu l kiu phc hp vi tn l K_DA_THUC ( c th dng cng tn l DA_THUC ) <xs:complexType name="K_DA_THUC"> <xs:sequence> <xs:element name="DON_THUC" type="K_DON_THUC" minOccurs="1"/> </xs:sequence> <xs:attribute name="Ten" type="xs:string" /> <xs:attribute name="Bien_so" type="xs:string"/> </xs:complexType> Kiu phc hp K_DA_THUC bao gm bn trong - Th DON_THUC c kiu l kiu phc hp vi tn l K_DON_THUC v th DON_THUC phi xut hin t nht 1 ln trong cc th c kiu l K_DA_THUC - 2 thuc tnh : Ten vi kiu l kiu c s dng chui Bien_so vi kiu l kiu c s dng chui === > Tm tt : Th DA_THUC phi bao hm bn trong t nht mt th DON_THUC v c 2 thuc tnh Ten,Bien_so <xs:complexType name="K_DON_THUC"> <xs:attribute name="He_so" type="xs:float"/> <xs:attribute name="So_mu" type="SO_TU_NHIEN /> </xs:complexType> Kiu phc hp K_DON_THUC ch bao gm bn trong c thuc tnh He_so c kiu l kiu c s loi s thc admincnttvn@gmail.com http://www.ebook.edu.vn Trang 60

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

So_mu c kiu l kiu n gin vi tn SO_TU_NHIEN == > Tm tt : Th DON_THUC l th khng c ni dung v c 2 thuc tnh He_so,So_mu <xs:simpleType name="SO_TU_NHIEN"> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> Kiu n gin SO_TU_NHIEN chnh l kiu c s s nguyn vi hn ch : gi tr phi ln hn hay bng 0 === > Thuc tnh So_mu ca th DON_THUC phi l mt s nguyn khng m 1. c t kiu c t kiu XML Schema c 3 loi kiu chnh : Loi 1 : Kiu nh ngha sn ( BultinType) Loi 2 : Kiu n gin (simpleType) Loi 3 : Kiu phc hp (complexType). Ty thuc vo loi th cn m t ( theo cch phn loi s trnh by sau ) loi kiu tng ng s c sdng. * Kiu nh ngha sn Kiu nh ngha sn ( th vin) Khi nim : L cc kiu c xy dng, nh ngha sn trong XML Schema. Cc kiu ny tng t nh cc kiu c s trong ngn ng lp trnh. C tn trong danh sch cc kiu c s ca XML Schema. Danh sch cc kiu c s : Mt s kiu c s thng dng Ten_kieu_co_so ngha string Chui k t int, integer S nguyn float S thc chnh xc n double S thc chnh xc kp boolean Gi tr logic date ngy month Thng ID Chui nh danh binary D liu nh phn ngha s dng : kin : c s dng m t trc tip kiu ca cc thuc tnh hay ca th tha 2 iu iu kin 1 : Khng c thuc tnh iu kin 2 : Khng cha th khc ( ni dung l chui vn bn) v c min gi tr admincnttvn@gmail.com http://www.ebook.edu.vn Trang 61

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

( tp hp gi tr c th c ) thch hp vi kiu Vi cc th c thuc tnh hay c cha th khc, bt buc phi dng kiu phc hp v kiu c s v kiu n gin khng cho php m t thng tin v thuc tnh , th con bn trong C php : Khi dng vi th <xs:element name=Ten_the type=Ten_kieu_co_so ... /> Khi dng vi thuc tnh <xs:attribute name=Ten_thuoc_tinh type=Ten_kieu_co_so .. /> V d : <xs:element name="Ho_ten" type="xs:string" /> Th Ho_ten khng c thuc tnh, khng cha th con v c ni dung l chui vn bn <xs:element name="Ngay_sinh" type="xs:date" /> Th Ngay_sinh khng c thuc tnh, khng cha th con v c ni dung tng ng mt ngy <xs:attribute name="He_so" type="xs:float"/> Thuc tnh He_so phi l s thc <xs:attribute name="x" type="xs:int"/> Thuc tnh x phi l s nguyn <xs:attribute name="f" type="xs:boolean"/> Thuc tnh f phi l gi tr logic * Kiu n gin Kiu n gin ( simpleType) Khi nim : L cc kiu do ngi dng nh ngha da trn cc kiu c s c sn trong XML Schema. ngha s dng : c s dng m t trc tip kiu ca cc thuc tnh hay cc th tha 2 iu kin : iu kin 1 : Khng c thuc tnh Diu kin 2 : Khng cha th khc ( ni dung l chui vn bn) v c min gi tr ( tp hp gi tr c th c ) l tp con ca min gi tr mt kiu c s no Tng t nh vi kiu c s, cc th c thuc tnh hay th c cha th con khc, nht thit phi dng kiu phc hp v kiu c s v kiu n gin khng cho php m t thm thng tin v thuc tnh, th con bn trong C php : ( dng n gin v thng dng ) <xs:simpleType name="Ten_kieu"> <xs:restriction base="Ten_kieu_co_so"> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 62

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Gii hn ( rng buc ) trn min gi tr </xs:restriction> </xs:simpleType> Ten_kieu : Tn ca kiu n gin Ten_kieu_co_so : Tn ca kiu c s tng ng x thuc min gi tr ca kiu x thuc min gi tr ca kiu C php <xs:minInclusive value="Gia_tri_bien_duoi"/> Kiu n gin ang xt c min gi tr l tp hp cc s x tha iu kin c s x >= Gia_tri_bien_duoi <xs:minExclusive value="Gia_tri_bien_duoi"/> Kiu n gin ang xt c min gi tr l tp hp cc s x tha iu kin c s x > Gia_tri_bien_duoi V d : <xs:simpleType name="SO_THUC_DUONG"> <xs:restriction base="xs:float"> <xs:minInclusive value="0" /> </xs:restriction> </xs:simpleType> Gii hn ( rng buc ) trn min gi tr : C nhiu dng gii hn ( rng buc ) khc nhau cho php m t chi tit min gi tr ca kiu c s (y chnh l mt trong cc th mnh ca XML Shema so vi DTD ). Gio trnh ch gii hn xem xt v trnh by tm tt 2 loi rng buc chnh v thng dng : Rng buc v cn trn cc kiu c s loi s ( s nguyn, s thc ) , rng buc loi lit k trn kiu c s. bit thm chi tit v cc cc rng buc khc xin tham kho cc ti liu khc chuyn bit v XML Shema. Gii hn ( rng buc) v cn trn kiu c s loi s : C 4 th chnh c s dng cho php xc nh cc cn ( cn trn, cn dui ) ca kiu c s ang xt . Dng khai bo chung cc rng buc loi ny nh sau <xs:simpleType name="Ten_kieu"> <xs:restriction base="Ten_kieu_co_so_loai_so"> Khai bo cn di Khai bo cn trn </xs:restriction> </xs:simpleType> Khai bo cn di : S dng t khominInclusive ( cn di cho php s dng bin ), minExclusive ( cn di khng cho php s dng bin) <xs:simpleType name="SO_NGUYEN_DUONG"> <xs:restriction base="xs:int"> <xs:minInclusive value="0" /> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 63

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

</xs:restriction> </xs:simpleType> Khai bo cn trn : S dng t khomaxInclusive ( cn trn cho php s dng bin ), maxExclusive ( cn trn khng cho php s dng bin) C php <xs:simpleType name="DIEM_SO"> <xs:restriction base="xs:float"> <xs:minInclusive value="0" /> <xs:maxInclusive value="10" /> </xs:restriction> </xs:simpleType> Gii hn ( rng buc) loi lit k trn kiu c s : Cho php xc nh min gi tr ca kiu n gin ang xt bng cch lit k cc gi tr ca tp hp ny ( tng t nh biu thc lit k ca DTD nhng cho php s dng vi thuc tnh, th thay v ch dng vi thuc tnh ) Dng khai bo cc rng buc loi ny nh sau <xs:simpleType name="Ten_kieu"> <xs:restriction base="Ten_kieu_co_so_loai_so"> <xs:enumeration value=Gia_tri_1 /> <xs:enumeration value=Gia_tri_2 /> ... <xs:enumeration value=Gia_tri_k /> </xs:restriction> </xs:simpleType> V d : <xs:simpleType name="LOAI_KIEM_TRA"> <xs:restriction > <xs:enumeration value="Kim tra 15 pht " /> <xs:enumeration value="Kim tra 1 tit " /> <xs:enumeration value="Kim tra hc k " /> </xs:restriction> </xs:simpleType> <xs:simpleType name="LOAI_HOC_LUC" > <xs:restriction base="xs:string"> <xs:enumeration value="Gii" /> <xs:enumeration value="Kh" /> <xs:enumeration value="Trung bnh" /> <xs:enumeration value="Yu" /> </xs:restriction> </xs:simpleType> * Kiu phc hp Kiu phc hp ( complexType) Khi nim: L cc kiu do ngi dng t nh ngha cho php m t ni dung v cc thuc tnh ca cc th c khai bo thuc v kiu ang xt admincnttvn@gmail.com http://www.ebook.edu.vn Trang 64

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

ngha s dng : c s dng m t kiu ca cccc th tha mt trong 2 iu kin : iu kin 1 : C thuc tnh iu kin 2 : C cha th khc Cc th c thuc tnh khng th khai bo vi kiu c s hay kiu n gin v cc kiu ny khng cho php m t thng tin v thuc tnh Cc th c cha th khc cng khng th khai bo vi kiu c s hay kiu n gin v cc kiu ny khng cho php m t thng tin v cc thnh phn bn trong Dng khai bo chung cc kiu phc hp nh sau <xs:complexType name="Ten_kieu"> Dac_ta_cau_truc_noi_dung Dac_ta_thuoc_tinh </xs:complexType> Dac_ta_cau_truc_noi_dung : M t cch thc t chc, sp xp cc th con bn trong th c kiu l kiu phc hp ang xt. Tng t nh DTD, XML Shema cng cho php nhiu dng t chc sp xp ( tun t, chn, lp ) cc th con vi cc c php ring. Mt trong cc c tnh mi ca XML Shema l cho php khai bo chi tit hn v s ln lp ca mt thnh phn Dac_ta_thuoc_tinh : M t h thng cc thuc tnh ca th c kiu l kiu phc hp ang xt. Vic m t cc thuc tnh trong XML Shema cng tng t nh m t thuc tnh trong DTD nhng vi m rng rt quan trng : Cho php nh ngha v s dng cc kiu n gin m t chi tit v min gi tr ca mt thuc tnh - c t cu trc ni dung Dac_ta_cau_truc_noi_dung : XML Schema cho php m t cch thc t chc, sp xp cc thnh phn bn trong th qua 3 dng c s Dng tun t ( tng t nh DTD ): M t th t xut hin tun t cc thnh phn Dng ty chn ( hon ton tng t nh DTD ): : M t vic phi s dng mt thnh phn no trong tp hp cc thnh phn cho trc Dng lp ( bao hm cc dng ty chn, chn , lp t nht 0 ln, lp t nht 1 ln trong DTD) : M t vic cho php lp li ca cc thnh phn vi cc bn s + Tun t Dng tun t : S dng th/t kha sequence C php : <xs:complexType name="Ten_kieu"> <xs:sequence> Thanh_phan_1 Thanh_phan_2 .... Thanh_phan_k admincnttvn@gmail.com http://www.ebook.edu.vn Trang 65

B mn Cng Ngh XML </xs:sequence> .... </xs:complexType>

Cng ngh XML v ng dng

Nguyn tin Huy

ngha : Cc thnh phn Thanh_phan_1, Thanh_phan_2, ... Thanh_phan_k phi xut hin duy nht v ng theo th t trn trong th tng ng V d : <xs:complexType name="DIEM"> <xs:sequence> <xs:element name="x type="xs:float" /> <xs:element name="y type="xs:float" /> </xs:sequence> </xs:complexType> + Ty chn Dng ty chn : S dng th/t kha choice C php : <xs:complexType name="Ten_kieu"> <xs:choice> Thanh_phan_1 Thanh_phan_2 .... Thanh_phan_k </xs:choice> .... </xs:complexType> ngha : Th c kiu Ten_kieu phi s dng mt thnh phn trong s cc thnh phn Thanh_phan_1, Thanh_phan_2, ... Thanh_phan_k Dng ny ch s dng trong mt s trng hp c th v khng thng dng ( v sao ???) V d : <xs:complexType name="X"> <xs:choice> <xs:element name="A type="A" /> <xs:element name="B type="xs:string" /> </xs:choice> </xs:complexType> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 66

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Cc th c khai bo kiu X phi bao hm bn trong mt trong 2 th con sau Th c tn A v c kiu A ( cho php tn kiu v tn th trng nhau ) Th c tn B v c kiu l chui + Lp Dng lp : S dng thuc tnh/t kha minOccurs , maxOcuurs C php ( thng dng) <xs:complexType name="Ten_kieu"> <xs:sequence> ... <xs:element name="Ten_the_con type="Kieu_the_con" minOccurs=So_lan_lap_toi_thieu manOccurs=So_lan_lap_toi_da /> ... </xs:sequence> .... </xs:complexType> ngha : Th c kiu Ten_kieu c cha bn trong th con c tn Ten_the_con vi s ln lp ti thiu l So_lan_lap_toi_thieu v s ln lp ti a l So_lan_lap_toi_da. Mt s trng hp thng dng Ty chn ( c th c hay khng ) minOccurs=0 maxOccurs=1 Lp li t nht 0 ln ( nhiu hoc khng c ln no ) minOccurs=0 Lp li t nht 1 ln minOccurs=1 Lp li t nht 1 ln v nhiu nht 5 ln minOccurs=1 maxOccurs=5 Lp li ng 3 ln minOccurs=3 maxOccurs=3 V d : <xs:complexType name="DA_THUC"> <xs:sequence> <xs:element name="DON_THUC type="DON_THUC" minOccurs=1 /> </xs:sequence> <-- M t cc thuc tnh --> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 67

B mn Cng Ngh XML ... </xs:complexType>

Cng ngh XML v ng dng

Nguyn tin Huy

<xs:complexType name="DA_GIAC"> <xs:sequence> <xs:element name="DIEM type="DIEM" minOccurs=3 maxOccurs=3 /> </xs:sequence> <-- M t cc thuc tnh --> ... </xs:complexType> <xs:complexType name="KHOI"> <xs:sequence> <xs:element name="LOP type="LOP" minOccurs=0 maxOccurs=12 /> </xs:sequence> <-- M t cc thuc tnh --> ... </xs:complexType> <xs:complexType name="HOA_DON"> <xs:sequence> <xs:element name="CT_HOA_DON type="CT_HOA_DON" minOccurs=1 maxOccurs=10 /> </xs:sequence> <-- M t cc thuc tnh --> ... </xs:complexType> - c t thuc tnh Dac_ta_thuoc_tinh Cho php m t h thng cc thuc tnh ca mt th C php : <xs:complexType name="Ten_kieu"> c t cu trc ni dung .... <xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh" Tinh_chat_thuoc_tinh /> .... </xs:complexType>

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 68

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Ten_thuoc_tinh : tn ca thuc tnh ca kiu ang xt, khng cho php 2 thuc tnh c cng tn Kieu_thuoc_tinh : Tn ca kiu c s hay kiu n gin Tinh_chat_thuoc_tinh : M t mt s tnh cht ca thuc tnh. XML Shema cho php m t rt nhiu loi tnh cht khc nhau, mi tnh cht tng ng vi mt t kha ring <xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh" Tu_khoa_1=Gia_tri_1 Tu_khoa_2=Gia_tri_2 .. Tu_khoa_k=Gia_tri_k /> Mt s tnh cht thng dng nh sau Gi tr nh sn : t kha default Gi tr c nh : t kha fixed Ty chn ( c hay khng c s dng : t kha use V d : <xs:attribute name="Tu_so" type="SO_NGUYEN_DUONG" default=1 /> <xs:attribute name="Bien_so" type="xs:string" fixed=x /> <xs:attribute name="Ten_don_thuc" type="xs:string" use=optional /> 2. c t th Vi DTD, c t cu trc ti liu XML tp trung vo vic c t cc th vi rt nhiu dng b tr , sp xp cc thnh phn trong th. Vi XML Schema, c t cu trc ti liu XML tp trung vo vic c t cc kiu, c t cc thtrong XML Schema rt n gin v ch nhm vo mc tiu chnh l xc nh kiu s c s dng ca th. Cc thng tin cn m t khi c t mt th trong XML bao gm: - Tn th - Kiu ca th - Mt s tnh cht khc ca th Dng khai bo chung nh sau <xs:element name=Ten_the type=Ten_kieu Thuoc_tinh_khac /> Ten_the : Tn ca th ang xt v tun theo cch t tn ca nh chun XML Ten_kieu : Tn ca kiu tng ng m t thng tin v th. Thng thng tn kiu v tn th s c t trng nhau Thuoc_tinh_khac : C nhiu loi thuc tnh khc nhau cho php m t cc tnh cht ca th m trong thng dng nht l 2 thuc tnh minOccurs, maxOccurs ( trnh by ). Khi c t cc th vn quan trong nht l xc nh loi kiu s dng trong th. Ty thuc vo loi th ( theo cch phn loi ca phn sau ) loi kiu tng ng s c admincnttvn@gmail.com http://www.ebook.edu.vn Trang 69

B mn Cng Ngh XML dng * Phn loi th

Cng ngh XML v ng dng

Nguyn tin Huy

H thng phn loi th : C rt nhiu cch phn loi cc th, mi cch phc v cho mt mc tiu khc nhau. Vi mc tiu phn loi l nhm xc nh loi kiu tng ng c dng, h thng cc th trong ti liu XML c th c phn loi nh sau. Th bao gm 2 nhm chnh - Nhm 1 : Nhm cc th c thuc tnh - Nhm 2 : Nhm cc th khng c thuc tnh Vi cc th c thuc tnh, nht thit phi s dng kiu phc hp. == > Khai bo kiu phc hp Y (c th dng tn th ang xt ) == > S dng Y l kiu ca th ang xt Vi cc th khng c thuc tnh vic s dng loi kiu no ph thuc vo vic phn loi chi tit hn cc th thuc nhm ny Cc th khng c thuc tnh bao gm 2 nhm - Nhm 2.1 : Nhm cc th khng c thuc tnh v c cha cc th con bn trong - Nhm 2.2 : Nhm cc th khng c thuc tnh v khng cha cc th con bn trong ( ni dung l chui vn bn) Tng t nh nhm 1, cc th thuc nhm 2.1 nht thit phi s dng kiu phc hp. == > Khai bo kiu phc hp Y (c th dng tn th ang xt ) == > S dng Y l kiu ca th ang xt Cc th thuc nhm 2.2 c th chn s dng kiu c s hay kiu n gin ph thuc vo min gi tr MGT ca chui vn bn bn trong th Nu min gi tr MGT ny tng ng vi min gi tr ca mt kiu c s X no == > kiu c s X s c dng Nu min gi tr MGT ny ch tng ng vi mt tp con ca min gi tr mt kiu c s X no == > Khai bo kiu n gin Y da trn kiu c s X == > S dng Y l kiu ca th ang xt * Mt thut gii c t th c t th gc X vi thng tin v kiu tng ng ( gi s l A) Xt loi kiu ca A A l kiu phc hp : c t kiu phc hp A bao gm c t h thng cc th con ca th gc X c t th X1 vi thng tin v kiu (gi s l A1) c t th X2 vi thng tin v kiu (gi s l A2) ... c t th XK vi thng tin v kiu (gi s l Ak) c t h thng cc thuc tnh ca th gc X admincnttvn@gmail.com http://www.ebook.edu.vn Trang 70

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

c t thuc tnh T1 vi thng tin v kiu (gi s l B1) c t thuc tnh T2 vi thng tin v kiu (gi s l B2) c t thuc tnh Tk vi thng tin v kiu (gi s l Bk) A l kiu n gin : c t kiu n gin A bao gm c t kiu c s ca A c t cc hn ch trn kiu c s ca A A l kiu c s : Khng cn c t thm Xt loi kiu ca A1 Xt loi kiu ca A2 ... Xt loi kiu ca Ak Xt loi kiu ca B1 Xt loi kiu ca B2 ... Xt loi kiu ca Bk Xt loi kiu ca T1 Xt loi kiu ca T2 ... Xt loi kiu ca Tk ..... Xt loi kiu ca cc kiu pht sinh thm khi c t cc kiu pha trn ..... V. Bi tp 1. c t Yu cu chung c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng cc i tng trong thc t Hng dn chung : - S dng th gc biu din thng tin ca i tng trong thc t ang xt - S dng cc th con ca th gc biu din cc "i tng con" ca i tng thc t ang xt ( v tip tc nu "i tng con" ang xt li bao gm bn trong cc "i tng con" khc ) * Dy s nguyn Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-Schema ) ca ti liu XML tng ng dy cc s nguyn 1, 4, 5, -9, 10 * Ma trn cc s nguyn Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng ma trn cc s nguyn admincnttvn@gmail.com http://www.ebook.edu.vn Trang 71

B mn Cng Ngh XML 1 4 12 -9 10 20 0 4 44 * a gic

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng a gic ABCDE vi A(0,0) , B(1,6) , C(1,1) , D(7,7) , E(0,2) * Biu thc s nguyn Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng biu thc s hc ( ch bao gm cc s nguyn dng v 2 php ton +, * ) P = 4*5 +10*2*6 + 15 * Biu thc phn s Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng biu thc phn s ( ch bao gm cc phn s v 2 php ton +, * ) P = 4/5 +10/11*2/7 + 1/6*1/2*1/3 + 15/17 * Danh sch cc khi lp Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng danh sch cc khi lp ca trng cp X. Bit rng trng X c 3 khi lp 10,11,12. Khi 10 c 8 lp: 10A1, 10A2,10A3, 10A4, 10A5,10A6,10A7,10A8 Khi 11 c 7 lp : 11A1,11A2,11A4,11A5,11A6,11A7,11A8 Khi 12 c 5 lp : 12A1, 12A2,12A4, 12A6,12A8 * Bn c gnh Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng trng thi ca mt bn c gnh * Phiu im Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng phiu im ca mt hc sinh Phiu im H v tn : ....... Gii tnh :.... Ngy sinh :.... a ch Mn hc TBHK1 TBHK2 TBNK admincnttvn@gmail.com http://www.ebook.edu.vn Trang 72

B mn Cng Ngh XML .... ..... * Ha n bn hng

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng ha n bn hng Ha n bn hng Khch hng : ....... Ngy lp :.... Stt Mt hng S lng n gi Thnh tin .... ..... Tng tr gi : ...... * Bng chm cng Yu cu c t ni dung & cu cu trc ( vi DTD hay Xml-schema ) ca ti liu XML tng ng bng chm cng thng ca mt dn v Bng chm cng thng .... n v ....... Nhn vin S ngy cng .... ..... 2. Xy dng ng dng n th x l trn kiu d liu X ( th loi X) XL_X ng thuc tnh ca th - Cc hm x l lin quan kiu ang xt * Tnh tin thu phng - Ku cu trc vi cc thnh phn tng H thng thc t Khch sng X c a ch 123 ABC v in thoi 333111 c bng n gi thu phng nh sau: Loi phng n gi/Ngy Loi A 250.000 Loi B 220.000 Loi C 180.000 c bit 340.000 Ghi ch : Nu khch thu qu 5 ngy c gim 10% Yu cu Thit k v lp trnh ng dng tnh tin thu phng vi cc yu cu chc nng nh sau 1. Cp nht thng tin v khch sn 2. B sung loi phng mi admincnttvn@gmail.com http://www.ebook.edu.vn Trang 73

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

3. Cp nht thng tin v loi phng 4. Thanh l loi phng 5. Tnh tin thu phng Hng dn thit k 1. Thit k d liu S dng tp tin Khach_san.xml vi Th gc : Biu din khch sn Cc th con ca th gc : Biu din cc loi phng 2. Thit k x l S dng 3 n th cc hm x l on th x l chnh Tinh_tien_thue_phong Yu cu chung Thit k v lp trnh ng dng vi cc yu cu chc nng cho trc Hng dn chung 1. Thit k d liu S dng tp tin Xml biu din thng tin cc i tng trong thc t 2. Thit k x l S dng (n+1) cc n th vi n l s lng cc loi th c trong tp tin Xml ( n th x l chnh v n n th x l trn n loi th khc nhau ) n th x l chnh Bao gm (m+1) hm x l m hm x l tng ng m chc nng Hm x l chnh Main v Khai bo cc bin c d liu t tp tin Xml vo cc bin lin quan Xut thc n Chi_so= Chc nng chn t ngi dng Gi thc hin hm x l chc nng tng ng vi Chi_so Bao gm hm x l chnh Main v 5 hm x l tng ng 5 chc nng n th XL_KHACH_SAN - Kiu cu trc KHACH_SAN - Cc hm x l lin quan khch sn n th XL_LOAI_PHONG - Kiu cu trc LOAI_PHONG - Cc hm x l lin quan loi phng - D liu c t cu trc ( vi DTD) <!DOCTYPE KHACH_SAN [ <!ELEMENT KHACH_SAN (LOAI_PHONG+) > <!ATTLIST KHACH_SAN Ten CDATA , Dien_thoai CDATA , Dia_chi CDATA , Muc_giam CDATA , Ty_le_giam CDATA > <!ELEMENT LOAI_PHONG EMPTY > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 74

B mn Cng Ngh XML ]>

Cng ngh XML v ng dng

Nguyn tin Huy

<!ATTLIST LOAI_PHONG Ten CDATA, Don_gia CDATA > c t cu trc ( vi Xml-Schema ) <xs:schema id="Khach_san" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name ="KHACH_SAN" type ="K_KHACH_SAN" /> <xs:complexType name ="K_KHACH_SAN"> <xs:sequence> <xs:element name ="LOAI_PHONG" type="K_LOAI_PHONG" minOccurs="1" /> </xs:sequence> <xs:attribute name ="Ten" type ="xs:string" /> <xs:attribute name ="Dien_thoai" type ="xs:string" /> <xs:attribute name ="Dia_chi" type ="xs:string" /> <xs:attribute name ="Muc_giam" type ="xs:int" /> <xs:attribute name ="Ty_le_giam" type ="xs:double" /> </xs:complexType> <xs:complexType name ="K_LOAI_PHONG"> <xs:attribute name ="Ten" type ="xs:string" /> <xs:attribute name ="Don_gia" type ="xs:int" /> </xs:complexType> </xs:schema> Ni dung : <KHACH_SAN Ten="222" Dien_thoai="2222" Dia_chi="33333" Muc_giam="7" Ty_le_giam="10"> <LOAI_PHONG Ten="Loi A" Don_gia="250000" /> <LOAI_PHONG Ten="Loi B" Don_gia="220000" /> <LOAI_PHONG Ten="Loi C" Don_gia="180000" /> <LOAI_PHONG Ten="c bit" Don_gia="380000" /> </KHACH_SAN> - n th x l chnh Module Tinh_tien_thue_phong Dim Ks As KHACH_SAN Dim Duong_dan As String = "..\\..\\Du_lieu\\Khach_san.xml" Public Sub Main() Ks = XL_KHACH_SAN.Doc(Duong_dan) Dim Chuoi As String = "Chng trnh tnh tin thu phng khch sn" & vbCrLf Chuoi &= XL_KHACH_SAN.Chuoi(Ks) & vbCrLf Chuoi &= XL_KHACH_SAN.Chuoi_bang_don_gia(Ks) & vbCrLf Console.Write(Chuoi) Dim Thuc_don As String = "" admincnttvn@gmail.com http://www.ebook.edu.vn Trang 75

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Thuc_don &= "1. Cp nht thng tin v khch sn" & vbCrLf Thuc_don &= "2. B sung loi phng mi" & vbCrLf Thuc_don &= "3. Cp nht thng tin v loi phng" & vbCrLf Thuc_don &= "4. Thanh l loi phng" & vbCrLf Thuc_don &= "5. Tnh tin thu phng " & vbCrLf Thuc_don &= "6. Kt thc " & vbCrLf Dim Chi_so As Integer Do Console.Write(Thuc_don) Chi_so = XL_SO_NGUYEN.Nhap("Chn chc nng : ", 1, 6) If Chi_so = 1 Then Cap_nhat_thong_tin_khach_san() ElseIf Chi_so = 2 Then Bo_sung_loai_phong_moi() ElseIf Chi_so = 3 Then Cap_nhat_thong_tin_loai_phong() ElseIf Chi_so = 4 Then Thanh_ly_loai_phong() ElseIf Chi_so = 5 Then Tinh_tien_thue_phong() ElseIf Chi_so = 6 Then Ket_thuc() End If Loop While Chi_so <> 6 End Sub Public Sub Cap_nhat_thong_tin_khach_san() ' Xut thng tin hin nay ca khch sn ' Nhp thng tin mi vo Ks ' Ghi Ks vi Duong_dan End Sub Public Sub Bo_sung_loai_phong_moi() Dim Lp As LOAI_PHONG ' Nhp thng tin cho Lp ' B sung Lp vo danh sch loi phng ca Ks ' Ghi Ks vi duong_dan End Sub Public Sub Cap_nhat_thong_tin_loai_phong() Dim Lp As LOAI_PHONG ' Xut thng tin bng n gi ( danh sch loi phng) ' Cho ngi dng nhp Chi_so ca loi phng cn cp nht ' Nhp thng tin cho Lp ' Cp nht loi phng th Chi_so vi Lp ' Ghi Ks vi Duong_dan End Sub Public Sub Thanh_ly_loai_phong() ' Xut thng tin bng n gi ( danh sch loi phng) ' Cho ngi dng nhp Chi_so ca loi phng cn thanh l ' Xa loi phng th Chi_so trong damnh sch loi phng admincnttvn@gmail.com http://www.ebook.edu.vn Trang 76

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

' Ghi Ks vi Duong_dan End Sub Public Sub Tinh_tien_thue_phong() Dim So_ngay As Integer Dim Lp As LOAI_PHONG Dim Tien As Integer ' Nhp So_ngay ' Nhp Chi_so ca loi phng thu ' Lp = Loi phng th Chi_so trong danh sch loi phng ca Ks ' Tnh tin da trn qui tc gim gi ' To v xut chui kt xut Chuoi ' End Sub Public Sub Ket_thuc() Console.WriteLine("Cho tm bit") Console.ReadLine() End Sub End Module - n th XL_KHACH_SAN Imports System.Xml Structure KHACH_SAN Public Ten As String Public Dien_thoai As String Public Dia_chi As String Public Muc_giam As Integer Public Ty_le_giam As Double Public Danh_sach_loai_phong As ArrayList End Structure Module XL_KHACH_SAN Public Function Doc(ByVal Duong_dan As String) As KHACH_SANDim Kq As KHACH_SAN Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l li Dim Goc As XmlElement = Tai_lieu.DocumentElement Kq.Ten = Goc.GetAttribute("Ten") Kq.Dien_thoai = Goc.GetAttribute("Dien_thoai") Kq.Dia_chi = Goc.GetAttribute("Dia_chi") Kq.Muc_giam = Goc.GetAttribute("Muc_giam") Kq.Ty_le_giam = Goc.GetAttribute("Ty_le_giam") Kq.Danh_sach_loai_phong = New ArrayList For Each Nut_loai_phong As XmlElement In Goc.ChildNodes Dim Loai_phong As LOAI_PHONG = XL_LOAI_PHONG.Khoi_tao(Nut_loai_phong) Kq.Danh_sach_loai_phong.Add(Loai_phong) Next Return Kq admincnttvn@gmail.com http://www.ebook.edu.vn Trang 77

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

End Function Public Function Ghi(ByVal Ks As KHACH_SAN, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("KHACH_SAN") Goc.SetAttribute("Ten", Ks.Ten) Goc.SetAttribute("Dien_thoai", Ks.Dien_thoai) Goc.SetAttribute("Dia_chi", Ks.Dia_chi) Goc.SetAttribute("Muc_giam", Ks.Muc_giam) Goc.SetAttribute("Ty_le_giam", Ks.Ty_le_giam) Tai_lieu.AppendChild(Goc) For Each Lp As LOAI_PHONG In Ks.Danh_sach_loai_phong Dim Nut_Lp As XmlElement = XL_LOAI_PHONG.Nut(Lp, Tai_lieu) Goc.AppendChild(Nut_Lp) Next Tai_lieu.Save(Duong_dan) Return Kq End Function Public Function Chuoi(ByVal Ks As KHACH_SAN) As String Dim Kq As String = "" Kq &= "Khch sn:" & Ks.Ten & vbCrLf Kq &= "in thoi " & Ks.Dien_thoai & vbCrLf Kq &= "a ch " & Ks.Dia_chi & vbCrLf Kq &= "Mc gim " & Ks.Muc_giam & vbCrLf Kq &= "T l gim " & Ks.Ty_le_giam Return Kq End Function Public Function Chuoi_bang_don_gia(ByVal Ks As KHACH_SAN) As String Dim Kq As String = "" Kq &= "Stt" & vbTab & "Loi phng" & vbTab & "n gi " & vbCrLf For i As Integer = 0 To Ks.Danh_sach_loai_phong.Count - 1 Kq &= i & vbTab Kq &= XL_LOAI_PHONG.Chuoi(Ks.Danh_sach_loai_phong(i)) & vbCrLf Next Return Kq End Function End Module - n th XL_LOAI_PHONG Imports System.Xml Public Structure LOAI_PHONG Public Ten As String Public Don_gia As Integer End Structure Module XL_LOAI_PHONG Public Function Khoi_tao(ByVal Nut As XmlElement) As LOAI_PHONG Dim Kq As LOAI_PHONG admincnttvn@gmail.com http://www.ebook.edu.vn Trang 78

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Kq.Ten = Nut.GetAttribute("Ten") Kq.Don_gia = Nut.GetAttribute("Don_gia") Return Kq End Function Public Function Nut(ByVal Lp As LOAI_PHONG, ByVal Tai_lieu As XmlDocument) As XmlElement Dim Kq As XmlElement = Tai_lieu.CreateElement("LOAI_PHONG") Kq.SetAttribute("Ten", Lp.Ten) Kq.SetAttribute("Don_gia", Lp.Don_gia) Return Kq End Function Public Function Chuoi(ByVal Lp As LOAI_PHONG) As String Dim Kq As String = "" Kq &= Lp.Ten & vbTab Kq &= Lp.Don_gia Return Kq End Function End Module * i ngoi t H thng thc t Ca hng i tin X c a ch 124 ABC v in thoi 333112 c bng t gi nh sau Ngoi t T gi .... .... Yu cu Thit k v lp trnh ng dng i ngoi t vi cc yu cu chc nng nh sau 1. Cp nht thng tin v ca hng i tin 2. B sung ngoi t mi 3. Cp nht t gi ca ngoi t 4. Thanh l ngoi t 5. Tnh tin khi i ngoi t Hng dn thit k 1. Thit k d liu: S dng tp tin Cua_hang.xml vi Th gc : Biu din thng tin v ca hng Cc th con ca th gc : Biu din cc ngoi t 2. Thit k x l: S dng 3 n th cc hm x l on th x l chnh Doi_ngoai_te Bao gm hm x l chnh Main v 5 hm x l tng ng 5 chc nng n th XL_CUA_HANG - Kiu cu trc CUA_HANG - Cc hm x l lin quan ca hng i tin n th XL_NGOAI_TE - Kiu cu trc NGOAI_TE - Cc hm x l lin quan ngoi t * Trc nghim admincnttvn@gmail.com http://www.ebook.edu.vn Trang 79

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu: Thit k v lp trnh ng dng trc nghim vi cc yu cu sau 1. Bin son cu hi mi 2. Cp nht cu hi son 3. Xa cu hi son 4. T rn luyn vi cc cu hi son Ghi ch : - Cu hi trc nghim ch bao gm vn bn, c nhiu chn la khc nhau v ch c duy nht mt p n ng - Vi chc nng t rn luyn, ng dng pht sinh ngu nhin 1 cu hi Hng dn thit k 1. Thit k d liu: S dng tp tin Trac_nghiem.xml vi Th gc (DE_BAI) : Biu din thng tin chung ca cc cu hi ( nu cn thit ) Cc th con ca th gc (CAU_HOI) : Biu din cc cu hi Cc th con ca th CAU_HOI : Biu din cc chn la 2. Thit k x l: S dng 4 n th cc hm x l on th x l chnh Trac_nghiem Bao gm hm x l chnh Main v 4 hm x l tng ng 4 chc nng n th XL_DE_BAI - Kiu cu trc DE_BAI - Cc hm x l lin quan danh sch cc cu hi trong bi n th XL_CAU_HOI - Kiu cu trc CAU_HOI - Cc hm x l lin quan cu hi n th XL_CHON_LUA - Kiu cu trc CHON_LUA - Cc hm x l lin quan chn la * Xp hng bng Yu cu: Thit k v lp trnh ng dng xp hng bng ca gii v ch bng VN vi cc yu cu sau 1. Ghi nhn kt qu cc trn u 2. Lp bng xp hng Ghi ch : y l bi tp dnh cho cc sinh vin t xp mnh vo loi kh/gii === > Khng c hng dn thm

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 80

B mn Cng Ngh XML I. M hnh i tng DOM 1. M hnh i tng

Cng ngh XML v ng dng

Nguyn tin Huy

Chng 3 : Truy xut ti liu XML vi DOM

Mc tiu : n tp, h thng ha cc kin thc v m hnh i tng === > Gip sinh vin t tm hiu v ng dng nhanh mt cng ngh c th === > M u cho vic trnh by cng ngh DOM * i tng Bin : Vng nh trong b nh chnh cho php biu din cc thng tin thc t bn trong phn mm Cu trc d liu : Mt loi bin c bit vi cc c im sau - Vng nh c cu trc bi ( bao gm bn trong ) cc "vng nh con" - Cho php biu din trn vn/tch hp cc thng tin ca mt i tng trong thc t i tng : Mt loi cu trc d liu c bit vi cc c im sau - Ch cho php mt s hm ( Hm thnh phn ) truy xut n cu trc ca cc "vng nh con " ( Bin thnh phn ) - Vic gi thc hin cc hm thnh phn theo c php c bit - Cho php nh ngha cc i tng mi da trn nh ngha ca cc i tng c - Cho php biu din di dng t nhin nht thng tin v cc x l lin quan mt i tng trong thc t Phn loi i tng C rt nhiu cch phn loi i tng da trn cc tiu ch khc nhau. Nu da trn tiu ch v "Ngun gc to lp" c th chia cc i tng thnh 2 loi - i tng th vin : Cc i tng "c sn" trong cc mi trng lp trnh - i tng t nh ngha Cc i tng do ngi pht trin phn mm t nh ngha (thit k ) v thc hin ( lp trnh) * i tng & Xy dng phn mm M hnh i tng H thng cc i tng cho php biu din cc i tng trong thc t M hnh i tng th vin : H thng cc i tng th vin cho php biu din cc i tng trong thc t M hnh i tng t nh ngha : H thng cc i tng t nh ngha cho php biu din cc i tng trong thc t ==== > Nghin cu v ng dng cng ngh X : Tm hiu v m hnh i tng th vin ca cng ngh X Xy dng ng dng phn mm theo cng ngh X S dng cc i tng th vin ca cng ngh X trc tip bn trong phn mm hay admincnttvn@gmail.com http://www.ebook.edu.vn Trang 81

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Xy dng m hnh i tng t nh ngha da vo m hnh i tng th vin ca cng ngh X * M hnh i tng d liu i tng d liu Mt loi i tng c bit cho php biu din cc thng tin lu tr theo mt cng ngh lu tr no M hnh i tng d liu H thng i tng cho php biu din ton b cc thng tin lu tr theo mt cng ngh lu tr no M hnh i tng d liu th vin H thng i tng th vin cho php biu din ton b cc thng tin lu tr theo mt cng ngh lu tr no V d : Cc m hnh i tng d liu th vin lin quan cng ngh lu tr dng CSDL quan h ADO ( Visual Studio 6.0) ADO.NET (Visual Stuio.NET ) JDO (JDK ) M hnh i tng d liu th vin lin quan cng ngh lu tr dng XML DOM XML M hnh i tng d liu th vin lin quan cng ngh lu tr dng Microsof Office Word Excel * M hnh i tng th hin i tng th hin Mt loi i tng c bit cho php biu din cc thng tin di dng xem c theo mt cng ngh giao din ngi dng M hnh i tng th hin H thng i tng c bit cho php biu din ton b cc thng tin di dng xem c theo mt cng ngh giao din ngi dng no M hnh i tng th hin th vin H thng i tng th vin cho php biu din cc thng tin di dng xem c theo mt cng nghgiao din ngi dng V d : Cc m hnh i tng th th vin lin quan cng ngh giao din ngi dng trn Windows Form, TreeView, DataGrid, ... ( Visual Studio 6.0 ) Form,DataGridView , ... ( Visual Studio.NET ) JFrame, JTree, JTextBox , ... (JBuilder 10.0 ) M hnh i tng th hin th vin trn Web DOM HTML 2. Khi nim v DOM admincnttvn@gmail.com http://www.ebook.edu.vn Trang 82

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Mc tiu : Gii thiu khi nim c bn v DOM ( Document Object Model ) DOM di gc nhn ngi xy dng ng dng trn mi trng c th DOM l mt m hnh i tng d liu th vin cho php biu din thng tin v cc x l lin quan mt ti liu XML trong b nh chnh V d : Vi cc lp trnh vin trn mi trng Visual Studio.NET DOM l th vin cc i tng XmlDocument, XmlElement , ....cc i tng ny khi cn s dng cn phi khai bo theo c php v tn t c th ca ngn ng ang dng using System.Xml ; vi C# Imports System.Xml vi VB.NET Vi cc lp trnh vin trn mi trng JBuilder 10.0 DOM l th vin cc i tng XmlDocument, XmlElement , ....cc i tng ny khi cn s dng cn phi khai bo theo c php c th import javax.xml.parser.*; import org.w3c.dom.* ; import org.w3c.dom.Node.* ; DOM di gc nhn ngi pht trin th vin ca mi trng pht trin phn mm DOM l nh chun rng buc trn kin trc ca cc m hnh i tng th vin d liu c s dng trong cc mi trng pht trin phn mm === > Tt c cc m hnh i tng th vin DOM trong cc mi trng pht trin phn mm khc nhau - Thng nht v cch s dng ( Tn , cch gi hm, tham s, ....) - Ch khc bit nhau v thut gii x l bn trong Vi gc nhn ny DOM chnh l h thng giao din lp trnh (Interface ) m cc i tng th vin phi chp nhn 3. H thng cc i tng ca DOM Mc tiu : Trnh by khi nim v i tng ca DOM Ni dung : Bao gm 2 phn Phn 1 : n tp v m hnh i tng d liu quan h == > Gip sinh vin c th tm hiu v s dng nhanh cc i tng th vin lin quan cng ngh lu tr CSDL == > M u cho phn trnh by v m hnh DOM Phn 2 : Trnh by cc i tng chnh ca DOM 1. Cc i tng d liu quan h * T chc lu tr ca cng ngh CSDL CSDL : Bao gm nhiu bng d liu Bng d liu : - Bao gm nhiu dng d liu - Tt c cc dng u c chung cu trc theo cc ct ca bng - Ct kha chnh l ct cho php xc nh duy nht dng trrong bng v c s dng lin kt cc admincnttvn@gmail.com http://www.ebook.edu.vn Trang 83

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

dng ca cc bng khc nhau Dng d liu : Lu tr cc thng tin trong thc t * Cc i tng chnh ca m hnh i tng d liu quan h i tng CSDL Bao gm nhiu i tng bng d liu i tng bng d liu - Bao gm nhiu i tng dng d liu - Tt c cc i tng dng u c chung cu trc theo cc i tng ct ca i tng bng - i tng ct kha chnh l i tng ct cho php xc nh duy nht i tng dng trrong i tng bng v c s dng lin kt cc i tng dng ca cc i tng bng khc nhau i tng dng d liu : Lu tr cc thng tin trong thc t * Cc i tng chnh ca m hnh i tng th vin ADO.NET i tng CSDL DataSet Bao gm nhiu i tng bng d liu DataTable i tng bng d liu DataTable - Bao gm nhiu i tng dng d liu DataRow - Tt c cc DataRow u c chung cu trc theo cc i tng ct DataColumn ca DataTable - i tng ct kha chnh l i tng ct cho php xc nh duy nht i tng dng trrong i tng bng v c s dng lin kt cc i tng dng ca cc i tng bng khc nhau i tng dng d liu : DataRow Lu tr cc thng tin trong thc t 1. Cc i tng d liu XML * T chc lu tr ca cng ngh lu tr XML Ti liu XML : Bao gm nhiu th d liu Bt buc phi cha duy nht mt th gc Th d liu : - C th bao gm nhiu thuc tnh - C th bao gm nhiu th d liu - C th lu tr hay khng lu tr thng tin trong thc t Thuc tnh Lu tr cc thng tin trong thc t * Cc i tng chnh ca m hnh i tng d liu XML i tng ti liu XML XmlDocument Bao gm nhiu i tng th d liu XmlElement Cho php s dng th gc qua i tng DocumentElement i tng th d liu XmlElement - Bao gm nhiu i tng thuc tnh XmlAttribute - Bao gm nhiu i tng th con XmlElement - C th c hay khng c i tng gi tr XmlValue i tng thuc tnh XmlAttribute admincnttvn@gmail.com http://www.ebook.edu.vn Trang 84

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Lu tr thng tin trong thc t Ghi ch : - Ngoi cc i tng chnh v thng dng trn, DOM bao hm cc loi i tng khc ( t thng dng hn ) tng ng vi cc loi th khc nhau ca ti liu XML nh XmlCDataSection, XmlEntity, ...Cc i tng ny cho php truy xut thng tin tng ng vi cc loi th khc nhau ca ti liu XML - Tt c cc i tng ca DOM u chp nhn giao din chung XmlNode tng ng vi h thng cc hm x l c bn trn mi th ca ti liu XML Hm nodeType nodeName nodeValue selectSingleNode selectNodes childNodes parentNode ownerDocument appendChild removeChild reaplaceChild cloneNode

* XmlDocument

ngha Tr v loi nt Tr v tn nt admincnttvn@gmail.com http://www.ebook.edu.vn Trang 85

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Tr v gi tr tng ng Tr v mt nt (Node) theo da trn chui truy vn Xpath Tr v mt tp hp nt (NodeList) theo da trn chui truy vn Xpath Tr v tp hp cc nt con (NodeList) ca nt ang xt Tr v nt cha (Node) ca nt ang xt) Tr v ti liu (Document) cha nt ang xt B sung nt con (Node) vo nt ang xt Xa nt con ca nt ang xt Thay th mt nt con ny bng nt con khc ca nt ang xt To bn sao ca nt ang xtGhi ch

S dng ch yu vi loi thuc tnh hay ni dung th khng c th con

S dng tham s quyt

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 86

B mn Cng Ngh XML nh to bn sau cn (khng xt cc nt con ) hay bn sau su ( ngc li ) * XmlNode Giao din XmlNode i tngXmlDocument Hm createElement creatAttribute getElementsByTagName Load

Cng ngh XML v ng dng

Nguyn tin Huy

LoadXML ngha Tr v nt (Element) vi tn nt Tr v thuc tnh (Attribute) vi tn thuc tnh Tr v tp hp cc nt con (NodeList) theo tn trong tham s Tip nhn d liu t ngun no ( tp tin l thng dng nht ) Tip nhn d liu t chui c cu trc ti liu XML Ghi ch

S dng cho mi loi ti liu c cu trc S dng cho mi loi ti liu c cu trc Kt xut d liu n ngun no ( tp tin l thng dng nht ) admincnttvn@gmail.com http://www.ebook.edu.vn Trang 87

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

ngha Tr v gi tr ca thuc tnh c tn trong tham s Tr v i tng thuc tnh (Attr) vi tn trong tham s Gn gi tr cho thuc tnh c tn trong tham s Xa thuc tnh c tn trong tham s Xa i tng thuc tnh (Attr) c trong tham s Tr v tp hp cc nt con (NodeList) theo tn trong tham s S dng cho mi loi ti liu c cu trc

Ghi ch

To thuc tnh mi nu cha c Save

* XmlElement i tngXmlElement Hm getAttribute getAttributeNode setAttribute removeAttribute removeAttributeNode admincnttvn@gmail.com http://www.ebook.edu.vn Trang 88

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

getElementsByTagName 2. Mt s k thut lp trnh vi DOM * c ti liu XML Vn : Cn c ti liu XML trn b nh ph vo to i tng XmlDocument tng ng Hng gii quyt : Xy dng hm c ti liu vi Tham s : ng dn ca tp tin Xml tng ng Kt qu : i tng XmlDocument Thut gii Khai bo i tng XmlDocument Kq Kq = D liu c t tp tin Xml vi Duong_dan ( X l thng bo li nu ng dn sai hay tp tin tng ng khng c cu trc tp tin XML) Tr Kq Ghi ch : c th ti s dng hm trn c th to hm c ti liu - Bn trong mt n th ( v d LT_XML ) - Bn trong mt lp i tng ( vi khai bo l hm mc lp ) Lp trnh vi VB.NET Public Function Doc_tai_lieu(ByVal Duong_dan As String) As XmlDocument Dim Kq As New XmlDocument Try Kq.Load(Duong_dan) Catch Loi As Exception Dim Thong_bao As String = "Li khi c tp tin " & Duong_dan & vbCrLf Thong_bao &= Loi.Message Console.WriteLine(Thong_bao) ' Hay MessageBox.Show(Thong_bao) End Try Return Kq End Function - Bi tp 1 Mc tiu : - To lp v s dng hm c ti liu === > Ti s dng cho cc ng dng khc - Tm hiu v cc li c th c khi c Yu cu : Vit chng trnh nhp vo ng dn ca mt tp tin Xml v sau c, xut ni dung di dng chui admincnttvn@gmail.com http://www.ebook.edu.vn Trang 89

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

ca cc th bn trong tp tin Xml Ghi ch : Cn th nghim vi cc trng hp li khc nhau - ng dn sai - Tp tin khng c cu trc theo nh chun XML - Bi tp 2 Mc tiu : - Tm hiu v s dng mt s hm ca DOM - M u cho vic trnh by ngn ng truy vn XPath Yu cu : Vit chng trnh nhp vo ng dn ca mt tp tin Xml v sau ln lt thc hin cc cng vic sau a) Xut thng tin thng k Tng s cc th ca tp tin XML Tng s thuc tnh ca tp tin XML b) Nhp vo chui Ten v cho bit c bao nhiu th trong tp tin c Ten tng ng * Ghi ti liu XML Vn : Cn ghi i tng XmlDocument vo tp tin trn b nh ph Hng gii quyt : Xy dng hm ghi ti liu vi Tham s : i tng XmlDocument , ng dn ca tp tin Xml tng ngKt qu : Gi tr logic Thut gii Khai bo bin logic Kq Kq = Kt qu khi ghi ( X l thng bo li khi ghi ) Tr Kq Ghi ch : c th ti s dng hm trn c th to hm c ti liu - Bn trong mt n th ( v d LT_XML ) - Bn trong mt lp i tng ( vi khai bo l hm mc lp ) Lp trnh vi Vb.NET Public Function Ghi_tai_lieu(ByVal Tai_lieu As XmlDocument, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Try admincnttvn@gmail.com http://www.ebook.edu.vn Trang 90

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Tai_lieu.Save(Duong_dan) Catch Loi As Exception Kq = False Dim Thong_bao As String = "Li khi ghi tp tin " & Duong_dan & vbCrLf Thong_bao &= Loi.Message Console.WriteLine(Thong_bao) ' Hay MessageBox.Show(Thong_bao) End Try Return Kq End Function - Bi tp 1 Mc tiu : - To lp v s dng hm ghi ti liu === > Ti s dng cho cc ng dng khc - Tm hiu v cc li c th c khi ghi - Tm hiu v s dng mt s hm ca DOM Yu cu : Vit chng trnh nhp vo 2 ng dn tng ng 2 tp tin Xml. c 2 tp tin trn vo 2 i tng XmlDocument Tai_lieu_1,Tai_lieu_2 v sau to i tng Tai_lieu bao gm tt c cc i tng ca Tai_lieu_1,Tai_lieu_2. Ghi Tai_lieu vo tp tin Kq.xml - Bi tp 2 Mc tiu : - Tm hiu v s dng mt s hm ca DOM - M u cho vic trnh by v Xpath Yu cu : Vit chng trnh nhp vo ng dn tng ng tp tin Xml v sau to tp tin ( ghi ) c tn Nut_la.xml bao gm tt c cc th khng cha th con ca tp tin ang xt * c i tng t tp tin XML Vn : Cn c d liu ca i tng x thuc loi X tng ng vi th X trong tp tin XML - c d liu ca i tng phn s Ps trong tp tin Phan_so.xml - c d liu ca i tng im Tam trong tp tin Duong_tron.xml - c d liu ca i tng loi phng trong tp tin Bang_don_gia.xml - c d liu ca i tng ngoi t trong tp tin Bang_ty_gia.xml Nhn xt : Cch c v to i tng x tng ng th X ph thuc vo X c phi l th gc hay admincnttvn@gmail.com http://www.ebook.edu.vn Trang 91

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

khng Nu X l th gc === > c trc tip Nu X l th con ca th gc == > Phi c th gc v sau khi to x t i tng XmlElement tng ng Hng gii quyt vi X l th gc Xy dng hm c ( hm mc lp ) ca lp i tng XL_X Tham s : ng dn ca tp tin Xml tng ng Kt qu : i tng x thuc lp XL_X Thut gii Khai bo i tng Kq Tai_lieu = i tng XmlDocument c t tp tin vi Duong_dan Goc = i tng XmlElement tng ng gc ca Tai_lieu Gn cc bin thnh phn ca Kq tng ng cc thuc tnh ca Goc Tr Kq Hng gii quyt vi X l th con Xy dng hm khi to ( hm mc lp ) ca lp i tng XL_X Tham s : i tng XmlElement Nut Kt qu : i tng x thuc lp XL_X Thut gii Khai bo i tng Kq Gn cc bin thnh phn ca Kq tng ng cc thuc tnh ca Nut Tr Kq

* Ghi i tng vo tp tin XML Vn : Cn ghi d liu ca i tng x thuc loi X vo vi th X trong tp tin XML - Ghi d liu ca i tng phn s Ps trong tp tin Phan_so.xml - Ghi d liu ca i tng im Tam trong tp tin Duong_tron.xml - Ghi d liu ca i tng loi phng trong tp tin Bang_don_gia.xml - Ghi d liu ca i tng ngoi t trong tp tin Bang_ty_gia.xml Nhn xt : Cch ghi i tng x tng ng th X ph thuc vo X c phi l th gc hay khng Nu X l th gc === >To th X v Ghi trc tip Nu X l th con ca th gc == > Ch to th XmlElement tng ng v sau b sung vo th gc trc khi ghi Hng gii quyt vi X l th gc Xy dng hm ghi ca lp i tng XL_X admincnttvn@gmail.com http://www.ebook.edu.vn Trang 92

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Tham s : ng dn ca tp tin Xml tng ng Kt qu : Gi tr logic Thut gii Khai bo bin logic Kq Tai_lieu = i tng XmlDocument Goc = i tng XmlElement c to t Tai_lieu Gn gi tr cc thuc tnh ca Goc tng ng bin thnh phn ca i tng B sung Goc vo Tai_lieu Kq = Kt qu khi ghi Tai_lieu vi Duong_dan Tr Kq Hng gii quyt vi X l th con Xy dng hm to nt ca lp i tng XL_X Tham s : i tng XmlDocument Tai_lieu Kt qu : i tng XmlElement Thut gii Khai bo i tng XmlElement Kq Kq = i tng XmlElement to ra t Tai_l;eu Gn cc thuc tnh ca Kq tng ng cc bin thnh phn ca i tng Tr Kq * Th hin cy i tng Vn : Cn th hin cc thng tin ca tp tin Xml di dng cy tng ng cu trc t chc cc th V d : Th hin cy Cng ty - n v Th hin cy Trng - Khi - Lp Th hin cy cc s nguyn Hng gii quyt chung : S dng i tng th hin cy trong th vin i tng giao din ngi dng Hng gii quyt c th vi Visual Studio.NET S dng i tng th hin TreeView 3. Ngn ng XPath Mc tiu : - M u v ngn ng XPath trong ng cnh kt hp vi DOM ===> S tip tc trnh by chi tit v h thng cc hm khi kt hp vi XSLT ( Chng 4 ) - Cung cp kin thc, khi nim tng qut v ngn ng truy vn thng tin === > Gip sinh vin t tm hiu v s dng tt cc ngn ng truy vn khc Ni dung : Truy vn thng tin : nim chung v x l truy vn thng tin Ngn ng truy vn thng tin : nim chung v cc ngn ng truy vn thng tin admincnttvn@gmail.com http://www.ebook.edu.vn Trang 93

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Ngn ng truy vn XPath : Gii thiu v Xpath, mt loi ngn ng truy vn thng tin vi ti liu XML Chui nh v : Trnh by chi tit cch nh v cc nt trong Xpath ( ni dung chnh ) Chui lc : Gii thiu s lc v cch lc d liu * Truy vn thng tin Truy vn thng tin - Mt trong cc loi x l quan trng v rt thng dng - Loi x l cho php trch rt thng tin v tp hp con thng tin ca mt tp hp thng tin no Tp hp thng tin Khi nim chung m t cc thng tin uc biu din theo mt dng no . c im ca tp hp thng tin ang xt l cc thng tin trong tp hp ny phi bao gm bn trong cc thnh phn con Tp1,Tp2, ... theo mt cu trc no . V d : - Mng 1 chiu cc s nguyn l tp hp cc thng tin vi cc thnh phn con l cc s nguyn - Mng 2 chiu cc phn s l tp hp cc thng tin vi cc thnh phn con trc tip l cc phn s. Thnh phn con ny li uc cu trc t 2 thnh phn con khc l t s, mu s - H thng cc tp tin trong mt a l tp hp cc thng tin vi cc thnh phn con l cc tp tin, th mc. Cc thnh phn ny uc cu trc theo dng cy - C s d liu ca phn mm qun l nhn s l tp hp thng tin vi cc thnh phn con l cc bng d liu ( quan h ) : NHAN_VIEN, TRINH_DO, DON_VI , v... . Cc bng ny c cu trc v lin kt vi nhau theo cc nim trong m hnh quan h - Ti liu XML (vi m hnh DOM ) l mt tp hp thng tin vi cc thnh phn con l cc nt. Cc nt ny uc sp xp theo dng cy Tp hp con thng tin Khi nim cho php m t kt qu ca vic truy vn thng tin trn tp hp thng tin gc. Tp hp con ny cng bao gm cc thnh phn con , cc thnh phn con cng c cch biu din v cu trc ring. Cu trc ca thnh phn con thng thng l trng vi cu trc trong tp hp gc nhng khng nht thit. V d : - Tp hp cc s nguyn dng trong mng 1 chiu a cc s nguyn - Tp hp cc phn s c gi tr ln hn 1 trong mng 2 chiu cc phn s - Tp hp cc tp tin c tn bt u vi chui k t A admincnttvn@gmail.com http://www.ebook.edu.vn Trang 94

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

- Tp hp cc nhn vin c tui t 15 n 20 trong danh sch nhn vin - Tp hp cc nt khng c nt con ( nt l ) trong tp tin Xml * Ngn ng truy vn thng tin- Mt trong cc loi ngn ng c t - Cho php c t tp hp con cc thng tin cn truy vn di dng mt chui : Chui truy vn Ty theo dng thng tin cn truy vn, c rt nhiu ngn ng truy vn c xut. Vi cc cu trc d liu mng, ngn ng truy vn rt n gin vi chui truy vn ch bao gm mt ch s ( mng 1 chiu ) hay biu thc gm 2 thnh phn : ch s dng, ch s ct ( mng 2 chiu ) V d : Truy xut phn t th 3 trong mng 1 chiu a a[3] Truy vn phn t thuc dng 2, ct 4 trong mng 2 chiu b b[2][4] Vi h thng tp tin, chui truy vn c dng ung dn bao hm bn trong tn a , tn cc th mc v tn tp tin V d : Truy xut tp tin THONG_BAO.Txt trong th mc gc a C C:\THONG_BAO.Txt Truy xut cc tp tin trong th mc A l con th mc gc a C C:\A\*.* Vi c s d liu quan h, ngn ng truy vn uc s dng thng dng l ngn ng SQL. Chui truy vn trong ngn ng ny c cu trc phc tp hn rt nhiu so vi cc v d trn ( v nh th kh nng truy vn cng tng ln rt nhiu ) V d : Truy xut h s cc nhn vin c n v l n v X vi m s l 5 Select * From NHAN_VIEN Where MDV=5 Vi tp tin XML, m hnh DOM cho php truy vn thng tin vi ngn ng truy vn Xpath. Chui truy vn trong Xpath c cu trc tng t nh ung dn ( ca h thng tp tin ) nhng phc tp hn rt nhiu vi khi nim v cc trc nh v v b lc ( s trnh by chi tit sau ) V d : Truy xut cc nt c gi tr l s nguyn dng trong cy cc s nguyn //Nut[@Gia_tri>0] Cc thnh phn chnh trong ngn ng truy vn Mi ngn ng truy vn s c dng khc nhau v cu trc ca chui truy vn. Tuy nhin do cng mc tiu l truy vn thng tin, cc chui truy vn bao hm bn trong 2 thnh phn chnh sau 1. Thnh phn nh v admincnttvn@gmail.com http://www.ebook.edu.vn Trang 95

B mn Cng Ngh XML 2. Thnh phn lc

Cng ngh XML v ng dng

Nguyn tin Huy

Thnh phn nh v : Cho php c t v tr ca thng tin cn truy vn. Kt qu ca vic nh v l mt tp hp con cc thng tin thuc v tr ang xt. Thnh phn nh v ch l bc u tin trong qu trnh truy vn, sau bc ny thng thng cn s dng thnh phn lc m t chi tit hn thng tin cn truy vn Mi ngn ng truy vn s dng mt s cc t kha ring cho php c t thnh phn ny V d : - Ngn ng truy vn tp tin dng t kha chnh l cc k hiu \ (con trc tip) nh v cc tp tin, thc mc cn truy vn trong chui ung dn - Ngn ng SQL dng 2 t kha chnh l From , Select nh v cc mu tin cn truy vn Ngn ng Xpath cho php nh theo ung dn vi k hiu / v m rng vi cc khi nim v trc nh v (t kha descendant nh v thnh phn con theo mi cp, t kha followingsibling nh thnh phn con l anh/ em ca thnh phn ang xt , v.v...)

Thnh phn lc : Cho php lc kt qu ca bc nh v vi vic m t cc tnh cht ca thng tin cn truy vn thng qua biu thc lc Biu thc lc thng dng c dng biu thc logic (tng t trong ngn ng lp trnh nhng vi mt s gii hn ) V d : Ngn ng truy vn tp tin khng c nim r nt v biu thc lc m ch cho php s dng mt s k t c bit ( k t ? , k t * ) m t chi tit v tn ( tp tin , th mc ) cn truy vn Ngn ng SQL dng t kho Where kt hp biu thc logic cho php lc cc mu tin cn truy vn Ngn ng Xpath s dng biu thc lc c dng [ Biu thc iu kin ] ch php lc cc nt cn truy vn * Ngn ng truy vn XPath Mt trong cc ngn ng truy vn vi - Tp hp thng tin bao gm cc i tng ca m hnh DOM admincnttvn@gmail.com http://www.ebook.edu.vn Trang 96

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

- Tp hp con thng tin : Danh sch cc i tng ca m hnh DOM Chuoi_dinh_v_1 Chuoi_loc_1 Chuoi_dinh_vi_2 Chuoi_loc_2 ..... Chuoi_dinh_vi_n Chuoi_loc_n Chuoi_dinh_vi : Cho php xc nh tp hp cc nt c quan h ( thng dng l con ) so vi mt tp hp cc nt X cho trc V d : /AAA/BBB/CCC --- > Tp hp tt c cc nt tng ng th CCC L con ca BBB vi BBB l con ca AAA , vi AAA l con ca gc //CCC ---- > Tp hp tt c cc nt tng ng th CCC BBB/CCC --- > Tp hp tt c cc nt tng ng th CCC L con ca BBB vi BBB l con ca nt ng cnh Chuoi_loc : C dng sau [ Bieu_thuc_loc ] Bieu_thuc_loc l biu thc logic cho php xc nh mt tp hp con cc nt ca tp hp cc nt X cho trc. Tp hp con ny l chnh l tp hp cc nt ca X tha iu kin trong Bieu_thuc_loc. V d : /AAA/BBB/CCC[@x > 5 ] --- > Tp hp tt c nt tng ng th CCC - C thuc tnh x ln hn 5 - L con ca th BBB, th BBB l con ca th AAA, th AAA l con ca gc /AAA/BBB[@y='bbb]/CCC[@x>5] ---- > Tp hp tt c nt tng ng th CCC - C thuc tnh x ln hn 5 - L con ca th BBB vi th BBB - C gi tr thuc tnh y l 'bbb' - L con ca th AAA, th AAA l con ca gc - V d minh ha V d 1 : Xt Ti liu Xml vi c t DTD nh sau <?xmlversion="1.0"encoding="utf-8"?> <!DOCTYPE TRUONG [ <!ELEMENT TRUONG (KHOI )+ > <ATTLIST TRUONG Ten CDATA #REQUIRED > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 97

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<!ELEMENT KHOI (LOP )+ > <ATTLIST KHOI Ten CDATA #REQUIRED > <!ELEMENT LOP (HOC_SINH)+ > <ATTLIST LOP Ten CDATA #REQUIRED Si_so CDATA #REQUIRED <! Si_so : A_int --> > <!ELEMENT HOC_SINH EMPTY > <ATTLIST HOC_SINH Ho_ten CDATA #REQUIRED Gioi_tinh CDATA #REQUIRED <! Si_so : A_int --> > ]> Vi nt ng cnh l nt gc (nt c tn l TRUONG). Chui truy vn Xpath c t tp hp cc lp c s s trn 40, c dng nh sau child::KHOI/child::LOP[@Si_so>40] V d 2: Chui truy vn Xpath cho php c t tp hp con cc s nguyn dng trong ti liu XML biu din thng tin v cy cc s nguyn c dng sau ( vi nt ng cnh l nt gc ) descendant::SO_NGUYEN[@Gia_tri >0] - Chui nh v

Chui nh v Xpath cho php nh v theo 2 cch Cch 1 : Dng trc nh v vi tn c th Cch 2 : Dng dng tc k vi cc t kha thay th tn trc nh v Cch 1 l dng c s, dng x l trc tip ca cc thnh phn x l chui Xpath (b x l phn tch , b x l nh v, x l b lc). Tuy nhin cch ny khng cho php m t mt cch ngn gn so vi cch 2 Cch 2 l cch rt thng dng v cho php m t mt cch ngn gn, sc tch. Tuy nhin khng phi tt c cc trc u c t kha thay th nn trong mt s trng hp nht nh cch 1 l cch duy nht admincnttvn@gmail.com http://www.ebook.edu.vn Trang 98

B mn Cng Ngh XML c th s dng

Cng ngh XML v ng dng

Nguyn tin Huy

V d 1 : Vi ti liu XML biu din thng tin cc hc sinh ( DTD pha trn ) Thay v s dng chui nh v theo cch 1 child::KHOI/child::LOP[@Si_so>40] C th s dng dng tc k trong chui nh v nh sau KHOI/LOP[@Si_so>40] Hay /TRUONG/KHOI/LOP[@Si_so>40] Cc dng s dng ny s cho kt qu hon ton trng khp vi kt qu ca dng pha trn V d 2 : Vi ti liu XML biu din thng tin v biu thc s hc Thay v s dng chui nh v theo cch 1 descendant::SO_NGUYEN[@Gia_tri >0] C th dng dng tc k //SO_NGUYEN[@Gia_tri >0] (T kha // l dng vit tt cho trc descendant:: ) Dng s dng ny s cho kt qu hon ton trng khp vi kt qu ca dng pha trn

nh v theo tn trc C php ( dng thng dng) Chui nh vi theo tn trc c dng chung sau Ten_truc:: Ten_nut ngha : c t cc tp hp con cc nt c tn l Ten_nut v c v tr tng i so vi tp hp nt ang xt ( kt qu trung gian) theo ngha ca Ten_truc Tn trc self ngha Chnh nt ang xt Ghi ch t s dng

Ghi ch : Cho php dng k t * m t mt nt bt k nh v theo tc k C php ( dng thng dng) Chui nh vi theo tn trc c dng chung sau Tu_khoa Ten_nut admincnttvn@gmail.com http://www.ebook.edu.vn Trang 99

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

ngha : c t cc tp hp con cc nt c tn l Ten_nut v c v tr tng i so vi tp hp nt ang xt ( kt qu trung gian) theo ngha ca Ten_truc tng ng vi Tu_khoa Rt thng dng Rt thng dng

t s dng t s dng t s dng t s dng child parent descendant

Con trc tip Cha trc tip Tt c con theo mi cp ( khng bao gm nt ang xt) descendant-or-self Tt c con theo mi cp ( bao gm nt ang xt) ancestor Tt c cha theo mi cp ( khng bao gm nt ang xt) ancestor-or-self Tt c cha theo mi cp ( bao gm nt ang xt) following-sibling Tt c anh em cng cha( pha sau nt ang xt) preceding-sibling Tt c anh em cng cha( pha trc nt ang xt) following Tt c anh em cng cha ( pha sau nt ang xt ) cng vi cc con theo mi cp peceding Tt c anh em cng cha ( pha trc nt ang xt ) cng vi cc con theo mi cp Ghi ch : Cho php dng k t * m t mt nt bt k nh v theo tc k

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 100

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

C php ( dng thng dng) Chui nh vi theo tn trc c dng chung sau Tu_khoa Ten_nut ngha : c t cc tp hp con cc nt c tn l Ten_nut v c v tr tng i so vi tp hp nt ang xt ( kt qu trung gian) theo ngha ca Ten_truc tng ng vi Tu_khoa Tn trc self child parent descendant

Chui lc T kha , / .. // Ghi ch t s dng Rt thng dng, c th dng xc nh nt ng cnh chnh l Document Rt thng dng Chui lc XXX[ Bieu_thuc_loc]

Cho php c t iu kin lc trn cc thuc tnh ca nt XXX ang xt Bieu_thuc_loc c c php hon ton tng t c php ca biu thc iu kin trong ngn ng lp trnh if ( Biu thc iu kin ) { // Cc lnh } vi mt s khc bit m trong quan trng nht l Biu thc iu kin ca ngn ng lp trnh bao gm cc bin Biu thc iu kin ca XPath bao gm cc thuc tnh ( c php @Ten_thuoc_tinh ) admincnttvn@gmail.com http://www.ebook.edu.vn Trang 101

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

* Minh ha trc quan XPath an videoClip minh ha trc quan vic s dng Xpath IV. Bi tp 1. Rn luyn k nng * c tp tin Xml Mc tiu : - To lp v s dng hm c ti liu === > Ti s dng cho cc ng dng khc - Tm hiu v cc li c th c khi c Yu cu : Vit chng trnh nhp vo ng dn ca mt tp tin Xml v sau c, xut ni dung di dng chui ca cc th bn trong tp tin Xml Ghi ch : Cn th nghim vi cc trng hp li khc nhau - ng dn sai - Tp tin khng c cu trc theo nh chun XML * c tp tin Xml v truy vn Mc tiu : - Tm hiu v s dng mt s hm ca DOM - S dng ngn ng truy vn XPath Yu cu : Vit chng trnh nhp vo ng dn ca mt tp tin Xml v sau ln lt thc hin cc cng vic sau a) Xut thng tin thng k Tng s cc th ca tp tin XML Tng s thuc tnh ca tp tin XML b) Nhp vo chui Ten v cho bit c bao nhiu th trong tp tin c Ten tng ng * Ghi tp tin Xml Mc tiu : - To lp v s dng hm ghi ti liu === > Ti s dng cho cc ng dng khc - Tm hiu v cc li c th c khi ghi - Tm hiu v s dng mt s hm ca DOM admincnttvn@gmail.com http://www.ebook.edu.vn Trang 102

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Yu cu : Vit chng trnh nhp vo 2 ng dn tng ng 2 tp tin Xml. c 2 tp tin trn vo 2 i tng XmlDocument Tai_lieu_1,Tai_lieu_2 v sau to i tng Tai_lieu bao gm tt c cc i tng ca Tai_lieu_1,Tai_lieu_2. Ghi Tai_lieu vo tp tin Kq.xml * Truy vn v Ghi tp tin Xml Mc tiu : - Tm hiu v s dng mt s hm ca DOM - S dng Xpath Yu cu : Vit chng trnh nhp vo ng dn tng ng tp tin Xml v sau to tp tin ( ghi ) c tn Nut_la.xml bao gm tt c cc th khng cha th con ca tp tin ang xt * Th hin cy t chc trng Mc tiu : Rn luyn k nng trnh by ni dung ti liu Xml vi Windows Form Yu cu : To tp tin Xml biu din thng tin v t chc ca mt trng ( thng tin v trng, cc khi, cc lp , cc hc sinh ) Vit chng trnh c v xut cc thng tin trn di dng cy * Th hin cy cc s nguyn Mc tiu : Rn luyn k nng trnh by ni dung ti liu Xml vi Windows Form Yu cu : To tp tin Xml biu din thng tin v cy cc s nguyn Vit chng trnh c v xut cc thng tin trn di dng cy

2. Xy dng ng dng * Tnh tin thu phng H thng thc t Khch sng X c a ch 123 ABC v in thoi 333111 c bng n gi thu phng nh sau Loi phng n gi/Ngy Loi A 250.000 Loi B 220.000 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 103

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Loi C 180.000 c bit 340.000 Ghi ch : Nu khch thu qu 5 ngy c gim 10% Yu cu Thit k v lp trnh ng dng tnh tin thu phng vi cc yu cu chc nng nh sau 1. Cp nht thng tin v khch sn 2. B sung loi phng mi 3. Cp nht thng tin v loi phng 4. Thanh l loi phng 5. Tnh tin thu phng * i ngoi t H thng thc t Ca hng i tin X c a ch 124 ABC v in thoi 333112 c bng t gi nh sau Ngoi t T gi .... .... Yu cu Thit k v lp trnh ng dng i ngoi t vi cc yu cu chc nng nh sau 1. Cp nht thng tin v ca hng i tin 2. B sung ngoi t mi 3. Cp nht t gi ca ngoi t 4. Thanh l ngoi t 5. Tnh tin khi i ngoi t * Trc nghim Yu cu Thit k v lp trnh ng dng trc nghim vi cc yu cu sau 1. Xem bi 2. Bin son cu hi mi 3. Cp nht cu hi son 4. Xa cu hi son 5. T rn luyn vi cc cu hi son Ghi ch : - Cu hi trc nghim ch bao gm vn bn, c nhiu chn la khc nhau v ch c duy nht mt p n ng - Vi chc nng t rn luyn, ng dng pht sinh ngu nhin 1 cu hi * Xp hng bng Yu cu :Thit k v lp trnh ng dng xp hng bng ca gii v ch bng VN admincnttvn@gmail.com http://www.ebook.edu.vn Trang 104

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

vi cc yu cu sau 1. Ghi nhn kt qu cc trn u 2. Lp bng xp hng Ghi ch : y l bi tp dnh cho cc sinh vin t xp mnh vo loi kh/gii Chng

4:

Bin i ti liu XML vi XSLT


I. M u v XSLT Chng trnh XSLT : Khi nim : - Mt loi ti liu XML c bit bao gm cc th x l cho php bin i mt ti liu XML thnh mt ti liu vn bn bt k - Mt loi chng trnh thng dch c bit vi + D liu ngun : Ti liu XML + Kt xut : Ti liu dng vn bn Ti liu XML ---- > Chng trnh XSLT ---- > Ti liu vn bn Cc ng dng chnh : XSLT c 2 ng dng chnh hin nay 1. Thc hin bin i t tp tin XMl vo trang Web vi ngn ng HTML 2. Thc hin bin i t tp tin XML vo tp tin XML khc Xml --- > Html Chp php th hin ni dung tp tin Xml trn trang Web V d : Tp tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> thng qua x l ca chng trnh Xuat_don_thuc.Xslt s c th hin trn trang Web 4x6 Xml -- > Xml Cho php to tp tin Xml mi t tp tin Xml hin c c th trch rt thng tin, ti cu trc cc th, v.v... V d : Tp tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> thng qua x l ca mt chng trnh Xslt s to ra tp tin Don_thuc_1.xml nh sau <DON_THUC> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 105

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<He_so> 4 </He_so> <So_mu> 6 </So_mu> </DON_THUC> 1. Cu trc chng trnh XSLT Cu trc chng trnh XSLT Cu trc chng trnh XSLT n gin <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform> <xsl:template match="/" > Cc lnh ( th ) x l cho php trch rt thng tin t Tp tin Xml ngun v kt xut vo tp tin kt qu </xsl:template> </xsl:stylesheet> V d 1 : Chng trnh sau cho php bin i tp tin Nguoi_dung.xml <NGUOI_DUNG Ho_ten="Trn vn Long" /> to tp tin vn bn vi ni dung Xin cho Trn vn Long. y l chng trnh XSLT u tin ca ti <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/" > Xin cho <xsl:value-of select="/NGUOI_DUNG/@Ho_ten"/> .y l chng trnh XSLT u tin ca ti </xsl:template> </xsl:stylesheet> V d 2 : Chng trnh sau cho php bin i tp tin xml <GOC> <SO Gia_tri="5" /> <SO Gia_tri="7" /> </GOC> to tp tin vn bn vi ni dung 5+7 =12 <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="text"/> <xsl:template match="/" > <xsl:value-of select="/GOC/SO[1]/@Gia_tri"/> + <xsl:value-of select="/GOC/SO[2]/@Gia_tri"/> = <xsl:value-of select="/GOC/SO[1]/@Gia_tri + /GOC/SO[2]/@Gia_tri" /> </xsl:template> </xsl:stylesheet> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 106

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

2. Cho thc hin chng trnh XSLT Cho thc hin chng trnh XSLT Qu trnh thc hin Bao gm 3 bc Bc 1 : Chun b d liu ngun l tp tin XML Bc 2 : Son tho chng trnh XSLT Bc 3 : Cho thc hin chng trnh Bc 1 : D liu ngun c th c chun b thng qua mt trong cc cch sau- Cch 1 : S dng trnh son tho vn bn bt k ( v ti liu XML ch l mt vn bn) - Cch 2 : S dng trnh son tho XML Editor Bc 2 : Chng trnh XSLT c th c chun b thng qua mt trong cc cch sau - Cch 1 : S dng trnh son tho vn bn bt k ( v ti liu XML ch l mt vn bn) - Cch 2 : S dng trnh son tho XML Editor - Cch 3 : S dng trnh son tho chng trnh XSLT ( XSLT Editor) Bc 3 : Ty theo mc tiu ca vic thc hin c th tin hnh mt trong 3 cch sau Cch 1 : S dng mi trng lp trnh Cho thc hin trc tip bn trong mi trng lp trnh Cch ny thch hp cho vic hc tp v th nghim chng trnh XSLT Cch 2 : S dng trnh duyt Web Cho thc hin trc tip vi s h tr ca trnh duyt Web Cch ny cho php ng dng trc tip XSLT trong vic th hin hto6ng tin trn Web Cch 3 : T vit chng trnh Cho thc hin thng qu vic vit mt ng dng trong ngn ng lp trnh khc ( v d C#). ng dng ny s - Np/c chng trnh XSLT vo b nh - Chun b d liu ngun ( nu cn thit ) - Cho thc hin - X l kt xut c to ra ( nu cn thit ) Cch ny thch hp khi cn "nhng" chng trnh XSLT vo mt ng dng c th thc hin nhanh, d bo tr, chun mt s x l bin i no lin quan ti liu XML * S dng mi trng lp trnh Vi mi trng lp trnh Visual Studio.NET Bc 1 : To tp tin Xml ngun Chn Project - Add New Item vi loi tp tin l Xml === > Ca s cho php son tho tp tin Xml Bc 2 : To chng trnh XSLT Chn Project - Add New Item vi loi tp tin Xslt admincnttvn@gmail.com http://www.ebook.edu.vn Trang 107

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

=== > Ca s cho php son tho chng trnh XSLT Bc 3 : Cho thc hin 3.1 Bc 3.1 : Chn ca s Properties xc nh tp tin Xml ngun v tp tin kt xut 3.2 Bc 3.2 : Quay v ca s son tho chng trnh XSLT ( Click v ca s ) v sau chn chc nng Xml ---> Debug XSLT Lu : Bc 3.1 Ch cn thc hin mt ln nu khng thay i tp tin ngun C th nh du im ngt bn trong chng trnh XSLT tng t khi Debug ng dng vi ngn ng lp trnh khc * S dng trnh duyt Web Bc 1 : To tp tin Xml ngun vi ch th yu cu thc hin chng trnh XSL <?xml-stylesheet type="text/xsl" href=Chui ng dn n tp tin chng trnh XSLT ?> V d : <?xmlversion="1.0"encoding="utf-8" ?> <?xml-stylesheettype="text/xsl" href="Xuat_loi_chao.xslt" ?> <NGUOI_DUNGHo_ten="Trn vn Long" /> Bc 2 : To chng trnh XSLT Chn Project - Add New Item vi loi tp tin Xslt === > Ca s cho php son tho chng trnh XSLT Bc 3 : Cho thc hin M trnh duyt Web v sau chn URL l ng dn n tp tin Xml * T vit chng trnh Bc 1 : To tp tin Xml ngun Bc 2 : To chng trnh XSLT Chn Project - Add New Item vi loi tp tin Xslt === > Ca s cho php son tho chng trnh XSLT Bc 3 : Cho thc hin .... Khai bo i tng Bo_thuc_hien c tp tin chng trnh XSL vo Bo_thuc_hien Yu cu Bo_thuc_hien thc hin chng trnh XSLT vi d liu ngun v kt xut .... V d : vi Visual Studio.NET 2005 VB.NET on chng trnh sau s cho thc hin chng trnh Xuat_loi_chao.Xslt admincnttvn@gmail.com http://www.ebook.edu.vn Trang 108

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

- D liu ngun l tp tin Nguoi_dung.xml - Kt xut l tp tin vn bn Loi_chao.txt ( Tt c cc tp tin u t trong th mc ca Project )

Imports System.Xml Imports System.Xml.Xsl Module Thuc_hien_XSLT Public Sub Main() Dim Duong_dan_Xml As String = "..\..\Nguoi_dung.xml" Dim Duong_dan_Xslt As String = "..\..\Xuat_loi_chao.xslt" Dim Duong_dan_Kq As String = "..\..\Loi_chao.txt" Dim Thuc_hien As New XslCompiledTransform(True) Thuc_hien.Load(Duong_dan_Xslt) Thuc_hien.Transform(Duong_dan_Xml, Duong_dan_Kq) End Sub End Module 3. Cc v d minh ha Cc v d minh ha Mc tiu : Minh ha trc quan mt s chng trnh XSLT. Cc chng trnh ny s c din gii chi tit v sau trong cc mc khc === > Cha yu cu hiu ngha cc lnh === > S dng rn luyn cch cho thc hin chng trnh XSLT * Xut cy trng - khi - lp Vi tp tin Truong.xml c ni dung nh sau <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Trng cp 3 XXX"> <KHOITen="Khi 10" > <LOPTen="Lp 10A" /> <LOPTen="Lp 10B" /> <LOPTen="Lp 10C" /> <LOPTen="Lp 10D" /> </KHOI> <KHOITen="Khi 11" > <LOPTen="Lp 11A" /> <LOPTen="Lp 11B" /> <LOPTen="Lp 11C" /> </KHOI> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 109

B mn Cng Ngh XML <KHOITen="Khi 12" > <LOPTen="Lp 12A" /> <LOPTen="Lp 12B" /> <LOPTen="Lp 12C" /> </KHOI> </TRUONG>

Cng ngh XML v ng dng

Nguyn tin Huy

Chng trnh Xuat_truong.xslt sau s kt xut ( dng Html ) cc thng tin v trng ( bao gm thng tin khi, lp ) <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:template match="/" > <xsl:apply-templates select="TRUONG" /> </xsl:template> <xsl:template match="TRUONG"> <xsl:value-of select="@Ten"/> <br /> Danh sch cc khi lp <br /> <xsl:apply-templates select="KHOI" /> </xsl:template> <xsl:template match="KHOI"> <xsl:value-of select="@Ten"/> <br /> <xsl:apply-templates select="LOP" /> </xsl:template> <xsl:template match="LOP"> <xsl:value-of select="@Ten"/> <br /> </xsl:template> </xsl:stylesheet> Ghi ch : Thuc tnh select trong th xsl:apply-templates c th c b qua v khi s c hiu l select="*" ( cho lng gi l cc nt con ca nt ng cnh ) === > Mt trong cc cch n gin t chc chng trnh Xslt l t chc chng trnh theo cc loi th c trong tp tin Xml v gi thc hin (so khp ) khng cn tham s Gi thc hin : <xsl:apply-templates /> Khai bo hm/mu so khp : <xsl:template match="tn loi th" > Cc th x l </xsl:template> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 110

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="TRUONG"> <xsl:value-ofselect="@Ten"/> <br /> Danh sch cc khi lp <br /> <xsl:apply-templates /> </xsl:template> <xsl:templatematch="KHOI"> <xsl:value-ofselect="@Ten"/> <br /> <xsl:apply-templates /> </xsl:template> <xsl:templatematch="LOP"> <xsl:value-ofselect="@Ten"/> <br /> </xsl:template> </xsl:stylesheet> * Xut danh sch chn Chng trnh Xslt sau s xut danh sch chn cc n v t tp tin Cong_ty.xml <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:templatematch="CONG_TY" > Danh sch n v : <select> <xsl:apply-templates /> </select> </xsl:template> <xsl:templatematch="DON_VI" > <option> <xsl:value-ofselect ="@Ten"/> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 111

B mn Cng Ngh XML </option> </xsl:template> </xsl:stylesheet>

Cng ngh XML v ng dng

Nguyn tin Huy

* Sp xp kt qu thi u Olympic Vi tp tin Xml Ket_qua_Olympic.xml <?xmlversion="1.0"encoding="utf-8" ?> <KET_QUA> <QUOC_GIATen="AAA"So_vang="10"So_bac="7"So_dong="2" /> <QUOC_GIATen="XXX"So_vang="6"So_bac="0"So_dong="12" /> <QUOC_GIATen="BBB"So_vang="10"So_bac="8"So_dong="13" /> <QUOC_GIATen="DDD"So_vang="4"So_bac="17"So_dong="0" /> <QUOC_GIATen="MMM"So_vang="6"So_bac="1"So_dong="0" /> <QUOC_GIATen="KKK"So_vang="6"So_bac="0"So_dong="2" /> <QUOC_GIATen="LLL"So_vang="10"So_bac="4"So_dong="23" /> <QUOC_GIATen="PPP"So_vang="3"So_bac="27"So_dong="100" /> </KET_QUA> on chng trnh XSL sau sp xp cc quc gia gim dn theo th t u tin - u tin 1 : S huy chng vng - u tin 2 : S huy chng bc - u tin 3 : S huy chng ng <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="KET_QUA" > <xsl:copy > <xsl:apply-templates select ="QUOC_GIA"> <xsl:sort order="descending"data-type="number"select="@So_vang" /> <xsl:sort order="descending"data-type="number"select="@So_bac" /> <xsl:sort order="descending"data-type="number"select="@So_dong" /> </xsl:apply-templates> </xsl:copy> </xsl:template> <xsl:templatematch="QUOC_GIA" > <!--<xsl:copy-of select="."/>--> <xsl:copy > <xsl:copy-ofselect ="@*"/> </xsl:copy> </xsl:template> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 112

B mn Cng Ngh XML </xsl:stylesheet> II. Cc thao tc c bn

Cng ngh XML v ng dng

Nguyn tin Huy

Cc thao tc c bn Mc tiu : Trnh by cc k thut x l c bn khi xy dng chng trnh XSLT Ni dung : 1. Trch rt thng tin v kt xut vi th x l xsl:value-of , xsl:variable 2. X l r nhnh vi xsl:if , xsl:choose 3. X l lp vi xsl:for-each. X l so khp vi xsl:apply-templates , xsl:template 1. Trch rt v kt xut thng tin Vn : Cn trch mt s thng tin trong tp tin Xml ngun v a vo tp tin kt xut Hng gii quyt : Cch 1 : Trch rt thng tin t tp tin Xml v sau kt xut trc tip vi th x l xsl:value -of Cch 2 : Trch rt thng tin vo bin vi th x l xsl:variable v sau s dng bin ny trong th x l xsl:value-of Th xsl:value-of ngha : Cho php trch rt thng tin t tp tin Xml hay t gi tr ca bin v sau a vo tp tin kt qu C php : Nu trch rt thng tin t tp tin Xml ngun <xsl:value-of select="Biu thc Xpath" /> Nu trch rt thng tin t bin <xsl:value-of select="$Ten_bien" /> Th xsl:variable ngha : Cho php trch rt thng tin t tp tin Xml v a vo mt bin ( ng ra l hng v ni dung bin ny khng th thay i c ) C php : <xsl:variable name="Ten_bien" select="Biu thc Xpath" /> V d : Chng trnh tnh tng 2 s nguyn c th thc hin theo 2 cch admincnttvn@gmail.com http://www.ebook.edu.vn Trang 113

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Cch 1 : Trch rt thng tin trc tip <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="text"/> <xsl:template match="/" > <xsl:value-of select="/GOC/SO[1]/@Gia_tri"/> + <xsl:value-of select="/GOC/SO[2]/@Gia_tri"/> = <xsl:value-of select="/GOC/SO[1]/@Gia_tri + /GOC/SO[2]/@Gia_tri" /> </xsl:template> </xsl:template> </xsl:stylesheet> Cch 2 : Thng qua cc bin <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="text"/> <xsl:templatematch="/" > <xsl:variablename="So_1"select="/GOC/SO[1]/@Gia_tri" /> <xsl:variablename="So_2"select="/GOC/SO[2]/@Gia_tri" /> <xsl:value-ofselect="$So_1" /> + <xsl:value-ofselect="$So_2" /> = <xsl:value-ofselect="$So_1 + $So_2"/> </xsl:template></xsl:stylesheet> Lu : - Ch s cc th ca tp tin Xml bt u t 1 - Biu thc bn trong thuc tnh select c th + Mt biu thc Xpath duy nht + Mt bin duy nht + Biu thc s hc vi thnh phn l biu thc Xpath hay bin iu ny cho php thc hin mt s x l trn thng tin ngun trc khi kt xut, tuy nhin cc x l ny kh gii hn v Xslt c thit k v s dng vo mc tiu chnh l bin i 2. R nhnh Vn : Cn r nhnh x l kt xut ty vo iu kin ca tp tin Xml ngun Hng gii quyt : Cch 1 : S dng th x l xsl:if . Cch ny cho php ch kt xut trong trng hp mt iu kin no c tha ( v nu khng tha th khng kt xut g c ) Cch 2 : S dng th x l xsl:choose . Cch ny cho php kt xut ty theo nhiu iu admincnttvn@gmail.com http://www.ebook.edu.vn Trang 114

B mn Cng Ngh XML kin vi cc trng hp khc nhau Th xsl:if

Cng ngh XML v ng dng

Nguyn tin Huy

ngha : Cho php ch thc hin mt s th x l khi iu kin c tha C php : <xsl:if test="Biu thc logic " > Cc th x l </xsl:if> Ghi ch : Biu thc logic bao gm cc biu thc tnh ton ( trn chui Xpath hay gi tr bin ) cng vi cc php ton quan h >, >= , <,<= , = , != v cc php ton logic not , and , or Th xsl:choose ngha : Tng t nh th xsl:if nhng cho php s dng nhiu iu kin khc nhau C php : <xsl:choose> <xsl:when test="Biu thc logic 1 " > Cc th x l khi biu thc logic 1 tha </xsl:when> <xsl:when test="Biu thc logic 2 " > Cc th x l khi biu thc logic 2 tha </xsl:when> <xsl:otherwise > Cc th x l khi tt c cc biu thc logic trn u khng tha </xsl:when> </xsl:choose> Ghi ch : Th x l trn c tc dng tng t cu trc if ( Diu kin 1 ) { .... } else if ( iu kin 2 ) { ... } ..... else { .... } V d : admincnttvn@gmail.com http://www.ebook.edu.vn Trang 115

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Chng trnh xc nh s nguyn ln nht c th thc hin theo 2 cch Cch 1 : S dng xsl:if <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="text" /> <xsl:template match="/" > <xsl:variable name="So_1" select="/GOC/SO[1]/@Gia_tri" /> <xsl:variable name="So_2" select="/GOC/SO[2]/@Gia_tri" /> S ln nht trong 2 s <xsl:value-of select="$So_1"/> v <xsl:value-of select="$So_2"/> l <xsl:if test="$So_1> $So_2" > <xsl:value-of select ="$So_1"/> </xsl:if> <xsl:if test="$So_1 &lt;=$So_2" > <xsl:value-of select ="$So_2"/> </xsl:if> </xsl:stylesheet> Cch 2 : S dng xsl:choose <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="text" /> <xsl:templatematch="/" > <xsl:variablename="So_1"select="/GOC/SO[1]/@Gia_tri" /> <xsl:variablename="So_2"select="/GOC/SO[2]/@Gia_tri" /> S ln nht trong 2 s <xsl:value-of select="$So_1"/> v <xsl:value-of select="$So_2"/> l <xsl:choose> <xsl:whentest="$So_1 > $So_2"> <xsl:value-ofselect ="$So_1"/> </xsl:when> <xsl:otherwise> <xsl:value-ofselect ="$So_2"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> 3. Vng lp Vn : Cn lp li cc x l kt xut trn mt tp hp cc nt ca ti liu Xml ngun admincnttvn@gmail.com http://www.ebook.edu.vn Trang 116

B mn Cng Ngh XML Hng gii quyt :

Cng ngh XML v ng dng

Nguyn tin Huy

S dng th xsl:for-each vi biu thc Xpath tng ng tp hp nt cn lp Th xsl:for-each ngha : Cho php lp li vic thc hin cc th x l trn tp hp cc nt l kt qu ca mt chui truy vn Xpath C php : <xsl:for-each select="Biu thc Xpath " > Cc th x l </xsl:for-each> Ghi ch : Cc th x l bn trong vng lp c th s dng biu thc Xpath theo cch nh v tng i t nt ng cnh ( nt hin hnh ) thay cho s dng nh v tuyt i V d : Vi tp tin ngun Cong_ty.xml : <?xml version="1.0" encoding="utf-8" ?> <CONG_TY Ten="Cng ty X"> <DON_VI Ten="n v A" /> <DON_VI Ten="n v B" /> <DON_VI Ten="n v C" /> <DON_VI Ten="n v D" /> </CONG_TY> Chng trnh Xuat_cong_ty.xslt sau s kt xut thng tin v cng ty cng vi cc n v ( theo dng kt xut Html ) Cng ty X Danh sch cc n v n v A n v B n v C n v D <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:template match="/" > <xsl:value-of select="/CONG_TY/@Ten"/> <br/> Danh sch cc n v <br /> <xsl:for-each select="/CONG_TY/DON_VI" > <xsl:value-of select="@Ten"/> <br /> </xsl:for-each> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 117

B mn Cng Ngh XML </xsl:template> </xsl:stylesheet> 4. Hm

Cng ngh XML v ng dng

Nguyn tin Huy

Vn : Vi tp tin Xml c cu trc phc tp hay x l kt xut phc tp. Vic t chc chng trnh Xslt ch vi mt th xsl:template duy nht ( tng t hm Main duy nht trong C#) === > Chng trnh kh vit === > Chng trnh kh c ====> Chng trnh kh bo tr ====> Cc on lnh khng ti s dng c Hng gii quyt : T chc chng trnh thnh cc phn nh vi th x l xsl:template ( tng t cc hm t nh ngha. Mi phn nh th c tn gi l tp mu v ng vai tr tng t nh hm trong ngn ng lp trnh khc Th xsl:template ngha : Cho php t chc chng trnh Xslt vi cc thnh phn nh == > D vit ==> D c == > D bo tr ===> Ti s dng C php khai bo <xsl:template match="Biu thc Xpath"> Cc th x l </xsl:template> C php "gi thc hin" <xsl:apply-templates select="Biu thc Xpath" /> C ch "gi thc hin" ( c ch so khp ) Qu trnh "gi thc hin" ( so khp ) ca th x l xsl:apply-templates nh sau Bc 1 : Lng gi biu thc Xpath ca th x l xsl:apply-templates Bc 2 : Tm khai bo xsl:template c thuc tnh match so khp ng Bc 3 : "Gi thc hin " nhiu ln cc th x l bn trong, mi ln vi mt nt ng cnh thuc danh sch c lng ca bc 1 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 118

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

V d 1 : Chng trnh xut thng tin v cng ty c th vit li nh sau <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <xsl:value-ofselect="/CONG_TY/@Ten"/> <br/> Danh sch cc n v <br /> <xsl:apply-templatesselect="/CONG_TY/DON_VI" /> </xsl:template> <xsl:templatematch="DON_VI" > <xsl:value-ofselect="@Ten"/> <br /> </xsl:template> </xsl:stylesheet> V d 2 : Vi tp tin Truong.xml c ni dung nh sau <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Trng cp 3 XXX"> <KHOITen="Khi 10" > <LOPTen="Lp 10A" /> <LOPTen="Lp 10B" /> <LOPTen="Lp 10C" /> <LOPTen="Lp 10D" /> </KHOI> <KHOITen="Khi 11" > <LOPTen="Lp 11A" /> <LOPTen="Lp 11B" /> <LOPTen="Lp 11C" /> </KHOI> <KHOITen="Khi 12" > <LOPTen="Lp 12A" /> <LOPTen="Lp 12B" /> <LOPTen="Lp 12C" /> </KHOI> </TRUONG> Chng trnh Xuat_truong.xslt sau s kt xut ( dng Html ) cc thng tin v trng ( bao gm thng tin khi, lp ) <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" />

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 119

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<xsl:template match="/" > <xsl:apply-templates select="TRUONG" /> </xsl:template> <xsl:template match="TRUONG"> <xsl:value-of select="@Ten"/> <br /> Danh sch cc khi lp <br /> <xsl:apply-templates select="KHOI" /> </xsl:template> <xsl:template match="KHOI"> <xsl:value-of select="@Ten"/> <br /> <xsl:apply-templates select="LOP" /> </xsl:template> <xsl:template match="LOP"> <xsl:value-of select="@Ten"/> <br /> </xsl:template> </xsl:stylesheet> Ghi ch : Thuc tnh select trong th xsl:apply-templates c th c b qua v khi s c hiu l select="*" ( cho lng gi l cc nt con ca nt ng cnh ) === > Mt trong cc cch n gin t chc chng trnh Xslt l t chc chng trnh theo cc loi th c trong tp tin Xml v gi thc hin (so khp ) khng cn tham s Gi thc hin : <xsl:apply-templates /> Khai bo hm/mu so khp : <xsl:template match="tn loi th" > Cc th x l </xsl:template> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="TRUONG"> <xsl:value-ofselect="@Ten"/> <br /> Danh sch cc khi lp <br /> <xsl:apply-templates /> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 120

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

</xsl:template> <xsl:templatematch="KHOI"> <xsl:value-ofselect="@Ten"/> <br /> <xsl:apply-templates /> </xsl:template> <xsl:templatematch="LOP"> <xsl:value-ofselect="@Ten"/> <br /> </xsl:template> </xsl:stylesheet>

III. Mt s k thut x l Mt s k thut x l Mc tiu : Trnh by 2 k thut c bn tng ng 2 ng dng chnh ca XML - Bin i XML ---- > HTML - Bin i XML ---- > XML 1. XML -- > HTML Mc tiu : Trnh by mt s k thut c bn cho php th hin ni dung tp tin Xml trn trang Web V d : vi tp tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> chng trnh Xslt sau s cho php th hin n thc di dng trnh by trn Web 4x6 Chng trnh Xuat_don_thuc.xslt <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:templatematch="DON_THUC" > P(x)= admincnttvn@gmail.com http://www.ebook.edu.vn Trang 121

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<xsl:value-ofselect ="@He_so" /> x <sup> <xsl:value-ofselect ="@So_mu"/> </sup> </xsl:template> </xsl:stylesheet> * XML -- > Th select Vn : Cn xut danh sch chn trn trang Web t mt danh sch cc nt ca tp tin Xml trong mt ng dng Web V d : Xut danh sch cc mt hng Xut danh sch cc n v Xut danh sch cc khi .... Hng gii quyt : S dng th select , option ca ngn ng Html .... <select> <xsl:apply-templates select="Biu thc Xpath tng ng danh sch" /> </select> .... <xsl:template match="Biu thc Xpath tng ng mt phn t trong danh sch" > <option> Th x l kt xut gi tr </option> </xsl:template> V d : Chng trnh Xslt sau s xut danh sch chn cc n v t tp tin Cong_ty.xml <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:templatematch="CONG_TY" > Danh sch n v : <select> <xsl:apply-templates /> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 122

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

</select> </xsl:template> <xsl:templatematch="DON_VI" > <option> <xsl:value-ofselect ="@Ten"/> </option> </xsl:template> </xsl:stylesheet> * XML --- > th ul,ol Vn : Cn xut danh sch trnh by ni dung v cc mc trn trn trang Web t mt nt vi nhiu nt con ca tp tin Xml trong mt ng dng Web theo dng Ni dung 1 Mc con 11 Mc con 12 .... V d : Xut ni dung cu hi trc nghim Xut t chc trng -khi - lp theo dng cy .... Hng gii quyt : S dng th ul kt hp li vi cc mc khng c th t Hay s dng th ol kt hp li vi cc mc c th t .... <ul> <xsl:apply-templates select="Biu thc Xpath tng ng danh sch" /> </ul> .... hay .... <ol> <xsl:apply-templates select="Biu thc Xpath tng ng danh sch" /> </ol> .... v <xsl:template match="Biu thc Xpath tng ng mt phn t trong danh sch" > <li> Th x l kt xut gi tr </li> </xsl:template> V d 1: Gi s c tp tin Cau_hoi.xml vi ni dung nh sau admincnttvn@gmail.com http://www.ebook.edu.vn Trang 123

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<?xmlversion="1.0"encoding="utf-8" ?> <CAU_HOINoi_dung="Nc Vit Nam hnh ch g ?"> <CHON_LUANoi_dung="Ch M" /> <CHON_LUANoi_dung="Ch S" /> <CHON_LUANoi_dung="Ch K" /> <CHON_LUANoi_dung="Ch R" /> </CAU_HOI> Chng trnh Xslt sau s trnh by cu hi trn Web Cu hi trc nghim Nc Vit Nam hnh ch g ? Ch M Ch S Ch K Ch R <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> <body> Cu hi trc nghim <br /> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:templatematch="CAU_HOI" > <ol > <xsl:value-ofselect ="@Noi_dung" /> <xsl:apply-templates /> </ol> </xsl:template> <xsl:templatematch="CHON_LUA" > <li> <xsl:value-ofselect ="@Noi_dung" /> </li> </xsl:template> </xsl:stylesheet>

V d 2 : Chng trnh Xslt sau s trnh by t chc cc khi lp ca mt trng theo dng cy phn cp <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 124

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:templatematch="TRUONG" > <ul > <xsl:value-ofselect ="@Ten" /> <xsl:apply-templates /> </ul> </xsl:template> <xsl:templatematch="KHOI" > <ul > <xsl:value-ofselect ="@Ten" /> <xsl:apply-templates /> </ul> </xsl:template> <xsl:templatematch="LOP" > <ul > <xsl:value-ofselect ="@Ten" /> <xsl:apply-templates /> </ul> </xsl:template> </xsl:stylesheet> * XML -- > Th Table Vn : Cn xut danh sch dng li trn trang Web t mt danh sch cc nt ca tp tin Xml trong mt ng dng Web V d : Xut danh sch cc mt hng : tn , n gi Xut danh sch cc nhn vin : H tn , Ngy sinh , Gii tnh Xut danh sch cc mn hc : tn mn , S tit LT, S tit thc hnh .... Hng gii quyt : S dng th table , tr, td ca ngn ng Html .... <table> <xsl:apply-templates select="Biu thc Xpath tng ng danh sch" /> </table> .... <xsl:template match="Biu thc Xpath tng ng mt phn t trong danh sch" > <tr> <td> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 125

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Th x l kt xut gi tr ti ct th 1 </td> <td> Th x l kt xut gi tr ti ct th 12 </td> ..... </tr> </xsl:template> V d : Chng trnh Xslt sau s xut bng n gi thu phng t tp tin Bang_don_gia.xml <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="html" /> <xsl:templatematch="/" > <html> <body> <divalign="center"> Bng n gi thu phng <br /> <xsl:apply-templates /> </div> </body> </html> </xsl:template> <xsl:templatematch="BANG_DON_GIA" > <tableborder="2"> <tr> <td> Loi phng </td> <td> n gi </td> </tr> <xsl:apply-templates /> </table> </xsl:template> <xsl:templatematch="LOAI_PHONG" > <tr> <td> <xsl:value-ofselect ="@Ten"/> </td> <td> <xsl:value-ofselect ="@Don_gia"/> </td> </tr> </xsl:template> </xsl:stylesheet> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 126

B mn Cng Ngh XML 2. XML --- > XML

Cng ngh XML v ng dng

Nguyn tin Huy

Mc tiu : Trnh by mt s k thut c bn cho php to ti liu Xml mi da trn mt ti liu Xml c - Trch rt thng tin - Ti cu trc * To nt v thuc tnh Vn : Cn to th mi X cng vi cc thuc tnh trong tp tin xml kt xut Hng gii quyt : Cch 1 : To lp trc tip th mi X trong chng trnh Xslt ( tng t nh sao5n tho tp tin XML Cch 2 : S dng cc th x l xsl:element , xsl:attribute Th xsl:element ngha : Cho php to th mi trong tp tin Xml kt xut C php : <xsl:element name="Ten_the" > Cc th x l to thuc tnh ( nu c ) Cc th khc </xsl:element> Th xsl:attribute ngha : Cho php to thuc tnh ca mt th trong tp tin Xml kt xut C php : <xsl:element name="Ten_the" > <xsl:attribute name="ten_thuoc_tinh" > Th x l kt xut gi tr ca thuc tnh </xsl:attribute> Cc th khc </xsl:element> Vi d : Chng trnh Xslt sau y bin i tp tin Phieu_thu.xml vi tp tin Xml kt xut c cc nt con tng ng cc thuc tnh <?xmlversion="1.0"encoding="utf-8" ?> <PHIEU_THUKhach_hang="Trn vn Long" Ngay_thu="11/2/2007" So_tien="40000" > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 127

B mn Cng Ngh XML </PHIEU_THU>

Cng ngh XML v ng dng

Nguyn tin Huy

Chng trnh Xslt <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="PHIEU_THU" > <xsl:variablename="Ngay_thu"select ="@Ngay_thu" /> <xsl:variablename="So_tien"select ="@So_tien" /> <xsl:variablename ="Ten"select ="@Khach_hang" /> <PHIEU_THUNgay_thu="{$Ngay_thu}" So_tien="{$So_tien}"> <KHACH_HANGTen="{$Ten}" /> </PHIEU_THU> </xsl:template> </xsl:stylesheet> * Sao chp nt Vn : Cn to th kt xut trong tp tin xml kt xut c cng tn v cc thuc tnh vi th trong tp tin ngun Hng gii quyt : Cch 1 : S dng cc th x l xsl:element , xsl:attribute Cch 2 : S dng cc th x l xsl:copy , xsl:attribute Th xsl:copy ngha : Cho php sao chp th t tp tin xml ngun ( vi nt ng cnh tng ng th ) sang tp tin xml kt xut C php : <xsl:copy > Cc th x l to thuc tnh ( nu c ) Cc th khc </xsl:copy> Kt hp vi xsl:attribute sao chp th - thuc tnh <xsl:copy > <xsl:for-each select="@*" > <xsl:attribute name="{name()}" > admincnttvn@gmail.com http://www.ebook.edu.vn Trang 128

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<xsl:value-of select="." /> </xsl:attribute> </xsl:for-each> </xsl:copy> V d 1: Chng trnh sau trch danh sch cc khi ca tp tin truong.xml <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="TRUONG" > <xsl:copy > <xsl:attributename="Ten" > <xsl:value-ofselect="@Ten"/> </xsl:attribute> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:templatematch="KHOI" > <xsl:copy > <xsl:attributename="Ten" > <xsl:value-ofselect="@Ten"/> </xsl:attribute> </xsl:copy> </xsl:template> </xsl:stylesheet> Vi d 2 : Chng trnh Xslt sau cho php bin i tp tin Xml bt k theo qui tc : Tt c thuc tnh s bin thnh th con <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="*" > <xsl:copy > <xsl:for-eachselect="@*" > <xsl:elementname="{name()}" > <xsl:value-ofselect="."/> </xsl:element> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 129

B mn Cng Ngh XML </xsl:for-each> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet>

Cng ngh XML v ng dng

Nguyn tin Huy

* Sao chp nt - thuc tnh - nt con Vn : Cn sao chp ton b th X , tt c thuc tnh ca X, tt cc th con mi cp ca X trong tp tin xml ngun vo tp tin Xml kt xut Hng gii quyt : Cch 1 : S dng cc th x l xsl:copy , xsl:attribute Cch 2 : S dng th x l xsl:copy-of Th xsl:copy-of ngha : Cho php sao chp ton b th X , tt c thuc tnh ca X, tt cc th con mi cp ca X trong tp tin xml ngun vo tp tin Xml kt xut C php : <xsl:copy-of select="Biu thc Xpath" /> Vi d : Cho tp tin xml Bang_phan_cong.xml <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Trng X" > <MONTen="Ton"> <GIAO_VIENTen="Trn vn Minh" > <LOPTen="10A1" /> <LOPTen="11A1" /> <LOPTen="12A1" /> </GIAO_VIEN> <GIAO_VIENTen="Trn vn Lc" > <LOPTen="10B1" /> <LOPTen="11B1" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen="Trn vn Hng" > <LOPTen="10B2" /> <LOPTen="11A3" /> <LOPTen="12B2" /> </GIAO_VIEN> </MON> <MONTen="L"> <GIAO_VIENTen="L vn Sn" > <LOPTen="10A1" /> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 130

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

<LOPTen="11B1" /> <LOPTen="12C1" /> </GIAO_VIEN> <GIAO_VIENTen="Nguyn th b Nh" > <LOPTen="10B1" /> <LOPTen="11B2" /> <LOPTen="12B1" /> </GIAO_VIEN> </MON> <MONTen="Ha"> <GIAO_VIENTen="Ng th Bch" > <LOPTen="10B1" /> <LOPTen="11B1" /> <LOPTen="12C1" /> </GIAO_VIEN> <GIAO_VIENTen="L vn Ln" > <LOPTen="10A1" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen=" th Tuyt" > <LOPTen="10B2" /> <LOPTen="11A3" /> <LOPTen="12B2" /> </GIAO_VIEN> </MON> <MONTen="Sinh"> <GIAO_VIENTen="Nguyn hng Cng"> <LOPTen="10A1" /> <LOPTen="11A1" /> <LOPTen="12A1" /> </GIAO_VIEN> <GIAO_VIENTen="L vn Tng" > <LOPTen="11A2" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen="Nguyn th p" > <LOPTen="11B2" /> <LOPTen="11A3" /> <LOPTen="11B3" /> </GIAO_VIEN> </MON> </TRUONG>

on chng trnh sau cho php ti cu trc tp tin Bang_phan_cong.xml vi th MON chuyn thnh admincnttvn@gmail.com http://www.ebook.edu.vn Trang 131

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

thuc tnh Bo_mon ca th GIAO_VIEN <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="TRUONG" > <xsl:copy > <xsl:attributename="Ten" > <xsl:value-ofselect="@Ten"/> </xsl:attribute> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:templatematch="GIAO_VIEN" > <xsl:copy > <xsl:attributename="Ten" > <xsl:value-ofselect="@Ten"/> </xsl:attribute> <xsl:attributename="Bo_mon" > <xsl:value-ofselect="../@Ten"/> </xsl:attribute> <xsl:copy-ofselect="LOP"/> </xsl:copy> </xsl:template> </xsl:stylesheet> * Sp th t cc nt Vn : Cn sp th t danh sch cc th X ca tp tin xml kt xut Hng gii quyt : S dng th x l xsl:sort kt hp vi xsl:apply-templates Th xsl:sort ngha : Cho php sp th t danh sch cc th X ca tp tin xml kt xut C php : Sp tng <xsl:sort order="accending" select="Thuc tnh" /> Sp gim <xsl:sort order="descending" select="Thuc tnh" /> Kt hp vi xsl:apply-templates tin hnh sp th t cc kt qu sau khi thc hin so admincnttvn@gmail.com http://www.ebook.edu.vn Trang 132

B mn Cng Ngh XML khp cc hm/mu

Cng ngh XML v ng dng

Nguyn tin Huy

<xsl:apply-templates select="Biu thc Xpath" > <xsl:sort order="...." select="...." /> <xslsort order="...." select="...." /> ...... </xsl:aplly-templates> V d : Vi tp tin Xml Ket_qua_Olympic.xml <?xmlversion="1.0"encoding="utf-8" ?> <KET_QUA> <QUOC_GIATen="AAA"So_vang="10"So_bac="7"So_dong="2" /> <QUOC_GIATen="XXX"So_vang="6"So_bac="0"So_dong="12" /> <QUOC_GIATen="BBB"So_vang="10"So_bac="8"So_dong="13" /> <QUOC_GIATen="DDD"So_vang="4"So_bac="17"So_dong="0" /> <QUOC_GIATen="MMM"So_vang="6"So_bac="1"So_dong="0" /> <QUOC_GIATen="KKK"So_vang="6"So_bac="0"So_dong="2" /> <QUOC_GIATen="LLL"So_vang="10"So_bac="4"So_dong="23" /> <QUOC_GIATen="PPP"So_vang="3"So_bac="27"So_dong="100" /> </KET_QUA> on chng trnh XSL sau sp xp cc quc gia gim dn theo th t u tin - u tin 1 : S huy chng vng - u tin 2 : S huy chng bc - u tin 3 : S huy chng ng <?xmlversion="1.0"encoding="UTF-8" ?> <xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:outputmethod ="xml"indent="yes" /> <xsl:templatematch="/" > <xsl:apply-templates /> </xsl:template> <xsl:templatematch="KET_QUA" > <xsl:copy > <xsl:apply-templates select ="QUOC_GIA"> <xsl:sort order="descending"data-type="number"select="@So_vang" /> <xsl:sort order="descending"data-type="number"select="@So_bac" /> <xsl:sort order="descending"data-type="number"select="@So_dong" /> </xsl:apply-templates> </xsl:copy> </xsl:template> <xsl:templatematch="QUOC_GIA" > <!--<xsl:copy-of select="."/>--> <xsl:copy > <xsl:copy-ofselect ="@*"/> </xsl:copy> admincnttvn@gmail.com http://www.ebook.edu.vn Trang 133

B mn Cng Ngh XML </xsl:template> </xsl:stylesheet> IV. Bi tp 1. XML --- > HTML * Tch 2 phn s Yu cu :

Cng ngh XML v ng dng

Nguyn tin Huy

Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v 2 phn s - Kt xut : Trang Web th hin kt qu nhn 2 phn s V d : vi phn s 4/7, 5/11 Kt xut s l Kt qu tnh tch 2 phn s 1/7 v 5/11 4/7*5/11=20/77 * Phng trnh ng thng Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v cc h s ca phng trnh ng thng trong mt phng - Kt xut : Trang Web th hin kt qu l phng trnh ng thng V d : Vi gi tr cc h s 2,3,4 Kt xut s l : Phng trnh ng thng 2x + 3y + 4=0 Vi gi tr cc h s 7,-3 Kt xut s l : Phng trnh ng thng 7x - 3y =0 * Phng trnh ng trn Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v ta tm v bn knh ca mt ng trn - Kt xut : Trang Web th hin kt qu l phng trnh ng trn V d : Vi gi tr cc ta tm 4,5 v bn knh 3 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 134

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

Kt xut s l : Phng trnh ng trn (x-4)2 + (y-5) 2 = 9 Vi gi tr cc ta tm -2,3 v bn knh 7 Kt xut s l : Phng trnh ng trn (x + 2 )2 + (y-3) 2 = 49 * trc nghim Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v trc nghim - Kt xut : Trang Web th hin trc nghim * H s hc sinh Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v h s hc sinh bao gm : H v tn , gii tnh, ngy sinh , a ch - Kt xut : a) Trang Web th hin h s hc sinh dng xem b) Trang Web th hin h s hc sinh dng nhp liu ( cp nht) * Bng xp hng Olympic Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin kt qu thi u Olympic cc quc gia - Kt xut : a) Trang Web th hin bng kt qu thi u b) Trang Web cho php cp nht s huy chng vng, bc, ng 2. XML - XML * H s nhn vin Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin v h s nhn vin vi + Thng tin bao gm : H v tn, Gii tnh , Ngy sinh, a ch , n v + Tt c cc thng tin u biu din di dng th con - Kt xut : Tp tin Xml a) Tt c cc thng tin u biu din dng thuc tnh b) Tt c cc thng ngoi tr n v u biu din dng thuc tnh admincnttvn@gmail.com http://www.ebook.edu.vn Trang 135

B mn Cng Ngh XML * Trng - khi - lp Yu cu :

Cng ngh XML v ng dng

Nguyn tin Huy

Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin t chc trng , cc khi ca trng, cc lp ca khi - Kt xut : a) Tp tin Xml ch bao gm cc lp c s s trn 30 b) Tp tin Xml ch bao gm cc khi c hn 5 lp * Bng phn cng gio vin Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin bng phn cng cc gio vin ca mt trng - Kt xut : a) Tp tin Xml ch bao gm danh sch cc b mn cng vi s lng cc gio vin b) Tp tin Xml ch bao gm danh sch cc gio vin c phn cng dy trn 2 lp * Cy s nguyn Yu cu : Vit chng trnh XSLT cho php to kt xut t d liu ngun - D liu ngun : Tp tin xml biu din thng tin cy cc s nguyn - Kt xut : a) Tp tin Xml ch bao gm danh sch cc nt l b) Tp tin Xml ch bao gm danh sch cc nt c gi tr t 1 n 10 c) Tp tin Xml l tp tin ngun sau khi b i cc nt l d) Tp tin Xml l tp tin ngun sau khi b i tt c cc nt con cp 1 ( con ca gc ) e) Tp tin Xml l tp tin ngun sau khi sp th t tng cc nt cng cha

n
Mc tiu : Gip sinh vin - C c hi n tp, rn luyn cc k thut lin quan XML - C c hi tm hiu v s dng tt ngn ng lp trnh - Rt cc kinh nghim khi xy dng ng dng thc t im s : n l ty chn, sinh vin khng bt buc phi ng k. Vi cc sinh vin ng k im s ca n s c cng vo im thi cui mn === > im thi cui mn s l 10 + n vi -2<=n <=2 admincnttvn@gmail.com http://www.ebook.edu.vn Trang 136

B mn Cng Ngh XML

Cng ngh XML v ng dng

Nguyn tin Huy

ng k v khng np bi n =-2 === > Cn suy nh trc khi ng k Yu cu chung : Vit mt chng trnh ng dng vi cc chc nng c yu cu Kt qu np : 1. Bo co vit v h s thit k ( tp tin Word ) 2. Chng trnh ngun 3 . Chng trnh bin dch cng vi cc d liu th nghim Thi hn : - Hn cht ng k : Ngy 1/10/2007. Sinh vin ng k n no s chn mc tho lun v cho kin v vic ng k - Hn cht np kt qu : S c thng bo sau ( d kin trong tun l thi ) Lu : - 1 sinh vin trn 1 n - C th s c vn p trc tip vi gio vin khi np n nhm xc nh chnh xc ngi thc hin 1. D mn Cc yu cu chc nng : 1. nh c ( chc nng chnh tng ng vic x l vic chn v tr ca ngi dng ) 2. Ghi bn c vo tp tin 3. c bn c ghi 2. Bn v tu ha Cc yu cu chc nng : 1. Tnh tin bn v 2. Qun l ( thm,xa,sa ) cc ga 3. Cp nht bng n gi 3. nh c caro Cc yu cu chc nng : 1. nh c ( chc nng chnh tng ng vic x l vic i c ca ngi dng ) 2. Ghi bn c vo tp tin 3. c bn c ghi 4. nh c tng Cc yu cu chc nng : 1. nh c ( chc nng chnh tng ng vic x l vic i c ca ngi dng ) 2. Ghi bn c vo tp tin 3. c bn c ghi admincnttvn@gmail.com http://www.ebook.edu.vn Trang 137

B mn Cng Ngh XML 5. Tr chi ch

Cng ngh XML v ng dng

Nguyn tin Huy

Cc yu cu chc nng : 1. c v on ch c lu tr trn 1 tp tin 2. Son tho v ghi ch vo tp tin 6. Tr chi Sudoku Cc yu cu chc nng : 1. c v gii ma trn Sudoku c lu tr trn 1 tp tin 2. Son tho ma trn Sudoku v ghi vo tp tin 7. Rng vng Cc yu cu chc nng : 1. Sp xp cc t ( vng 1 ca tr chi ) 2. Tr li cc cu ( vng 2 ) 2. Son tho cu ( vng 1 , 2 ) The End

admincnttvn@gmail.com

http://www.ebook.edu.vn

Trang 138

You might also like