4 กุมภาพันธ์ 2551

ใช้งาน XML - [1] XML คืออะไร

Flex2 ที่ใช้กันอยู่รองรับการใช้งาน XML ในรูปแบบ object รวมถึง Interface ที่จะช่วยให้การใช้งาน XML นั้นคล่องและง่ายกว่า as2 มาก สำหรับผมซึ่งเคยพยายามใช้งาน XML มาตลอด 5 ปีเต็ม สิ่งที่รู้สึกอึดอัดมาตลอดคือ การใช้งานที่ต้องการ function ในการสร้าง จัดการ และการเข้าถึงแต่ละ node ที่ไม่คล่องตัวนัก

แต่สำหรับ as3 ใน Flex2 ทุกอย่างมันเปลี่ยนไป XML ได้ถูกนำมาเป็น compound data type ในโปรแกรม พร้อมทั้งมี Interface และ Collectors ไว้สำหรับจัดการ XML ได้อย่างมีประสิทธิภาพ สำหรับคนที่ยังไม่เคย หรือเริ่มลืม XML ไปแล้ว จะขอกล่าวถึงพื้นฐานและวิธีการนำเอา XML มาใช้งานดังนี้

XML (Extensible Markup Language) เป็นภาษาเชิงประกาศ ใช้สำหรับอธิบายลักษณะและคุณสมบัติของข้อมูล เพื่อให้สามารถสื่อสารและแลกเปลี่ยนข้อมูลระหว่างผู้ใช้งานหรือระหว่างโปรแกรมได้อย่างถูกต้อง ต้นกำหนดของ XML ถูกพัฒนามาจากภาษา SGML (HTML ก็สืบทอดมาจาก SGML เหมือนกัน) ขณะนี้สิ่งที่อยู่ใกล้ตัวที่สุดคือไฟล์ mxml ที่ใช้พัฒนา Flex ก็ใช้ XML เหมือนกัน รวมถึง XHTML ก็ถือว่าเป็น XML เหมือนกัน

สิ่งที่เป็นจุดเด่นของ XML คือ

  • ความเรียบง่าย เนื่องจากข้อมูลจะถูกเก็บและอธิบายในรูปแบบ Text ไม่ใช่ binary ดังนั้นเมื่อเราเปิดดูไฟล์ XML เราสามารถใช้โปรแกรม Text Editor ใด ก็ได้ แก้ไขและสร้างใหม่ได้
  • มีความเป็นมาตรฐาน รูปแบบของ XML ถูกกำหนดมาตรฐานโดย W3C (World Wide Web Consortium) ดังนั้นหากใครบอกว่าโปรแกรมของตนสนับสนุน XML ก็แน่ใจได้ว่าจะมีรูปแบบการใช้งานที่เหมือนกัน
  • มีความยืดหยุ่น โครงสร้างของ XML จะเป็นลักษณะ Tree สามารถแตกราก (node) ได้ไม่มีสิ้นสุด และยังสามารถเพิ่มการอธิบายข้อมูลใหม่ เข้าไปโดยไม่กระทบข้อมูลเดิม นอกจากนี้คุณยังสามารถผสมข้อมูลที่มาจากคนละแหล่งได้ในเอกสารเดียว (Namespace)
  • รองรับทุกภาษาในโลก เนื่องจาก XML อนุญาติให้คุณสามารถระบุว่าข้อมูลที่บรรจุอยู่ในเอกสารเป็นภาษาอะไร ดังนั้นจึงหมดปัญหาเรื่องภาษาไทยและภาษาอื่น ที่จะใช้งาน
  • มีโปรแกรมสนับสนุนมากมาย หากคุณลองเปิด Microsoft Excel ดูจะพบว่าคุณสามารถบันทึกในรูปแบบ XML ได้ และแน่นอน คุณสามารถนำเอาไฟล์ XML มาเปิดอ่านใน notepad แล้วแก้ไขข้อมูลได้โดยไม่ต้องใช้โปรแกรม Excel เลยก็ได้
ตัวอย่าง XML เช่น หากเราต้องการเก็บรายละเอียดของ CD เพลงในรูปแบบของ XML อาจทำได้ดังนี้
<?xml version="1.0"?>
<myCDA>
    <CDA length="15:35">
        <album>Classic NO.1</
album>
        <tracks>
            <title>Mozard NO.13</title>
            <title>Mozard NO.15</title>
        </tracks>
    </CDA>
    <CDA length="15:35">
        <
album>Love Song NO.1</album>
        <tracks>
            <title>Miss You</title>
            <title>What do you want?</title>
            <title>Don't make me cry</title>
        </tracks>
    </CDA>
</myCDA>


ในตัวอย่าง CDA หมายถึง CD-Audio ส่วนแอตตริบิวต์ length ที่ระบุคือความยาวในการเล่นเพลงทั้งแผ่น ส่วน <album> คือชื่ออัลบัมของแผ่นซีดี <title> ที่อยู่ใน <tracks> คือ ชื่อเพลงในแผ่นซีดีทั้งหมด

ในการวางโครงสร้างของข้อมูลนั้นอยู่ที่คนออกแบบว่าจะให้เก็บข้อมูลอะไรบ้างและใส่ในชื่อแท็กอะไร ไม่มีข้อกำหนดตายตัวว่าข้อมูลต้องใส่ไว้ในแท็ก อาจใส่ไว้ในแอตตริบิวต์ก็ได้ อยู่ที่จุดประสงค์ของการประกาศข้อมูลและการใช้งานเป็นหลัก


องค์ประกอบของ XML
  • Tag คือส่วนที่อยู่ระหว่าง < และ > เช่น <name>
  • Element เป็นส่วนของข้อมูลที่ประกอบด้วย
    • start-tags แท็กเริ่มต้น เช่น <name>
    • end-tags แท็กสิ้นสุด เช่น </name>
    • ข้อมูลหรือเนื้อหาที่อยู่ระหว่างแท็กเช่น คำว่า Peter ใน <name>Peter</name>
  • Attributes  คือ  ส่วนที่แทรกอยู่ใน แท็กเริ่มต้น มีลักษณะเป็นชื่อและค่าที่ต้องการกำหนดให้กับแท็ก เช่น <name shortName="Peter.N">
ในการใช้งาน XML นั้น เราจำเป็นต้องทราบกฎและวิธีการสร้างและใส่ข้อมูลที่ถูกต้องด้วย เพราะหากผิดกฎโปรแกรมที่อ่าน XML จะแจ้งข้อผิดพลาดและไม่สามารถใช้งานข้อมูลนั้น ได้
  1. ต้องเริ่มต้นเอกสารด้วย <?xml version="1.0" ... ?> เสมอ  โดย ... นั้นจะเป็นแอตตริบิวต์ เพื่อระบุเนื้อหาเพิ่มเติม เช่น <?xml version="1.0" encoding="TIS-620"?> เพื่อบอกตัวโปรแกรมที่อ่านเอกสารว่า ข้อมูลถูกเก็บไว้เป็นภาษาไทย รหัสสมอ. (TIS-620)
  2. ในเอกสาร XML สามารถมีรูทอิลิเมนต์ (root element) ได้เพียง 1 อิลิเมนต์เท่านั้น จากตัวอย่างการใช้งาน ในเอกสารมี <myCDA> เป็นรูทอิลิเมนต์
  3. การตั้งชื่ออิลิเมนต์ เราจำเป็นต้องปฏิบัติตามกฎดังนี้
    • ต้องขึ้นต้นด้วยตัวอักษร (ได้ทุกภาษา) หรือเครื่องหมาย underscore _ เท่านั้น ห้ามขึ้นต้นด้วยตัวเลขและเครื่องหมายอื่น
    • หลังจากอักษรตัวแรกสามารถใช้ตัวอักษร ตัวเลข _ รวมถึงเครื่องหมาย - และ .
    • ห้ามเริ่มต้นด้วยคำว่า xml ไม่ว่าจะเป็นตัวเล็กตัวใหญ่ เช่น <xmlSpace> <Xml-tag> <XmLtag>
    • ห้ามมีช่องว่างหลัง < เช่น < myTag>
    • การตั้งชื่ออิลิเมนต์ ตัวอักษรเล็กใหญ่มีความหมายต่างกัน (ใน HTML <b> และ <B> มีความเหมือนกัน)
เมื่ออธิบายมาถึงตรงนี้หลายคนพอจะเริ่มคุ้นหน้าคุ้นตากับ XML นี่แล้ว หากต้องการศึกษารายละเอียดเพิ่มเติม
ในการใช้ XML ครั้งหน้าจะพูดในส่วนที่ใช้งานกับ as3
หากใครมีข้อมูลเพิ่มเติม หรือสอบถามก็ comment/reply มาครับจะได้คุยกันให้ละเอียดยิ่งขึ้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

เกี่ยวกับเจ้าของบล๊อก