วันศุกร์ที่ 15 เมษายน พ.ศ. 2559

Deploy Web App to Heroku "Part 5" XML

Deploy Web App to Heroku "XML"

      XML คืออะไร
      XML เป็นภาษาที่ถูกออก แบบขึ้นมาเพื่อทำการแลกเปลี่ยนข้อมูลผ่านเครือข่ายอินเทอร์เน็ต และสามารถรองรับการเเลกเปลี่ยนได้หลายภาษา หากจะให้เข้าใจง่ายๆก็ยกตัวอย่างเช่น คนหลายชาติต่างภาษาเลือกที่จะทำการศึกษาภาษาอังกฤษในการสื่อสารกับชาติต่างๆ เพราะภาษาอังกฤษถือเป็นภาษากลาง เเทนที่จะทำการศึกษาเพียงภาษาใดภาษาหนึ่ง เพราะหากสามารถเข้าใจภาษากลางเพียงภาษาเดียวเเล้ว ก็แถบจะสามารถสื่อสารได้กับทุกชาติ เพราะฉนั้น XML จึงเปรียบเสมือนภาษากลาง
       ความเเตกต่างระหว่าง HTML และ XML
       TML คือ ภาษาสำหรับเเสดงผลข้อมูล เพียงอย่างเดียว โดยไม่รู้ว่าข้อมูลนั้นคืออะไร เช่น เเสดงข้อมูลเป็นตัวหนา ตัวเอน เป็นต้น XML คือ ภาษาสำหรับอธิบายข้อมูล และเก็บข้อมูลอะไร
       โครงสร้างของภาษา XML
       ภาษา XML ไม่มีโครงสร้างกำหนดเอาไว้ตายตัวซึ่งก็ถือเป็นข้อดีของ XML ที่สามารถนำไปประยุกต์ใช้กับโปรแกรมอื่นๆ ถึงเเม้ว่า XML จะไม่มีโครงสร้างที่กำหนดไว้อย่างตายตัวเเล้ว เเต่ XML ก็มีรูปแบบที่เป็นที่ตกลงกัน เพื่อให้เข้าใจได้ง่ายขึ้น ดูตัวอย่างได้จากโค้ดข้างล่างนี้1001มณีศรีเพ็ญบัญชี087-1245766 จาก Code จะเห็นว่ามีเครื่องหมาย < และ > เป็นตัวบ่งบอกแท็ก เมื่อมีการกำหนดเเท็กทุกครั้งจะต้องเริ่มด้วย Start Tags เช่น และจบลงด้วย End Tags ทุกครั้ง เช่น ส่วนข้อมูลที่อยู่ตรงการจะเรียนกว่า Element (สมาชิก)
       กฏเบื้องต้นสำหรับการสร้างข้อมูลที่เก็บอยู่ในโครงสร้างของ XML 

  1. ในการสร้างแท็กเเต่ลละครั้งจะต้องมีทั้ง เเท็กเปิดและเเท็กปิด เพื่อระบุขอบเขตของข้อมูล 
  2. ในภาษา XML ตัวอักษรพิมพ์เล็กหรือพิมพ์ใหญ่มีความเเตกต่างกัน เช่น... แบบนี้จะเกิดความผิดพลาด 
  3. ในบางครั้งอาจมีลำดับชั้นที่ซับซ้อนมากขึ้น ดังนั้นควรระมัดระวังเรื่องของแท็กปิดและเเท็กเปิดให้ตรงลำดับชั้น เช่น001A33C03Auttaya Teeyut074-1454788

* สามารถสร้างเเท็กที่ซับซ้อนได้เท่าที่ต้องการ เพียงเเต่จะต้องปิดลำดับชั้นของเเท็กให้ถูกต้อง
       สรุปความเข้าใจภาษา XML เบื้องต้น
            - ถูกกำหนดมาตรฐานโดย W3C
            - รูปแบบข้อมูลที่มีโครงสร้างที่เหมาะต่อการแลกเปลี่ยนข้อมูลในเครือข่ายอินเทอร์เน็ต
            - ลักษณะของภาษาคล้ายกับ HTML
            - เป็นการออกแบบข้อมูลไม่ใช่การเเสดงข้อมูลออกมา
            - ไม่มี tag กำหนดล่วงหน้าตายตัว เพราะฉนั้นต้องกำนด tag ขึ้นมาเอง
            - โครงสร้างของภาษา XML คือ แท็กเปิด <>, แท็กปิด</> ,Element

สามารถอ่านบทความที่เกี่ยวข้องเพิ่มเติมได้ ที่ HTML5 Drag and Drop  HTML5 WebSockets

ที่มา www.mdsoft.co.th


  • ถ้าจะต้องเเลกเปลี่ยนข้อมูลกันจะทำอย่างไร ถ้าหากมีเว็บที่ทำงานเเบบเดียวกันอยู่หลายเว็บ

wordbank

  • ปัญหา

       ปัญหาเเรกที่พบเลยคือรูปเเบบไม่ตรงกันทำให้ไม่สามารถที่จะนำข้อมูลของเว็บ อื่นๆ มาใช้งานด้วยกันได้เนี่องจากมีการจัดวาง root ที่ไม่เหมือนกัน ทำให้ไม่สามารถที่จะใช้ ฟังก์ชั่น เดิมที่เคยเรียกใช้ได้

xml ที่ wordbank ใช้
xml ที่ เว็บอื่นใช้
  • การเเก้ปัญหา
           ทำข้อตกลงกันระหว่าง เว็บ ว่าจะมีเเบบที่เป็น มาตราฐาน อย่างไรเมื่อตกลงกันได้เเล้วก็สร้าง ฟังก์ชั่น ใหม่มา 1 ฟังก์ชั่น เพื่อทำงานนี้โดยเฉพาะ ทุกเว็บต้องมีเหมือนกัน

 
   def standard_save_xml_file():
    all_word = Word.objects.all()
    words = ET.Element('bank')
    for word_ in all_word:
        for detail in word_.detail_set.all():
            et_word = ET.SubElement(words, 'word')
            ET.SubElement(et_word, 'text').text = word_.word_text
            ET.SubElement(et_word, 'type').text = detail.type_text
            ET.SubElement(et_word, 'mean').text = detail.example_text_EN
            ET.SubElement(et_word, 'ex').text = detail.example_sentence_EN
    tree = ET.ElementTree(words)
 


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

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