เครื่องมือ
TH

XML คืออะไร?

XML (Extensible Markup Language) คือรูปแบบข้อความสำหรับจัดเก็บและแลกเปลี่ยนข้อมูลที่มีโครงสร้าง บทความนี้อธิบายว่า XML หมายถึงอะไร ไวยากรณ์ทำงานอย่างไร ไฟล์ .xml คืออะไร และคุณพบ XML ที่ไหนบ้างในชีวิตประจำวัน – ตั้งแต่ sitemap และภาพ SVG ไปจนถึงเอกสาร Office และใบแจ้งหนี้อิเล็กทรอนิกส์

XML หมายถึงอะไร

XML ย่อมาจาก Extensible Markup Language ได้รับการรับรองเป็น W3C Recommendation ในปี 1998 และใช้อธิบายข้อมูลด้วยแท็กที่คุณตั้งชื่อเอง – นี่คือความหมายของคำว่า “extensible” (ขยายได้) XML ไม่มีแท็กที่กำหนดไว้ล่วงหน้าเหมือน HTML: แคตตาล็อกสินค้าอาจใช้ <product> และ <price> ส่วนใบแจ้งหนี้อาจใช้ <item> และ <total>

เอกสาร XML ขนาดเล็กมีหน้าตาแบบนี้: <book id="1"><title>XML Basics</title><year>2026</year></book> XML เป็นข้อความธรรมดา (plain text) คนจึงอ่านเข้าใจได้และทุกภาษาโปรแกรมสามารถประมวลผลได้ XML ทำหน้าที่เพียงจัดเก็บและจัดโครงสร้างข้อมูล – ตัวมันเองไม่ได้ทำอะไร โปรแกรมต่าง ๆ เป็นผู้กำหนดว่าข้อมูลหมายถึงอะไรและจะแสดงผลอย่างไร

กฎไวยากรณ์ของ XML

เอกสาร XML ทุกฉบับต้องทำตามกฎที่เข้มงวดไม่กี่ข้อ เอกสารที่ทำตามกฎเหล่านี้เรียกว่า well-formed:

คอมเมนต์เขียนในรูปแบบ <!-- … --> เครื่องมือตรวจสอบ XML จะเช็คกฎเหล่านี้ทั้งหมดภายในวินาทีเดียว และชี้ไปยังบรรทัดที่มีข้อผิดพลาด

อิลิเมนต์และแอตทริบิวต์

อิลิเมนต์ (element) ประกอบด้วยแท็กเปิด เนื้อหา และแท็กปิด: <price>19.90</price> อิลิเมนต์สามารถมีข้อความ อิลิเมนต์อื่น หรือทั้งสองอย่างอยู่ภายใน ส่วน แอตทริบิวต์ (attribute) คือคู่ชื่อ–ค่าที่อยู่ภายในแท็กเปิด: <price currency="EUR">

อิลิเมนต์แอตทริบิวต์
ตัวอย่าง<color>red</color>color="red"
ซ้ำได้ได้ไม่ได้ ใช้ได้ครั้งเดียวต่ออิลิเมนต์
มีอิลิเมนต์ลูกได้ได้ไม่ได้ มีได้เฉพาะข้อความ
ลำดับมีความหมายใช่ไม่ใช่

แนวทางที่นิยมใช้: ใช้อิลิเมนต์สำหรับตัวข้อมูลและทุกอย่างที่อาจซ้ำหรือมีโครงสร้าง และใช้แอตทริบิวต์สำหรับ metadata เช่น ID หน่วย หรือประเภท

XML แบบ well-formed กับ valid ต่างกันอย่างไร

XML ที่ well-formed คือ XML ที่ถูกต้องตามกฎไวยากรณ์ ซึ่ง parser จะปฏิเสธเอกสารที่ไม่เป็นไปตามนี้ ส่วน XML ที่ valid คือ XML ที่ well-formed และยังสอดคล้องกับ schema ที่กำหนดว่าอนุญาตอิลิเมนต์และแอตทริบิวต์ใดบ้าง เรียงลำดับอย่างไร และใช้ชนิดข้อมูลแบบใด

Namespace ใน XML

เนื่องจากใคร ๆ ก็ตั้งชื่อแท็กเองได้ คำศัพท์สองชุดจึงอาจใช้ชื่อเดียวกัน – เช่น <title> ของหนังสือ กับ <title> ของบุคคล Namespace ช่วยแยกชื่อเหล่านี้ออกจากกันโดยผูกชื่อเข้ากับ URI เช่น xmlns:cfdi="http://www.sat.gob.mx/cfd/4" ประกาศ prefix cfdi ดังนั้น <cfdi:Comprobante> จึงเป็นส่วนหนึ่งของคำศัพท์ CFDI 4.0 ของเม็กซิโก ส่วน default namespace หรือ xmlns="…" ที่ไม่มี prefix จะมีผลกับทุกอิลิเมนต์ที่ไม่มี prefix ซึ่งอยู่ภายใน URI เป็นเพียงตัวระบุเท่านั้น ไม่มีการดาวน์โหลดสิ่งใดจาก URI นั้น

XML, JSON และ HTML ต่างกันอย่างไร

XMLJSONHTML
วัตถุประสงค์จัดเก็บและแลกเปลี่ยนข้อมูลที่มีโครงสร้างและเอกสารแลกเปลี่ยนข้อมูล โดยเฉพาะใน Web APIแสดงผลหน้าเว็บ
ชื่อแท็กหรือคีย์กำหนดเองกำหนดเองกำหนดตายตัวโดยมาตรฐาน HTML
ชนิดข้อมูลข้อความ เว้นแต่ schema จะกำหนดชนิดข้อมูลไว้String, number, boolean, null, array, objectข้อความ
แอตทริบิวต์มีไม่มีมี
คอมเมนต์มีไม่มีมี
SchemaDTD, XSDJSON Schema–
ข้อผิดพลาดทางไวยากรณ์parser ปฏิเสธparser ปฏิเสธเบราว์เซอร์ซ่อมแซมให้

JSON สั้นกว่าและแมปกับอ็อบเจกต์ใน JavaScript ได้โดยตรง Web API ส่วนใหญ่จึงหันมาใช้ JSON แต่ XML ยังคงแข็งแกร่งในงานที่เอกสารมีข้อความและ markup ปนกัน ต้องใช้ namespace หรือต้องตรวจสอบกับ schema อย่างเข้มงวด – นี่คือเหตุผลที่หน่วยงานภาษี สำนักพิมพ์ และรูปแบบไฟล์สำนักงานยังคงใช้ XML

ไฟล์ .xml คืออะไร และเปิดไฟล์ XML ได้อย่างไร?

ไฟล์ .xml คือไฟล์ข้อความธรรมดา (plain text) ที่บรรจุเอกสาร XML ซึ่งมักเข้ารหัสแบบ UTF-8 และเพราะเป็นข้อความ จึงเปิดได้ด้วยโปรแกรมแก้ไขข้อความทั่วไป – Notepad บน Windows, TextEdit บน Mac หรือโปรแกรมแก้ไขโค้ดอย่าง VS Code ส่วน Chrome และ Firefox จะแสดงไฟล์ XML เป็นโครงสร้างต้นไม้เมื่อคุณลากไฟล์ไปวางในหน้าต่างเบราว์เซอร์ และ Excel สามารถนำเข้าข้อมูล XML ลงในสเปรดชีตได้

ไฟล์จำนวนมากใช้ XML โดยไม่มีนามสกุล .xml: ภาพ .svg, ฟีด .rss, schema .xsd, สไตล์ชีต .xsl, ไฟล์ .config ใน .NET และไฟล์ .plist บน macOS ซึ่งสามารถจัดเก็บเป็น XML ได้ ส่วนไฟล์ Word, Excel และ PowerPoint (.docx, .xlsx, .pptx) ก็คือไฟล์ ZIP ที่บรรจุไฟล์ XML ไว้มากมาย

XML ใช้ทำอะไรบ้าง

คำถามที่พบบ่อย

XML ย่อมาจากอะไร?

Extensible Markup Language โดย “Extensible” (ขยายได้) หมายความว่าคุณกำหนดแท็กเองได้ และ “Markup” หมายความว่าโครงสร้างถูกเขียนเป็นแท็กที่ครอบข้อมูลไว้

XML เป็นภาษาโปรแกรมหรือไม่?

ไม่ใช่ XML เป็นรูปแบบข้อมูล: ใช้อธิบายและจัดโครงสร้างข้อมูล แต่ไม่สามารถคำนวณอะไรได้ ส่วนเทคโนโลยีที่เกี่ยวข้องอย่าง XPath และ XSLT ใช้สำหรับคิวรีและแปลง XML

ปัจจุบันยังใช้ XML อยู่หรือไม่?

ยังใช้อยู่ แม้ JSON จะเข้ามาแทนที่ XML ใน Web API จำนวนมาก แต่ XML ยังคงเป็นมาตรฐานของ sitemap, ฟีด RSS, SVG, เอกสารสำนักงาน, เลย์เอาต์ Android, บริการ SOAP และใบแจ้งหนี้อิเล็กทรอนิกส์ในหลายประเทศ

อัปเดตล่าสุด: