Tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML

  • Số trang: 73 |
  • Loại file: PDF |
  • Lượt xem: 24 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ XUÂN TÍCH HỢP CÁC HỆ THỐNG CƠ SỞ DỮ LIỆU QUAN HỆ VÀ XML Ngành: CÔNG NGHỆ THÔNG TIN Mã số: 1.01.10 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: PGS.TS. ĐOÀN VĂN BAN HÀ NỘI, 2007 MỤC LỤC MỞ ĐẦU ............................................................................................................................... 1 Chương 1: TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ ............................. 3 1.1 Tổng quan về XML......................................................................................................... 3 1.1.1 Giới thiệu công nghệ XML ................................................................................... 3 1.1.2 Cấu trúc tài liệu XML ........................................................................................... 4 1.1.2.1 Tài liệu XML ........................................................................................... 4 1.1.2.2 Cấu trúc của tài liệu XML......................................................................... 5 1.1.3 Các thành phần cơ bản trong tài liệu XML ............................................................ 6 1.1.4 Cấu trúc tài liệu hợp khuôn dạng ........................................................................ 10 1.1.5 Định nghĩa kiểu tư liệu DTD .............................................................................. 11 1.1.6 Lược đồ XML .................................................................................................... 13 1.1.7 Bảng định kiểu CSS ............................................................................................ 18 1.1.8 Mô hình DOM .................................................................................................... 20 1.1.9 Phân tích tài liệu XML theo mô hình DOM ........................................................ 22 1.1.10 XPATH ............................................................................................................ 25 1.1.11 XLINK và XPOINTER..................................................................................... 27 1.1.11.1 XLINK ................................................................................................. 27 1.1.11.2 XPOINTER .......................................................................................... 28 1.2 Cơ sở dữ liệu quan hệ ................................................................................................... 29 1.2.1 Cấu trúc cơ sở dữ liệu quan hệ ............................................................................ 29 1.2.2 Ràng buộc toàn vẹn trên một CSDL quan hệ ....................................................... 31 1.2.2.1 Định nghĩa .............................................................................................. 31 1.2.2.2 Các yếu tố của ràng buộc toàn vẹn .......................................................... 32 1.2.3 Chuẩn hoá một CSDL quan hệ ............................................................................ 33 1.3 Kết luận ......................................................................................................................... 34 Chương 2: TÍCH HỢP CÁC HỆ THỐNG CSDL QUAN HỆ VÀ XML ......................... 35 2.1 Phương pháp luận ........................................................................................................ 36 2.1.1 Đối sánh nội dung của một CSDL quan hệ và một tài liệu XML ......................... 36 2.1.2 Cấu trúc và kiểu cơ chế của một tài liệu XML và một lược đồ CSDL quan hệ .. 38 2.1.3 Tên duy nhất ....................................................................................................... 41 2.1.4 Các giá trị rỗng và các giá trị mặc định .............................................................. 41 2.1.5 Quan hệ .............................................................................................................. 43 2.1.6 Thứ tự ................................................................................................................ 44 2.2 Chuyển một tài liệu XML sang một CSDL quan hệ ................................................... 46 2.3 Chuyển một CSDL quan hệ sang một tài liệu XML ................................................... 48 2.3.1 Phi chuẩn các lược đồ quan hệ ........................................................................... 48 2.3.2 Kết nối các CSDL đã phi chuẩn .......................................................................... 52 2.3.3 Ánh xạ CSDL quan hệ đã kết nối thành một DOM chính để chuyển thành tài liệu XML .................................................................................................................................... 54 2.4 Kết luận ......................................................................................................................... 57 Chương 3: CÀI ĐẶT THUẬT TOÁN TÍCH HỢP CÁC HỆ THỐNG CSDL QUAN HỆ VÀ XML ............................................................................................................................. 58 3.1 Thuật toán..................................................................................................................... 58 3.1.1 Đọc tài liệu XML dưới dạng sơ đồ hình cây........................................................ 58 3.1.2 Hiển thị tài liệu XML dưới dạng bảng ................................................................ 59 3.1.3 Chuyển một CSDL quan hệ sang một tài liệu XML ............................................ 60 3.2 Cài đặt thuật toán ......................................................................................................... 61 3.3 Kết quả - đánh giá ........................................................................................................ 68 KẾT LUẬN ........................................................................................................................ 69 TÀI LIỆU THAM KHẢO .................................................................................................. 70 1 MỞ ĐẦU Ngày nay cùng với việc bùng nổ thông tin, các thông tin trên Internet cũng ngày càng nhiều (số lượng các trang Web trên Internet khoảng gần 2 tỷ), mà như chúng ta biết thì các Cơ sở dữ liệu quan hệ ngày càng chiếm nhiều ưu thế trong việc lưu trữ nội dung của các web site. Cùng lúc đó, ngôn ngữ định dạng mở rộng (Extensible Markup Language –XML) nhanh chóng chiếm ưu thế trong những web site sử dụng văn bản siêu liên kết. Vì vậy, sự tích hợp các hệ thống Cơ sở dữ liệu quan hệ và XML là chủ đề chính của luận văn này với mục đích là mong muốn tất cả các dữ liệu cùng với các chương trình trong tương lai sẽ tích hợp và hiểu nhau hơn thông qua XML. Trong giai đoạn đầu, hầu hết các trang Web đều được viết bằng ngôn ngữ định dạng dữ liệu thông qua các cặp thẻ đặc biệt trong tệp tin văn bản HTML. Do tính đơn giản, dễ hiểu và dễ sử dụng của HTML mà nó đã trở thành ngôn ngữ được ưa chuộng để xây dựng các trang Web trong thời gian đó. Tuy vậy, với lượng thông tin khổng lồ và không ngừng tăng của Web, cùng với thị hiếu và nhu cầu sử dụng của người dùng ngày càng cao thì HTML không đủ để đáp ứng những yêu cầu đó – nó chỉ có thể tạo trang Web chuẩn. Chính vì vậy mà ngôn ngữ XML đã ra đời, với những tính năng nổi trội của mình, XML đã giúp cho việc quản lý, trình bày và tổ chức thông tin trên Web thông qua các hệ cơ sở dữ liệu được dễ dàng và đặc biệt là đáp ứng được những mong mỏi từ phía người dùng. Trên thực tế, công nghệ XML đã và đang được người sử dụng ưa thích bởi sự tích hợp dễ dàng của nó với các cơ sở dữ liệu quan hệ – Chúng ta không những có thể phát triển một tài liệu XML mới trong khi vẫn sử dụng các Cơ sở dữ liệu quan hệ đang tồn tại mà còn có thể trích rút các dữ liệu từ các tài liệu XML. Để giải quyết vấn đề này, chúng ta cần tìm hiểu rõ về XML và mô hình DOM cũng như phương pháp sử dụng mô hình DOM để chuyển một Cơ sở dữ liệu quan hệ sang tài liệu XML và ngược lại. Và đây cũng chính là nội dung 2 được đưa ra trong luận văn thông qua những nghiên cứu của một số bài báo, các báo cáo chuyên ngành ở các hội nghị quốc tế được phổ biến trên mạng cùng với các giáo trình về XML và các giáo trình liên quan khác. Luận văn được trình bày gồm ba chương:  Chương 1: “Tổng quan về XML và Cơ sở dữ liệu quan hệ”- Trình bày tổng quan về cấu trúc của một tài liệu XML, định nghĩa kiểu tư liệu DTD, lược đồ, mô hình đối tượng tài liệu DOM, phân tích tài liệu XML theo mô hình DOM và các khái niệm cơ sở về cơ sở dữ liệu (CSDL) quan hệ.  Chương 2: “Tích hợp các hệ thống cơ sở dữ liệu và XML” - Giới thiệu phương pháp luận chuyển một tài liệu XML sang một CSDL quan hệ và ngược lại.  Chương 3: “Thuật toán tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML” – Đưa ra thuật toán tích hợp các hệ thống CSDL quan hệ và XML và cài đặt thuật toán bằng ngôn ngữ lập trình Java. và phần Kết luận. . Hà Nội, tháng 05 năm 2007 3 Chương 1 TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ 1.1. Tổng quan về XML 1.1.1. Giới thiệu về công nghệ XML Ngôn ngữ định dạng (markup language) là tất cả những gì dùng để mô tả nội dung một tài liệu – Đó là cách nội dung tài liệu được diễn dịch. Ngôn ngữ định dạng mà mọi người đều rất quen thuộc hiện nay chính là ngôn ngữ HTML (Hyper Text Markup Language). HTML cho phép ta tạo nội dung của các trang Web rất đẹp. Theo thời gian, với các phiên bản khác nhau của HTML, số các cặp thẻ được định nghĩa ngày càng tăng. Ví dụ, với phiên bản HTML 4.01 gần đây đã định nghĩa số các cặp thẻ là 120 (kể cả các cặp thẻ mở rộng). Tuy nhiên để xử lý các ứng dụng trên Web với sự phát triển của ứng dụng mạng thì rõ ràng số các cặp thẻ đó vẫn chưa đủ (thực sự thì ta không thể có đủ các cặp thẻ để sử dụng cho những mục đích riêng của mình). Vậy câu hỏi đặt ra là làm thế nào để giải quyết được vấn đề đó? Sự ra đời của ngôn ngữ XML (Extensible Markup Language) như một giải pháp cho vấn đề trên. XML là ngôn ngữ được định nghĩa bởi tổ chức mạng toàn cầu (World Wide Web Consortium- W3C). HTML và XML có quan hệ rất gần gũi với nhau - cả XML và HTML đều dựa trên chuẩn ngôn ngữ định dạng tổng quát SGML (Standard Generalized Markup Language) và cả hai ngôn ngữ đều sử dụng các cặp thẻ. Tuy vậy trong ngôn ngữ XML, các cặp thẻ được sử dụng để định nghĩa và khai báo cấu trúc dữ liệu và được định nghĩa bởi người dùng thông qua một số quy tắc của nó trong khi các cặp thẻ của HTML chỉ sử dụng để định dạng và được định nghĩa, quy định trước. Nhờ khả năng tự định nghĩa các thẻ cũng như khả năng cho phép định nghĩa và khai báo cấu trúc dữ liệu mà ngôn ngữ XML trở thành ngôn ngữ rất cần cho công nghệ Internet và các ứng dụng mạng ngày nay. Nhưng có lẽ lý do quan trọng nhất để XML trở lên phổ biến đó là XML cho phép dễ dàng xử lý, chuyển tải và trao đổi dữ liệu giữa rất nhiều 4 ứng dụng và tài liệu người dùng với các định dạng khác nhau. Trong XML dữ liệu được định dạng và lưu ở dạng text, do vậy ta có thể dễ dàng cấu hình cũng như thay đổi chúng bằng các trình soạn thảo thông thường hoặc bằng các trình soạn thảo chuyên nghiệp của XML (XML Notepad, XML Writer, XML Spy hay eNotepad). Sự kết hợp giữa XML với định dạng CSS (Cascade Style Sheet) hay XSL (Extensible Style Language) giúp cho việc định dạng dữ liệu hiệu quả hơn rất nhiều so với định dạng nhị phân (định dạng được coi là hiệu quả vì nó chứa dữ liệu ở dạng nén)[1]. Ngoài ra, khả năng được coi là mạnh nhất của XML đó là khả năng có thể tạo ra các ngôn ngữ định dạng tuỳ biến – nó cho phép ta có thể tuỳ biến vào trình duyệt hoặc ứng dụng để xử lý theo ngôn ngữ định dạng phù hợp theo một tập thẻ quy ước. Một thế mạnh khác của XML đó là nó không chỉ cho phép ta lưu dữ liệu vào file XML mà còn có thể tổ chức dữ liệu theo cấu trúc. XML cho phép các phần tử thẻ tích hợp với nhau tạo nên một cấu trúc dữ liệu phân cấp hoàn chỉnh. Điều này thật quan trọng khi chúng ta cần đến khả năng định nghĩa dữ liệu có cấu trúc. XML là một ngôn ngữ đòi hỏi tính chính xác cú pháp của ngôn ngữ rất cao. Trình duyệt không chấp nhận một tài liệu XML viết sai cú pháp và nó sẽ không phân tích tiếp tài liệu XML cho đến khi nào tài liệu XML hoàn toàn đúng khuôn dạng và cú pháp. 1.1.2. Cấu trúc của tài liệu XML 1.1.2.1. Tài liệu XML Các thẻ trong XML được tự định nghĩa và xác định mục đích sử dụng thẻ. Do vậy vấn đề đặt ra ở đây là cần xác định cho mình cú pháp để các thẻ tuân theo. Có hai cách để xác định cú pháp mà tài liệu XML có thể tuân theo, đó là:  Mô hình định nghĩa kiểu tư liệu XML (DTD – Definition Type Document)  Mô hình lược đồ XML (schema). Nội dung của một tài liệu XML bị ràng buộc bởi hai tính chất:  Tính hợp khuôn dạng (well – formed document) 5  Tính hợp lệ (validity) Tài liệu XML có thể được viết bằng các trình soạn thảo thông thường hoặc các trình soạn thảo chuyên dụng của XML. 1.1.2.2. Cấu trúc của tài liệu XML Một tài liệu XML có thể được chia thành 2 phần chính, mỗi phần có thể có các thành phần theo quy định khác nhau. a, Phần khởi đầu (PROLOG) chứa các khai báo trong tài liệu XML như: khai báo phiên bản sử dụng của XML, cách thức mã hoá dữ liệu, chỉ thị xử lý, định nghĩa kiểu tư liệu cho tài liệu DTD, các chú thích, khoảng trắng. Chuẩn XML không bắt buộc phải khai báo phần mở đầu của XML. Tuy nhiên W3C khuyến khích ta nên sử dụng phần khai báo này, ít nhất cũng là phần khai báo phiên bản sử dụng của XML. b, Phần thân (BODY) của tài liệu chứa nội dung của dữ liệu bao gồm một hay nhiều thành phần (phần này bắt buộc phải có ít nhất một thành phần), những thành phần này bao gồm các phần tử (element). Mỗi phần tử thường bao gồm một cặp thẻ (thẻ bắt đầu và thẻ kết thúc). Phần tử đầu tiên của tài liệu được gọi là phần tử gốc (root element). Tất cả các tài liệu XML được gọi là hợp khuôn dạng nếu chứa đựng duy nhất một phần tử gốc. Phần tử gốc chứa đựng tất cả các phần tử và các cặp thẻ khác trong tài liệu. PROLOG Khai báo DTD- Định nghĩa kiểu tư liệu Phần thân của tài liệu Hình 1.1: Cấu trúc tài liệu XML 6 1.1.3. Các thành phần cơ bản trong tài liệu XML Định dạng và dữ liệu ký tự: Tài liệu XML được tạo thành từ thành phần định dạng và thành phần dữ liệu ký tự. Trong tài liệu XML, định dạng giúp phân biệt các thành phần khác nhau trong tài liệu XML hay các loại nút trong cây XML. Định dạng bao gồm các cặp thẻ (thẻ bắt đầu và thẻ kết thúc), các phần tử thẻ rỗng, các tham chiếu thực thể, tham chiếu ký tự, chú thích, phân đoạn CDATA, khai báo kiểu tài liệu và chỉ thị xử lý. Tất cả các tài liệu còn lại trong XML không phải là định dạng đều được xem là ký tự. Các ký tự này được chuẩn hoá theo chuẩn ISO/ IEC 10646. XML hỗ trợ rất nhiều kiểu mã hoá dữ liệu như: UTF–8, UTF-16, ISO–8859-5, ISO-10646-UCS-4. Tất cả các trình xử lý XML đều được hỗ trợ mã hoá dữ liệu theo chuẩn Unicode UTF-8, UTF-16. Có những ký tự mà chúng vừa được sử dụng để tạo các định dạng, vừa là dữ liệu ký tự nên rất dễ nhầm lẫn trong việc sử dụng. Ví dụ như dấu &, >, <,…[1] Các khai báo XML: o Khai báo trong tài liệu XML được viết theo cấu trúc . Ví dụ có khai báo: . Phần khai báo không bắt buộc phải có trong tài liệu, tuy nhiên nếu có khai báo thì bắt buộc phải đặt ở dòng đầu tiên của tài liệu. o Các khai báo trong XML[1]:  Khai báo phiên bản (version): khia báo này cho biết phiên bản đặc tả XML mà tài liệu sử dụng (khai báo này là tuỳ chọn nhưng W3C khuyến khích nên sử dụng phần khai báo này).  Khai báo mã hoá (encoding): Bộ mã được sử dụng trong tài liệu XML mặc định là UTF-8. Ngoài ra có thể sử dụng các mã khác như: Unicode, UCS-2, UCS-4,…(khai báo này là tuỳ chọn).  Khai báo thực thể độc lập (standalone): Được đặt thuộc tính là „yes‟ nếu tài liệu không tham chiếu đến các thực thể khác bên ngoài, ngược lại được đặt là „no‟ (khai báo này là tuỳ chọn). 7 Phần chú thích: o Chú thích trong XML cũng tương tự như chú thích trong các ngôn ngữ khác – không ngoài mục đích làm chương trình được rõ ràng, mạch lạc hơn không chỉ đối với người xây dựng chương trình mà còn đối với các đọc giả khác. Chú thích trong XML được đặt trong cặp chuỗi kí tự và khi diễn dịch nội dung tài liệu các trình phân tích bỏ qua những dòng chú thích. o Một số quy tắc khi viết chú thích trong tài liệu XML:  Không được đặt chú thích trước các khai báo.  Không đặt chú thích bên trong các định dạng.  Không dùng chuỗi -- bên trong chú thích. Chỉ thị xử lý: o Chỉ thị xử lý được sử dụng để chỉ dẫn cho bộ phân tích cách xử lý tài liệu trong quá trình phân tích. Chỉ thị xử lý được bắt đầu bằng và thường được đặt ở đầu tài liệu. o Ví dụ một chỉ thị xử lý: là một chỉ thị xử lý yêu cầu bộ phân tích kết hợp dữ liệu của XML với bảng định kiểu CSS (Cascade Style Sheet). Thẻ, các phần tử (element), thực thể (entity) và thuộc tính (attribute): o Thẻ và các phần tử:  Cấu trúc tài liệu XML được tạo dựa trên các thành phần định dạng (markup). Những thành phần này bao gồm các phần tử (element) và mỗi phần tử trong tài liệu XML bao gồm một cặp thẻ - thẻ bắt đầu và thẻ kết thúc (trong mỗi cặp thẻ có thể chứa các cặp thẻ khác hoặc chỉ chứa dữ liệu). Một phần tử XML tuân theo cú pháp tổng quát sau: Content. Trong đó, TagName là tên thẻ (được đặt theo nguyên tắc: tên thẻ có thể bắt đầu bằng ký tự, gạch chân (_), hoặc 8 dấu hai chấm (:), tiếp theo có thể là ký tự, ký số, gạch nối, dấu hai chấm nhưng không được chứa khoảng trắng), attName là tên thuộc tính (được đặt theo nguyên tắc đặt tên thẻ), attValue là giá trị được gán cho thuộc tính và Content là nội dung của phần tử. Mỗi phần tử trong cùng một tài liệu XML là duy nhất. Bộ phân tích tài liệu XML phân biệt chữ hoa và chữ thường nên khi đặt tên cho các thẻ và thuộc tính cần phân biệt chữ hoa và chữ thường.  Phần tử rỗng: là phần tử chỉ có một thẻ duy nhất được đặt trong cặp < />. Ví dụ thẻ là một phần tử và là một phần tử rỗng [1].  Phần tử gốc (root element): Là phần tử chứa tất cả các phần tử và các cặp thẻ khác trong tài liệu. Phần tử gốc là duy nhất đối với một tài liệu XML được coi là hợp khuôn dạng. o Thực thể (entity):  Một thực thể thường có nội dung là văn bản (text), tuy nhiên cũng có thể là dữ liệu nhị phân. Một thực thể thực chất chính là cách mà XML tham chiếu đến một mục dữ 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). Trong tài liệu, thực thể tổng quát được tham chiếu theo cú pháp: &entityName; và thực thể tham số được tham chiếu theo cú pháp: %entityName;  Thực thể tổng quát có thể là các thực thể đã được định nghĩa trước trong XML như: <, >, &, ", &apos (đại diện cho các ký tự tương ứng: <, >, &, “, „) hoặc cũng có thể là các thực thể được người dùng định nghĩa trong DTD theo cú pháp: , trong đó NAME là tên thực thể, được sử dụng để tham chiếu đến nội dung được định nghĩa của chúng. DEFINITION là định nghĩa của thực thể (có nhiều dạng định nghĩa thực thể, định nghĩa đơn giản nhất là các văn bản mà ta muốn thay thế khi thực thể được tham chiếu đến. o Thuộc tính (attribute): 9  Cho phép xác định thêm thông tin và ý nghĩa của thẻ. Thuộc tính được kết hợp theo cặp name=value và được đặt bên trong thẻ mở hoặc thẻ rỗng.  Thuộc tính luôn được gán giá trị là kiểu text (do phần định dạng luôn là dữ liệu dạng text)  giá trị gán cho thuộc tính được đặt trong cặp “” hoặc cặp „‟. Phân đoạn CDATA: o Phân đoạn CDATA cũng là một phần tử trong tài liệu XML nhưng bao gồm chỉ một thẻ. Thẻ này bắt đầu bằng . Toàn bộ nội dung được đặt trong phân đoạn CDATA sẽ không được trình phân tích coi như cấu trúc XML mà chúng chỉ được xem như là dữ liệu thuần tuý (không được trình phân tích đụng đến). Do vậy phân đoạn CDATA thường được sử dụng để tránh sự xáo trộn các cặp thẻ khi chúng ta đặt nội dung của tài liệu XML ngoại vào tài liệu XML đích (tài liệu hiện hành). Không gian tên (namespace): o Việc kết hợp các tài liệu XML lại với nhau là một vấn đề cần phải xem xét vì khả năng cho phép tự do định nghĩa và đặt tên các thẻ trong XML. Do vậy việc định ra phạm vi hay không gian tên cho các thẻ trong tài liệu XML là cần thiết. o Để định nghĩa một không gian tên cho các thẻ, ta đưa vào thuộc tính xmlns:prefix vào phần tử gốc. Trong đó prefix là tên miền hay không gian tên mà ta muốn chỉ định, mỗi không gian tên có một định danh duy nhất (có thể là định danh URL hoặc URI). Sau đó áp dụng tên này cho tất cả các thẻ trong tài liệu XML mà ta muốn chúng thuộc không gian tên đã định nghĩa, theo cú pháp: đối với thẻ mở và đối với thẻ đóng. o Ví dụ: cho một tài liệu XML chưa được định nghĩa không gian tên như sau [2]: 10 Khoa hoc cong nghe Không gian tên trangtien được tạo cho thư viện như sau: Khoa hoc cong nghe Sau đó áp dụng không gian tên trangtien cho các thẻ trong tài liệu XML: Khoa hoc cong nghe 1.1.4. Cấu trúc tài liệu hợp khuôn dạng Một tài liệu XML được coi là một tài liệu hợp khuôn dạng nếu tuân theo các quy tắc sau : 11  Các khai báo XML cần được đặt ở dòng đầu tiên của tài liệu : như khai báo version hay các chỉ thị xử lý.  Một tài liệu XML chỉ có duy nhất một phần tử gốc, các phần tử khác nếu có phải là phần tử con của phần tử gốc.  Mọi phần tử khác rỗng phải bao gồm đầy đủ thẻ đóng và thẻ mở.  Phần tử rỗng bắt buộc phải đóng bằng chuỗi />.  Các phần tử lồng nhau phải có thẻ đóng và thẻ mở hợp vị trí (thẻ mở theo thứ tự từ ngoài vào trong còn thẻ đóng theo thứ tự từ trong ra ngoài).  Trong tài liệu XML, tên thuộc tính là duy nhất và giá trị của thuộc tính phải được đặt trong cặp nháy kép ( “ ”) hoặc nháy đơn („ „).  Chỉ sử dụng 5 tham chiếu thực thể được định nghĩa trước trong XML là : Tham chiếu thực thể Ý nghĩa của ký tự tương ứng & ; & < ; < > ; > &apos ; „ " ; ” 1.1.5. Định nghĩa kiểu tư liệu DTD (Document Type Definition) Khi xây dựng các phần tử trong XML, chúng ta có thể tuỳ ý quyết định cách sử dụng chúng (có thể trong các thẻ chỉ chứa nội dung là dữ liệu text thuần tuý hoặc cũng có thể chứa các phần tử con khác). Tuy nhiên để tài liệu được rõ ràng chúng ta nên định nghĩa kiểu tư liệu mà mỗi phần tử sẽ biểu diễn. Một tài liệu XML không chỉ đòi hỏi phải hợp khuôn dạng (well-formed) mà còn đòi hỏi phải hợp lệ. Một tài liệu XML được xem là hợp lệ và có giá trị khi 12 mà tất cả các phần tử trong tài liệu được định nghĩa kiểu mà nó sẽ chứa. Việc định nghĩa kiểu dữ liệu cho các phần tử gọi là định nghĩa kiểu tư liệu DTD [1]. Định nghĩa kiểu tư liệu DTD tuân theo cú pháp tổng quát được quy định bởi tổ chức XML W3C như sau : < !DOCTYPE root-name [DTD]> Trong đó DTD là các định nghĩa cho phần tử trong tài liệu (có thể là các định nghĩa nội- internal hoặc ngoại- external). Mỗi phần tử được định nghĩa theo cú pháp : < !ELEMENT name content_model> Trong đó name là tên phần tử muốn định nghĩa, content_model có thể được đặt là EMPTY hay ANY hoặc trộn lẫn cả hai nội dung (gồm dữ liệu có thể sử dụng để phân tích hoặc các phần tử con khác). Khai báo và định nghĩa kiểu tư liệu được đặt ở phần khởi đầu (PROLOG) của tài liệu (đặt sau phần khai báo và chỉ thị xử lý). Ví dụ về khai báo và định nghĩa DTD trong tài liệu XML: ]> Nguyen Mai Thanh 13 20/12/1977 Dai hoc Cong nghe ……………………….. ………………………. 1.1.6. Lược đồ XML (XML schema) Một tài liệu XML có thể trở nên rõ ràng nhờ khai báo kiểu tư liệu DTD. Song những khai báo DTD thì có vẻ như là khá phức tạp đối với độc giả. Do vậy tổi chức W3C đã đưa ra một giải pháp tổng quát hoá hơn DTD đó là khai báo và định nghĩa các phần tử trong tài liệu XML theo lược đồ. Cũng tương tự như DTD, lược đồ XML quy định cấu trúc của một tài liệu XML (gồm những phần tử gì, thứ tự ra sao, chứa thuộc tính gì và nội dung thế nào) nhưng nó tỏ ra mạnh mẽ và chính xác hơn, với ưu điểm nổi bật là cho phép định nghĩa và khai báo kiểu dữ liệu thực sự mà chúng ta muốn sử dụng. Lược đồ là tài liệu XML có thể được cài đặt theo định nghĩa của Microsoft hoặc theo định nghĩa của tổ chức quốc tế W3C. Về cơ bản thì cả hai cách cài đặt này đều phải sử dụng không gian tên cho tài liệu, song trong mỗi cách lại sử dụng không gian tên theo một phương cách khác nhau. Để kết hợp lược đồ XML vào trong tài liệu, Microsoft sử dụng không gian tên mặc định cho tài liệu bằng khai báo thuộc tính xmlsn tại phần tử gốc cùng với thông tin về file chứa lược đồ x-schema như sau: ………………………………………….. 14 Trong đó, rootElement là tên phần tử gốc, fileNameSchema là tên file chứa lược đồ đã được định nghĩa, fileNameSchema được đặt với tên và phần mở rộng tuỳ ý. Ví dụ như schema1.xml Trong fileNameSchema, nội dung lược đồ được định nghĩa như sau: - Lược đồ là một tài liệu XML bắt đầu bằng phần tử schema, được khai báo theo dạng thức: ………………. - Tiếp theo lược đồ được đặt tên dựa vào thuộc tính name theo cấu trúc: ………………. Trong đó, name_fileNameSchema là phần tên (không chứa phần mở rộng) của fileNameSchema. - Để tạo lược đồ cho Internet Explorer, ta phải thiết lập không gian tên mặc định cho tài liệu chứa lược đồ là urn:schema-microsoft-com:xml-data, cùng với không gian tên mang định danh urn: schema-microsoftcom:datatypes với tiếp đầu ngữ dt cho phần khai báo kiểu dữ liệu (datatype). ………………. 15 Các kiểu dữ liệu cùng với không gian tên dt được định nghĩa sẵn như bảng sau [1]: Kiểu dữ liệu Ý nghĩa bin.base64 Kiểu đối tượng nhị phân mã hoá theo chuẩn base64 bin.hex Kiểu hex boolean Nhận giá trị 0 hoặc 1 char Kiểu ký tự date Kiểu ngày tháng dateTime Kiểu ngày giờ float Kiểu số thực với dấu chấm động int Kiểu số nguyên number Kiểu số tổng quát (có thẻ là số âm, dương, số mũ,..) I1 Số nguyên 1 byte I2 Số nguyên 2 byte I4 Số nguyên 4 byte R4 Số thực với độ chính xác 7 ký số R8 Số thực với độ chính xác 15 ký số ui1 Số nguyên không dấu 1 byte ui2 Số nguyên không dấu 2 byte ui4 Số nguyên không dấu 4 byte - Phần tử của tài liệu XML được định nghĩa trong lược đồ theo cấu trúc sau : 16 ………………. Trong đó attributes là khai báo danh sách các thuộc tính tương ứng của kiểu phần tử định nghĩa, các thuộc tính có thể là : name (tên kiểu phần tử), content (nội dung kiểu phần tử), model (mô hình nội dung của thẻ - nhận giá trị là closed hoặc open), dt :type (kiểu dữ liệu của phần tử). Ví dụ có định nghĩa các phần tử như sau : Các phần tử trong một lược đồ XML được nhìn nhận theo hai góc độ: phần tử có kiểu phức hợp (là phần tử có chứa các phần tử con và thuộc tính) và phần tử có kiểu đơn giản (là phần tử chỉ chứa dữ liệu đơn giản như: chuỗi, ngày tháng, số nhưng không chứa các phần tử con và thuộc tính). Việc xác định kiểu các phần tử trong tài liệu XML có ảnh hưởng trực tiếp tới việc định nghĩa lược đồ XML theo chuẩn W3C. Để sử dụng một lược đồ đã định nghĩa, chuẩn W3C mở ra hướng rộng hơn so với việc sử dụng theo Microsoft. Thay vì phải sử dụng thuộc tính xmlns để tham chiếu đến file chứa lược đồ, W3C cho phép khai báo không gian tên cho tài liệu tham chiếu đến file lược đồ theo địa chỉ URL theo cách thức: .................................... Nội dung của lược đồ XML theo dạng thức thuần văn bản. Nó mở đầu bằng khai báo chuẩn XML, tiếp theo W3C sử dụng tiếp đầu ngữ xsd: để tham chiếu đến không gian tên của lược đồ, theo cú pháp sau: 17 .................................... Tiếp theo là khai báo các phần tử và kiểu dữ liệu: Đối với kiểu phần tử phức hợp  sử dụng phần tử khai báo , một phần tử phức hợp thường chứa các khai báo phần tử con, tham chiếu đến các phần tử khác và khai báo các thuộc tính. Phần tử được khai báo bằng chỉ thị , khai báo thuộc tính bằng chỉ thị . Đối với kiểu phần tử đơn giản được khai báo bằng chỉ thị . Sau khi định nghĩa kiểu phần tử, ta hoàn toàn có thể khai báo các phần tử sử dụng kiểu vừa tạo. Ví dụ: Ta có khai báo kiểu phức hợp cho phần tử address Sau đó có thể sử dụng định nghĩa phần tử address cho phần tử để lưu thông tin cá nhân trong tài liệu như sau:
- Xem thêm -