Bài giảng Công nghệ XML và web ngữ nghĩa - Bài 2: Lược đồ XML (XML Schema)

Lược đồ XML  
(XML Schema)  
Mục tiêu  
Đọc và tạo XML Schema  
Làm thế nào để sử dụng được XML Schema  
trong ứng dụng.  
Vì sao XML Schema mạnh hơn DTD  
Giới thiệu  
Vì sự phức tạp của khai báo DTD, tổ chức  
W3C đưa ra một giải pháp tổng quát hơn  
DTD đó là khai báo và định nghĩa các phần  
tử trong tài liệu XML theo lược đồ XML (XML  
Schema).  
Để kiểm tra tính hợp lệ của tài liệu XML bằng  
lược đồ XML Schema, ta dùng các bộ kiểm  
tra cú pháp lược đồ (Schema Checker).  
Giới thiệu  
Định nghĩa những phần tử xuất hiện trong tài liệu XML.  
Định nghĩa những thuộc tính xuất hiện trong tài liệu.  
Định nghĩa quan hệ phần tử cha con  
Định nghĩa thứ tự các phần tử con  
Định nghĩa số phần tử con  
Định nghĩa phần tử rỗng hay chứa dữ liệu text  
Định nghĩa kiểu dữ liệu của phần tử và thuộc tính  
Định nghĩa giá trị mặc định của thuộc tính và phần tử  
Tại sao XML sử dụng XML Schema?  
Dễ dàng để mô tả nội dung tài liệu vì dùng  
chính cú pháp XML để định nghĩa  
Dễ kiểm tra tính hợp lệ của tài liệu  
Dễ định nghĩa về mặt dữ liệu (data facet)  
Dễ dàng định nghĩa dữ liệu mẫu (data  
patterns)  
Dễ chuyển đổi kiểu dữ liệu này sang kiểu dữ  
liệu khác  
Ví dụ  
Note.xml  
<?xml version="1.0"?>  
<note>  
<to>Tove</to>  
<from>Jani</from>  
<heading>Reminder</heading>  
<body>Don't forget me this weekend!</body>  
</note>  
Ví dụ (tt)  
Note.dtd  
<!ELEMENT note (to, from, heading, body)>  
<!ELEMENT to (#PCDATA)>  
<!ELEMENT from (#PCDATA)>  
<!ELEMENT heading (#PCDATA)>  
<!ELEMENT body (#PCDATA)>  
Ví dụ (tt)  
Note.xsd  
<?xml version="1.0"?>  
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
targetNamespace="http://www.w3schools.com"  
<xs:element name="note">  
<xs:complexType>  
<xs:sequence>  
<xs:element name="to" type="xs:string"/>  
<xs:element name="from" type="xs:string"/>  
<xs:element name="heading" type="xs:string"/>  
<xs:element name="body" type="xs:string"/>  
</xs:sequence>  
</xs:complexType>  
</xs:element>  
</xs:schema>  
Ví dụ (tt)  
Tài liệu XML có tham chiếu file DTD  
<?xml version="1.0"?>  
<!DOCTYPE note SYSTEM  
"http://www.w3schools.com/dtd/note.dtd">  
<note>  
<to>Tove</to>  
<from>Jani</from>  
<heading>Reminder</heading>  
<body>Don't forget me this weekend!</body>  
</note>  
Ví dụ (tt)  
Tài liệu XML tham chiếu lược đồ XML  
<?xml version="1.0"?>  
<note xmlns="http://www.w3schools.com"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
<to>Tove</to>  
<from>Jani</from>  
<heading>Reminder</heading>  
<body>Don't forget me this weekend!</body>  
</note>  
Lược đồ XML – Phần tử <schema>  
<schema> là phần tử gốc của mọi lược đồ XML Schema.  
<?xml version="1.0"?>  
<xs:schema>  
...  
...  
</xs:schema>  
Trong lược đồ XML Schema chứa một vài thuộc tính như sau:  
<?xml version="1.0"?>  
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
targetNamespace="http://www.w3schools.com"  
xmlns="http://www.w3schools.com"  
elementFormDefault="qualified">  
...  
...  
</xs:schema>  
Lược đồ XML – Phần tử <schema>  
xmlns:xs="http://www.w3.org/2001/XMLSchema“ chỉ  
ra các phần tử và kiểu dữ liệu dùng trong lược đồ từ  
bộ kiểm tra cú pháp lược đồ rằng tất cả các phần tử  
dùng trong tài liệu XML đều được khai báo trong  
namespace "http://www.w3schools.com”.  
note.xsd"  
Định nghĩa phần tử đơn  
Phần tử đơn là phần tử chỉ chứa dữ liệu text,  
không chứa các phần tử khác hay thuộc tính.  
Kiểu text trong XML Schema có thể là kiểu  
boolean, string, date…  
Cú pháp để định nghĩa một phần tử đơn:  
<xs:element name="xxx" type="yyy"/>  
Định nghĩa phần tử đơn  
Trong đó xxx là tên của phần tử và yyy là kiểu dữ  
liệu của phần tử.  
XML schema đã xây dựng sẵn nhiều kiểu dữ liệu.  
Một vài kiểu dữ liệu phổ biến:  
xs:string  
xs:decimal  
xs:integer  
xs:boolean  
xs:date  
xs:time  
Ví dụ  
Trong tài liệu XML có các phần tử sau:  
<lastname>Refsnes</lastname> <age>36</age>  
<dateborn>1970-03-27</dateborn>  
Định nghĩa trong XML Schema như sau:  
<xs:element name="lastname" type="xs:string"/>  
<xs:element name="age" type="xs:integer"/>  
<xs:element name="dateborn" type="xs:date"/>  
Đặt giá trị mặc định cho phần tử đơn  
Giá trị mặc định:  
Dùng Default: phần tử sẽ được tự động gán giá trị mặc định  
nếu nó không được gán bởi giá trị khác được.  
Dùng Fixed: giá trị của phần tử sẽ được gán bằng giá trị mặc  
định và không thay đổi.  
Ví dụ:  
<xs:element name="color" type="xs:string" default="red"/>  
<xs:element name="color" type="xs:string" fixed="red"/>  
Tạo các kiểu dữ liệu đơn giản  
Restriction: dùng để định nghĩa các giá trị cho phần tử hay thuộc  
tính trong tài liệu XML.  
Restriction trên giá trị:  
Ví dụ: muốn định nghĩa một phần tử tên là AGE và giá trị của nó  
chỉ nằm từ 0 đến 120.  
<xs:element name="age">  
<xs:simpleType>  
<xs:restriction base="xs:integer">  
<xs:minInclusive value="0"/>  
<xs:maxInclusive value="120"/>  
</xs:restriction>  
</xs:simpleType>  
</xs:element>  
Tạo các kiểu dữ liệu đơn giản  
Restriction trên một tập các giá trị:  
Ví dụ: định nghĩa một phần tử CAR mà giá trị của nó nằm trong tập  
các giá trị sau: BMW, TOYOTA, FORD  
<xs:element name=“CAR">  
<xs:simpleType>  
<xs:restriction base="xs:string">  
<xs:enumeration value=“BMW"/>  
<xs:enumeration value=“TOYOTA"/>  
<xs:enumeration value=“FORD”/>  
</xs:restriction>  
</xs:simpleType>  
</xs:element>  
Tạo các kiểu dữ liệu đơn giản  
Restriction trên một tập các giá trị:  
Với ví dụ trên có cách viết tương tự:  
<xs:element name=“CAR" type="carType"/>  
<xs:simpleType name="carType">  
<xs:restriction base="xs:string">  
<xs:enumeration value=“BMW"/>  
<xs:enumeration value=“TOYOTA"/>  
<xs:enumeration value=“FORD"/>  
</xs:restriction>  
</xs:simpleType>  
Tạo các kiểu dữ liệu đơn giản  
Restriction trên một chuỗi các giá trị:  
Ví dụ: định nghĩa một phần tử “LETTER” mà giá trị của nó chỉ là một  
trong các kí tự thường từ a đến z:  
<xs:element name=“LETTER">  
<xs:simpleType>  
<xs:restriction base="xs:string">  
<xs:pattern value="[a-z]"/>  
</xs:restriction>  
</xs:simpleType>  
</xs:element>  
Tải về để xem bản đầy đủ
pdf 59 trang yennguyen 22260 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ XML và web ngữ nghĩa - Bài 2: Lược đồ XML (XML Schema)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_cong_nghe_xml_va_web_ngu_nghia_bai_2_luoc_do_xml_x.pdf