Định nghĩa kiểu tài liệu (DTD) và kiểm tra tính hợp lệ (Valid) của XML

Any: khai báo một phần tử kiểu Any có nghĩa phần tử được khai báo có thể chứa bất kì kiểu nội dung nào mà bạn định nghĩa.

Khi phần tử được khai báo là Any thì trình phân tích sẽ không kiểm tra cú pháp hay xác định tính hợp lệ của nội dung phần tử.

 

ppt51 trang | Chuyên mục: XML | Chia sẻ: dkS00TYs | Ngày: 07/10/2014 | Lượt xem: 1718 | Lượt tải: 5download
Tóm tắt nội dung Định nghĩa kiểu tài liệu (DTD) và kiểm tra tính hợp lệ (Valid) của XML, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
số nguyên, số chấm động nhưng phải ở dạng text. Không được chứa các thẻ định dạng Ví dụ: 	 	 	]> 	 	 	 Sam Smith 	 	 	Tài liệu trên là không hợp lệ vì trong thẻ chứa thẻ định dạng Định nghĩa kiểu dữ liệu Làm việc với nhiều phần tử con A*: không có hoặc có nhiều phần tử con giống nhau. A+: có một hoặc nhiều phần tử con giống nhau. A?: phần tử A hoặc không có phần tử nào cả A,B: phần tử A tiếp đến phần tử B. A|B: Phần tử A hoặc phần tử B nhưng không được cả hai. Ví dụ 	 Kiểu dữ liệu Ví dụ 1: 	 	 	 	]> 	 	 	Sam smith 	 	 	Tony Braxton 	 	 	Tài liệu trên bi bắt lỗi vì phần tử CUSTOMER xuất hiện hai lần trong tài liệu. Do đó để tài liệu không bị bắt lỗi thì dòng khai báo phải sửa lại như sau: Định nghĩa kiểu dữ liệu Ví dụ 2: 	Ta có thể sử dụng kí tự đại diện một nhóm thứ tự phần tử dựa vào dấu (). 	 	 	CUSTOMER có thể chứa một hoặc nhiều phần tử NAME, mỗi phần tử NAME lại kết hợp với phần tử CREDIT_RATING hoặc không (NAME, CREDIT_RATING?). Tổ hợp này lại được lặp lại một hoặc nhiều lần trong định nghĩa CUSTOMER (NAME, CREDIT_RATING?)+. Định nghĩa kiểu dữ liệu Ví dụ 3: 	… 	 	 	… 	 	 	 Tomatoes 	 8 	 $1.25 	 	 	 Tomatoes 	 8 	 $1.25 	 	 	 Định nghĩa nội dung hỗn hợp Một phần tử có thể chứa dữ liệu thuần text (#PCDATA) hoặc cũng có thể chứa dữ liệu thể hiện phần định dạng (Markup). Ví dụ: 	… 	 	… 	 	… 	 	 Tomatoes 	 8 	 $1.25 	 	 	 	T123456 	 	 8 	 $1.25 	 Định nghĩa DTD ngoại DTD nội (Internal DTD): phần định nghĩa và khai báo tài liệu nằm trong cùng tài liệu được gọi là DTD nội. DTD ngoại (External DTD): định nghĩa DTD được lưu trong file DTD. Khi đó tài liệu XML sẽ tham chiếu đến các định nghĩa trong file DTD Ví dụ: Định nghĩa DTD ngoại Ví dụ: 	 	 	 	]> 	 	 hahah 	 aaaa 	 kkkk 	 Định nghĩa DTD ngoại Ví dụ: 	file DTD: vd.dtd 	 	 	file XML: 	 	 	 	 hahah 	 aaaa 	 kkkk 	 Định nghĩa DTD ngoại Ví dụ: file DTD vidu.dtd 	 	 	 	 	 	 	 	 	 	 	 	 Định nghĩa DTD ngoại Ví dụ 2 (tt): file XML vidu.xml 	 	 	 	 	 	 aaa 	 bbb 	 	 1/1/03 	 	 	 	 	 Tomatoes 	 	25 	 $1.25 	 	 	 Tomatoes 	 	25 	 $1.25 	 	 	 	 Thực thể trong DTD Thực thể (Entity): là một mục dữ liệu mà XML tham chiếu đến. Thực thể gồm có: Thực thể tổng quát (General Entity). Thực thể tham số (Parameter Entity). Thực thể được khai báo trong phần định nghĩa DTD, được sử dụng khi tài liệu XML tham chiếu tới. Tham chiếu thực thể tổng quát bắt đầu bằng & và kết thúc bằng ; Tham chiếu thực thể tham số bắt đầu bằng % và kết thúc bằng ; Thực thể trong DTD Thực thể nội được định nghĩa hoàn toàn trong tài liệu tham chiếu đến nó. Thực thể ngoại (External Entity): nội dung của nó được định nghĩa hoàn toàn từ một nguồn dữ liệu bên ngoài (file) và được tham chiếu bằng địa chỉ URL hoặc URI. Thực thể có thể ở dạng phân tích (pharse) hoặc có thể ở dạng văn bản thuần (text). Thực thể ở dạng phân tích thì phải hợp khuôn dạng tài liệu XML. Thực thể trong DTD Một số thực thể tổng quát được định nghĩa sẵn trong XML: < & & " “ ' ‘ Các thực thể định nghĩa sẵn trong XML rất hữu dụng khi muốn thể hiện các kí tự đặc biệt trùng với kí tự của phần định dạng. Thực thể trong DTD Ví dụ: 	 	 	Chao cac ban den voi " The Gioi 	XML " 	 	Kết quả khi duyệt trên IE: 	 	 	Chao cac ban den voi “The Gioi XML” 	 	 Thực thể tổng quát nội Cú pháp khai báo: NAME: tên của thực thể DEFINITION: định nghĩa của thực thể Ví dụ: tiếp ví dụ trên, file vidu.dtd thêm như sau: 	 	File vidu.xml tham chiếu đến nội dung thực thể TODAY như sau: 	 &TODAY; 	Kết quả khi duyệt file vidu.xml: 	…. 	 October 15, 2001 	…. Thực thể tổng quát ngoại Cú pháp khai báo: : khai báo các thực thể dùng trong nội bộ hay tổ chức các nhân. Thực thể tổng quát ngoại Ví dụ 1: định nghĩa file data.xml như sau: 	 	 Smith 	 Sam 	 	 &TODAY; 	 	 	 Tomatoes 	 24 	 $1.25 	 	 Thực thể tổng quát ngoại Ví dụ 1: thêm trong định nghĩa file vidu.dtd như sau: 	….. 	 	….. 	trong file vidu.xml ta định nghĩa như sau: 	 	 	 	&DULIEU; 	 	 Thực thể tổng quát ngoại Kết quả duyệt 	 	 	 	 	 	 Smith 	 Sam 	 	 &TODAY 	 	 	 Tomatoes 	 24 	 $1.25 	 	 	 Thực thể tổng quát ngoại Ví dụ 2: định nghĩa file date.xml như sau:	 October 15, 2001. Trong file vidu.dtd khai báo như sau: 	.. bằng cách tham chiếu đến thực thể date.xml như sau: 	.. 	&TODAY; 	… Thực thể tổng quát ngoại Ví dụ 3: định nghĩa file date.txt như sau: 	October 15, 2001 Trong file vidu.dtd khai báo thực thể như sau: 	 Trong file vidu.xml ta tham chiếu đến thực thể như sau: &TODAY; Thực thể tham số 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 các thực thể trong tài liệu. Không dùng khai báo thực thể tổng quát trong chính khai báo DTD được. Tham chiếu thực thể tham số dùng trong chính khai báo DTD. Thực thể tham số Khai báo thực thể tham số: 	 Ví dụ: Ta muốn thêm định nghĩa cho phần tử BUYER mà nội dung giống như CUSTOMER. Nếu không dùng thực thể tham chiếu thì phải định nghĩa BUYER giống như CUSTOMER. Thực thể tham số Ví dụ (tt): định nghĩa thêm thực thể tham số, file vidu.dtd như sau: 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Thực thể tham số nội 	 	 	 Smith Sam 	 	 1/1/03 	 	 	 Tomatoes 	 24 	 $1.25 	 	 	 	 	 	 Tony Braxton 	 	&TODAY; 	 	 	 Tomatoes 	 9 	 $1.25 	 	 	 Khai báo thuộc tính Thuộc tính để bổ sung thêm các thông tin cho phần tử thẻ. Khai báo thuộc tính trong DTD: Để tài liệu XML hợp lệ phải định nghĩa tất cả các thuộc tính mà tài liệu sử dụng Chỉ định kiểu dữ liệu của thuộc tính, giá trị của thuộc tính. Cú pháp: 	 Khai báo thuộc tính Trong đó ELEMENT_NAME: tên phần tử muốn áp đặt thuộc tính. ATTRIBUTE_NAME: tên thuộc tính TYPE: kiểu dữ liệu của thuộc tính DEFAULT_VALUE: là giá trị mặc định muốn gán cho thuộc tính. Khai báo thuộc tính Thuộc tính có thể mang các giá trị TYPE như sau: Khai báo thuộc tính Các giá trị DEFAULT_VALUE. Khai báo thuộc tính Ví dụ 1: khai báo thuộc tính cho phần tử CUSTOMER như sau: 	 	Khi đó trong tài liệu XML, phần tử CUSTOMER có thể đưa thêm thuộc tính vào hoặc không. 	… 	 	… 	 	 	… 	 Khai báo thuộc tính Ví dụ 2: khai báo một danh sách thuộc tính cho phần tử CUSTOMER như sau: 	 	Khi đó trong tài liệu XML, phần tử CUSTOMER có các thuộc tính như sau: 	… 	 	… 	 	 	… 	 Thiết lập giá trị mặc định cho thuộc tính Giá trị tức thời (immediately value): có thể đặt giá trị mặc định cho thuộc tính ngay khi khai báo trong 	Ví dụ: 	 #REQUIRED: không cần cung cấp giá trị ngay khi khai báo nhưng phải cung cấp giá trị khi sử dụng. 	Ví dụ: 	 #IMPLIED: chỉ định này không cần đặt giá trị mặc định cho thuộc tính và cũng không bắt buộc đưa giá trị vào cho thuộc tính khi sử dụng 	Ví dụ: 	 #FIXED: chỉ định giá trị cố định cho thuộc tính. Người dùng không thể thay đổi giá trị thuộc tính được ngoài giá trị mặc định. Định kiểu thuộc tính CDATA Là kiểu dữ liệu thuần text. Không thể sử dụng được các kí tự đặc biệt như Định kiểu thuộc tính NMTOKEN Thuộc tính có kiểu dữ liệu này chỉ được gán các giá trị hợp quy tắc đặt tên của XML và không có khoảng trắng. Thuộc tính chỉ có thể mang giá trị là một từ đơn (vì khoảng trắng và các kí tự phân cách không được thể hiện) NMTOKENS Tuân theo quy tắc đặt tên của XML Giá trị của thuộc tính là một chuỗi bao gồm nhiều token và phân tách nhau bằng khoảng trắng. Định kiểu thuộc tính ID (định danh) Giá trị của thuộc tính kiểu ID dùng làm tên duy nhất để định danh một phần tử nào đó trong tài liệu. Không được có hai phần tử trùng tên khi mang kiểu định danh. Chỉ có thể định nghĩa một thuộc tính mang kiểu định danh ID trong một phần tử. Ví dụ: 	Trong tài liệu XML: 	 	… 	 	 	… 	 	  không hợp lệ 	… 	 Định kiểu thuộc tính IDREF Cho phép xác định thông tin liên quan đến cấu trúc tài liệu (liên quan đến các phần tử trong tài liệu). IDREF nắm giữ các giá trị ID của các phần tử khác. Ví dụ: muốn thiết lập quan hệ cha con giữa các phần tử không nằm lồng nhau trong tài liệu. Trong trường hợp này ta phải định nghĩa thuộc tính có kiểu IDREF. 	 	Trong tài liệu XML 	 	…. 	 	 Định kiểu thuộc tính Kiểu thực thể ENTITY Thuộc tính có thể được gán giá trị là một thực thể do bạn khai báo trước đó. Ví dụ: ta khai báo một thực thể mang tên SNAPSHOT tham chiếu đến một file ảnh bên ngoài. Tiếp đến ta có thể hoàn toàn có thể tạo ra một thuộc tính mới mang giá trị là IMAGE. Thuộc tính này có thể gán giá trị là SNAPSHOT 	 	 	Trong tài liệu XML: 	 	… 	 Định kiểu thuộc tính Kiểu đa thực thể (ENTITIES) Cho phép gán nhiều thực thể vào thuộc tính Các thực thể được tổ chức thành một danh sách cách nhau bằng khoảng trắng. Ví dụ: 	 	 	 	Trong tài liệu XML 	 	…. 	 Bài tập Bài 1: Một chương trình quản lý thông tin sinh viên, và điểm các môn học mà họ đăng kí lưu các thông tin sau: sinh viên gồm mã số sinh viên, họ tên sinh viên, lớp. Một môn học mà sinh viên đăng kí học gồm có thông tin mã môn học, tên môn học, số tín chỉ, với mỗi môn học mà sinh viên đăng kí học thì sẽ có kết quả cuối kì chính là điểm thi mà sinh viên đạt được trong môn đó. Yêu cầu: định nghĩa DTD Bài tập Bài 2 Để quản lý điểm thi cuối kì của sinh viên, ta cần phải lưu trữ các thông tin sau: mã số sinh viên (MSSV), tên sinh viên (TenSV), mã môn học (MaMH), tên môn học (TenMH), và điểm thi của sinh viên (Diem). Hãy định nghĩa DTD Bài tập Bài 3 Để quản lý môn học, ta cần phải lưu trữ các thông tin sau:Mã số môn học (MaMon), Tên môn học (TenMon), và số tín chỉ (SoTC). Định nghĩa DTD. Bài tập Bài 4 Mỗi đơn hàng, người ta cần lưu các thông tin sau: Mã khách hàng, tên khách hàng, địa chỉ liên lạc và một danh sách những mặt hàng người đó mua. Danh sách mặt hàng gồm có nhiều mặt hàng khác nhau, mỗi mặt hàng gồm những thông tin sau: Mã mặt hàng, tên mặt hàng, số lượng, đơn giá. Định nghĩa DTD. Bài tập Bài 5: Cho cấu trúc XML lưu trữ thông tin những cuốn sách đã được xuất bản theo từng lĩnh vực. Mỗi lĩnh vực có tên và có thể cha có sách xuất bản hoặc cũng có thể đã có nhiều cuốn. Mỗi cuốn sách có thông tin một tựa đề duy nhất, một hay nhiều tác giả, mỗi tác giả lại có thông tin mã tác giả, tên tác giả, địa chỉ, số điện thoại với mã tác giả, tên tác giả là duy nhất cho mỗi người, địa chỉ, số điện thoại có thể không có hoặc chỉ có một thông tin độc nhất cho mỗi người Hãy định nghĩa DTD 

File đính kèm:

  • pptĐịnh nghĩa kiểu tài liệu (DTD) và kiểm tra tính hợp lệ (Valid) của XML.ppt
Tài liệu liên quan