XML คืออะไร (ตอนที่ 2)
1. The Prolog - โครงสร้างส่วนแรกของเอกสาร XML เรียกว่า prolog เป็น optional (มีหรือไม่มีก็ได้) ใน prolog เองมีองค์ประกอบอีก 2 ส่วนคือ XML declaration และ document type declaration
* XML Declaration - เป็นกาารระบุ version ของ XML specification ซึ่งควรประกาศไว้เสมอ และยังอาจประกอบด้วย encoding declaration เพื่อระบุแบบแผนการเข้ารหัสตัวอักษร เช่น UTF-8 เป็น default character encoding scheme เป็นตัวแทนของตัวอักษรส่วนใหญ่ในภาษาอังกฤษรวมถึงภาษาไทยด้วย
* Document Type Declaration - ประกอบด้วย markup code ที่กำหนดกฎการเขียนหรือ Document Type Difinition (DTD)
2. The Document Element - เป็นส่วนของ content จริงๆ document element เป็น single element ที่สามารถประกอบด้วย subelements และ external entities ไม่จำกัดจำนวน กล่าวอีกนัยหนึ่ง Document element ก็คือ root element ของเอกสารนั่นเอง
element จะประกอบด้วย tag เปิด ข้อมูล และ tag ปิด
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<detail>Don't forget me this weekend!</detail>
</note>
2 บรรทัดแรกในตัวอย่างคือส่วนของ prolog เพื่อกำหนดชนิดของเอกสาร เช่น version ของเอกสาร คือเวอร์ชั่น 1.0 และ encoding หรือการกำหนดภาษาของเอกสาร ซี่งกำหนดเป็น UTF-8 และเป็นเอกสารตามข้อกำหนดของ DTD
ส่วนต่อมาตั้งแต่ <note> จนถึง </note> คือ element ซึ่งจะเป็นโหนดราก (root node) ของเอกสาร โดยจะมี โหนดลูก (child node) หรือข้อมูล อีก 4 บรรทัด คือ <to> <from> <heading> และ <detail>
ทุก element ต้องมี tag ปิด เป็นชื่อเดียวกับ tag เปิด เช่น <note>.....</note> แต่หากไม่มีข้อมูลภายใน tag สามารถใช้ / ปิด tag แทนได้ เช่น <note>...</note> และ <note /> มีความหมายเหมือนกัน
element ต่างๆ ต้องถูกบรรจุอยู่ใน element อย่างถูกต้อง ไม่สามารถวางคร่อม element ได้ เช่น
<root>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<detail>Don't forget me this weekend!</root>
</detail>
แบบนี้ถือว่าไม่ถูกต้อง
tag สนใจขนาดของตัวอักษร ด้วย ตัวอักษรพิมพ์ใหญ่-พิมพ์เล็ก คือคนละตัวกัน เช่น <note> คนละตัวกันกับ <Note> ดังนั้น tag เปิด และ ปิด ให้ระมัดระวังเรื่องขนาดตัวอักษรด้วย แนะนำให้ใช้ตัวพิมพ์เล็กกับชื่อ tag
เอกสาร XML ต้องมี โหนดราก (root element) เสมอ
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
<root>...</root> คือ root element
ค่าของ Attributes ของ XML ต้องอยู่ในเครื่องหมาย "(อัญประกาศ) เสมอ
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
</note>
date คือ attribute ของ tag note มี value คือ 12/11/2002
หมายเหตุ ใน XML เหมือนกับ HTML
<!-- This is a comment -->