Loading TOC...

dls:retention-rule

dls:retention-rule(
   name as xs:string,
   comment as item()*,
   num-versions as xs:unsignedInt?,
   duration as xs:duration?,
   document-query-text as xs:string?,
   document-query as cts:query?
) as element(dls:retention-rule)

Summary

This function creates and returns a retention rule element. Use dls:insert-retention-rule to insert the retention rule into the database.

Specifying multiple constraints implies AND between them. For example, specifying both $num-versions and $duration retains a numbered version only if it is both one of the N most recent versions and it was created more recently than "now - duration." If neither $num-versions or $duration is specified, then any numbered version matching the document query is kept forever.

The $document-query-text parameter is intended to be used for the human readable form of a query that was used to produce the corresponding cts:query . This may be the text that a user typed into a search text field in the UI. This parameter does NOT affect the retention policy.

Parameters
name The name of the retention rule. The name must be unique to this rule.
comment Comment that describes this retention rule.
num-versions The number of most recent versions to be retained. This means to keep versions greater than (but not equal to) num-versions - current-version, if they still exist.
duration Retain all versions that were created on or after the duration date/time.
document-query-text Comment that describes the document query.
document-query The document query. Typically returned by a Query Constructor Function.

Required Privileges

The dls-admin role is required to run this function, or the privilege:
http://marklogic.com/xdmp/privileges/dls-admin

Example

  xquery version "1.0-ml";
  import module namespace dls="http://marklogic.com/xdmp/dls" 
              at "/MarkLogic/dls.xqy";

  dls:retention-rule(
      "All Versions Retention Rule",
      "Retain all versions of all documents",
      (),
      (),
      "Locate all of the documents",
      cts:and-query(())) 

  (: Returns a retention rule in XML format. :)
   

Example

  xquery version "1.0-ml";

  import module namespace dls = "http://marklogic.com/xdmp/dls" 
      at "/MarkLogic/dls.xqy";

  dls:retention-rule(
      "Rule1",
      "Keep the five most recent versions of Jim's documents that are 
         15 days old or newer",
      5,
      xs:duration("P15D"),
      "Locate documents authored by Jim",
      dls:author-query(xdmp:user("Jim"))) 

  (: Returns a retention rule in XML format. :)
    

Example

  xquery version "1.0-ml";

  import module namespace dls = "http://marklogic.com/xdmp/dls" 
      at "/MarkLogic/dls.xqy";

  dls:retention-rule(
      "Rule2",
      "Keep the five most recent versions of Jim's documents in the 'foo' 
         collection that are 15 days old or newer",
      5,
      xs:duration("P15D"),
      "Locate documents in the 'foo' collection authored by Jim",
       cts:and-query((
          cts:collection-query("http://marklogic.com/documents/foo"),
          dls:author-query(xdmp:user("Jim")) )) )

  (: Returns a retention rule in XML format. :)
    

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.