มูลนิธิสื่อเพื่อเยาวชน
ว่าที่ร้อยตรี จิรศักดิ์ กรรเจียกพงษ์

การสร้างเอกสารตามรูปแบบที่ FreeBSD และที่อื่นๆ ใช้ แนะนำเทคนิคของการใช้ Docbook (ตอนที่ 1)


FreeBSD
samira samilan
ตอนที่ ๑
Docbook & related Technologies:

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

ฉะนั้นการสร้างเอกสารโดยเฉพาะเอกสารในทางเทคนิค หรือเทคโนโลยีต่างๆ ก็เป็นสิ่งที่สำคัญสำหรับ องค์กรต่างๆ

หน่วยงานทั้งหลาย พยายามสร้าง เอกสาร คู่มือ การใช้ การสร้าง การซ่อม ให้มีมาตรฐานซึ่งจะอำนวยความสดวก ต่อผู้ใช้ ดังจะเห็นได้จาก ตัวอย่างที่พวกเราๆ ได้เจอกัน เช่น หากเข้าไปใน FreeBSD.org ก็จะเห็นว่า ไม่ว่า รูปแบบ จะอยู่ใน Handbook,ในรูปบทความ (Article) หรือ คำสั่งการใช้ ต่างๆ ในบทความ ในเอกสารทั้งหลาย จะเป็นมาตรฐานเดียวกันหมด และมาตรฐานอันนี้ ทาง FreeBSD ได้เอามาจาก มาตรฐานที่ใช้กันมากในวงการ hitech เช่น LDP ( Linux Documentation Project) Sun Microsystem เป็นต้น ได้ใช้มาตรฐานนี้ในเอกสารต่างๆ ที่เกี่ยวกับ เครื่องมือเครื่องใช้ รวมทั้ง Software ด้วย

มาตรฐานที่ว่านี้ คือ DocBook ซึ่ง ท่านจะสามารถหาอ่านรายละเอียด ได้ ที่ www.docbook.org

อยากจะเล่า อธิบาย พื้นฐานของ technology อันนี้ เพื่อผู้อ่าน จะได้ เข้าใจ และอาจจะเอาไปใช้ได้ ในองค์กรของท่าน

โดยปกติ ข้อมูลต่างๆในระบบคอมพิวเตอร์นี้ จะมาจากหลายแหล่ง หลาย platform และ หลาย format ดังนั้น การจะส่งข้อมูลผ่านไปยังที่ต่างๆ มักจะมีปัญหา เพราะ format ไม่เหมือนกัน ด้วยเหตุนี้ XML จึงได้เกิดขึ้น

XML เป็น technology ที่เก็บข้อมูล มันเป็นตัวที่จัดเก็บข้อมูลเท่านั้นเอง ไม่ได้บอกว่า จะเอาข้อมูลไปเสนอหรือแสดงแต่อย่างไร ในรูปของ text file ที่ท่านสามารถ หรือ ว่าไป กำหนดข้อมูลที่ต้องการ จะมี อะไรบ้าง โดยต้องสร้างให้เข้ากับ spec ( รูปแบบ) ที่ XML ต้องการ การสร้างที่ว่านี้ ก็คือ การสร้างที่คล้ายๆกับ html tag เช่น

<teachers>

<teacher>
<name>Kru montri</name>
<lastname>Ubon</lastname>
<education>BS computer</education>
<picture>krumontri.jpg</picture>
</teacher>

<teacher>
<name>Kru manis</name>
<lastname>Burirum</lastname>
<education>BEd.</education>
<picture>krumanis.jpg</picture>
</teacher>

</teachers>

อันนี้ ก็เรียกว่า เป็น xml file ที่ดี ที่ถูกต้อง well behaved xml file
จะเห็นว่า ข้อมูลนี้ เป็นชุดการเก็บ รายละเอียด ของ ครู (teachers) ที่มี tag เปิด และ tag ปิด
ใน teachers นี้ จะเห็นว่า มีครู ( teacher ) อยู่สองคน ( ข้อมูลมีแค่นี้ แต่จะยาวแค่ใหนก็ได้)

แต่โดยแท้จริงแล้ว ก่อนที่จะสร้าง xml file ขึ้นมานี้ เราต้องกำหนดเสียก่อนว่า ข้อมูลของเราที่จะเก็บ มี อะไร
เช่น เราจะบอกว่า จะเก็บ ชื่อ สกุล ของครู การศึกษา และรูป เราก็จะกำหนด file ที่เขาเรียกว่า dtd ( data type document) ซึ่งก็เปรียบเสมือนกับ ว่า เป็นการตั้ง data type ขึ้นมา อย่างที่เวลาเรา เขียน ภาษา C หรือ pascal เป็นต้น

<!ELEMENT teachers ( teacher) > <-------- กำหนดว่า ในครู ( พหูพจน์) นี้ เราจะเก็บข้อมูลของ ครูแต่ละคน
<!ELEMENT teacher ( id, tname, education, pic ) > <-------- กำหนดว่า ครูแต่ละคนจะมี รหัส ชื่อ การศึกษาและ รูป
<!ELEMENT id (#PCDATA) > <-------- กำหนดว่า รหัส นี้ เป็น data type ที่เรียกว่า pcdata
<!ELEMENT tname (#PCDATA) > <-------- กำหนด เหมือน id
<!ELEMENT dept (#PCDATA) > <-------- กำหนด เหมือน id
<!ELEMENT education (#PCDATA) > <-------- กำหนดเหมือน id

ฉนั้น ขณะนี้ เรามี สอง file แล้ว คือ file xml ซึ่งเป็นข้อมูลจริงๆ และ dtd file ซึ่งเป็นตัวกำหนดว่า ใน xml นั้น ควรจะมี tag อะไรบ้าง

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

=====================================

<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
<xsl:output method="html"/>

<xsl:template match = "teachers" >
<html><head><title>teacher</title></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>

<xsl:template match = "teachers/teacher/id" >
<b><xsl:apply-templates /></b><br />
</xsl:template>

<xsl:template match = "teachers/teacher/tname" >
<font color="red"><b><xsl:apply-templates /></b></font><br />
</xsl:template>

<xsl:template match = "teachers/teacher/education" >
<xsl:apply-templates /><br />
</xsl:template>

<xsl:template match = "teachers/teacher/pic" >
<xsl:apply-templates /><hr width="50%" align="left" />
</xsl:template>

</xsl:stylesheet>

==============================

นี่คือ ตัวที่จะบังคับว่า ข้อมูลที่อยู่ ใน XML นั้น จะให้หน้าตาออกมาในรูปใหน

นั่นก็คือ การแยก ข้อมูลออกจาก การออกแบบหน้าตา ซึ่งเป็นข้อได้เปรียบ สำหรับ การสร้างเวป

ที่มา : http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=6402
หมายเลขบันทึก: 34429เขียนเมื่อ 17 มิถุนายน 2006 15:19 น. ()แก้ไขเมื่อ 29 เมษายน 2012 20:55 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท