Namespace trong attribute khác với namespaces của element.
Thông thường: attribute không có prefix chỉ liên quan đến một element đó. Ví dụ: <person xmlns="http://sernaferna.com/pers"> <name id="25"> <title>Sir</title> </name> </person>
– <person>; <name>; <title> đều thuộc default namespace.
– Thuộc tính id không thuộc default namespace, mà liên quan đến
ĐHKHTN-CNTT-Lương Há n Cơ
56
Namespaces & attributes
Có thể khai báo namespace cho attributes thông qua prefix. Ví dụ: <a:person xmlns:a="http://sernaferna.com/pers"> <a:name a:id="25"> <a:title>Sir</a:title> </a:name> </a:person>
ĐHKHTN-CNTT-Lương Há n Cơ
57
Namespaces & attributes
Ngôn ngữ XSLT xem 2 trường hợp ở dưới là khác nhau.
Ví dụ:
– <a:a:name idid="25">
– <a:a:name a:a:idid="25">
Có chương trình sẽ phân biệt, có chương trình xem cả 2 tương đương nhau.
ĐHKHTN-CNTT-Lương Há n Cơ
58
Bài t p:ậ
<aaa xmlns = "http://zvo n.o rg /lo we rc as e" > <bbb > <c c c xmlns = "" > <ddd /> </c c c > </bbb> </aaa>
ĐHKHTN-CNTT-Lương Há n Cơ
59
Bài t p:ậ
<lo we r:aaa xmlns :lo we r = "http://zvo n.o rg/lo we rc as e" xmlns :uppe r = "http://zvo n.o rg/uppe rc as e" xmlns :xnumbe r = "http://zvo n.o rg/xnumbe r" >
<lo we r:bbb lo we r:zz = "11" > <lo we r:c c c uppe r:WW = "22" /> </lo we r:bbb> <uppe r:BBB lo we r:s s s = "***" xnumbe r:S 111 = "? ? ? " /> <xnumbe r:x111 /> </lo we r:aaa> Những thuộc tính zz, WW, sss, S111 thuộc namespace nào?
ĐHKHTN-CNTT-Lương Há n Cơ
60
Bài t p:ậ
<lo we r:aaa xmlns :lo we r = "http://zvo n.o rg/lo we rc as e"
xmlns :uppe r = "http://zvo n.o rg /uppe rcas e"
xmlns :xnumbe r = http://zvo n.o rg /xnumbe r
> <lo we r:bbb zz = "11" > <lo we r:ccc WW = "22" /> </lo we r:bbb> <uppe r:BBB s s s = "***" xnumbe r:S111 = "? ? ? " /> <xnumbe r:x111 /> </lo we r:aaa>
ĐHKHTN-CNTT-Lương Há n Cơ
61
Bài t p:ậ
<aaa xmlns = http://zvo n.o rg/lo we rc as e
xmlns :uppe r = "http://zvo n.o rg/uppe rc as e" xmlns :xnumbe r = "http://zvo n.o rg /xnumbe r“> <bbb zz = "11" >
<c c c WW = "22“
xmlns ="http://zvo n.o rg /uppe rc as e" /> </bbb>
<uppe r:BBB s s s = "***" xnumbe r:S 111 = "? ? ? " /> <xnumbe r:x111 />
</aaa>
ĐHKHTN-CNTT-Lương Há n Cơ
62
Bài t p:ậ
<aaa xmlns :lo we r = "http://zvo n.o rg /lo we rc as e" >
<lo we r:BBB xmlns :lo we r = "http://zvo n.o rg /uppe rc as e" >
<lo we r:x111 />
<s s s xmlns :lo we r = "http://zvo n.o rg /xnumbe r" >
<lo we r:x111 /> </s s s >
</lo we r:BBB>
<lo we r:x111 /> </aaa>
ĐHKHTN-CNTT-Lương Há n Cơ
63
Bài t p:ậ
<aaa xmlns :uppe r = http://zvo n.o rg/uppe rc as e
xmlns :xnumbe r = "http://zvo n.o rg/xnumbe r" > <bbb xmlns = "http://zvo n.o rg/lo we rc as e" >
<c c c />
<uppe r:WWW />
<xnumbe r:x666 /> </bbb>
<BBB xmlns = "http://zvo n.o rg /uppe rc as e" > <uppe r:WWW />
<xnumbe r:x666 />
<CCC /> </BBB>
<x111 xmlns = "http://zvo n.o rg /xnumbe r" > <x222 />
<uppe r:WWW /> <xnumbe r:x666 />
</x111>
</aaa> Xác định namespace của những element trong tài liệu XML này
ĐHKHTN-CNTT-Lương Há n Cơ
64
Bài t p:ậ
<OOO xmlns = http://zvo n.o rg/xnumber
xmlns :lowe r = "http://zvo n.org/lowe rcas e" ooo = "222" >
<aaa xmlns :lower = "http://zvon.org /lowe rc as e" >
<lo we r:BBB xmlns :lowe r = "http://zvo n.org/uppe rc as e" >
<lo we r:x111 />
<s s s xmlns :lowe r = "http://zvo n.o rg/xnumbe r" >
<lo we r:x111 /> </s s s> </lowe r:BBB> <lo we r:x111 /> </aaa> <aaa xmlns = "http://zvon.org/uppe rc as e" >
<BBB xmlns :uppe r = "http://zvon.org/upperc as e" uppe r:U = "A" U = "A" lo we r:U = "A" />
</aaa>
<aaa xmlns = "http://zvon.org/lowe rc as e" >
<uppe r:BBB xmlns :uppe r = http://zvon.org/uppe rc as e
xmlns = "http://zvon.org/xnumbe r" >
<x111 />
</upper:BBB>
<x111 />
</aaa>
</OOO> Xác định namespace của những element trong tài liệu XML này
ĐHKHTN-CNTT-Lương Há n Cơ
65
Bài t p:ậ