XML คืออะไร (ตอนที่ 5)
จากตอนก่อนๆ เราจะเห็นได้ว่า XML เป็นเพียงข้อมูล ส่วน HTML นั้นคือการแสดงข้อมูล ดังนั้นเมื่อได้รับข้อมูล XML มาเราจึงไม่สามารถแสดงผลมันทันทีได้ เราต้องมีกระบวนการแยกเอาส่วนต่างๆของ XML ออกมาเพื่อจัดการแสดงผลตามส่วนต่างๆนั้นเช่น เอกสาร XML
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
เมื่อจัดการแสดงผลแล้วอาจเป็นรูปนี้
MESSAGE
To: Tove
From: Jani
Don't forget me this weekend!
โดยกระบวนการแสดงผล เกิดจากการ parse เอาข้อมูลของ XML ออกมาแล้วค่อยนำข้อมูลมาจัดการแสดงผล โดยการแทรกข้อความ tag หรือ HTML ที่ต้องการให้สวยงามซึ่งอาจมีรูปแบบแตกต่างจากนี้ได้ตามความต้องการ
จะเห็นได้ว่า เอกสาร XML เพียงเอกสารเดียวอาจทำให้เกิดเอกสารต่างๆกันได้หลายรูปแบบ (เพื่อตอกย้ำว่า XML เป็นเพียงข้อมูล) ขึ้นอยู่กับกระบวนการจัดการแสดงผล
กระบวนการ parse เอกสาร XML เพื่อจัดการแสดง มีได้หลายวิธี โดยหลักๆที่ใช้ ก็จะมีอยู่ 2 อย่าง ซึ่งมีข้อดีข้อเสียต่างๆกันคือ
1. DOM (Document Object Model) เป็นวิธีที่ประมวลโครงสร้างของเอกสาร XML ให้เป็นโครงสร้างแบบต้นไม้ เพื่อให้แอพพลิเคชั่นสามารถเข้าหาจุดต่าง ๆ ของโครงสร้างต้นไม้ได้ โดยที่ DOM จะโหลดไฟล์ XML ทั้งไฟล์ใน Memory ซึ่งก็มีทั้งข้อดีและข้อเสีย คือ
ข้อดี คือ ครั้งแรกสุดที่มีการเรียกใช้งานจะช้า แต่หลังจากนั้นการเข้าถึงจุดต่าง ๆ ของไฟล์ จะเร็วเพราะถูกเก็บใน memory แล้ว
ข้อเสีย คือ ไม่เหมาะกับ file XML ที่มีขนาดใหญ่ โดยที่ขอบเขตจะถูกจำกัดด้วยหน่วยความจำที่เรียกใช้ในขณะนั้น
2. SAX (Simple API for XML) เป็นการทำงานแบบ event-based API คือจะรายงานข้อมูลตั้งแต่จุดเริ่มต้นและสิ้นสุดของ elements ต่าง ๆ ไปให้แอพพลิเคชั่นโดยไม่ต้องมีการสร้างโครงสร้างแบบต้นไม้ขึ้นมา ซึ่งจะเข้าถึงเอกสาร XML ทำงานได้ง่ายและไม่ซับซ้อน และที่สำคัญผู้ใช้สามารถทำ parsing เอกสารที่มีขนาดใหญ่กว่าปริมาณหน่วยความจำได้
ตัวอย่าง กระบวนการ parse ในแบบ DOM ก็คือในบทที่ 21 ถึง บทที่ 27 ครับ ส่วนกระบวนการ parse ในแบบ SAX นั้นก็ได้แก่บทที่ 32, 34, 35, 37, 38 และ 39