HTML (HyperText Markup Language)
HTML เป็นภาษาสำหรับ อธิบายโครงสร้างของหน้าเว็บ ประกอบด้วย HTML Elements ที่ประกอบด้วยแท็ก (Tags) และเนื้อหา
- ภาษา Hypertext - สร้างลิงก์เชื่อมเอกสารได้
- เวอร์ชันปัจจุบัน: HTML5
- เป็น Static (แสดงข้อมูลคงที่)
- ยอมรับข้อผิดพลาดเล็กน้อย (Forgiving)
- แท็กปิดไม่จำเป็นเสมอไป (บางแท็ก)
ตัวอย่าง HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML Example</title>
</head>
<body>
<h1 style="text-align: center; color: #db133a;">HTML</h1>
<h3 style="text-align: center;">ฉันคือเอกสาร HTML</h3>
</body>
</html>
XML (eXtensible Markup Language)
XML เป็นภาษาสำหรับ จัดเก็บและส่งข้อมูล (Data Transport/Storage) ไม่ใช่โครงสร้างหน้าเว็บ
- เป็น Dynamic (ข้อมูลเปลี่ยนแปลงได้)
- รายงานข้อผิดพลาดทั้งหมด (Strict)
- ต้องมีแท็กปิดเสมอ
- รูปแบบข้อมูลข้อความ (Textual) รองรับ Unicode สำหรับภาษามนุษย์ทุกภาษา
- เวอร์ชันปัจจุบัน: XML 1.1
ตัวอย่าง XML
<?xml version="1.0" encoding="UTF-8"?>
<fullname>
<firstname>John</firstname>
<lastname>Miller</lastname>
</fullname>
ตารางเปรียบเทียบ HTML และ XML
| คุณสมบัติ | HTML | XML |
|---|---|---|
| ความหมายเต็ม | HyperText Markup Language | eXtensible Markup Language |
| วัตถุประสงค์ | โครงสร้างและแสดงหน้าเว็บ | จัดเก็บและส่งข้อมูล |
| ลักษณะ | Static (แสดงผล) | Dynamic (ข้อมูล) |
| ประเภทภาษา | Presentation Language | ไม่ใช่ Presentation Language |
| แท็กปิด | ไม่จำเป็นเสมอไป | บังคับ |
| แท็ก | กำหนดไว้ล่วงหน้า (<p>, <div>, <h1> ฯลฯ) | กำหนดเองได้ (Custom Tags) |
| Whitespace | ไม่รักษา (Collapse) | รักษา (Preserve) |
| Case Sensitivity | Case Insensitive | Case Sensitive |
| Attribute Quotes | ไม่บังคับ | บังคับ |
| DOCTYPE | จำเป็น (HTML5: <!DOCTYPE html>) | XML Declaration (<?xml ...?>) |
เมื่อไหร่ควรใช้ใด?
| สถานการณ์ | แนะนำ |
|---|---|
| สร้างเว็บไซต์/เว็บแอป | HTML |
| แลกเปลี่ยนข้อมูลระหว่างระบบ | XML (หรือ JSON - ยอดนิยมกว่า) |
| ไฟล์ Config / Settings | XML / JSON / YAML |
| Sitemap / RSS Feed | XML |
| SVG Graphics | XML-based |
ความสัมพันธ์กัน
- XHTML = HTML ที่ปฏิบัติตามกฎ XML (Strict HTML)
- HTML5 รองรับการฝัง SVG (XML-based) และ MathML ได้โดยตรง
- Parser ของ HTML5 ยอมรับโครงสร้างที่ไม่สมบูรณ์ ส่วน XML Parser ต้องเป็น Well-formed