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