BAB VI - XLink & XPointer

Post on 10-Apr-2015

349 views 2 download

Transcript of BAB VI - XLink & XPointer

Xlink & Xpointer, XQuery

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

Link dalam HTML

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

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

</body> </html>

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

XPointer

XPointer XML Pointer Language XPointer memungkinkan links untuk

menunjuk (point) ke bagian spesifik dari XML

XPointer menggunakan ekspresi XPath untuk navigasi dalam XML

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>

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>

<?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>

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

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>

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>

FLOWR

Bunga? Bukan tuh:

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

<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>

<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>

Xquery & Xpath?

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

Xquery relationship juga sama dengan Xpath relationship

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 :)”

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…

Hasil if-then-else

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

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 …

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

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>

To be continued…

Kita lanjutkan di praktikum ok