You are on page 1of 133

Cng ngh XML v ng d ng

2007

cng
1. M c tiu - Cung c p cc ki n th c c b n v cng ngh XML - Rn luy n cc k nng l p trnh x l trn ti li u XML == > ng d ng t t cc cng ngh DTD, DOM, XSLT trong qu trnh thi t k v th c hi n ph n m m

2. N i dung Chng 1 : M u 1. Cc v d m u 2. Ti li u XML 3. Cng ngh XML 4. Gi i thi u v DOM Chng 2 : c t c u trc v n i dung ti li u XML 1. Cc khi ni m 2. c t c u trc ti li u XML v i DTD 3. c t c u trc ti li u XML v i Xml-Schema Chng 3 : Truy xu t ti li u XML v i DOM 1. Gi i thi u chung v DOM 2. Cc thao tc c b n 3. Ngn ng XPath 4. DOM v cc cng ngh khc Chng 4 : Bi n i ti li u XML v i XSLT 1. Gi i thi u chung v XSLT 2. H th ng cc th c b n 3. Mi tr ng th c hnh Visual Studio.NET 2005 4. Ti li u tham kh o - Sch : Sch v mi tr ng Visual Studio.NET ( ph n lin quan XML ) Sch k thu t lin quan XML,DOM,Xpath,XSLT - Gio trnh : Gio trnh "Cng ngh XML v ng d ng " - Nguy n ti n Huy 5. Thi Thi l thuy t : 5 i m Thi th c hnh : 5 i m

Chng 1 : M u
Gi i thi u chung v chng 1 I. Cc v d m u M c tiu : - Minh h a vi c s d ng t p tin Xml lu tr thng tin cc i t ng trong th c t - M u cho vi c trnh by cc khi ni m v ti li u Xml cng v i nh chu n Xml 1. Phn s T p tin Phan_so.xml bi u di n 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 T p tin Day_so.xml bi u di n 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 T p tin Duong_tron.xml bi u di n thng tin v ng trn C c t m 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. B ng n gi thu phng T p tin Bang_don_gia.Xml bi u di n thng tin v b ng n gi thu phng c a khch s n <?xml version="1.0" encoding="utf-8" ?> <KHACH_SAN Ten="X" Dia_chi="123 ABC" > <LOAI_PHONG Ten="Lo i A" Don_gia="280000" /> <LOAI_PHONG Ten="Lo i B" Don_gia="240000" /> <LOAI_PHONG Ten="Lo i C" Don_gia="180000" />

<LOAI_PHONG Ten="Lo i c bi t" Don_gia="320000" /> </KHACH_SAN> 5. B ng t gi T p tin Bang_ty_gia.xml bi u di n thng tin b ng t gi cc ngo i t <?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="B ng 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. K t qu x s T p tin Ket_qua_xo_so.xml bi u di n thng tin k t qu x s t nh Bnh thu n <?xml version="1.0" encoding="utf-8" ?> <KET_QUA Ngay="14/6/2007" Tinh="Bnh Thu n" > <GIAI Ten="Gi i tm" > <SO Gia_tri="98" /> </GIAI> <GIAI Ten="Gi i b y" > <SO Gia_tri="709" /> </GIAI> <GIAI Ten="Gi i su" > <SO Gia_tri="6137" /> <SO Gia_tri="0429" /> <SO Gia_tri="1351" /> </GIAI> <GIAI Ten="Gi i nm" > <SO Gia_tri="1268" /> </GIAI> <GIAI Ten="Gi i b n" > <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="Gi i ba" > <SO Gia_tri="20579" /> <SO Gia_tri="49194" /> </GIAI>

<GIAI Ten="Gi i nh" > <SO Gia_tri="54621" /> </GIAI> <GIAI Ten="Gi i nh t" > <SO Gia_tri="58998" /> </GIAI> <GIAI Ten="Gi i c bi t" > <SO Gia_tri="02700" /> </GIAI> </KET_QUA> 7. M ch i n T p tin Mach_dien.xml bi u di n thong tin v m ch i n v i cc i n 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>

II. Ti li u XML M c tiu : - Trnh by khi ni m v ngha s d ng c a ti li u Xml - Trnh by chi ti t v nh chu n Xml 1. Khi ni m v ti li u XML Vn b n c c u trc theo nh chu n XML cho php bi u di n thng tin v cc i t ng trong th c t

i t ng x thu c lo i X trong th c t ==== > Th X trong ti li u Xml Thu c tnh a c a i t ng x thu c lo i X trong th c t === > Thu c tnh a c a th X trong ti li u Xml V d 1 : Phn s 4/5 trong th c t == > Th <PHAN_SO Tu_so="4" Mau_so="5" /> V d 2 : Dy cc s nguyn a bao g m 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 chu n XML * Qui nh 1 : H th ng cc th nh d u Cc th nh d u trong ngn ng theo nh chu n XML ch bao g m 2 lo i : Th c n i dung v th r ng. Cc th c n i dung c d ng <Tn> N i dung </Ten> Cc th r ng c d ng <Tn /> Cc th (ni chung ) c th c ho c khng cc thu c tnh v i cc tn khc nhau ( trong cng th ). Thu c tnh trong m t th c d ng Ten_thuoc_tinh=Gia_tri Hay Ten_thuoc_tinh=Gia_tri V d : v i ti li u XML <?xml version="1.0" encoding="utf-8"?> <DUONG_TRON Ban_kinh="5"> <DIEM x="4" y="2"/> </DUONG_TRON>

Th Th Th Th

c n i dung l th DUONG_TRON r ng l th DIEM DUONG_TRON c 1 thu c tnh l Ban_kinh DIEM c 2 thu c tnh l x, y

* Qui nh 2 : Quan h l ng nhau ( ch a trong ) gi a cc th c n i dung N i dung bn trong th c n i dung c th l cc th khc ( c n i dung hay r ng). Khi th A c n i dung l th B ta g i Th A l th cha c a B , th A ch a th B Th B l th con c a A, th B u c ch a trong A Qui nh 2 yu c u cc th v i quan h l ng nhau hon ton. Khi th A l th cha c a th B, A ph i ch a ph n b t u v c ph n k t thc c a B V d : Th A l th cha c a B v i d ng l ng nhau hon ton ( h p l ) <A> <B> .</B> </A> Th A l th cha c a B v i d ng l ng nhau khng hon hon ton ( khng h p l ) <A> <B> .</A> </B> * Qui nh 3 : Th nh d u g c Qui nh 3 yu c u ti li u XML ph i c duy nh t ( m t v ch m t) th ch a ( tr c ti p hay gin ti p ) t t c cc th cn l i ( n u c ) V d : Ti li u XML sau bi u di n thng tin 2 u ng trin l khng h p l v khng c th g c <?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 M c tiu : - Trnh by khi ni m v ngha c a cng ngh Xml - Trnh by cc kh nng ng d ng c b n c a cng ngh Xml 1. Khi ni m v cng ngh Xml

N i dung - M t tm t t v cc lo i cng ngh trong lnh v c cng ngh thng tin - Trnh by qu trnh hnh thnh c a cng ngh Xml v quan h v i cc lo i cng ngh khc a. Cng ngh thng tin - Ngnh khoa h c ngin c u v vi c xy d ng cc h th ng tin h c tng ng v i h th ng th c t - Ngnh khoa h c nghin c u v vi c bi u di n v x l thng tin c a h th ng tin h c tng ng v i cc thng tin v nghi p v c a h th ng th c t Hai h ng nghin c u chnh trong Cng ngh thng tin - Cng ngh ph n c ng - Cng ngh ph n m m * Cng ngh x l thng tin - M t trong cc h ng nghin c u chnh c a cng ngh ph n m m - Ngnh khoa h c nghin c u v cc m hnh, phng php, k thu t x l thng tin Cc m hnh x l (chung) chnh trong Cng ngh x l thng tin - Th t c/Hm (Procedure/Function) - n th (Module) - i t ng (Object) - Thnh ph n (Component) - D ch v (Service) - . * Cng ngh bi u di n thng tin - M t trong cc h ng nghin c u chnh c a cng ngh ph n m m - Ngnh khoa h c nghin c u v cc m hnh, phng php, k thu t bi u di n thng tin Cc m hnh bi u di n (chung) chnh trong Cng ngh bi u di n thng tin - T p tin (File) : Thng tin lu tr trn b nh ph - C s d li u ( Database) : Thng tin lu tr trn b nh ph - C u trc d li u (Data Structure) : Thng tin x l trong b nh chnh - Trang Web (WebPage) : Thng tin th hi n - Lu ng d li u (Data Stream) : Thng tin trao i n i b bn trong m t h th ng tin h c hay gi a cc cc h th ng tin h c - . b. Cng ngh Xml Khi ni m v Cng ngh XML - Thu c lo i cng ngh bi u di n thng tin - Hnh thnh t nhu c u v v n c n gi i quy t c a vi c trao i thng tin - C ph m vi nghin c u v ng d ng trn t t c m hnh bi u di n c a cng ngh bi u di n thng tin - C h ng nghin c u cho php ng d ng m t m hnh x l thng tin m i thu c v cng ngh x l thng tin

* Nhu c u trao i thng tin 1. Trao i thng tin n i b bn trong h th ng tin h c S pht tri n v qui m, ph c t p, ph m vi s d ng c a cc h th ng tin h c d n n s phn r h th ng c n xy d ng thnh cc h th ng con ( ki n trc a t ng l m t v d i n hnh v s phn r nh th ) === > Nhu c u v trao i thng tin bn trong cc h th ng con 2. Trao i thng tin gi a cc h th ng tin h c - S pht tri n c a Internet v cc ng d ng trn Web , c bi t l cc ng d ng trong lnh v c thng m i i n t ==== > Nhu c u v trao i thng tin gi a cc ng d ng ny - Cc yu c u cao v ch t l ng ph n m m ( Ti n d ng, Tng thch, B o m t, v.v) kh nng p ng cao, chuyn bi t c a m t s h th ng s n c (WebBrowser, Excel, Word, Fax, v.v) ==== > Nhu c u v trao i thng tin gi a h th ng ang xy d ng v cc h th ng c s n * M hnh trao i thng tin M hnh trao i thng tin tr c khi XMl ra i ch y u d a trn cng ngh v lu ng d li u ( Data Stream ) v i 2 d ng chnh D ng nh phn : D li u trao i l chu i cc byte theo m t c u trc v ng ngha ring bi t c a t ng ng d ng D ng vn b n : D li u trao i l chu i cc k t theo cch m ha chung nhng c u trc v ng ngha v n l ring bi t cho t ng ng d ng C 2 d ng trao i trn u khng thch h p v i cc nhu c u pha trn v i cng khuy t i m : "Thng tin c n trao i c c u trc v ng ngha ring bi t theo t ng ng d ng " === > Nhu c u v m t nh chu n chung khi trao i thng tin * S ra i c a Cng ngh XML Cng ngh XML ra i l k t qu c a cc nghin c u v d ng bi u di n thng tin khi c n trao i gi a cc h th ng tin h c. D ng bi u di n c n th a m n cc yu c u sau 1) Cho php trao i trn ph m vi r ng ( Internet) 2) D dng trong vi c k t xu t v ti p nh n khi trao i 3) Tun theo m t nh chu n chung c ch p nh n v h tr c a nhi u mi tr ng pht tri n ph n m m Ghi ch : Cng ngh XML ra i v xu t m t d ng bi u di n thch h p cho cc yu c u trn ( ti li u XML). Tuy nhin v i b n ch t hnh thnh c a mnh, ph m vi ng d ng c a cc ti li u XML khng ch d ng vi c trao i thng tin m bao hm c cc v n bi u di n thng tin khc nh : Lu tr thng tin , c u trc d li u , th hi n thng tin , v.v.. ( chi ti t trong ph n ng d ng c a XML) 2. M t s ng d ng c a cng ngh Xml N i dung : Trnh by cc h ng ng d ng chnh c a cng ngh Xml

* Trao i thng tin ng d ng Xml trong vi c trao i thng tin Trao i thng tin l xu t pht i m cho s hnh thnh c a cng ngh XML. Trao i thng tin l ng d ng chnh y u nh t c a XML C 2 d ng trao i thng tin chnh D ng 1 : Trao i thng tin n i b gi a cc thnh ph n c a cng h th ng tin h c D ng 2 : Trao i thng tin gi a cc h th ng tin h c khc nhau XML c th ng d ng t t cho c 2 d ng trao i thng tin trn

A c nhu c u trao i thng tin v i B D ng 1 : A, B l 2 thnh ph n bn trong m t h th ng tin h c ( giao di n hay x l hay lu tr ) Ti li u XML u c thi t k cho vi c s d ng n i b D ng 2 : A l h th ng tin h c ang xem xt B l h th ng c tr c v i kh nng chuyn bi t no A ph i s d ng ti li u XML c c u trc do do B xu t V d : XML c th c s d ng Trao i thng tin gi a cc t ng c a m t ng d ng u c thi t k theo m hnh ki n trc a t ng Trao i thng gi a m t t ng v i h th ng khc bn ngoi C th c th - S d ng XML trao i thng tin gi a h th ng lu tr d li u ( thng th ng l h qu n tr c s d li u ) v t ng x l lu tr d li u - S d ng XML trao i thng tin gi a t ng d li u v t ng x l nghi p v - S d ng XML trao i thng tin gi a t ng x l nghi p v v t ng th hi n - S d ng XML trao i thng tin gi a cc t ng x l nghi p v ( khi h th ng c nhi u t ng x l nghi p v ) * Lu tr thng tin ng d ng Xml trong vi c lu tr thng tin

C 3 cch ng d ng chnh c a XML lu tr d li u bn trong h th ng tin h c Cch 1 : Ch s d ng cc t p tin XML lu tr d li u Cch 2 : M t s d li u lu tr d i d ng t p tin XML, m t s khc lu tr bn trong c s d li u Cch 3 : Lu tr ton b bn trong c s d li u, ti li u XML khi u c nhng vo n i dung cc b ng d li u Cch 1 : u i m chnh : Khng c n s h tr c a cc h qu n tr c s d li u == > D ci t, tri n khai Khuy t i m chnh : Tnh hi u qu khng cao khi kh i l ng d li u l Nh n xt :

Cc ph n m m tr chi l ng vin t t cho ng d ng XMl theo cch 1 Cc ph n m m qu n l khng thch h p cho cch ng d ng ny R t thch h p cho cc ng d ng trn cc m i tr ng tin h c khng c (ho c cha c ) h qu n tr c s d li u nh : i n tho i di ng, My cng c , v.v Cch 2, 3 : u i m chnh : C th k t h p t t u i m c a c 2 m hnh lu tr thng tin : XML , C c d li u Khuy t i m chnh : C n c s cn nh c v quy t nh ng n lo i thng tin no s ng hnh th c lu tr no Nh n xt : Cch 2 l cch s d ng ph bi n nh t hi n nay C u hnh c a h th ng tin h c ( phn h ng d ng ) l lo i thng tin th ng c ch n lu tr theo d ng ti li u XML * C u trc d li u ng d ng Xml v i cc c u trc d li u V i m hnh DOM ( u c gi i thi u tm t t trong ph n k ti p v chi ti t trong chng 3 ), c th s d ng ti li u XMLnh m t lo i c u trc d li u ng v i nhi u u i m c/Ghi d dng Cc c u trc d li u ng nh M ng ng ( Dynamic Array), Xu (List ), Ngn x p ( Stack), Hng i ( Queue), Cy (Tree), c nhi u tnh nng t t trong vi c bi u di n v x l thng tin trong b nh chnh. Tuy nhin vi c c/ghi thng tin c a cc c u trc d li u ny t /vo b nh ph ( thng th ng thng qua t p tin ) l khng n gin v th ng ph i th c hi n gin ti p v i m t b c ghi. Ti li u XML c th s d ng ci t l i h u h t cc c u trc d li u ng trn ( v i m t s ch c nng b sung vo DOM qua c ch k th a hay bao b c c a h ng i t ng !!!) v c bi t l vi c c/ghi r t d dng ( thng th ng ch l m t l nh g i hm n gin ) V d : V i VB.NET c ti li u XML Tai_lieu.Load(Ten_tap_tin_XML) ghi ti li u XML Tai_lieu.Save (Ten_tap_tin_XML) Kh nng truy v n cao Vi c truy v n cc thnh ph n/t p h p thnh ph n c a cc c u trc d li u ng pha trn thng th ng ph i thng qua cc vng l p duy t n t ng ph n t . V i ti li u XML, c th s d ng ngn ng truy v n Xpath truy xu t n thnh ph n/t p h p thnh ph n m t cch r t d dng ( v thng th ng cng ch thng qua m t l nh g i hm n gin )

V d : V i VB.Net , gi s c Tai_lieu tng ng thng tin v cy cc s nguyn. l p danh sch cc nt ( thnh ph n c a cy ) c gi tr dng Nut_duong=Tai_lieu.SelectNodes(//Phan_tu[@Gia_tri >0]) * X l thng tin

Ung d ng Xml khi x l thng tin Nh trnh by trong cc ph n trn , cng ngh XML u c x p vo lo i cng ngh bi u di n thng tin, v nh th cc h ng ng d ng chnh c a XML u nh m vo gi i quy t/ c i ti n cc v n v bi u di n thng tin trn cc lo i hnh bi u di n khc nhau. Tuy nhin m t trong cc kh nng ng d ng kh th v v c nhi u h a h n s pht tri n m nh trong tng l i lin quan n cng ngh x l thng tin v i vi c xu t m t m hnh x l thng tin m i theo h ng c t thay v l p trnh ( chi ti t v h ng ng d ng ny u c trnh by chi ti t trong chng cu i ) t ng xu t pht t vi c ti li u XML cho php bi u di n r t t t cc vn b n c c u trc. V chng trnh ngu n trong cc ngn ng l p trnh cng l cc vn b n c c u trc. C nn hay khng ? t o ra m t ngn ng l p trnh m i tng t nh ngn ng l p trnh hi n nay nhng v i cc t kha l cc th nh d u ( v d <for> .</for>, <function>.<function> ) Cu tr l i r t ti c l khng, v l p trnh trn m t ngn ng nh th l r t kh khn, khng t nhin theo cc thu t gi i xu t. t ng v m t ngn ng l p trnh m i theo nh chu n XML khng thnh cng, nhng n y thay v s d ng ngn ng l p trnh m l i s d ng ngn ng c t ( ch m t m khng i vo chi ti t thu t gi i) th k t qu c u c r t kh quan. Ngn ng c t XSLT ra i trong b i c nh nh th .) V i XSLT c th xy d ng m t chng trnh theo h ng c t v i cc th x l c ng ngha r t cao (m c bi t l m t c ch m i v vng l p) v tnh d mang chuy n t t nh t c th c ( v y l ngn ng XML ). XSLT cn c nhi u c tnh th v khc s u c trnh by chi ti t trong chng cu i

IV. Gi i thi u v DOM Khi ni m v DOM (Document Object Model) M hnh i t ng cho php x l trn ti li u XML t cc ngn ng l p trnh C u trc d li u ng bi u di n thng tin c a vn b n c c u trc ni chung v ti li u XML ni ring DOM bao g m h thng cc i t ng th vi n cho php truy xu t n i dung c a ti li u Xml Ton b t p tin Xml trn b nh ph === > i t ng XmlDocument c a DOM M i th bn trong t p tin Xml === > i t ng XmlElement c a DOM M i thu c tnh c a th ==== > i tng XmlAttribute c a DOM V d 1 : T p tin Duong_tron.xml bi u di n thng tin v ng trn C c t m 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 t ng XmlDocument

2 i t ng XmlElement 3 i t ng XmlAttribute V d 2 : T p tin Bang_don_gia.Xml bi u di n thng tin v b ng n gi thu phng c a khch s n <?xml version="1.0" encoding="utf-8" ?> <KHACH_SAN Ten="X" Dia_chi="123 ABC" > <LOAI_PHONG Ten="Lo i A" Don_gia="280000" /> <LOAI_PHONG Ten="Lo i B" Don_gia="240000" /> <LOAI_PHONG Ten="Lo i C" Don_gia="180000" /> <LOAI_PHONG Ten="Lo i c bi t" Don_gia="320000" /> </KHACH_SAN> Tng ng 1 i t ng XmlDocument 5 i t ng XmlElement 10 i t ng XmlAttribute 1. Cc thao tc c b n Trnh by cc thao tc c b n nh t v DOM * Khai bo s d ng th vi n DOM Khai bo s d ng DOM VB6 S d ng th vi n Microsoft XML, v50 Khai bo trong ch c nng Project- References VB.NET S d ng th vi n Xml Imports System.Xml C# S d ng th vi n Xml using System.Xml ; * Khai bo s d ng ti li u Xml Khai bo s d ng ti li u XML VB6 Khai bo i t ng thu c l p DOMDocument Dim Tai_lieu As New DOMDocument VB.NET Khai bo i t ng thu c l p XmlDocument Dim Tai_lieu As New XmlDocument C# Khai bo i t ng thu c l p XmlDocument XmlDocument Tai_lieu = new XmlDocument (); * c - Ghi ti li u Xml c/ghi ti li u 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) ; * Truy xu t nt g c Truy xu t n nt g c c a ti li u XML VB6 Khai bo i t ng thu c giao di n IXMLDOMElement v nh n i t ng t ch c nng tng ng trong Tai_lieu Dim Goc As IXMLDOMElement Set Goc= Tai_lieu.documentElement VB.NET Khai bo i t ng thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng trong Tai_lieu Dim Goc As XmlElement Goc=Tai_lieu.DocumentElement C# Khai bo i t ng thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng trong Tai_lieu XmlElement Goc ; Goc=Tai_lieu.DocumentElement; * Truy xu t nt con tr c ti p c a nt Truy xu t n nt con tr c ti p c a m t nt VB6 Khai bo i t ng Nut_con thu c giao di n IXMLDOMElement v nh n i t ng t ch c nng tng ng c a Nut_cha Dim Nut_con As IXMLDOMElement Set Nut_con= Nut_cha.selectSingleNode(Ten_nut_con) VB.NET Khai bo i t ng Nut_con thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng c a Nut_cha Dim Nut_con As XmlElement Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) C# Khai bo i t ng Nut_con thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng c a Nut_cha XmlElement Nut_con ;

Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) ; * Truy xu t thu c tnh c a nt Truy xu t n thu c tnh c a m t nt VB6 Nh n gi tr : Gia_tri=Nut.getAttribute(Ten_thuoc_tinh) C p nh t/b sung thu c tnh v i gi tr Nut.setAttribute Ten_thuoc_tinh, Gia_tri VB.NET Nh n gi tr : Gia_tri=Nut.GetAttribute(Ten_thuoc_tinh) C p nh t/b sung thu c tnh v i gi tr Nut.SetAttribute (Ten_thuoc_tinh, Gia_tri) C# Nh n gi tr : // Nh n m t s nguyn Gia_tri=int.Parse(Nut.GetAttribute(Ten_thuoc_tinh)) ; C p nh t/b sung thu c tnh v i gi tr Nut.SetAttribute(Ten_thuoc_tinh, Gia_tri.ToString()) ; * Truy xu t n i dung c a nt Truy xu t n n i dung ( gi tr chu i ) c a m t nt VB6 Nh n n i dung : Gia_tri=Nut.nodeValue C p nh t n i dung Nut.nodeValue=Gia_tri VB.NET Nh n n i dung : Gia_tri=Nut.InnerText C p nh t n i dung Nut.InnerTextt=Gia_tri C# Nh n n i dung : // Nh n s th c Gia_tri=Double.Parse(Nut.InnerText); C p nh t n i dung Nut.InnerTextt=Gia_tri.ToSstring(); * T o nt m i T o nt m i VB6 Khai bo i t ng Nut thu c giao di n IXMLDOMElement

v nh n i t ng t ch c nng tng ng c a Tai_lieu Dim Nut As IXMLDOMElement Set Nut= Tai_lieu.CreateElement(Ten_nut) VB.NET Khai bo i t ng Nut thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng c a Tai_lieu Dim Nut As XmlElement Nut= Tai_lieu.CreateElement(Ten_nut) C# Khai bo i t ng Nut thu c giao di n XmlElement v nh n i t ng t ch c nng tng ng c a 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 h a Gi i thi u chung v cc v d minh h a * c phn s Cch 1 : Ch s d ng 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 l i 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 d ng ki u & 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 l i 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 d ng 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 l i 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 d ng ki u & 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 l i 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 d ng hm Main using System; using System.Xml; 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 l i 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 d ng ki u & 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("L i 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 l i Console.Write("M u s :"); Kq.Mau_so = int.Parse(Console.ReadLine()); // Cha x l l i 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 li u 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 d ng 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 l i 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") 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 l i 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 d ng hm Main Imports System.Xml Module Ghi_phan_so_Main Public Sub Main() Dim Tu_so, Mau_so As Integer 'Nh p li u Console.Write("T s :") Tu_so = Integer.Parse(Console.ReadLine) ' Cha ki m tra Console.Write("M u s :") Mau_so = Integer.Parse(Console.ReadLine) ' Cha ki m tra ' T o ti li u 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 d ng ki u & 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 ki m tra Console.Write("M u s ") Kq.Mau_so = Integer.Parse(Console.ReadLine) ' Cha ki m 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() 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 d ng hm Main Imports System.Xml Module Ghi_phan_so_Main Public Sub Main() Dim Tu_so, Mau_so As Integer 'Nh p li u Console.Write("T s :") Tu_so = Integer.Parse(Console.ReadLine) ' Cha ki m tra Console.Write("M u s :")

Mau_so = Integer.Parse(Console.ReadLine) ' Cha ki m tra ' T o ti li u 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 d ng ki u & 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 ki m tra Console.Write("M u s ") Kq.Mau_so = Integer.Parse(Console.ReadLine) ' Cha ki m 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() 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 d ng hm Main using System; using System.Xml; public class Ghi_phan_so_Main { public static void Main() { int Tu_so, Mau_so; // Nh p li u Console.Write ("T s :"); Tu_so =int.Parse (Console.ReadLine() ) ; // Cha x l l i Console.Write("M u s :"); Mau_so =int.Parse (Console.ReadLine() ) ; // Cha x l l i // T o n i dung ti li u 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 li u Xml String Duong_dan = "..\\..\\Du_lieu\\Phan_so.xml"; Tai_lieu.Save (Duong_dan) ; Console.ReadLine(); } } ====================== Cch 2 : S d ng ki u & 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("L i 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 l i Console.Write("M u s :"); Kq.Mau_so = int.Parse(Console.ReadLine()); // Cha x l l i 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 li u Xml Tai_lieu.Save(Duong_dan); return Kq; } } * Ghi ng trn 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 ki m tra Console.Write("Tung tm:") Kq.Tam.y = Double.Parse(Console.ReadLine) ' Cha ki m tra Console.Write("Bn knh :") Kq.Ban_kinh = Double.Parse(Console.ReadLine) ' Cha ki m 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 Imports System.Xml Module Ghi_day_so 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 ki m tra For Each Con As String In M Kq.Add(Integer.Parse(Con)) ' Cha ki m 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 t p Bi t p Gi i thi u chung v cc bi t p 1. Bi u di n thng tin v i Xml * Tam gic Yu c u : Bi u di n thng tin tam gic ABC v i A(1,0) , B(-8,3), C(4,4) v i Xml Bi gi i : <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 th c Yu c u : Bi u di n thng tin a th c P(x) = 4x5 -7x3 +2x2 +4 v i Xml Bi gi i : <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 tr n Yu c u : Bi u di n thng tin ma tr n cc s nguyn 1 2 -4 6 8 0 7 12 0 9 11 -3

v i Xml Bi gi i : 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> * B ng i m danh Yu c u : Bi u di n thng tin b ng i m danh B ng i m danh h c sinh l p !0A Thng 11/2007 H tn V ng c php V ng khng php ... .... v i Xml B i gi i : <BANG_DIEM_DANH Ten_lop="10A" Thang="11" Nam="2007"> <HOC_SINH Ho_ten="Tr n 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="Nguy n 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 T t" Vang_co_phep="1" Vang_khong_phep="4" /> </BANG_DIEM_DANH> * Bn c car Yu c u : Bi u di n thng tin v cc qun c c a m t bn c car H ng d n :

S d ng t p tin Caro.xml v i th g c BAN_CO ( c th ch c 1 thu c tnh So_dong hay ch c 1 thu c tnh So_cot hay c 2 thu c tnh So_dong, So_cot hay khng c thu c tnh no h t !!! ) Th BAN_CO g m nhi u th QUAN_CO ( Cc thu c tnh c a QUAN_CO tng ng thng tin v qu n c ) * S gh Yu c u : Bi u di n thng tin v s gh c a m t sn kh u bi u di n b t k ( V d Idecaf, Ha Bnh, Nh vn ha qu n 1, Nh ht thnh ph , v.v..) H ng d n : S d ng t p tin So_do_ghe.xml v i th g c SO_DO ( c th ch c 1 thu c tnh So_dong hay ch c 1 thu c tnh So_cot hay c 2 thu c tnh So_dong, So_cot hay khng c thu c tnh no h t !!! ) Th SO_DO g m nhi u th GHE ( Cc thu c tnh c a GHE tng ng thng tin c a gh ) * B ng l ch tu th ng nh t Yu c u : Bi u di n thng tin v b ng l ch tu th ng nh t Ghi ch : y l bi t p kh dnh cho cc sinh vin t x p mnh vo lo i kh, gi i * S cc chuy n bay n i a Yu c u : Bi u di n thng tin v s cc chuy n bay n i a c a VN Ghi ch : y l bi t p kh dnh cho cc sinh vin t x p mnh vo lo i gi i 2. L p trnh v i DOM * Tnh gi tr n th c Yu c u : Vi t chng trnh tnh gi tr n th c P(x) =axn ( c thng tin u c lu tr du i d ng t p tin Xml ) v i x0 cho tr c

H ng d n thi t k chng trnh : Bi u di n thng tin : - B nh ph : S d ng t p tin Xml v i m t th duy nh t DON_THUC ( g m 2 thu c tnh ) - B nh chnh : S d ng 3 bi n P : DON_THUC x0 : S th c Kq : S th c v i DON_THUC l ki u c u trc g m 2 thnh ph n Bi u di n x l : S d ng cc hm sau Hm x l chnh Main Khai bo cc bi n P,x0,Kq P = D li u c t t p tin Xml x0 = D li u nh p t ng i dng Kq = Gi tr c a P v i x0 Xu t Kq Hm Doc_don_thuc Tham s : Chu i Duong_dan n t p tin Xml K t qu : on th c tng ng Hm Nhap_so_thuc Tham s : Chu i Ghi_chu K t qu : S th c nh p t ng i dng Ham Gia_tri Tham s : n th c P, Gi tr x0 K t qu : Gi tr c a P v i x0 VB.NET Imports System.Xml Module Tinh_gia_tri_don_thuc_Kieu_Ham Structure DON_THUC 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 th c ' Nh p x0 ' Tnh Kq

' Xu t Kq End Sub Public Function Doc_don_thuc(ByVal Duong_dan As String) As DON_THUC Dim Kq As DON_THUC ' c d li u c a t p tin vo i t ng Tai_lieu XmlDocument ' Gn gi tr c a k t qu t g c c a 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 tr ng h p c bi t 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 l i 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; 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 th c P // Nh p gi tr x0

// Tnh Kq // Xu t Kq } public static DON_THUC Doc_don_thuc(String Duong_dan ) { DON_THUC Kq; // c d li u c a t p tin vo i t ng Tai_lieu XmlDocument // Gn gi tr cho Kq t nt g c c a 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 tr ng h p c bi t 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 ng i dng nh p chu i return Kq; } } * Gi i phng trnh b c 2 Yu c u : Vi t chng trnh gi i phng trnh b c 2 ax2+bx+c=0 ( a khc 0) c thng tin u c lu tr du i d ng t p tin Xml H ng d n thi t k chng trnh : Bi u di n thng tin - B nh ph : S d ng t p tin Xml v i m t th duy nh t TAM_THUC ( g m 3 thu c tnh ) - B nh chnh : S d ng 3 bi n P : TAM_THUC

Ng : M ng 1 chi u(dy) cc s th c v i kch th c t i a 2 v i TAM_THUC l ki u c u trc g m 3 thnh ph n Bi u di n x l : S d ng cc hm sau Hm x l chnh Main Khai bo cc bi n P,Ng P = Tam th c c t t p tin Xml Ng = Nghi m c a P Chuoi = Chu i tng ng nghi m Ng Xu t Chuoi Hm Doc_tam_thuc Tham s : Chu i Duong_dan n t p tin Xml K t qu : Tam th c tng ng Hm Giai_phuong_trinh Tham s : Tam th c P K t qu : M ng 1 chi u(dy) cc s th c v i kch th c t i a 2 Ham Chuoi_nghiem Tham s : M ng 1 chi u(dy) cc s th c v i kch th c t i a 2 K t qu : Chu i 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 th c P ' Tnh nghi m Ng ' Xu t nghi m 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 l i 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 nghi m v a vo Kq d a trn xt d u c a 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 nghi m" ElseIf Ng.Count = 1 Then Kq = String.Format("Phng trnh c nghi m kp x1=x2={0:F2}", Ng(0)) ElseIf Ng.Count = 2 Then Kq = String.Format("Phng trnh c 2 nghi m 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 vi n hm cho php s d ng ArrayList public class Giai_phuong_trinh_bac_2_kieu_ham { public struct TAM_THUC { public Double a; // Khc 0 public Double b; public Double c; } public static void Main() { String Duong_dan = "..\\..\\Du_lieu\\Tam_thuc.xml"; TAM_THUC P; ArrayList Ng; // c tam th c P // Tnh nghi m Ng // Xu t nghi m 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 l i 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 nghi m v a vo Kq d a trn xt u c a 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 tr ng h p c bi t return Kq; } public static String Chuoi_nghiem(ArrayList Ng ) { String Kq = ""; if (Ng.Count == 0) Kq = "Phng trnh v nghi m"; else if (Ng.Count == 1) Kq = String.Format("phng trnh c nghi m kp x1=x2={0:F2}", Ng[0]); else if (Ng.Count == 2) Kq = String.Format("phng trnh c 2 nghi m x1{0:F2} , x2={1:F2}", Ng[0],Ng[1]); return Kq; } } * Tnh gi tr hm s Yu c u : Vi t chng trnh tnh gi tr hm s f(x) f(x) = (a1x2+b1x+c1) /(a2x2+b2x+c2) c thng tin c lu tr du i d ng t p tin Xml v i x0 cho tr c H ng d n thi t k chng trnh : Bi u di n thng tin :

- B nh ph : S d ng t p tin Xml v i th g c HAM_SO bao g m 2 th conTAM_THUC - B nh chnh : S d ng 3 bi n f : HAM_SO x0 : S th c Kq : S th c v i HAM_SO l ki u c u trc g m 2 thnh ph n tng ng v i 2 tam th c P,Q Bi u di n x l : S d ng cc hm sau Hm x l chnh Main Khai bo cc bi n f,x0,Kq f = Hm s c t t p tin Xml x0 = D li u nh p t ng i dng Kq = Gi tr c a f v i x0 Xu t Kq Hm Doc_ham_so Tham s : Chu i Duong_dan n t p tin Xml K t qu : Hm s tng ng Hm Nhap_so_thuc Tham s : Chu i Ghi_chu K t qu : S th c nh p t ng i dng Ham Gia_tri Tham s : Hm s f , Gi tr x0 K t qu : Gi tr c a f v i x0 * Tnh ti n thu phng Yu c u : Vi t chng trnh tnh ti n thu phng khi bi t s ngy thu l ai phng d a trn b ng n gi u c lu tr d i d ng t p tin Xml H ng d n thi t k chng trnh : Bi u di n thng tin : - B nh ph : S d ng t p tin Bang_don_gia.Xml v i th g c BANG_DON_GIA bao g m cc th con LOAI_PHONG ( c cc thu c tnh Ten, Don_gia ) - B nh chnh : S d ng 3 bi n Bdg: M ng 1 chi u( dy) cc LOAI_PHONG So_ngay_thue : S nguyn >0 ChI_so : S nguyn tng ng s th t c a lo i phng thu trong Bdg ( Chi_so>=0 v Chi_so < S cc lo i phng) Tien_phai_tra : S nguyn v i LOAI_PHONG l ki u c u trc Bi u di n x l : S d ng cc hm sau Hm x l chnh Main

Khai bo cc bi n Bdg,So_ngay_thue,Chi_so,Tien_phai_tra Bdg = B ng n gi c t t p tin Xml So_ngay_thue = D li u nh p t ng i dng ChI_so= D li u nh p t ng i dng Tien_phai_tra = Ti n ph i tr v i So_ngay_thue v lo i phng Bdg[Chi_so] Xu t Tien_phai_tra Hm Doc_bang_don_gia Tham s : Chu i Duong_dan n t p tin Xml K t qu : B ng n gi tng ng Hm Nhap_so_nguyen Tham s : Chu i Ghi_chu , Can_duoi, Can_tren K t qu : S nguyn n nh p t ng i dng v i Can_duoi<=n<=Can_tren Ham Tinh_tien Tham s : B ng n gi , S ngy thu, Ch s c a lo i phng K t qu : Ti n ph i tr * i ng ai t Yu c u : Vi t chng trnh i ng ai t khi bi t s ti n c n i, l ai ng ai t , hnh th c i d a trn b ng t u c lu tr d i d ng t p tin Xml H ng d n thi t k chng trnh : Bi u di n thng tin : - B nh ph : S d ng t p tin Bang_ty_gia.Xml v i th g c BANG_TY_GIA bao g m cc th con NGOAI_TE ( c cc thu c tnh Ten, Mua_tien_mat,Mua_chuyen_khoan, Ban ) - B nh chnh : S d ng 3 bi n Btg: M ng 1 chi u( dy) cc NGOAI_TE So_tien_doi : S nguyn >0 Hinh_thuc_doi : Chu i v i 1 trong 3 gi tr "MTM", "MCK", "BAN" Ngoai_te_doi : Ngo i t c n i Tien_doi_duoc : S th c v i NGOAI_TE l ki u c u trc Bi u di n x l : S d ng cc hm sau Hm x l chnh Main Khai bo cc bi n Btg,So_tien_doi, Ngoai_te_doi,Tien_doi_duoc Btg = B ng t gi c t t p tin Xml So_tien_doi = D li u nh p t ng i dng Ngoai_te_doi= Ngo i t c ch n t ng i dng Hinh_thuc_doi=Hnh th c i c ch n t ng i dng Tien_doi_duoc = Ti n i c v i B ng t gi,S ti n i, Ngo i t i v hnh th c i

gi

Xu t Tien_doi_duoc Hm Doc_bang_ty_gia Tham s : Chu i Duong_dan n t p tin Xml K t qu : B ng t gi tng ng Hm Nhap_so_nguyen Tham s : Chu i Ghi_chu , Can_duoi, Can_tren K t qu : S nguyn n nh p t ng i dng v i Can_duoi<=n<=Can_tren Hm Chon_ngoai_te Tham s : ??? K t qu : Ngo i t c ch n Hm Chon_hinh_thuc Tham s : K t qu : Hnh th c i c ch n Ham Doi_tien Tham s : ??? K t qu : S ti n i c * D v s Yu c u : Vi t chng trnh d v s d a trn k t qu x s u c lu tr d i d ng t p tin Xml

H ng d n thi t k chng trnh : Bi u di n thng tin : - B nh ph : S d ng t p tin Kqxs.Xml v i th g c KET_QUA bao g m cc th con GIAI ( c cc thu c tnh Ten, Tien_thuong ) , th GIAI bao g m cc th con SO ( v i thu c tnh Gia_tri ) - B nh chnh : S d ng 3 bi n Kqxs: M ng 1 chi u( dy) cc GIAI Ve_so : S nguyn Tien_thuong : S nguyn v i GIAI l ki u c u trc tng ng c u trc t p tin Xml Bi u di n x l : S d ng cc hm sau Hm x l chnh Main Khai bo cc bi n Kqxs ,Ve_so, Tien_thuong Kqxs = K t qu x s c t t p tin Xml Ve_so = D li u nh p t ng i dng Tien_thuong= T ng ti n th ng v i k t qu x s v Ve_so ( M t v s c th trng th ng nhi u gi i) Xu t Tien_thuong Hm Doc_ket_qua_xo_so Hm Nhap_so_nguyen Ham Tinh_tien_thuong

* Tnh t ng tr Yu c u : Vi t chng trnh tnh t ng tr c a m ch i n ch g m cc i n tr ( c thng tin lu tr du i d ng t p tin Xml) Ghi ch : Bi t p kh dnh cho cc sinh vin t x p mnh vo lo i kh gi i G i: K thu t qui hay K thu t l p trnh h ng i t ng v i k thu t a x * S chuy n bay Yu c u : Vi t chng xu t s cc chuy n bay v i thng tin c lu tr trn m t t p tin Xml Ghi ch : Bi t p kh dnh cho cc sinh vin t x p mnh vo lo i gi i

Chng 2 : c t n i dung & c u trc ti li u XML


M c tiu : - Trnh by cc kh nng c a cng ngh Xml khi c ng d ng trong giai o n thi t k thnh ph n d li u - Rn luy n k nng c t ti li u Xml bi u di n thng tin c a i t ng trong th c t - B c u ng d ng Xml trong ng d ng nh , n gin I. M u 1. N i dung ti li u XML Khi ni m v n i dung ti li u Xml N i dung c a ti li u XML bao g m 2 ph n N i dung chnh H th ng cc th nh d u ( c hay khng c n i dung ) tng ng v i cc thng tin c n bi u di n N i dung ph H th ng cc th khc c ngha b sung, tng c ng m t s thng tin v ti li u XML. Cc th ny c tc d ng gip cho vi c s d ng, x l trn ti li u XML t t hn trong m t s tr ng h p nh t nh Cc th bn trong n i dung ph bao g m lo i sau Th khai bo tham s Th ch th x l Th ghi ch Th CDATA Th khai bo c u trc Th khai bo th c th Cc th khai bo tham s , th ch th x l,th ghi ch v th CDATA c ngha s d ng n gi n s u c di n gi i chi ti t ngay trong ph n sau Th khai bo c u trc lin quan n c u trc ti li u XML v i nhi u khi ni m khc. Th ny s u c trnh by chi ti t trong ph n c t c u trc v i DTD Th khai bo th c th lin quan n nhi u k thu t khc nhau c th p d ng trn ti li u XML. Th ny s c trnh by chi ti t trong ph n K thu t c t n i dung ti li u XML * Th khai bo tham s Th khai bo tham s Th khai bo tham s cho php m t thm m t s thng tin chung (tham s ) v ti li u XML ngoi cc thng tin bi u di n trong n i dung chnh. D ng khai bo chung nh sau <?xml Ten_1=Gia_tri_1 Ten_2=Gia_tri_2 ?>

Ten_1, Ten_2, l cc tn c a cc tham s v Gia_tri_1, Gia_tri_2, l cc gi tr tng ng. Cho n hi n nay c 3 tham s u c dng l version, encoding, v standalone. Tham s version b t bu c ph i c n u cc tham s khc u c s d ng Tham s version : Khai bo v phin b n c a nh chu n XML u c s d ng V d : Ti li u XML thu c nh chu n 1.0 <?xml version=1.0 ?> Tham s encoding : Khai bo v cch m ha cc k t trong ti li u V d Ti li u XML s d ng cch m ha Unicode k hi u utf-8 <?xml version=1.0 encoding=utf-8 ?> Ti li u XML s d ng cch m ha Unicode k hi u utf-16 <?xml version=1.0 encoding=utf-16 ?> Tham s standalone : Khai bo v lin k t c a ti li u XML v cc ti li u khc. Tham s ny ch c 2 gi tr h p l l yes , no. Gi tr nh s n l no V d : Ti li u XML c lin k t v i cc ti li u khc <?xml standalone=yes ?> Ti li u XML khng c lin k t v i cc ti li u khc <?xml version=1.0 standalone=no ?> * Th ch th x l Th ch th x l ngha chung c a cc th ch th x l l cho php m t thm m t s thng tin ( lin quan x l ) v ti li u XML c ngha ring v i m t cng c x l no . y chnh l m t phng php cho php m r ng, b sung cc x l ring vo m t l p ti li u XML cng thu c m t h th ng phn l p no D ng khai bo chung nh sau <? Bo_xu_ly Du_lieu ?> Bo_xu_ly l k hi u c a b x l s ti n hnh m t s x l no trn ti li u XML . Du_lieu l thng tin c g i n Bo_xu_ly V d : <?xml-stylesheet type=text/css href=Dinh_dang.css ?> L th ch th c n x l nh d ng th hi n ti li u XML v i chng trnh nh d ng theo ngn ng css u c lu tr bn trong t p tin Dinh_dang.css Th ny s c ngha v i m t s trnh duy t Web nh E ( phin b n 50. v sau ), Netscape ( phin b n 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 v i con ng i v hon ton khng c ngha v i cc h th ng x l ti li u XML D ng khai bo chung nh sau <-- N i dung ghi ch --> * Th CDATA Th CDATA Th CDATA c ngha yu c u cc b phn tch ti li u XML b qua v khng phn tch vo n i dung bn trong c a th ny. Tc d ng c a th l cho php s d ng tr c ti p bn trong th m t s k hi u khng u c php n u s d ng bn ngoi ( v d cc k t < , > , ) D ng khai bo chung nh sau <![CDATA [ N i dung ]]> 2. C u trc ti li u XML Khi ni m v c u trc ti li u XML - Ch tng ng c u trc c a n i dung chnh - Cch th c t ch c, s p x p c a cc th (c hay khng c n i dung) trong n i dung chnh Khi ni m v c t c u trc ti li u XML M t ng n g n, chnh xc c u trc ti li u XML M t ng n g n, chnh xc cch th c t ch c, s p x p c a cc th * Ngn ng c t c u trc C r t nhi u ngn ng c t u c xu t m t c u trc ti li u Xml nh DTD, XML Schema, XMlData, Schematron , RELAX NG, v,v.. .Trong s c 2 ngn ng thng d ng l DTD, XML Schema c i m c a DTD Ra i r t s m Cho php m t vn b n c c u trc b t k n gi n, d h c v s d ng Ch cho php c t m t s ki u d li u n gi n trong n i dung chnh c a ti li u XML

c i m c a XML Schema u c xu t b i W3C Ch p d ng cho ti li u XML Kh h c v s d ng so v i DTD Cho php c t chi ti t v cc ki u d li u u c s d ng trong n i dung chnh c a ti li u XML V d : V i ti li u Xml <?xml version="1.0" encoding="utf-8"?> <PHAN_SO> <Tu_so> 4 </Tu_so> <Mau_so> 3 </Mau_so> </PHAN_SO> c t v i 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 v i Xml Schema <?xmlversion="1.0"encoding="utf-8"?> <xs:schemaid="PHAN_SO" 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 d ng c t c u trc ngha c a c t c u trc C 2 tr ng h p chnh c n thi t s d ng cc ti li u c t c u trc Tr ng h p 1 : S d ng cho vi c trao i thng tin ng i ng i Tr ng h p 1 : S d ng cho vi c trao i thng tin ng i h th ng x l Tr ng h p 1 l tr ng h p thng d ng nh t, v i tr ng h p ny ti li u c t c u trc c s d ng nh phng ti n giao ti p gi a cc chuyn vin tin h c c lin quan n ti li u XML tng ng C th u c lu tr theo b t k nh d ng no thch h p cho vi c s d ng ( trnh by, xem bo co , v.v..) V d : C th s d ng cc ti li u c t c u trc ( DTD/ XML Schema trn ) trong H s thi t k ph n m m hay gio trnh ny ( theo d ng t p tin c a Microsoft Word) Ti li u m t cch th c trao i thng tin gi a cc chuyn vin tin cng xy d ng cc ph n m m bi t p phn s

Ghi ch : y l tr ng h p s d ng chnh v thng d ng nh t y l tr ng h p d s d ng nh t v khng yu c u th t ch t ch v c php. N u trong ti li u c t c u trc c sai st m t t v c php th ng i s d ng cng c th hi u hay cng c th pht hi n v trao i l i v i ng i t o l p V i tr ng h p ny, ty vo t ng tr ng h p c th v i cc m t s qui c ring mang tnh c c b trong m t nhm ng i no , c th m r ng cc ngn ng c t c u trc hi n c b sung thm cc t v ng, c php v ng ngha ring Tr ng h p 2 ch u c s d ng khi C h th ng x l (ph n m m, hm , i t ng th vi n ) hi u v th c hi n cc x l tng ng no v i ti li u c t c u trc (x l thng d ng nh t l ki m tra m t ti li u XML c theo ng c u trc u c m t trong ti li u c t c u trc hay khng.) Th t s c nhu c u c n n cc x l c a h th ng x l ni trn V d : C th s d ng cc ti li u c t c u trc ( DTD/ XML Schema trn ) v i b phn tch XmlTextReader trong VB.NET yu c u b phn tch ny ki m tra tnh h p l c a ti li u XML. Tuy nhin, m t cch t ng qut x l ki m tra ny khng th t s c n thi t !!! V i cc ng d ng thng m i i n t vi c trao i cc ti li u XML lin quan cc nghi p v thng m i ( thng tin v cc m t hng, n t hng , phi u giao hng, v.v) t ra nhu c u th t s v vi c ki m tra m t ti li u XML c ng theo c u trc mong i hay khng. V i ng c nh ny nh t thi t ph i t o l p v s d ng cc b phn tch c php thch h p ti n hnh ki m tra tnh h p l v x l tng ng Ghi ch : Tr ng h p ny yu c u ti li u c t c u trc ph i tun th hon ton theo ngn ng c t c u trc tng ng, m i sai st v c php s khng u c b phn tch c php ch p nh n C n cn nh c khi s d ng ti li u c t c u trc trong tr ng h p ny v m t trong cc c i m quan tr ng trong ti p c n c a XML l Cho php c t n i dung m khng nh t thi t c t c u trc II. M t s k thu t c t n i dung 1. S d ng th th c th K thu t s d ng th th c th ngha chung cc th khai bo th c th l cho php ti li u XML tham chi u n m t t p h p cc gi tr chu n b tr c d i d ng m t tn g i nh ( tn th c th ). M i cch th c tham chi u v lo i c a t p h p gi tr u c tham chi u tng ng v i m t ngha/m c tiu ( d ng s d ng ) ring v s yu c u d ng th khai bo th c th thch h p. C 4 d ng s d ng chnh cc th c th D ng 1 : Tham chi u n m t chu i gi tr bn trong ti li u XML ang xem xt D ng 2 : Tham chi u n cc k t c bi t u c nh ngha tr c D ng 3 : Tham chi u n m t t p h p cc gi tr bn ngoi ti li u D ng 4 : Tham chi u n m t ti li u XML khc

Cch th c khai bo v s d ng chung cc th khai bo th c th ( cho c 4 d ng trn ) nh sau Khai bo <!DOCTYPE Ten_goc [ Khai bo th c th X Khai bo th c th Y ]> S d ng &X; < -- S d ng tham chi u c a X --> &Y; <-- S d ng tham chi u c a Y --> * D ng 1 Tham chi u n m t chu i gi tr bn trong ti li u XML ang xem xt ngha : Tng c ng tnh d c c a ti li u XML Tng c ng tnh d b o tr c a ti li u XML D ng khai bo v s d ng : <?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 li u XML trn khai bo v s d ng 2 th c th Th c th th 1 : Tn l Ten_1 v u c s d ng trong thu c tnh c a 2 th A,C Th c th th 2 : Tn l ten_2 v u c s d ng trong n i dung c a 3 th B,C,D Vi c s d ng th c th trong tr ng h p ny gip Ti li u d c hn : Dng gin ti p cc tn Ten_1, ten_2 v i ng ngha c th no thay v tr c ti p cc Chuoi_1, Chuoi_2 Ti li u d b o tr hn khi c n thay i n i dung c a Chuoi_1, Chuoi_2 ( ch c n thay i trong khai bo )

* D ng 2 Tham chi u n cc k t c bi t u c nh ngha tr c ngha : Cho php s d ng m t s k t c bi t S d ng k t c bi t c nh ngha tr c &lt; &gt; &quot; &apos; &amp; K t K t K t K t K t < > nhy kp nhy n &

S d ng cc k t thng qua m s trong cch m ha N u dng h th p phn &#So_thap_phan; K t c m s l s th p phn V d : &#48; K s 0 &#97; K t a N u dng h th p l c phn &#xSo_thap_luc_phan; K t c m s l s th p l c phn V d : &#x30; K s 0 &#x41; K t a * D ng 3 Tham chi u n m t t p h p cc gi tr bn ngoi ti li u XML ngha : Cho php tham chi u n t p tin ch a gi tr c n s d ng no . Cc gi tr ny khng nh t thi t theo nh chu n XML. Cch s d ng ny c a th c th thng th ng b sung vo n i dung cc hnh nh, m thanh, v.v.v. D ng khai bo thng d ng : <!ENTITY Ten_thuc_the SYSEM Ten_tap_tin > Th c th Ten_thuc_the tham chi u n t p tin c v tr u c cho b i Ten_tap_tin Ghi ch : Ten_tap_tin bao hm c u ng d n C th dng a ch URL nh Ten_tap_tin V d : Gi s c t p tin Hinh.jpg lu tr hnh nh m t nhn vin trong th m c hi n hnh

<!DOCTYPE NHAN_VIEN [ <!ENTITY Hinh_nhan_vien SYSTEM Hinh.jpg > ]> <NHAN_VIEN Hinh=&Hinh_nhan_vien; .> . </NHAN_VIEN> * D ng 4 Tham chi u n m t ti li u XML khc ngha : Cho php phn r ti li u XML thnh cc ti li u con u c lu tr trong cc t p tin c l p. D ng khai bo thng d ng : tng t d ng trn <!ENTITY Ten_thuc_the SYSEM Ten_tap_tin > V d : Gi s c cc t p tin Thu_tien_1.xml , Thu_tien_2.xml , . Thu_tien_12.xml lu tr thng tin v cc phi u thu ti n trong cc thng 1,2,..12 c a nm ang xt. T p tin Thu_tien.xml lu tr thng tin v cc phi u 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 d ng tn K thu t s d ng tn th Tn th , tn cc thu c tnh trong ti li u XML thu c v 1 trong 2 lo i sau Lo i 1 : Tn khng ti n t Lo i 2 : Tn c ti n t Tn khng ti n t M t y cc qui t c t tn cho cc tn th , thu c tnh l cng vi c khng n gi n v c bi t l cng khng c n thi t. M t cchtm t t ( v t t nhin cha y ! ) tn

l chu i bao g m cc k t ch ( a-z, A-Z), k s (0-9) v m t s k t khc nh , _ , .. Tn c ti n t Tn c ti n t c d ng 2 chu i k t cch nhau b i k t : Chuoi_tien_to : Chuoi_ten V d : <A:MAT_HANG ./> <B:MAT_HANG /> Th A:MAT_HANG tng ng thng tin v m t hng trong cng ty A. Th B:MAT_HANG tng ng thng tin v m t hng trong cng ty B. 2 th ny c th c cc thu c tnh khc nhau. S d ng tn c ti n t : N u ch s d ng ti li u XML n l , ring cho ng d ng c c b th khng c n thi t dng ti n t trong tn. Tuy nhin n u c n thi t ti p nh n, k t xu t ton b /m t ph n ti li u XML t / n m t ng d ng khc ( r t thng d ng trong thng m i i n t ) vi c s d ng tn v i ti n t l r t c n thi t. Ti n t c a tn s ng phn bi t u c ngu n g c c a m t th trong ti li u XML u c t o thnh t nhi u ti li u XML khc c cc th trng phn tn khng ti n t

Thu c tnh xmlns Xt ti li u XML v i vi c s d ng cc ti n t A tng ng tn cng ty A trong giao d ch thng m i i n t <A:The_goc> <A:The_1 . / > <A:The_2> N i dung </A:The_2> <A:The_2> N i dung </A:The_2> <A:The_3 ./> </A:The_goc> Vi c s d ng thu c tnh xmlns cho php n gi n ha ti li u XML trn <The_goc xmlns=A > <The_1 . / > <The_2> N i dung <The_2> <The_2> N i dung <The_2>

<The_3 ./> <The_goc>

C php khai bo c a thu c tnh xmlns nh sau D ng 1 : <Ten_the xmlns=Chuoi_tien_to .> </Ten_the> Khai bo trn c ngha r ng t t c cc tn bn trong th ang xt ( bao hm chnh th ny ) n u khng c ti n t th ti n t chnh l Chuoi_tien_to D ng 2 : <Ten_the xmlns:Chuoi_tien_to_1=Chuoi_tien_to_2 .> </Ten_the> Khai trn c ngha r ng t t c cc tn bn trong th ang xt ( bao hm chnh th ny ) n u c ti n t l chuoi_tien_to_1 th ti n t th c s l Chuoi_tien_to_2 Khai bo trn thng th ng c dng khi trong ti li u XML c s d ng ng th i nhi u ti n t khc nhau v khai bo d ng 1 ch c th p d ng c v i m t trong s cc ti n t v cc ti n t cn l i th l i qu di ( nhng t i sao l i t di ?) Khng gian tn ( namespace) B n ch t c a khng gian tn chnh l Chuoi_tien_to c s d ng trong m t s cc ti li u XML Khng gian tn l chuoi_tien_to v i c i m quan tr ng nh sau : Chuoi_tien_to ph i l duy nh t trn ph m vi ton c u c i m trn nh m b o m r ng khi m t n v / ng d ng s d ng cc ti li u XML c a mnh v i Chuoi_tien_to th khng c ti li u XML no c a cc n v / ng d ng khc trn ph m vi ton c u s d ng Chuoi_tien_to . V i c i m trn thng th ng khng gian tn u c ch n l chu i tng ng v i m t a ch URL c a m t tn mi n trong nh v c a th gi i Internet Cch dng trn l gi i v sao l i ph i dng cc Chuoi_tien_to r t di trong ti li u XML. III. c t c u trc v i DTD c t c u trc ti li u XML v i DTD C nhi u d ng khc nhau cho php khai bo ( c t ) c u trc c a ti li u XML D ng 1 : Khai bo c u trc ti li u XML u c lu tr ngay bn trong chnh ti li u XML <!DOCTYPE Ten_the_goc [ c t c u trc n i dung cc th c t thu c tnh cc th ]>

D ng 2 : Khai bo c u trc ti li u XML u c lu tr bn ngoi d i d ng m t t p tin ch a c t c u trc n i dungcc th , c t thu c tnh cc th <!DOCTYPE Ten_the_goc SYSTEM Ten_tap_tin > V d : <!DOCTYPE DUONG_TRON SYSTEM DUONG_TRON.dtd > D ng 3 : Khai bo c u trc ti li u XML c chu n ha , c ph m vi s d ng r ng r i. d ng ny th ng u c dng v i cc ngn ng XML chung c ph m vi p d ng ton c u nh MathML, VML, XHTML, v.v <!DOCTYPE Ten_the_goc PUBLIC Chuoi_nhan_dang > 1. c t c u trc n i dung cc th C php chung c t c u trc n i dung c a m t 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 m t t kho Bieu_thuc_cau_truc_dac_ta_noi_dung cng c th bao g m nhi u t kha khc m t cch b tr, s p xp cc thnh ph n con bn trong th V i A, B l 2 th con c a th X A, B A, B s p x p theo th t tu n t A n B A* A c th l p l i t nh t 0 l n B+ B c th l p l i t nh t 1 l n A? A c th c hay khng c A|B C th ch n s d ng A hay B * D ng 1 T kha ANY : Th c n i dung b t k theo nh chu n XML V d : <!ELEMENT X ANY > X c th ch a n i dung b t k. Thng th ng cch khai bo ny ch m t s t n t i c a X bn trong m t th khc T kha EMPTY : Th khng c n i dung V d : <!ELEMENT PHAN_SO EMPTY > PHAN_SO khng th c n i dung m ch c th c cc thu c tnh T kha #PCDATA : Th v i n i dung l chu i vn b n V d : <!ELEMENT Ho_ten (#PCDATA) > Ho_ten c n i dung l chu i v khng th ch a cc th khc. y l m t trong cc gi i h n chnh c a DTD v khng cho php m t chi ti t v ki u hay lo i c a chu i vn b n.

V i DTD mu n m t chi ti t hn c th dng th ghi ch V d : <!ELEMENT He_so (#PCDATA) > <!-- He_so : A_Float --> * D ng 2 Bieu_thuc_dac_ta_cau_truc_noi_dung cng c th bao g m nhi u t kha khc m t cch b tr, s p xp cc thnh ph n con bn trong th V i A, B l 2 th con c a th X A, B A, B s p x p theo th t tu n t A n B A* A c th l p l i t nh t 0 l n B+ B c th l p l i t nh t 1 l n A? A c th c hay khng c A|B C th ch n s d ng A hay B - Tu n t D ng tu n t : Cc th con ch c th xu t hi n 1 l n duy nh t v ph i theo ng th t xu t hi n trong bi u th c C php : <!ELEMENT Ten_the (Ten_the_1, Ten_the_2, .) > ngha : The_1, The_2, ..., The_k ph i xu t hi n m t l n duy nh t theo ng th t trn V d : <!ELEMENT DON_THUC(He_so,So_mu) > Th DON_THUC ph i 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 ph i bao hm bn trong ng 3 th con v i tn th l DIEM V d : C th s d ng t kha #PCDATA trong bi u th c tu n t ( v cc lo i bi u th c khc )

<!ELEMENT X (#PCDATA,A,#PCDATA)> Th X ph i bao g m 3 thnh ph n : Thnh ph n th 1 l chu i vn b n Thnh ph n th c 2 l th c tn A Thnh ph n th 3 l chu i vn b n - Ty ch n D ng ty ch n : Th con c th c s d ng hay khng s d ng C php ( d ng n gi n) : <!ELEMETNT Ten_the (Ten_the_con ?) > Th ang xt c th ch a 1 hay 0 l n xu t hi n c a th c tn l Ten_the_con

V d : <!ELEMETNT DON_THUC (Ten?) > Th DON_THUC c th ch a hay khng th Ten Ghi ch : C th k t h p v i bi u th c tu n t <!ELEMENT X (A,B?,C) > Thnh ph n u tin c a th X l th A, k n c th c hay khng c th B v thnh ph n cu i cng ph i l C C th cho php ty ch n m t t p h p 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 ch a b t k th no D ng ch n : B t bu c ch n m t th con s d ng trong t p h p th cho tr c C php ( d ng n gi n) : <!ELEMETNT Ten_the(Ten_the_1|Ten_the_2|..|Ten_the_k) > Th ang xt b t bu c ph i ch a duy nh t m t trong cc th c tn Ten_the_1 hay ten_the_2, hay ... Ten_the_k Ghi ch : C th k t h p v i bi u th c tu n t <!ELEMENT X (A,B|C,D) > Thnh ph n u tin c a th X l th A, k n l th B hay th C v thnh ph n cu i cng ph i l D C th cho php ch n m t t p h p cc th <!ELEMENT X ( (A,B) | (C,D) ) > X c th bao hm bn trong c p th A,B ( theo th t trn ) hay c p th C,D ( theo th t trn )

-L p D ng l p t nh t 0 l n : Cc th con c th l p l i nhi u l n hay c th khng c l n no C php : <!ELENEMT Ten_the (Ten_the_con*) > ngha : Th ang xt c th bao hm bn trong nhi u th c tn l Ten_the_con hay cng c th l th r ng ( khng c n i dung ) V d : <!ELEMENT LOP (HOC_SINH*) > Th LOP c th ch a nhi u th HOC_SINH hay khng c th HOC_SINH no Ghi ch : C th m t l p ng th i nhi u th con <!ELEMENT X (A,B,C)* > Cc th A,B,C theo th t trn c th l p l i t nh t 0 l n trong th X C th k t h p v i bi u th c tu n t V d : <!ELEMENT X (A,B*,C) >

Th X c thnh ph n u tin l th A, k n c th c nhi u hay 0 l n l p c a th B v cu i cng l th C C th k t h p v i bi u th c ty ch n V d : <!ELEMENT X (A,B*,C?,D) > Th X c thnh ph n u tin l th A, k n c th c nhi u hay 0 l n l p c a th B, k n c th c hay khng th C v cu i cng l th D C th k t h p v i bi u th c ch n V d : <!ELEMENT X (A|B,C*,D) > Th X c thnh ph n u tin l th A hay th B , k n c th c nhi u hay 0 l n l p c a th B v cu i cng l th D D ng l p t nh t 1 l n : Cc th con c th l p l i nhi u l n v t nh t l m t l n C php : <!ELENEMT Ten_the (Ten_the_con+) > ngha : Th ang xt c th bao hm bn trong t nh t m t th c tn l Ten_the_con V d : <!ELEMENT DA_THUC (DON_THUC+) > Th DATHUC ph i bao hm bn trong t nh t m t th DON_THUC Ghi ch : C th m t l p ng th i nhi u th con <!ELEMENT CT_HOA_DON (Mat_hang,So_luong,Don_gia) + > Cc th CT_HOA_DON ph i bao hm t nh t 3 th Mat_hang,So_luong,Don_gia V d : C th k t h p v i bi u th c tu n t

<!ELEMENT DA_GIAC (DIEM,DIEM,DIEM+) > Cc th DA_GIAC ph i bao hm t nh t 3 th DIEM V d : C th k t h p v i bi u th c ty ch n

<!ELEMENT BIEU_THUC (Ten?,PHAN_SO+) > Th BIEU_THUC c th ch a hay khng thnh ph n u l th Ten v k n t nh t m t th PHAN_SO V d : C th k t h p v i bi u th c ch n

<!ELEMENT X (A|B,C+,D) > Th X c thnh ph n u tin l th A hay th B , n t nh t m t th B v cu i cng l th D 2. c t thu c tnh c a th C php khai bochung : C php khai bo cc thu c tnh c a th tng t nh c php khai bo ki u c u trc trong ngn ng l p trnh <!ATTLIST Ten_the Ten_thuoc_tinh_1

Kieu_1 Tham_so_1

Kieu_k Tham_so_k > ngha : Ten_the : tn th c n khai bo cc thu c tnh Ten_thuoc_tinh_1,Ten_thuoc_tinh_2, ...Ten_thuoc_tinh_k : Tn cc thu c tnh c a th ang khai bo Kieu_1,Kieu_2, ..., Kieu_k : M t t p h p cc gi tr m thu c tnh c th nh n Tham_so_1,Tham_so_2,.., Tham_so_k : M t m t s tnh ch t trn thu c tnh tng ng V d : c t c u trc ti li u XML bi u di n thng tin v bi u th c 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)+ > ]> * Ki u Ki u : M t t p h p cc gi tr c a thu c tnh C nhi u cch khc nhau cho php m t t p h p cc gi tr c th c c a m t thu c tnh. Ph n sau ch gi i thi u 2 cch m t chnh v thng d ng. bi t thm chi ti t v cc cch m t khc xin tham kh o cc ti li u chuyn bi t v DTD Cch 1 : Dng t kho CDATA C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh CDATA ... > ngha : T p h p cc gi tr c a hu c tnh v i khai bo CDATA chnh l t p h p cc chu i. y l tr ng h p s d ng thng d ng nh t, v y cng l m t trong cc gi i h n c a DTD v khng cho php m t chi ti t hn v ki u c a thu c tnh. Tng t nh n i dung vn b n c a th , m t thm thng tin c n s d ng cc ghi ch

Ten_thuoc_tinh_2 ... Ten_thuoc_tinh_k

Kieu_2 Tham_so_2

V d : c t c u trc ti li u XMl bi u di n phng trnh u ng th ng trong m t ph ng <?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 th i l 0 --> ]> Cch 2 : Dng bi u th c li t k C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh ( Gia_tri_1,Gia_tri_2,...._gia_tri_k) ... > ngha : T p h p cc gi tr c th c c a thu c tnh ang xt chnh l t p h p cc gi tr c li t k Gia_tri_1,Gia_tri_2, ....,Gia_tri_k. Cc gi tr ny l cc chu i k t V d : c t c u trc ti li u XML bi u di n thng tin v phi u i m c a m t h c 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 <!-- Ho_ten : A_String --> Ngay_sinh CDATA #REQUIRED <!--Ngay_sinh : A_Date --> Xep_loai (Gi i, Kh, Trung bnh, Y u) #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 ch t c a thu c tnh C nhi u cch khc nhau cho php m t t p h p cc gi tr c th c c a m t thu c tnh. Ph n sau ch gi i thi u 3 cch m t chnh v thng d ng. bi t thm chi ti t v cc cch m t khc xin tham kh o cc ti li u chuyn bi t v DTD Cch 1 : Dng t kha #REQUIRED C php : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #REQUIRED ... > ngha : Thu c tnh ang xt l thu c tnh b t bu c ph i c. y l cch s d ng ph bi n nh t V d : c t c u trc ti li u XML bi u di n thng tin v cc n th c v i tn b t bu c ph i 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 --> <!ELEMENT So_mu #PCDATA > <!-- So_mu : A_Int // >=0 --> ]> Cch 2 : Dng t kha #IMPLIED C php : <!ATTLIST Ten_the ...

Ten_thuoc_tinh Kieu #IMPLIED ... > ngha : Thu c tnh ang xt l ty ch n v khng b t bu c ph i c V d : c t c u trc ti li u XML bi u di n thng tin v tam th c 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 s n l x --> > <!ELEMENT DON_THUC EMPTY > <ATTLIST DON_THUC He_so CDATA #REQUIRED <!-- He_so : A_Float // Khc 0 n u 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 : Thu c tnh ang xt ph i c gi tr c nh l Gia_tri. Tr ng h p ny t c s d ng V d : c t c u trc ti li u XML bi u di n thng tin v cc n th c ch v i bi n s x <?xm lversion="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 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 c u trc v i XML-Schema c t c u trc ti li u XML v i Xml-Schema XML Schema thu c h cc ngn ng XML nn khai bo XML Schema chnh l t o l p ti li u XML m n i dung chnh l cc th nh d u, cc th ny s m t cho c u trc cc th c a m t ti li u XML khc. C u trc chung ( thng d ng ) c a cc ti li u 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 ki u </xs:schema> V i DTD, c t c u trc ti li u XML bao g m 2 ph n : c t c u trc n i dung cc th , c t thu c tnh cc th . Thng tin v m t th c m t qua 2 ph n tch bi t nhau : c t c u trc n i dung m t cch s p x p cc thnh ph n bn trong c a th ang xt, c t thu c tnh m t h th ng cc thu c tnh c a th ang xt. V i XML Schema, thng tin v m t th c m t t p trung qua m t ni m duy nh t l ki u. M i th s c tng ng m t ki u. c t ki u m t ki u c a th cng v i m t s tnh ch t khc. c t ki u m t cc thng tin v cc th thu c ki u ( c th c nhi u th cng thu c m t ki u ) bao hm c cc thng tin v cch s p x p cc thnh ph n bn trong c a th v h th ng cc thu c tnh c a 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"/> <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 c a c t : <xs:element name="DA_THUC" type="K_DA_THUC"/> Ti li u XML c th g c l DA_THUC th ny c ki u l ki u ph c h p v i 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> Ki u ph c h p K_DA_THUC bao g m bn trong - Th DON_THUC c ki u l ki u ph c h p v i tn l K_DON_THUC v th DON_THUC ph i trong cc th c ki u l K_DA_THUC xu t hi n t nh t 1 l n - 2 thu c tnh : Ten v i ki u l ki u c s d ng chu i Bien_so v i ki u l ki u c s d ng chu i === > Tm t t : Th DA_THUC ph i bao hm bn trong t nh t m t th DON_THUC v c 2 thu c 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> Ki u ph c h p K_DON_THUC ch bao g m bn trong c thu c tnh He_so c ki u l ki u c s lo i s th c So_mu c ki u l ki u n gi n v i tn SO_TU_NHIEN == > Tm t t : Th DON_THUC l th khng c n i dung v c 2 thu c tnh He_so,So_mu <xs:simpleType name="SO_TU_NHIEN"> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType>

Ki u n gi n SO_TU_NHIEN chnh l ki u c s s nguyn v i h n ch : gi tr ph i l n hn hay b ng 0 === > Thu c tnh So_mu c a th DON_THUC ph i l m t s nguyn khng m 1. c t ki u c t ki u XML Schema c 3 lo i ki u chnh : Lo i 1 : Ki u nh ngha s n ( BultinType) Lo i 2 : Ki u n gi n (simpleType) Lo i 3 : Ki u ph c h p (complexType). Ty thu c vo lo i th c n m t ( theo cch phn lo i s trnh by sau ) lo i ki u tng ng s c s d ng. * Ki u nh ngha s n Ki u nh ngha s n ( th vi n) Khi ni m : L cc ki u c xy d ng, nh ngha s n trong XML Schema. Cc ki u ny tng t nh cc ki u c s trong ngn ng l p trnh C tn trong danh sch cc ki u c s c a XML Schema Danh sch cc ki u c s : M t s ki u c s thng d ng Ten_kieu_co_so string int, integer float double boolean date month ID binary ngha Chu i k t S nguyn S th c chnh xc n S th c chnh xc kp Gi tr logic ngy Thng Chu i nh danh D li u nh phn

ngha s d ng : c s d ng m t tr c ti p ki u c a cc thu c tnh hay c a th th a 2 i u ki n : i u ki n 1 : Khng c thu c tnh i u ki n 2 : Khng ch a th khc ( n i dung l chu i vn b n) v c mi n gi tr ( t p h p gi tr c th c ) thch h p v i ki u V i cc th c thu c tnh hay c ch a th khc, b t bu c ph i dng ki u ph c h p v ki u c s v ki u n gi n khng cho php m t thng tin v thu c tnh , th con bn trong

C php : Khi dng v i th <xs:element name=Ten_the type=Ten_kieu_co_so ... /> Khi dng v i thu c 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 thu c tnh, khng ch a th con v c n i dung l chu i vn b n <xs:element name="Ngay_sinh" type="xs:date" /> Th Ngay_sinh khng c thu c tnh, khng ch a th con v c n i dung tng ng m t ngy <xs:attribute name="He_so" type="xs:float"/> Thu c tnh He_so ph i l s th c <xs:attribute name="x" type="xs:int"/> Thu c tnh x ph i l s nguyn <xs:attribute name="f" type="xs:boolean"/> Thu c tnh f ph i l gi tr logic * Ki u n gin Ki u n gi n ( simpleType) Khi ni m : L cc ki u do ng i dng nh ngha d a trn cc ki u c s c s n trong XML Schema. ngha s d ng : c s d ng m t tr c ti p ki u c a cc thu c tnh hay cc th th a 2 i u ki n : i u ki n 1 : Khng c thu c tnh Di u ki n 2 : Khng ch a th khc ( n i dung l chu i vn b n) v c mi n gi tr ( t p h p gi tr c th c ) l t p con c a mi n gi tr m t ki u c s no Tng t nh v i ki u c s , cc th c thu c tnh hay th c ch a th con khc, nh t thi t ph i dng ki u ph c h p v ki u c s v ki u n gi n khng cho php m t thm thng tin v thu c tnh ,th con bn trong C php : ( d ng n gi n v thng d ng ) <xs:simpleType name="Ten_kieu"> <xs:restriction base="Ten_kieu_co_so"> Gi i h n ( rng bu c ) trn mi n gi tr </xs:restriction> </xs:simpleType> Ten_kieu : Tn c a ki u n gi n Ten_kieu_co_so : Tn c a ki u c s tng ng

Gi i h n ( rng bu c ) trn mi n gi tr : C nhi u d ng gi i h n ( rng bu c ) khc nhau cho php m t chi ti t mi n gi tr c a ki u c s (y chnh l m t trong cc th m nh c a XML Shema so v i DTD ). Gio trnh ch gi i h n xem xt v trnh by tm t t 2 lo i rng bu c chnh v thng d ng : Rng bu c v c n trn cc ki u c s lo i s ( s nguyn, s th c ) , rng bu c lo i li t k trn ki u c s . bi t thm chi ti t v cc cc rng bu c khc xin tham kh o cc ti li u khc chuyn bi t v XML Shema. Gi i h n ( rng bu c) v c n trn ki u c s lo i s : C 4 th chnh c s d ng cho php xc nh cc c n ( c n trn, c n du i ) c a ki u c s ang xt . D ng khai bo chung cc rng bu c lo i ny nh sau <xs:simpleType name="Ten_kieu"> <xs:restriction base="Ten_kieu_co_so_loai_so"> Khai bo c n d i Khai bo c n trn </xs:restriction> </xs:simpleType> Khai bo c n d i : S d ng t khominInclusive ( c n d i cho php s d ng bin ), minExclusive ( c n d i khng cho php s d ng bin) C php <xs:minInclusive value="Gia_tri_bien_duoi"/> Ki u n gi n ang xt c mi n gi tr l t p h p cc s x th a i u ki n c s x >= Gia_tri_bien_duoi <xs:minExclusive value="Gia_tri_bien_duoi"/> Ki u n gi n ang xt c mi n gi tr l t p h p cc s x th a i u ki n 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> <xs:simpleType name="SO_NGUYEN_DUONG"> <xs:restriction base="xs:int"> <xs:minInclusive value="0" /> </xs:restriction> </xs:simpleType> Khai bo c n trn : S d ng t khomaxInclusive ( c n trn cho php s d ng bin ), maxExclusive ( c n trn khng cho php s d ng bin) C php x thu c mi n gi tr c a ki u

x thu c mi n gi tr c a ki u

<xs:maxInclusive value="Gia_tri_bien_tren"/> Ki u n gi n ang xt c mi n gi tr l t p h p cc s x th a i u ki n c s x < Gia_tri_bien_tren <xs:maxExclusive value="Gia_tri_bien_tren"/> Ki u n gi n ang xt c mi n gi tr l t p h p cc s x th a i u ki n c s x < Gia_tri_bien_tren V d : <xs:simpleType name="KY_SO"> <xs:restriction base="xs:int"> <xs:minInclusive value="0" /> <xs:maxInclusive value="9" /> </xs:restriction> </xs:simpleType>

x thu c mi n gi tr c a ki u

x thu c mi n gi tr c a ki u

<xs:simpleType name="DIEM_SO"> <xs:restriction base="xs:float"> <xs:minInclusive value="0" /> <xs:maxInclusive value="10" /> </xs:restriction> </xs:simpleType> Gi i h n ( rng bu c) lo i li t k trn ki u c s : Cho php xc nh mi n gi tr c a ki u n gi n ang xt b ng cch li t k cc gi tr c a t p h p ny ( tng t nh bi u th c li t k c a DTD nhng cho php s d ng v i thu c tnh, th thay v ch dng v i thu c tnh ) D ng khai bo cc rng bu c lo i 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="Ki m tra 15 pht " /> <xs:enumeration value="Ki m tra 1 ti t " /> <xs:enumeration value="Ki m tra h c k " /> </xs:restriction> </xs:simpleType>

<xs:simpleType name="LOAI_HOC_LUC" > <xs:restriction base="xs:string"> <xs:enumeration value="Gi i" /> <xs:enumeration value="Kh" /> <xs:enumeration value="Trung bnh" /> <xs:enumeration value="Y u" /> </xs:restriction> </xs:simpleType> * Ki u ph c h p Ki u ph c h p ( complexType) Khi ni m : L cc ki u do ng i dng t nh ngha cho php m t n i dung v cc thu c tnh c a cc th c khai bo thu c v ki u ang xt ngha s d ng : c s d ng m t ki u c a cccc th th a m t trong 2 i u ki n : i u ki n 1 : C thu c tnh i u ki n 2 : C ch a th khc Cc th c thu c tnh khng th khai bo v i ki u c s hay ki u n gi n v cc ki u ny khng cho php m t thng tin v thu c tnh Cc th c ch a th khc cng khng th khai bo v i ki u c s hay ki u n gi n v cc ki u ny khng cho php m t thng tin v cc thnh ph n bn trong D ng khai bo chung cc ki u ph c h p 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 th c t ch c, s p x p cc th con bn trong th c ki u l ki u ph c h p ang xt. Tng t nh DTD, XML Shema cng cho php nhi u d ng t ch c s p x p ( tu n t , ch n, l p ) cc th con v i cc c php ring. M t trong cc c tnh m i c a XML Shema l cho php khai bo chi ti t hn v s l n l p c a m t thnh ph n Dac_ta_thuoc_tinh : M t h th ng cc thu c tnh c a th c ki u l ki u ph c h p ang xt. Vi c m t cc thu c tnh trong XML Shema cng tng t nh m t thu c tnh trong DTD nhng v i m r ng r t quan tr ng : Cho php nh ngha v s d ng cc ki u n gi n m t chi ti t v mi n gi tr c a m t thu c tnh - c t c u trc n i dung Dac_ta_cau_truc_noi_dung :

XML Schema cho php m t cch th c t ch c, s p x p cc thnh ph n bn trong th qua 3 d ng c s D ng tu n t ( tng t nh DTD ): M t th t xu t hi n tu n t cc thnh ph n D ng ty ch n ( hon ton tng t nh DTD ): : M t vi c ph i s d ng m t thnh ph n no trong t p h p cc thnh ph n cho tr c D ng l p ( bao hm cc d ng ty ch n, ch n , l p t nh t 0 l n, l p t nh t 1 l n trong DTD) : M t vi c cho php l p l i c a cc thnh ph n v i cc b n s + Tu n t D ng tu n t : S d ng th /t kha sequence C php : <xs:complexType name="Ten_kieu"> <xs:sequence> Thanh_phan_1 Thanh_phan_2 .... Thanh_phan_k </xs:sequence> .... </xs:complexType> ngha : Cc thnh ph n Thanh_phan_1, Thanh_phan_2, ... Thanh_phan_k ph i xu t hi n duy nh t 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 ch n D ng ty ch n : S d ng 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 ki u Ten_kieu ph i s d ng m t thnh ph n trong s cc thnh ph n Thanh_phan_1, Thanh_phan_2, ... Thanh_phan_k D ng ny ch s d ng trong m t s tr ng h p c th v khng thng d ng ( 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> Cc th c khai bo ki u X ph i bao hm bn trong m t trong 2 th con sau Th c tn A v c ki u A ( cho php tn ki u v tn th trng nhau ) Th c tn B v c ki u l chu i +L p D ng l p : S d ng thu c tnh/t kha minOccurs , maxOcuurs C php ( thng d ng) <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 ki u Ten_kieu c ch a bn trong th con c tn Ten_the_con v i s l n l p t i thi u l So_lan_lap_toi_thieu v s l n l p t i a l So_lan_lap_toi_da. M t s tr ng h p thng d ng Ty ch n ( c th c hay khng ) minOccurs=0 maxOccurs=1 L p l i t nh t 0 l n ( nhi u ho c khng c l n no ) minOccurs=0 L p l i t nh t 1 l n

minOccurs=1 L p l i t nh t 1 l n v nhi u nh t 5 l n minOccurs=1 maxOccurs=5 L p l i ng 3 l n 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 thu c tnh --> ... </xs:complexType> <xs:complexType name="DA_GIAC"> <xs:sequence> <xs:element name="DIEM type="DIEM" minOccurs=3 maxOccurs=3 /> </xs:sequence> <-- M t cc thu c tnh --> ... </xs:complexType> <xs:complexType name="KHOI"> <xs:sequence> <xs:element name="LOP type="LOP" minOccurs=0 maxOccurs=12 /> </xs:sequence> <-- M t cc thu c 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 thu c tnh --> ... </xs:complexType> - c t thu c tnh

Dac_ta_thuoc_tinh Cho php m t h th ng cc thu c tnh c a m t th C php : <xs:complexType name="Ten_kieu"> c t c u trc n i dung .... <xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh" Tinh_chat_thuoc_tinh /> .... </xs:complexType> Ten_thuoc_tinh : tn c a thu c tnh c a ki u ang xt, khng cho php 2 thu c tnh c cng tn Kieu_thuoc_tinh : Tn c a ki u c s hay ki u n gi n Tinh_chat_thuoc_tinh : M t m t s tnh ch t c a thu c tnh. XML Shema cho php m t r t nhi u lo i tnh ch t khc nhau, m i tnh ch t tng ng v i m t 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 /> M t s tnh ch t thng d ng nh sau Gi tr nh s n : t kha default Gi tr c nh : t kha fixed Ty ch n ( c hay khng c s d ng : 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 V i DTD, c t c u trc ti li u XML t p trung vo vi c c t cc th v i r t nhi u d ng b tr , s p x p cc thnh ph n trong th . V i XML Schema, c t c u trc ti li u XML t p trung vo vi c c t cc ki u, c t cc th trong XML Schema r t n gi n v ch nh m vo m c tiu chnh l xc nh ki u s c s d ng c a th . Cc thng tin c n m t khi c t m t th trong XML bao g m

- Tn th - Ki u c a th - M t s tnh ch t khc c a th D ng khai bo chung nh sau <xs:element name=Ten_the type=Ten_kieu Thuoc_tinh_khac /> Ten_the : Tn c a th ang xt v tun theo cch t tn c a nh chu n XML Ten_kieu : Tn c a ki u tng ng m t thng tin v th . Thng th ng tn ki u v tn th s c t trng nhau Thuoc_tinh_khac : C nhi u lo i thu c tnh khc nhau cho php m t cc tnh ch t c a th m trong thng d ng nh t l 2 thu c tnh minOccurs, maxOccurs ( trnh by ). Khi c t cc th v n quan trong nh t l xc nh lo i ki u s dng trong th . Ty thu c vo lo i th ( theo cch phn lo i c a ph n sau ) lo i ki u tng ng s c dng * Phn lo i th H th ng phn lo i th : C r t nhi u cch phn lo i cc th , m i cch ph c v cho m t m c tiu khc nhau. V i m c tiu phn lo i l nh m xc nh lo i ki u tng ng c dng, h th ng cc th trong ti li u XML c th c phn lo i nh sau. Th bao g m 2 nhm chnh Nhm 1 : Nhm cc th c thu c tnh Nhm 2 : Nhm cc th khng c thu c tnh V i cc th c thu c tnh, nh t thi t ph i s d ng ki u ph c h p. == > Khai bo ki u ph c h p Y (c th dng tn th ang xt ) == > S d ng Y l ki u c a th ang xt V i cc th khng c thu c tnh vi c s d ng lo i ki u no ph thu c vo vi c phn lo i chi ti t hn cc th thu c nhm ny Cc th khng c thu c tnh bao g m 2 nhm Nhm 2.1 : Nhm cc th khng c thu c tnh v c ch a cc th con bn trong Nhm 2.2 : Nhm cc th khng c thu c tnh v khng ch a cc th con bn trong ( n i dung l chu i vn b n) Tng t nh nhm 1, cc th thu c nhm 2.1 nh t thi t ph i s d ng ki u ph c h p. == > Khai bo ki u ph c h p Y (c th dng tn th ang xt ) == > S d ng Y l ki u c a th ang xt Cc th thu c nhm 2.2 c th ch n s d ng ki u c s hay ki u n gi n ph thu c vo mi n gi tr MGT c a chu i vn b n bn trong th

N u mi n gi tr MGT ny tng ng v i mi n gi tr c a m t ki u c s X no == > ki u c s X s c dng N u mi n gi tr MGT ny ch tng ng v i m t t p con c a mi n gi tr m t ki u c s X no == > Khai bo ki u n gi n Y d a trn ki u c s X == > S d ng Y l ki u c a th ang xt * M t thu t gi i c t th c t th g c X v i thng tin v ki u tng ng ( gi s l A) Xt lo i ki u c a A A l ki u ph c h p : c t ki u ph c h p A bao g m c t h th ng cc th con c a th g c X c t th X1 v i thng tin v ki u (gi c t th X2 v i thng tin v ki u (gi ... c t th XK v i thng tin v ki u (gi c t h th ng cc thu c tnh c a th g c X c t thu c tnh T1 v i thng tin v ki c t thu c tnh T2 v i thng tin v ki c t thu c tnh Tk v i thng tin v ki A l ki u n gi n : c t ki u n gi n A bao g m c t ki u c s c a A c t cc h n ch trn ki u c s c a A A l ki u c s : Khng c n c t thm Xt lo i ki u c a A1 Xt lo i ki u c a A2 ... Xt lo i ki u c a Ak Xt lo i ki u c a B1 Xt lo i ki u c a B2 ... Xt lo i ki u c a Bk Xt lo i ki u c a T1 Xt lo i ki u c a T2 ... Xt lo i ki u c a Tk ..... Xt lo i ki u c a cc ki u pht sinh thm khi c t cc ki u pha trn ..... V. Bi t p

s l A1) s l A2) s l Ak) u (gi s l B1) u (gi s l B2) u (gi s l Bk)

...

1. c t Yu c u chung c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng cc i t ng trong th c t H ng d n chung : - S d ng th g c bi u di n thng tin c a i t ng trong th c t ang xt - S d ng cc th con c a th g c bi u di n cc " i t ng con" c a i t ng th c t ang xt ( v ti p t c n u " i t ng con" ang xt l i bao g m bn trong cc " i t ng con" khc ) * Dy s nguyn Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-Schema ) c a ti li u XML tng ng dy cc s nguyn 1, 4, 5, -9, 10 * Ma tr n cc s nguyn Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng ma tr n cc s nguyn 1 4 12 -9 10 20 0 4 44 * a gic Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng a gic ABCDE v i A(0,0) , B(1,6) , C(1,1) , D(7,7) , E(0,2) * Bi u th c s nguyn Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng bi u th c s h c ( ch bao g m cc s nguyn dng v 2 php ton +, * ) P = 4*5 +10*2*6 + 15 * Bi u th c phn s Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng bi u th c phn s ( ch bao g m 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 kh i l p

Yu c ct kh i l Kh Kh Kh

u n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng danh sch cc p c a tr ng c p X. Bi t r ng tr ng X c 3 kh i l p 10,11,12. i 10 c 8 l p: 10A1, 10A2,10A3, 10A4, 10A5,10A6,10A7,10A8 i 11 c 7 l p : 11A1,11A2,11A4,11A5,11A6,11A7,11A8 i 12 c 5 l p : 12A1, 12A2,12A4, 12A6,12A8

* Bn c gnh Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng tr ng thi c a m t bn c gnh * Phi u i m Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng phi u i m c a m t h c sinh Phi u i m H v tn : ....... Gi i tnh :.... Ngy sinh :.... a ch Mn h c TBHK1 TBHK2 TBNK .... ..... * Ha n bn hng Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng ha n bn hng Ha n bn hng Khch hng : ....... Ngy l p :.... Stt M t hng S l ng n gi Thnh ti n .... ..... T ng tr gi : ...... * B ng ch m cng Yu c u c t n i dung & c u c u trc ( v i DTD hay Xml-schema ) c a ti li u XML tng ng b ng ch m cng thng c a m t dn v B ng ch m cng thng .... n v ....... Nhn vin S ngy cng .... ..... 2. Xy d ng ng d ng

Yu c u chung Thi t k v l p trnh ng d ng v i cc yu c u ch c nng cho tr c H ng d n chung 1. Thi t k d li u S d ng t p tin Xml bi u di n thng tin cc i t ng trong th c t 2. Thi t k x l S d ng (n+1) cc n th v i n l s l ng cc lo i th c trong t p tin Xml ( n th x l chnh v n n th x l trn n lo i th khc nhau ) n th x l chnh Bao g m (m+1) hm x l m hm x l tng ng m ch c nng Hm x l chnh Main v Khai bo cc bi n c d li u t t p tin Xml vo cc bi n lin quan Xu t th c n Chi_so= Ch c nng ch n t ng i dng G i th c hi n hm x l ch c nng tng ng v i Chi_so n th x l trn ki u d li u X ( th lo i X) XL_X ng thu c tnh c a th - Cc hm x l lin quan ki u ang xt * Tnh ti n thu phng H th ng th c t Khch s ng X c a ch 123 ABC v i n tho i 333111 c b ng n gi thu phng nh sau Lo i phng n gi/Ngy Lo i A 250.000 Lo i B 220.000 180.000 Lo i C c bi t 340.000 Ghi ch : N u khch thu qu 5 ngy c gi m 10% Yu c u Thi t k v l p trnh ng d ng tnh ti n thu phng v i cc yu c u ch c nng nh sau 1. C p nh t thng tin v khch s n 2. B sung lo i phng m i 3. C p nh t thng tin v lo i phng 4. Thanh l lo i phng 5. Tnh ti n thu phng H ng d n thi t k 1. Thi t k d li u S d ng t p tin Khach_san.xml v i Th g c : Bi u di n khch s n Cc th con c a th g c : Bi u di n cc lo i phng 2. Thi t k x l S d ng 3 n th cc hm x l on th x l chnh Tinh_tien_thue_phong - K u c u trc v i cc thnh ph n tng

Bao g m hm x l chnh Main v 5 hm x l tng ng 5 ch c nng n th XL_KHACH_SAN - Ki u c u trc KHACH_SAN - Cc hm x l lin quan khch s n n th XL_LOAI_PHONG - Ki u c u trc LOAI_PHONG - Cc hm x l lin quan lo i phng - D li u c t c u trc ( v i 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 > <!ATTLIST LOAI_PHONG Ten CDATA, Don_gia CDATA > ]> c t c u trc ( v i 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> N i dung : <KHACH_SAN Ten="222" Dien_thoai="2222" Dia_chi="33333" Muc_giam="7" Ty_le_giam="10"> <LOAI_PHONG Ten="Lo i A" Don_gia="250000" />

<LOAI_PHONG Ten="Lo i B" Don_gia="220000" /> <LOAI_PHONG Ten="Lo i C" Don_gia="180000" /> <LOAI_PHONG Ten=" c bi t" 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 ti n thu phng khch s n" & 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 = "" Thuc_don &= "1. C p nh t thng tin v khch s n" & vbCrLf Thuc_don &= "2. B sung lo i phng m i" & vbCrLf Thuc_don &= "3. C p nh t thng tin v lo i phng" & vbCrLf Thuc_don &= "4. Thanh l lo i phng" & vbCrLf Thuc_don &= "5. Tnh ti n thu phng " & vbCrLf Thuc_don &= "6. K t thc " & vbCrLf Dim Chi_so As Integer Do Console.Write(Thuc_don) Chi_so = XL_SO_NGUYEN.Nhap("Ch n ch c 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() ' Xu t thng tin hi n nay c a khch s n ' Nh p thng tin m i vo Ks ' Ghi Ks v i Duong_dan End Sub Public Sub Bo_sung_loai_phong_moi()

Dim Lp As LOAI_PHONG ' Nh p thng tin cho Lp ' B sung Lp vo danh sch lo i phng c a Ks ' Ghi Ks v i duong_dan End Sub Public Sub Cap_nhat_thong_tin_loai_phong() Dim Lp As LOAI_PHONG ' Xu t thng tin b ng n gi ( danh sch lo i phng) ' Cho ng i dng nh p Chi_so c a lo i phng c n c p nh t ' Nh p thng tin cho Lp ' C p nh t lo i phng th Chi_so v i Lp ' Ghi Ks v i Duong_dan End Sub Public Sub Thanh_ly_loai_phong() ' Xu t thng tin b ng n gi ( danh sch lo i phng) ' Cho ng i dng nh p Chi_so c a lo i phng c n thanh l ' Xa lo i phng th Chi_so trong damnh sch lo i phng ' Ghi Ks v i Duong_dan End Sub Public Sub Tinh_tien_thue_phong() Dim So_ngay As Integer Dim Lp As LOAI_PHONG Dim Tien As Integer ' Nh p So_ngay ' Nh p Chi_so c a lo i phng thu ' Lp = Lo i phng th Chi_so trong danh sch lo i phng c a Ks ' Tnh ti n d a trn qui t c gi m gi ' T o v xu t chu i k t xu t Chuoi ' End Sub Public Sub Ket_thuc() Console.WriteLine("Cho t m bi t") 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_SAN

Dim Kq As KHACH_SAN Dim Tai_lieu As New XmlDocument Tai_lieu.Load(Duong_dan) ' Cha x l l i 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 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 s n:" & Ks.Ten & vbCrLf Kq &= "i n tho i " & Ks.Dien_thoai & vbCrLf Kq &= " a ch " & Ks.Dia_chi & vbCrLf Kq &= "M c gi m " & Ks.Muc_giam & vbCrLf Kq &= "T l gi m " & 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 & "Lo i 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 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 ngo i t H th ng th c t C a hng i ti n X c a ch 124 ABC v i n tho i 333112 c b ng t Ngo i t T gi .... ....

gi nh sau

Yu c u Thi t k v l p trnh ng d ng i ngo i t v i cc yu c u ch c nng nh sau

1. C p nh t thng tin v c a hng i ti n 2. B sung ngo i t m i 3. Cp nh t t gi c a ngo i t 4. Thanh l ngo i t 5. Tnh ti n khi i ngo i t H ng d n thi t k 1. Thi t k d li u S d ng t p tin Cua_hang.xml v i Th g c : Bi u di n thng tin v c a hng Cc th con c a th g c : Bi u di n cc ngo i t 2. Thi t k x l S d ng 3 n th cc hm x l on th x l chnh Doi_ngoai_te Bao g m hm x l chnh Main v 5 hm x l tng ng 5 ch c nng n th XL_CUA_HANG - Ki u c u trc CUA_HANG - Cc hm x l lin quan c a hng i ti n n th XL_NGOAI_TE - Ki u c u trc NGOAI_TE - Cc hm x l lin quan ngo i t * Tr c nghi m Yu c u Thi t k v l p trnh ng d ng tr c nghi m v i cc yu c u sau 1. Bin so n cu h i m i 2. C p nh t cu h i so n 3. Xa cu h i so n 4. T rn luy n v i cc cu h i so n Ghi ch : - Cu h i tr c nghi m ch bao g m vn b n, c nhi u ch n l a khc nhau v ch c duy nh t m t p n ng - V i ch c nng t rn luy n, ng d ng pht sinh ng u nhin 1 cu h i H ng d n thi t k 1. Thi t k d li u S d ng t p tin Trac_nghiem.xml v i Th g c (DE_BAI) : Bi u di n thng tin chung c a cc cu h i ( n u c n thi t ) Cc th con c a th g c (CAU_HOI) : Bi u di n cc cu h i Cc th con c a th CAU_HOI : Bi u di n cc ch n l a 2. Thi t k x l S d ng 4 n th cc hm x l on th x l chnh Trac_nghiem Bao g m hm x l chnh Main v 4 hm x l tng ng 4 ch c nng n th XL_DE_BAI - Ki u c u trc DE_BAI - Cc hm x l lin quan danh sch cc cu h i trong bi

n th XL_CAU_HOI - Ki u c u trc CAU_HOI - Cc hm x l lin quan cu h i n th XL_CHON_LUA - Ki u c u trc CHON_LUA - Cc hm x l lin quan ch n l a * X p h ng bng Yu c u : Thi t k v l p trnh ng d ng x p h ng bng c a gi i v ch bng VN v i cc yu c u sau 1. Ghi nh n k t qu cc tr n u 2. L p b ng x p h ng

Ghi ch : y l bi t p dnh cho cc sinh vin t x p mnh vo lo i kh/gi i === > Khng c h ng d n thm

Chng 3 : Truy xu t ti li u XML v i DOM


I. M hnh i t ng DOM 1. M hnh i t ng M c tiu : n t p, h th ng ha cc ki n th c v m hnh i t ng === > Gip sinh vin t tm hi u v ng d ng nhanh m t cng ngh c th === > M u cho vi c trnh by cng ngh DOM * i t ng Bi n : Vng nh trong b nh chnh cho php bi u di n cc thng tin th c t bn trong ph n m m C u trc d li u : M t lo i bi n c bi t v i cc c i m sau - Vng nh c c u trc b i ( bao g m bn trong ) cc "vng nh con" - Cho php bi u di n tr n v n/tch h p cc thng tin c a m t i t ng trong th c t i t ng : M t lo i c u trc d li u c bi t v i cc c i m sau - Ch cho php m t s hm ( Hm thnh ph n ) truy xu t n c u trc c a cc "vng nh con " ( Bi n thnh ph n ) - Vi c g i th c hi n cc hm thnh ph n theo c php c bi t - Cho php nh ngha cc i t ng m i d a trn nh ngha c a cc i t ng c - Cho php bi u di n d i d ng t nhin nh t thng tin v cc x l lin quan m t i t ng trong th c t Phn lo i i t ng C r t nhi u cch phn lo i i t ng d a trn cc tiu ch khc nhau. N u d a trn tiu ch v "Ngu n g c t o l p" c th chia cc i t ng thnh 2 lo i - i t ng th vi n : Cc i t ng "c s n" trong cc mi tr ng l p trnh - i t ng t nh ngha Cc i t ng do ng i pht tri n ph n m m t nh ngha (thi t k ) v th c hi n ( l p trnh) * i t ng & Xy d ng ph n m m M hnh i t ng H th ng cc i t ng cho php bi u di n cc i t ng trong th c t M hnh i t ng th vi n : H th ng cc i t ng th vi n cho php bi u di n cc i t ng trong th c t M hnh i t ng t nh ngha : H th ng cc i t ng t nh ngha cho php bi u di n cc i t ng trong th c t ==== > Nghin c u v ng d ng cng ngh X : Tm hi u v m hnh i t ng th vi n c a cng ngh X Xy d ng ng d ng ph n m m theo cng ngh X S d ng cc i t ng th vi n c a cng ngh X tr c ti p bn trong ph n m m hay

Xy d ng m hnh i t ng t nh ngha d a vo m hnh i t ng th vi n c a cng ngh X * M hnh i t ng d li u i t ng d li u Mt lo i i t ng c bi t cho php bi u di n cc thng tin lu tr theo m t cng ngh lu tr no M hnh i t ng d li u H th ng i t ng cho php bi u di n ton b cc thng tin lu tr theo m t cng ngh lu tr no M hnh i t ng d li u th vi n H th ng i t ng th vi n cho php bi u di n ton b cc thng tin lu tr theo m t cng ngh lu tr no V d : Cc m hnh i t ng d li u th vi n 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 t ng d li u th vi n lin quan cng ngh lu tr dng XML DOM XML M hnh i t ng d li u th vi n lin quan cng ngh lu tr dng Microsof Office Word Excel * M hnh i t ng th hi n i t ng th hi n Mt lo i i t ng c bi t cho php bi u di n cc thng tin d i d ng xem c theo m t cng ngh giao di n ng i dng M hnh i t ng th hi n H th ng i t ng c bi t cho php bi u di n ton b cc thng tin d i d ng xem c theo m t cng ngh giao di n ng i dng no M hnh i t ng th hi n th vi n H th ng i t ng th vi n cho php bi u di n cc thng tin d i d ng xem c theo m t cng ngh giao di n ng i dng V d : Cc m hnh i t ng th th vi n lin quan cng ngh giao di n ng i dng trn Windows Form, TreeView, DataGrid, ... ( Visual Studio 6.0 ) Form,DataGridView , ... ( Visual Studio.NET ) JFrame, JTree, JTextBox , ... (JBuilder 10.0 ) M hnh i t ng th hi n th vi n trn Web DOM HTML 2. Khi ni m v DOM M c tiu : Gi i thi u khi ni m c b n v DOM ( Document Object Model ) DOM d i gc nhn ng i xy d ng ng d ng trn mi tr ng c th

DOM l m t m hnh i t ng d li u th vi n cho php bi u di n thng tin v cc x l lin quan m t ti li u XML trong b nh chnh V d : V i cc l p trnh vin trn mi tr ng Visual Studio.NET DOM l th vi n cc i t ng XmlDocument, XmlElement , ....cc i t ng ny khi c n s d ng c n ph i khai bo theo c php v tn t c th c a ngn ng ang dng using System.Xml ; v i C# Imports System.Xml v i VB.NET V i cc l p trnh vin trn mi tr ng JBuilder 10.0 DOM l th vi n cc i t ng XmlDocument, XmlElement , ....cc i t ng ny khi c n s d ng c n ph i khai bo theo c php c th import javax.xml.parser.*; import org.w3c.dom.* ; import org.w3c.dom.Node.* ; DOM d i gc nhn ng i pht tri n th vi n c a mi tr ng pht tri n ph n m m DOM l nh chu n rng bu c trn ki n trc c a cc m hnh i t ng th vi n d li u c s d ng trong cc mi tr ng pht tri n ph n m m === > T t c cc m hnh i t ng th vi n DOM trong cc mi tr ng pht tri n ph n m m khc nhau - Th ng nh t v cch s d ng ( Tn , cch g i hm, tham s , ....) - Ch khc bi t nhau v thu t gi i x l bn trong V i gc nhn ny DOM chnh l h th ng giao di n l p trnh (Interface ) m cc i t ng th vi n ph i ch p nh n 3. H th ng cc i t ng c a DOM M c tiu : Trnh by khi ni m v i t ng c a DOM N i dung : Bao g m 2 ph n Ph n 1 : n t p v m hnh i t ng d li u quan h == > Gip sinh vin c th tm hi u v s d ng nhanh cc i t ng th vi n lin quan cng ngh lu tr CSDL == > M u cho ph n trnh by v m hnh DOM Ph n 2 : Trnh by cc i t ng chnh c a DOM 1. Cc i t ng d li u quan h * T ch c lu tr c a cng ngh CSDL CSDL : Bao g m nhi u b ng d li u B ng d li u : - Bao g m nhi u dng d li u - T t c cc dng u c chung cu trc theo cc c t c a b ng - C t kha chnh l c t cho php xc nh duy nh t dng trrong b ng v c s d ng lin k t cc dng c a cc b ng khc nhau Dng d li u : Lu tr cc thng tin trong th c t * Cc i t ng chnh c a m hnh i t ng d li u quan h

i t ng CSDL Bao g m nhi u i t ng b ng d li u i t ng b ng d li u - Bao g m nhi u i t ng dng d li u - T t c cc i t ng dng u c chung cu trc theo cc i t ng c t c a i t ng b ng - i t ng c t kha chnh l i t ng c t cho php xc nh duy nh t i t ng dng trrong i t ng b ng v c s d ng lin k t cc i t ng dng c a cc i t ng b ng khc nhau i t ng dng d li u : Lu tr cc thng tin trong th c t * Cc i t ng chnh c a m hnh i t ng th vi n ADO.NET i t ng CSDL DataSet Bao g m nhi u i t ng b ng d li u DataTable i t ng b ng d li u DataTable - Bao g m nhi u i t ng dng d li u DataRow - T t c cc DataRow u c chung cu trc theo cc i t ng c t DataColumn c a DataTable - i t ng c t kha chnh l i t ng c t cho php xc nh duy nh t i t ng dng trrong i t ng b ng v c s d ng lin k t cc i t ng dng c a cc i t ng b ng khc nhau i t ng dng d li u : DataRow Lu tr cc thng tin trong th c t 1. Cc i t ng d li u XML * T ch c lu tr c a cng ngh lu tr XML Ti li u XML : Bao g m nhi u th d li u B t bu c ph i ch a duy nh t m t th g c Th d li u : - C th bao g m nhi u thu c tnh - C th bao g m nhi u th d li u - C th lu tr hay khng lu tr thng tin trong th c t Thu c tnh Lu tr cc thng tin trong th c t * Cc i t ng chnh c a m hnh i t ng d li u XML i t ng ti li u XML XmlDocumen Bao g m nhi u i t ng th d li u XmlElement Cho php s d ng th g c qua i t ng DocumentElement i t ng th d li u XmlElement - Bao g m nhi u i t ng thu c tnh XmlAttribute - Bao g m nhi u i t ng th con XmlElement - C th c hay khng c i t ng gi tr XmlValue i t ng thu c tnh XmlAttribute Lu tr thng tin trong th c t Ghi ch : - Ngoi cc i t ng chnh v thng d ng trn, DOM bao hm cc lo i i t ng khc ( t thng d ng hn ) tng ng v i cc lo i th khc nhau c a ti li u XML nh XmlCDataSection, XmlEntity, ...Cc i t ng ny cho php truy xu t thng tin tng ng v i cc lo i th khc nhau c a ti li u XML - T t c cc i t ng c a DOM u ch p nh n giao di n chung XmlNode tng ng v i h th ng cc hm x l c b n trn m i th c a ti li u XML

* XmlNode Giao di n XmlNode Hm nodeType nodeName nodeValue ngha Tr v lo i nt Tr v tn nt Tr v gi tr tng ng Ghi ch

S d ng ch y u v i lo i thu c tnh hay n i dung th khng c th con

selectSingleNode Tr v m t nt (Node) theo d a trn chu i truy v n Xpath selectNodes Tr v m t t p h p nt (NodeList) theo d a trn chu i truy v n Xpath childNodes Tr v t p h p cc nt con (NodeList) c a nt ang xt parentNode Tr v nt cha (Node) c a nt ang xt) ownerDocument Tr v ti li u (Document) ch a nt ang xt appendChild B sung nt con (Node) vo nt ang xt removeChild Xa nt con c a nt ang xt reaplaceChild Thay th m t nt con ny b ng nt con khc c a nt ang xt cloneNode To b n sao c a nt ang xt S d ng tham s quy t nh t o b n sau c n (khng xt cc nt con ) hay b n sau su ( ng c l i) * XmlDocument i t ngXmlDocument Hm createElement ngha Tr v nt (Element) v i tn nt creatAttribute Tr v thu c tnh (Attribute) v i tn thu c tnh getElementsByTagName Tr v t p h p cc nt con (NodeList) theo tn trong tham s Load Ti p nh n d li u t ngu n no ( t p tin l thng d ng nh t ) LoadXML Ti p nh n d li u t chu i c c u trc ti li u XML Ghi ch

S d ng cho m i lo i ti li u c c u trc S d ng cho m i lo i ti li u c c u trc

Save

K t xu t d li u n ngu n no ( t p tin l thng d ng nh t )

S d ng cho m i lo i ti li u c c u trc

* XmlElement i t ngXmlElement Hm getAttribute ngha Tr v gi tr c a thu c tnh c tn trong tham s getAttributeNode Tr v i t ng thu c tnh (Attr) v i tn trong tham s setAttribute Gn gi tr cho thu c tnh c tn trong tham s removeAttribute Xa thu c tnh c tn trong tham s removeAttributeNode Xa i t ng thu c tnh (Attr) c trong tham s getElementsByTagName Tr v t p h p cc nt con (NodeList) theo tn trong tham s 2. M t s k thu t l p trnh v i DOM * c ti li u XML V n : C n c ti li u XML trn b nh ph vo t o i t ng XmlDocument tng ng H ng gi i quy t : Xy d ng hm c ti li u v i Tham s : ng d n c a t p tin Xml tng ng K t qu : i t ng XmlDocument Thu t gi i Khai bo i t ng XmlDocument Kq Kq = D li u c t t p tin Xml v i Duong_dan ( X l thng bo l i n u ng d n sai hay t p tin tng ng khng c c u trc t p tin XML) Tr Kq Ghi ch : c th ti s d ng hm trn c th t o hm c ti li u - Bn trong m t n th ( v d LT_XML ) - Bn trong m t l p i t ng ( v i khai bo l hm m c l p ) Ghi ch

T o thu c tnh m i n u cha c

L p trnh v i 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 = "L i khi c t p tin " & Duong_dan & vbCrLf Thong_bao &= Loi.Message Console.WriteLine(Thong_bao) ' Hay MessageBox.Show(Thong_bao) End Try Return Kq End Function - Bi t p 1 M c tiu : - T o l p v s d ng hm c ti li u === > Ti s d ng cho cc ng d ng khc - Tm hi u v cc l i c th c khi c Yu c u : Vi t chng trnh nh p vo ng d n c a m t t p tin Xml v sau c, xu t n i dung d i d ng chu i c a cc th bn trong t p tin Xml Ghi ch : C n th nghi m v i cc tr ng h p l i khc nhau - ng d n sai - T p tin khng c c u trc theo nh chu n XML - Bi t p 2 M c tiu : - Tm hi u v s d ng m t s hm c a DOM - M u cho vi c trnh by ngn ng truy v n XPath Yu c u : Vi t chng trnh nh p vo ng d n c a m t t p tin Xml v sau l n l t th c hi n cc cng vi c sau a) Xu t thng tin th ng k T ng s cc th c a t p tin XML T ng s thu c tnh c a t p tin XML b) Nh p vo chu i Ten v cho bi t c bao nhiu th trong t p tin c Ten tng ng * Ghi ti li u XML V n : C n ghi i t ng XmlDocument vo t p tin trn b nh ph H ng gi i quy t : Xy d ng hm ghi ti li u v i Tham s : i t ng XmlDocument , ng d n c a t p tin Xml tng ng

K t qu : Gi tr logic Thu t gi i Khai bo bi n logic Kq Kq = K t qu khi ghi ( X l thng bo l i khi ghi ) Tr Kq Ghi ch : c th ti s d ng hm trn c th t o hm c ti li u - Bn trong m t n th ( v d LT_XML ) - Bn trong m t l p i t ng ( v i khai bo l hm m c l p )

L p trnh v i 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 Tai_lieu.Save(Duong_dan) Catch Loi As Exception Kq = False Dim Thong_bao As String = "L i khi ghi t p tin " & Duong_dan & vbCrLf Thong_bao &= Loi.Message Console.WriteLine(Thong_bao) ' Hay MessageBox.Show(Thong_bao) End Try Return Kq End Function - Bi t p 1 M c tiu : - T o l p v s d ng hm ghi ti li u === > Ti s d ng cho cc ng d ng khc - Tm hi u v cc l i c th c khi ghi - Tm hi u v s d ng m t s hm c a DOM Yu c u : Vi t chng trnh nh p vo 2 ng d n tng ng 2 t p tin Xml. c 2 t p tin trn vo 2 i t ng XmlDocument Tai_lieu_1,Tai_lieu_2 v sau t o i t ng Tai_lieu bao g m t t c cc i t ng c a Tai_lieu_1,Tai_lieu_2. Ghi Tai_lieu vo t p tin Kq.xml

- Bi t p 2 M c tiu : - Tm hi u v s d ng m t s hm c a DOM - M u cho vi c trnh by v Xpath Yu c u :

Vi t chng trnh nh p vo ng d n tng ng t p tin Xml v sau t o t p tin ( ghi ) c tn Nut_la.xml bao g m t t c cc th khng ch a th con c a t p tin ang xt

* c i t ng t t p tin XML V n : C n c d li - c d li u c - c d li u c - c d li u c - c d li u c a i t i t i t i t

uc a a a a

i t ng x thu c lo i X tng ng v i th X trong t p tin XML ng phn s Ps trong t p tin Phan_so.xml ng i m Tam trong t p tin Duong_tron.xml ng lo i phng trong t p tin Bang_don_gia.xml ng ngo i t trong t p tin Bang_ty_gia.xml

Nh n xt : Cch c v t o i t ng x tng ng th X ph thu c vo X c ph i l th g c hay khng N u X l th g c === > c tr c ti p N u X l th con c a th g c == > Ph i c th g c v sau kh i t o x t i t ng XmlElement tng ng H ng gi i quy t v i X l th g c Xy d ng hm c ( hm m c l p ) c a l p i t ng XL_X Tham s : ng d n c a t p tin Xml tng ng K t qu : i t ng x thu c l p XL_X Thu t gi i Khai bo i t ng Kq Tai_lieu = i t ng XmlDocument c t t p tin v i Duong_dan Goc = i t ng XmlElement tng ng g c c a Tai_lieu Gn cc bi n thnh ph n c a Kq tng ng cc thu c tnh c a Goc Tr Kq H ng gi i quy t v i X l th con Xy d ng hm kh i t o ( hm m c l p ) c a l p i t ng XL_X Tham s : i t ng XmlElement Nut K t qu : i t ng x thu c l p XL_X Thu t gi i Khai bo i t ng Kq Gn cc bi n thnh ph n c a Kq tng ng cc thu c tnh c a Nut Tr Kq

* Ghi i t ng vo t p tin XML V n : C n ghi d li u c a i t ng x thu c lo i X vo v i th X trong t p tin XML - Ghi d li u c a i t ng phn s Ps trong t p tin Phan_so.xml - Ghi d li u c a i t ng i m Tam trong t p tin Duong_tron.xml - Ghi d li u c a i t ng lo i phng trong t p tin Bang_don_gia.xml - Ghi d li u c a i t ng ngo i t trong t p tin Bang_ty_gia.xml

Nh n xt : Cch ghi i t ng x tng ng th X ph thu c vo X c ph i l th g c hay khng N u X l th g c === >T o th X v Ghi tr c ti p N u X l th con c a th g c == > Ch t o th XmlElement tng ng v sau b sung vo th g c tr c khi ghi H ng gi i quy t v i X l th g c Xy d ng hm ghi c a l p i t ng XL_X Tham s : ng d n c a t p tin Xml tng ng K t qu : Gi tr logic Thu t gi i Khai bo bi n logic Kq Tai_lieu = i t ng XmlDocument Goc = i t ng XmlElement c t o t Tai_lieu Gn gi tr cc thu c tnh c a Goc tng ng bi n thnh ph n c a i t ng B sung Goc vo Tai_lieu Kq = K t qu khi ghi Tai_lieu v i Duong_dan Tr Kq H ng gi i quy t v i X l th con Xy d ng hm t o nt c a l p i t ng XL_X Tham s : i t ng XmlDocument Tai_lieu K t qu : i t ng XmlElement Thu t gi i Khai bo i t ng XmlElement Kq Kq = i t ng XmlElement t o ra t Tai_l;eu Gn cc thu c tnh c a Kq tng ng cc bi n thnh ph n c a i t ng Tr Kq * Th hi n cy i t ng V n : C n th hi n cc thng tin c a t p tin Xml d i d ng cy tng ng c u trc t ch c cc th V d Th Th Th : hi n cy Cng ty - n v hi n cy Tr ng - Kh i - L p hi n cy cc s nguyn

H ng gi i quy t chung : S d ng i t ng th hi n cy trong th vi n i t ng giao di n ng i dng H ng gi i quy t c th v i Visual Studio.NET S d ng i t ng th hi n TreeView 3. Ngn ng XPath

M c tiu : - M u v ngn ng XPath trong ng c nh k t h p v i DOM ===> S ti p t c trnh by chi ti t v h th ng cc hm khi k t h p v i XSLT ( Chng 4 ) - Cung c p ki n th c, khi ni m t ng qut v ngn ng truy v n thng tin === > Gip sinh vin t tm hi u v s d ng t t cc ngn ng truy v n khc N i dung : Truy v n thng tin : ni m chung v x l truy v n thng tin Ngn ng truy v n thng tin : ni m chung v cc ngn ng truy v n thng tin Ngn ng truy v n XPath : Gi i thi u v Xpath, m t lo i ngn ng truy v n thng tin v i ti li u XML Chu i nh v : Trnh by chi ti t cch nh v cc nt trong Xpath ( n i dung chnh ) Chu i l c : Gi i thi u s l c v cch l c d li u * Truy v n thng tin Truy v n thng tin - M t trong cc lo i x l quan tr ng v r t thng d ng - Lo i x l cho php trch rt thng tin v t p h p con thng tin c a m t t p h p thng tin no T p h p thng tin Khi ni m chung m t cc thng tin u c bi u di n theo m t d ng no . c i m c a t p h p thng tin ang xt l cc thng tin trong t p h p ny ph i bao g m bn trong cc thnh ph n con Tp1,Tp2, ... theo m t c u trc no . V d : M ng 1 chi u cc s nguyn l t p h p cc thng tin v i cc thnh ph n con l cc s nguyn M ng 2 chi u cc phn s l t p h p cc thng tin v i cc thnh ph n con tr c ti p l cc phn s . Thnh ph n con ny l i u c c u trc t 2 thnh ph n con khc l t s , m u s H th ng cc t p tin trong m t a l t p h p cc thng tin v i cc thnh ph n con l cc t p tin, th m c. Cc thnh ph n ny u c c u trc theo d ng cy C s d li u c a phn m m qu n l nhn s l t p h p thng tin v i cc thnh ph n con l cc b ng d li u ( quan h ) : NHAN_VIEN, TRINH_DO, DON_VI , v... . Cc b ng ny c c u trc v lin k t v i nhau theo cc ni m trong m hnh quan h Ti li u XML (v i m hnh DOM ) l m t t p h p thng tin v i cc thnh ph n con l cc nt. Cc nt ny u c s p x p theo d ng cy T p h p con thng tin Khi ni m cho php m t k t qu c a vi c truy v n thng tin trn t p h p thng tin g c. T p h p con ny cng bao g m cc thnh ph n con , cc thnh ph n con cng c cch bi u di n v c u trc ring. C u trc c a thnh ph n con thng th ng l trng v i c u trc trong t p h p g c nhng khng nh t thi t. V d : T p h p cc s nguyn dng trong m ng 1 chi u a cc s nguyn T p h p cc phn s c gi tr l n hn 1 trong m ng 2 chi u cc phn s T p h p cc t p tin c tn b t u v i chu i k t A T p h p cc nhn vin c tu i t 15 n 20 trong danh sch nhn vin T p h p cc nt khng c nt con ( nt l ) trong t p tin Xml * Ngn ng truy v n thng tin

- M t trong cc lo i ngn ng c t - Cho php c t t p h p con cc thng tin c n truy v n d i d ng m t chu i : Chu i truy v n Ty theo d ng thng tin c n truy v n, c r t nhi u ngn ng truy v n c xu t. V i cc c u trc d li u m ng, ngn ng truy v n r t n gin v i chu i truy v n ch bao g m m t ch s ( m ng 1 chi u ) hay bi u th c g m 2 thnh ph n : ch s dng, ch s c t ( m ng 2 chi u ) V d : Truy xu t ph n t th 3 trong m ng 1 chi u a a[3] Truy v n ph n t thu c dng 2, c t 4 trong m ng 2 chi u b b[2][4] V i h th ng t p tin, chu i truy v n c d ng u ng d n bao hm bn trong tn m c v tn t p tin V d : Truy xu t t p tin THONG_BAO.Txt trong th m c g c a C C:\THONG_BAO.Txt Truy xu t cc t p tin trong th m c A l con th m c g c a C C:\A\*.* a , tn cc th

V i c s d li u quan h , ngn ng truy v n u c s d ng thng d ng l ngn ng SQL. Chu i truy v n trong ngn ng ny c c u trc ph c t p hn r t nhi u so v i cc v d trn ( v nh th kh nng truy v n cng tng ln r t nhi u ) V d : Truy xu t h s cc nhn vin c n v l n v X v i m s l 5 Select * From NHAN_VIEN Where MDV=5 V i t p tin XML, m hnh DOM cho php truy v n thng tin v i ngn ng truy v n Xpath. Chu i truy v n trong Xpath c c u trc tng t nh u ng d n ( c a h th ng t p tin ) nhng ph c t p hn r t nhi u v i khi ni m v cc tr c nh v v b l c ( s trnh by chi ti t sau ) V d : Truy xu t cc nt c gi tr l s nguyn dng trong cy cc s nguyn //Nut[@Gia_tri>0] Cc thnh ph n chnh trong ngn ng truy v n M i ngn ng truy v n s c d ng khc nhau v c u trc c a chu i truy v n. Tuy nhin do cng m c tiu l truy v n thng tin, cc chu i truy v n bao hm bn trong 2 thnh ph n chnh sau 1. Thnh ph n nh v 2. Thnh ph n l c Thnh ph n nh v : Cho php c t v tr c a thng tin c n truy v n. K t qu c a vi c nh v l m t t p h p con cc thng tin thu c v tr ang xt. Thnh ph n nh v ch l b c u tin trong qu trnh truy v n, sau b c ny thng th ng c n s d ng thnh phn l c m t chi ti t hn thng tin c n truy v n M i ngn ng truy v n s dng m t s cc t kha ring cho php c t thnh ph n ny V d : Ngn ng truy v n t p tin dng t kha chnh l cc k hi u \ (con tr c ti p) nh v cc t p tin, th c m c c n truy v n trong chu i u ng d n Ngn ng SQL dng 2 t kha chnh l From , Select nh v cc m u tin c n truy v n

Ngn ng Xpath cho php nh theo u ng d n v i k hi u / v m r ng v i cc khi ni m v tr c nh v (t kha descendant nh v thnh ph n con theo m i c p, t kha following-sibling nh thnh ph n con l anh/ em c a thnh ph n ang xt , v.v...)

Thnh ph n l c : Cho php l c k t qu c a b c nh v v i vi c m t cc tnh ch t c a thng tin c n truy v n thng qua bi u th c l c Bi u th c l c thng d ng c d ng bi u th c logic (tng t trong ngn ng l p trnh nhng v i m t s gi i h n ) V d : Ngn ng truy v n t p tin khng c ni m r nt v bi u th c l c m ch cho php s d ng m t s k t c bi t ( k t ? , k t * ) m t chi ti t v tn ( t p tin , th m c ) c n truy v n Ngn ng SQL dng t kho Where k t h p bi u th c logic cho php l c cc m u tin c n truy v n Ngn ng Xpath s d ng bi u th c l c c d ng [ Bi u th c i u ki n ] ch php l c cc nt c n truy v n

* Ngn ng truy v n XPath M t trong cc ngn ng truy v n v i - T p h p thng tin bao g m cc i t ng c a m hnh DOM - T p h p con thng tin : Danh sch cc i t ng c a 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 t p h p cc nt c quan h ( thng d ng l con ) so v i m t t p h p cc nt X cho tr c V d : /AAA/BBB/CCC --- > T p h p t t c cc nt tng ng th CCC L con c a BBB v i BBB l con c a AAA , v i AAA l con c a g c //CCC ---- > T p h p t t c cc nt tng ng th CCC BBB/CCC --- > T p h p t t c cc nt tng ng th CCC L con c a BBB v i BBB l con c a nt ng c nh Chuoi_loc : C d ng sau [ Bieu_thuc_loc ] Bieu_thuc_loc l bi u th c logic cho php xc nh m t t p h p con cc nt c a t p h p cc nt X cho tr c. T p h p con ny l chnh l t p h p cc nt c a X th a i u ki n trong Bieu_thuc_loc. V d : /AAA/BBB/CCC[@x > 5 ] --- > T p h p t t c nt tng ng th CCC - C thu c tnh x l n hn 5 - L con c a th BBB, th BBB l con c a th AAA, th AAA l con c a g c

/AAA/BBB[@y='bbb]/CCC[@x>5] ---- > T p h p t t c nt tng ng th CCC - C thu c tnh x l n hn 5 - L con c a th BBB v i th BBB - C gi tr thu c tnh y l 'bbb' - L con c a th AAA, th AAA l con c a g c - V d minh h a V d 1 : Xt Ti li u Xml v i c t DTD nh sau <?xmlversion="1.0"encoding="utf-8"?> <!DOCTYPE TRUONG [ <!ELEMENT TRUONG (KHOI )+ > <ATTLIST TRUONG Ten CDATA #REQUIRED > <!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 --> > ]> V i nt ng c nh l nt g c (nt c tn l TRUONG). Chu i truy v n Xpath c t t p h p cc l p c s s trn 40, c d ng nh sau child::KHOI/child::LOP[@Si_so>40] V d 2: Chu i truy v n Xpath cho php c t t p h p con cc s nguyn dng trong ti li u XML bi u di n thng tin v cy cc s nguyn c d ng sau ( v i nt ng c nh l nt g c ) descendant::SO_NGUYEN[@Gia_tri >0]

- Chu i nh v

Chu i nh v Xpath cho php nh v theo 2 cch Cch 1 : Dng tr c nh v v i tn c th Cch 2 : Dng d ng t c k v i cc t kha thay th tn tr c nh v Cch 1 l d ng c s , d ng x l tr c ti p c a cc thnh ph n x l chu i Xpath (b x l phn tch , b x l nh v , x l b l c). Tuy nhin cch ny khng cho php m t m t cch ng n g n so v i cch 2 Cch 2 l cch r t thng d ng v cho php m t m t cch ng n g n, sc tch. Tuy nhin khng ph i t t c cc tr c u c t kha thay th nn trong m t s tr ng h p nh t nh cch 1 l cch duy nh t c th s d ng V d 1 : V i ti li u XML bi u di n thng tin cc h c sinh ( DTD pha trn ) Thay v s d ng chu i nh v theo cch 1 child::KHOI/child::LOP[@Si_so>40] C th s d ng d ng t c k trong chu i nh v nh sau KHOI/LOP[@Si_so>40] Hay /TRUONG/KHOI/LOP[@Si_so>40] Cc d ng s d ng ny s cho k t qu hon ton trng kh p v i k t qu c a d ng pha trn V d 2 : V i ti li u XML bi u di n thng tin v bi u th c s h c Thay v s d ng chu i nh v theo cch 1 descendant::SO_NGUYEN[@Gia_tri >0] C th dng d ng t c k //SO_NGUYEN[@Gia_tri >0] (T kha // l d ng vi t t t cho tr c descendant:: ) D ng s d ng ny s cho k t qu hon ton trng kh p v i k t qu c a d ng pha trn

nh v theo tn tr c C php ( d ng thng d ng) Chu i nh vi theo tn tr c c d ng chung sau Ten_truc:: Ten_nut ngha : c t cc t p h p con cc nt c tn l Ten_nut v c v tr tng i so v i t p h p nt ang xt ( k t qu trung gian) theo ngha c a Ten_truc

Tn tr c self

ngha Chnh nt ang xt

Ghi ch t s d ng

child parent descendant descendant-or-self ancestor ancestor-or-self following-sibling preceding-sibling following

peceding

Con tr c ti p Cha tr c ti p T t c con theo m i c p ( khng bao g m nt ang xt) T t c con theo m i c p ( bao g m nt ang xt) T t c cha theo m i c p ( khng bao g m nt ang xt) T t c cha theo m i c p ( bao g m nt ang xt) T t c anh em cng cha( pha sau nt ang xt) T t c anh em cng cha( pha tr c nt ang xt) T t c anh em cng cha ( pha sau nt ang xt ) cng v i cc con theo m i c p T t c anh em cng cha ( pha tr c nt ang xt ) cng v i cc con theo m i c p

R t thng d ng R t thng d ng

t s d ng t s d ng t s d ng

t s d ng

Ghi ch : Cho php dng k t * m t m t nt b t k nh v theo t c k C php ( d ng thng d ng) Chu i nh vi theo tn tr c c d ng chung sau Tu_khoa Ten_nut ngha : c t cc t p h p con cc nt c tn l Ten_nut v c v tr tng i so v i t p h p nt ang xt ( k t qu trung gian) theo ngha c a Ten_truc tng ng v i Tu_khoa Tn tr c self child T kha , / Ghi ch t s d ng R t thng d ng, c th dng xc nh nt ng c nh chnh l Document R t thng d ng

parent descendant

.. //

Chu i l c

Chu i l c

XXX[ Bieu_thuc_loc]

Cho php c t i u ki n l c trn cc thu c tnh c a nt XXX ang xt Bieu_thuc_loc c c php hon ton tng t c php c a bi u th c i u ki n trong ngn ng l p trnh if ( Bi u th c i u ki n ) { // Cc l nh } v i m t s khc bi t m trong quan tr ng nh t l Bi u th c i u ki n c a ngn ng l p trnh bao g m cc bi n Bi u th c i u ki n c a XPath bao g m cc thu c tnh ( c php @Ten_thuoc_tinh ) * Minh h a tr c quan XPath an videoClip minh h a tr c quan vi c s d ng Xpath IV. Bi t p 1. Rn luy n k nng * c t p tin Xml M c tiu : - T o l p v s d ng hm c ti li u === > Ti s d ng cho cc ng d ng khc - Tm hi u v cc l i c th c khi c Yu c u : Vi t chng trnh nh p vo ng d n c a m t t p tin Xml v sau c, xu t n i dung d i d ng chu i c a cc th bn trong t p tin Xml Ghi ch : C n th nghi m v i cc tr ng h p l i khc nhau - ng d n sai - T p tin khng c c u trc theo nh chu n XML * c t p tin Xml v truy v n M c tiu : - Tm hi u v s d ng m t s hm c a DOM - S d ng ngn ng truy v n XPath Yu c u : Vi t chng trnh nh p vo ng d n c a m t t p tin Xml v sau l n l t th c hi n cc cng vi c sau a) Xu t thng tin th ng k T ng s cc th c a t p tin XML T ng s thu c tnh c a t p tin XML b) Nh p vo chu i Ten v cho bi t c bao nhiu th trong t p tin c Ten tng ng

* Ghi t p tin Xml M c tiu : - T o l p v s d ng hm ghi ti li u === > Ti s d ng cho cc ng d ng khc - Tm hi u v cc l i c th c khi ghi - Tm hi u v s d ng m t s hm c a DOM Yu c u : Vi t chng trnh nh p vo 2 ng d n tng ng 2 t p tin Xml. c 2 t p tin trn vo 2 i t ng XmlDocument Tai_lieu_1,Tai_lieu_2 v sau t o i t ng Tai_lieu bao g m t t c cc i t ng c a Tai_lieu_1,Tai_lieu_2. Ghi Tai_lieu vo t p tin Kq.xml * Truy v n v Ghi t p tin Xml M c tiu : - Tm hi u v s d ng m t s hm c a DOM - S d ng Xpath Yu c u : Vi t chng trnh nh p vo ng d n tng ng t p tin Xml v sau t o t p tin ( ghi ) c tn Nut_la.xml bao g m t t c cc th khng ch a th con c a t p tin ang xt * Th hi n cy t ch c tr ng M c tiu : Rn luy n k nng trnh by n i dung ti li u Xml v i Windows Form Yu c u : T o t p tin Xml bi u di n thng tin v t ch c c a m t tr ng ( thng tin v tr ng, cc kh i, cc l p , cc h c sinh ) Vi t chng trnh c v xu t cc thng tin trn d i d ng cy * Th hi n cy cc s nguyn M c tiu : Rn luy n k nng trnh by n i dung ti li u Xml v i Windows Form Yu c u : T o t p tin Xml bi u di n thng tin v cy cc s nguyn Vi t chng trnh c v xu t cc thng tin trn d i d ng cy

2. Xy d ng ng d ng * Tnh ti n thu phng H th ng th c t Khch s ng X c a ch 123 ABC v i n tho i 333111 c b ng n gi thu phng nh sau

Lo i phng n gi/Ngy Lo i A 250.000 Lo i B 220.000 Lo i C 180.000 c bi t 340.000 Ghi ch : N u khch thu qu 5 ngy c gi m 10% Yu c u Thi t k v l p trnh ng d ng tnh ti n thu phng v i cc yu c u ch c nng nh sau 1. C p nh t thng tin v khch s n 2. B sung lo i phng m i 3. C p nh t thng tin v lo i phng 4. Thanh l lo i phng 5. Tnh ti n thu phng

* i ngo i t H th ng th c t C a hng i ti n X c a ch 124 ABC v i n tho i 333112 c b ng t Ngo i t T gi .... ....

gi nh sau

Yu c u Thi t k v l p trnh ng d ng i ngo i t v i cc yu c u ch c nng nh sau 1. C p nh t thng tin v c a hng i ti n 2. B sung ngo i t m i 3. Cp nh t t gi c a ngo i t 4. Thanh l ngo i t 5. Tnh ti n khi i ngo i t * Tr c nghi m Yu c u Thi t k v l p trnh ng d ng tr c nghi m v i cc yu c u sau 1. Xem bi 2. Bin so n cu h i m i 3. C p nh t cu h i so n 4. Xa cu h i so n 5. T rn luy n v i cc cu h i so n Ghi ch : - Cu h i tr c nghi m ch bao g m vn b n, c nhi u ch n l a khc nhau v ch c duy nh t m t p n ng - V i ch c nng t rn luy n, ng d ng pht sinh ng u nhin 1 cu h i * X p h ng bng

Yu c u :Thi t k v l p trnh ng d ng x p h ng bng c a gi i v ch bng VN v i cc yu c u sau 1. Ghi nh n k t qu cc tr n u 2. L p b ng x p h ng

Ghi ch : y l bi t p dnh cho cc sinh vin t x p mnh vo lo i kh/gi i

Chng 4 : Bi n i ti li u XML v i XSLT


I. M u v XSLT Chng trnh XSLT : Khi ni m : - M t lo i ti li u XML c bi t bao g m cc th x l cho php bi n i m t ti li u XML thnh m t ti li u vn b n b t k - M t lo i chng trnh thng d ch c bi t v i + D li u ngu n : Ti li u XML + K t xu t : Ti li u d ng vn b n Ti li u XML ---- > Chng trnh XSLT ---- > Ti li u vn b n Cc ng d ng chnh : XSLT c 2 ng d ng chnh hi n nay 1. Th c hi n bi n i t t p tin XMl vo trang Web v i ngn ng HTML 2. Th c hi n bi n i t t p tin XML vo t p tin XML khc Xml --- > Html Chp php th hi n n i dung t p tin Xml trn trang Web V d : T p tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> thng qua x l c a chng trnh Xuat_don_thuc.Xslt s c th hi n trn trang Web 4x6 Xml -- > Xml Cho php t o t p tin Xml m i t t p tin Xml hi n c c th trch rt thng tin, ti c u trc cc th , v.v... V d : T p tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> thng qua x l c a m t chng trnh Xslt s t o ra t p tin Don_thuc_1.xml nh sau <DON_THUC> <He_so> 4 </He_so> <So_mu> 6 </So_mu> </DON_THUC> 1. C u trc chng trnh XSLT C u trc chng trnh XSLT C u 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 l nh ( th ) x l cho php trch rt thng tin t T p tin Xml ngu n v k t xu t vo t p tin k t qu </xsl:template> </xsl:stylesheet> V d 1 : Chng trnh sau cho php bi n i t p tin Nguoi_dung.xml <NGUOI_DUNG Ho_ten="Tr n vn Long" /> t o t p tin vn b n v i n i dung Xin cho Tr n vn Long. y l chng trnh XSLT u tin c a 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 c a ti </xsl:template> </xsl:stylesheet> V d 2 : Chng trnh sau cho php bi n i t p tin xml <GOC> <SO Gia_tri="5" /> <SO Gia_tri="7" /> </GOC> t o t p tin vn b n v i n i 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>

2. Cho th c hi n chng trnh XSLT Cho th c hi n chng trnh XSLT Qu trnh th c hi n Bao g m 3 b c B c 1 : Chu n b d li u ngu n l t p tin XML B c 2 : So n th o chng trnh XSLT B c 3 : Cho th c hi n chng trnh B c 1 : D li u ngu n c th c chu n b thng qua m t trong cc cch sau

- Cch 1 : S d ng trnh so n th o vn b n b t k ( v ti li u XML ch l m t vn b n) - Cch 2 : S d ng trnh so n th o XML Editor B c 2 : Chng trnh XSLT c th c chu n b thng qua m t trong cc cch sau - Cch 1 : S d ng trnh so n th o vn b n b t k ( v ti li u XML ch l m t vn b n) - Cch 2 : S d ng trnh so n th o XML Editor - Cch 3 : S d ng trnh so n th o chng trnh XSLT ( XSLT Editor) B c 3 : Ty theo m c tiu c a vi c th c hi n c th ti n hnh m t trong 3 cch sau Cch 1 : S d ng mi tr ng l p trnh Cho th c hi n tr c ti p bn trong mi tr ng l p trnh Cch ny thch h p cho vi c h c t p v th nghi m chng trnh XSLT Cch 2 : S d ng trnh duy t Web Cho th c hi n tr c ti p v i s h tr c a trnh duy t Web Cch ny cho php ng d ng tr c ti p XSLT trong vi c th hi n hto6ng tin trn Web Cch 3 : T vi t chng trnh Cho th c hi n thng qu vi c vi t m t ng d ng trong ngn ng l p trnh khc ( v d C#). ny s - N p/ c chng trnh XSLT vo b nh - Chu n b d li u ngu n ( n u c n thi t ) - Cho th c hi n - X l k t xu t c t o ra ( n u c n thi t )

ng d ng

Cch ny thch h p khi c n "nhng" chng trnh XSLT vo m t ng d ng c th th c hi n nhanh, d b o tr, chu n m t s x l bi n i no lin quan ti li u XML * S d ng mi tr ng l p trnh V i mi tr ng l p trnh Visual Studio.NET Bc 1 : T o t p tin Xml ngu n Ch n Project - Add New Item v i lo i t p tin l Xml === > C a s cho php so n th o t p tin Xml B c 2 : T o chng trnh XSLT Ch n Project - Add New Item v i lo i t p tin Xslt === > C a s cho php so n th o chng trnh XSLT B c 3 : Cho th c hi n 3.1 B c 3.1 : Ch n c a s Properties xc nh t p tin Xml ngu n v t p tin k t xu t 3.2 B c 3.2 : Quay v c a s so n th o chng trnh XSLT ( Click v c a s ) v sau ch n ch c nng Xml ---> Debug XSLT Lu : B c 3.1 Ch c n th c hi n m t l n n u khng thay i t p tin ngu n C th nh d u i m ng t bn trong chng trnh XSLT tng t khi Debug ng d ng v i ngn ng l p trnh khc

* S d ng trnh duy t Web Bc 1 : T o t p tin Xml ngu n v i ch th yu c u th c hi n chng trnh XSL <?xml-stylesheet type="text/xsl" href=Chu i ng d n n t p tin chng trnh XSLT ?> V d : <?xmlversion="1.0"encoding="utf-8" ?> <?xml-stylesheettype="text/xsl" href="Xuat_loi_chao.xslt" ?> <NGUOI_DUNGHo_ten="Tr n vn Long" />

B c 2 : T o chng trnh XSLT Ch n Project - Add New Item v i lo i t p tin Xslt === > C a s cho php so n th o chng trnh XSLT B c 3 : Cho th c hi n M trnh duy t Web v sau ch n URL l ng d n n t p tin Xml * T vi t chng trnh Bc 1 : T o t p tin Xml ngu n B c 2 : T o chng trnh XSLT Ch n Project - Add New Item v i lo i t p tin Xslt === > C a s cho php so n th o chng trnh XSLT B c 3 : Cho th c hi n .... Khai bo i t ng Bo_thuc_hien c t p tin chng trnh XSL vo Bo_thuc_hien Yu c u Bo_thuc_hien th c hi n chng trnh XSLT v i d li u ngu n v k t xu t .... V d : v i Visual Studio.NET 2005 VB.NET o n chng trnh sau s cho th c hi n chng trnh Xuat_loi_chao.Xslt - D li u ngu n l t p tin Nguoi_dung.xml - K t xu t l t p tin vn b n Loi_chao.txt ( T t c cc t p tin u t trong th m c c a 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 h a Cc v d minh h a M c tiu : Minh h a tr c quan m t s chng trnh XSLT. Cc chng trnh ny s c di n gi i chi ti t v sau trong cc m c khc === > Cha yu c u hi u ngha cc l nh === > S d ng rn luy n cch cho th c hi n chng trnh XSLT * Xu t cy tr ng - kh i - l p V i t p tin Truong.xml c n i dung nh sau <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Tr ng c p 3 XXX"> <KHOITen="Kh i 10" > <LOPTen="L p 10A" /> <LOPTen="L p 10B" /> <LOPTen="L p 10C" /> <LOPTen="L p 10D" /> </KHOI> <KHOITen="Kh i 11" > <LOPTen="L p 11A" /> <LOPTen="L p 11B" /> <LOPTen="L p 11C" /> </KHOI> <KHOITen="Kh i 12" > <LOPTen="L p 12A" /> <LOPTen="L p 12B" /> <LOPTen="L p 12C" /> </KHOI> </TRUONG> Chng trnh Xuat_truong.xslt sau s k t xu t ( d ng Html ) cc thng tin v tr ng ( bao g m thng tin kh i, l p ) <?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 kh i l p <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 : Thu c tnh select trong th xsl:apply-templates c th c b qua v khi s c hi u l select="*" ( cho l ng gi l cc nt con c a nt ng c nh ) === > M t trong cc cch n gin t ch c chng trnh Xslt l t ch c chng trnh theo cc lo i th c trong t p tin Xml v g i th c hi n (so kh p ) khng c n tham s G i th c hi n : <xsl:apply-templates /> Khai bo hm/m u so kh p : <xsl:template match="tn lo i 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 kh i l p <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>

* Xu t danh sch ch n Chng trnh Xslt sau s xu t danh sch ch n cc n v t t p 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"/> </option> </xsl:template> </xsl:stylesheet>

* S p x p k t qu thi u Olympic V i t p 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> o n chng trnh XSL sau s p x p cc qu c gia gi m d n theo th t u tin

- u tin 1 : S huy chng vng - u tin 2 : S huy chng b c - 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> </xsl:stylesheet>

II. Cc thao tc c b n Cc thao tc c b n M c tiu : Trnh by cc k thu t x l c b n khi xy d ng chng trnh XSLT N i dung : 1. Trch rt thng tin v k t xu t v i th x l xsl:value-of , xsl:variable 2. X l r nhnh v i xsl:if , xsl:choose 3. X l l p v i xsl:for-each. X l so kh p v i xsl:apply-templates , xsl:template 1. Trch rt v k t xu t thng tin V n : C n trch m t s thng tin trong t p tin Xml ngu n v a vo t p tin k t xu t H ng gi i quy t : Cch 1 : Trch rt thng tin t t p tin Xml v sau k t xu t tr c ti p v i th x l

xsl:value -of Cch 2 : Trch rt thng tin vo bi n v i th x l xsl:variable v sau s d ng bi n ny trong th x l xsl:value-of Th xsl:value-of ngha : Cho php trch rt thng tin t t p tin Xml hay t gi tr c a bi n v sau a vo t p tin k t qu C php : N u trch rt thng tin t t p tin Xml ngu n <xsl:value-of select="Bi u th c Xpath" /> N u trch rt thng tin t bi n <xsl:value-of select="$Ten_bien" /> Th xsl:variable ngha : Cho php trch rt thng tin t t p tin Xml v a vo m t bi n ( ng ra l h ng v n i dung bi n ny khng th thay i c ) C php : <xsl:variable name="Ten_bien" select="Bi u th c Xpath" /> V d : Chng trnh tnh t ng 2 s nguyn c th th c hi n theo 2 cch Cch 1 : Trch rt thng tin tr c ti p <?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 bi n <?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 c a t p tin Xml b t u t 1 - Bi u th c bn trong thu c tnh select c th + M t bi u th c Xpath duy nh t + M t bi n duy nh t + Bi u th c s h c v i thnh ph n l bi u th c Xpath hay bi n i u ny cho php th c hi n m t s x l trn thng tin ngu n tr c khi k t xu t, tuy nhin cc x l ny kh gi i h n v Xslt c thi t k v s d ng vo m c ti u chnh l bi n i 2. R nhnh V n : C n r nhnh x l k t xu t ty vo i u ki n c a t p tin Xml ngu n H ng gi i quy t : Cch 1 : S d ng th x l xsl:if . Cch ny cho php ch k t xu t trong tr ng h p m t i u ki n no c th a ( v n u khng th a th khng k t xu t g c ) Cch 2 : S d ng th x l xsl:choose . Cch ny cho php k t xu t ty theo nhi u i u ki n v i cc tr ng h p khc nhau Th xsl:if ngha : Cho php ch th c hi n m t s th x l khi i u ki n c th a C php : <xsl:if test="Bi u th c logic " > Cc th x l </xsl:if> Ghi ch : Bi u th c logic bao g m cc bi u th c tnh ton ( trn chu i Xpath hay gi tr bi n ) cng v i 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 d ng nhi u i u ki n khc nhau C php : <xsl:choose> <xsl:when test="Bi u th c logic 1 " > Cc th x l khi bi u th c logic 1 th a </xsl:when> <xsl:when test="Bi u th c logic 2 " > Cc th x l khi bi u th c logic 2 th a </xsl:when>

<xsl:otherwise > Cc th x l khi t t c cc bi u th c logic trn u khng th a </xsl:when> </xsl:choose> Ghi ch : Th x l trn c tc d ng tng t c u trc if ( Di u ki n 1 ) { .... } else if ( i u ki n 2 ) { ... } ..... else { .... } V d : Chng trnh xc nh s nguyn l n nh t c th th c hi n theo 2 cch Cch 1 : S d ng 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 l n nh t 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 d ng 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 l n nh t 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 l p V n : C n l p l i cc x l k t xu t trn m t t p h p cc nt c a ti li u Xml ngu n H ng gi i quy t : S d ng th xsl:for-each v i bi u th c Xpath tng ng t p h p nt c n l p Th xsl:for-each ngha : Cho php l p l i vi c th c hi n cc th x l trn t p h p cc nt l k t qu c a m t chu i truy v n Xpath C php : <xsl:for-each select="Bi u th c Xpath " > Cc th x l </xsl:for-each> Ghi ch : Cc th x l bn trong vng l p c th s d ng bi u th c Xpath theo cch nh v tng i t nt ng c nh ( nt hi n hnh ) thay cho s d ng nh v tuy t i V d : V i t p tin ngu n 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 k t xu t thng tin v cng ty cng v i cc n v ( theo d ng k t xu t 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> </xsl:template>

</xsl:stylesheet>

4. Hm V n : V i t p tin Xml c c u trc ph c t p hay x l k t xu t ph c t p. Vi c t ch c chng trnh Xslt ch v i m t th xsl:template duy nh t ( tng t hm Main duy nh t trong C#) === > Chng trnh kh vi t === > Chng trnh kh c ====> Chng trnh kh b o tr ====> Cc o n l nh khng ti s d ng c

H ng gi i quy t : T ch c chng trnh thnh cc ph n nh v i th x l xsl:template ( tng t cc hm t nh ngha. M i ph n nh th c tn g i l t p m u v ng vai tr tng t nh hm trong ngn ng l p trnh khc Th xsl:template ngha : Cho php t ch c chng trnh Xslt v i cc thnh ph n nh == > D vi t ==> D c == > D b o tr ===> Ti s d ng C php khai bo <xsl:template match="Bi u th c Xpath"> Cc th x l

</xsl:template> C php "g i th c hi n" <xsl:apply-templates select="Bi u th c Xpath" /> C ch "g i th c hi n" ( c ch so kh p ) Qu trnh "g i th c hi n" ( so kh p ) c a th x l xsl:apply-templates nh sau B c 1 : L ng gi bi u th c Xpath c a th x l xsl:apply-templates B c 2 : Tm khai bo xsl:template c thu c tnh match so kh p ng B c 3 : "G i th c hi n " nhi u l n cc th x l bn trong, m i l n v i m t nt ng c nh thu c danh sch c l ng c a b c 1 V d 1 : Chng trnh xu t thng tin v cng ty c th vi t l i 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 : V i t p tin Truong.xml c n i dung nh sau <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Tr ng c p 3 XXX"> <KHOITen="Kh i 10" > <LOPTen="L p 10A" /> <LOPTen="L p 10B" /> <LOPTen="L p 10C" /> <LOPTen="L p 10D" /> </KHOI> <KHOITen="Kh i 11" > <LOPTen="L p 11A" /> <LOPTen="L p 11B" /> <LOPTen="L p 11C" /> </KHOI> <KHOITen="Kh i 12" > <LOPTen="L p 12A" /> <LOPTen="L p 12B" /> <LOPTen="L p 12C" />

</KHOI> </TRUONG> Chng trnh Xuat_truong.xslt sau s k t xu t ( d ng Html ) cc thng tin v tr ng ( bao g m thng tin kh i, l p ) <?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 kh i l p <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 : Thu c tnh select trong th xsl:apply-templates c th c b qua v khi s c hi u l select="*" ( cho l ng gi l cc nt con c a nt ng c nh ) === > M t trong cc cch n gin t ch c chng trnh Xslt l t ch c chng trnh theo cc lo i th c trong t p tin Xml v g i th c hi n (so kh p ) khng c n tham s G i th c hi n : <xsl:apply-templates /> Khai bo hm/m u so kh p : <xsl:template match="tn lo i 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 kh i l p <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>

III. M t s k thu t x l M t s k thu t x l M c tiu : Trnh by 2 k thu t c b n tng ng 2 ng d ng chnh c a XML - Bi n i XML ---- > HTML - Bi n i XML ---- > XML 1. XML -- > HTML M c tiu : Trnh by m t s k thu t c b n cho php th hi n n i dung t p tin Xml trn trang Web V d : v i t p tin Xml Don_thuc.xml <DON_THUC He_so="4" So_mu="6" /> chng trnh Xslt sau s cho php th hi n n th c d i d ng 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)= <xsl:value-ofselect ="@He_so" /> x <sup> <xsl:value-ofselect ="@So_mu"/> </sup> </xsl:template> </xsl:stylesheet> * XML -- > Th select V n : C n xu t danh sch ch n trn trang Web t m t danh sch cc nt c a t p tin Xml trong m t ng d ng Web V d : Xu t danh sch cc m t hng Xu t danh sch cc n v Xu t danh sch cc kh i .... H ng gi i quy t : S d ng th select , option c a ngn ng Html .... <select> <xsl:apply-templates select="Bi u th c Xpath tng ng danh sch" /> </select> .... <xsl:template match="Bi u th c Xpath tng ng m t ph n t trong danh sch" > <option> Th x l k t xu t gi tr </option> </xsl:template> V d : Chng trnh Xslt sau s xu t danh sch ch n cc n v t t p 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"/> </option> </xsl:template> </xsl:stylesheet> * XML --- > th ul,ol V n : C n xu t danh sch trnh by n i dung v cc m c trn trn trang Web t m t nt v i nhi u nt con c a t p tin Xml trong m t ng d ng Web theo d ng N i dung 1 M c con 11 M c con 12 .... V d : Xu t n i dung cu h i tr c nghi m Xu t t ch c tr ng -kh i - l p theo d ng cy .... H ng gi i quy t : S d ng th ul k t h p li v i cc m c khng c th t Hay s d ng th ol k t h p li v i cc m c c th t .... <ul> <xsl:apply-templates select="Bi u th c Xpath tng ng danh sch" /> </ul> .... hay .... <ol> <xsl:apply-templates select="Bi u th c Xpath tng ng danh sch" /> </ol> .... v <xsl:template match="Bi u th c Xpath tng ng m t ph n t trong danh sch" > <li> Th x l k t xu t gi tr </li> </xsl:template> V d 1: Gi s c t p tin Cau_hoi.xml v i n i dung nh sau <?xmlversion="1.0"encoding="utf-8" ?>

<CAU_HOINoi_dung="N c Vi t 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 h i trn Web Cu h i tr c nghi m N c Vi t 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 h i tr c nghi m <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 ch c cc kh i l p c a m t tr ng theo d ng cy phn c p <?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="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 V n : C n xu t danh sch d ng l i trn trang Web t m t danh sch cc nt c a t p tin Xml trong m t ng d ng Web V d : Xu t danh sch cc m t hng : tn , n gi Xu t danh sch cc nhn vin : H tn , Ngy sinh , Gi i tnh Xu t danh sch cc mn h c : tn mn , S ti t LT, S ti t th c hnh .... H ng gi i quy t : S d ng th table , tr, td c a ngn ng Html .... <table> <xsl:apply-templates select="Bi u th c Xpath tng ng danh sch" /> </table> .... <xsl:template match="Bi u th c Xpath tng ng m t ph n t trong danh sch" > <tr> <td> Th x l k t xu t gi tr t i c t th 1 </td> <td> Th x l k t xu t gi tr t i c t th 12 </td>

..... </tr> </xsl:template> V d : Chng trnh Xslt sau s xu t b ng n gi thu phng t t p 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"> B ng n gi thu phng <br /> <xsl:apply-templates /> </div> </body> </html> </xsl:template> <xsl:templatematch="BANG_DON_GIA" > <tableborder="2"> <tr> <td> Lo i 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> 2. XML --- > XML M c tiu : Trnh by m t s k thu t c b n cho php t o ti li u Xml m i d a trn m t ti li u Xml c

- Trch rt thng tin - Ti c u trc * T o nt v thu c tnh V n : C n t o th m i X cng v i cc thu c tnh trong t p tin xml k t xu t H ng gi i quy t : Cch 1 : T o l p tr c ti p th m i X trong chng trnh Xslt ( tng t nh sao5n th o t p tin XML Cch 2 : S d ng cc th x l xsl:element , xsl:attribute Th xsl:element ngha : Cho php t o th m i trong t p tin Xml k t xu t C php : <xsl:element name="Ten_the" > Cc th x l t o thu c tnh ( n u c ) Cc th khc </xsl:element> Th xsl:attribute ngha : Cho php t o thu c tnh c a m t th trong t p tin Xml k t xu t C php : <xsl:element name="Ten_the" > <xsl:attribute name="ten_thuoc_tinh" > Th x l k t xu t gi tr c a thu c tnh </xsl:attribute> Cc th khc </xsl:element> Vi d : Chng trnh Xslt sau y bi n i t p tin Phieu_thu.xml v i t p tin Xml k t xu t c cc nt con tng ng cc thu c tnh <?xmlversion="1.0"encoding="utf-8" ?> <PHIEU_THUKhach_hang="Tr n vn Long" Ngay_thu="11/2/2007" So_tien="40000" > </PHIEU_THU> 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 V n : C n t o th k t xu t trong t p tin xml k t xu t c cng tn v cc thu c tnh v i th trong t p tin ngu n H ng gi i quy t : Cch 1 : S d ng cc th x l xsl:element , xsl:attribute Cch 2 : S d ng cc th x l xsl:copy , xsl:attribute Th xsl:copy ngha : Cho php sao chp th t t p tin xml ngu n ( v i nt ng c nh tng ng th ) sang t p tin xml k t xu t C php : <xsl:copy > Cc th x l t o thu c tnh ( n u c ) Cc th khc </xsl:copy> K t h p v i xsl:attribute sao chp th - thu c tnh <xsl:copy > <xsl:for-each select="@*" > <xsl:attribute name="{name()}" > <xsl:value-of select="." /> </xsl:attribute> </xsl:for-each> </xsl:copy> V d 1: Chng trnh sau trch danh sch cc kh i c a t p 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 bi n i t p tin Xml b t k theo qui t c : T t c thu c tnh s bi n 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> </xsl:for-each> <xsl:apply-templates /> </xsl:copy> </xsl:template> </xsl:stylesheet> * Sao chp nt - thu c tnh - nt con V n : C n sao chp ton b th X , t t c thu c tnh c a X, t t cc th con m i c p c a X trong t p tin xml ngu n vo t p tin Xml k t xu t H ng gi i quy t : Cch 1 : S d ng cc th x l xsl:copy , xsl:attribute

Cch 2 : S d ng th x l xsl:copy-of Th xsl:copy-of ngha : Cho php sao chp ton b th X , t t c thu c tnh c a X, t t cc th con m i c p c a X trong t p tin xml ngu n vo t p tin Xml k t xu t C php : <xsl:copy-of select="Bi u th c Xpath" /> Vi d : Cho t p tin xml Bang_phan_cong.xml <?xmlversion="1.0"encoding="utf-8" ?> <TRUONGTen="Tr ng X" > <MONTen="Ton"> <GIAO_VIENTen="Tr n vn Minh" > <LOPTen="10A1" /> <LOPTen="11A1" /> <LOPTen="12A1" /> </GIAO_VIEN> <GIAO_VIENTen="Tr n vn L c" > <LOPTen="10B1" /> <LOPTen="11B1" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen="Tr n vn Hng" > <LOPTen="10B2" /> <LOPTen="11A3" /> <LOPTen="12B2" /> </GIAO_VIEN> </MON> <MONTen="L"> <GIAO_VIENTen="L vn Sn" > <LOPTen="10A1" /> <LOPTen="11B1" /> <LOPTen="12C1" /> </GIAO_VIEN> <GIAO_VIENTen="Nguy n 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 L n" >

<LOPTen="10A1" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen=" th Tuy t" > <LOPTen="10B2" /> <LOPTen="11A3" /> <LOPTen="12B2" /> </GIAO_VIEN> </MON> <MONTen="Sinh"> <GIAO_VIENTen="Nguy n hng C ng"> <LOPTen="10A1" /> <LOPTen="11A1" /> <LOPTen="12A1" /> </GIAO_VIEN> <GIAO_VIENTen="L vn Tng" > <LOPTen="11A2" /> <LOPTen="12B1" /> </GIAO_VIEN> <GIAO_VIENTen="Nguy n th p" > <LOPTen="11B2" /> <LOPTen="11A3" /> <LOPTen="11B3" /> </GIAO_VIEN> </MON> </TRUONG>

o n chng trnh sau cho php ti c u trc t p tin Bang_phan_cong.xml v i th MON chuy n thnh thu c tnh Bo_mon c a 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>

* S p th t cc nt V n : C n s p th t danh sch cc th X c a t p tin xml k t xu t H ng gi i quy t : S d ng th x l xsl:sort k t h p v i xsl:apply-templates Th xsl:sort ngha : Cho php s p th t danh sch cc th X c a t p tin xml k t xu t C php : S p tng <xsl:sort order="accending" select="Thu c tnh" /> S p gi m <xsl:sort order="descending" select="Thu c tnh" /> K t h p v i xsl:apply-templates ti n hnh s p th t cc k t qu sau khi th c hi n so kh p cc hm/m u <xsl:apply-templates select="Bi u th c Xpath" > <xsl:sort order="...." select="...." /> <xslsort order="...." select="...." /> ...... </xsl:aplly-templates> V d : V i t p 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>

o n chng trnh XSL sau s p x p cc qu c gia gi m d n theo th t u tin - u tin 1 : S huy chng vng - u tin 2 : S huy chng b c - 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> </xsl:stylesheet>

IV. Bi t p 1. XML --- > HTML * Tch 2 phn s Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v 2 phn s - K t xu t : Trang Web th hi n k t qu nhn 2 phn s V d : v i phn s 4/7, 5/11 K t xu t s l K t qu tnh tch 2 phn s 1/7 v 5/11 4/7*5/11=20/77

* Phng trnh ng th ng Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v cc h s c a phng trnh ng th ng trong m t ph ng - K t xu t : Trang Web th hi n k t qu l phng trnh ng th ng V d : V i gi tr cc h s 2,3,4 K t xu t s l : Phng trnh ng th ng 2x + 3y + 4=0 V i gi tr cc h s 7,-3 K t xu t s l : Phng trnh ng th ng 7x - 3y =0 * Phng trnh ng trn Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v t a tm v bn knh c a m t ng trn - K t xu t : Trang Web th hi n k t qu l phng trnh ng trn V d : V i gi tr cc t a tm 4,5 v bn knh 3 K t xu t s l : Phng trnh ng trn (x-4)2 + (y-5) 2 = 9 V i gi tr cc t a tm -2,3 v bn knh 7 K t xu t s l : Phng trnh ng trn (x + 2 )2 + (y-3) 2 = 49 * tr c nghi m Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v tr c nghi m - K t xu t : Trang Web th hi n tr c nghi m * H s h c sinh Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v h s h c sinh bao g m : H v tn , gi i tnh, ngy sinh , a ch - K t xu t : a) Trang Web th hi n h s h c sinh d ng xem b) Trang Web th hi n h s h c sinh d ng nh p li u ( c p nh t)

* B ng x p h ng Olympic Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin k t qu thi u Olympic cc qu c gia - K t xu t : a) Trang Web th hi n b ng k t qu thi u b) Trang Web cho php c p nh t s huy chng vng, b c, ng

2. XML - XML * H s nhn vin Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin v h s nhn vin v i + Thng tin bao g m : H v tn, Gi i tnh , Ngy sinh, a ch , n v + T t c cc thng tin u bi u di n d i d ng th con - K t xu t : T p tin Xml a) T t c cc thng tin u bi u di n d ng thu c tnh b) T t c cc thng ngo i tr n v u bi u di n d ng thu c tnh

* Tr ng - kh i - l p Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin t ch c tr ng , cc kh i c a tr ng, cc l p c a kh i - K t xu t : a) T p tin Xml ch bao g m cc l p c s s trn 30 b) T p tin Xml ch bao g m cc kh i c hn 5 l p

* B ng phn cng gio vin Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin b ng phn cng cc gio vin c a m t tr ng - K t xu t : a) T p tin Xml ch bao g m danh sch cc b mn cng v i s l ng cc gio vin b) T p tin Xml ch bao g m danh sch cc gio vin c phn cng d y trn 2 l p * Cy s nguyn

Yu c u : Vi t chng trnh XSLT cho php t o k t xu t t d li u ngu n - D li u ngu n : T p tin xml bi u di n thng tin cy cc s nguyn - K t xu t : a) T p tin Xml ch bao g m danh sch cc nt l b) T p tin Xml ch bao g m danh sch cc nt c gi tr t 1 n 10 c) T p tin Xml l t p tin ngu n sau khi b i cc nt l d) T p tin Xml l t p tin ngu n sau khi b i t t c cc nt con c p 1 ( con c a g c ) e) T p tin Xml l t p tin ngu n sau khi s p th t tng cc nt cng cha

n
M c tiu : Gip sinh vin - C c h i n t p, rn luy n cc k thu t lin quan XML - C c h i tm hi u v s d ng t t ngn ng l p trnh - Rt cc kinh nghi m khi xy d ng ng d ng th c t i m s : n l ty ch n, sinh vin khng b t bu c ph i ng k. V i cc sinh vin ng k i m s c a n s c c ng vo i m thi cu i mn === > i m thi cu i mn s l 10 + n v i -2<=n <=2 ng k v khng n p bi n =-2 === > C n suy nh tr c khi ng k Yu c u chung : Vi t m t chng trnh ng d ng v i cc ch c nng c yu c u K t qu n p : 1. Bo co vi t v h s thi t k ( t p tin Word ) 2. Chng trnh ngu n 3 . Chng trnh bin d ch cng v i cc d li u th nghi m Th i h n : - H n cht ng k : Ngy 1/10/2007. Sinh vin ng k n no s ch n m c th o lu n v cho ki n v vi c ng k - H n cht n p k t qu : S c thng bo sau ( d ki n trong tu n l thi ) L u: - 1 sinh vin trn 1 n - C th s c v n p tr c ti p v i gio vin khi n p n nh m xc nh chnh xc ng i th c hi n

1. D mn Cc yu c u ch c nng : 1. nh c ( ch c nng chnh tng ng vi c x l vi c ch n v tr c a ng i dng ) 2. Ghi bn c vo t p tin 3. c bn c ghi 2. Bn v tu h a Cc yu c u ch c nng : 1. Tnh ti n bn v 2. Qu n l ( thm,xa,s a ) cc ga 3. C p nh t b ng n gi 3. nh c caro Cc yu c u ch c nng : 1. nh c ( ch c nng chnh tng ng vi c x l vi c i c c a ng i dng ) 2. Ghi bn c vo t p tin 3. c bn c ghi 4. nh c t ng Cc yu c u ch c nng : 1. nh c ( ch c nng chnh tng ng vi c x l vi c i c c a ng i dng ) 2. Ghi bn c vo t p tin 3. c bn c ghi 5. Tr chi ch Cc yu c u ch c nng : 1. c v on ch c lu tr trn 1 t p tin 2. So n th o v ghi ch vo t p tin 6. Tr chi Sudoku Cc yu c u ch c nng : 1. c v gi i ma tr n Sudoku c lu tr trn 1 t p tin 2. So n th o ma tr n Sudoku v ghi vo t p tin 7. R ng vng Cc yu c u ch c nng : 1. S p x p cc t ( vng 1 c a tr chi ) 2. Tr l i cc cu ( vng 2 ) 2. So n th o cu ( vng 1 , 2 ) The End

You might also like