Khác biệt giữa các bản “XML”

n
clean up, replaced: → (7), → (15) using AWB
n (→‎Danh sách thư XML: Thêm thể loại [VIP] using AWB)
n (clean up, replaced: → (7), → (15) using AWB)
XML cung cấp một phương tiện dùng văn bản (''text'') để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó. Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các [[ngôn ngữ đánh dấu|thẻ đánh dấu]] (''markup'') với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các ''dữ liệu ký tự'', các ''phần tử'' dùng để chứa dữ liệu, và các ''thuộc tính'' của các phần tử đó. Về mặt đó, XML tương tự với các [[biểu thức S]] (''S-expression'') của ngôn ngữ lập trình [[LISP]] ở chỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sách tính chất của riêng mình.
 
Đơn vị cơ sở của XML là các ''[[ký tự]]'' theo định nghĩa của [[Universal Character Set]] (''Bộ ký tự toàn cầu''). Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một ''tài liệu'' XML. Tài liệu này gồm một hoặc nhiều [[thực thể SGML|thực thể]], mỗi thực thể thường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các [[bit]] và lưu trữ trong một [[tệp văn bản]] (''text file'').
 
Các tệp XML có thể dùng cho nhiều loại [[MIME|dữ liệu đa phương tiện]]. [http://www.ietf.org/rfc/rfc3023.txt RFC3023] định nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn bằng XML mà không nói gì đến ngữ nghĩa của dữ liệu.
 
Sự phổ biến của các [[chương trình soạn thảo văn bản|phần mềm soạn thảo văn bản]] (''word processor'') đã hỗ trợ việc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng. Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet, dễ học và dễ tạo. Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyện dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự) khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau. Việc tạo và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn.
 
Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và ý nghĩa của các phần tử và thuộc tính có tính chất mở và có thể được định nghĩa bởi một [[giản đồ XML|giản đồ]] tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngôn ngữ đánh dấu dựa XML theo yêu cầu. Cú pháp chung của các ngôn ngữ đó là cố định — các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cả các phần mềm hiểu XML ít ra cũng phải có khả năng đọc (''phân tích cú pháp'' - ''parse'') và hiểu bố cục tương đối của thông tin trong các tài liệu đó. Giản đồ chỉ bổ sung một tập các ràng buộc cho các quy tắc cú pháp. Các giản đồ thường hạn chế tên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phép một phần tử tên 'ngày sinh' chứa một phần tử tên 'ngày' và một phần tử có tên 'tháng', mỗi phần tử phải chứa đúng một ký tự.
Đây là điểm khác biệt giữa XML và [[HTML]]. HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tác dụng và nói chung là không thể dùng cho mục đích khác.
 
XML không hạn chế về việc nó được sử dụng như thế nào. Mặc dù XML về cơ bản là dạng text, các phần mềm với chức năng [[trừu tượng hóa (khoa học máy tính)|trừu tượng hóa]] nó thành các định dạng khác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa này được thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu (''datatype-oriented schema'') và khuôn mẫu [[lập trình hướng đối tượng]] (mà trong đó, mỗi tài liệu XML được thao tác như là một đối tượng). Những phần mềm như vậy có thể coi XML như là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệu qua mạng.
<?xml version="1.0" encoding="UTF-8"?>
<công_thức_nấu_ăn tên="bánh mì" thời_gian_chuẩn_bị="5 phút" thời_gian_nấu="3 tiếng">
<title>Bánh mì cơ bản</title>
<nguyên_liệu lượng="3" đơn_vị="ca">Bột mì</nguyên_liệu>
<nguyên_liệu lượng="7" đơn_vị="gram">Men</nguyên_liệu>
<nguyên_liệu lượng="1.5" đơn_vị="ca" trạng_thái="ấm">Nước</nguyên_liệu>
<nguyên_liệu lượng="1" đơn_vị="thìa cà phê">Muối</nguyên_liệu>
<chỉ_dẫn>
<bước>Trộn tất cả các nguyên liệu với nhau và nhào kĩ</bước>
<bước>Phủ một mảnh vải, ủ một tiếng đồng hồ trong phòng ấm.</bước>
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
</chỉ_dẫn>
</công_thức_nấu_ăn>
</source>
 
<source lang="xml" line start="11" style="font-size:1.2em;" >
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
</source>
 
 
<source lang="xml" line start="4" style="font-size:1.2em;" >
<nguyên_liệu lượng="3" đơn_vị="ca">Bột mì</nguyên_liệu>
</source>
 
<source lang="xml" line start="8" style="font-size:1.2em;" >
<chỉ_dẫn>
<bước>Trộn tất cả các nguyên liệu với nhau và nhào kĩ</bước>
<bước>Phủ một mảnh vải, ủ một tiếng đồng hồ trong phòng ấm.</bước>
<bước>Nhào lại, đổ vào khuôn, cho vào lò nướng.</bước>
</chỉ_dẫn>
</source>
</source>
 
XML cung cấp hai phương pháp biểu diễn các ký tự đặc biệt: các ''tham chiếu thực thể'' (''entity reference'') và các ''[[tham chiếu ký tự số]]'' (''numeric character reference'').
 
Trong XML, một '''thực thể''' (''entity'') là một thân dữ liệu được đặt tên với dữ liệu thường là text, chẳng hạn một ký tự đặc biệt.
 
Một '''tham chiếu thực thể''' là một ký hiệu đại diện cho thực thể đó. Nó bao gồm tên của thực thể với dấu ("<code>&amp;</code>") đứng trước và một [[dấu chấm phảy]] ("<code>;</code>") đứng sau. XML có năm thực thể đã được khai báo trước:
* &amp;gt; (&gt;)
* &amp;apos; (')
* &amp;quot; (")
 
Dưới đây là một ví dụ sử dụng một thực thể XML khai báo trước để biểu diễn dấu <code>&amp;</code> trong tên "AT&amp;T":
== Liên kết ngoài ==
=== Tài liệu Tiếng Việt ===
 
* [http://www.isoc-vn.org/www/w3c/XML-in-10-points-vn.html 10 điểm cần biết trong XML]
 
{{các ngôn ngữ lập trình chính}}
{{Semantic Web}}
 
[[Thể loại:XML| ]]
[[Thể loại:Chuẩn W3C]]