giao trinh xml nguyen tien huy

Upload: tranvuong

Post on 09-Jul-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

B mn Cng Ngh XML

Cng ngh XML v 2009L i gi i thi u: XML l g?

ng d ng

XML, ho c Extensible Markup Language (ngn ng nh d u m r ng), l m t ngn ng nh d u m b n c th s d ng t o ra th ring c a mnh. N c t o nn b i Lin minh m ng ton c u nh m kh c ph c nh ng h n ch c a HTML - ngn ng nh d u siu vn b n, l c s c a m i trang Web. Gi ng nh HTML, XML cng c d a trn SGML Standard Generalized Markup Language. M c d SGML c s d ng trong ngnh cng nghi p xu t b n trong nhi u th p k , nhng s ph c t p c a n u khi n nh ng ai t ng s d ng n m khng c cch no khc ph i th y m t m i (m t cch ni vui, SGML cng l "Sounds great, maybe later"). T i sao chng ta c n XML? HTML l ngn ng nh d u thnh cng nh t t tr c t i nay. B n c th th y d u n c a HTML n gi n nh t trn b t c cng c no, t thi t b c m tay t i my ch , th m ch b n cn c th chuy n i nh d u HTML sang l i ni ho c cc nh d ng khc v i nh ng cng c chnh xc. HTML thnh cng nh th , t i sao W3C l i t o ra XML? tr l i cho cu h i ny, hy xem ti li u d i y:

Nguyn Tin Huy H KHTN

Page 1

B mn Cng Ngh XML

cng1. 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 1. Cc v d m 2. Ti li u XML 3. Cng ngh XML 4. Gi i thi u v DOM Chng 2 : 2. 3. c t c u trc v n i dung ti li u XML 1. Cc khi ni m c t c u trc ti li u XML v i DTD c t c u trc ti li u XML v i Xml-Schema u u

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,XSLTNguyn Tin Huy H KHTN Page 2

B mn Cng Ngh XML

- Gio trnh : Gio trnh "Cng ngh XML v ng d ng " - Nguy n ti n Huy c Convert b i Quang

Nguyn Tin Huy H KHTN

Page 3

B mn Cng Ngh XML

Chng 1 : MGi i thi u chung v chng 1 I. Cc v d m M c tiu : - Minh h a vi c s d ng t p tin Xml th c t u:

u

lu tr thng tin cc

i t ng trong nh

-M u cho vi c trnh by cc khi ni m v ti li u Xml cng v i 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 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 3. ng trn T p tin Duong_tron.xml bi u di n thng tin v v bn knh R=4 Nguyn Tin Huy H KHTN Page 4

ng trn C c t m O(2,1)

B mn Cng Ngh XML

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

B mn Cng Ngh XML

Nguyn Tin Huy H KHTN Page 6

B mn Cng Ngh XML

Nguyn Tin Huy H KHTN

Page 7

B mn Cng Ngh XML

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 nh chu n XML i t ng trong th c t 1. Khi ni m v ti li u XML Vn b n c c u trc theo cho php bi u di n thng tin v cc 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 V d 1 : Phn s 4/5 trong th c t == > Th V d 2 : Dy cc s nguyn a bao g m cc s nguyn 1,4,5,-3 === > Th 2. nh chu n XML nh 1 : H th ng cc th nh d u nh chu n XML ch bao g m 2 lo i : * Qui 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

Cc th nh d u trong ngn ng theo Th c n i dung v th r ng. Cc th c n i dung c d ng N i dung Cc th r ng c d ng Nguyn Tin Huy H KHTN

Page 8

B mn Cng Ngh XML

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 Th c n i dung l th DUONG_TRON Th r ng l th DIEM Th DUONG_TRON c 1 thu c tnh l Ban_kinh Th DIEM c 2 thu c tnh l x, y * Qui dung nh 2 : Quan h l ng nhau ( ch a trong ) gi a cc th c n i

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 ) . Th A l th cha c a B v i d ng l ng nhau khng hon hon ton ( khng h p l )Nguyn Tin Huy H KHTN Page 9

B mn Cng Ngh XML

. * 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 trn l khng h p l v khng c th g c 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 XmlN 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 ngNguyn Tin Huy H KHTN Page 10

B mn Cng Ngh XML

- 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 th ng tin h c hay gi a 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 iNguyn Tin Huy H KHTN Page 11

i n i b bn trong m t h

B mn Cng Ngh XML

thu c v cng ngh x l thng tin * Nhu c u trao 1. Trao i thng tin 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 2. Trao i thng tin bn trong cc h th ng con c bi t l cc 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 , 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 h th ng c s n * M hnh trao i thng tin gi a h th ng ang xy d ng v cc

i thng tin i ch y u d a trn

M hnh trao i thng tin tr c khi XMl ra cng ngh v lu ng d li u ( Data Stream ) v i 2 d ng chnh - D ng nh phn : D li u trao ngha ring bi t c a t ng ng d ng

i l chu i cc byte theo m t c u trc v 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 cng khuy t i m : "Thng tin c n trao d ng " === > Nhu c u v m t u khng thch h p v i cc nhu c u pha trn v i

i c c u trc v ng ngha ring bi t theo t ng ng nh chu n chung khi trao i thng tinPage 12

Nguyn Tin Huy H KHTN

B mn Cng Ngh XML

* S ra

i c a Cng ngh XML i l k t qu c a cc nghin c u v d ng bi u i

Cng ngh XML ra di n thng tin khi c n trao 1) Cho php trao

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 i trn ph m vi r ng ( Internet) i 2) D dng trong vi c k t xu t v ti p nh n khi trao

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 cho cc yu c u trn ( ti li u i v xu t m t d ng bi u di n thch h p

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 N i dung : Trnh by cc h ng ng d ng chnh c a cng ngh Xml * Trao Trao Trao i thng tin i thng tin i thng tin l xu t pht i m cho s hnh thnh c a cng ngh XML. i thng tin l ng d ng chnh y u nh t c a XML i thng tin chnh i thng tin n i b gi a cc thnh ph n c a cng h th ng i thng tin gi a cc h th ng tin h c khc nhau i thng tin trn i thng tin v i B ng d ng Xml trong vi c trao ng d ng c a cng ngh Xml

C 2 d ng trao D ng 1 : Trao tin h c D ng 2 : Trao XML c th D ng 1 :

ng d ng t t cho c 2 d ng trao

A c nhu c u trao

- 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 )Nguyn Tin Huy H KHTN Page 13

B mn Cng Ngh XML

- 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 V d : XML c th c s d ng xu t

- 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 - S d ng XML trao i thng tin gi a t ng d li u v t ng x l nghi p v 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 tin h c Cch 1 : Ch s d ng cc t p tin XML lu tr d li u bn trong h th ng 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 khaiPage 14

Nguyn Tin Huy H KHTN

B mn Cng Ngh XML

- 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 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 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 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 c/Ghi d dng ng v i nhi u u i m ng d ng ) l lo i thng nh ng n lo i thng tin no s ng, My cng c , v.v

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 quaNguyn Tin Huy H KHTN Page 15

B mn Cng Ngh XML

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 ng 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 ., . )Nguyn Tin Huy H KHTN Page 16

B mn Cng Ngh XML

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 c t ( ch m t m khng i vo chi ti t thu t gi i) th k t qu ngn ng 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 trnh i t ng cho php x l trn ti li u XML t cc ngn ng l p

- 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 i t ng XmlElement c a DOM i tng XmlAttribute c a DOM ng trn C c t m O(2,1) M i th bn trong t p tin Xml M i thu c tnh c a th V d 1 : T p tin Duong_tron.xml bi u di n thng tin v v bn knh R=4 Tng ng 1 i t ng XmlDocumentPage 17 Nguyn Tin Huy H KHTN

B mn Cng Ngh XML

2 3

i t ng XmlElement 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

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 XmlNguyn Tin Huy H KHTN Page 18

B mn Cng Ngh XML

Khai bo s d ng ti li u XML VB6 Khai bo VB.NET Khai bo 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 VB6 Khai bo i t ng thu c giao di n IXMLDOMElement v nh n 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 tPage 19

i t ng thu c l p DOMDocument

Dim Tai_lieu As New DOMDocument i t ng thu c l p XmlDocument

Dim Tai_lieu As New XmlDocument

n nt g c c a ti li u XML i

Nguyn Tin Huy H KHTN

B mn Cng Ngh XML

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 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 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 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 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 ntNguyn Tin Huy H KHTN Page 20

i t ng t

n nt con tr c ti p c a m t nt

i

i

B mn Cng Ngh XML

Truy xu t VB6

n thu c tnh c a m t nt

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 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#Nguyn Tin Huy H KHTN Page 21

n n i dung ( gi tr chu i ) c a m t nt

B mn Cng Ngh XML

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 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 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_conNguyn Tin Huy H KHTN Page 22

i t ng

i t ng

B mn Cng Ngh XML

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 Imports System.Xml Module Doc_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As IntegerNguyn Tin Huy H KHTN Page 23

nh ngha

B mn Cng Ngh XML

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_MainNguyn Tin Huy H KHTN Page 24

B mn Cng Ngh XML

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 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 SubNguyn Tin Huy H KHTN Page 25

nh ngha

B mn Cng Ngh XML

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")) ;Nguyn Tin Huy H KHTN Page 26

B mn Cng Ngh XML

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 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() {Nguyn Tin Huy H KHTN Page 27

nh ngha

B mn Cng Ngh XML

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 DoubleNguyn Tin Huy H KHTN Page 28

B mn Cng Ngh XML

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 sPage 29

Nguyn Tin Huy H KHTN

B mn Cng Ngh XML

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 MainNguyn Tin Huy H KHTN Page 30

B mn Cng Ngh XML

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 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_SONguyn Tin Huy H KHTN Page 31

nh ngha

B mn Cng Ngh XML

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_MainNguyn Tin Huy H KHTN Page 32

B mn Cng Ngh XML

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 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 ")Nguyn Tin Huy H KHTN Page 33

nh ngha

B mn Cng Ngh XML

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 {Nguyn Tin Huy H KHTN Page 34

B mn Cng Ngh XML

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 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; // > 0Nguyn Tin Huy H KHTN Page 35

nh ngha

B mn Cng Ngh XML

} 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);Nguyn Tin Huy H KHTN Page 36

B mn Cng Ngh XML

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 Console.Write("Tung tm:") tm:") Kq.Tam.x = Double.Parse(Console.ReadLine) ' Cha ki m tra 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")Nguyn Tin Huy H KHTN Page 37

B mn Cng Ngh XML

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 FunctionNguyn Tin Huy H KHTN Page 38

B mn Cng Ngh XML

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 :Nguyn Tin Huy H KHTN Page 39

B mn Cng Ngh XML

* 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 : * 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 : Nguyn Tin Huy H KHTN Page 40

B mn Cng Ngh XML

* 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 i Xml B i gi i : 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 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 4 3 c t v i DTD Nguyn Tin Huy H KHTN Page 60

B mn Cng Ngh XML

]> c t v i Xml Schema