xquery version "3.0";
declare function local:add-log-message($message as xs:string) as empty-sequence()?
{
let $logfile-collection := "/db/apps/exist101/log"
let $logfile-name := "exist101-log.xml"
let $logfile-full := concat($logfile-collection, '/', $logfile-name)
let $logfile-created :=
if(doc-available($logfile-full))then
$logfile-full
else
xmldb:store($logfile-collection, $logfile-name, )
return
update insert
{$message}
into doc($logfile-full)/*
};
declare function local:insert-attributes() {
let $elm as element() := doc('/db/Path/To/Some/Document.xml')/*
return (
update insert into $elm,
update insert attribute x { 'y' } into $elm/*[last()],
update insert attribute a { 'b' } into $elm/*[last()]
)
};
declare function local:insert-elem() {
let $elm as element() := doc('/db/Path/To/Some/Document.xml')/*
return
update insert into $elm
};
declare function local:insert-elem2() {
let $elm as element() := doc('/db/Path/To/Some/Document.xml')/*
let $new-element as element() :=
return
update insert $new-element into $elm
};
declare function local:insert-single() {
update insert Something happened... into doc('/db/logs/mainlog.xml')/*
};
declare function local:trim-insert() {
let $document := doc('/db/logs/mainlog.xml')
let $newentry := Something happened...
return
update delete $document/*/LogEntry[position() ge 10],
if(exists($document/*/LogEntry[1]))then
update insert $newentry preceding $document/*/LogEntry[1]
else
update insert $newentry into $document/*
};
declare function local:attempt-document-node-insert() {
(: This is invalid: :)
let $document as document-node() :=
return
update insert into $document/*
};
declare function local:attempt-attr-update-with-node() {
update replace doc('/db/test/test.xml')/*/@name with
aaabbb
};
(# exist:batch-transaction #) {
update delete $document/*/LogEntry[position() ge 10],
update insert $newentry preceding $document/*/LogEntry[1]
}