1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ Ngôn ngữ đánh dấu mở rộng XML docx

163 1,1K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 163
Dung lượng 1,26 MB

Nội dung

Nội dung• Mục đích: – Giới thiệu một số nét chính về lịch sử của XML, phạm vi và mục đích của XML và nội dung chính của môn học • Nội dung chính của chương bao gồm: – Giới thiệu tổng q

Trang 1

Ngôn ngữ đánh dấu mở rộng

XML

TS Nguyễn Thanh Bình

Trang 4

Nội dung

• Mục đích:

– Giới thiệu một số nét chính về lịch sử của XML, phạm vi và mục đích của XML và nội dung chính của môn học

• Nội dung chính của chương bao gồm:

– Giới thiệu tổng quan về ngôn ngữ đánh dấu và XML

• Lịch sử của việc đánh dấu và ngôn ngữ đánh dấu

• Sự phát triển của ngôn ngữ đánh dấu

• Kiến trúc 3 tầng của XML

• Các vùng ứng dụng của XML

• Các ưu điểm của XML và khi nào không cần đến XML

• Các công nghệ liên quan đến XML

– Tài liệu XML

• Các công cụ hỗ trợ

• Định dạng tài liệu XML

Trang 5

• XML đã được thiết kế cho việc miêu tả dữ liệu

• Các thẻ XML không được định nghĩa trước

• XML sử dụng định nghĩa kiểu dữ liệu

(Document Type Definition -DTD) hoặc lược đồ XML (XML Schema) để miêu tả dữ liệu

• XML cùng với DTD hay XML Schema được thiết

kế để tự miêu tả dữ liệu

Trang 7

Lịch sử của việc đánh dấu

Documents recorded

using paper and pen Typesetters formatting documents

Tools used by typesetters

to format a document

Trang 8

Ngôn ngữ đánh dấu

• Một ngôn ngữ đánh dấu định nghĩa các luật, các luật này dùng để mô tả nội dung và cấu trúc của tài liệu

• Chúng được phân loại như sau:

– Stylistic Markup – Xác định sự trình bày của tài liệu

– Structure Markup – Định nghĩa cấu trúc của tài liệu

– Semantic Markup – Xác định nội dung của tài liệu

Trang 9

Sự phát triển của ngôn ngữ đánh dấu

Trang 10

– Tách bạch giữa nội dung, cấu trúc và kiểu

– Tập trung vào cấu trúc và nội dung

– Tương tự như XML, nhưng phức tạp hơn

Trang 11

Điểm đặc trưng của SGML

• Miêu tả ngôn ngữ đánh dấu, cho phép tạo các thẻ riêng liên quan đến nội

dung.

• Mục đích của SGML:

– Thể hiện chung tài liệu

– Cung cấp một số luật cho tập các tài liệu (DTD)

• XML là một tập con của SGML

• HTML là một ứng dụng của SGML

Trang 12

• HTML là một ngôn ngữ định dạng/đánh dấu quen thuộc, thông dụng được trích ra từ

SGML (HTML có thể coi là một ứng dụng của SGML)

• HTML ban đầu được tạo ra dùng cho việc

định dạng cáca bài báo kỹ thuật để chúng có thể được trao đổi giữa các cộng đồng khoa học

• Ngày nay HTML cũng được sử dụng cho các người dùng bình thường cho việc thể hiện

các tài liệu

Trang 13

• Không hỗ trợ việc trao đổi dữ liệu

• Không có các cơ chế liên kết tinh xảo

• Không hỗ trợ việc sử dụng lại

Trang 14

<LI> COMPANY : XYZ Corp.

<LI> Email : tom@usa.net

<LI> Phone : 3336767

<LI> Street Adress : 25th St.

<LI> City : Toronto

<LI> State : Toronto

<City> Toronto </City>

<State> Toronto </State>

<ZIP> 20056 </ZIP>

</CONTACT>

</Details>

Trang 15

• Đơn giản và dễ dùng hơn SGML

• XML cho phép người dùng định nghĩa một

tập riêng các thẻ và cho phép người khác có thể hiểu được

• XML thừa kế các nét đặc trưng của SGML và HTML

Trang 16

• XML là một siêu ngôn ngữ dùng để miêu tả các ngôn ngữ khác

– XHTML: một định nghĩa lại của HTML trong XML

• Là một ngôn ngữ có cấu trúc và ngữ nghĩa

– Ngữ nghĩa ở đây là việc đưa ý nghĩa vào các thẻ

• Dữ liệu chứa trong các file XML có thể được thể hiện bằng nhiều cách

• Các file XML có thể được xử lý bằng nhiều ứng dụng khác nhau

• Các tờ mẫu giúp việc chuyển đổi dữ liệu có cấu trúc

và các khung nhìn HTML khác nhau Điều này đảm bảo dữ liệu có thể hiển thị trên nhiều trình duyệt khác nhau

Trang 17

Kiến trúc 3 tầng

Trang 19

Kiến trúc XML

Trang 20

Các vùng ứng dụng của XML

• Trong WWW

– Nhiều khả năng khác nhau

• Sản sinh tự động các cấu trúc duyệt

• Trao đổi dữ liệu, tương tác dữ liệu

– SOAP

– Trong các ứng dụng thương mại điện tử

– Dữ liệu được cấu trúc và tích hợp

• Định rõ các quan hệ giữa các yếu tố ‚elements‘

• Thu thập dữ liệu từ các nguồn đa tạp

• Tạo ra các ngôn ngữ đánh dấu của các miền riêng:

– MathML, SVG, MusicML, SMIL, CML, RDF

Trang 21

Các ứng dụng XML

• Clinical Trial Data Model for drug trials

• National Library of Medicine (NLM) XML Data Formats for

MEDLINE data over FTP replacing ELHILL Unit Record Format (EURF) on magnetic tape

• Health Level Seven XML Patient Record Architecture

• ASTM XML Document Type Definitions (DTDs) for Health Care

• Molecular Dynamics Markup Language (MoDL)

• BIOpolymer Markup Language (BIOML)

• Gene Expression Markup Language (GEML)

• Chemical Markup Language

• Bioinformatic Sequence Markup Language

• Open Financial Exchange

• Human Resources Markup Language

• XML Court Interface

• and many more

Trang 22

Ưu điểm của XML

Trang 23

Khi nào không cần XML

• XML không phải là ngôn ngữ định dạng

• Không tối ưu cho dữ liệu nhị phân

– XML-text-> chỉ có thể sử dụng XML để

miêu tả dữ liệu (siêu ngôn ngữ)

• Không hiệu quả cho việc mã hóa:

– Được làm để có thể đọc được dễ dàng bởi

cả người và máy

Trang 24

Các công nghệ liên quan

Trang 26

Soạn thảo và lưu giữ tài liệu

XML

• Bằng các hệ soạn thảo hổ trợ mã ASCII hoặc UTF-8:

– Windows: notepad, wordpad

– Linux/Unix: vi, emacs

• Phần mở rộng chuẩn là xml

• Một số hệ soạn thảo chuẩn:

– XML Notepad của Microsoft:

http://www.microsoft.com/xml/notepad/

– XML Writer: http://www.xmlwriter.net

– XML Spy: http://www.xmlspy.com

Trang 27

Trình duyệt XML

• Một trình duyệt hỗ trợ cả XML, HTML, CSS XSL cùng với ngôn ngữ lập trình Script (ví dụ như Java Script)

– Internet Explorer

• Hiển thị trực tiếp tài liệu XML

– Netscape

– Jumbo

Trang 28

Bộ phân tích XML (XML Parser)

• Là các gói phần mềm được sử dụng để phân tích tài liệu XML

Trang 29

Bộ kiểm tra XML (XML Validator)

• Bộ kiểm tra XML dùng để kiểm tra tài liệu

XML có đúng khuôn dạng và hợp lệ hay

không

• Là một gói phần mềm cho phép kiểm tra một

số chuẩn trên XML và đưa ra đánh giá

• Ví dụ:

– XML4J sẽ đi cùng với DOMWriter

• Có 2 loại XML Validator:

– Loại ứng dụng cài đặt: XML Writer, Tidy

– Loại kiểm tra trực tiếp trên Web:

• http://www.stg.brown.edu/service/xmlvalid/

Trang 31

Tài liệu XML hợp khuôn dạng

• Một tài liệu XML phải tuân theo qui tắc cú

pháp thiết lập cho XML bởi tổ chức W3C-> hợp khuôn dạng (well-formed)

• Các luật hợp khuôn dạng:

– Các thẻ phải có đóng và mở

– Thẻ trống phải kết thúc với />

– Chỉ có duy nhất một yếu tố gốc (root element)

– Các yếu tố không được trùng nhau

– Các giá trị thuộc tính (Attribute values) phải được trích dẫn

Trang 33

Định dạng tài liệu XML

• XML là tài liệu được định dạng theo cây

• Một cây chứa các mục

Trang 34

• Tất cả dữ liệu còn lại không phải là định dạng đều xem là dữ liệu kí tự

Trang 36

Khoảng trắng

• Các kí tự như Spacebar, backspace, Tab, Enter đều được xem là khoảng trắng trong XML

Trang 37

Khai báo tài liệu XML

Trang 38

Định nghĩa kiểu tài liệu

• DOCTYPE (Document Type Definition)- Định nghĩa kiểu tài liệu

– Chỉ được yêu cầu cho việc xác định tính hợp lệ của tài liệu

– Định nghĩa tài liệu phải được tổ chức thế nào

<!DOCTYPE note SYSTEM "note.dtd">

Trang 39

– Chú thích không được đặt trước khai báo

– Chú thích không được đặt vào trong phần định dạng

– Không được dùng chuỗi - - bên trong chú thích

Trang 40

encoding="ISO-<!DOCTYPE note SYSTEM

Trang 41

Chỉ thị xử lí

• Các chỉ thị xử lí dùng để chỉ dẫn cho bộ phân tích cách xử lí tài liệu XML

Trang 46

Quan hệ giữa các phần tử

<book>

<title>My First XML</title>

<prod id="33-657" media="paper"></prod>

<para>Elements must have a closing tag</para>

<para>Elements must be properly nested</para>

Trang 47

Thuộc tính (Attribute)

• Thuộc tính (Attribute)

– dùng để cung cấp thông tin thêm vào về các phần tử

– thuộc tính được đặt bên trong thẻ mở và thẻ rỗng

• Thuộc tính (attribute) của các thẻ trong tài liệu của XML tương

tự như của các thẻ HTML

• Cú pháp: name=“value” hoặc name=‘value’

• Ví dụ:

– <person sex="female"> <person sex=‘female‘>

– <gangster name='George "Shotgun" Ziegler'>

– <gangster name="George 'Shotgun' Ziegler">

• Attribute có thể trống

• Phần tử có thể có nhiều thuộc tính

– Nhưng không được trùng tên

– Không chứa các kí tự đặc biệt

– Không có thuộc tính con

Trang 48

Sử dụng thuộc tính và phần tử

• Dữ liệu có thể được chứa trong các phần tử

con hoặc các thuộc tính

Hai ví dụ trên về nội dung thì đều giống nhau

Không có một qui tắc hay luật nào để xác định cách nào là tốt hơn

Trang 49

Nhiều cách thể hiện thuộc tính

Trang 50

Các qui ước của thuộc tính

• Thuộc tính có thể được định kiểu

– CDATA, ID, IDREF

– Được định kiểu trong DTD

Trang 51

Các lỗi khi sử dụng thuộc tính

• Thuộc tính không thể là đa trị

• Các thuộc tính không thể mở rộng dễ dàng

• Các thuộc tính không thể miêu tả cấu trúc

• Khó có thể kiểm thử các giá trị thuộc tính thông qua DTD

Trang 52

– Các nút con của cây XML kế thừa namespaces

của các nút cha và có thể ghi đè

Trang 53

Sự xung đột trong việc đặt tên

• XML cho phép đặt tên tự do cho các thẻ có thể dẫn

đến vấn đề là 2 tài liệu khác nhau sẽ cung cấp tên

trùng nhau nhưng dùng để miêu tả 2 phần tử khác

nhau

• Khi hai tài liệu này kết nối với nhau sẽ dẫn đến hiện

tượng xung đột tên

Trang 54

Giải quyết vấn đề xung đột tên

<f:width>80</f:width>

<f:length>120</f:length>

</f:table>

Trang 55

Sử dụng không gian tên (namespace)

• Không những sử dụng tiền tố, thuộc tính xmlns đã được

sử dụng trong 2 ví dụ để cung cấp các tên chất lượng

(qualified name) tương ứng với không gian tên

Trang 56

Thuộc tính không gian tên

• Thuộc tính không gian tên được sử dung trong thẻ mở của một phần tử và có cú pháp như sau:

– xmlns:namespace-prefix="namespace"

• Trong ví dụ trước chúng ta sử dụng :

– xmlns:f= http://www.w3schools.com/furniture

• Theo đặc tả của W3C thì không gian tên phải là định danh tài

nguyên thống nhất (Uniform Resource Identifier -URI)

• Khi một không gian tên được định nghĩa cho một thẻ mở của một thành phần thì tất cả các thẻ con với cung tiền tố đều

tương ứng với một không gian tên

• Địa chỉ sử dụng để xác định không gian tên không phải được

sử dụng bởi bộ phân tích để tìm kiếm thông tin Mục đích chính

là chỉ ra sư duy nhất của tên

Trang 57

URL và URI

• URLs: định vị tài nguyên đồng nhất (Uniform Resource Locators)

– Là địa chỉ liên kết dùng rất phổ biến trong Internet

• XML mở rộng khái niệm URL của HTML

thành URIs (Uniform Resource Identifiers) : định danh tài nguyên đồng nhất

– URI cho phép diễn đạt cách truy tìm tài nguyên

trên internet

– URI tập trung vào khái niệm của tài nguyên hơn là

vị trí thật sự nơi tài nguyên lưu trú

Trang 58

Không gian tên mặc định

• Việc định nghĩa một không gian tên mặc định cho một phần tử sẽ tránh cho chúng ta việc

sử dụng tiền tố cho tất cả các phần tử con

Trang 59

• Dữ liệu text chứa các chuổi và kí tự

• Bộ phân tích XML sẽ phân tích toàn bộ Text trong tài liệu XML

• Bộ phân tích sẽ báo lỗi khi gặp các kí tự đặc biệt như > , &

• Để tránh lỗi đó chúng ta phải sử dụng bảng tham chiếu thực thể

&lt; < less than

&gt; > greater than

&amp; & ampersand

&apos; ‚ apostrophe

&quot; „ quotation mark

<message>if salary < 1000 then</message>

<message>if salary &lt; 1000 then</message>

Trang 60

Phân đoạn CDATA

• Việc đặt nội dung dữ liệu trong tài liệu XML bao hàm các kí tự đặc biệt như > hay & là một vấn đề

• Việc đặt một tài liệu XML (nguồn) vào một tài liệu XML khác (đích) sẽ bị xáo trộn bởi các thẻ nhập từ tài liệu nguồn

– Để giải quyết vấn đề này chúng ta coi tài liệu nguồn như là

dữ liệu CDATA được đề xuất cho mục đích này

• CDATA là một phần tử nhưng bao gồm chỉ một thẻ theo cú pháp:

– <![CDATA ]]>

• Tất cả những gì nằm trong CDATA đều sẽ được bỏ qua bởi bộ phân tích

Trang 62

<chapter> 2</chapter>

<short> DTD </short>

<long_en> Data Type Definition</long_en>

<long_vn> Định nghĩa kiểu tài liệu </long_vn>

<lecturer> Nguyễn Thanh Bình </lecturer>

Trang 64

• Các tài liệu XML trích dẫn đến tài liệu DTD sẽ

chứa khai báo <!DOCTYPE>

• Có 2 loại DTD:

– DTD ngoại

– DTD nội

Trang 65

• DTD định nghĩa các khối xây dựng hợp lệ

của một tài liệu XML

Trang 66

Cấu trúc của DTD

<!DOCTYPE dtd-name [

<!ELEMENT element-name (element-content type) >

<!ATTLIST element-name attribute-name attribute-type default-value>

Trang 67

Các khối xây dựng của tài liệu XML

• Các khối xây dựng của các tài liệu XML và HTML là các thẻ như <body> </body>

• Theo quan điểm của DTD tất cả các tài liệu XML và cả HTML đều được xây dựng từ các khối sau:

Trang 68

Khai báo phần tử

• Các phần tử (Elements) là các khối xây dựng chính của cả tài liệu XML và HTML

• Ví dụ của HTML là "body" và "table" Ví dụ

của XML có thể là "note" và "message"

• Các phần tử XML được khai báo với một

khai báo !ELEMENT trong DTD

Trang 69

Khai báo phần tử rỗng

• Phần tử rỗng (EMPTY element)-kiểu nội dung chỉ rõ phần tử đó không có các phần tử con hay dữ liệu kí tự

Trang 70

#CDATA = phần tử chứa các dữ liệu kí tự và không được phân tích

#PCDATA = phần tử chứa dữ liệu kí tự để phân tích

ANY = phần tử với bất cứ nội dung nào

Trang 71

• #PCDATA có nghĩa là dữ liệu kí tự được

phân tích (Parsed Character Data)

• #PCDATA là văn bản được phân tích bởi bộ phân tích

• Tất cả các dữ liệu thô không thuộc phần định dạng được tham chiếu bởi định nghĩa

#PCDATA

• #PCDATA đơn thuần biểu diễn dữ liệu thô

• Dữ liệu văn bản thô không cho biết thêm

thông tin gì khác ngoài tính chất văn bản của nó

Trang 72

<year> The year of our Lord

one thousand, nine hundred,

Trang 73

dung phần tử

Trang 74

<!ELEMENT from (#CDATA)>

<!ELEMENT heading (#CDATA)>

<!ELEMENT body (#CDATA)>

Trang 75

Khai báo các phần tử xuất hiện nhiều lần

Trang 77

Ví dụ về việc sử dụng kí tự thay thế

<!DOCTYPE CATALOG [

<!ENTITY AUTHOR "John Doe">

<!ENTITY COMPANY "JD Power Tools,

Inc.">

<!ENTITY EMAIL "jd@jd-tools.com">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT OPTIONS (#PCDATA)>

<!ATTLIST OPTIONS FINISH (Metal|Polished|Matte) "Matte"

SHIPPING CDATA #IMPLIED>

<!ELEMENT NOTES (#PCDATA)>]>

Trang 79

Việc khai báo nội dung hỗn hợp

• Dùng để định nghĩa phần tử vừa có khả năng chứa

dữ liệu thuần văn bản vừa chứa dữ liệu thể hiện

phần định dạng

• Các định nghĩa phần tử DTD kiểu này được gọi là định nghĩa kiểu nội dung hỗn hợp Một phần tử có thể có một liên kết trộn lẫn của các phần tử con

Trang 80

• Phần tử A chứa một danh sách chuỗi các

phần tử con, trong đó có chứa các nhóm con

là các phần tử chọn lựa

<!ELEMENT A (B, (C | D), E>

Trang 82

<!DOCTYPE root-element

[element-declarations]>

DTD nội

• Nó được ghi vào bên trong

tài liệu XML ngay sau phần

khai báo XML

• Ghi DTD vào trong phần

định nghĩa DOCTYPE gọi là

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

Trang 83

ELEMENT to (#PCDATA)> <! ELEMENT from (#PCDATA)> <! ELEMENT heading

(#PCDATA)>

<!ELEMENT body (#PCDATA)>

Trang 84

Sử dụng DTD với URL

• Chúng ta có thể chỉ định đường dẫn đến các file DTD tham chiếu ngoại

• Trong ngữ cảnh của www một tài liệu DTD ngoại có thể truy xuất theo địa chỉ tuyệt

đối URLs

• Ví dụ:

<!ENTITY % xhtml1 SYSTEM "http://www.w3.org/ TR/xhtml1/DTD/strict.dtd">

Trang 85

Tham chiếu DTD dùng chung

• Khi đặt thuộc tính PUBLIC vào chỉ thị

khai báo <!DOCTYPE>, các thẻ DTD có

thể làm tham chiếu dùng chung liên kết

với nhiều tài liệu

Trang 86

Sử dụng chung tham chiếu nội và

tham chiếu ngoại

• Có thể sử dụng chung hai tham chiếu nội và ngoại trong cùng tài liệu XML cùng một thời điểm

<!DOCTYPE BOOK PUBLIC "-//Joseph Smith//General Book

Version 5.3//EN" "http://www.library.org/book.dtd">

Ngày đăng: 01/08/2014, 18:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w