แปล_xml_xsml และอื่น..

Download Report

Transcript แปล_xml_xsml และอื่น..

1
XSLT
XSLT
XSLT คือ การแปลงเอกสาร XML ไปเป็ นเอกสารอื่นๆ (หรื อ
เป็ นเอกสาร XML แต่เปลี่ยนรู ปแบบ) ตัวอย่างเช่น ข้อความธรรมดา
(plan text), HTML, spreadsheet, PDF หรื ออาจจะเป็ น
คาสัง่ SQL เพื่อใช้ในการบันทึกลงฐานข้อมูล โดย XSLT จะใช้
XPath ในการเข้าถึงข้อมูลในแต่ละ element
ตัวอย่าง XSLT - Input
<addresses>
<address>
<name>Xaver M. Linde</name>
<street>Wikingerufer7</street>
<town>10555Berlin</town>
</address>
<address>
<name>John Doe</name>
<street>42 Gary Cooper Street</street>
<town>Stanwyck City</town>
</address>
</addresses>
ตัวอย่าง XSLT - Stylesheet
1
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSDL/Transform”>
2 <xsl:template match=“/”>
3 <html>
<head><title>Addresses</title> </head>
<body bgcolor=“white”>
<xsl:apply-templates/>
</body>
<html>
<xsl:template>
<xsl:template match=“address”>
<p>
<i><xsl:value-of select=“name”/></i><br/>
<xsl:value-of select=“street”/><br/>
<b><xsl:value-of select=“town”/></b>
</p>
<xsl:template>
</xsl:stylesheet>
ตัวอย่าง XSLT – Stylesheet (ต่อ)
อธิบาย
1
คือ หัวของแฟ้ ม XSLT มาตรฐานจะประกอบด้วยแท็กเริ่ มต้น
องค์ประกอบที่ระบุวา่ นี่คือแบบพิมพ์ ส่ วน xmlns:xsl จะกาหนดคา
นาหน้าช่องว่างชื่อ
2
คือ กฎของแม่แบบ XSL ที่จะถูกนามาใช้เมื่อเจอกับเอกสาร
ต้นฉบับ
3
คือ แท็ก HTML สาหรับการนิยามรู ปแบบของข้อมูล
ตัวอย่าง XSLT - Output
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html40/strict.did”>
<html>
<head><title>Addresses</title></head>
<body bgcolor=“white”>
<p><i>Xaver M. Linde</i><br>
Wikingerufer7<br>
<b>10555 Berlin</b>
</p>
<p><i>John Doe</i><br>
42 Gary Cooper Street<br>
<b>Stanwyck City</b>
</p>
</body>
</html>
2
DTDs
DTDs
DTD คือ แฟ้ มข้อมูล (หรื อหลายแฟ้ มข้อมูลที่ใช้งานร่ วมกัน) ซึ่ งบรรจุขอ้ กาหนด
และกฏเกณฑ์ของเอกสาร ชุดข้อกาหนดเหล่านี้ สาหรับการกาหนดรู ปแบบอิลิเม็นต์
ตัวอย่างเช่น หากต้องการเอกสารที่มีelement <LIST>และelement <ITEM>
บรรจุอยูภ่ ายใน ข้อกาหนดในแฟ้ มข้อมูล DTD จะมีรูปแบบดังนี้
<!ELEMENT item (#pcdata)>
<!ELEMENT list (item)+>
ซึ่ งอธิบายความหมายคือ element items บรรจุขอ้ ความใดๆ element list
บรรจุ element item อีกที
ดังนั้น DTD เป็ นรู ปแบบภาษา ซึ่ งทาให้สามารถตรวจสอบเอกสาร ที่นาเอา
ข้อกาหนด DTD ไปใช้ ว่าถูกจัดสร้างตามความต้องการหรื อไม่ ทาให้ระบบการ
rendering(การแสดงผล) สามารถเข้าใจตัวเอกสารได้ดี และดึงไปใช้งานได้ถูกต้อง
ที่มา http://www.thaixml.com/essentials/xml3.htm
DTDs
XML ไม่ จาเป็ นต้ องใช้ DTD เสมอไป
ถ้าแม้จะต้องใช้ DTD แต่กจ็ ะมีการสร้าง DTD ที่เป็ นมาตรฐานให้ใช้อยูแ่ ล้ว DTD ที่
เป็ นมาตรฐาน ถูกพัฒนาโดยผูท้ ี่สนใจ ในเอกสารเฉพาะด้าน และมีให้พวกเรา ได้ดึงมาใช้งาน
เพื่อให้เกิดรู ปแบบมาตรฐานที่ชดั เจน และเข้าใจข้อมูลกัน ในเอกสารประเภทเดียวกัน 3 ส่ วน
สาคัญ เอกสาร XML มีส่วนประกอบที่สาคัญอยู่ 3 ส่ วน สองส่ วนเป็ นสิ่ งที่จาเป็ น ในขณะที่อีก
ส่ วนเป็ นทางเลือก ที่จะมีหรื อไม่กไ็ ด้
1. ส่ วนแรก คือส่ วนของเนื้อหา หรื อ Content นัน่ เอง ซึ่ งทาให้เอกสารมีขอ้ มูลสาหรับดูโดย
ผูอ้ ่าน Content นี้เป็ นได้ท้งั ข้อความ รู ปภาพ ส่ วนนี้ถูกสร้างขึ้นมาจาก element ในที่น้ ี
คือไฟล์ XML
2. ส่ วนที่สอง คือกฎเกณฑ์และข้อกาหนด โครงสร้างของเอกสาร ในที่น้ ีคือไฟล์ DTD ส่ วนนี้ถือ
เป็ นทางเลือก ซึ่งจะเลือกใช้หรื อไม่กไ็ ด้
3. ส่ วนสุ ดท้าย คือ StyleSheet คือ ลักษณะข้อกาหนดสาหรับการแสดงผลลัพธ์น้ นั เอง ในที่น้ ี
คือไฟล์ XSL
ที่มา http://www.thaixml.com/essentials/xml3.htm
DTDs
จากข้างต้น สามารถสรุ ปได้วา่ DTD คือ ออปชัน่ ในขณะที่ StyleSheet
ไม่ใช่ เอกสาร XML สามารถถูกบังคับโครงสร้างด้วย DTD ซึ่ งจะใช้หรื อไม่ใช้
ก็ได้ แต่ StyleSheet คือสิ่ งที่จาเป็ นที่จะสามารถนาข้อมูลในเอกสาร มาแสดง
ด้วยการ rendering StyleSheet ในบางครั้งไม่ตอ้ งการ หากเรามีกลไก
rendering ที่จดั สร้างไว้พร้อมแล้ว สาหรับเอกสาร XML ที่ตอ้ งผ่าน
ขบวนการแปลงด้วย XSL เพื่อให้เป็ น HTML ในการแสดงผ่านบราวเซอร์ อย่าง
นี้ตอ้ งจาเป็ นในการใช้งาน StyleSheet
ที่มา http://www.thaixml.com/essentials/xml3.htm
3
XQL (XML Query Language)
XQL (XML Query Language)
เป็ นวิธีการในการหาและกรองข้อมูลและข้อความในเอกสาร XML โดย
ไฟล์ XML จะส่ งกลุ่มของข้อมูลระหว่างคอมพิวเตอร์ กบั เว็บ XQL เป็ นเครื่ องมือ
ในการค้นหาและเลือกเพื่อเจาะจงข้อมูลที่ตอ้ งการจากกลุ่มข้อมูลในไฟล์ XML
ซึ่ งอยูบ่ นพื้นฐานและไวยากรณ์ที่ใช้ในภาษา Extensible Stylesheet
Language รู ปแบบภาษา XSL เป็ นวิธีการประกาศในการชี้ขอ้ มูลที่ตอ้ งการ
สาหรับการประมวลผล โดยใช้สัญลักษณ์ไดเรคทอรี่ เช่น Book/author
หมายถึง เลือก author (ผูเ้ ขียน) ทั้งหมด ที่มีอยูใ่ นรายการหนังสื อทั้งหมดจาก
ไฟล์ที่เลือก XQL เพิ่มรู ปแบบสัญลักษณ์ไดเรคทอรี่ ให้ใช้กบั ตรรกะ
(boolean) เพื่อใช้กรองข้อมูล เลือกกลุ่มข้อมูลหรื อวัตถุประสงค์อื่น ๆ การใช้
XQL ซึ่ งเป็ นโปรแกรมที่สามารถเขียนคาสั่งค้นหาที่เก็บไฟล์ XML ได้ สามารถ
กาหนด Hypertext link ไปยังข้อมูลที่เจาะจงหรื อโปรแกรมประยุกต์อื่น ๆ
การพัฒนาโปรแกรมประยุกต์ XQL
• XQL ใช้ภาษาของเส้นทาง XML (XPath), ซึ่ งถูกใช้โดยทั้งสอง รายการต่อไปนี้แสดงให้เห็น
ถึงวิธีการที่จะใช้ XPath :
• สร้างนิพจน์ที่สามารถอยูใ่ นส่ วนของเอกสาร XML
• สตริ ง, ตัวเลข, และผูป้ ระกอบการบูลีน
• ตรงกับชุดของโหนดในเอกสาร
• รุ่ นเอกสาร XML เป็ นต้นไม้ของโหนดของประเภทที่แตกต่างกันรวมถึงองค์ประกอบ
คุณลักษณะและข้อความ XPath expressions นิพจน์ XPath สามารถระบุโหนดเหล่านี้ใน
เอกสาร XML ขึ้นอยูก่ บั ชนิด, ชื่อของพวกเขาและค่านิยมเช่นเดียวกับความสัมพันธ์ของ
โหนดไปยังโหนดอื่น ๆ ในเอกสาร
• ชนิดที่สาคัญการแสดงออกของ XPath เป็ นเส้ นทางที่ อยู่ : การแสดงออกที่เลือกชุดของโหนด
ที่สัมพันธ์กบั บริ บทของโหนด การแสดงออกของเส้นทางที่ต้ งั มีรูปแบบคล้ายกับโครงสร้าง
ไดเรกทอรี ตามที่แสดงในหน้าต่างบรรทัดคาสั่ง ผลจากการประเมินสถานที่เส้นทางที่ถูก
กาหนดเป็ นโหนดที่มีโหนดที่เลือก
ตัวอย่ าง XPath ใน XQL
ค้นหาองค์ประกอบ first.name ทั้งหมด : first.name
ค้นหาร้านหนังสื อทั้งหมดที่มีค่าของแอตทริ บิวต์พิเศษที่จะมีค่าเท่ากับ"ตารา“ :
/bookstore[@specialty = "textbooks"]
ค้นหาหนังสื อทุกเล่มที่มีลกั ษณะรู ปแบบ : book[@style]
ค้นหาหนังสื อทั้งหมดที่มีองค์ประกอบที่สกัดมาอย่างน้อยหนึ่ ง
book[excerpt] : หนังสื อ [ข้อความที่ตดั ตอนมา]
ตัวอย่ าง XPath ใน XQL(ต่ อ)
ค้นหาแอตทริ บิวต์ Intl เท่ากับ"แคนาดา“
price[@intl = "Canada"]
ค้นหาผูเ้ ขียนองค์ประกอบทั้งหมดที่มีลกู คนแรกชื่อที่มีขอ้ ความคือ"Bob" (นี้และ
ตัวอย่างต่อไปนี้ถือว่ามีเพียงหนึ่ งลูกคนแรกชื่อผูแ้ ต่ง.)
author[first-name = "Bob"]
ค้นหาผูเ้ ขียนทุกองค์ประกอบที่หนึ่งของชื่อสุ ดท้ายคือ Bob ใด ๆ
author[last-name = "Bob"]
ที่มา http://msdn.microsoft.com/en-us/library/aa924039.aspx
4
XML-QL
XML-QL
เอกสาร Querying XML
• ภาษาสอบถามคืออะไร?
• ทาไมไม่ปรับตัวเข้ ากับ SQL หรื อ OQL เพื่อสอบถามข้ อมูล
XML?
• แบบสอบถาม XML คืออะไร?
• ฐานข้ อมูลคืออะไร? - เอกสาร XML
• การป้อนข้ อมูลในแบบสอบถามคืออะไร? - เอกสาร XML
• ผลลัพธ์ของแบบสอบถามคืออะไร? - เอกสาร XML
ภาษา XML-QL
ภาษา XML - QL ได้ รับการออกแบบที่มีคณ
ุ สมบัติดงั ต่อไปนี ้
1. มันเป็ นที่เปิ ดเผย, เช่น SQL
2. มันเป็ นความสัมพันธ์ที่สมบูรณ์เช่น มันสามารถแสดงร่วมจะสามารถ
ดาเนินการกับเทคนิคการฐานข้ อมูลที่ร้ ูจกั กัน
ก็สามารถดึงข้ อมูลจากเอกสาร XML ที่มีอยูแ่ ละสร้ างเอกสาร XML ใหม่
3. XML - QL จะดาเนินการเป็ นโครงการต้ นแบบและสามารถใช้ ได้ อย่างอิสระ
ในรุ่น Java
ตัวอย่างเอกสาร XML
<bib>
<book year=“1997”>
<title>Inside COM</title>
<author>Dale Rogerson</author>
<publisher><name>Microsoft</name</publisher>
</book>
<book year=“1998”>
<title>Database system concepts</title>
<author>S. Sudarshan</author>
<author>H. Korth</author>
<publisher> <name>McGrawHill</name</publisher> </book>
</bib>
จับคูข่ ้ อมูลโดยใช้ รูปแบบ
Find those authors who have published books for McGraw Hill:
WHERE
<bib><book>
<publisher><name>McGraw Hill</></>
<title>$t</>
<author>$a</>
</book></bib> IN “bib.xml”
CONSTRUCT <result><title>$t</><author>$a</></>
• $t และ $a เป็ นตัวแปรที่ถกู หยิบออก
• ผลลัพธ์คือการเก็บรวบรวมชื่อผูแ้ ต่ง
ผลของเอกสาร XML
<result>
<title>Database system concepts</title>
<author>S. Sudarshan</author>
</result>
<result>
<title>Database system concepts</title>
<author>H. Korth</author>
</result>
การจัดกลุม่ ด้ วยแบบสอบถามที่ซ้อนกัน
ผลการจัดกลุ่มชื่ อหนังสื อ :
WHERE
<bib.book>$p</> IN “bib.xml”,
<title>$t</>
<publisher><name>McGraw Hill</></> IN $p
CONSTRUCT <result> <title>$t</>
WHERE <author>$a</> IN $p
CONSTRUCT $a
</>
• ผลิตผลหนึง่ สาหรับแต่ละชื่อและมีรายชื่อของผู้เขียน
ผลของเอกสาร XML
<result>
<title>Database system concepts</title>
<author>S. Sudarshan</author>
<author>H. Korth</author>
</result>
5
CSS
CSS
• CSS เป็ นการกาหนดรูปแบบของเอกสาร HTML หรื อ เว็บเพจ
• โค๊ ดของ CSS จะเป็ นอิสระต่อเนื ้อหาของเว็บเพจ โดยข้ อความใน CSS จะไม่ถกู
ใช้ ในการแสดงผล แต่จะใช้ แค่กาหนดรูปแบบเท่านัน้
• เมื่อมีการแก้ ไข CSS การแสดงผลของเว็บเพจก็จะเปลี่ยนแปลงตามไปด้ วย
ความสามารถของ CSS
- CSS สามารถทาให้ TEXT ที่เป็ นจุด Link ไม่ให้มีการขีดเส้นใต้ได้
- CSS สามารถกาหนดการ Fix ขนาดของ Font อักษรได้ นั้นคือ เมื่อผูเ้ ยีย่ มชม
ปรับขนาด Font ที่ Browser ที่ขนาดเท่าใด CSS ก็ยงั คงแสดงผลขนาด
Font ที่ขนาดที่เรากาหนดไว้เสมอ ส่ งผลให้ทาให้เว็บเพจเราไม่เละตามขนาดของ
Font ที่ผใู้ ช้ปรับเปลี่ยนที่ Browser
- CSS สามารถทาการกาหนดภาพพื้นหลัง (Image Background) ให้ได้
ตาแหน่งและมีรูปแบบตามที่เราต้องการได้
- CSS ทาให้การปรับปรุ งเว็บเพจในส่ วนของการแสดงผลทาได้อย่างรวดเร็ วขึ้น
เนื่องจากเราสามารถปรับปรุ งคุณสมบัติของการแสดงผลได้จากจุด ๆ เดียวแล้ว
ส่ งผลให้ท้ งั หน้าเพจที่มีการใช้งาน CSS นั้นปรับปรุ งให้เป็ นไปตามที่เราแก้ไข
- CSS ทาให้เว็บเพจเราโหลดเร็ วขึ้น
รูปแบบการกาหนดสไตล์ชีทให้ กบั เว็บเพจ
• โครงสร้ างของ CSS
– Selector คือ แท็ก HTML ,Id และ Class ในการกาหนดให้ สไตล์ชีท
– Declaration ใช้ ระบุคา่ ให้ กบั Selector มีสองส่วนคือ
• Property คือ คุณสมบัติที่จะระบุให้ กบั Selector
• Value คือ ค่าที่จะกาหนดให้ Property
– การแบ่งส่วนระหว่าง property กับ value จะใช้ เครื่ องหมาย :
รูปแบบในการเขียนสไตล์ชีท
Selector{
Property1 : Value ;
Property2 : Value ;
…………………….
PropertyN : Value ;
}
ตัวอย่ าง
H1{
color: blue;
border : thin;
background:yellow;
}
Class Selectors
• Class Selectors เป็ น Selector ที่เราต้องกาหนดชื่อของ Selector ขึ้นมาเอง โดยที่
Selector ในรู ปแบบนี้จะอยูอ่ ย่างอิสระ ไม่มีการอ้างอิงเกี่ยวข้องกับ TAG HTML ใด ๆ การ
เรี ยกใช้งานต้องระบุชื่อ Class Selectors กับ TAG ของ HTML จึงจะสามารถใช้งาน
คุณสมบัติของ Class ได้
• วิธีการเขียน Selector ในรู ปแบบนี้ เขียนได้โดยการ ตั้งชื่อ Selector ไว้หลังเครื่ องหมาจุด
หรื อ Dot ( . ) จากนั้นตามด้วย Properties
วิธีการเรียกใช้ งาน เราสามารถเรี ยกใช้งาน Class Selector ได้โดยการใช้ Attribute
class แล้วตามด้วยชื่อ Class ที่เราต้องการเรี ยกใช้งาน ดังรู ป
ID Selectors
• ID Selectors เป็ น Selector ที่อา้ งอิงกับ Attribute ID ที่อยูภ่ ายใน TAG ของ
HTML โดยที่ TAG ของ HTML ใดมี ID ซึ่งตรงตาม ID Selectors ที่เรากาหนดไว้
คุณสมบัติของ CSS ที่เรากาหนดไว้กบั Selector ก็จะมีผลต่อ TAG นั้นทันที
• วิธีการเขียน Selector การเขียน ID Selectors เราสามารถเขียนได้โดยการเขียนชื่อ
Selector ตามหลังเครื่ องหมายชาร์ป (# )
วิธีการเรียกใช้ งาน เราสามารถเรี ยกใช้ ID Selector นี้ได้โดยที่เรากาหนด Attribute ID
ภายใน TAG ที่เราต้องการเรี ยกใช้งานคุณสมบัติ CSS จาก ID Selectors ให้มี
ความสัมพันธ์กบั Selector ดังรู ป
TAG Selectors
• TAG Selectors สาหรับ Selector ในรู ปแบบสุดท้ายที่จะกล่าวถึงในเบื้องต้นนี้เป็ น Selector ที่อา้ งอิง
กับ TAG ของ HTML โดยตรง นัน่ หมายถึง ถ้าหากคุณกาหนดคุณสมบัติให้แก่ TAG Selectors นี้แล้ว
TAG ของ HTML ที่มีชื่อเดียวกับ Selectors ชนิดนี้ ก็จะมีคุณสมบัติของ CSS เหมือนกันหมดทุก TAG
ภายในเว็บเพจนั้น
• วิธีการเขียน Selector การเขียน TAG Selectors เราสามารถเขียนได้โดยการเขียนชื่อ TAG ของ
HTML ลงไปตรง ๆ หน้าเครื่ องหมายปี กกา { ..... } เช่นต้องการกาหนดให้ TAG Font ของ HTML ในเว็บ
เพจนั้นมีคุณสมบัติใช้ Font ที่ชื่อว่า Tahoma ทั้งหมด ก็พิมม์ชื่อเพื่อกาหนดคุณสมบัติลงไปลักษณะนี้
font{font-family: Tahoma;} เป็ นต้น
วิธีการเรียกใช้ งาน การใช้งาน Selector ชนิดนี้เราไม่จาเป็ นต้องมีการเรี ยกใช้งาน เนื่องจากเมื่อจุดใดที่เว็บเพจมี
การเรี ยกใช้งาน TAG ของ HTML ที่สมั พันธ์กบั Selectors ที่เรากาหนดไว้ คุณสมบัติของ CSS ก็จะถูก
กาหนดให้แก่ TAG นั้นโดยอัตโนมัติ
ที่มา http://bu.lpc.rmutl.ac.th/naravit/begin-programming/basic_PHP/css_mean.htm
6
RDF[s]
RDF[s]
Resource Description Framework หรื อ “RDF”เป็ นมาตรฐานที่
อิงมาจากภาษา XML แต่มีโครงสร้างรู ปแบบหลากหลายกว่า XML แบบจาลองของ
RDF เมตะเดต้าอยูบ่ นพื้นฐานของความคิดในการสร้างข้อความสัง่ หรื อ
“Statement” ของทรัพยากร หรื อ “Resource” ในรู ปแบบประธาน ภาคแสดง
และกรรม หรื อ “Subject-Predicate-Object” ซึ่งเรี ยกว่า A Triple in
RDF ซึ่ง Subjectจะหมายถึง Resource Predicate หมายถึงคุณลักษณะ
หรื อ “Property” และ Object ก็คือ ค่าของคุณลักษณะ หรื อ “Property
Value”ดังตัวอย่างที่อยูใ่ นรู ปภาษาอังกฤษ
[Resource]
[Property]
[Value]
The secret agent is
Niki Devgood
[Subject]
[Predicate]
[Object]
RDF[s]
ชื่อของ RDF ก็บ่งบอกถึงกรอบในการกาหนดและแลกเปลี่ยนข้อมูล MetaData ซึ่ง
อยูบ่ นกฏเกณฑ์ดงั ต่อไปนี้
1. Resource แหล่งข้อมูลคือทุกอย่างที่มี URL มาเกี่ยวข้อง ซึ่งรวมทั้ง WWW แต่ละ
Element ของข้อมูล XML ตัวอย่างเช่นระบุเป็ น
http://www.thaixml.com/RDF/draft.htm เป็ นต้น
2. Property คือแหล่งข้อมูลที่มีชื่อเฉพาะและมีคุณสมบัติเป็ น Property เช่น ผูแ้ ต่ง หรื อ
Title
3. Statement ประกอบด้วย Resource Property และค่าของข้อมูล เช่น "ผูแ้ ต่งของ
http://www.thaixml.com/essentials/rdf.htm คือ John" เป็ นต้น แต่กม็ ี
วิธีการตรงไปตรงมาในการนาเสนอในรู ปแบบของ XML คือ
<rdf:Description about='http://www.thaixml.com/RDF/Why-RDF.html'>
<Author>Tim Bray</Author>
<Home-Page rdf:resource='http://www.thaixml.com' />
</rdf:Description>
ที่มา http://www.thaixml.com/essentials/rdf1.htm
END