intTypePromotion=1
ADSENSE

Bài giảng Chuyên đề công nghệ XML và ứng dụng: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh

Chia sẻ: Dương Hàn Thiên Băng | Ngày: | Loại File: PDF | Số trang:51

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

Phần 2 của bài giảng "Chuyên đề công nghệ XML và ứng dụng" tiếp tục cung cấp cho học viên những nội dung về: lược đồ XML; khai báo phần tử trong XML Schema; DOM và xử lý XML với JavaScript; phân tích nội dung và kiểu dữ liệu của nút; phân tích trực tiếp toàn bộ dữ liệu XML;... Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chuyên đề công nghệ XML và ứng dụng: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh

  1. Chương 5 LƯỢC ĐỒ XML  Mục tiêu học tập: Sau khi học xong chương này người học sẽ: - Hiểu được lược đồ XML là gì, lược đồ theo chuẩn W3C. - Định nghĩa được kiểu dữ liệu cho các phần tử trong lược đồ (kiểu đơn giản và kiểu phức hợp) - Ứng dụng được lược đồ vào tài liệu XML. Tóm tắt chương Để tài liệu XML của chúng ta hợp lệ, chúng ta phải định nghĩa kiểu tư liệu cho các phần tử. Chúng ta có thể sử dụng khai báo DTD cho mục đích này, tuy nhiên DTD không phải là cách duy nhất. Định nghĩa kiểu tư liệu còn có thể dựa vào lược đồ (schema). Chương này chúng ta sẽ tìm hiểu khái niệm và cách sử dụng lược đồ để khai báo kiểu tư liệu cho các phần tử thay cho định nghĩa DTD. 5.1 Tại sao chúng ta nên dùng XML Schema? Xuất phát từ những hạn chế của DTD như: DTD sử dụng cú pháp khác so với cú pháp dùng trong trang XML làm cho người dùng phải nhớ nhiều cú pháp; DTD chỉ hỗ trợ được 10 kiểu dữ liệu. Ngoài ra DTD còn hạn chế về khả năng định nghĩa các ràng buộc dữ liệu. - XML Schema sử dụng cùng cú pháp với trang XML làm cho người dùng dễ nhớ ngoài ra nó còn hỗ trợ được 44 kiểu dữ liệu. XML schema cho phép người dùng tự định nghĩa kiểu dữ liệu mới, định nghĩa các ràng buộc dữ liệu. XML schema bảo toàn sự giao tiếp dữ liệu, ràng buộc các khóa và tham chiếu mạnh hơn so với DTD đồng thời nó còn tích hợp được với không gian tên (namespace). - 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 5.2 Các thành phần trong một XML Schema Trong một XML Schema có các thành phần sau: - Thành phần schema - Element Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 54
  2. - Các thuộc tính có thể xuất hiện trong trang XML - Định nghĩa các kiểu dữ liệu 5.2.1 Thành phần schema Điểm cơ bản nhất để hiểu về lược đồ XML là hiểu khái niệm sử dụng kiểu đơn giản và kiểu phức hợp trong khai báo kiểu cho các phần tử XML. Để chỉ định kiểu cho các phần tử, chúng ta phải bảo đảm kiểu đã được định nghĩa trước đó. Như đã nêu trên, kiểu phức hợp là kiểu chứa các phần tử con trong nó hoặc chứa thêm thuộc tính trong khi kiểu giản đơn thì không. Kiểu giản đơn là kiểu nội tại đã được định nghĩa sẵn và chúng ta có thể dùng tự do trong lược đồ XML. Schema là phần tử gốc (element root) của mỗi trang tài liệu. - Khai báo: Mỗi XML Schema được bắt đầu bằng thành phần (element root) - Các thành phần và các kiểu dữ liệu trong schema như: - schema, element, complexType, sequence, string nằm trong namespace: http://.../XML schema - targetNamespace=http://www.books.org namespace của những thành phần định nghĩa trong schema - Ví dụ như Book, Title, Author, date, ISBN, Publisher nằm trong http://www.books.org namespace elementFormDefault=“qualified” kiểm tra tính hợp lệ của tất cả các elements trong trang XML elementFormDefault=“unqualified” chỉ kiểm tra tính hợp lệ của các global element Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 55
  3. * Chú ý: - Thuộc tính targetNamespace là một tùy chọn có thể không cần chỉ ra targetNamespace cho một schema 5.2.2 Tham chiếu đến schema từ trang XML
  4. Ví dụ: 5.4 Lược đồ và không gian tên ….. - http://www.w3.org/2001/XMLSchema: 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 … trên 5.5 Xây dựng lược đồ từ nhiều thành phần …. : giống như #include trong ngôn ngữ C schemaLocation: cho biết nơi để lấy thông tin Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 57
  5. 5.6 Khai báo phần tử trong XML Schema Phần tử là phần tử gốc trong các tài liệu XML Schema. ...... xmlns:xsd="http://www.w3.org/2001/XMLSchema" Phần tử và loại dữ liệu trong lược đồ được khai báo trong namespace http://www.w3.org/2001/XMLSchema và có tiền tố là xsd targetNamespace=http://www.w3schools.com Các phần tử được định nghĩa trong lược đồ từ namespace http://www.w3schools.com xmlns="http://www.w3schools.com" namespace mặc định là xmlns="http://www.w3schools.com" 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. 5.7 Các kiểu phần tử - Kiểu giản đơn (Simple type): 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ũng có thể có nhiều loại: + 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 đó. - Kiểu phức hợp (Complex type): là một phần tử XML có thuộc tính, hoặc chứa các phần tử con khác. 5.7.1 Định nghĩa một phần tử giản đơn xxx: tên của phần tử yyy: kiểu dữ liệu của phần tử Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 58
  6. 5.7.2 Các kiểu dữ liệu thông dụng: Kiểu Mô tả Binary Kiểu dữ liệu nhị phân Boolean Kiểu luận lý Byte Kiểu byte Century Kiểu thế kỷ Date Kiểu ngày Decemal Kiểu thập phân Double Kiểu số thực 64bit ENTITY Kiểu thực thể ENTITIES Kiểu đa thực thể ID Kiểu định danh Int, Integer Kiểu số nguyên IDREF Kiểu tham chiếu định danh NOTATION Kiểu ghi chú MNTOKEN Kiểu token đơn MNTOKENS Kiểu đa token Month Kiểu tháng String Kiểu chuỗi 5.7.3 Ví dụ Các phần tử XML: Refsnes 36 1970-03-27 Định nghĩa phần tử đơn giản: 5.8 Giá trị mặc định và cố định Giá trị mặc định: Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 59
  7. Giá trị cố định: Trong đó: Thuộc tính trong XSD đượ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. 5.9 Khai báo thuộc tính và các ràng buộc xxx: tên của thuộc tính yyy: kiểu dữ liệu của thuộc tính. Ví dụ: Phần tử XML có thuộc tính: Smith 5.9.1 Định nghĩa thuộc tính trong XSD 5.9.2 Khai báo loại thuộc tính Khai báo default: Khai báo fixed: Khai báo requyred: 5.9.3 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. 5.9.4 Ràng buộc giá trị Kiểu miền con: Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 60
  8. Kiểu liệt kê: Giới hạn giá trị: Hoặc: Hoặc dùng ký tự đại diện: Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 61
  9. 5.9.5 Ràng buộc về ký tự dấu cách Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 62
  10. : XML parser sẽ không loại bỏ bất kỳ ký tự dấu cách nào. : XML parser sẽ loại bỏ tất cả ký tự dấu cách dư (line feed, tab, space, carriage return) bằng khoảng trắng. 5.9.6 Ràng buộc về độ dài Hoặc: 5.9.7 Định nghĩa phần tử phức hợp Phần tử phức hợp là một phần tử XML chứa các phần tử khác hoặc có thuộc tính. Có 4 loại phần tử phức hợp: - Phần tử rỗng - Phần tử chỉ chứa các phần tử khác - Phần tử chỉ chứa văn bản - Phần tử vừa chứa các phần tử khác, vừa chứa văn bản Ví dụ: John Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 63
  11. Smith Ice cream It happened on 03.03.99 .... 5.9.7.1 Định nghĩa một phần tử phức hợp trong XSD Trong tài liệu XML John Smith Có nhiều cách để định nghĩa phần tử employee… Cách 1: Cách 2: 5.9.7.2 Định nghĩa phần tử rỗng Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 64
  12. 5.9.7.3 Định nghĩa phần tử chỉ chứa phần tử con John Smith Ví dụ: 5.10 Ví dụ về XML, XSD VÀ XSL Tập tin person.xml Nguyễn Phương Lan Quận 5 Hồ Chí Minh F Đoàn Văn Ban Cầu Giấy Hà Nội M Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 65
  13. Tập tin person.xsd Tập tin person.xsl Tac gia Danh sách các tác giả Nhà sách Minh Khai Name Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 66
  14. Addresses City Gender Kết quả được hiển thị trên trình duyệt như sau: Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 67
  15. Kết chương Chúng ta đã tìm hiểu qua về khái niệm và định nghĩa kiểu tư liệu cho các phần tử trong tài liệu XML thông qua lược đồ. Lược đồ XML là một sự cố gắng nhằm chuẩn hóa và đem lại sự linh động thay thế cho DTD. Mặc dù lược đồ XML chưa được phổ biến rộng rãi và đang trong giai đoạn phát triển đặc tả nhưng chắc chắn nó sẽ trở thành một định nghĩa chuẩn trong tương lai.  Câu hỏi củng cố: 1. Hãy cho biết những ưu, nhược điểm của lược đồ trong XML? 2. So sánh lược đồ XML và DTD? 3. Định nghĩa, khai báo các phần tử trong lược đồ? 4. Ứng dụng lược đồ để xây dựng một ứng dụng thực tế. Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 68
  16. Chương 6 DOM VÀ XỬ LÝ XML VỚI JAVASCRIPT  Mục tiêu học tập: Sau khi học xong chương này người học sẽ: - Hiểu được mô hình DOM, cách nạp và xử lý dữ liệu. - Biết cách truy xuất nội dung và thuộc tính của các nút dữ liệu, thay đổi nội dung XML bằng JavaScript. - Ứng dụng JavaScript vào XML. Tóm tắt chương Chương này giới thiệu cách dùng JavaScript để xử lý dữ liệu XML theo mô hình DOM. Mặc dù DOM xử lý và truy xuất được mọi dữ liệu trong tài liệu XML, nhưng mô hình khá phức tạp vì phải lần theo các nút trong cây tài liệu. 6.1 Mô hình DOM W3C định nghĩa tài liệu XML theo mô hình đối tượng tài liệu DOM (Document Object Model). Mô hình này, tài liệu của chúng ta là một cây bao gồm các nút (node). Nội dung các nút này có thể chứa các phần tử (element), dữ liệu văn bản (text), thuộc tính (attribute)… và các nút con khác. Các nút trong mô hình DOM: Nút Mô tả Element Phần tử XML Attribute Thuộc tính Text Dữ liệu text CDATA section Phân đoạn CDATA Entity reference Tham chiếu thực thể Entity Thực thể Processing Instruction Chỉ thị xử lý Comment Chú thích Document Tài liệu Document Type Kiểu tư liệu Document fragment Đoạn tài liệu Notation Ghi chú Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 69
  17. Ví dụ: Chúng ta có tài liệu XML sau: Hello From XML Welcome to the wild and woolly word of XML Tài liệu trên có thể phân theo cấu trúc hình cây bao gồm các nút đối tượng. Hello From XML Welcome to the wild and woolly word of XML Phần tử là một nút bao gồm hai nút con là và . Hai nút và lần lượt chứa nút con khác lưu dữ liệu dạng text với nội dung “Hello From XML” và “Welcome to the wild and woolly word of XML”. Toàn bộ cấu trúc trên chính là mô hình DOM. Khi phân tích cây tài liệu DOM ta xem mỗi nút là một đối tượng (object). DOM còn cung cấp các phương thức như nextChild(), lastSibling()… để đi đến toàn bộ các nút con khác. 6.2 Nạp tài liệu XML cần xử lý bằng JavaScript Có hai cách nạp dữ liệu XML vào trình duyệt IE bằng JavaScript. - Cách 1: Dùng lớp đối tượng Microsoft.XMLDOM - Cách 2: Dùng phần tử nạp dữ liệu Chúng ta sử dụng ví dụ (tập tin meetings.xml) sau để xử lý bằng Java Script theo mô hình DOM. (Tạo tập tin meetings.xml chứa thông tin của những người tham gia cuộc họp) Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 70
  18. Ví dụ: XML In The Real Word 2079 XML 6/1/2002 Edward Edward Ernestine Johnson Betty Richardson Tiếp theo, chúng ta tạo tài liệu viewdata.html bên dưới chứa đoạn mã JavaSript để đọc và phân tích tài liệu XML trên. Trước hết ta cần tạo ra đối tượng xử lý DOM của Microsoft. Như vậy, để thực hiện được điều này, ta gọi toán tử new để tạo mới đối tượng ActiveXObject với tên lớp là Microsoft.XMLDOM. Reading XML element values Function readXMLDocument() { var xmldoc Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 71
  19. xmldoc = new ActiveXObject (“Microsoft.XMLDOM”) . . . Tiếp đến chúng ta nạp tài liệu meetings.xml cần xử lý vào trình duyệt Reading XML element values Function readXMLDocument() { var xmldoc xmldoc = new ActiveXObject (“Microsoft.XMLDOC”) xmldoc.load (“meetings.xml”); . . . Để duyệt qua tất cả các nút trong cây tài liệu theo mô hình DOM, ta cần xuất phát từ nút gốc. Trong tài liệu meetings.xml ở trên ta thấy là phần tử gốc của tài liệu. Chúng ta gọi phương thức documentElement để đến nút gốc của tài liệu DOM như sau: Reading XML element values Function readXMLDocument() Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 72
  20. { var xmldoc, meetingsNode xmldoc = new ActiveXObject (“Microsoft.XMLDOM”) xmldoc.load (meetings.xml); meetingsNode = xmldoc.documentElement . . . Chúng ta khai báo thêm biến meetingsNode để lưu giữ nút gốc. Lúc này chúng ta hoàn toàn có thể duyệt toàn bộ tài liệu bằng cách đi qua các nút của cấu trúc cây DOM. * Các phương thức duyệt qua các nút: firstChild: lấy nút con đầu tiên nextChild: lấy nút con kế tiếp previousChild: lấy nút con trước đó lastChild: lấy nút con sau cùng * Ngoài ra còn có các phương thức: firstSibling: trả về nút con cùng cấp đầu tiên nextSibling: trả về nút con cùng cấp kế tiếp previousSibling: trả về nút con cùng cấp trước đó lastSibling: trả về nút con cùng cấp sau cùng Ví dụ như là nút con của nút gốc và ta có thể gọi phương thức fistChild để chuyển đến nút này như sau: Reading XML element values Function readXMLDocument() { var xmldoc, meetingsNode, meetingNode xmldoc = new ActiveXObject (“Microsoft.XMLDOM”) Tài liệu giảng dạy môn: Chuyên đề Công nghệ XML và Ứng dụng 73
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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