XML - วิกิพีเดีย

# 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 จะเป็นอะไรก็ได้อาจเป็น ฟิสิคอลไฟล์ใน Hard Disk ของคุณหรือเป็นแค่สายอักขระในหน่วยความจำหลักในเครื่องของคุณก็ได้ เพราะโดยเนื้อแท้แล้วเอกสาร XML มีความประสงค์ที่จะให้เอาไว้ติดต่อสื่อสารกัน

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

## [แก้] Element

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

<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 ไม่สามารถคร่อมกันได้แต่สามารถมี element ว่างได้ เช่น

<student>

<name>example name

<id></name>123456789</id>

</student>

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

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

<book></book>

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

<book / >

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

## [แก้] Attribue

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

<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 เสมอเช่น

<?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 (WXS) และ RELAX NG

## [แก้] แหล่งข้อมูลอื่น

- เว็บไซต์อย่างเป็นทางการของ XML ที่ W3C

ดึงข้อมูลจาก "http://th.wikipedia.org../../../x/m/l/XML_3501.html".

หมวดหมู่: บทความที่มีชื่อเป็นภาษาอังกฤษ | ภาษามาร์กอัป

##### Views

- บทความ
- อภิปราย
- รุ่นปัจจุบัน

##### ค้นหา

##### ภาษาอื่น

- Afrikaans
- العربية
- Български
- Bosanski
- Català
- Česky
- Dansk
- Deutsch
- English
- Esperanto
- Español
- Eesti
- Euskara
- فارسی
- Suomi
- Français
- Galego
- עברית
- Hrvatski
- Magyar
- Interlingua
- Bahasa Indonesia
- Italiano
- 日本語
- 한국어
- Lietuvių
- Latviešu
- Nederlands
- Norsk (nynorsk)
- Norsk (bokmål)
- Polski
- Português
- Română
- Русский
- Simple English
- Slovenčina
- Slovenščina
- Српски / Srpski
- Svenska
- Türkçe
- Українська
- Tiếng Việt
- 中文