Skip to content

Instantly share code, notes, and snippets.

Magdalena Turska tuurma

  • University of Oxford
  • United Kingdom
View GitHub Profile
@tuurma
tuurma / setup.xq
Created Apr 12, 2019
moving from xmldb:change-user to sm
View setup.xq
xquery version "3.1";
sm:create-group('boys'),
sm:create-group('girls'),
sm:create-group('existsol'),
(: create 3 accounts with personal groups and additional group :)
sm:create-account('magda', 'm-pass', ('girls', 'existsol')),
sm:create-account('lars', 'l-pass', ('boys', 'existsol')),
sm:create-account('joern', 'l-pass', ('boys', 'existsol')),
@tuurma
tuurma / ports.md
Last active Feb 11, 2019
exist contributions
View ports.md

sync develop branch with upstream by rebasing

git checkout develop
git fetch upstream develop
git rebase upstream/develop

check log to confirm commits correspond with the ones for exist/develop

@tuurma
tuurma / transform.xq
Created Sep 3, 2018
basic xquery typeswitch example, assumes play is encoded in TEI like http://firstfolio.bodleian.ox.ac.uk/download/xml/F-tem.xml
View transform.xq
xquery version "3.1";
declare namespace tei="http://www.tei-c.org/ns/1.0";
declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "html5";
declare option output:media-type "text/html";
@tuurma
tuurma / chown-collection.xquery
Created Jul 16, 2018
change owner, group an permissions for subcollections
View chown-collection.xquery
xquery version "3.1";
declare function local:change-user($collection, $user, $group) {
if (xmldb:collection-available($collection)) then
(
for $child in xmldb:get-child-collections($collection)
let $path := concat($collection, '/', $child)
return
xmldb:set-collection-permissions($path, $user, $group, 493)
)
View deploy.xqm
repo:undeploy("http://history.state.gov/ns/site/hsg"),
repo:remove("http://history.state.gov/ns/site/hsg"),
repo:install-and-deploy-from-db("/db/system/repo/hsg-shell-0.2.xar")
@tuurma
tuurma / move.xquery
Created Nov 23, 2017
move all documents from collection to another
View move.xquery
xquery version "3.1";
for $i in collection('/db/apps/data/a')/*
return
xmldb:move('/db/apps/data/a', '/db/apps/data/a/b/', util:document-name($i))
@tuurma
tuurma / openIneXide.xq
Created Nov 3, 2017
Open file in eXide link
View openIneXide.xq
http://localhost:8080/exist/apps/eXide/index.html?open=/db/apps/data/names/Agaios.xml
@tuurma
tuurma / check.xql
Created Jul 13, 2017
configuration sanity checks
View check.xql
xquery version "3.0";
declare namespace col = "http://exist-db.org/collection-config/1.0";
(: retrieve all .xconf documents in /db/apps :)
let $dbapps := collection('/db/apps')//col:collection
(: retrieve all /db/apps related .xconf documents in /db/system :)
let $dbsystemapps := for $doc in collection('/db/system/config/db/apps')//col:collection return document-uri(root($doc))
@tuurma
tuurma / update.xql
Last active Mar 7, 2019
XQuery update examples
View update.xql
(: insert attribute :)
for $i in collection('/db/apps/my-data')//nym[not(@cert)]
return
update insert attribute cert {'high'} into $i
(: insert more than one node :)
update insert (<a/>, <b/>) into //foo
(: make sure to explicitly specify namespaces when inserting/replacing nodes :)
update insert <surname xmlns="http://www.tei-c.org/ns/1.0">Huo</surname> into //tei:name[.='Otmar']
View gist:8d240c834ac4c6ae48b7c37378e627b3
sm:create-group('shcusers')),
sm:create-group('shcadmins')),
sm:create-account('shcuser', 'pa$$wd', 'shcusers', '', 'First Last Name', 'SHC project member'),
sm:create-account('tuurma', 'pa$$wd', 'shcusers', '', 'Magdalena Turska', 'SHC project member'),
sm:add-group-member('shcadmins', 'tuurma'),
sm:remove-account('tuurma')
You can’t perform that action at this time.