Changes

Jump to navigation Jump to search
901 bytes added ,  11:43, 6 October 2017
no edit summary
==Non-Updating Expressions==
===transformcopy/modify/return===
<pre class="brush:xquery">
===update===
 
The {{Code|update}} expression is a BaseX-specific convenience operator for the {{Code|copy/modify/return}}
construct:
 
* Similar to the [[XQuery 3.0#Simple Map Operator|XQuery 3.0 map operator]], the value of the first
expression is bound as context item, and the second expression performs updates on this item.
The updated item is returned as result:
<pre class="brush:xquery">
</pre>
* More than one node can be specified as source: <pre class="brush:xquery">db:open('data')//item update delete node text()</pre> * If wrapped with curly braces, update expressions can be chained: <pre class="brush:xquery"><root/> update { insert node <child/> into .} update { insert node "text" into child}</pre> ===transform with=== The {{Code|updatetransform with}} expression is a convenience operator for writing simple transform expressions.Similar was added to the current [[XQuery 3https://www.w3.0org/TR/xquery-update-30/#Simple Map Operator|id-transform-with XQuery Update 3.0 map operator]], the value working draft. It is a simple version of the first[[#update|update]] expression is bound as context item, and the second expression performs updates on this item.The updated item is returned as result.also availablein BaseX:
Please note that <pre class="brush:xquery"><xml>text</xml> transform with {{Code|update}} is not part replace value of the official XQuery Update Facility yetnode .with 'new-text'It is currently being discussed in the [https:}<//www.w3.org/Bugs/Public/show_bug.cgi?id=23643 W3 Bug Tracker];your feedback is welcome.pre>
==Functions==
===Built-in Functions== {{Code|fn:put()}} is can be used to serialize XDM instances to secondary storage. It is executed at the end of a snapshot. Serialized documents therefore reflect all changes made effective during a query.=
Additional [[Database Module#Updates{{Code|database functions]] exist for performing updates on document and database levelfn:put()}} is can be used to serialize XDM instances to secondary storage. It is executed at the end of a snapshot. Serialized documents therefore reflect all changes made effective during a query. No files will be created if the addressed nodes have been deleted.
==UserWith {{Version|9.0}}, serialization parameters can be specified as third argument (more details are found in the [https://www.w3.org/TR/xquery-Defined Functions==update-30/#id-func-put XQUF 3.0 Specification]).
To use updating expressions within a user-defined or anonymous function, the {{CodeNumerous additional [[Database Module#Updates|%updating}} annotation has to be added before the {{Code|function}} keyworddatabase functions]] exist for performing updates on document and database level. A correct declaration of a function that contains updating expressions (or one that calls updating functions) looks like this:
<pre class="brush:xquery">declare %updating function { ... }</pre>==User-Defined Functions===
If an updating function item is called, the function call must be prefixed with the keyword {{Code|updating}}. This ensures that the query compiler can statically detect if an invoked function item will perform updates or not:
let $node := <node>TO-BE-DELETED</node>
let $delete-text := %updating function($node) {
delete node $node//text()
}
return $node update (
)
</pre>
 
As shown in the example, user-defined and anonymous functions can additionally be annotated as {{Code|%updating}}.
=Concepts=
to the specification and BaseX. All errors are listed in the
[[XQuery Errors#Update Errors|XQuery Errors]] overview.
 
Please remember that the collected updates will be executed after the query evaluation.
If errors occur at this final stage, they cannot be caught via try/catch.
=Changelog=
 
;Version 9.0
* Updated: [[#Built-in Functions|Built-in Functions]]: serialization parameters
 
;Version 8.5
* Added: [[#transform with|transform with]]
* Updated: [[#update|update]] was extended.
;Version 8.0
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu