ข้ามไปเนื้อหา

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

จากวิกิพีเดีย สารานุกรมเสรี
XML (standard)
Extensible Markup Language
คำย่อXML
สถานะPublished, W3C recommendation
ปีที่เริ่ม1996; 28 ปีที่แล้ว (1996)
เผยแพร่ครั้งแรก10 กุมภาพันธ์ 1998; 26 ปีก่อน (1998-02-10)
รุ่นล่าสุด1.1 (2nd ed.)
29 กันยายน 2006; 17 ปีก่อน (2006-09-29)
องค์กรWorld Wide Web Consortium (W3C)
บรรณาธิการTim Bray, Jean Paoli, Michael Sperberg-McQueen, Eve Maler, François Yergeau, John W. Cowan
มาตรฐานพื้นฐานSGML
มาตรฐานที่เกี่ยวข้องW3C XML Schema
ขอบเขตSerialization
เว็บไซต์www.w3.org/xml

เอกซ์เอ็มแอล (อังกฤษ: 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 version="1.0" ?> เอกสาร xml 1 เอกสาร จะต้องมีแท็กรูทเพียงแท็กเดียว หมายความว่า แท็กและข้อมูลต่าง ๆ จะต้องอยู่ภายในแท็กแรกสุดเพียงแท็กเดียว การเปิดและปิดแท็กจะต้องไม่มีการคร่อมกัน เช่น <b>ตัวหนา<i>และ</b>เอียง</i> จะไม่ Well-formed

เนื่องจากเอกสาร xml สามารถกำหนดชื่อแท็ก และชื่อแอตทิบิวต์ได้ตามความต้องการของผู้สร้างเอกสาร ทำให้ในการเน้นข้อมูลใดข้อมูลหนึ่ง สามารถมีเอกสาร xml หลายรูปแบบ (ผู้เขียนอาจใช้ชื่อแท็กต่างกัน ทั้งที่สื่อความหมายไปที่สิ่งเดียวกัน) หากว่าเอกสาร xml นั้น ถูกนำไปใช้ติดต่อกับระบบอื่น ๆ อาจทำให้สื่อความหมายไม่ตรงกัน ดังนั้นจึงต้องมีการกำหนดรูปแบบที่เป็นมาตรฐานขึ้น (ตกลงรูปแบบระหว่างกัน) โดย DTD และ Schema จะเป็นตัวกำหนดว่าเอกสาร xml นั้น จะต้องมีแท็กอะไรบ้าง ภายในแท็กนั้นจะมีแท็ก แอตทิบิวต์ หรือข้อมูลอะไรได้บ้าง โดย DTD จะต่างกับ Schema ตรงที่ Schema เป็นเอกสาร xml ด้วย

เอกสาร XML

[แก้]

เอกสาร XML จะเป็นอะไรก็ได้อาจเป็น ฟิสิคอลไฟล์ใน Hard Disk หรือเป็นแค่สายอักขระในหน่วยความจำหลักในเครื่องก็ได้ เพราะโดยเนื้อแท้แล้วเอกสาร XML มีความประสงค์ที่จะให้เอาไว้ติดต่อสื่อสารกัน

XML เป็นภาษาที่ไม่มีรูปแบบโครงสร้างที่กำหนดไว้ล่วงหน้าใด ๆ เลย นี้เป็นข้อดีของมันเพราะมันทำให้ โปรแกรมประยุกต์ใด ๆ ก็ได้สามารถใช้งานมันได้โดยข้อกำหนดที่ได้ตกลงกันไว้ล่วงหน้า ถึงแม้ว่า XML ไม่มีข้อกำหนดล่วงหน้าถึงโครงสร้างข้อมูลต่าง ๆ แต่ก็มีรูปแบบที่เป็นที่ตกลงกัน ดังนี้

Element

[แก้]

ประกอบไปด้วย แท็กเปิด ข้อมูล[1] และแท็กปิด ยกตัวอย่างเช่น

<student> Example_sudent </student>

ในที่นี้ <student> คือแท็กเปิด Example_sudent คือข้อมูล และ </student> คือแท็กปิด โดยแท็กปิดนั้นจะต้องมีชื่อเหมือนแท็กเปิดของมันแต่ตามหลังจากเครื่องหมาย '/' จะสังเกตได้ว่า XML นั้นคล้ายกับ HTML เป็นอย่างมากสำหรับข้อแตกต่างที่ชัดเจนคือ HTML ได้กำหนดแท็กไว้ล่วงหน้าแล้วแต่ XML ไม่ว่าใคร ๆ ก็สามารถกำหนดแท็กของเราเองได้ XML นั้นไม่ใช่ภาษาโดยสมบูรณ์มันเป็นมาตรฐานข้อมูลมากกว่า โดยตัวโปรแกรมประยุกต์จะเป็นผู้กำหนดรูปแบบของตัวเองขึ้นและจะสามารถใช้ได้กับโครงสร้างข้อมูลที่ถูกอนุญาต (เพราะว่ามีรูปแบบของข้อมูลที่เข้ากันได้) XML นั้นเป็นภาษาที่ case sensitive ดังนั้นการที่เราเขียนว่า <student> กับ <Student> จึงถือว่าเป็นคนละแท็กกัน นอกจากนี้แล้ว element ใน XML สามารถบรรจุอยู่ใน element อื่น ๆ ได้ยกตัวอย่างเช่น

<student>
  <name>example name</name>
  <id>123456789</id>
</student>

จะเห็นว่า element <name> บรรจุอยู่ภายใน element <student> element ไม่สามารถคร่อมกันได้ เช่น

<student>
  <name>example name
  <id></name>123456789</id>
</student>

แบบนี้ถือว่าไม่ถูกต้อง

แต่สามารถมี element ว่างแบบนี้ได้

<book></book>

นอกจากนี้ยังมีข้อยกเว้นสำหรับแท็กว่างจะเป็นแท็กที่ไม่ต้องมีแท็กปิดได้โดยสามารถเขียน

<book />

ซึ่งมีความหมายเหมือนกับด้านบน

Attribute

[แก้]

นอกจากแท็กแล้วยังมี สิ่งที่เรียกว่า attribute ด้วยโดยที่มีรูปแบบดังนี้

<student name="example_name"></student>
<student name='example_name'></student>

จะเห็นว่าทั้งสองแบบมีความเหมือนกันแตกต่างกันเล็กน้อยคือใช้เครื่องหมาย " กับ ' ซึ่งสามารถใช้ได้ทั้งคู่

การประกาศ XML

[แก้]

ส่วนต่างๆของ XML คือ node

node ที่ปรากฏบน XML ทุกฉบับคือ การประกาศ Declaration ซึ่งมีลักษณะเหมือนแท็กแต่มีเครื่องหมาย ? อยู่ด้วย โดยในเอกสาร XML จะต้องมี node นี้ทุกฉบับ

<?xml version="1.0" ?>

โครงสร้างของเอกสาร XML

[แก้]

ถูกกำหนดขึ้นโดยลำดับชั้น โดยเอกสารใด ๆ นั้นต้องมี root element หนึ่งตัวเสมอ เช่นในที่นี้คือ <student>

<?xml version="1.0" ?>
<student>
  <name>example name</name>
  <id>123456789</id>
</student>

การตรวจสอบความถูกต้องของ 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

อ้างอิง

[แก้]

แหล่งข้อมูลอื่น

[แก้]