Thực thể và thuộc tính DTD

Một phần của tài liệu Nghiên cứu xây dựng hệ thống trợ giúp bài giảng theo công nghệ hướng đối tượng và ngôn ngữ XML (Trang 38)

a. Thực thể là gì?

Thực thể (entity) là cách XML tham chiếu đến một mục dữ liệu, th−ờng là văn bản (text) hoặc cũng có thể là dữ liệu nhị phân. Thực thể đ−ợc khai báo trong phần định nghĩa DTD, sau đó đ−ợc sử dụng bằng cách tham chiếu đến nó trong tài liệu. Có hai loại thực thể: thực thể tổng quát (general entity) và thực thể tham số (parameter entity). Thực thể có thể là nội (đ−ợc định nghĩa hoàn toàn trong tài liệu tham chiếu đến nó) hoặc là ngoại (nội dung của nó đ−ợc định nghĩa từ nguồn dữ liệu bên ngoài, th−ờng đ−ợc tham chiếu bằng địa chỉ URL hoặc URI).

Thực thể có thể ở dạng phân tích hoặc không phân tích. Với thực thể phân tích, nội dung của nó phải hợp khuôn dạng văn bản của XML. Còn với thực thể không phân tích, nội dung của nó gồm các dữ liệu text hoặc nhị phân mà ng−ời sử dụng không muốn trình phân tích XML phân tích chúng.

a1. Thực thể tổng quát

Cú pháp khai báo và định nghĩa thực thể tổng quát:

<!ENTITY Name Definition>

Trong đó: Name là tên thực thể, đ−ợc dùng để tham chiếu đến nội dung của nó; Definition là định nghĩa của thực thể, nội dung định nghĩa đơn giản nhất là các văn bản cần thay thế khi thực thể đ−ợc tham chiếu đến.

Để tham chiếu đến nội dung thực thể có tên Name ta dùng cú pháp: &Name; Để khai báo thực thể ngoại ta dùng cú pháp:

<!ENTITY Name SYSTEM URI>

Hoặc <!ENTITY Name PUBLIC FPI URI>

Trong đó ý nghĩa từ khoá SYSTEM và PUBLIC t−ơng tự nh− trong định nghĩa DTD ngoại.

a2. Thực thể tham số

Cú pháp khai báo thực thể tham số nội và ngoại lần l−ợt nh− sau:

<!ENTITY %Name Definition> <!ENTITY %Name SYSTEM URI>

Hoặc <!ENTITY %Name PUBLIC FPI URI>

Để tham chiếu đến nội dung thực thể tham số có tên Name ta dùng cú pháp: %Name;

a3. Sự khác nhau giữa thực thể tham số và thực thể tổng quát

Ta sử dụng tham chiếu thực thể tổng quát để trình xử lý XML thay thế nội dung tham chiếu bằng chính nội dung của thực thể trong tài liệu. Ta không thể dùng nó trong bản thân các khai báo DTD. Tham chiếu đến các thực thể tham số chỉ có thể sử dụng trong định nghĩa DTD. Thực thể tham số nội chỉ có thể dùng trong phần khai báo DTD chính. Khi sử dụng DTD tham chiếu ngoại, các thực thể tham số có thể dùng ở bất kỳ đâu trong khai báo DTD. Mục đích của việc dùng thực thể tham số là tránh các khai báo lặp đi lặp lại khi định nghĩa DTD, khi cần thiết ta chỉ thay đổi nội dung thực thể thì các định nghĩa DTD sử dụng tham chiếu đến thực thể sẽ tự động thay đổi theo.

Ví dụ, xây dựng lại file data.dtd nh− sau:

<!ENTITY %canbo “(hoten, ngaysinh, gioitinh, khoa⏐phong)”>

<!ELEMENT danhsachCBCNV (giangvien⏐nhanvien)*>

<!ELEMENT giangvien %canbo;> <!ELEMENT nhanvien %canbo;> <!ELEMENT hoten (#PCDATA)> <!ELEMENT ngaysinh (#PCDATA)> <!ELEMENT gioitinh (#PCDATA)> <!ELEMENT khoa (#PCDATA)> <!ELEMENT phong (#PCDATA)>

Khi đó, nội dung file danhsach.xml sử dụng định nghĩa DTD trên là:

<?xml version=”1.0” standalone=”no”?>

<!DOCTYPE danhsachCBCNV SYSTEM “data.dtd”> <danhsachCBCNV>

<giangvien>

<hoten> Nguyễn Văn A </hoten> <ngaysinh> 21-10-1954 </ngaysinh> <gioitinh> Nam </gioitinh>

<khoa> CNTT </khoa> </giangvien>

<nhanvien>

<hoten> Trần Thanh Mai </hoten> <ngaysinh> 11-5-1969 </ngaysinh> <gioitinh> Nữ </gioitinh> <phong> Tμi vụ </phong> </nhanvien> ... </danhsachCBCNV> b. Thuộc tính

Trong phần 2.2.2(b) ta dã nói qua về thuộc tính của các thẻ, ý nghĩa và vị trí đặt chúng. Tuy nhiên, tr−ớc khi đặt thuộc tính cho một thẻ nào đó, ta cần phải định nghĩa thuộc tính sẽ kết hợp với thẻ đó trong DTD. Cú pháp khai báo thuộc tính nh−

sau:

<!ATTLIST Name

attName Type Default_value attName Type Default_value

....

attName Type Default_value>

Trong đó Name là tên phần tử kết hợp thuộc tính, attName là tên thuộc tính, Type là kiểu thuộc tính còn Default_value là giá trị mặc định cho thuộc tính. Hai bảng sau mô tả các kiểu dữ liệu của thuộc tính và các thiết lập mặc định cho thuộc tính.

Kiểu dữ liệu ý nghĩa

CDATA Dữ liệu đơn giản không chứa phần định dạng

ENTITIES Tham chiếu các thực thể (những thực thể này phải đ−ợc khai báo trong DTD)

ENTITY Tên tham chiếu của thực thể (cũng phải khai báo trong DTD) Enumerated Đại diện cho một sanh sách các giá trị mà thuộc tính có thể d−ợc

gán

ID Tên định danh duy nhất trong tài liệu XML

Bảng 2.2: Các kiểu dữ liệu của thuộc tính

Default_value ý nghĩa

Value Chuỗi giá trị văn bản thô bọc trong cặp dấu nháy

#IMPLIED Chỉ định không có giá trị mặc định cho thuộc tính và thuộc tính này không cần phải dùng đến

#REQUIRED Chỉ định không có giá trị mặc định cho thuộc tính nh−ng phải gán giá trị cho thuộc tính khi sử dụng

#FIXED Value

Value là giá trị bắt buộc, cố định và thuộc tính luôn phải mang giá trị này

Bảng 2.3: Các thiết lập mặc định cho thuộc tính

Một phần của tài liệu Nghiên cứu xây dựng hệ thống trợ giúp bài giảng theo công nghệ hướng đối tượng và ngôn ngữ XML (Trang 38)

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

(97 trang)