STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Cơ Bản Về XML

    Giới thiệu XML. Cách biểu diễn dữ liệu trong XML, các lỗi cú pháp thường gặp. Chỉ thị xử lý, chú thích, entity và kiểu dữ liệu trong XML.

    Đinh Hòa

    03/09/2015
    23/09/2020
    7 phút đọc
    Cơ Bản Về XML

    HTML là gì?

    HTML (HyperText Markup Language) là một ngôn ngữ đánh dấu.

    Khi nói đến ngôn ngữ đánh dấu, thường nghĩ ngay đến ngôn ngữ HTML. HTML là một ngôn ngữ đánh dấu rất thành công thể hiện ở mức độ thông dụng của nó, có thể dễ dàng tìm thấy một văn bản HTML ở bất cứ nơi nào. Vậy tại sao đã tồn tại một ngôn ngữ đánh dấu thành công như HTML mà XML vẫn ra đời?

    HTML tuy là một ngôn ngữ đánh dấu rất thành công nhưng vẫn không thể phủ nhận các mặt còn hạn chế của nó. HTML có một bộ dữ liệu bao gồm hơn 400 thẻ (tag) được xây dựng và định nghĩa sẵn, lập trình viên khi sử dụng phải tuân thủ theo các thẻ được xây dựng sẵn này, việc nhớ tên và cách sử dụng hơn 400 thẻ này đối với những người mới bắt đầu hoặc người sử dụng không chuyên là một vấn đề rất lớn.

    Thứ hai các thẻ trong HTML chỉ đưa ra các quy định và trình bày văn bản mà không mô tả được dữ liệu bên trong và cuối cùng tất cả các thẻ trong HTML đều được đặt tên bằng các từ tiếng Anh hoặc các từ viết tắt có nguồn gốc bằng tiếng Anh, đây cũng là một trở ngại khá lớn cho những người sử dụng không chuyên tiếng Anh.

    XML là gì?

    XML (Extensible Markup Language) là một ngôn ngữ đánh dấu mở rộng. 

    Để khắc phục một số khuyết điểm trên của HTML năm 1996 tổ chức W3C đã thiết kế ra XML. XML là một ngôn ngữ đánh dấu được xây dựng dựa trên SGML. Đúng với cái tên của nó, ngôn ngữ không định nghĩa trước các thẻ, các thẻ trong tài liệu XML được tạo ra bởi người dùng theo những quy ước của họ, điều này làm cho ngôn ngữ XML linh hoạt và không bị giới hạn bởi số lượng và ý nghĩa các thẻ như HTML. Mục đích của ngôn ngữ XML hướng đến việc mô tả dữ liệu chứ không chỉ đơn thuần là hiển thị dữ liệu như HTML.

    Một tài liệu XML đơn giản:

    <?xml version="1.0" encoding="UTF-8"?>
    <programmer>
    	<university>HUFLIT</university>
    	<job>Programming</job>
    	<full_name last_name='Dinh' middle_name='Minh' first_name='Hoa'/>
    	<id>11dH110005</id>
    </programmer>

    Qua ví dụ trên ta có thấy những nhược điểm của HTML lại trở thành ưu điểm của ngôn ngữ XML, các thẻ được định nghĩa bởi quy ước của người viết, sử dụng tiếng Việt để đặt tên các thẻ, quan trọng nhất là khả năng mô tả dữ liệu của tài liệu trên, dựa vào XML ta có thể dễ dàng mô tả thông tin của một sinh viên.

    Biểu diễn dữ liệu trong một tài liệu XML

    Tạo một tài liệu XML well-formed

    XML well-formed là gì?

    Tài liệu XML được xem là đúng cú pháp khi thỏa tất cả những điều kiện sau:

    • Chỉ được có duy nhất 1 root element, nó sẽ chứa tất cả các element khác của tài liệu.
    • Mỗi thẻ mở phải có 1 thẻ đóng tương ứng, thẻ mở và thẻ đóng phải có tên giống nhau hoàn toàn, kể cả chữ hoa và chữ thường.
    • Khi lồng các thẻ XML, phải chú ý thứ tự đóng các thẻ, thẻ nào mở sau phải đóng trước.
    • Tên của các thẻ được đặt theo ý người dùng, nhưng phải tuân thủ một số quy tắc (giống với quy tắc đặt tên biến trong lập trình) và không được bắt đầu bằng "xml".
    • Các thuộc tính của thẻ được đặt theo cú pháp: tên_thuộc_tính=‘giá trị’, có thể thay nháy đơn ' thành nháy kép ".

    Các lỗi cú pháp thường gặp trong tài liệu XML

    <staff>
    	<full_name> Hoa Dinh</Full_name>
    	<day_of_birth>Nov, 4 1990</day_of_birth>
    	<xml_department title=leader>Programmer</xml_department>
    	<contact>
    		<address>Bao Loc, Dalat</address>
    		
    		<phone>+84-0123456789
    	</contact>
    		</phone>
    </staff>
    
    <staff>
    	<full_name>Ngoc Tran</full_name>
    	<day_of_birth>Jun, 5 1995</day_of_birth>
    	......
    </staff>
    • Không thể biết đâu là root element, để khắc phục lỗi này, có thể bỏ tất cả vào trong 1 cặp thẻ như <staff_list> </staff_list>, khi đó tài liệu trên sẽ có dạng như sau:
    <staff_list>
    	<staff>
    		......
    	</staff>
    
    	<staff>
    		......
    	</staff>
    </staff_list>
    • title không được để trong 1 cặp nháy đơn hoặc nháy kép <xml_department title=leader>Programmer</xml_department>. Nhưng lỗi này thường rất khó xuất hiện vì hiện nay các trình soạn thảo thông minh đã tự thêm cặp nháy đơn (kép). Để sửa lỗi trên chỉ cần thêm nháy đơn hoặc nháy kép vào sẽ được dòng như sau <xml_department title="leader">Programmer</xml_department>.
    • Ở thẻ (tag) full_name đầu tiên, chữ f ở thẻ mở và thẻ đóng mặc dù chỉ sai lệch có một ít <full_name>Hoa Dinh</Full_name>, 1 viết hoa và 1 không, tuy nhiên trong tài liệu XML không chấp nhận lỗi này, tên thẻ mở và đóng phải giống nhau tuyệt đối. Phải sửa lại như sau <full_name>Hoa Dinh</full_name>.
    • Lỗi thứ tư xuất hiện trong tài liệu XML này là các thẻ chồng chéo lên nhau, đóng mở không theo 1 thứ tự (Xem xét từ dòng số 5 cho đến dòng số 10), việc đóng mở tag có dạng như sau <contact><phone></contact></phone>, nguyên tắc là thẻ phone đã mở trong thẻ contact thì phải được đóng trong thẻ contact. Sau khi sửa lại sẽ được tài liệu như sau <contact><phone></phone></contact>.
    <contact>
    	<address>Bao Loc, Dalat</address>
    			
    	<phone>+84-0123456789</phone>
    </contact>
    

    Các trình soạn thảo thông minh thường tự động thêm thẻ đóng để tránh lỗi này, nhưng trong 1 số trường hợp tự đóng thẻ, thứ tự các thẻ đóng để sai có thể làm hư cấu trúc của 1 tài liệu XML.

    Chỉ thị xử lý và chú thích trong tài liệu XML

    Thường có 1 dòng khai báo như sau trên đầu mỗi tài liệu XML.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    Phần này được gọi là chỉ thị xử lý (Processing Instructions). Chỉ thị xử lý luôn được đặt trong cặp thẻ <? ?>, nó cung cấp cho ứng dụng xử lý tài liệu XML 1 số thông tin cơ bản như:

    • Phiên bản đặc tả XML.
    • Loại mã hóa được sử dụng trong tài liệu.
    • Thuộc tính standalone cho biết tài liệu XML này có phụ thuộc vào 1 tài liệu nào khác nữa không hay nó vẫn mang đủ ý nghĩa khi đứng 1 mình.

    Do các thẻ XML được định nghĩa theo những quy ước của người dùng, đôi lúc người tạo ra tài liệu XML cần phải chú thích lại để khi đọc lại có thể hiểu được ý nghĩa của thẻ đó. Chú thích trong tài liệu XML được đặt trong cặp thẻ <!--  -->.

    Entity

    Do các ký tự đặc biệt như "", <>, '', đã được dùng để đặc tả các thẻ và thuộc tính, để tránh nhầm lẫn tài liệu XML không cho phép người dùng sử dụng trực tiếp các ký tự này mà sử dụng các đối tượng khác để thay thế.

    ENTITY OUTPUT
    &lt;
    &gt;
    &apos; '
    &quot; "
    &amp; &

    Kiểu dữ liệu

    Dữ liệu trong tài liệu XML được nhận dạng dưới dạng chuỗi ký tự và được chia làm 2 loại: PCDATA và CDATA.        

    • PCDATA (Parsed Character Data) dữ liệu này sẽ được đọc và phân tích bởi các ứng dụng phân tích XML, PCDATA không được chứa các ký tự đặc biệt để tránh việc các ứng dụng phân tích nhầm lẫn với các thẻ. Do đó trong dữ liệu PCDATA phải sử dụng các entity thay thế ký tự đặc biệt.
    • CDATA (Character Data) dữ liệu này chỉ bao gồm nội dung, các ứng dụng phân tích XML sẽ không phân tích và giữ nguyên định dạng cho các dữ liệu kiểu này. Dữ liệu CDATA được đặt trong thẻ <![CDATA[…….]]>. Điều này rất quan trọng, khi nội dung trong tài liệu là 1 đoạn HTML hoặc là 1 tài liệu HTML khác sẽ thấy rất rõ ứng dụng của kiểu dữ liệu này trong giải quyết RSS.
    0
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích.. Tìm hiểu thêm.

    Đề xuất

    Tìm Hiểu và Tạo Tài Liệu XML Đầu Tiên
    Giới thiệu cấu trúc cơ bản của các tài liệu XML và các quy tắc cơ bản để ...
    21/09/2014
    HTML - Phần 1: Cơ Bản Về HTML
    Các kiến thức cơ bản về HTML trong thiết kế web và tạo trang web đầu ...

    Khám phá

    Định Dạng Ảnh Bitmap - Giới Thiệu và Các Thao Tác Cơ Bản
    Trong đời thường, bạn sẽ gặp các file ảnh có định dạng .PNG, .JPG, .TGA, ...
    Nhập Xuất Cơ Bản trong C
    Tìm hiểu về thao tác nhập xuất cơ bản trong C.
    28/07/2015
    Cơ Bản về Mã Hóa
    Mạng máy tính là một môi trường mở, những thông tin gửi lên hoặc nhận về ...
    Một Số Kiến Thức Điện Tử Cơ Bản
    Tìm hiểu 1 số kiến thức điện cơ bản trước khi bắt đầu tìm hiểu sâu về ...
    Điện Trở Được Hình Thành Như Thế Nào?
    Bài viết giải thích về điện trở thực chất là gì và điều gì tạo ra điện ...
    Cơ Bản Vẽ Trên <canvas> 2D Với HTML5
    Giới thiệu HTML5 canvas, tạo đối tượng vẽ, các đường nét, hình chữ nhật, ...
    Các Phép Đếm Cơ Bản
    Giới thiệu về các quy tắc đếm cơ bản: quy tắc cộng, quy tắc nhân, tổ ...
    26/09/2014
    Ba Định Luật Cơ Bản của Dòng Điện
    Trong các mạch điện luôn tồn tại các định luật cơ bản của dòng và thế ở ...
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020