Tải bản đầy đủ (.ppt) (40 trang)

Lý thuyết XML phần 4 Schema

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (195.33 KB, 40 trang )

Chuyên đề 1: TÌM HIỂU VỀ XML

Chương 4
Lược đồ XML (XML Schema)
Trường Đại học Nha Trang
Khoa Công nghệ Thông tin


Nội dung
 XML Schema là gì?
 Khai báo phần tử trong XML Schema
 Tham chiếu đến một XML Schema

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

2


XML Schema Definition
(XSD)

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

3


XML Schema
 XML Schema mô tả cấu trúc của tài liệu
XML, thay thế cho DTD
 XML Schema mô tả:





Các phần tử và thuộc tính trong tài liệu XML
Thứ tự và số lượng các phần tử con
Các kiểu dữ liệu của phần tử và thuộc tính

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

4


Lí do sử dụng XML Schema
 XML Schema là một sự thay thế cho DTD







Hỗ trợ nhiều loại dữ liệu
Sử dụng cú pháp XML
Bảo toàn sự giao tiếp dữ liệu
Ràng buộc khóa và tham chiếu mạnh hơn
DTD
Tích hợp với namespace

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm


5


Ví dụ
<?xml version="1.0"?>
<xs:schema xmlns:xs=“ />targetNamespace=“”
xmlns=“”
elementFormDefault="qualified">
<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>

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

6


Schema và namespace
<schema xmlns= />targetNamespace=“ />…..
</schema>

 />namespace của các từ khóa dùng trong sự xác

định lược đồ XML, ví dụ: schema,
targetNamespace,…
 targetNamespace: định nghĩa namespace của
lược đồ được xác định trong tài liệu
<schema>…</schema> trên
Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

7


Tham chiếu đến một XML
Schema
<?xml version="1.0"?>
xmlns=
xmlns:xsi= />xsi:schemaLocation=" note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

 xsi:schemaLocation nghĩa là lược đồ của namespace

được tìm thấy ở
note.xsd
Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm 8


Xây dựng lược đồ từ nhiều

thành phần
<schema xmlns= />targetNamespace=“ /><include schemaLocation=“ /><include schemaLocation=“ /><include schemaLocation=“ />….
</schema>
 <include>: giống như #include trong ngôn ngữ C
 schemaLocation: cho biết nơi để lấy thông tin

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

9


Khai báo phần tử trong XML
Schema
 Phần tử <schema> là phần tử gốc trong
các tài liệu XML Schema
<?xml version="1.0"?>
/>targetNamespace=
xmlns=
elementFormDefault="qualified">
......
</xs:schema>
Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

10


Khai báo phần tử trong XSD
 xmlns:xs=" /> Phần tử và loại dữ liệu trong lược đồ được khai báo trong namespace
và có tiền tố là xs

 targetNamespace=
 Các phần tử được định nghĩa trong lược đồ đến từ namespace

 xmlns=""
 namespace mặc định là xmlns=""
 elementFormDefault="qualified“
 Bất kỳ phần tử nào được sử dụng trong tài liệu XML phải từ
namespace đảm bảo chất lượng

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

11


Khai báo phần tử trong XSD
 Các kiểu phần tử:


Kiểu giản đơn (Simple element): là một
phần tử XML chỉ có kiểu dữ liệu text, mà
không có thuộc tính hoặc không thể chứa
các phần tử khác




Kiểu text có thể có nhiều loại

Kiểu phức hợp (Complex element): là một
phần tử XML có thuộc tính, hoặc chứa các

phần tử con khác

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

12


Khai báo phần tử kiểu giản
đơn

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

13


Kiểu giản đơn
 Kiểu giản đơn (Simple element):




Là một phần tử XML chỉ có kiểu dữ liệu text, mà
không có thuộc tính hoặc không thể chứa các phần
tử khác
Kiểu text có thể có nhiều loại khác nhau:






Built-in data type
User-defined data type

Người dùng có thể thêm ràng buộc cho kiểu dữ liệu
để giới hạn nội dung của nó, hoặc yêu cầu dữ liệu
thỏa mãn một mẫu nào đó

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

14


Định nghĩa một phần tử giản
đơn
<xs:element name="xxx" type="yyy"/>
 xxx: tên của phần tử
 yyy: kiểu dữ liệu của phần tử
 Các kiểu dữ liệu thông dụng:







xs:string
xs:decimal
xs:integer
xs:boolean
xs:date

xs:time

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

15


Ví dụ
 XML elements:
<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>

 Simple element definition:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

16


Giá trị mặc định và cố định
 Giá trị mặc định (default value):
<xs:element name="color" type="xs:string" default="red"/>

 Giá trị cố định (fixed value):
<xs:element name="color" type="xs:string" fixed="red"/>

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm


17


Khai báo thuộc tính trong
XSD

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

18


Thuộc tính trong XSD
 Thuộc tính được khai báo như một kiểu giản
đơn
 Các phần tử giản đơn không thể có thuộc tính.
Nếu một phần tử có thuộc tính, thì phần tử đó
được xem là phần tử phức hợp

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

19


Khai báo thuộc tính
<xs:attribute name="xxx" type="yyy"/>



xxx: tên của thuộc tính

yyy: kiểu dữ liệu của thuộc tính. Các kiểu dữ liệu
thông dụng:
xs:string
xs:decimal
xs:integer

xs:boolean
xs:date
xs:time

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

20


Ví dụ
 Phần tử XML có thuộc tính:
<lastname lang="EN">Smith</lastname>

 Định nghĩa thuộc tính trong XSD:
<xs:attribute name="lang" type="xs:string"/>

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

21


Khai báo loại thuộc tính
 Khai báo default:
<xs:attribute name="lang" type="xs:string" default="EN"/>


 Khai báo fixed:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>

 Khai báo required:
<xs:attribute name="lang" type="xs:string" use="required"/>

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

22


Các loại ràng buộc

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

23


Ràng buộc nội dung
 Khi một phần tử hay thuộc tính đã định
nghĩa kiểu dữ liệu, phần tử hay thuộc
tính đó đã có ràng buộc về nội dung
 Người dùng có thể thêm các ràng buộc
cho phần tử hay thuộc tính, gọi là (facet)

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

24



Ràng buộc giá trị
<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>

Lê Thị Bích Hằng - Bộ môn Kỹ thuật phần mềm

Kiểu miền con

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×