520 likes | 766 Views
CHƯƠNG 1: CƠ BẢN VỀ XML. XML LÀ GÌ?. XML, E x tensible M arkup L anguage, là ngôn ngữ tổng quát dùng để định nghĩa dữ liệu thông qua các thẻ. XML là tập con của SGML (Standard Generalized Markup Language - chuẩn ngôn ngữ định dạng tổng quát). XML LÀ GÌ? (tt).
E N D
XML LÀ GÌ? • XML, Extensible Markup Language, là ngôn ngữ tổng quát dùng để định nghĩa dữ liệu thông qua các thẻ. • XML là tập con của SGML (Standard Generalized Markup Language - chuẩn ngôn ngữ định dạng tổng quát)
XML LÀ GÌ? (tt) • Dùng XML, ta có thể tuỳ ý định nghĩa mọi thẻ. Trong trường hợp này nó trở thành tập cha của HTML. • Tháng 2-1998 Tổ chức Web toàn cầu (World Wide Web Consortium - W3C) phê chuẩn cho chính thức thi hành Version 1.0 của XML Specification
SO SÁNH GIỮA XML VÀ HTML [1] • Cả HTML và XML đều dựa trên chuẩn ngôn ngữ định dạng tổng quát SGML
CẤU TRÚC CỦA XML [1] Ví dụ: <?xml version=“1.0” ?> <document> <greeting> Hello </greeting> <message> Welcome to my page </message> </document>
CẤU TRÚC CỦA XML [2] • Giải thích: <?xml version=“1.0” ?> • Là thẻ khai báo chỉ thị xử lý, nó chỉ ra phiên bản, bảng mã. Khai báo này phải được đặt ở ngay dòng đầu tiên. • Tất cả các chỉ thị xử lý bắt đầu bằng <? Và kết thúc bằng ?>
CẤU TRÚC CỦA XML [3] • Giải thích: (tt) • <document> là phần tử gốc của tài liệu. • <greeting>, <message> là các phần tử được định nghĩa bên trong phần tử gốc, nó có thể chứa dữ liệu hoặc các phần tử khác.
CẤU TRÚC CỦA XML [4] • Ví dụ: (tt) greeting.css Greeting {display: block; font-size: 30pt; color: blue} Message {display: block; font-size: 15pt; color: green} View>>
ĐIỂM MẠNH CỦA XML (1) • 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 ứng dụng và tài liệu với các định dạng khác nhau. • Dữ liệu mô tả: chỉ dựa vào các tên thẻ ta có thể hình dung ra nội dung và cách dữ liệu muốn thể hiện..
ĐIỂM MẠNH CỦA XML (2) • Dữ liệu có cấu trúc và tích hợp: không chỉ cho phép ta lưu dữ liệu vào file XML dựa trên thẻ mà còn tổ chức dữ liệu theo cấu trúc. XML cho phép các phần tử tích hợp nhau tạo nên một dữ liệu phân cấp hoàn chỉnh
CÁC ỨNG DỤNG THỰC TẾ CỦA XML [1] • CML - ngôn ngữ định dạng hoá học. CML có thể mô tả và hiển thị nội dung của cấu trúc phân tử hoá học. Nó còn cung cấp một danh sách rất nhiều công thức hoá học của phân tử được định nghĩa sẵn. • MathML - ngôn ngữ định dạng toán học. Nó ra đời nhằm đưa ra khả năng hiển thị và định dạng được các biểu thức toán học trong các tài liệu Web.
CÁC ỨNG DỤNG THỰC TẾ CỦA XML [2] • SMIL (Synchronized Multimedia Integration Language), khắc phục vấn đề xử lý các file multimedia trong trình duyệt. Nó cho phép trình diễn đồng thời nhiều file multidia.
CÁC ỨNG DỤNG THỰC TẾ CỦA XML [3] • XHTML, mở rộng và định nghĩa lại HTML một cách có trật tự và cấu trúc hơn. Tất cả các thẻ trong XHTML phải là chữ thường và các phần tử thẻ phải tuân theo cú pháp và nguyên tắc của XML. • HTML+TIME, cho phép trình diễn đồng thời trang HTML và các multidia khác nhau. Khái niệm behavior cho phép tách rời mã điều khiển và dữ liệu. IE 5 đã cài đặt sẵn HTML+TIME
CÁC ỨNG DỤNG THỰC TẾ CỦA XML [3] • VML (Vector Markup Language) – Ngôn ngữ định dạng vector, cho phép vẽ trực tiếp ảnh vector bên trong trình duyệt chỉ bằng khai báo thẻ. • WML – Ngôn ngữ định dạng mạng không dây, hổ trợ xây dựng các trang Web phục vụ nối kết từ điện thoại di động.
TRÌNH SOẠN THẢO XML • XML Notepad • (www.microsoft.com/xml/notepad/intro.asp) • XML Writer • (www.xmlwriter.net) • XML Spy • (www.xmlspy.com) • eNotePad • (www.edisys.com/products/enotepad)
CÁC TRÌNH DUYỆT • Internet Explorer • Netscape navigator • Jumpo (có thể dùng miễn phí tại địa chỉ: www.xml-cml.org/jumbo.html)
BỘ PHÂN TÍCH XML (XML PARSER) • Bộ phân tích sẽ tách dữ liệu XML thành từng mẫu nhỏ và khiến chúng có thể truy xuất được bởi mã lệnh của chương trình. Một số trình phân tích kiêm luôn cả chức năng kiểm tra khuôn dạng hoặc tính hợp lệ của tài liệu XML.
BỘ PHÂN TÍCH XML (tt) • Các bộ phân tích thông dụng: • XML for Java (XML4J), là thư viện phân tích tài liệu XML được phát triển bởi IBM AlphaWorks (www.alphaworks.ibm.com/tech/cml4j) • Microsoft XML Parser, được kèm theo sẵn trong trình duyệt Internet Explorer 5 trở lên.
BỘ KIỂM TRA (XML VALIDATOR) • Dùng để kiểm tra xem tài liệu XML viết ra có đúng khuôn dạng và hợp lệ hay không
BỘ KIỂM TRA (tt) Các bộ kiểm tra thường dùng: • XML Writer là trình soạn thảo và kiểm tra tính hợp lệ của tài liệu. • Tidy: là chương trình C có cả mã nguồn hướng dẫn cách phân tích và kiểm tra tính hợp lệ của tài liệu. Có thể download mã nguồn Tidy miễn phí tại địa chỉ: www.w3.org/people/raggett/tidy
BỘ KIỂM TRA (tt) Các bộ kiểm tra thường dùng: (tt) • Có thể kiểm tra tính hợp lệ của tài liệu ngay trên Internet qua địa chỉ: www.stg.brown.edu/service/xmlvalid
XÂY DỰNG TÀI LIỆU XML • Ví dụ: Tạo một tài liệu XML để lưu thông tin về đơn đặt hàng của các khách hàng cụ thể. • Chỉ thị xử lý: <?xml version=“1.0” standalone=“yes”?> • standalone=“yes”: cho biết tài liệu là một thực thể duy nhất không tham chiếu đến các thực thể khác. Đây cũng là giá trị mặc định.
XÂY DỰNG TÀI LIỆU XML (tt) • Tạo phần tử gốc: <?xml version=“1.0” standalone=“yes”?> <document> … <document>
VÍ DỤ (tt) • Tạo các phần tử con <?xml version=“1.0” standalone=“yes”?> <document> <customer> … </customer> <customer> … </customer> <document>
VÍ DỤ (tt) Yêu cầu: • Đối với mỗi khách hàng ta thêm thông tin về tên bằng thẻ <name> cùng với thông tin chi tiết <first_name> và <last_name>
VÍ DỤ (tt) <?xml version=“1.0” standalone=“yes”?> <document> <customer> <name> <last_name>Smith</last_name> <first_name>Sam</first_name> </name> </customer> <customer> … </customer> <document>
VÍ DỤ (tt) • Thêm thông tin về đơn đặt hàng <customer> <name> <last_name>Smith</last_name> <first_name>Sam</first_name> </name> <date>October 15, 2001</date> <orders> … </orders> </customer>
VÍ DỤ (tt) Thêm dữ liệu vào đơn hàng: <customer> <name> <last_name>Smith</last_name> <first_name>Sam</first_name> </name> <date>October 15, 2001</date> <orders> <item> <product>Tomatoes</product> <number>8</number> </price>$1.25</price> <item> </orders> </customer>
CÁC ĐIỂM CẦN CHÚ Ý… • XML phân biệt chữ hoa và chữ thường • Các khai báo XML phải được đặt ngay dòng đầu tiên của tài liệu • Tài liệu chỉ có 1 phần tử gốc, các phần tử khác nếu có phải là con của phần tử gốc
CÁC ĐIỂM CẦN CHÚ Ý… (tt) • Mọi phần tử XML khác rỗng phải bao gồm đầy đủ thẻ đóng • Đóng phần tử rỗng với chuỗi đóng /> • Mọi phần tử trong tài liệu khác phần tử gốc đều phải nằm giữa cặp thẻ gốc • Các giá trị của thuộc tính phải được đặt trong dấu nháy đôi (“”)
ĐỊNH NGHĨA KIỂU DỮ LIỆU (DTD) • DTD được dùng để định nghĩa các phần tử và thuộc tính trong tài liệu, về ý nghĩa của các phần tử, cấu trúc logic, kiểu dữ liệu và nội dung tài liệu. Vì vậy, có thể chưa cần xem qua toàn bộ tài liệu, chỉ cần xem DTD ta có thể biết được ý nghĩa và cấu trúc của toàn bộ tài liệu.
ĐỊNH NGHĨA KIỂU DỮ LIỆU (DTD) • DTD được yêu cầu cho một tài liệu XML hợp lệ • DTD cho phép tài liệu được chuyển đổi và được hiểu bởi các phầm mềm khác
ĐỊNH NGHĨA KIỂU DỮ LIỆU (tt) • Có thể định nghĩa DTD ngay trong tài liệu XML hoặc định nghĩa ở một file khác ở bên ngoài.
ĐỊNH NGHĨA KIỂU DỮ LIỆU (tt) • Các phần tử cơ bản của DTD: • Elements • Attributes • Entities • PCDATA • CDATA
ĐỊNH NGHĨA KIỂU DỮ LIỆU (tt) Trong đó: • Elements là các thẻ • Attributes là các thuộc tính • Entities là các biến mô tả các tham chiếu dạng text
ĐỊNH NGHĨA KIỂU DỮ LIỆU (tt) • PCDATA (parse character data) là text chứa bên trong thẻ XML. PCDATA sẽ được phân tích cú pháp bởi trình phân tích • CDATA (character data), text trong CDATA không cần được phân tích
VÍ DỤ DTD • <?xml version=“1.0” standalone=“yes”?> • <!DOCTYPE document[ • <!ELEMENT document (customer)*> • <!ELEMENT customer (name, date, orders)> • <!ELEMENT name (last_name, first_name,)> • <! ELEMENT last_name (#PCDATA)> • <! ELEMENT first_name (#PCDATA)>
VÍ DỤ DTD (tt) • <! ELEMENT date (#PCDATA)> • <! ELEMENT oders (item)*> • <! ELEMENT item (product, number, price)> • <! ELEMENt product (#PCDATA)> • <! ELEMENT number (#PCDATA)> • <! ELEMENT price (#PCDATA)> • ]>
LƯỢC ĐỒ XML (schema) • Để tài liệu hợp lệ ta phải định nghĩa dữ liệu cho các phần tử. Ta có thể sử dụng DTD, tuy nhiên đây không phải là cách duy nhất. Định nghĩa dữ liệu có thể dưa vào lược đồ.
ƯU ĐIỂM CỦA SCHEMAS • Dễ học hơn DTD • Có thể mở rộng • Phong phú hơn DTD • Hổ trợ datatypes • Hổ trợ namespaces
TẬP KÝ TỰ VÀ MÃ HOÁ • Tập ký tự mặc định của XML là UTF-8 (8 bits). Đây là bộ mã thu gọn củaUTF-16 (16 bits), nó chính là bộ mã ASCII nằm trong phần đầu của bộ mã Unicode.
KHÔNG GIAN TÊN (NAMESPACES) • Khi kết hợp các tài liệu XML với nhau có thể xảy ra trường hợp trùng tên thẻ, vì vậy cần định nghĩa không gian tên để phân biệt chúng.
TẠO KHÔNG GIAN TÊN (tt) • Ví dụ: Đây là một thư viện sách có phần tử gốc là <library> • <library> • <book> • <title>XML</title> • </book> • </library>
VÍ DỤ (tt) Không gian tên dcs được tạo ra cho thư viện như sau: • <library • xmlns:dcs=“http://www.incoll4.edu.vn/lib”> • <book> • <title>XML</title> • </book> • </library>
VÍ DỤ (tt) Áp dụng không gian tên dcs cho tất cả các thẻ nào trong tài liệu mà ta muốn chúng duy nhất và độc quyền về dcs • <dcs:library • xmlns:dcs=“http://www.incoll4.edu.vn/lib”> • <dcs:book> • <dcs:title>XML</dcs:title> • </dcs:book> • </dcs:library>
VÍ DỤ (tt) Nếu ta cần tham khảo đến các tựa sách của Amazon, tài liệu này chắc chắn sẽ có phần tử mang tên <book>. Để an toàn ta sẽ tạo một không gian tên cho Amozon như sau: • <dcs:library • xmlns:dcs=“http://www.incoll4.edu.vn/lib” • xmlns:amazon=“http://www.amazon.com/lib” • <dcs:book> • <dcs:title>XML</dcs:title> • </dcs:book> • </dcs:library>
VÍ DỤ (tt) Bây giờ bất kỳ tựa sách nào của Amazon đều có thể đưa vào với cùng định dạng và cấu trúc của thư viện dcs • <dcs:library • xmlns:dcs=“http://www.incoll4.edu.vn/lib” • xmlns:amazon=“http://www.amazon.com/lib” • <dcs:book> • <dcs:title>XML</title> • </dcs:book> • <amazon:book> • <amazon:title>XML</amazon:title> • </amazon:book> • </dcs:library>
CDATA • Thừa kế từ SGML - Character DATA • XML parser sẽ bỏ qua việc phân tích văn bản. • <tagname><![CDATA[text]]></tagname>