งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

XML ( Extensible Markup Language )

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "XML ( Extensible Markup Language )"— ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

8 <?xml version=“1.0” encoding “windows-874”?>
<persondata> <id>001</id> <first-name>นายประสพโชค</first-name> <last-name>ปัญจพันธ์<last-name> <address>กรุงเทพ</address> </persondata>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44 ผลการแสดงผล Hyperlink และ E-mail

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

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

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

48

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

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

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

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

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

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

55 entity ในภาษา XML คือค่าคงที่ต่าง ๆ ที่สร้าง ขึ้นมา ตัวอย่างของ entity
รูปแบบการใช้ ความหมาย it &it Less than gt &gt Greater than amp &amp Ampersand apos &apos Apostrophe or quote quot &quot Double quote nbsp &nbsp Space 1 space ตัวอย่าง Standard Entity

56 การสร้าง entity แบบฝังในแหล่งข้อมูล XML
จากตัวอย่าง ส่วนแรกเป็นการประกาศความ ถูกต้องของข้อมูลโดยใช้ DTD จากนั้นเป็นการสร้าง entity ขึ้นมาใช้เอง โดยใช้ คำสั่ง ENTITY ของภาษา DTD เช่น <!ENTITY psh “สำนักพิมพ์ > <!ENTITY dst “จัดจำหน่ายโดย >

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

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

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

60 ตัวอย่างของ DOM ในภาษา HTML
<head> <title>New Page 1</title> </head> <body> </body> </html>

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

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

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

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

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

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

67 โดยการอ่านข้อมูลที่อยู่ในแต่ละโหนดออกมานั้น
จะทำการอ้างอิงแบบอาร์เรย์ โดยลำดับแรกเริ่ม จาก 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

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

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

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

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

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

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

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

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

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

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

78 พื้นฐานการใช้ XML ร่วมกับ XSL โดยใช้ ASP

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

80 ผลการรัน ASP

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

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

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

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

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

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

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

88 รายละเอียด

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

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

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

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

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

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

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

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

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

98

99

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

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

102 ตัวอย่าง คำนำหน้า ตัวอย่าง 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’> <s:Schema id=‘RowsetSchema’>

103 เมื่อประกาศส่วนเนมสเปซแล้ว จะเป็นขั้นตอนการ
ระบุรายละเอียด เพื่อให้เก็บข้อมูลได้ตามเงื่อนไข ที่ต้องการ โดยเริ่มต้นในแต่ละแถวจะกำหนดว่า ให้ root element เก็บได้แต่เฉพาะ element ลูก เท่านั้น ไม่สามารถเก็บข้อความโดด ๆ ได้ ต้องอยู่ ในสถานะ element เพียงอย่างเดียว เช่น <s:ElementType name=‘row’ content=‘eltOnly’>

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

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

106 ตัวอย่าง ส่วนฟิลด์อื่น ๆ เช่น
<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> ส่วนฟิลด์อื่น ๆ เช่น <s:AttributeType name=‘Title’ rs:number=‘2’ <s:datatype dt:type=‘string’ dt:maxLength=‘200’/>

107 เมื่อกำหนดเงื่อนไขต่าง ๆ แล้ะวก็จะเข้าสู่ส่วน
ของข้อมูล ซึ่งจะใช้คำนำหน้าว่า 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 ทั้งชุด'/>

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

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

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

111 เนื่องจากข้อมูลถูกจัดเก็บอยู่ในสถานะ
attribute นำหน้าชื่อ tag เสมอ เช่น <td width=“3%”> <font name =“MS Sans Serif” Size=“2”> <xsl:value-of </td>

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

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

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

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

116

117 จากไฟล์ เริ่มต้นด้วยการสร้างการเชื่อมต่อกับ
ฐานข้อมูล โดยใช้ออบเจ็กต์ 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

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

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

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

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

122 จากนั้นตรวจสอบความถูกต้องว่าในฟิลด์นั้น ๆ มี ข้อมูลเก็บอยู่หรือไม่
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)

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

124 และแสดงผลการทำงานเพื่อแจ้งให้ผู้ใช้ทราบ
จากนั้นปิด tag ราก fsoXMLFile.WriteLine(“</DatabaseDetail>”) และแสดงผลการทำงานเพื่อแจ้งให้ผู้ใช้ทราบ 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(“</font>”)


ดาวน์โหลด ppt XML ( Extensible Markup Language )

งานนำเสนอที่คล้ายกัน


Ads by Google