วันพฤหัสบดีที่ 4 กันยายน พ.ศ. 2551

DTD (Document Type Definition)

บทนำ

          เนื่องจากทุกวันนี้ โลกของเรามีการนำเทคโนโลยีสารสนเทศ เข้ามาใช้ในชีวิตประจำวันมากขึ้นเทคโนโลยีบนอินเทอร์เน็ต ที่เจริญเติบโตอย่างรวดเร็วด้วยความหลากหลายของทำให้ต้องมีการคิดค้นเทคโนโลยีใหม่ๆเพื่อพัฒนาให้มีความก้าวหน้ามากขึ้น โดยเฉพาะเทคโนโลยีเกี่ยวกับเขียนเว็บไซต์ในปัจจุบันนี้ แข่งขันกันสูงเพื่อครองมาตรฐานให้กับเว็บ จึงมีการคิดค้นสิ่งใหม่ๆ กันอยู่เสมอเพื่อรองรับกับความต้องการที่ไม่มีที่สิ้นสุดโดยเทคโนโลยีที่จะมาเป็นมาตรฐานของเว็บในปัจจุบันคือ XML ซึ่ง XML นั้นก็ความสามารถใหม่ๆ

          ที่ภาษารุ่นเก่าไม่มีก็คือ DTD

                    What is DTD ?

     --> การนิยามความหมาย การกำหนดโครงสร้างและข้อมูลของกฎเกณฑ์ของเอกสาร ที่จัดเก็บโดยเอกสาร XML

     --> เป็นเสมือนข้อตกลงในหลักภาษาให้สอดคล้องเข้าใจความหมายตรงกัน เราจะใช้เป็นตัวกำหนดได้ว่า Element หนึ่งๆ นั้นมีส่วนประกอบอะไรบ้าง

     --> สำหรับไฟล์ DTD นั้นเราสามารถออกแบบด้วยตัวเอง หรืออาจจะเรียกใช้จาก DTD ที่มีคนเตรียมไว้ให้แล้วก็ได้

     --> DTD จะทำหน้าที่ตรวจสอบความถูกต้องของเอกสาร XML ว่าสอดคล้องกับข้อตกลงที่กำหนดไว้เป็นไวยากรณ์ในไฟล์ DTD หรือไม่ ถ้าไม่ก็จะฟ้องแสดงข้อผิดพลาดออกมา

                    ประโยชน์ของ DTD ?

     --> เพื่อให้ทราบถึงโครงสร้างของข้อมูลเพื่อการแลกเปลี่ยน การแปลง การรวมและการประมวลผลข้อมูล

     --> การตรวจสอบความถูกต้องของเอกสาร Validation

     --> ในบางครั้งหากเรา ต้องการสร้างเอกสาร XML ที่สามารถแลกเปลี่ยนกับคนอื่นๆ หรือส่วนอื่นๆ และให้สามารถเข้าใจโครงสร้างเดียวกัน นั้นก็คือ เอกสาร XML ของเรา และส่วนอื่นๆ จำเป็นต้องมีรูปแบบโครงสร้างเดียวกัน นั้นก็คือควรที่จะเลือกใช้ DTD เดียวกัน เพื่อบังคับโครงสร้างให้เหมือนกัน

                    เราจะใช้ DTD เมื่อ ?

     --> ต้องการการรับประกันว่าในเอกสารที่เรากำลังพิจารณานั้น มี Element หรือ Attribute ที่เราต้องการอยู่จริง หรือต้องการ ดูว่ามี Element หรือ Attribute ที่เราไม่ต้องการปรากฏอยู่ในตัวเอกสาร

     --> ต้องการกำหนดกฎเกณฑ์บางอย่างเกี่ยวกับ Element หรือ Attribute อย่างเช่น ชนิดของข้อมูล , ค่าเริ่มต้น , ค่าที่เป็นไปได้ หรือจำนวน element หรือ attribute นั้นๆ ที่สามารถมีได้

                    DTD ต้องระบุสิ่งต่างๆ ต่อไปนี้

     > Element name
     > Content Model
     > Modifying Symbols
     > Attribute names
     > Default attribute values

                    DTD อธิบายส่วนประกอบ โดยใช้ไวยากรณ์ดังต่อไปนี้


                    DTD อธิบายส่วนประกอบ โดยใช้ไวยากรณ์ดังต่อไปนี้


                    Modifying Symbols

     --> เพื่อใช้กำหนดค่าการมีอยู่ ของ ELEMENT นั้นๆ


          > + ต้องมีค่าอย่างน้อยหนึ่งค่า แต่อาจมีได้มากกว่านั้น
          > * อาจมีค่าได้ N ครั้ง หรืออาจไม่มีค่าเลยก็ได้
          > ? มีค่าได้เพียงค่าเดียวหรือไม่มีค่าเลย

                    Attribute Types

     > CDATA: ข้อมูลซึ่งตัวประมวลผล XML จะอ่านผ่านโดยไม่ตีความ
     > ENTITY, ENTITIES: ชื่อของเอนติตี้ที่ประกาศใน DTD
     > ID: ข้อมูลซึ่งมีค่าไม่ซ้ำ (unique)
     > IDREF: ข้อมูลที่อ้างอิงข้อมูลประเภท ID
     > IDREFS: ข้อมูลอ้างอิงไปยัง unique identifiers

                    Attribute Values

     > #IMPLIED : แอททริบิวต์นั้นอาจละไว้ได้
     > #REQUIRED : ต้องมีแอททริบิวต์นั้นอยู่
     > #FIXED X : ค่าต้องเป็น X

                    Declarations

     --> การประกาศแบบภายใน (Internal)

     --> การประกาศแบบภายนอก (External)

     --> การประกาศแบบผสม (Mixed)

            -> ภายใน


            -> ภายนอก


                    การประกาศแบบภายใน


                    การประกาศแบบภายนอก


                    XML ไม่จำเป็นต้องใช้ DTD เสมอไป

     --> เอกสาร XML มีส่วนประกอบที่สำคัญอยู่สามส่วน สองส่วนเป็นสิ่งที่จำเป็น ในขณะที่อีกส่วนเป็นทางเลือกที่จะมีหรือไม่ก็ได้

          1. ส่วนแรก คือส่วนของเนื้อหา หรือ Content นั่นเอง ซึ่งทำให้เอกสารมีข้อมูลสำหรับดูโดยผู้อ่าน Content นี้เป็นได้ทั้งข้อความ รูปภาพ ส่วนนี้ถูกสร้างขึ้นมาจาก Element ในที่นี้คือไฟล์ XML

          2. ส่วนที่สอง คือกฎเกณฑ์และข้อกำหนด โครงสร้างของเอกสาร ในที่นี้คือไฟล์ DTD ส่วนนี้ถือเป็นทางเลือก ซึ่งจะเลือกใช้หรือไม่ก็ได้

          3. ส่วนสุดท้าย คือ StyleSheet คือ ลักษณะข้อกำหนดสำหรับการแสดงผลลัพธ์นั้นเอง ในที่นี้คือไฟล์ XSL

                    สรุป

     --> เอกสาร XML ไม่จำเป็นต้องมี DTD

     --> DTD หน้าทำหน้าที่นิยามความหมายและกำหนดโครงสร้างของข้อมูลที่จัดเก็บโดยเอกสาร XML

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