Zhang Jian, Beijing University of Post and Telecommunications
Limitations of XML
ปัจจุบัน ข้อมูลเนื้อหาของเว็บไซต์หลายแห่งถูกจัดเก็บไว้ในฐานข้อมูลหรือไฟล์ข้อมูล สำหรับนักพัฒนาโปรแกรมเว็บ หากพวกเขาต้องการดึงข้อมูลที่เป็นประโยชน์จากฐานข้อมูล วิธีการดั้งเดิมคือการเขียนสคริปต์บนฝั่งเซิร์ฟเวอร์ (เช่น VBScript, JavaScript, CGI, ASP, Perl เป็นต้น) และดำเนินการฐานข้อมูล แบบสอบถาม SQL รับบันทึกที่เกี่ยวข้อง จากนั้นจัดระเบียบผลลัพธ์การสืบค้นลงในหน้า HTML และส่งกลับไปยังไคลเอนต์
เพื่อปรับปรุงความยืดหยุ่นและความสามารถในการปรับขนาดของบริการระบบและเปิดใช้งานเป้าหมายการบริการที่กว้างขึ้น เว็บไซต์เชิงพาณิชย์หลายแห่งพยายามอย่างดีที่สุดเพื่อให้กฎเกณฑ์ทางธุรกิจ ข้อมูลต้นฉบับ และแบบฟอร์มการนำเสนอเป็นบริการอิสระ วิธีการฝังข้อมูลในการแสดงผลของ HTML ไม่ตรงกับความต้องการนี้อย่างชัดเจน ดังนั้นการจัดเก็บข้อมูลต้นฉบับในเอกสาร XML และการใช้สไตล์ชีตเพื่อแสดงเนื้อหาจึงเป็นข้อดีของเทคโนโลยี XML ที่เหมาะสำหรับอีคอมเมิร์ซ แต่โดยพื้นฐานแล้วเทคโนโลยี XSL ไม่ได้มุ่งเน้นไปที่การแสดงข้อมูล แต่เป็นเทคโนโลยีการแปลงรูปแบบที่มีความสมบูรณ์น้อยกว่า HTML มากในแง่ของวิธีการและวิธีการแสดงผล สำหรับโปรแกรมเมอร์ ทางออกที่ดีที่สุดคือการรวมเทคโนโลยีทั้งสองของ HTML และ XML เข้าด้วยกันเพื่อเสริมข้อดีของกันและกัน เพื่อให้ข้อมูลต้นฉบับที่แท้จริงสามารถรักษาความหมายและโครงสร้างดั้งเดิมไว้ได้ ในขณะเดียวกันก็ใช้ประโยชน์จากการแสดงทักษะ HTML ที่เปลี่ยนแปลงอยู่ตลอดเวลา . XML Data Island เป็นผลิตภัณฑ์ของการหลอมรวมเทคโนโลยีนี้ โดยจะใช้แท็ก <XML> เพื่อฝังข้อมูล XML ลงในหน้า HTML โดยตรง ดังนั้นจึงตระหนักถึงข้อดีที่เสริมกันของทั้งสอง
วิธีจัดการ data islands ใน IE
เพื่อให้สามารถจัดการหน้า HTML ประเภทนี้ด้วยโค้ด XML ที่ฝังไว้ได้ Internet Explorer 4.0 (ต่อไปนี้จะเรียกว่า IE 4.0) ได้แนะนำเทคโนโลยี DSO (Data Source Objects, data source object) ซึ่งก็คือ นำไปใช้กับ Java Applet
ตัวอย่างเช่น:
<APPLET CODE="com.ms.xml.dso.XMLDSO.class"
ID="xmldso" WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>
<PARAM NAME="URL" VALUE="myXML.xml">
< /APPLET>
ในตัวอย่างข้างต้น แอ็ตทริบิวต์ CODE ระบุแอปเพล็ต DSO Java แอ็ตทริบิวต์ MAYSCRIPT ช่วยให้มั่นใจว่าสคริปต์ไคลเอ็นต์สามารถประมวลผลออบเจ็กต์ข้อมูลได้ และแท็ก PARAM ระบุตำแหน่งของเอกสาร XML
ข้อจำกัดของการใช้ Java คือสามารถอธิบายที่อยู่ URL ของ XML ในเอกสาร HTML ได้เท่านั้น แต่ไม่สามารถฝังแท็ก XML ลงไปได้โดยตรง ซึ่งยังห่างไกลจากโซลูชัน Data Island ที่แท้จริง Microsoft ได้ขยายเทคโนโลยี DSO ใน Internet Explorer 5.0 (ต่อไปนี้จะเรียกว่า IE 5.0) ซึ่งก้าวข้ามข้อจำกัดก่อนหน้านี้และผสานรวม HTML และ XML อย่างแท้จริง หน้า HTML รองรับการใช้แท็ก <XML> โดยตรง
ตัวอย่างเช่น:
<HTML>
<XML ID="xmldso">
<?xml version="1.0"?>
XML บางส่วน...
</XML>
ตราบใดที่ ID ของแต่ละ data island ไม่ซ้ำกัน ก็สามารถรวมไว้ใน หน้า Data Islands จะถูกฝังทุกที่ที่จำเป็น และ DSO เหล่านี้เป็นอิสระจากกัน
นอกจากวิธีการฝังโดยตรงในตัวอย่างข้างต้นแล้ว คุณยังสามารถใช้การอ้างอิงภายนอกเพื่อเชื่อมโยงหมู่เกาะข้อมูลได้อีกด้วย
ตัวอย่างเช่น:
<XML ID="xmldso" SRC="myXML.xml">
</XML>
ด้วยวิธีนี้ เฉพาะเมื่อลูกค้าของบริษัทยังคงใช้ IE 4.0 ต่อไป และเพื่อแก้ไขปัญหาความเข้ากันได้ของลูกค้าเหล่านี้ Java Applet เป็นตัวเลือกสำหรับโปรแกรมเมอร์ที่ต้องพิจารณา
ในเทคโนโลยี DSO ที่ใช้งานโดย IE 5.0 หากข้อมูลเป็นผลมาจากการสืบค้นฐานข้อมูลผ่านภาษา SQL ข้อมูลเหล่านั้นจะถูกจัดเก็บไว้ในชุดบันทึก ADO (ActiveX Data Objects) เซิร์ฟเวอร์ส่งตัวควบคุม ActiveX นี้ (โดยปกติจะเป็นชุดระเบียน ADO) ไปยังไคลเอนต์ โดยที่โปรแกรมสคริปต์ไคลเอนต์ทำการประมวลผลเพิ่มเติม ในความเป็นจริง IE 5.0 จัดการหมู่เกาะข้อมูล XML เป็นชุดระเบียน ADO พิเศษ
การผูกข้อมูล XML
1. การแมปชุดระเบียน ADO
แต่ละองค์ประกอบหลักใน XML จะถูกแมปกับระเบียนในชุดระเบียน ADO และองค์ประกอบย่อยจะถูกแมปตามเขตข้อมูล (หรือที่เรียกว่าโดเมน) ในชุดระเบียนตามลำดับ
ตัวอย่างเช่น เกาะข้อมูล XML books.xml มีดังต่อไปนี้:
<XML ID="xmldso">
<?xml version="1.0"?>
<booklist>
<book>
<title>Straight Talk About Computers</title>
< isbn>72 -80088-005</isbn>
</book>
<book>
<title> ไมโครเวฟรสเลิศ </title>
<isbn>72-80081-082</isbn>
</book>
</booklist>
</XML >
ในขณะนี้ ชุดบันทึก ADO ที่แมปคือ:
ชื่อเรื่อง isbn
Straight Talk About Computers 72-80088-005
Gourmet Microwave 72-80081-082
2. การผูกเข้ากับองค์ประกอบ HTML
หลังจากฝังเกาะข้อมูลในเอกสาร HTML แล้ว คุณสามารถผูกเกาะข้อมูล XML กับองค์ประกอบ HTML ได้ แต่ละรายการของ DSO (เช่น data island) มีหมายเลขประจำตัวที่ไม่ซ้ำกัน ขั้นแรก ให้ตั้งค่าแอตทริบิวต์ DATASRC ในองค์ประกอบ HTML เป็นรหัสที่เกี่ยวข้องเพื่อเชื่อมโยงองค์ประกอบ HTML กับ data island จากนั้นกำหนดองค์ประกอบ XML ที่แยกออกมาโดยการตั้งค่าแอตทริบิวต์ DATAFLD
ตัวอย่างเช่น โค้ดที่ผูกกับองค์ประกอบ DIV จะเป็นดังนี้:
<DIV ID=title DATASRC=#xmldso DATAFLD="title"></DIV>
<DIV ID=price DATASRC=#xmldso DATAFLD="isbn"></ DIV>
หมายเหตุ : องค์ประกอบ HTML บางรายการไม่สามารถผูกกับเกาะข้อมูล XML ได้ ปัจจุบัน องค์ประกอบที่สนับสนุนกลไกการเชื่อมโยง DSO มีดังนี้:
A. APPLET, BUTTON, DIV, FRAME, IFRAME, IMG, INPUT (ประเภทในที่นี้คือ: CHECKBOX, HIDDEN, LABEL, PASSWORD, RADIO และ TEXT), LABEL, MARQUEE , SELECT, SPAN, ตาราง และ TEXTAREA
3. ข้อมูล XML ที่ชัดเจนในรูปแบบตาราง
หากคุณผูกข้อมูล XML เข้ากับองค์ประกอบ TABLE ข้อมูลดังกล่าวจะสามารถแสดงในรูปแบบตารางหลายแถวได้โดยอัตโนมัติ
ตัวอย่างเช่น รหัสที่เชื่อมโยงข้อมูล XML กับองค์ประกอบ TABLE จะเป็นดังนี้:
<TABLE BORDER=1 DATASRC="#xmldso">
<THEAD>
<TR><TH>Title</TH>
<TH>ISBN</TH ></TR >
</THEAD>
<TBODY>
<TR><TD><DIV DATAFLD="title"></DIV></TD>
<TD><DIV DATAFLD="isbn">
</DIV>< /TD>< /TR>
</TBODY>
</TABLE>
ด้วยวิธีนี้ ทั้งสองเชื่อมโยงกันโดยการตั้งค่าแอตทริบิวต์ DATASRC ในองค์ประกอบ TABLE เป็น #xmldso ตารางแบ่งออกเป็นสองส่วน: ส่วนหัว (THEAD) และเนื้อหาของตาราง (TBODY) แต่ละองค์ประกอบ <book> จะแสดงเป็นแถวของตาราง ข้อมูลใดที่แสดงในแต่ละคอลัมน์จะถูกระบุโดยแอตทริบิวต์ DATAFLD ในองค์ประกอบ DIV