XML ( Extensible Markup Language ) เป็นภาษาที่ถูกออกแบบมาเพื่อรองรับการ แลกเปลี่ยนข้อมูลภายใต้มาตรฐานที่แตกต่างของ ภาษาต่าง ๆ ในปัจจุบัน ดังนั้น ภาษา XML.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
สถาปัตยกรรม ActiveX Data Object (ADO)
Advertisements

HTML เบื้องต้น ธวัชชัย สลางสิงห์.
ASP [#15] การใช้งาน ASP กับ Mysql ผ่าน ODBC การทำสมุดเยี่ยม Guestbook
เริ่มปฏิบัติการเบื้องต้น
ASP [#12] ตัวอย่าง VBScript เพื่อใช้ตรวจสอบค่าบนฟอร์ม
ภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ASP [ # 11 ] เตรียมความพร้อมก่อนติดต่อกับ Ms Access
เอกสารประกอบการบรรยาย เรื่อง Basic SQL
เอกสารประกอบการบรรยาย เรื่อง Active Server Pages (ASP)
ASP:ACCESS Database.
Seree Chinodom Connection Object Seree Chinodom Computer Science, BUU.
ASP:ACCESS Database.
ASP กับฐานข้อมูล.
ภาษา HTML.
Php with Database Professional Home Page :PHP
Database Programming Exceed Camp #2 24 October 2005.
Javascripts.
Master Page Style Sheet
การเข้าถึงฐานข้อมูล ด้วยกลุ่ม object ADO.NET
Page: 1 การพัฒนาโปรแกรมประยุกต์บนเว็บ อ. บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 12 กรกฎาคม 2550 HTML (HyperText Markup Language)
Web Standard มาตรฐานเว็บ (web Standard) คือเทคโนโลยีที่องค์กร
1. 2 บรรยายโดยผู้สอนและใช้เอกสาร ประกอบการสอนของผู้สอน สอนโดยใช้สื่อคอมพิวเตอร์ผ่านเครื่อง ฉาย อภิปรายในชั้นเรียนร่วมกัน ให้นิสิตค้นคว้าเพิ่มเติมจากตำราและ.
การจัดการแท็ก โดยใช้ Document Object Model : DOM ง การเขียนได นามิกเว็บเพจ ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดง พิทยาคม.
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
CHAPTER 12 SQL.
ASP เตรียมความพร้อมก่อนติดต่อกับ Ms Access การนำข้อมูลจากตารางมาแสดง
Download PHP. C:\windows\PHP.ini cgi.force_red irect = 0 พิมพ์แทรก.
ASP.NET Uthai ShiangJan Information and Communication Technology.
Navigation Controls Dr.sombut foithong Web Programming With C#.NET.
เทคโนโยลีเว็บและมาตรฐานสำหรับห้องสมุดดิจิทัล
1 XML & ASP.NET Nipat J Display XML data on the web Nipat J.
EndNote Web งานบริการสารนิเทศ ฝ่ายบริการทรัพยากรสารนิเทศ สำนักหอสมุด มหาวิทยาลัยเชียงใหม่ ปีการศึกษา
Chapter 8 WWW.
HTML HyperText Markup Language
ประเภทของคำสั่งของภาษา SQL
XML ( Extensible Markup Language )
Microsoft Access การใช้งานโปรแกรมระบบจัดการฐานข้อมูล
การสร้างเว็บเพจด้วยภาษา HTML
Everything that has a beginning has an end…
Database Design & Development
HTML (Hypertext Markup Language).
HTML5 (Hypertext Markup Language 5)
ภาษา SQL (Structured Query Language)
Service-Oriented Architecture
Chapter 3 : แบบจำลองฐานข้อมูล (Data Model)
Microsoft Visual Basic 2010
บทที่ 10 การเชื่อมต่อฐานข้อมูล
เอกสารประกอบการบรรยายรายวิชา Web Technology
Data Structure & Algorithm Concept
Introduction to VB2010 EXPRESS
SQL (Structured Query Language)
ภาษา JavaScript Webpage Design and Programming Workshop ( )
โดย อ.พัฒนพงษ์ โพธิปัสสา
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
การจัดการฐานข้อมูลด้วยโปรแกรม MS Access 2013
Register คลิก register.
การออกแบบระบบ System Design.
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
ADOBE Dreamweaver CS3.
DOM Document Object Model.
ระบบเครือข่ายคอมพิวเตอร์ Internet
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม PHP
XML, JSON และ AJAX – Web Programming and Web Database
การใช้งานฐานข้อมูล Web of Science
เรื่อง การวิเคราะห์และออกแบบฐานข้อมูล MySQL Database
Web Services ศูนย์เชียวชาญฉพาะทางด้านวิศวกรรมซอฟต์แวร์
ความรู้พื้นฐานเกี่ยวกับการสร้างเว็บไซต์
CIT2205 โปรแกรมประยุกต์ด้านการจัดการฐานข้อมูล
การสรุปผลข้อมูล และ Action Query
ใบสำเนางานนำเสนอ:

XML ( Extensible Markup Language ) เป็นภาษาที่ถูกออกแบบมาเพื่อรองรับการ แลกเปลี่ยนข้อมูลภายใต้มาตรฐานที่แตกต่างของ ภาษาต่าง ๆ ในปัจจุบัน ดังนั้น ภาษา XML เป็น ภาษาหนึ่งที่ออกแบบมาเพื่อให้เป็นภาษากลางใน การติดต่อสื่อสารระหว่างแพลตฟอร์ม ภาษา XML ไม่ได้เน้นที่การแสดงผล หรือ ควบคุมการทำงาน แต่เน้นที่การรองรับการแลก เปลี่ยนข้อมูลระหว่างกัน

การใช้บริการโฮมเพจหรือเว็บนั้นถูกเรียกว่า solutions โดยการเข้าไปจัดการนั้นทำได้ 2 แบบ - ฐานะผู้ใช้บริการ - ฐานะผู้ให้บริการเว็บเซอร์วิส การแลกเปลี่ยนข้อมูลกันภายในเว็บเซอร์วิสนั้น อาศัยภาษา XML เป็นตัวกลาง

ข้อแตกต่างระหว่าง HTML และ XML ภาษา XML ไม่ใช่ HTML และไม่ใช่ส่วนขยาย ของ HTML แต่ XML เป็นภาษาที่ถูกออกแบบมา เพื่อช่วยเพิ่มความสามารถให้กับ HTML ภาษา HTML ถูกออกแบบมาให้เน้นการแสดง ผลข้อมูลเพียงอย่างเดียว โดยไม่เข้าใจข้อมูล เช่น ตัวหนา ตัวเอียง ภาษา XML สามารถอธิบายข้อมูลส่วนต่าง ๆได้

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

การใช้งาน XML คือการนิยามข้อมูลขึ้นมา โดยใช้ tag ระบุว่า ข้อมูลนั้นคืออะไร เป็นการมอง XML ในลักษณะ เป็นแหล่งข้อมูลที่สามารถเรียกใช้งานจาก ภาษาใดก็ได้ ส่งผลให้เราสามารถแลกเปลี่ยน ข้อมูลกับภาษาใดก็ได้ที่รู้จักกับ XML

การใช้งาน XML (ต่อ) XML จะอาศัยโปรโตคอล SOAP (Simple Object Access Protocol) ซึ่งเป็นข้อตกลงใน การสื่อสารระหว่างเครือข่ายอินเทอร์เน็ต

ความหมายของ tag กับ element tag เป็นคำที่ใช้เรียก element ขึ้นมาทำงาน เช่น ถ้าเราต้องการใช้ element ของ body เรา ต้องใช้ tag เปิด เมื่อเริ่มต้นใช้งาน และเมื่อสิ้นสุดการใช้งาน element body จะต้อง ใช้ tag ปิด นั่นคือ tag ทำหน้าที่เรียก object ของเอกสาร เว็บออกมาใช้งาน สำหรับ element นั้นแทน คำว่า object นั่นเอง

ตัวอย่าง XML 001 นายประสพโชค ปัญจพันธ์ กรุงเทพ

รายละเอียด เริ่มต้นเป็นการประกาศส่วนที่เรียกว่า prolog หรือเรียกอีกอย่างว่า XML declaration หมายถึง ส่วนหัวของเอกสาร XML ที่เราต้องการใช้งาน และมีการเข้ารหัสภาษาไทยคือ windows-874 จากนั้นจะเข้าสู่พื้นที่แหล่งข้อมูลของเอกสาร XML ที่เรียกว่า Document Elements ซึ่ง ประกอบด้วย tag เปิดและ tag ปิด

รายละเอียด (ต่อ) ในการสร้าง tag จะต้องสร้าง tag ที่เรียกว่า Root Tag เพื่อทำหน้าที่บรรจุ tag อื่น ๆ ซึ่ง tag ที่ซ้อนอยู่ใน root tag นี้จะเรียกว่า Childs Tag ซึ่งซ้อนกันเป็นวงเป็นลำดับชั้น โดยที่ภาษา XML จะมองโครงสร้างนี้เป็นแบบโครงสร้างต้นไม้ การเขียนชื่อ tag ของ XML นั้นเป็น Case-Sensitive จึงต้องเขียนตัวพิมพ์ใหญ่หรือ ตัวพิมพ์เล็กให้ตรงกัน

การใช้ประโยชน์จากแหล่งข้อมูล XML ร่วมกับ HTML ใช้วิธี binding โดยใช้มุมมองของ HTML ใน รูปแบบของ DSO (Data Source Object) มองไป ยังข้อมูลที่อยู่ในแหล่งของ XML และจะมอง XML เป็นกลุ่มของข้อมูล หรือที่เรียกว่า Data Island การอ่านผลหรือประมวลผลข้อมูล XML ต้องอาศัย หน่วยความจำของเครื่องผู้ใช้ หรือ เครื่องลูกซึ่งจะ แปรผันตามปริมาณข้อมูลใน XML

การใช้ประโยชน์จากแหล่งข้อมูล XML ร่วมกับ HTML ทำได้ 2 วิธีคือ - ใช้ร่วมกับ tag …. เป็นการ เรียกดูข้อมูล Data Island โดยใช้ element ของ HTML ที่ชื่อว่า xml - ใช้ร่วมกับ tag …. เป็นการ ใช้งาน element table ของ HTML เพื่อสร้างตาราง ขึ้นมาแล้วนำข้อมูลที่อยู่ในแหล่งข้อมูล XML มาแสดง ผ่านตารางของ HTML

วิธีการที่จะทำให้ HTML ติดต่อกับ XML ทำได้ 2 ลักษณะคือ 1.แบบฝัง Data Island ทั้งหมดเข้าไปในไฟล์Data Island HTML (ผลการรัน)ผลการรัน 2. แบบอ้างอิงชื่อไฟล์ XML ใน HTML(*.XML)XMLHTML ( ผลการรัน ) ผลการรัน

ผลการรันแบบ Data Island

ผลการรันแบบอ้างอิง XML

การแสดงข้อมูลโดยใช้งาน tag ของ HTML การใช้งานข้อมูล XML โดยใช้ tag ร่วมกับ tag เป็นการนำข้อมูลในรูปแบบ xml มาใช้ร่วมกับ tag table และ xml ของ HTML เพื่อแสดงข้อมูลออกมา ซึ่งทำได้ 3 ลักษณะคือ - แสดงข้อมูลครั้งละ 1 record - แสดงข้อมูลตามจำนวน record ที่เรากำหนด - แสดงข้อมูลครบทุก record

การแสดงข้อมูลครั้งละ 1 record การแสดงข้อมูลนี้จะอาศัย tag.... และ tag.... ของ HTML ครั้งละ 1 record จากตัวอย่าง จะสร้างตัวอย่าง ปุ่ม 4 ปุ่มสำหรับการเปลี่ยน record ไปยัง record ถัดไป (แสดงผล)แสดงผล

ตัวอย่างการแสดงข้อมูลทีละ record

การแสดงข้อมูลตามจำนวน record ที่กำหนด การแสดงข้อมูลนี้จะอาศัย tag เป็น การแบ่งข้อมูลออกเป็นหน้าที่เรียกว่า Paging Control โดยสามารถกำหนดจำนวน record ที่จะแสดงในแต่ละหน้า โดยใช้ attribute datapagesize ของ tag เพื่อระบุ จำนวน record ที่ต้องการแสดงในแต่ละครั้ง (ตัวอย่าง และ การแสดงผล)ตัวอย่างการแสดงผล

ตัวอย่างการแสดงข้อมูลตามจำนวน record ที่กำหนด

การแสดงข้อมูลครบทุก record เป็นการแสดงแบบง่ายที่สุด เนื่องจากไม่มีเงื่อนไข ใด ๆ จากตัวอย่างให้กำหนด ตัวอย่างของไฟล์ การแสดงผล

ตัวอย่างการแสดงข้อมูลครบทุก record

การใช้งาน XML ร่วมกับ CSS ภาษา CSS (Cascading Style Sheets) หรือ อาจเรียกอีกชื่อหนึ่งว่า DHTML (Dynamic HTML) เป็นการกำหนดรูปแบบอักษร หรือข้อความและรูปภาพ ให้มีลักษณะสวยงาม รวมทั้งจัดวางตำแหน่งของรูปภาพหรือข้อความ ได้ตามที่เราต้องการที่เรียกว่า Cascading Style Sheets Positioning (CSS-P)

การแสดงผลข้อมูล XML ด้วยภาษา CSS สามารถทำได้ 2 ลักษณะคือ - แบบฝัง CSS เข้าไปในแหล่งข้อมูล XMLCSS แสดงผล - แบบอ้างอิงชื่อไฟล์ *.CSS ประกอบด้วย ไฟล์.CSS และ ไฟล์.xml (แสดงผล ).CSS.xmlแสดงผล

ผลการแสดงข้อมูลการฝัง CSS

ผลการแสดงข้อมูลแบบอ้างอิง.css ผ่าน.xml

ตัวอย่างการใช้ CSS-P เพื่อจัดตำแหน่งของข้อความให้ชัดเจนมากขึ้น โดยจะมีส่วนของไฟล์ css_positioning.css ทำหน้าที่จัดรูปแบบข้อความแทน โดยกำหนด attribute href= “css_positioning.css”css_positioning.css บนไฟล์.xml (แสดงผล).xml แสดงผล

การใช้งาน XML ร่วมกับ XSL(T) เบื้องต้น ภาษา XSL ถูกพัฒนาขึ้นมาเพื่อทำหน้าที่แสดง ผลให้กับภาษา XML โดยเฉพาะ ดังนั้นการแสดงผล โดยใช้ XSL จึงมีความสามารถมากกว่าภาษา HTML และ CSS เพราะสามารถสร้างเงื่อนไขการแสดงผล ได้มากกว่า

XSL (eXtensible Stylesheet Language) เป็นภาษาที่ทำหน้าที่แสดงผล XML และสามารถ ใช้ร่วมกับ HTML และ CSS ได้เป็นอย่างดี จุดประสงค์ของการใช้ XSL ร่วมกับ XML - ใช้จัดรูปแบบข้อมูล (Format Data) จากแหล่ง ข้อมูล XML แล้วนำไปแสดงผล - แปลงรูปแบบ (Transformation Data) แหล่ง ข้อมูล XML ตามเงื่อนไขที่ต้องการ แล้วนำไป แสดงผล

การแสดงผล XML ด้วย XSL แบบไม่มีเงื่อนไข จะต้องมีการใช้ element href=“******.xsl” ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงการใช้ xsl ร่วมกับ xml แบบไม่มีเงื่อนไข

การแสดงผล XML ด้วย XSL แบบมี attribute ใน แหล่งข้อมูล จะมีการระบุ attribute ให้ element ต่าง ๆ ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงการใช้ xsl ร่วมกับ xml แบบมี attribute

การแสดงผล XSL ร่วมกับ CSS จุดเด่นของ CSS คือการจัดการด้านรูปแบบที่ ปรากฏขึ้นมา ทั้งลักษณะข้อความและการจัดวาง ตำแหน่ง ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงการใช้ xsl ร่วมกับ CSS

พื้นฐานการแสดงผล XML ด้วยภาษา XSL แบบมีเงื่อนไข เราสามารถใส่เงื่อนไขในการแสดงผลไว้ใน xsl ได้ เพื่อที่จะเลือกเฉพาะข้อมูลบางส่วนที่ ต้องการ ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงแสดงผล XML ด้วยภาษา XSL แบบมีเงื่อนไข

พื้นฐานการแสดงผล XML ด้วยภาษา XSL แบบเงื่อนไข if-then ตัวอย่างนี้จะแสดงรายการ record แบบมีพื้นสี หลังสลับไปมาระหว่างแถวคู่และแถวคี่ ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงแสดงผล XML ด้วยภาษา XSL แบบเงื่อนไข if-then

พื้นฐานการแสดงผล XML ด้วยภาษา XSL แบบเงื่อนไข choose-when เงื่อนไขนี้เป็นการตรวจสอบว่า เมื่อข้อมูลตรง กับเงื่อนไขที่ระบุไว้แล้ว จะให้ทำคำสั่งใด ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงผล XML ด้วยภาษา XSL แบบเงื่อนไข choose-when

การสร้าง Hyperlink และ Link ด้วย XSL การทำลิงค์มี 2 ลักษณะคือ - ลิงค์ระหว่างเอกสาร (Hyperlink) - ลิงค์แบบ ตัวอย่างไฟล์ xmlตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xslตัวอย่างไฟล์ xsl การแสดงผล

ผลการแสดงผล Hyperlink และ

XML Data Schema มีลักษณะของตัวภาษาคล้ายกับ XML และ XSL โดยทำหน้าที่เป็นภาษาสำหรับกำหนดความถูกต้อง ของข้อมูล วิธีการกำหนดความถูกต้องโดยใช้ DTD ทำได้ 2 ลักษณะคือ - ฝังส่วนของภาษา DTD ไว้ใน XML - แบบอ้างอิงชื่อไฟล์.dtd

การใช้ DTD และ XML Data Schema DTD ย่อมาจาก Document Type Definition เป็นภาษาที่ทำหน้าที่กำหนดกฎ กติกาให้กับ element, attribute และ entity ที่อยู่ในแหล่ง ข้อมูล XML การตรวจสอบความถูกต้องของข้อมูลใน XML ทำได้ 2 วิธีคือ 1. DTD (Document Type Definition) 2. XML Data Schema

การฝังข้อมูล DTD ไว้ใน XML ถ้าฝัง DTD ไว้กับ XML เมื่อ run โปรแกรมบน IE จะไม่ปรากฎส่วนของ DTD ให้เห็น ต้องทำการ View source code จึงจะเห็นส่วนของ DTD ตัวอย่างตัวอย่างของไฟล์ XML ส่วนของ DTD

จาก DTD เป็นการระบุโครงสร้างของ element ในที่นี้ root element คือ book ซึ่งมี child element คือ bookdata และภายใต้ bookdata ก็จะมี child element คือ isbn, bookname, author, publisher, price และ homepage

เมื่อประกาศโครงสร้างให้กับแหล่งข้อมูล XML แล้ว ก็จะต้องกำหนดวิธีการประมวลผลข้อมูลใน แหล่งข้อมูล XML ให้กับตัวแปรภาษา XML Parser โดยสามารถแบ่งออกได้เป็น 3 กรณีคือ แบบที่ 1 แสดงข้อความหรือข้อมูลที่อยู่ระหว่าง element ที่สร้างขึ้นมาเรียกว่า PCDATA มาจาก Parsed Character Data เป็นข้อความที่ต้อง ตีความด้วยตัวแปรภาษา XML Parser ก่อน จากนั้นจึงแสดงข้อความออกมา

ข้อความที่จะถูกตัวแปรภาษา XML Parser ตีความได้นั้น ต้องอยู่ระหว่าง tag ที่สร้างขึ้นมา หรือถูก tag ดังกล่าวทำ Markup อยู่ เพื่อระบุจุด เริ่มต้นและจุดสิ้นสุดของข้อมูล เช่น Infopress ดังนั้นเมื่อใส่ข้อความเข้าไประหว่าง element ที่ สร้างขึ้นมา ตัวแปรภาษาจะแสดงเฉพาะข้อความ โดยไม่แสดง element ขึ้นมา

แบบที่ 2 เป็นข้อความหรือข้อมูลที่ไม่ต้องตีความ ไม่ต้องแสดงผลออกมา เรียกว่า CDATA มาจาก คำว่า Character Data เป็นการกำหนดค่าให้กับ attribute ส่วนใหญ่จะใช้ในการกำหนดกฎกติกา ให้กับ attribute ต่าง ๆ ที่สร้างขึ้นมาในแหล่ง ข้อมูล XML

แบบที่ 3 ไม่ใช่ข้อมูล ไม่ใช่ข้อความ แต่เป็น entity แบบไม่ต้องตีความ (Unparsed Entity) ที่สร้างขึ้นมาเองเรียกว่า NDATA มีลักษณะเช่น เดียวกับ CDATA แต่ทำหน้าที่กำหนดกฎ กติกาที่ เกี่ยวกับไฟล์รูปภาพที่สามารถแสดงได้บนเว็บ เช่น GIF หรือ JPEG ให้กับ attribute ของ element ที่เกี่ยวข้องกับรูปภาพ เช่น ในที่นี้ XML Parser ไม่ต้องตีความค่าที่ระบุให้ src แต่ต้องค้นหารูปภาพตามที่ระบุว่ามีหรือไม่ ถ้า ไม่ได้จะแสดงข้อความ logo.gif ออกมาที่หน้าเว็บ

จากตัวอย่างที่ผ่านมา เป็น element ที่ต้อง ตีความก่อน จึงกำหนดให้เป็น PCDATA โดย ใช้คำสั่ง ELEMENT ของภาษา DTD การกำหนดความถูกต้องด้วยการอ้างอิงไฟล์ *.dtd การตรวจสอบความถูกต้องของข้อมูลใน XML ด้วยภาษา DTD แบบอ้างอิงชื่อไฟล์.dtd สามารถ ระบุไว้ใน tag ดังนี้ ตัวอย่างไฟล์ xml ตัวอย่างไฟล์ dtd

Entity entity ในภาษา XML คือค่าคงที่ต่าง ๆ ที่สร้าง ขึ้นมา ตัวอย่างของ entity Entityรูปแบบการใช้ความหมาย it&itLess than gt&gtGreater than amp&ampAmpersand apos&aposApostrophe or quote quot&quotDouble quote nbsp&nbspSpace 1 space ตัวอย่าง Standard Entity

การสร้าง entity แบบฝังในแหล่งข้อมูล XML ตัวอย่างไฟล์ xml จากตัวอย่าง ส่วนแรกเป็นการประกาศความ ถูกต้องของข้อมูลโดยใช้ DTD จากนั้นเป็นการสร้าง entity ขึ้นมาใช้เอง โดยใช้ คำสั่ง ENTITY ของภาษา DTD เช่น

การเรียกใช้ entity ที่ฝังในแหล่งข้อมูล XML จะใช้เครื่องหมาย & นำหน้า และปิดท้ายด้วย เครื่องหมาย ; ตัวอย่างตัวอย่างที่ใช้ &psh; &dst;

การสร้าง entity แบบแยกไฟล์อิสระ ตัวอย่างไฟล์ xml ตัวอย่างไฟล์ dtd ข้อดีของการแยกการตรวจสอบออกเป็นไฟล์ ต่างหาก คือกรณีที่มีแหล่งข้อมูล XML ที่มี โครงสร้างเหมือนกัน เราสามารถใช้ชื่อไฟล์ dtd เดียวกันได้ นอกจากนั้นเราสามารถแยกเก็บ ไฟล์ dtd ไว้ใน host ที่ต่างกันได้ โดยเวลา อ้างอิงก็ระบุ path ที่ไฟล์ได้ถูกเก็บไว้

การใช้งาน XML ร่วมกับ JavaScript การใช้ XML ร่วมกับ JavaScript จะช่วยให้ บราวเซอร์ Netscape สามารถแสดงผลข้อมูลได้ DOM มาจาก Document Object Model เป็นคำที่ ใช้เรียกแบบจำลองของเอกสารบนเว็บ

ตัวอย่างของ DOM ในภาษา HTML New Page 1

ภาษา JavaScript จะมองโครงสร้างของแหล่ง ข้อมูล XML เป็นโหนด (node) เช่น Root Node หรืออาจจะเรียกว่า Root Element เช่นเดียวกับ ภาษา XML ก็ได้ ขณะที่โหนดลูก (Child Node) ก็เทียบได้กับ element ลูก

การอ่านข้อมูล XML โดยใช้ JavaScript ร่วมกับ HTML จะเป็นการใช้ความสามารถของภาษา JavaScript เพื่ออ่านข้อมูลมาจาก XML และนำ ข้อมูลไปแสดงผลโดยอาศัยภาษา HTML โดยมี 2 ลักษณะคือ - การอ่านข้อมูลแบบเป็นกลุ่ม - การอ่านข้อมูลทีละ element

การอ่านข้อมูล XML แบบเป็นกลุ่ม เริ่มจากการสร้างไฟล์ XML (ตัวอย่างไฟล์)ตัวอย่างไฟล์ จากนั้นสร้างโค้ด html โดยใช้ JavaScript ในการอ่านข้อมูล ภายใต้คำสั่ง <Script Language=“JavaScript” For=“window” Event=“onload”>

จากนั้นต้องทำการสร้างตัวแปรออบเจ็กต์ของ แบบจำลอง DOM ของภาษา XML โดยผ่าน เทคโนโลยีของ ActiveX เพื่อนำตัวแปรมาใช้ ในการอ้างอิงถึงข้อมูลต่อไป var xmlDocs = new ActiveXObject(“Microsoft.XMLDOM”)

แล้วกำหนดคุณสมบัติเพื่อให้บราวเซอร์ ทำการโหลดข้อมูลทุกอย่างให้เสร็จสมบูรณ์ก่อน แล้วค่อยแสดงผลที่หน้าจอ xmlDocs.async=“false” โดยกำหนดคุณสมบัติ async ให้มีค่าเป็น false

จากนั้นใช้เมธอด load เพื่ออ่านข้อมูล XML ที่ต้องการจากไฟล์ bookdata.xml xmlDocs.load(“bookdata.xml”) และใช้ตัวแปรออบเจ็กต์ xChild เพื่อเก็บข้อมูล ทุกโหนดที่อยู่ใน bookdata.xml ผ่านทาง คุณสมบัติ childNodes xChild=xmlDocs.documentElement.childNodes

โดยการอ่านข้อมูลที่อยู่ในแต่ละโหนดออกมานั้น จะทำการอ้างอิงแบบอาร์เรย์ โดยลำดับแรกเริ่ม จาก 0 ผ่านทางคุณสมบัติ childNodes โดยใช้ ตัวแปร Data1 ถึง Data6 ร่วมกับคุณสมบัติ innerText Data1.innerText = xChild(0).text Data2.innerText = xChild(1).text Data3.innerText = xChild(2).text Data4.innerText = xChild(3).text Data5.innerText = xChild(4).text Data6.innerText = xChild(5).text

การแสดงผลทำโดยใช้ tag และใช้ tag ร่วมกับ attribute id อ้างอิงชื่อ ตัวแปรที่เก็บข้อมูลในแต่และโหนด ตัวอย่าง การแสดงข้อมูลโหนดแรก <font face=“MS Sans Serif” Size=“2”> ข้อมูลชุดที่ 1 ตัวอย่างไฟล์.html

การอ่านข้อมูล XML ทีละ element เป็นการอ้างข้อมูลจาก XML โดยอ้างอิงชื่อ element หรืออ้างอิงชื่อโหนด วิธีนี้เป็นวิธีการที่ ยืดหยุ่นกว่า เพราะสามารถเลือกโหนดใดก็ได้ ที่อยู่ระดับใดก็ได้เพื่อนำมาแสดงผล ในการอ้างอิงนี้ยังคงต้องมีการระบุการใช้ Script Language และสร้างตัวแปรออบเจ็กต์คือ xmlDocs ผ่านเทคโนโลยี ActiveX

จากโครงสร้างของลำดับข้อมูล

ถ้าต้องการข้อมูลชื่อหนังสือ และชื่อผู้แต่งของ ข้อมูลตัวแรก จะใช้เมธอด getElementsByTagName พร้อมกับระบุชื่อ โหนดที่อยู่ในระดับสูงกว่า 1 ระดับ ในที่นี้คือ ตัวอย่างข้อมูลชุดแรก >/isbn> คู่มือการสร้างเว็บ กฤษณะ สถิตย์ infopress 299

จากนั้นใช้คุณสมบัติ item เพื่ออ่านลำดับของ โหนดลูกที่อยู่ในโหนด ถ้าต้องการชื่อหนังสือ และ ชื่อผู้แต่ง ของหนังสือจากข้อมูลชุด แรก ต้องใส่ item(0) และแสดงข้อมูลทั้งสอง โดยใช้คุณสมบัติ text (ตัวอย่างไฟล์)ตัวอย่างไฟล์ document.write(“ ชื่อหนังสือ ”) document.write(xmlDocs.getElementsByTagName (“bookname”).item(0).text) document.write(“ ”) document.write(“ ผู้แต่ง ”) document.write(xmlDocs.getElementsByTagName (“author”).item(0).text)

การใช้งาน XML ร่วมกับ XSL ด้วย JavaScript ภาษา JavaScript สามารถใช้ร่วมกับ XSL เพื่ออ่านข้อมูลออกจากแหล่งข้อมูล XML ออกมา พร้อม ๆ กับการใช้ความสามารถของ XSL ใน การกำหนดรูปแบบการแสดงผล ตัวอย่างไฟล์ xml ที่จะใช้เป็นแหล่งข้อมูล มีชื่อ ไฟล์คือ xmlDataSource.xmlxmlDataSource.xml ตัวอย่างไฟล์ xslxsl

จากไฟล์.html จะมีการสร้างตัวแปรออบเจ็กต์ XMLDOM ขึ้นมา 2 ตัวเพื่อเก็บแหล่งข้อมูล XML และ XSL โดยที่ - ตัวแปรออบเจ็กต์ xmlDocs เก็บข้อมูล XML - ตัวแปรออบเจ็กต xslDocs เก็บไฟล์ XSL ซึ่งประกาศได้ดังนี้ var xmlDocs=new ActiveXObject(“Microsoft.XMLDOM”) var xslDocs=new ActiveXObject(“Microsoft.XMLDOM”)

จากนั้นกำหนดให้คุณสมบัติ async เป็น false และใช้เมธอด load อ่านข้อมูลจาก xml เก็บไว้ ในตัวแปรออบเจ็กต์ xmlDocs xmlDocs.aysnc = false xmlDocs.load(“xmlDataSource.xml”) และดึงชุดคำสั่ง xsl มาเก็บไว้ในตัวแปรออบเจ็กต์ xslDocs โดยใช้เมธอด load xslDocs.async = false xslDocs.load(“xsl_For_xmlDataSource.xsl”)

สุดท้ายทำการส่งค่าตัวแปรออบเจ็กต์ xslDocs ให้กับเมธอด transformNode ของตัวแปร ออบเจ็กต์ xmlDocs เพื่อกำหนดส่วนแสดงผลให้ กับแหล่งข้อมูล xml และแสดงผลในบราวเซอร์ ผ่านทางเมธอด write document.write(xmlDocs.transformNode(xslDocs)) ตัวอย่างของไฟล์ html

การใช้งาน XML ร่วมกับ ASP ในส่วนนี้จะเป็นการใช้ XML ร่วมกับภาษาฝั่ง เซิร์ฟเวอร์ ASP โดยจะมีการใช้งานร่วมกับฐาน ข้อมูล Access ซึ่งการใช้ลักษณะเช่นนี้จะทำให้ สามารถใช้งาน XML กับบราวเซอร์ที่ไม่ สนับสนุนภาษา XML ได้อย่างสมบูรณ์

พื้นฐานการใช้ XML ร่วมกับ XSL โดยใช้ ASP เริ่มจากการสร้างแหล่งข้อมูล XML และไฟล์ XSL ตามตัวอย่างของไฟล์ดังนี้ ตัวอย่างไฟล์ xml ตัวอย่างไฟล์ xsl

จากนั้นสร้างไฟล์ ASP ทำหน้าที่เรียกใช้แหล่ง ข้อมูล xmlDataSource.xml และ xslFile.xsl โดยมีข้อมูลตามไฟล์ตัวอย่างไฟล์ตัวอย่าง แสดงผลการรัน จากไฟล์ ASP เริ่มจากการประกาศตัวแปร 4 ตัว โดยตัวแปรออบเจ็กต์ xmlDocs ทำหน้าที่เก็บ แบบจำลองของเอกสารต้นฉบับแบบ XML DOM และตัวแปรออบเจ็กต์ xslDocs เก็บโครงสร้าง ของ xsl

ผลการรัน ASP

เมื่อกำหนดตัวแปรแล้ว จึงสร้างออบเจ็กต์ XML DOM สำหรับเก็บไว้ในตัวแปรออบเจ็กต์ xmlDocs และ xslDocs จากนั้นกำหนดการคุณสมบัติการทำงาน async เป็น false โดยกำหนดให้กับ แหล่งข้อมูล XML เพื่อที่จะให้ฝั่ง server ทำ การประมวลผล XML และ XSL ให้เสร็จสมบูรณ์ ก่อนจึงแสดงผลลัพธ์บนบราวเซอร์ แล้วเก็บพาธของข้อมูล XML ไว้ที่ตัวแปร xmlPath โดยใช้คำสั่ง xmlPath=Server.MapPath(“xmlDataSource.xml”)

ต่อมาจึงทำการอ่านข้อมูล XML โดยใช้ เมธอด load เก็บไว้ที่ตัวแปรออบเจ็กต์ xmlDocs ผ่านทางตัวแปร xmlPath xmlDocs.load(xmlPath) เมื่อถึงจุดนี้แสดงว่า server เก็บโครงสร้างข้อมูล XML สมบูรณ์แล้ว ต่อไปจึงทำการอ่านชุดคำสั่ง XSL เพื่อนำมาประมวลผลโดยกำหนดคุณสมบัติ และทำการ load ไฟล์ xslDocs.async=False xslPath=Serve.MapPath(“xslFile.xsl”) xslDocs.load(xslPath)

ก่อนแสดงผลลัพธ์ เราสามารถตรวจสอบว่า ไฟล์ XSL ไม่มีข้อผิดพลาดโดยใช้เมธอด parseError ร่วมกับเมธอด reason เพื่อแสดง สาเหตุหากพบข้อผิดพลาด If xslDocs.parseError.errorCode <> 0 Then Response.Write “ไม่สามารถแสดงแหล่งข้อมูล XML เนื่องจาก” Response.Write xslDocs.parseError.reason Else Response.Write(xmlDocs.transformNode (xslDocs))

สุดท้ายทำการคือทรัพยากรสู่ระบบของ ตัวแปรออบเจ็กต์ xmlDocs และตัวแปรออบเจ็กต์ xslDocs SET xmlDocs = Nothing SET xslDocs = Nothing

การเก็บข้อมูลในรูปแบบ XML จากฐานข้อมูล เป็นการแปลงข้อมูลจากฐานข้อมูลให้จัดเก็บ อยู่ในลักษณะของแหล่งข้อมูล XML โดยจะใช้ ออบเจ็กต์ Recordset ร่วมกับออบเจ็กต์ Stream ของ ADO 2.5 ขึ้นไป ซึ่งสามารถทำได้ 4 วิธีคือ 1. ใช้ออบเจ็กต์ Stream ของ ADO แล้วจัดเก็บ ข้อมูลดังกล่าวให้อยู่ในรูปแบบโครงสร้างของ XML

2. ใช้ออบเจ็กต์ Response ของภาษา ASP 3. เขียนโค้ดโดยตรงเพื่ออ่านโครงสร้างของ ฐานข้อมูล แล้วจัดเก็บในรูปแบบของ XML 4. ใช้แบบจำลอง Microsoft XMLDOM โดยตรง ซึ่งเป็นการเรียกใช้งานกลุ่ม ออบเจ็กต์ XML โดยตรง

การดึงข้อมูลจากฐานข้อมูลแบบอาศัยออบเจ็กต์ Stream จากโครงสร้างฐานข้อมูล Microsoft Access ซึ่งมี โครงร่างและรายละเอียดดังนี้

รายละเอียด

ตัวอย่างไฟล์ ASP ตัวอย่างไฟล์ ASP (XMLStream.asp) เมื่อรัน asp จะสามารถเข้าดูไฟล์ xml ที่ถูก สร้างขึ้นได้โดยไปที่เมนู view->source จะได้ไฟล์ตามตัวอย่างตัวอย่าง โครงสร้างข้อมูล XML นี้ได้จากออบเจ็กต์ Recordset ของ ADO เก็บรายการ record ต่าง ๆ ที่ได้จากการ query แล้วส่งต่อมายัง ออบเจ็กต์ Stream เพื่อนำข้อมูลมาสู่ฝั่ง ไคลเอนต์ แต่ข้อมูลดังกล่าวจะไม่ปรากฎที่ หน้าบราวเซอร์ จะต้อง view -> source

เหตุที่ไม่ปรากฏรูปแบบของข้อมูล XML ที่ บราวเซอร์ เนื่องจากไม่ได้มีการสร้างไฟล์ xsl เพื่อทำหน้าที่แสดงผล ส่วนที่ใช้ในการ query ข้อมูลจากตาราง detail ของ Access คือคำสั่ง sqlMain=“SELECT * FROM Detail ORDER BY ID”

จากนั้นจะสร้างออบเจ็กต์ Recordset ที่ชื่อว่า reMain โดยใช้เมธอด Execute ของ ออบเจ็กต์ Connection SET rsMain=Conn.Execute(sqlMain) ต่อมาจะสร้างออบเจ็กต์ Stream เพื่อทำ หน้าที่ลำเลียงข้อมูล SET stmMain=Server.CreateObject(“ADODB.Stream”)

ที่สำคัญที่สุดคือการถ่ายข้อมูลจากออบเจ็กต์ Recordset ไปสู่ออบเจ็กต์ Stream โดยใช้ เมธอด Save ของออบเจ็กต์ Recordset และ ระบุให้จัดโครงสร้างของข้อมูลให้อยู่ในรูป XML โดยการส่งค่าอาร์กิวเมนต์ adPersistXML rsMain.Save stmMain,adPersistXML

หลังจากที่ออบเจ็กต์ Stream ได้รับข้อมูลแล้ว จะทำหน้าที่ส่งข้อมูลไปยังไคลเอนต์ โดยระบุให้ ฝั่งไคลเอนต์ทราบว่าข้อมูลที่จะส่งเป็นชนิด Text ที่มีโครงสร้างเป็น XML โดยการใช้งานออบเจ็กต์ Response ร่วมกับคุณสมบัติ ContentType Response.ContentType=“text/xml”

จากนั้นกำหนดให้แสดงข้อมูล โดยการใช้งาน ออบเจ็กต์ Response ร่วมกับเมธอด Write ข้อมูลที่ส่งมาจะอยู่ในออบเจ็กต์ stream ให้ใช้ เมธอด Readtext ของออบเจ็กต์ Stream อ่าน ออกมา Response.Write stmMain.Readtext ท้ายที่สุดคือ การคืนทรัพยากรของออบเจ็กต์ Stream สู่ระบบ stmMain.Close SET stmMain=Nothing

การดึงข้อมูลจากฐานข้อมูลแบบอาศัยออบเจ็กต์ Response วิธีนี้จะดึงข้อมูลจากฐานข้อมูลออกมาแล้ว เก็บข้อมูลในรูปแบบ XML โดยอาศัยออบเจ็กต์ Response ของ ASP ตัวอย่างของไฟล์ตัวอย่างของไฟล์ (XMLResponse.asp) ผลของการรันผลของการรัน (link file.txt)link file.txt

การดึงข้อมูลจากฐานข้อมูลแบบอาศัยออบเจ็กต์ Response วิธีนี้จะดึงข้อมูลจากฐานข้อมูลออกมาแล้ว เก็บข้อมูลในรูปแบบ XML โดยอาศัยออบเจ็กต์ Response ของ ASP ตัวอย่างของไฟล์ตัวอย่างของไฟล์ (XMLResponse.asp) ผลของการรัน

ข้อมูลที่ปรากฏขึ้นมาเป็นโครงสร้างของข้อมูล ที่อยู่ในฐานข้อมูลที่ query ขึ้นมา ไมโครซอฟท์ กำหนดให้ใช้ XML Data-Schema ทำหน้าที่ ตรวจสอบความถูกต้องของข้อมูลแทนที่จะใช้ ภาษา DTD โดยสามารถแยกข้อมูลที่ได้เป็น 2 ส่วน คือ ส่วนที่ 1 ส่วนของ XML Data-Schemaส่วนที่ ส่วนที่ 2 ข้อมูลจากฐานข้อมูลที่แปลงเป็น XMLส่วนที่

โครงสร้างของ XML Data-Schema XML Data-Scehma คือภาษาที่ทำหน้าที่ ตรวจสอบความถูกต้องให้กับข้อมูลที่จัดเก็บอยู่ใน รูปแบบของ XML เหมือนกับภาษา DTD จะใช้ร่วม กับข้อมูลที่ถูก query ออกมา ความหมายของ XML Data-Schema เพื่อให้สามารถเข้าใจความหมายและ ความสำคัญของคำสั่งที่แสดงขึ้นมา

ส่วนแรกเรียกว่า ส่วนประกาศเนมสเปซของ XML Data-Schema เพื่อให้รับรู้ว่าจะใช้คำนำหน้า (prefix) เพื่อระบุความหมายอะไร คำนำหน้าหน้าที่ s ระบุโครงสร้างของข้อมูล ชนิดของข้อมูล เงื่อนไขในการจัดเก็บข้อมูล ขอบเขตข้อมูล dt ระบุประเภทข้อมูลปลีกย่อยจากคำนำหน้าตัว s อีก ชั้นหนึ่งให้ละเอียดยิ่งขึ้น เช่น เป็น string, int rs หมายถึง 2 ส่วนคือขอบเขตของข้อมูล และส่วน ของข้อมูล ซึ่งเป็นรายละเอียดปลีกย่อยจาก s เช่น เป็นค่า null ได้หรือไม่ z ข้อมูลที่ใช้งาน หรือ record ในฐานข้อมูล

ตัวอย่าง คำนำหน้าตัวอย่าง s <xml xmlns:s= ‘ uuid:BDC6EF0-6DA3-11d1- A2A3-00AA00C14882 ’ dt xmlns:dt= ‘ uuid:C2F ?B3-11d1-A29F- 00AA00C14882 ’ rs xmlns:rs= ‘ urn:schemas-microsoft- com:rowset ’ z Xmlns:z= ‘ #RowsetSchema ’ >

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

ค่า attribute content อื่น ๆ มีรายละเอียดดังนี้ ค่า attributeรายละเอียด emptyไม่สามารถบรรจุ element ต่าง ๆ ได้ นั่นหมายถึงค่าว่าง textOnlyเก็บได้แต่เฉพาะข้อความโดด ๆ เพียง อย่างเดียว ไม่สามารถบรรจุ element eltOnlyเก็บได้แต่เฉพาะ element เพียงอย่าง เดียว ไม่สามารถเก็บข้อความโดด ๆ ได้ mixedเก็บได้ทั้ง element และข้อความโดด ๆ

ต่อจากนั้นเป็นการระบุเงื่อนไขในการจัดเก็บ ข้อมูลแต่ละแถวมาจากที่กำหนดให้กับ Access ในขณะออกแบบตาราง ในกรณีนี้เริ่มต้นที่ฟิลด์ ID (name=‘ID’) โดยที่สามารถเป็นค่า Null ได้หรือไม่ (rs:nullable=‘true’) เป็นข้อมูลชนิดใด (dt:type=‘int’) กำหนดพื้นที่จัดเก็บข้อมูลตายตัวหรือไม่ (rs:fixedlength=‘true’)

ตัวอย่าง <s:AttributeType name=‘ID’ rs:number=‘1’ rs:nullable=‘true’ rs:maydefer =‘true’ rs:writeunknown=‘true’> <s:datatype dt:type=‘int’ dt:maxLength=‘4’ rs:precision=‘10’ rs:fixedlength=‘true’/> ส่วนฟิลด์อื่น ๆ เช่น <s:AttributeType name=‘Title’ rs:number=‘2’ rs:nullable=‘true’ rs:maydefer =‘true’ rs:writeunknown=‘true’>

เมื่อกำหนดเงื่อนไขต่าง ๆ แล้ะวก็จะเข้าสู่ส่วน ของข้อมูล ซึ่งจะใช้คำนำหน้าว่า z:row ข้อมูลต่าง ๆ ที่จัดเก็บใน record จะถูกแปลง ให้อยู่ในสถานะเป็น attribute ของ element z:row ทุกฟิลด์ ส่วนแรกนี้เป็นของ record แรก ประกอบด้วย 3 ฟิลด์คือ ID, Title และ Description <z:row ID='1' Title='Visual Studio 98 Service Pack 5' URL='msdn.microsoft.com/vstudio/sp/vs6sp5/ dnldoverview.asp’ Description=‘ ไฟล์ Service Pack 5 ของ Visual Studio 98 มีให้เลือก 2 แบบคือ เฉพาะ Visual Basic 6.0 กับ Visual Studio 98 ทั้งชุด'/>

การจัดส่วนแสดงผลให้กับ XML ที่เกิดจาก ADO Recordset สำหรับการใช้ XSL ร่วมกับ XML ที่เกิดจาก การทำ query จะมีโครงสร้างของ XML Data- Schema ติดมาด้วย เพื่อกำหนดส่วนแสดงผล ให้กับแหล่งข้อมูล XML โดยวิธีการนี้ข้อมูลจะถูก จัดเก็บให้อยู่ในสถานะเป็น attribute ของ element z:row ส่งผลให้เวลาที่ต้องการข้อมูล กำกับไว้หน้าชื่อ tag ด้วยเสมอ ตัวอย่างตัวอย่าง

จากไฟล์ asp ได้ผลดังนี้ ตัวอย่างไฟล์.xsl ตัวอย่างไฟล์.xsl ที่ใช้ และไฟล์ xml ที่ได้ไฟล์ xml

ข้อแตกต่าง ในไฟล์ XML_With_XSL.asp คือ ต้องระบุชื่อไฟล์ XSL เพื่อทำหน้าที่จัดส่วน แสดงผลให้กับแหล่งข้อมูล XML ที่ได้จากการ ทำ query ในที่นี้คือไฟล์ xslFile1.xsl Response.Write(“?xml-stylesheet type=‘text/xsl’ href=‘xslFile1.xsl’?>”) ในส่วนของไฟล์ XSL จะมีการสั่งวนลูปเพื่อให้ อ่านข้อมูลที่เก็บอยู่ใน element z:row โดยจะ ต้องระบุลำดับชั้นให้ถูกต้อง

เนื่องจากข้อมูลถูกจัดเก็บอยู่ในสถานะ attribute นำหน้าชื่อ tag เสมอ เช่น

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

แนวคิด คือจะสร้างไฟล์ xml ขึ้นมาโดยอาศัย คอมโพเนนท์ FileSystemObject โครงสร้างของ แหล่งข้อมูลที่ได้จะเป็นไปตามชุดคำสั่ง SQL ที่ query เข้าไปในฐานข้อมูล และจะใช้ชื่อของแต่ ละคอลัมน์เป็นตัวกำหนดชื่อ tag ต่าง ๆ ซึ่งแหล่ง ข้อมูล XML ส่งผลให้ได้ชื่อ tag XML เช่นเดียวกับชื่อฟิลด์ที่ตั้งในตาราง จากการใช้ฐานข้อมูล main.mdb จะได้ ไฟล์ในพาธ c:\ ชื่อว่า XMLFileResult.xml ซึ่งสร้างโดยอัตโนมัติ

ตัวอย่างไฟล์ ADORecordsetToXML.asp ตัวอย่างการรัน ตัวอย่างตาราง Detail ในไฟล์ main.mdb แสดงดังรูป

ตัวอย่างไฟล์ XMLFileResult.xml

จากไฟล์ เริ่มต้นด้วยการสร้างการเชื่อมต่อกับ ฐานข้อมูล โดยใช้ออบเจ็กต์ Connection ของ ADO strConn=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(“main.mdb”) SET Conn =Server.CreateObject(“ADODB.Connection”) Conn.ConnectionString=strConn Conn.Open

ต่อจากนั้นจะสร้างชุดคำสั่ง SQL เพื่อเลือกฟิลด์ที่ ต้องการนำมาแปลงเป็น XML เช่น sqlMain=“SELECT * FROM Detail ORDER BY ID” SET rsMain=Conn.Execute(sqlMain) เมื่อได้ออบเจ็กต์ Recordset แล้ว เราจะเก็บ จำนวนฟิลด์ไว้ในตัวแปร reFieldcount ก่อนไปทำ การอ่านข้อมูล rsFieldCount=rsMain.Fields.Count

ต่อมาจะสร้างออบเจ็กต์ FileSystemObject ที่ชื่อ ว่า fsoADOToXML ขึ้นมา SET fsoADOToXML=Server.CreateObject (“Scripting.FileSystemObject”) สั่งสร้างไฟล์ fsoXMLFile ขึ้นใหม่ โดยใช้เมธอด CreateTextFile SET fsoXMLFile=fsoADOToXML.CreateTextFile (“C:\XMLFileResult.xml”)

จากนั้นจะเขียนข้อความลงในไฟล์ โดยใช้คำสั่ง WriteLine fsoXMLFile.WriteLine(“<?xml version=‘1.0’ encoding=‘windows-874’?>”) และสร้าง tag เปิดของรากขึ้นมาก่อน fsoXMLFile.WriteLine(“ ”) และเข้าสู่ส่วนของเนื้อหา โดยจะวนลูปจนหมดทุก record Do While rsMain.EOF=False

และสร้าง tag ลูก fsoXMLFile.WriteLine(“ ”) จากนั้นส่งให้วนลูปจนครบทุกคอลัมน์ For i=0 To (rsFieldCount-1) และเก็บชื่อฟิลด์ไว้ใน FieldDBName โดยการอ่าน จากคุณสมบัติ Name ของออบเจ็กต์ Fields กรณี นี้รอบแรกตัวแปร FieldDBName จะเก็บค่า ID FieldDBName=rsMain.Fields(i).Name จากนั้นสร้าง tag เปิด สำหรับแต่ละฟิลด์ fsoXMLFile.WriteLine(“ ”)

จากนั้นตรวจสอบความถูกต้องว่าในฟิลด์นั้น ๆ มี ข้อมูลเก็บอยู่หรือไม่ If IsNull(rsMain.Fields(FieldDBName).Value) OR Trim(rsMain.Fields(FieldDBName).Value)= “” Then xmlTagData=“ไม่มีข้อมูล” Else xmlTagData= rsMain.Fields(FieldDBName).Value End IF จากนั้นจะเข้าสู่ข้อมูล tag ย่อย fsoXMLFile.WriteLine(xmlTagData)

และปิดด้วย tag ปิด fsoXMLFile.WriteLine(“ ”) Next หลังจากวนลูปจนครบทุกฟิลด์แล้วก็จะปิด tag ลูก ด้วย fsoXMLFile.WriteLine(“ ”) rsMain.MoveNext Loop

จากนั้นปิด tag ราก fsoXMLFile.WriteLine(“ ”) และแสดงผลการทำงานเพื่อแจ้งให้ผู้ใช้ทราบ Response.Write(“<meta http-equiv=‘Content-Type’ content=‘text/html; charset=windows-874’>”) Response.Write(“<font name=‘MS Sans Serif’ size=‘2’ color=‘red’>”) Response.Write(“แปลงข้อมูล เรียบร้อยแล้ว”) Response.Write(“ ”)