Chính vì vậy XML eXtensible Markup Language được tạo ra để giải quyết các nhược điểm trên.. -XML Extensible Markup Language ra đời vào tháng 2/1998, là ngôn ngữ có kiến trúc
Trang 1Chương 01: Khái quát về XML 3
1.1.Giới thiệu XML 3
1.1.1.Khái quát 3
1.1.1.1.Lịch sử hình thành XML: 3
1.1.1.2.Đặc trưng của XML: 4
1.1.1.3.Ưu điểm của XML: 5
1.1.2.Các ứng dụng của XML 6
1.1.2.1.Ứng dụng XML trong quản lý dữ liệu: 6
1.1.2.2.Ứng dụng XML trong thương mại điện tử 8
1.1.2.3.Ứng dụng trong việc mô tả cấu hình của 1 WebSite hay 1 ứng dụng: 11
1.2.Tài liệu XML 12
1.2.1.Cấu trúc tài liệu 12
1.2.2.Các thành phần trong XML 12
1.3.Xây dựng tài liệu hợp khuôn dạng 16
Chương 02: XSL và XSLT 17
2.1 XSL và XSLT 17
2.1.1.Giới thiệu về Extensible Stylesheet Language (XSL): 17
2.1.3.Cấu trúc và cú pháp XSLT: 18
2.1.4.Các thành phần trong XSL và XSLT 19
2.2.XSLT template 19
2.3.XSLT formating 25
Chương 03 Xpath 29
3.1 Giới thiệu về Xpath 29
3.2 Các hàm trong Xpath 30
3.2.1 Xpaht Node 30
3.2.2 Xpaht Operator 31
Trang 3Chương 01: Khái quát về XML
1.1.Giới thiệu XML
1.1.1.Khái quát
1.1.1.1.Lịch sử hình thành XML:
Trước khi XML ra đời đã có nhiều kiểu định dạng văn bản điện tử như GML (Generalized Markup Language) của IBM, SGML (Standard Generalized
Markup Language) của ANSI vào năm 1980 và HTML (Hyper Text Markup Language) Tuy nhiên các phương pháp này có nhiều nhược điểm
như GML và SGML không thích hợp để truyền dữ liệu trên Web, HTML chủ yếu chú
trọng vào việc làm cách nào hiển thị thông tin hơn là chú trọng đến nội dung truyền tải
Chính vì vậy XML (eXtensible Markup Language) được tạo ra để giải quyết các nhược
điểm trên
-XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến trúc gần giống với HTML nhưng XML nhanh chóng trở thành một chuẩn phổ biến trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP Trong khi HTML
là ngôn ngữ chủ yếu về hiển thị dữ liệu thì XML lại đang phát triển mạnh về việc chuyển tải, trao đổi và thao tác dữ liệu bằng XML XML đưa ra một định dạng chuẩn cho cấu trúc của dữ liệu hoặc thông tin bằng việc tự định nghĩa định dạng của tài liệu Bằng cách này, dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lý Vì vậy XML ra đời sẽ đáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong vấn đề trao đổi và xử lý thông tin
- XML - Extensible Markup Language (ngôn ngữ đánh dấu mở rộng) được tạo nên bởi Liên minh mạng toàn cầu nhằm khắc phục những hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản, là cơ sở của mọi trang Web
Trang 4So sánh giữa HTML và XML:
HTML được thiết kế cho mục đích trình
bày dữ liệu
XML được thiết kế cho mục đíc lưu trữ và truyền tải dữ liệu giữa các hệ thống khác nhau
HTML dùng để hiển thị dữ liệu và chú
trọng vào việc dữ liệu được hiển thị như
thế nào
XML dùng để mô ta dữ liệu và chú trọng vào nội dung của dữ liệu
HTML hiển thị thông tin XML mô tả thông tin
1.1.1.2.Đặc trưng của XML:
XML(eXtensible Markup Language) dùng để phục vụ cho việc mô tả dữ liệu (thông
tin lưu trữ bao gồm những gì, lưu trữ ra sao) để các hệ thống khác nhau có thể đọc và sử
dụng những thông tin này một cách thuận tiện
Các thẻ (tag) của XML thường không được định nghĩa trước mà chúng được tạo
ra theoquy ước của người, (hoặc Chương trình) tạo ra XML theo những quy ước của
chính họ
XML sử dụng các khai báo kiểu dữ liệu DTD (Document Type Definition) hay lược đồSchema để mô tả dữ liệu.
- XML là ngôn ngữ xây dựng cấu trúc tài liệu văn bản:
Dựa theo chuẩn SGML (Standard Generalized Markup Language)
W3C phát triển
Tương tự như cơ sở dữ liệu
Dùng văn bản (text) để mô tả thông tin
Đơn vị cơ sở của XML là các ký tự
Tài liệu xml gồm một hoặc nhiều thực thể(mỗi thực thể thường là một phần)
XML có thể dùng cho nhiều loại dữ liệu
* Xu hướng của XML:
+ XML đơn giản hóa việc trao đổi dữ liệu
+ XML cho phép mã hóa thông minh
+ XML cho phép tìm kiếm thông minh
Trang 5 Dễ dàng viết được các chương trình xử lý dữ liệu
Tài liệu XML dễ đọc và có tính hợp lý cao
XML dễ dàng được sử dụng trên Internet
XML hỗ trợ nhiều ứng dụng
Không đặt nặng tính hình thức trong nội dung thẻ
*Cơ sở dữ liệu và XML
-XML là định dạng chung cho việc thay đổi dữ liệu trên Internet
-Datasets xuất dữ liệu như XML
-XML cung cấp một định dạng thuận lợi cho việc chuyển nội dung một dataset đến client và ngược lại
1.1.1.3.Ưu điểm của XML:
Dữ liệu độc lập là ưu điểm chính của XML Do XML chỉ dùng để mô tả dữ liệu bằng dạng text nên tất cả các chương trình đều có thể đọc được XML
Dễ dàng đọc và phân tích dữ liệu, nhờ ưu điểm này mà XML thường được dùng để trao đổi dữ liệu giữa các hệ thống khác nhau
Dễ dàng để tạo 1 file XML
Lưu trữ cấu hình cho web site
Sử dụng cho phương thức Remote Procedure Calls (RPC) phục vụ web service
Trang 6+XMLQL (XML Query Language) là một ngôn ngữ vấn tin cho XML.
+XMLQL có nhiều cấu trúc có thể truy vấn các tài liệu dựa trên những DTD của chúng
+Tiện ích Oracle XMLSQL phát triển nhiều kỹ thuật cho phép biến đổi cấu trúc XML sang cấu trúc SQL và ngược lại
+IBM phát triển DB2 CXML mở rộng để lưu trữ và thao tác các tài liệu XML
+Microsoft mở rộng SQL92 bằng cách phát triển OPENXML,…
Ngôn ngữ truy vấn và tối ưu hóa truy vấn là hai vấn đề lớn của các cơ sở dữ liệu XML
b.Dữ liệu phân tán:
-Các tài liệu XML cũng có thể là phân tán
-Tiếp cận dữ liệu phân tán hoàn toàn tương tự với cơ sở dữ liệu quan hệ phân tán -Cần nghiên cứu nhiều trước khi quyết định cách tiếp cận nào phù hợp với tài liệu XML phân tán
Hình 2: XML và xử lý truy vấn
Trang 7c.Di chuyển và tương tác:
-XML rất thuận lợi trong việc di chuyển cơ sở dữ liệu; tuy nhiên không phải là lời giải đáp cho mọi vấn đề
Ví dụ, XML vẫn còn thiếu chức năng trình bày ngữ nghĩa
- Không thể giải quyết các xung đột ngữ nghĩa giữa các cơ sở dữ liệu khác nhau Hy vọng rằng, RDF và ngữ nghĩa web phát triển sẽ hỗ trợ vấn đề này
d.Kho dữ liệu và khai phá dữ liệu:
-Với kho dữ liệu có hai phương diện liên quan đến XML:
+Các tài liệu XML, cơ sở dữ liệu bán cấu trúc, cơ sở dữ liệu quan hệ và nhiều nguồn dữ liệu khác được tích hợp vào trong một kho dữ liệu
+Cho đến nay nhiều công việc trên CSDL quan hệ được tích hợp vào trong một kho dữ liệu dựa trên mô hình quan hệ Khi CSDL là các tài liệu XML cũng như CSDL bán cấu trúc, làm thế nào để tích hợp chúng vào trong một kho dữ liệu Mô hình dữ liệu nào là thích hợp cho một kho dữ liệu?
+Trình bày kho dữ liệu như một tập hợp các tài liệu XML, cần ánh xạ giữa các nguồn dữ liệu cơ sở
+Ví dụ, ánh xạ các mô hình quan hệ và mô hình đối tượng đến các mô hình dữ liệu XML
Hình 58 XML và sự tương tác
Trang 8-Với khai phá tài liệu XML, có 2 phương diện cần quan tâm:
+Khai phá các tài liệu để trích rút thông tin hữu ích như mẫu và phương hướng
+Ví dụ, các tài liệu XML có thể được khai phá cho hệ thống thương mại thông minh +Khai phá các tài liệu cho tuỳ chọn quan hệ quản lý; cũng có thể khai phá các mẫu thông dụng để báo cho người dùng biết về các liên kết trong một tài liệu XML
e.Công nghệ đối tượng:
-Gồm quản lý cơ sở dữ liệu đối tượng, quản lý đối tượng phân tán, ngôn ngữ lập trình đối tượng, thành phần và khung đối tượng, phân tích và thiết kế hướng đối tượng Các cấu trúc trong mô hình đối tượng bao gồm lớp (class), thuộc tính (attribute) và các thể hiện (instance) của đối tượng
-Coi DTD trong XML như các cấu trúc tài liệu tương tự như các lớp trong khi các tài liệu là các thể hiện; tuy nhiên, XML không phải là loại định kiểu mạnh XML chỉ là tượng trưng và không có một mô hình thực thi Vì vậy, nhiều phương thức không áp dụng được trong trường hợp này
-Một phần của UML có thể được dùng cho mô hình dữ liệu XML, mặc dù nhiều phương diện UML trình bày trạng thái động và một số không áp dụng được
-Các hệ thống quản lý đối tượng phân tán như OMG (Object Management Group), ORB (Object Request Broker) làm việc theo nhóm nghiên cứu để làm thế nào XML có thể sử dụng trong sự kết hợp với IDL (Interface Description Language)
-Các lược đồ của cơ sở dữ liệu thừa kế được định nghĩa trong XML, nhưng gọi các phương thức được tạo trong IDL
1.1.2.2.Ứng dụng XML trong thương mại điện tử
a.Trình bày tài liệu:
- Khi các công ty thực hiện các giao dịch, sẽ có nhiều tài liệu được trao đổi, đó là văn bản, hóa đơn, hợp đồng, các giấy tờ pháp lý ,
- Cần đồng bộ các tài liệu này, đó là một lĩnh vực then chốt đối với thương mại điện tử và XML cung cấp giải pháp này
Trang 9b.Quản lý dữ liệu:
-Một khối lượng lớn dữ liệu trong cơ sở dữ liệu hay nơi nào đó có thể được sử dụng cho nhiều giao dịch khác nhau
-Nhiều tổ chức khác nhau sử dụng tất cả các loại dữ liệu để kiểm soát giao dịch thương mại điện tử, XML cung cấp một khả năng trình bày dữ liệu mà các tổ chức khác nhau có thể hiểu được
-Một lĩnh vực khác của quản lý dữ liệu là khai phá dữ liệu
-Thông tin trong các tài liệu XML phải được khai phá để có thể hiểu dữ liệu trong nhiều cơ sở dữ liệu khác nhau
-Khía cạnh khác là khai phá các mẫu thông dụng cũng tập hợp trong các tài liệu XML cho các giao dịch thông minh
Hình 2: XML & quản lý dữ liệu Hình 1: XML & trình bày dữ liệu
Trang 10c.Tương tác:
-Các tổ chức khác nhau có thể cộng tác làm việc với nhau Ở đây được gọi là cộng tác thương mại Ví dụ, tổ chức A đặt một đơn đặt hàng với tổ chức B, tổ chức B lại đặt mua từ tổ chức C và D Điều này có nghĩa là A, B, C và D cộng tác với nhau
d.XML là yếu tố cần thiết cho sự giao tiếp giữa hai tổ chức khác nhau.
-Nhiều tài liệu, hợp đồng, và các hợp đồng phụ sẽ được trao đổi giữa hai tổ chức khác nhau Trừ khi chúng được chỉ định trong một vài ngôn ngữ thông dụng nào đó, nếu không nó sẽ rất khó hiểu
Hình 5.2 Tương tác qua XML
InteroperabilityThrough XML
Organization C
Trang 11e.Một số kết quả liên quan
-Đã có nhiều sự nỗ lực nghiên cứu để phát triển các chuẩn XML cho thương mại điện tử Ba trong số nhiều kết quả đạt được đó là:
+ ebXML;
+ RosettaNet;
+ Commerce One.Net
1.1.2.3.Ứng dụng trong việc mô tả cấu hình của 1 WebSite hay 1 ứng dụng:
Cung cấp tin, dữ liệu cho các hệ thống khác nhau để có thể khai thác, sử dụng Điều này có thể thấy dễ hiểu nhất khi bạn sử dụng tính năng cung cấp RSS của các web site có cung cấp tính năng dạng này như : www.vnExpress.net, www.tuoitre.vn, … để lấy tin tự động như giá vàng, tin thể thao, thời sự, tin thời tiết …
Hình 5 Sự phát triển của XML và e-commerce
Trang 121.2.Tài liệu XML
1.2.1.Cấu trúc tài liệu
Một file XML thông thường bao gồm 2 phần:
Document Prolog: lưu trữ metadata của XML gồm 2 phần: khai báo XML và khai
báo kiểu dữ liệu trong XML Phần khai báo XML (XML declararion) bao gồm các thông tin về version của XML, charset, encoding… Phần khai báo kiểu dữ liệu trong XML (DTD) dùng để khai báo cấu trúc của các thẻ dùng trong XML
Root element hay còn gọi là Document Element: chứa tất cả các phần tử và nội dung
của nó 1 phần tử của XML phải có thẻ mở và thẻ đóng
1.2.2.Các thành phần trong XML
Comment: như chúng ta đã biết, trong lập trình thì comment chính là dữ liệu do lập
trình viên tự tạo ra trong chương trình của mình để lập nên những chú thích cần thiết để sau này khi đọc lại mã lệnh có thể hiểu mã lệnh một cách nhanh nhất Trong XML cũng
Trang 13vậy, để tạo chú thích cho nội dung trong XML bạn cũng có thể tạo comment theo những quy ước sau
Comment trong XML bắt đầu bằng <! và kết thúc bằng > Một số lưu ý trong
Comment:
Trong nội dung của comment không nên có ký tự “-“
Không nên đặt comment trong 1 thẻ (Thuộc giới hạn mở thẻ … đóng thẻ – quy ước
này ám chỉ những “thẻ con” những thẻ chỉ có nội dung mà không chứa các thẻ khác lồng bên trong nó)
Không nên đặt comment trước dòng khai báo <?xml….?>
Processing Instructions: Là thông tin dành cho chương trình đang sử dụng file
XML Thành phần này không tuân theo các qui định của XML Khi XML được đọc, các thông tin của đối tuợng này sẽ được đọc lên và truyền cho application
Cú pháp: <?PITarget <instruction>?>
Trong đó:
PITarget: tên của application nhận thông tin của processing instruction
Instruction: nội dung sẽ truyền cho PITarget
Kiểu dữ liệu: Dữ liệu mô tả giá trị trong các tag thuộc tập tin XML được nhận dạng
dưới dạng chuỗi ký tự, trong XML dữ liệu chuỗi được chia làm 2 dạng
là CDATA và PCDATA
Trang 14PCDATA (Parsed character data): là dữ liệu sẽ được đọc và phân tích bởi chương
trình phân tích XML, trong PCDATA chúng ta không được phép dùng các ký tự đặc biệt
có liên quan đến việc xác định các thành tố của XML như <,>,&, …
CDATA (Character data): dữ liệu dạng ký tự không được phân tích bởi một XML
Parser vì thế có thể chứa bất kỳ các ký tự đặc biệt nào CDATA luôn phải bắt đầu bằng
“<![CDATA[” và kết thúc bằng “]]>”
Entity: Do chúng ta không thể sử dụng các ký tự đặc biệt đối với dữ liệu trong XML
cho nên XML xây dựng các đối tuợng thay thế cho các ký tự đặc biệt; Các đối tượng này
được gọi là cácentities:
Attributes: Khi các thẻ (tag) sử dụng để mô tả cho dữ liệu trong XML cần phải được
biểu diễn thông tin nhiều hơn nữa, XML cho phép người tạo có thể sử dụng thuộc tính
(attributes) để bổ xung cho việc mô tả dữ liệu chi tiết đối với các thẻ Ngoài mục đích
giúp cho việc mô tả thông tin đầy đủ hơn đối với dữ liệu của các thẻ (tag), thuộc tính còn
có tác dụng hỗ trợ cho việc phân biệt giữa các thành tố cùng tên với nhau trong một tập tin XML Về nguyên tắc, thuộc tính thường phải tồn tại từng cặp mô tả cho tên và giá trị
của nó theo quy ước: <attName> = “attValue” Cú pháp đầy đủ mô tả cho 1 tag với
attributes đi kèm được mô tả như sau
<elementName attName1 = “attValue1” attName2=“attValue1” …>
…
</elementName>
Trang 15Cũng giống như quy ước về đặt tên cho các thẻ (tag) trong XML, tên của thuộc tính (atributes name) cũng phân biệt chữa hoa, thường và luôn bắt đầu bởi ký tự hay dấu ghạch dưới đồng thời không cho phép sử dụng khoảng trắng (white space) Dưới đây là 1
mô tả cho việc sử dụng thuộc tính bên trong 1 tag
<! Mô tả thông tin chi tiết của tag >
<ban dai= “2.8m” rong = “1.2m” cao= “0.8m” vatLieu = “gỗ xoan đào”>
Bàn ăn gia đình
</ban>
Trong ví dụ trên, bạn thấy ta có tag <ban> với các thuộc tính để mô tả chi tiết cho dữ
liệu có tên “Bàn ăn gia đình” là dai, rong, cao, vatLieu cùng với các giá trị cần thiết
Đây là ví dụ về tag do chúng ta tự định nghĩa, ta sử dụng 1 ví dụ khác ở dưới đây để minh họa việc sử dụng tag có dùng attributes mà có lẽ hầu như những ai biết về HTML đều đã từng sử dụng
<a href="http://www.dantri.vn" title="dantri Group" target="_blank">
Liên kết đến WebSite dantri.vn Group
</a>
Trang 161.3.Xây dựng tài liệu hợp khuôn dạng
(Well-formed XML Document)
Một file XML được xem là đúng cú pháp khi thỏa mãn tất cả các điều kiện sau:
Chỉ có duy nhất có một phần tử thuộc cấp cao nhất trong tài liệu, còn gọi là nút gốc
(root element)
Mỗi một thẻ mở đều phải có thẻ đóng và tên thẻ là phân biệt hoa thường
Các thẻ khi đóng phải theo đúng trình tự (mở sau đóng trước)
Tên thẻ không nên có khoảng trắng, không nên bắt đầu bằng “xml”
Các thuộc tính (atributes) của một thẻ luôn luôn tồn tại theo cặp theo quy ước: <tên>
= “<giá_trị>”; không nên đặt tên thuộc tính trùng nhau, và giá trị của thuộc tính phải đặt
trong cặp dấu nháy kép hay nháy đơn Tên của thuộc tính (atribute) sẽ theo qui luật đặt
tên giống như đối với tên thẻ
Các thẻ (tag) trong XML có thể lồng nhau (Thẻ này có thể chứa nhiều thẻ khác ở bên
trong).
Trang 17Chương 02: XSL và XSLT
2.1 XSL và XSLT
2.1.1.Giới thiệu về Extensible Stylesheet Language (XSL):
XSL là một dạng ngôn ngữ dựa trên nền tảng XML để tạo ra stylesheet nhằm mục
đích định dạng nội dungXML cho nhiều mục đích hiển thị khác nhau, đồng thời XSL còn có khả năng chuyển đổi XML thành dạng định dạng khác XSL bao gồm 3
phần:
- XSL Transformation (XSLT): là một ngôn ngữ dạng XML dùng để chuyển đổi
XML thành định dạng khác như HTML
- XML Path Language (X-Path): là một ngôn ngữ dùng để truy xuất các thành
phần trong XML
- XSL Formatting Object (XSL-FO): là ngôn ngữ dùng để định dạng XML
2.1.2.Quá trình chuyển đổi XML bằng XSLT:
Dưới đây là hình mô tả quá trình chuyển đổi XML thông qua XSLT và công cụ chuyển đổi