รู้จัก XML เบื้องต้น(มากๆ)


อัปเดท : 8 กรกฎาคม พ.ศ.2547 , แสดง : 70,703 , ความคิดเห็น : 8

โลกของเทคโนโลยีมีแพลตฟอร์มมากมาย หลากหลายภาษา แต่ละภาษาก็จะคุยกันด้วยสำนวนของมันเอง ในงานที่ต้องใช้แพลตฟอร์มหลากหลาย จะมีปัญหาก็คือมันจะทำงานร่วมกันอย่างไร? จะส่งข้อมูลอย่างไร ? เช่นถ้าจะเขียน ASP.net ให้คุยกับ JSP(Java) หรือภาษาอื่น ๆ ต้องทำอย่างไร ? XML จึงเกิดขึ้นมาเพื่อแก้ปัญหานี้ มันจะทำหน้าที่เป็นตัวกลางเก็บข้อมูล โดยที่ ASP.net , JSP(Java) หรือภาษาอื่นๆ ต้องสามารถเข้าใจภาษา XML เป็นมาตรฐานอยู่แล้ว
ขอยกตัวอย่างให้เห็นชัด ๆ ASP.net ต้องการแลกเปลี่ยนข้อมูลกับ JSP เราก็เขียน ASP.net ให้สร้างไฟล์ XML พร้อมทั้งใส่โครงสร้างและข้อมูลตามที่เราต้องการ จากนั้นเราก็เขียน JSP ให้มาอ่านไฟล์ XML นั้นๆแค่นี้ ASP.net ก็แลกเปลี่ยนข้อมูลกับ JSP ได้แล้ว

XML คืออะไร ? : เริ่มกันที่ว่า XML ย่อมาจาก Extensible Markup Language เป็นภาษาหนึ่งที่ใช้ในการแสดงผลข้อมูล ถ้าเปรียบเทียบกับภาษา HTML จะแตกต่างกันที่ HTML ถูกออกแบบมาเพื่อการแสดงผลอย่างเดียวเท่านั้น เช่นให้แสดงผลตัวเล็ก ตัวหนา ตัวเอียง เหมือนที่คุณเคยเห็นในเวบเพจทั้วไป แต่ภาษา XML นั้นถูกออกแบบมาเพื่อเก็บข้อมูล โดยทั้งข้อมูลและโครงสร้างของข้อมูลนั้นๆไว้ด้วยกัน ส่วนการแสดงผลก็จะใช้ภาษาเฉพาะซึ่งก็คือ XSL (Extensible Stylesheet Language)

โครงสร้างของภาษา XML เป็นอย่างไร ?

ภาษา XML มีโครงสร้างที่ประกอบด้วยแท็ก(Tag)เปิด และแท็กปิด เช่นเดียวกับภาษา HTML แต่ภาษา XML คุณสามารถสร้างแท็กรวมทั้งกำหนดโครงสร้างของข้อมูลได้เอง ซึ่งความสามารถตรงนี้ตัวภาษา HTML ทำไม่ได้เพราะภาษา HTML ถูกกำหนดแท็กตายตัวโดย W3C

 

ตัวอย่างที่ 1 XML แท็ก(Tag) ที่บอกโครงสร้างและข้อมูลของบุคคล
<?xml version="1.0" encoding="windows-874"?>
<address_book>
   <person Gender="M">
        <name>Jane Doe</name>
        <address>
            <street>123 Main St.</street>
            <city>San Francisco</city>
            <state>CA</state>
            <zip>94117</zip>
         </address>
         <phone>555-1212</phone>
   </person>
</address_book>

 

ตัวอย่างที่ 2
<?xmlversion="1.0"encoding="windows-874"?>
<callme>
    <my_mobile>0-1307-8072</my_mobile>
    <my_phone>0-2872-8936</my_phone>
</callme>


จากตัวอย่างที่ 2 ตรงบรรทัดแรก เป็นการประกาศว่าเอกสารนี้เป็นไฟล์ XML นี้มีการเข้ารหัสอักขระแบบ windows-874 เพื่อปลายทางจะได้เข้าใจและถอดรหัสได้ถูกต้อง จากตัวอย่างจะเห็นว่า จริงๆแล้วในภาษา XML จะแบ่ง โครงสร้างเป็น 2 ส่วนใหญ่ ๆ คือ tag และ element

ตัวอย่างที่ 3 แสดงโครงสร้างของ tag และ element
<root>
    <element>
        <tag></tag>
    </element>
</root>

ลงรายละเอียดอีกนิดกับ Tag กับ Element
Tag สำหรับใน XML แล้วแท็กมีความหมายในลักษณะเดียวกับที่ใช้ใน HTML tag คือข้อความที่อยู่ระหว่างสัญลักษณ์ "<" และ ">" มี 2 แบบคือ
- แท็กเปิด (Start tag) เช่น
- แท็กปิด (End Tag) เช่น สังเกตุได้ว่าแท็กปิดเครื่องหมาย / อยู่หลังสัญลักษณ์ "<"
จากตัวอย่างที่ 2 Tag คือ ....<,callme>

Element คือโครงสร้างหลักของ XML ซึ่งอยู่ในรูปของแท็กจะมีลักษณะซ้อนกันเป็นชั้นๆโดย element เริ่มต้นที่แท็กเปิดและสิ้นสุดที่แท็กปิดในแท็กดียวกัน และ Root element จะเป็น element บนสุดของไฟล์ XML
จากตัวอย่างที่ 2 Element คือ 0-1307-8072 , 0-2872-8936

Content ข้อมูลที่เก็บ เช่นจากตัวอย่างที่ 2 ใน Element 0-1307-8072 Content คือ 0-1307-8072

Attribute คือข้อมูลความหมายเพิ่มเติมเป็นค่าคงที่ ถูกเขียนอยู่ภายใน tag เปิด <....> จะมีมากกว่า 1 , มี 1 อันหรือไม่มีเลยก็ได้ จากตัวอย่างที่ 1 ก็คือ Gender="M"> เป็นต้น

การประยุกต์ใช้งาน XML
ยกตัวอย่างบทความการประยุกต์ใช้ XML ที่ผมเคยเขียนไว้ คือ ดึงข่าวจาก Thaisarn.com ด้วย ASP.net(VB) ซึ่งทาง ThaiSarn.com ได้สร้างเอกสาร XML ด้วย ภาษา PHP และผมก็ใช้ ภาษา ASP.net เพื่อนำเอกสาร XML มาใช้และควบคุมการแสดงผลด้วย XSL

คุณสามารถหาอ่านรายละเอียดเพิ่มเติมได้ที่เจ้าของมาตรฐาน XML >>  http://www.w3.org/XML

และแล้วก็จบ XML เบื้องต้น


ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง

เวบ/อินเตอร์เน็ตเทคโนโลยี

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ

  • jeab [23 Jun 2005 , 09:17 AM]

    คืออยากทราบว่าภาษา XML มันคือะไรนะคะและจากที่อ่านบทความจากหลาย ๆ แห่งมา ดิฉันเลยสรุปเอาเองว่าภาษา XML ก็คือภาษาที่สามารถใช้รับส่งข้อมูลจากอีกฝั่งมายังอีกฝั่งหนึ่งได้โดยอาจจะพัฒนาด้วย ASP , PHP หรือ Javascript ก็ได้ไม่ทราบว่าดิฉันเข้าใจถูกไหมคะ กรุณาตอบให้ดิฉันเข้าใจอย่างถูกต้องด้วยคะ ขอขอบคุณล่วงหน้านะคะ

  • จักรกฤษณ์ [11 Jul 2005 , 01:23 PM]

    ตามที่คุณ jeab ก็ถูกแล้วน่ะครับ XML เหมือนภาษาสากลที่ทุกค่ายใช้กัน ถ้าเปรียบเทียบก็เช่น ภาษาอังกฤษ สมมุติว่าคนไทยไม่สามารถพูดกับคนจีน ได้ตรงๆ ได้ แต่คนไทยพูดภาษาอังกฤษได้ และ คนจีนก็พูดภาษาอังกฤษได้ ก็ใช้ภาษาอังกฤษเป็นภาษากลางซ่ะ เป็นต้น..

  • jsp [03 เม.ย. 2549 , 01:49 PM]

    สอบถามเกี่ยวกับ xml file ที่สร้างด้วย jsp ครับผม ไม่ทราบว่าหาดูตัวอย่างได้ที่ไหนครับผม

  • น้ำ [25 เม.ย. 2552 , 10:46 AM]

    ขอบคุณสำหรับเนื้อหานี้มากมายค่ะ

  • Oat [05 พ.ค. 2552 , 10:49 AM]

    อยากทราบว่าระหว่างภาษา Xml , Java , PHP, ASP ภาษาไหนจะเหมาะสำหรับนักเขียนโปรแกรมฝึกหัดค่ะ

  • phorn [07 เม.ย. 2554 , 12:26 PM]

    อยากดึงข้อมูลแต่ละelementจะทำยังไงไปเก็บไว้ในตัวแปรเพื่อเล่นกับข้อมูลจะทำยังงัยครับ

  • pan [04 ธ.ค. 2555 , 06:05 PM]

    ให้ความรู้ ความเข้าใจได้ดีมากๆเลยคะ

  • Gablablift [05 มี.ค. 2556 , 04:31 PM]

    www.w3school.com