intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Tích hợp dữ liệu và XML - Chương 8: DTD

Chia sẻ: Cố Dạ Bạch | Ngày: | Loại File: PDF | Số trang:7

2
lượt xem
0
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Tích hợp dữ liệu và XML - Chương 8: DTD. Chương này cung cấp cho sinh viên những nội dung gồm: DTD là gì; khai báo DTD nội; khai báo DTD ngoại; khai báo phần tử; khai báo thuộc tính; phần tử vs. thuộc tính; thực thể;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tích hợp dữ liệu và XML - Chương 8: DTD

  1. 18/02/2013 Nội dung DTD là gì? DTD Khai báo DTD nội Khai báo DTD ngoại Khai báo phần tử Nguyễn Hồng Phương Khai báo thuộc tính Email: phuong.nguyenhong@hust.vn Site: http://is.hut.edu.vn/~phuongnh Phần tử vs. Thuộc tính Bộ môn Hệ thống thông tin Thực thể Viện Công nghệ thông tin và Truyền thông Đại học Bách Khoa Hà Nội 1 2 DTD là gì? Tại sao sử dụng DTD? Document Type Definition Với một DTD, mỗi file XML có thể mang Là tài liệu dùng ñể ñịnh nghĩa kiểu dữ một mô tả ñịnh dạng của nó. liệu cho các phần tử của tài liệu XML. Các nhóm ñộc lập có thể chấp nhận Khi ñọc tài liệu XML, chỉ cần ñọc phần một chuẩn DTD ñể trao ñổi dữ liệu DTD là sẽ biết ñược cấu trúc XML Một ứng dụng có thể sử dụng một DTD chuẩn thể kiểm tra dữ liệu nhận về từ bên ngoài có hợp lệ hay không. 3 4 Khai báo DTD nội Ví dụ: Khai báo DTD nội Nếu DTD ñược khai báo bên trong file ]> Tove Jani Reminder Don't forget me this weekend 5 6 1
  2. 18/02/2013 Giải thích Khai báo DTD ngoại !DOCTYPE note ñịnh nghĩa phần tử gốc của tài Nếu DTD ñược khai báo bên trong file liệu là note bên ngoài, nó nằm trong ñịnh nghĩa !ELEMENT note ñịnh nghĩa phần tử note chứa 4 phần tử: to, from, heading, body DOCTYPE: !ELEMENT to ñịnh nghĩa phần tử to thuộc kiểu #PCDATA !ELEMENT from ñịnh nghĩa phần tử from thuộc kiểu #PCDATA !ELEMENT heading ñịnh nghĩa phần tử heading thuộc kiểu #PCDATA !ELEMENT body ñịnh nghĩa phần tử body thuộc kiểu #PCDATA 7 8 Ví dụ khai báo DTD ngoại Khai báo phần tử Phần tử dùng ñể ñịnh nghĩa kiểu dữ liệu cho một phần tử của một tài liệu XML. Tove Cú pháp: Jani Reminder hoặc Don't forget me this weekend! Phần tử với kiểu rỗng File note.dtd: Ví dụ: Ví dụ XML: 9 10 Khai báo phần tử (tiếp) Khai báo phần tử (tiếp) Phần tử có kiểu văn bản Định nghĩa phần tử có chứa một phần tử con Ví dụ: Ví dụ: Phần tử với kiểu dữ liệu bất kỳ Định nghĩa một phần tử chứa nhiều phần tử con Cách 1: Ví dụ: Ví dụ: 11 12 2
  3. 18/02/2013 Khai báo phần tử (tiếp) Khai báo phần tử (tiếp) Cách 2: sử dụng kí tự ñại diện Phần tử có 1 hoặc nhiều phần tử con Ví dụ: Chú ý, các phần tử con trong tài liệu Phần tử có 0 hoặc nhiều phần tử con có trình tự giống trình tự khai báo các phần tử con ở ñây. Ví dụ: Các phần tử con cũng có thể có các phần tử con mức dưới nữa. 13 14 Khai báo phần tử (tiếp) Khai báo thuộc tính với Phần tử có 0 hoặc 1 con Phần tử dùng ñể ñịnh nghĩa kiểu tư liệu của các thuộc tính cho một phần tử Ví dụ: trong tài liệu XML phần tử note phải chứa phần tử to, from, Ví dụ DTD: header và {mesage hoặc body} Phần tử chứa phần tử con hoặc dữ liệu Ví dụ XML: phần tử note chứa 0 hoặc nhiều kiểu văn bản, phần tử to, from, header hoặc message. 15 16 Khai báo thuộc tính với Khai báo thuộc tính với Kiểu Mô tả Các kiểu thuộc tính có thể là: Kiểu Mô tả NMTOKEN Giá trị là một tên XML hợp lệ CDATA Thuộc tính này chỉ có thể chứa kiểu dữ liệu kí tự NMTOKENS Giá trị là một danh sách các tên XML hợp lệ (en1|en2|..) Thuộc tính chỉ nhận giá trị từ danh sách này ENTITY Giá trị là một thực thể ID Giá trị của thuộc tính này không ñược trùng nhau và bắt ñầu bởi 1 chữ cái ENTITIES Giá trị là một danh sách các thực thể IDREF Giá trị của thuộc tính này phải là một trong các giá trị NOTATION Giá trị là tên của một kí hiệu của thuộc tính ID của các phần tử khác IDREFS Giá trị của thuộc tính này phải là các giá trị của các xml: Giá trị là một giá trị xml ñã ñịnh sẵn thuộc tính có kiểu ID 17 18 3
  4. 18/02/2013 Khai báo thuộc tính với Ví dụ: thuộc tính mặc ñịnh Giá trị mặc ñịnh: có thể nhận một trong các giá DTD: trị sau: Giá trị Giải thích value là một giá trị mặc ñịnh nào ñó, ví XML hợp lệ: value dụ "SoICT" #REQUIRED Thuộc tính này phải có giá trị Phần tử square là một phần tử rỗng, thuộc tính width có kiểu CDATA. Nếu không ñược Thuộc tính này không nhất thiết phải có #IMPLIED xác ñịnh, giá trị của nó sẽ là mặc ñịnh 0 (ở giá trị ñây ñã xác ñịnh là 100) #FIXED value Giá trị thuộc tính ñược gán cố ñịnh 19 20 #REQUIRED #IMPLIED Cú pháp: Cú pháp: Ví dụ: Ví dụ: DTD: XML hợp lệ: XML hợp lệ: XML không hợp lệ: XML hợp lệ: 21 22 #FIXED Thuộc tính nhận một trong các giá trị liệt kê Cú pháp: Cú pháp: (en1|en2|..) default-value> Ví dụ: Ví dụ: DTD: DTD: "Microsoft"> XML hợp lệ: Ví dụ XML: XML không hợp lệ: hoặc 23 24 4
  5. 18/02/2013 Phần tử vs. Thuộc tính, khi nào? Phần tử vs. Thuộc tính, khi nào? Dữ liệu có thể lưu trữ trong các phần tử Nhìn chung, không có quy tắc. Nên sử dụng phần con hoặc các thuộc tính. tử con khi thông tin giống như là dữ liệu. Ví dụ: Tove Jani Reminder Anna Don't forget me this weekend! Smith 12/11/2002 Tove female Jani Anna Reminder Smith Don't forget me this weekend! 25 26 Tránh sử dụng thuộc tính? Một số vấn ñề với thuộc tính Không thể chứa nhiều giá trị (trong khi phần tử con có thể!) Không dễ dàng mở rộng trong tương lai 12 Không mô tả các cấu trúc 11 2002 Khó ñể thao tác bởi ñoạn mã lập trình Các giá trị thuộc tính là không dễ dàng ñể Tove Jani kiểm tra một DTD Reminder
  6. 18/02/2013 Khai báo thực thể bên trong Khai báo thực thể ngoài Cú pháp Cú pháp Ví dụ Ví dụ Ví dụ DTD: Ví dụ DTD: "http://www.w3schools.com/entities.dtd"> Ví dụ XML: &writer;&copyright; Một thực thể có 3 phần: kí hiệu &, tên Ví dụ XML: thực thể và dấu ; &writer;&copyright; 31 32 Một số ví dụ trên internet TV Schedule DTD TV Schedule DTD Newspaper Article DTD Copied from http://www.vervet.com/ ]> 33 34 Newspaper Article DTD Hỏi - ñáp ]> 35 36 6
  7. 18/02/2013 Lời hay ý ñẹp "Thiếu tự tin là nguyên nhân của phần lớn mọi sự thất bại" Bowee 37 7
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2