Skip to content

Instantly share code, notes, and snippets.

@derickson
derickson / rtw.xqy
Last active December 17, 2015 15:09
Example of a simple XQuery recursive typeswitch for simple data conversion
xquery version "1.0-ml";
(:~
@author derickson
@date 2013-05-22
Example of a Recursive Typeswitch for simple data conversion
Works in MarkLogic Server 6+
:)
@derickson
derickson / kml.xqy
Created May 2, 2013 12:21
geo code for guest blog post
xquery version "1.0-ml";
declare namespace ns = "http://www.marklogic.com/MLU/logbook";
declare variable $bbox as xs:string? := xdmp:get-request-field("BBOX", ());
xdmp:set-response-content-type("text/kml; charset=utf-8"),
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
{
xquery version "1.0-ml";
import module namespace mkf = "http://derickson/kmlalert/model/m-kf" at "/model/m-kmlfence.xqy";
import module namespace lk = "http://derickson/kmlalert/lib/kml" at "/lib/l-kml.xqy";
declare namespace kml ="http://www.opengis.net/kml/2.2";
declare namespace gx ="http://www.google.com/kml/ext/2.2";
mkf:insert-fence(
lk:get-google-map("https://maps.google.com/maps/ms?msid=2041XXXXXX Your URL GOES HERE")
)
xquery version("1.0-ml");
let $d := fn:doc("/wireshark.xml")
for $p in $d//packet
let $hex := fn:string($p//proto[@name eq "fake-field-wrapper"]/field[@name eq "data"]/@value)
let $len := fn:string-length($hex)
return
fn:string-join((
for $i in (1 to $len)
@derickson
derickson / color-cycle.xqy
Last active December 12, 2015 02:38
Cycle light colors
xquery version "1.0-ml";
import module namespace lh = "http://derickson/lib/l-mlhue"
at "/lib/l-mlhue.xqy";
for $i in (1 to 10)
for $state in (
$lh:RED, $lh:MAGENTA, $lh:PURPLE,
$lh:BLUE, $lh:GREEN, $lh:YELLOW,
$lh:ORANGE
@derickson
derickson / enrich.xqy
Created May 20, 2012 04:05
Lord of the Rings txt to XML
xquery version "1.0-ml";
for $character in ("Frodo", "Sam", "Merry", "Pippin", "Boromir", "Gimli", "Legolas", "Aragorn", "Gandalf")
return
xdmp:eval('
xquery version"1.0-ml";
declare variable $character as xs:string external;
for $line in cts:search(/line-doc, $character)
return
xdmp:node-replace(
@derickson
derickson / xpath.xqy
Created May 4, 2012 01:49
XPath First
//book[author eq "J K. Rowling"]
@derickson
derickson / bad.xqy
Created May 4, 2012 01:31
Learning XQuery 2
(: I assume local mathematical functions
functionA, functionB, and functionC are
defined above :)
(: this is too procedural :)
let $accumulator := 1
let $accumulator := functionA($accumulator)
let $accumulator := functionB($accumulator)
let $accumulator := functionC($accumulator)
return
@derickson
derickson / bookload.xqy
Created May 3, 2012 23:42
Learning XQuery
let $books :=
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
... other books from W3Schools example ...
</bookstore>
@derickson
derickson / map.xqy
Created January 10, 2012 05:47
XQuery Choropleth complete
xquery version "1.0-ml";
import module namespace search="http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
declare namespace kml = "http://www.opengis.net/kml/2.2";
(:White to red color scale in BBGGRR format :)
declare variable $COLOR_SCALE :=