bab vi - xlink & xpointer

22
Xlink & Xpointer, XQuery

Upload: dion-prayoga

Post on 10-Apr-2015

349 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BAB VI - XLink & XPointer

Xlink & Xpointer, XQuery

Page 2: BAB VI - XLink & XPointer

XLink - XML Linking Language XLink berguna untuk membuat

hyperlinks dalam XMLSetiap element dalam XML dapat

menjadi sebagai link XLink mendukung link sederhana (seperti

HTML) dan link extended (untuk menghubungkan beberapa sumber sekaligus)

Dengan XLink, link yang ada dapat di definisikan di luar file yang terhubung

Page 3: BAB VI - XLink & XPointer

Link dalam HTML

<html> <head> </head> <body>

<a href="www.google.com"> Link ke Google Search</a>

</body> </html>

Page 4: BAB VI - XLink & XPointer

Link dengan XLin

<?xml version="1.0"?>

<homepages xmlns:xlink="http://www.w3.org/1999/xlink">

<homepage xlink:type="simple"xlink:href="http://www.w3schools.com">Visit W3Schools</homepage>

<homepage xlink:type="simple"xlink:href="http://www.w3.org">Visit W3C</homepage>

</homepages>

Perhatikan, lagi-lagi disini di gunakan namespace untuk mendeklarasikan Xlink yaitu dengan xmlns:xlink, dan diatas contoh Xlink bertipe simple

Page 5: BAB VI - XLink & XPointer

XPointer

XPointer XML Pointer Language XPointer memungkinkan links untuk

menunjuk (point) ke bagian spesifik dari XML

XPointer menggunakan ekspresi XPath untuk navigasi dalam XML

Page 6: BAB VI - XLink & XPointer

Anchor - Pointer dalam HTML

<html> <head> </head> <body><H1>Table of Contents</H1> <P><A href="#section1">Pendahuluan</A><BR> <A href="#section2">BAB I</A><BR> <A href="#section2.1">I.I</A><BR> <H2><A name="section1">Introduction</A></H2> …Detil Intro disini …<H2><A name="section2">…isi BAB I … </A></H2> <H3><A name="section2.1">…isi I.I … </A></H3> </body> </html>

Page 7: BAB VI - XLink & XPointer

Pointer dengan XPointer

<?xml version="1.0" encoding="ISO-8859-1"?>

<dogbreeds>

<dog breed="Rottweiler" id="Rottweiler">  <picture url="http://dog.com/rottweiler.gif" />  <history>The Rottweiler's ancestors were probably Roman  drover dogs.....</history>  <temperament>Confident, bold, alert and imposing, the Rottweiler  is a popular choice for its ability to protect....</temperament></dog>

<dog breed="FCRetriever" id="FCRetriever">  <picture url="http://dog.com/fcretriever.gif" />  <history>One of the earliest uses of retrieving dogs was to  help fishermen retrieve fish from the water....</history>  <temperament>The flat-coated retriever is a sweet, exuberant,  lively dog that loves to play and retrieve....</temperament></dog>

</dogbreeds>

Page 8: BAB VI - XLink & XPointer

<?xml version="1.0" encoding="ISO-8859-1"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog xlink:type="simple"  xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">  <description xlink:type="simple"  xlink:href="http://myweb.com/mydogs/anton.gif">  Anton is my favorite dog. He has won a lot of.....  </description></mydog>

<mydog xlink:type="simple"  xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">  <description xlink:type="simple"  xlink:href="http://myweb.com/mydogs/pluto.gif">  Pluto is the sweetest dog on earth......  </description></mydog>

</mydogs>

Page 9: BAB VI - XLink & XPointer

XQuery

XQuery di ciptakan untuk mengambil data dari XML

for $x in doc("books.xml")/bookstore/bookwhere $x/price>30dimana harga nya > 30 (dollar)

order by $x/title urutkan oleh judul

return $x/title kembalikan value title

$x = doc("books.xml")/bookstore/book$x/price = doc("books.xml")/bookstore/book/price

Page 10: BAB VI - XLink & XPointer

XML Referensi

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">  <title lang="en">Everyday Italian</title>  <author>Giada De Laurentiis</author>  <year>2005</year>  <price>30.00</price></book>

<book category="CHILDREN">  <title lang="en">Harry Potter</title>  <author>J K. Rowling</author>  <year>2005</year>  <price>29.99</price></book>

<book category="WEB">  <title lang="en">XQuery Kick Start</title>  <author>James McGovern</author>  <author>Per Bothner</author>  <author>Kurt Cagle</author>  <author>James Linn</author>  <author>Vaidyanathan Nagarajan</author>  <year>2003</year>  <price>49.99</price></book>

<book category="WEB">  <title lang="en">Learning XML</title>  <author>Erik T. Ray</author>  <year>2003</year>  <price>39.95</price></book>

</bookstore>

Page 11: BAB VI - XLink & XPointer

doc("books.xml")/bookstore/book/title mengembalikan:<title lang="en">Everyday Italian</title><title lang="en">Harry Potter</title><title lang="en">XQuery Kick Start</title><title lang="en">Learning XML</title>

doc("books.xml")/bookstore/book[price<30]mengembalikan:<book category="CHILDREN">  <title lang="en">Harry Potter</title>  <author>J K. Rowling</author>  <year>2005</year>  <price>29.99</price></book>

Page 12: BAB VI - XLink & XPointer

FLOWR

Bunga? Bukan tuh:

FLWOR adalah singkatan dari "For, Let, Where, Order by, Return

Page 13: BAB VI - XLink & XPointer

<ul>{for $x in doc("books.xml")/bookstore/book/titleorder by $xreturn <li>{$x}</li>}</ul>

Akan mengembalikan element dan data sbb (di browser/parser):

<ul><li><title lang="en">Everyday Italian</title></li><li><title lang="en">Harry Potter</title></li><li><title lang="en">Learning XML</title></li><li><title lang="en">XQuery Kick Start</title></li></ul>

Page 14: BAB VI - XLink & XPointer

<ul>{for $x in doc("books.xml")/bookstore/book/titleorder by $xreturn <li>{data($x)}</li>}</ul>

Akan mengembalikan hanya data/value dari sebuah element sbb (di browser/parser):

<ul><li>Everyday Italian</li><li>Harry Potter</li><li>Learning XML</li><li>XQuery Kick Start</li></ul>

Page 15: BAB VI - XLink & XPointer

Xquery & Xpath?

Xquery nodes sama dengan Xpath nodes (apa saja itu?)

Xquery relationship juga sama dengan Xpath relationship

Page 16: BAB VI - XLink & XPointer

Good Xquery?

XQuery case-sensitive XQuery elements, attributes, and

variables harus XML names yang valid XQuery value text dapat menggunaan

kutip atau kutip satu Variabel XQuery didefinisikan

menggunakan $ diikuti oleh nama contoh $nilai1

comments dipisahkn oleh “(:” dan “:)”, contoh “(: ini adalah comment :)”

Page 17: BAB VI - XLink & XPointer

Kondisional?

for $x in doc("books.xml")/bookstore/bookreturn if ($x/@category="CHILDREN")then <child>{data($x/title)}</child>else <adult>{data($x/title)}</adult>

Mari kita baca bersama…

Page 18: BAB VI - XLink & XPointer

Hasil if-then-else

<adult>Everyday Italian</adult><child>Harry Potter</child><adult>Learning XML</adult><adult>XQuery Kick Start</adult>

Page 19: BAB VI - XLink & XPointer

Pemakaian dengan HTML

Xquery powerfull!

<html><body>

<h1>Bookstore</h1>

<ul>{

for $x in doc("books.xml")/bookstore/bookorder by $x/titlereturn <li>{data($x/title)}. Category: {data($x/@category)}</li>

}</ul>

</body></html>

Hasilnya …

Page 20: BAB VI - XLink & XPointer

Hasil render html +XQuery

<html><body>

<h1>Bookstore</h1>

<ul><li>Everyday Italian. Category: COOKING</li><li>Harry Potter. Category: CHILDREN</li><li>Learning XML. Category: WEB</li><li>XQuery Kick Start. Category: WEB</li></ul>

</body></html>

Hebat ya

Page 21: BAB VI - XLink & XPointer

Lagi dong…

for $x at $i in doc("books.xml")/bookstore/book/titlereturn <book>{$i}. {data($x)}</book>

<book>1. Everyday Italian</book><book>2. Harry Potter</book><book>3. XQuery Kick Start</book><book>4. Learning XML</book>

Page 22: BAB VI - XLink & XPointer

To be continued…

Kita lanjutkan di praktikum ok