package-library
API
- add package
- receive uploaded xar(s)
- store upload(s) in "temp" folder
- for each new package:
- extract package metadata
- validate package metadata
xquery version "3.1"; | |
let $node := <root><x/></root> | |
let $entry := <entry name="test.xml" type="xml">{$node}</entry> | |
let $zip := compression:zip($entry, true()) | |
let $name := "test.zip" | |
return | |
response:stream-binary($zip, "media-type=application/zip", "test.zip") |
xquery version "3.1"; | |
import module namespace functx="http://www.functx.com"; | |
(: Calculate the number of months between two dates, rounding down :) | |
declare function local:months-between-dates-floor($start-date as xs:date, $end-date as xs:date) { | |
local:months-between-dates-floor($start-date, $end-date, xs:yearMonthDuration("P0M")) | |
}; | |
(: A helper function for local:months-between-dates-floor :) |
xquery version "3.1"; | |
(: | |
# Save eXide editor tabs to disk | |
1. Install "LocalStorage Manager" Chrome extension | |
https://chrome.google.com/webstore/detail/localstorage-manager/fkhoimdhngkiicbjobkinobjkoefhkap |
xquery version "3.1"; | |
(: | |
## How variables in XQuery FLWOR expressions change when using the `group by` clause | |
Sometimes, when working with a `group by` clause, an XQuery FLWOR expression | |
might suddenly seem to act strangely, or at least unintuitively. In particular, | |
variables defined before the `group by` clause might suddenly seem to go haywire. |
xquery version "3.1"; | |
array { | |
request:get-header-names() ! map { . : request:get-header(.) } | |
} |
xquery version "3.1"; | |
(: For a given Principal Officer position, calculate the age of the official at the time of | |
: appointment; sort the results by age. For officials missing birth or appointment dates, | |
: return the age as 0 to identify these as outliers with incomplete information. | |
:) | |
array { | |
let $principal-id := "assistant-secretary-legislative-affairs" | |
let $principal-doc := doc("/db/apps/pocom/positions-principals/" || $principal-id || ".xml") |
xquery version "3.1"; | |
(: Generate a TSV of Travels of President and Secretary of State. | |
: Assumes https://github.com/HistoryAtState/travels has been installed. | |
:) | |
(:~ | |
: A function for constructing a TSV (tab-separated value) file | |
: | |
: @param A sequence of column headings |
xquery version "3.1"; | |
(: Standard namespaces from https://www.w3.org/TR/xpath-functions-31/#namespace-prefixes :) | |
declare namespace array="http://www.w3.org/2005/xpath-functions/array"; | |
declare namespace err="http://www.w3.org/2005/xqt-errors"; | |
declare namespace fn="http://www.w3.org/2005/xpath-functions"; | |
declare namespace map="http://www.w3.org/2005/xpath-functions/map"; | |
declare namespace math="http://www.w3.org/2005/xpath-functions/math"; | |
declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization"; | |
declare namespace xs="http://www.w3.org/2001/XMLSchema"; |
xquery version "3.0"; | |
(: discovered via https://twitter.com/_james_fuller/status/1087706435176288257, updated with HTTP URL for data.xq :) | |
(: the power of algebraic data types in xquery | |
This example shows how we can composite up data models | |
which 'carry' their own operations along with them. | |
:) |