xquery rocks

38
XQuery 3 Rocks http://www.zorba-xquery.com William Candillon - FOSDEM 2012 28 msec

Upload: william-candillon

Post on 16-Jan-2015

20.428 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: XQuery Rocks

XQuery 3 Rockshttpwwwzorba-xquerycom

William Candillon - FOSDEM 2012

28 msec

Harnessing Flexible Data

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 2: XQuery Rocks

Harnessing Flexible Data

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 3: XQuery Rocks

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 4: XQuery Rocks

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 5: XQuery Rocks

photos page 1 pages 94276 total 1414129 photo [ id 3891667770 owner 354683133120

ltkmlgt ltPlacemarkgt ltnamegtSimple placemarkltnamegt ltPointgtltcoordinatesgt-122082203542568337422289901402510ltcoordinatesgt

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 6: XQuery Rocks

Meet XQuery

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 7: XQuery Rocks

XQuery

bull Family of Specification from w3c

bull Most Complex Complete Data Model

bull Talks Natively to Web

bull Query Store Index Update Full-Text

bull Unified Framework

bull Optimization amp Parallelization

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 8: XQuery Rocks

Meet Zorba

Open Source XQuery Processor

Contributors Oracle 28msec FLWOR

All Flavors Available Runs Everywhere

Rich Module Libraries Developer Tools

Pluggable Store Fun amp Productive

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 9: XQuery Rocks

Zorba

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 10: XQuery Rocks

ltdiv id=rdquoentriesrdquogt for $entry in $entries let $title = string($entrytitle) where $entryauthor = ldquoanonymousrdquo order by $entrydatetime return lth1gt$titlelth1gtltdivgt

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 11: XQuery Rocks

insert node ltentrygtHello Worldltentrygt into $entries

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 12: XQuery Rocks

let $x = ltmgtbreakfast of championsltmgtreturn $x contains text meal using thesaurus at httpwordnetprincetonedu relationship narrower term

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 13: XQuery Rocks

let $handler = function($request) let $world = $requesttext() return lth1gtHello $worldlth1gt return mongoosestart($handler 80)

mongoosecin()

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 14: XQuery Rocks

declarehttpget(ldquohello$worldrdquo)function htmlhello($world) lth1gtHello $worldlth1gt

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 15: XQuery Rocks

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 16: XQuery Rocks

ltscript type=applicationxquerygtdeclare sequential function localsubmit($loc $evtObj)

let $name = sid(author)data(value) let $text = sid(text)text() return guestbookadd($name $text) baddEventListener(sid(submit) onclick localsubmit2)

guestbooklist()ltscriptgt

declare sequential function guestbookadd( $author as xsstring $entry as xsstring) let $date = fncurrent-dateTime() let $entry = ltentry author=$author datetime=$dategt$textltentrygt return xqddfinsert-nodes-last($entries $entry)

declare sequential function guestbooklist() ltentriesgt xqddfcollection($entries) ltentriesgt

Client Server

Seamless Invocations

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 17: XQuery Rocks

AWS Libraries (2011)

S3 SimpleDB SNS

455572

1469

23092905

8589

Line

s of

cod

eJava XQuery

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 18: XQuery Rocks

AWS Libraries (2011)

AWS

2496

13803

Line

s of

cod

eJava XQuery

Lines of Codes- 80

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 19: XQuery Rocks

AWS Libraries (2011)

AWS

2496

6531

Line

s of

cod

ePHP XQuery

Lines of Codes- 62

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 20: XQuery Rocks

lthtmlgt ltheadgt ltscript type=textjavascriptgt function buy(e) newElement = documentcreateElement(p) elementText = documentcreateTextNode (etargetgetAttribute(id)) newElementappendChild(elementText) var res = documentevaluate( div[id=shoppingcart] document null XPathResultUNORDERED_NODE_SNAPSHOT_TYPE null) ressnapshotItem(0)appendChild(newElement) ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgtltdivgt lt Code establishing connection ResultSet results = statementexecuteQuery (SELECT FROM PRODUCTS) while (resultsnext()) outprintln(ltdivgt) String prodName = resultsgetString(1) outprintln(prodName) outprintln(ltinput type=button value=Buy) outprintln(id=+prodName+) outprintln(onclick=buy(event)gt) outprintln(ltdivgt) resultsclose() Code closing connection gt ltbodygtlthtmlgt

HTMLJavaScript

XPath

Java

SQL

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 21: XQuery Rocks

lthtml xmlns=httpwwww3org1999xhtmlgt ltheadgt ltscript type=applicationxquerygtdeclare updating function localbuy($evt $obj) insert node ltpgt$objidltpgt as first into div[id=shoppingcart]baddEventListener(bdom()input onclick xsQname(localbuy))ltscriptgt ltheadgt ltbodygt ltdivgtShopping cartltdivgt ltdiv id=shoppingcartgt for $p in doc(productsxml)product return ltdivgt $pname ltinput type=button value=Buy id=$pnamegt ltdivgt ltdivgt ltbodygtlthtmlgt

XQuery Everywhere

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 22: XQuery Rocks

let $stats = [ response_time 005 ]for $stat in jvalues($stats)let $url = $stat(http_action)order by $urlreturn url $url avg avg($stat(response_time))

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 23: XQuery Rocks

$zorba -q jsoniqxq -f url GET docsspecen-UShtml-singleindexhtml avg 005

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 24: XQuery Rocks

Take away

bull Powerful Data Model

bull Flexible Programming Model

bull Productivity

bull Performance

Thank you28 msec

Page 25: XQuery Rocks

Thank you28 msec