Lc đ Schema

Một phần của tài liệu 1195TÌM HIẾU HTML VÀ CÔNG NGHỆ XML XÂY DỰNG TRÌNH BIÊN DỊCH HTML SANG XML (Trang 40 - 73)

2.3.5. Nhúng d l iu phi XML vào tài l iu

2.4. Lc đ Schema

M t l c đ đ n gi n ch là m t t p nh ng lu t đ c đnh ngh a l i đ mô t n i dung d li u c a m t tài li u XML. Nó t ng t nh m t đnh ngh a c u trúc b ng trong c s d li u quan h . Trong l c đ XML, chúng ta đ nh ngh a m t tài li u XML, nh ng ph n t c a nó, nh ng ki u d li u c a ph n t và nh ng thu c tính liên quan, và

đi u quan tr ng nh t là m i quan h “cha-con” gi a nh ng ph n t . Chúng ta có th t o

l c đ trong nhi u cách khác nhau. Cách đ n gi n nh t là s d ng Notepad. L c đ cho phép ta đnh ngh a và khai báo ki u d li u mà ta c n. Ta dùng ch th <schema> đ b t đ u khai báo l c đ . Sau đây là m t ví d m t l c đ XML:

<xsd:schema id="Catalog" targetNamespace="http://tempuri.org/Catalog1.xsd" xmlns="http://tempuri.org/Catalog1.xsd” xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">

<xsd:element name="Catalog" msdata:IsDataSet="true" msdata:EnforceConstraints="False"> <xsd:complexType>

<xsd:choice maxOccurs="unbounded"> <xsd:element name="Product">

<xsd:complexType> <xsd:sequence>

<xsd:element name="ProductID" type="xsd:string" minOccurs="0" /> <xsd:element name="ProductName" type="xsd:string" minOccurs="0" /> <xsd:element name="ListPrice" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> Ki u Mô t

bin.base64 Ki u đ i t ng nh phân mã hóa theo chu n base64

bin.hex Ki u hex

boolean Mang giá tr 0 ho c 1. char Ki u ký t

date Ngày tháng dateTime Ngày gi float S ch m đ ng.

int S nguyên.

number Ki u s đ n gi n(khơng có gi i h n g m s âm, s d ng, s l , s m …)

i1 S nguyên 1 byte i2 S nguyên 2 byte i4 S nguyên 4 byte

r4 S th c làm trịn đ n 7 kí s .

r8 S th c làm trịn đ n 15 kí s .

ui2 S nguyên không d u 2 byte ui4 S nguyên không d u 4 byte

Theo schema, ph n t ch a các ph n t con có thêm thu c tính là complex type, n u ch ch a d li u đ n gi n nh chu i, ngày tháng, s và không ch a thu c tính và ph n t con thì đ c g i là simple type.

Khai báo các ph n t và ki u d li u:

<prefix:complexType> T o ki u ph c h p <prefix:simpleType> T o ki u đ n gi n <prefix:element> Khai báo thành ph n <prefix:attribute> Khai báo thu c tính

Các ki u gi n đ n:

Ki u Mô t

binary Ki u d li u nh phân nh 110001 boolean Ki u lu n lý nh True, False, 1, 0 byte Ki u byte nh 123; l n nh t là 255 century Ki u th k nh 20

date Ki u ngày v i đnh d ng YYYY-MM-DD nh 2001-10-15

decimal Ki u th p nh 5.4, 0, -219.06 double Ki u s th c 64-bit

ENTITIES Ki u th c th . ENTITY Ki u đa th c th .

float Represents a single-precision 32-bit floating point ID Ki u đnh danh.

IDREF Ki u tham chi u đnh danh.

int Ki u s nguyên nh 123456789 integer Ki u s nguyên

language Ki u đnh danh ngôn ng nh de, fr, or en-US

long Ki u long integer, such as 12345678901234 month Ki u tháng nh 2001-10

Name Represents the XML 1.0 Name type

NCName Holds an XML name without a namespace prefix and colon negativeInteger Represents a negative integer

NMTOKEN Ki u Token đ n.

NMTOKENS Ki u đa token.

NOTATION Ki u ghi chú.

short Ki u short integer nh 12345 string Ki u chu i

time Ki u gi nh 12:00:00.000

uriReference Holds a URI, such as http://www.w3c.org

year Ki u n m 2001

- Ta có th khai báo hay đnh ngh a 1 ki u ph c h p bên trong ki u ph c h p mà ta đang đnh ngh a. Ta có ki u ph c h p address đ c s d ng trong ki u ph c h p transactionType.

- Trong ch th khai báo ph n t ta có th dùng tham chi u (ref) đ n ph n t đã đ c đnh ngh a n i khác.

- M c dù đ c phép đ a vào 1 ph n t đã đ c đnh ngh a tr c đó nh ng ph i tuân theo quy t c: ph n t không đ c là m t ph n c a đnh ngh a ki u ph c h p, ph n t ph i đ c khai báo tòan c c ngay sau c p <schema>.

- ch đnh s l n xu t hi n c a ph n t (có th là s l n ít nh t) ta dùng thu c tính minOccurs = 0, s l n nhi u nh t mà ph n t đ c phép xu t hi n ta dùng thu c tính maxOccurs.

- Ch đnh ràng bu c và tr m c đnh cho thu c tính:

Required Thu c tính c n ph i hi n h u trong th và ph i đ c gán tr . Optional Th ơc tính có th có ho c khơng và giá tr là không b t bu c. Fixed giá tr thu c tính ph i đ c gán c đnh và không đ c thay đ i. Default N u thu c tính khơng đ c gán tr thì giá tr đnh ngh a trong l c

đ là giá tr m c đnh c a thu c tính. prohibited Khơng cho phép th ơc tính xu t hi n.

Và ta dùng t khóa “use” đ ch đnh ràng bu c cho thu c tính.

- Có th t đnh ngh a ki u gi n đ n nh ng ph i d a trên ki u gi n đ n c s n i t i c a đ c t XML và ta dùng thu c tính “base”.

- Khái ni m facet đ c dùng đ ch ph m vi gi i h n t p d li u c a ki u gi n

đ n, ta dùng 2 thành ph n: minInclusive, maxInclusive.

Ngòai ra trong facet, còn thành “pattern” dùng đ so kh p theo m u gi i h n và thành ph n gi i h n ki u li t kê “enumeration”.

- T o các ph n t r ng b ng cách khai báo ki u ph c h p và đ t thu c tính “content” là “empty”. Ví d :

<xsd:element name="image">

<xsd:complexType content="empty">

- T o các ph n t có n i dung h n h p(v a v n b n v a các ph n t con) b ng cách khai báo ki u ph c h p và đ t thu c tính “content” là “mixed”.

- L c đ chú gi i: <xsd:annotation>, <xsd:documentation>, và <xsd:appInfo>. <prefix:annotation> Là ph n t chú gi i chính ch a các ph n t con <prefix:documentation>, và <prefix:appInfo> <prefix:documentation> Dùng đ ch a các chu i v n b n dùng đ ch a chú thích trong tài li u.

<prefix:appInfo> Ch a thông tin liên quan đ n t ng ng d ng.

- T o các l a ch n: dùng khai báo <prefix:choice>.

- T o khai báo tu n t : dùng đnh ngh a <prefix:sequence>.

- T o nhóm và thu c tính nhóm: dùng khai báo <prefix:group> - gom nhóm, <prefix: attributeGroup> - gom thu c tính.

- T o nhóm all: các ph n t đ c đ nh ngh a trong nhóm all ph i xu t hi n đ ng th i trong tài li u ho c khơng có ph n t nào xu t hi n c .

S đ th hi n s phân c p gi a các ki u d li u. 2.5. Xpointer

Xpointer đ c dùng đ tr đ n m t m c thông tin d li u trong tài li u XML. Xpointer đ c xây d ng d a trên c s Xpath. Tuy Xpath có kh n ng đnh v nh ng nó khơng có kh n ng ch ra chính xác d li u c n l y. làm đ c đi u này, chúng ta c n nh vào Xpointer. phân bi t s khác nhau gi a Xpath và Xpointer, chúng ta hình dung đ truy xu t d li u ch a trong m t t p tin v n b n nào đó, Xpath ch có th t o

đ ng d n đ n v trí c a file, trong khi Xpointer có th cho bi t v trí c a t ng ký t c th ho c m t đo n v n b n c th .

Xpointer đnh ngh a m t v trí d li u d a trên đi m tr (point). Có hai lo i đi m đó là đi m tr nút (node-point) và đi m tr ký t (chacracter-point). Khi mu n đ nh v tài li u d a trên các ph n t XML(nút), b n s d ng đi m tr nút. Khi mu n đnh v d li u

đ n t ng ký t c th c a n i dunh tài li u, b n có th dùng đi m tr ký t . Các đi m tr d a trên ch s (index position) đ xác đnh v trí. N u t p d li u b n ch đnh bao g m nhi u nút con thì ch s s xác đnh v trí đi m tr nút. Ng c l i n u d li u không ch a các ph n t th XML thì ch s s xác đnh đi m tr ký t Vd: <DOCUMENT> <GREETING> Hello XML! </GREETING> </DOCUMENT>

Trong đo n tài li u trên có hai đi m tr nút. i m tr nút v i ch s 0 ch ph n t g c <DOCUMENT>, đi m tr nút v i ch s 1 ch ph n t <GREETING>. M c dù v y

chúng ta có đ n 10 đi m tr ký t . i m tr ký t v i ch s 0 ch ký t “H”, đi m tr ký t v i ch s 9 ch ký t “!”

Xpointer th ng đ c s d ng chung v i các đa ch c s URI hay URL. B ns d ng hàm tr xpointer() sau ký hi u # c a đa ch URL.

Vd:

Xlink

Xlink có nhi u ki u liên k t khác nhau, đ c chia thành 2 nhóm: -Simple link

-extended link: đích đ n có th là ngi u tài li u và liên k t có th đnh ngh a m t m i quan h gi a các tài li u đó. M i quan h cho phép liên k t hai chi u

Các thu c tính c a simple link

href đ c t URI, URL hay v trí c a tài nguyên đích

inline đ c t r ng n u liên k t là inline (đích

đ n là m t ph n trong tài nguyên c c b ) ho c out-of-line (đích đ n khơng n m trong tài ngun c c b . Giá tr true s là inline, false s là out-of-line Show ch đnh tài nguyên đích s đ c bi u

di n nh th nào. Có th là

replace : tài nguyên đích s đ c n p vào c a s hi n hành, ho c thay ho c thay th d li u hi n hành đ x lý embed : tài nguyên đích s c nhúng vào tài nguyên hay d li u hi n hành new : tài nguyên đích s đ c s đ c n p vào c a s m i, không nh h ng gì đ n t i d li u hi n hành

Actuate đ c t r ng khi liên k t xoay chi u. Khi tài nguyên cái mà liên k t tr đ n đ đ c g i ho c truy c p.

user: tài nguyên đích ch đ c truy c p khi ng i dùng ho c hành đ ng bên ngoài yêu c u

auto: tài nguyên đích đ c truy c p khi tài nguyên còn l i trong cung m t liên k t đ c truy c p, đ m m t series các tài nguyên có liên h v i nhau b ng 1 cái click chu t

Behavior đ c t m t t p các ch d n không đ c

đnh ngh a trong Xlink hay trong tài li u XML nh ng chúng đi u khi n trang thái c a liên k t theo cách mà n c dung

đ c bi u di n. T ng t nh thu c tính behavior trong CCS style sheet liên k t m t ph n t đ n m t hàm

Role gi ng v i thu c tính name trong HTML, role đ c dùng đ t o m i liên k t gi a các tài li u

Title đ c t m t cái nhãn ho c m t text đ c trình bày cho ng i dùng xem.

Content-role m t cách thay th cho role. Thông tin này s đ c s d ng mà không c n đ c

t trong nh ng chu n Xlink

Content-title m t cách thay th cho role. Thông tin này s đ c s d ng mà không c n đ c t trong nh ng chu n Xlink

Steps đ c t “levels deep” đ đi đ n khi truy c p và nh ng tài nguyên t m t liên k t. Ví d : n u trang trang đích c a liên k t

đ c t các tài nguyên nh là nh ng đích

đ n c a các liên k t. Khi đó thu c tình actuate s là auto, ng d ng có th s b quá t i khi truy c p vào t t c các liên k t. M t giá tr nguyên cho steps s ng n ng a đi u này b ng cách đi u

khi n nh ng liên k t trong m t m t xích cho phép

Giái tr thu c tính c a xml:link dành cho extended link

đ đ c t liên k t m r ng chúng ta ph i có m t cách đ đ c t m t t p h p các tài nguyên đích đ n. i u này đ c th c hi n b ng các s d ng 2 giá tr đ c bi t dành riêng cho xml:link

“locator” đ c t liên k t này ch đ n m t trong nh ng tài nguyên. Nó n m trong liên k t m r ng

“group” n đ nh r ng nó là m t nhóm các liên k t đ n các tài li u và nó ch a m t danh sách các liên k t này

“document” ch đnh r ng đây là liên k t đ n tài nguyên. Nó n m trong group

Vd1:

<mylink xml:link=”extended” inline=”false”>

<mytarget xml:link=”locator” inline=”false” role=”Font” Title=“How to specify different fonts”

Href=http://mysite.com/help/fonts.xml/>

<mytarget xml:link=”locator” inline=”false” role=“Color” Title=“How to specify different fonts”

Href=http://mysite.com/help/color.xml/>

<mytarget xml:link=”locator” inline=”false” role=”Text Size” Title=“How to specify different fonts”

Href=http://mysite.com/help/textsize.xml/> </mylink>

Vd2

<mylink xml:link=“group” inline =“false”>

<mytarget xml:link= “document” href= “http://mysite.com/doc/doc1.xml” /> <mytarget xml:link= “document” href= “http://mysite.com/doc/doc2.xml” /> <mytarget xml:link= “document” href= “http://mysite.com/doc/doc3.xml” /> </mylink>

T o đi m b t đ u tuy t đ i trong tài li u XML

root() đ c t g c c a tài li u, th ng là ph n t g c

origin() ch s d ng khi v trí đích n m trong cùng tài li u v i liên k t. c t ph n t ch a liên k t

Id(elementid) đ c t ph n t có thu c tính id là giá tr elementid. T t c các giá tr c a thu c tính id ph i là duy nh t trên tài li u đích

đ n

Html(anchorname) đ c t HTML <A> anchor có thu c tính name có giá tr anchorname. T t c các giá tr c a Name trong tai li u đích đ n ph i là duy nh t

Nh ng k thu t đnh v trong tài li u XML b t đ u t các đi m kh i đ u tuy t đ i Child nh ng ph n t con tr c ti p c a ph n t hi n hành.(only children) Descendant nh ng ph n t t i c p th p c a ph n t hi n hành(child,grandchild,…) Ancestor nh ng ph n t t i c p trên ph n t hi n hành(parent,grandparent) Psibling nh ng ph n t cùng c p nh ng xu t hi n tr c ph n t hi n hành Fsibling nh ng ph n t cùng c p nh ng xu t hi n sau ph n t hi n hành Preceding nh ng ph n t có th m ho c th đóng xu t hi n tr c ph n t hi n hành Following nh ng ph n t có th m ho c đóng xu t hi n sau ph n t hi n hành 2.6. Xpath

Trong tài li u XML, b n có th dùng khái ni m đ ng d n t ng t h th ng file c a h

đi u hành thông qua khái ni m Xpath. Xpath cung c p cho b n c ch tham chi u đ n m t m c d li u trong tài li u XML thông qua đ ng d n

Nh chúng ta bi t, tài li u XML th ng có ph n t g c (root) ví d nh <C></C> là ph n t g c trong tài li u minh h a đa nêu trên. M i ph n t con đ u n m bên trong ph n t g c. Xpath đ nh ngh a ph n t g c là ký t s trái “/”. tham chi u đ n m t nút d li u trong tài li u XML chúng ta có th ch đ ng d n t ng t nh đ ng d n c a th m c.

Xpath và các tham chi u đ ng d n trong tài li u XML ng d n tuy t đ i

N u đ ng d n Xpath b t đ u vàng / thì có ngh a đây là m t đ ng d n tuy t đ i b t ngu n t ph n t g c

Vd:

/AAA Ph n t đ c ch n là AAA

/AAA/BBB/CCC Ch n t t c ph n t CCC con c a /AAA/BBB

ng d n t ng th

Chúng ta s d ng ký t // đ tham chi u đ n t t c các ph n t trong tài li u Vd //BBB ch n t t c ph n t BBB trong tài li u //BBB/DDD ch n t t c các ph n t DDD con c a BBB Ch n các ph n t b ng ký t đ i di n * Ký t đ i di n * dùng ch n t t c các ph n t cùng tho mãn đ ng d n ch đnh Vd /AAA/CCC/DDD/* ch n t t c ph n t có đ ng d n /AAA/CCC/DDD /*/*/*/BBB ch n t t c ph n t BBB n m c p th 3 //* ch n t t c các ph n t trong tài li u Ch n các ph n t theo v trí b ng d u ngo c []

Một phần của tài liệu 1195TÌM HIẾU HTML VÀ CÔNG NGHỆ XML XÂY DỰNG TRÌNH BIÊN DỊCH HTML SANG XML (Trang 40 - 73)

Tải bản đầy đủ (PDF)

(109 trang)