เอกซ์เอ็มแอล

เอกซ์เอ็มแอล (XML: Extensible Markup Language ภาษามาร์กอัปขยายได้) เป็นภาษามาร์กอัปสำหรับการใช้งานทั่วไป พัฒนาโดยW3C โดยมีจุดประสงค์เพื่อเป็น สิ่งที่เอาไว้ติดต่อกันในระบบที่มีความแตกต่างกัน (เช่นใช้คอมพิวเตอร์มี่มีระบบปฏิบัติการคนละตัว หรืออาจจะเป็นคนละโปรแกรมประยุกต์ที่มีความต้องการสื่อสารข้อมูลถึงกัน) นอกจากนี้ยังเพื่อเป็นพื้นฐานในการสร้างภาษามาร์กอัปเฉพาะทางอีกขั้นหนึ่ง XML พัฒนามาจาก SGML โดยดัดแปลงให้มีความซับซ้อนลดน้อยลง XML ใช้ในแลกเปลี่ยนข้อมูลระหว่างเครื่องคอมพิวเตอร์ที่แตกต่างกัน และเน้นการแลกเปลี่ยนข้อมูลผ่านอินเทอร์เน็ต
XML ยังเป็นภาษาพื้นฐานให้กับภาษาอื่นๆ อีกด้วย (ยกตัวอย่างเช่น Geography Markup Language (GML) , RDF/XML, RSS, MathML, Physical Markup Language (PML) , XHTML, SVG, MusicXML และ cXML) ซึ่งอนุญาตให้โปรแกรมแก้ไขและทำงานกับเอกสารโดยไม่จำเป็นต้องมีความรู้ในภาษานั้นมาก่อน
== ภาพรวม XML ==
Xml เป็นภาษาที่ใช้เน้น (มาร์กอัป) ส่วนที่เป็นข้อมูล โดยสามารถกำหนดชื่อแท็ก (Element) และชื่อแอตทิบิวต์ ได้ตามความต้องการของผู้สร้างเอกสาร xml โดยเอกสารนั้นจะต้องมีความเป็น Well-formed ส่วน DTD และ Schema จะมีหรือไม่มีก็ได้ ขึ้นอยู่กับว่ามีผู้ใช้เอกสารนั้นมากน้อยแค่ไหน เอกสาร xml จึงเป็นแค่เท็กซ์ไฟล์ชนิดหนึ่ง ที่มีแท็กเปิดและเท็กปิดครอบข้อมูลไว้ตรงกลางเท่านั้น ทำให้เอกสาร xml ถูกใช้ในการติดต่อกับระบบที่ต่างกัน เนื่องจากความง่ายในการสร้างเอกสาร การนำเอกสาร xml ไปใช้งาน จะสนใจแต่ข้อมูลที่ถูกเน้นด้วยแท็กมากกว่า
Well-formed เป็นไวยากรณ์พื้นฐานของเอกสาร xml อย่างเช่น เอกสาร xml ต้องเริ่มต้นด้วย  เอกสาร xml 1 เอกสาร จะต้องมีแท็กรูทเพียงแท็กเดียว หมายความว่า แท็กและข้อมูลต่างๆ จะต้องอยู่ภายในแท็กแรกสุดเพียงแท็กเดียว การเปิดและปิดแท็กจะต้องไม่มีการคร่อมกัน เช่น ตัวหนาและเอียง จะไม่ Well-formed
เนื่องจากเอกสาร xml สามารถกำหนดชื่อแท็ก และชื่อแอตทิบิวต์ได้ตามความต้องการของผู้สร้างเอกสาร ทำให้ในการเน้นข้อมูลใดข้อมูลหนึ่ง สามารถมีเอกสาร xml หลายรูปแบบ (ผู้เขียนอาจใช้ชื่อแท็กต่างกัน ทั้งที่สื่อความหมายไปที่สิ่งเดียวกัน) หากว่าเอกสาร xml นั้น ถูกนำไปใช้ติดต่อกับระบบอื่นๆ อาจทำให้สื่อความหมายไม่ตรงกัน ดังนั้นจึงต้องมีการกำหนดรูปแบบที่เป็นมาตรฐานขึ้น (ตกลงรูปแบบระหว่างกัน) โดย DTD และ Schema จะเป็นตัวกำหนดว่าเอกสาร xml นั้น จะต้องมีแท็กอะไรบ้าง ภายในแท็กนั้นจะมีแท็ก แอตทิบิวต์ หรือข้อมูลอะไรได้บ้าง โดย DTD จะต่างกับ Schema ตรงที่ Schema เป็นเอกสาร xml ด้วย
== เอกสาร XML ==
เอกสาร XML จะเป็นอะไรก็ได้อาจเป็น ฟิสิคอลไฟล์ใน Hard Disk ของคุณหรือเป็นแค่สายอักขระในหน่วยความจำหลักในเครื่องของคุณก็ได้
เพราะโดยเนื้อแท้แล้วเอกสาร XML มีความประสงค์ที่จะให้เอาไว้ติดต่อสื่อสารกัน
XML เป็นภาษาที่ไม่มีรูปแบบโครงสร้างที่กำหนดไว้ล่วงหน้าใดๆเลย นี้เป็นข้อดีของมันเพราะมันทำให้ โปรแกรมประยุกต์ใดๆก็ได้สามารถใช้งานมันได้โดยข้อกำหนดที่ได้ตกลงกันไว้ล่วงหน้า
ถึงแม้ว่า XML ไม่มีข้อกำหนดล่วงหน้าถึงโครงสร้างข้อมูลต่างๆแต่ก็มีรูปแบบที่เป็นที่ตกลงกัน ดังนี้
== Element ==
ประกอบไปด้วย แท็กเปิด ข้อมูล และแท็กปิด ยกตัวอย่างเช่น
 Example_sudent 
ในที่นี้  คือแท็กเปิด  Example_sudent คือข้อมูล และ  คือแท็กปิด โดยแท็กปิดนั้นจะต้องมีชื่อเหมือนแท็กเปิดของมันแต่ตามหลังจากเครื่องหมาย '/'
จะสังเกตได้ว่า XML นั้นคล้ายกับ HTML เป็นอย่างมากสำหรับข้อแตกต่างที่ชัดเจนคือ HTML ได้กำหนดแท็กไว้ล่วงหน้าแล้วแต่ XML ไม่ว่าใครๆก็สามารถกำหนดแท็กของเราเองได้
XML นั้นไม่ใช่ภาษาโดยสมบูรณ์มันเป็นมาตรฐานข้อมูลมากกว่า โดยตัวโปรแกรมประยุกต์จะเป็นผู้กำหนดรูปแบบของตัวเองขึ้นและจะสามารถใช้ได้กับโครงสร้างข้อมูลที่ถูกอนุญาต (เพราะว่ามีรูปแบบของข้อมูลที่เข้ากันได้)
XML นั้นเป็นภาษาที่ case sensitive ดังนั้นการที่เราเขียนว่า  กับ  จึงถือว่าเป็นคนละแท็กกัน
นอกจากนี้แล้ว element ใน XML สามารถบรรจุอยู่ใน  element อื่นๆได้ยกตัวอย่างเช่น
example name
123456789
จะเห็นว่า element  บรรจุอยู่ภายใน element 
element ไม่สามารถคร่อมกันได้ เช่น
example name
123456789
แบบนี้ถือว่าไม่ถูกต้อง
แต่สามารถมี element ว่างแบบนี้ได้
นอกจากนี้ยังมีข้อยกเว้นสำหรับแท็กว่างจะเป็นแท็กที่ไม่ต้องมีแท็กปิดได้โดยสามารถเขียน
ซึ่งมีความหมายเหมือนกับด้านบน
== Attribute ==
นอกจากแท็กแล้วยังมี สิ่งที่เรียกว่า attribute ด้วยโดยที่มีรูปแบบดังนี้
จะเห็นว่าทั้งสองแบบมีความเหมือนกันแตกต่างกันเล็กน้อยคือใช้เครื่องหมาย " กับ ' ซึ่งสามารถใช้ได้ทั้งคู่
== การประกาศ XML ==
ส่วนต่างๆของ XML คือ node
node ที่ปรากฏบน XML ทุกฉบับคือ การประกาศ Declaration ซึ่งมีลักษณะเหมือนแท็กแต่มีเครื่องหมาย ? อยู่ด้วย
โดยในเอกสาร XML จะต้องมี node นี้ทุกฉบับ
== โครงสร้างของเอกสาร XML ==
ถูกกำหนดขึ้นโดยลำดับชั้น โดยเอกสารใดๆนั้นต้องมี root element หนึ่งตัวเสมอ เช่นในที่นี้คือ 
example name
123456789
== การตรวจสอบความถูกต้องของ XML ==
ความถูกต้องของ XML แบ่งเป็น 2 ระดับ
Well-formed เอกสารที่ well-formed คือใช้ syntax ของ XML ถูกต้องตามมาตรฐานทุกอย่าง มีการเปิด-ปิดแท็กที่สมบูรณ์ แต่ไม่จำเป็นต้องจัดรูปแบบให้สวยงาม เอกสารที่ไม่ well-formed ถือว่าไม่เป็น XML
Valid นอกจาก well-formed แล้ว เอกสารที่ valid ยังต้องใช้แท็ก XML ที่กำหนดเฉพาะใน schema ที่ตกลงกันไว้เท่านั้น ปัจจุบันมี schema ที่นิยม 3 ตัว คือ Document Type Definition (DTD) , XML Schema (W3C) (WXS) และ RELAX NG
== อ้างอิง ==
== แหล่งข้อมูลอื่น ==
เว็บไซต์อย่างเป็นทางการของ XML ที่ W3C
XeML.net 
การจัดรูปแบบ XML
วิธีการสร้าง XML Sitemap
 
ภาษามาร์กอัป
มาตรฐานเวิลด์ไวด์เว็บคอนซอร์เทียม
รูปแบบไฟล์คอมพิวเตอร์
ภาษาสำหรับแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์