week6: XML Schema & XML Parser

What is an XML Schema?
XML Schema อธิบายโครงสร้างของ XML
XML Schema language อาจจะหมายถึง XML Schema Definition (XSD)

ซึ่งจากในสัปดาห์ที่แล้วพวกเราได้ทำการออกแบบรูปแบบของ XML ที่จะมาเก็บข้อมูลของศิลปินกันไปแล้ว แต่เนื่องจากว่าถ้าเกิดมีคนอื่นอย่างจะส่งข้อมูลของศิลปินมาให้เรา  เขาก็จะต้องรู้ xml form ที่เราใช้ก่อนเมื่อส่งข้อมูลมาเราถึงจะสามารถได้ค่าที่ valid และนำไปใช้ประโยชน์ต่อได้
ซึ่งตัวที่อธิบายเกี่ยวกับโครงสร้างหรือ xml form ที่เราจะใช้นั่นก็คือ XSD

รูปของ XML Format ที่ออกแบบไว้ในสัปดาห์ที่แล้ว




รูปของ XSD ที่ได้จากการแปลง XML รูปก่อนหน้านี้

What is XML Parser?
    xml file ภายในจะเก็บ text เอาไว้การที่เราจะ access หรือ modify data ที่อยู่ในไฟล์ได้ เราจะต้องมีตัวช่วยในการ parse ตัว text string ให้กลายเป็น XML DOM object ก่อน เราเรียกว่า Parser เมื่อได้ XML DOM object เราจะสามารถเรียกใช้ properties และ method ในการ access และ modify data ได้

parse เอกสาร XML มีหลายวิธี จะแนะนำ 2 วิธี ซึ่งมีข้อดีข้อเสียต่างๆกัน

  1. DOM (Document Object Model) 
  2. SAX (Simple API for XML)


DOM Parser
DOM (Document Object Model) เป็นวิธีที่ประมวลโครงสร้างของเอกสาร XML ให้เป็นโครงสร้างแบบต้นไม้ เพื่อให้แอพพลิเคชั่นสามารถเข้าหาจุดต่าง ๆ ของโครงสร้างต้นไม้ได้ โดยที่ DOM จะโหลดไฟล์ XML ทั้งไฟล์ใน Memory ซึ่งก็มีทั้งข้อดีและข้อเสีย คือ
     ข้อดี คือ ครั้งแรกสุดที่มีการเรียกใช้งานจะช้า แต่หลังจากนั้นการเข้าถึงจุดต่าง ๆ ของไฟล์ จะเร็วเพราะถูกเก็บใน memory แล้ว
     ข้อเสีย คือ ไม่เหมาะกับ file XML ที่มีขนาดใหญ่ โดยที่ขอบเขตจะถูกจำกัดด้วยหน่วยความจำที่เรียกใช้ในขณะนั้น
SAX Parser
    SAX (Simple API for XML) เป็นการทำงานแบบ event-based API คือจะรายงานข้อมูลตั้งแต่จุดเริ่มต้นและสิ้นสุดของ elements ต่าง ๆ ไปให้แอพพลิเคชั่นโดยไม่ต้องมีการสร้างโครงสร้างแบบต้นไม้ขึ้นมา ซึ่งจะเข้าถึงเอกสาร XML ทำงานได้ง่ายและไม่ซับซ้อน และที่สำคัญผู้ใช้สามารถทำ parsing เอกสารที่มีขนาดใหญ่กว่าปริมาณหน่วยความจำได้
     ข้อดี คือ ทำงานเร็ว ต้องการความจำน้อย และสามารถอ่านไฟล์ XML ขนาดใหญ่ได้
     ข้อเสีย คือ ไม่มี random access เพราะ เป็นกระบวนการแบบ forward-only manner ถ้าต้องการ เก็บ track ของ data ที่อ่านไปแล้วหรือเปลี่ยนลำดับของ item จะต้องเขียน code เพื่อเก็บ data ด้วยตัวเอง 

parsing in Java Programming


ใช้ Library JDOM 2.0.6 เป็นตัว Dom Parser


ในไฟล์ artist.xml มีข้อมูลศิลปินเป็นตัวอย่างทังหมด 3 คน

เราจะเริ่มจากการอ่านไฟล์ artist.xml กันก่อน


ในส่วน coding ขั้นแรกเปิดไฟล์จาก path ที่กำหนด แล้วสร้างเป็น Document หรือ Dom Tree แล้วทำการ getNodeName ที่เป็น root ออกมาแสดงผลในตัวอย่าง root element คือ Profile



หลังจากเข้ามาใน root element แล้วจะทำการแสดงค่าใน child node ประกอบไปด้วยข้อมูลของ ศิลปิน แต่ละคน มีชื่อ ประเทศ และ บริษัทที่สังกัดอยู่



Slide link
Source Code (Github)

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

week5: XML Intro What/Why/How & Continue from w4

week 1: connect and send data between program