Difference between revisions of "Repository Module"

From BaseX Documentation
Jump to navigation Jump to search
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This [[Module Library|XQuery Module]] contains functions for installing, listing and deleting [[Packaging|packaged XQuery modules]] in a repository. All functions are preceded by the <code>repo:</code> prefix which is linked to the namespace <code><nowiki>http://basex.org/modules/repo</nowiki></code>.
+
This [[Module Library|XQuery Module]] contains functions for installing, listing and deleting modules contained in the [[Repository]].
 +
 
 +
=Conventions=
 +
 
 +
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/repo</nowiki></code> namespace, which is statically bound to the {{Code|repo}} prefix.<br/>
  
 
=Functions=
 
=Functions=
 +
 
==repo:install==
 
==repo:install==
{|
+
 
 +
{| width='100%'
 
|-
 
|-
| valign='top' width='90' | '''Signatures'''
+
| width='120' | '''Signatures'''
|<code><b>repo:install</b>($path as xs:string) as empty-sequence()</code><br />
+
|{{Func|repo:install|$path as xs:string|empty-sequence()}}<br />
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
|Installs a package. The parameter <code>$path</code> indicates the path to the package.<br />
+
|Installs a package or replaces an existing package. The parameter {{Code|$path}} indicates the path to the package.<br />
 
|-
 
|-
| valign='top' | '''Errors'''
+
| '''Errors'''
|<b>[[XQuery Errors#Packaging Errors|PACK0001]]</b> is raised if the package does not exist.<br /><b>[[XQuery Errors#Packaging Errors|PACK0002]]</b> is raised if the package is already installed.<br /><b>[[XQuery Errors#Packaging Errors|PACK0003]]</b> is raised if the package to be installed requires a package which is still not installed.<br /><b>[[XQuery Errors#Packaging Errors|PACK0004]]</b> is raised if the package descriptor is invalid.<br /><b>[[XQuery Errors#Packaging Errors|PACK0005]]</b> is raised if the module contained in the package to be installed is already installed as part of another package.<br /><b>[[XQuery Errors#Packaging Errors|PACK0006]]</b> is raised if the package cannot be parsed.<br /><b>[[XQuery Errors#Packaging Errors|PACK0009]]</b> is raised if the package version is not supported.<br /><b>[[XQuery Errors#Packaging Errors|PACK0010]]</b> is raised if the package contains an invalid JAR descriptor.<br /><b>[[XQuery Errors#Packaging Errors|PACK0011]]</b> is raised if the package contains a JAR descriptor but it cannot be read.<br />
+
|{{Error|not-found|#Errors}} a package does not exist.<br />{{Error|descriptor|#Errors}} the package descriptor is invalid.<br />{{Error|installed|#Errors}} the module contained in the package to be installed is already installed as part of another package.<br />{{Error|parse|#Errors}} an error occurred while parsing the package.<br />{{Error|version|#Errors}} the package version is not supported.
 
|}
 
|}
  
 
==repo:delete==
 
==repo:delete==
{|
+
 
 +
{| width='100%'
 
|-
 
|-
| valign='top' width='90' | '''Signatures'''
+
| width='120' | '''Signatures'''
|<code><b>repo:delete</b>($pkg as xs:string) as empty-sequence()</code><br />
+
|{{Func|repo:delete|$pkg as xs:string|empty-sequence()}}<br />
 
|-
 
|-
| valign='top' | '''Summary'''
+
| '''Summary'''
|Deletes a package. The parameter <code>$pkg</code> indicates either the package name as specified in the package descriptor or (since {{Version|7.2.1}}) the name, suffixed with a hyphen and the package version.<br />
+
|Deletes a package. The parameter {{Code|$pkg}} indicates the package name, optionally suffixed with a dash and the package version.<br />
 
|-
 
|-
| valign='top' | '''Errors'''
+
| '''Errors'''
|<b>[[XQuery Errors#Packaging Errors|PACK0007]]</b> is raised if the package cannot be deleted.<br /><b>[[XQuery Errors#Packaging Errors|PACK0008]]</b> is raised if another package depends on the package to be deleted.<br />
+
|{{Error|not-found|#Errors}} a package does not exist.<br />{{Error|delete|#Errors}} the package cannot be deleted.
 
|}
 
|}
  
 
==repo:list==
 
==repo:list==
  
{{Mark|Updated in Version 7.2:}}
+
{| width='100%'
 +
|-
 +
| width='120' | '''Signatures'''
 +
|{{Func|repo:list||element(package)*}}<br />
 +
|-
 +
| '''Summary'''
 +
|Lists the names and versions of all currently installed packages.<br />
 +
|}
 +
 
 +
=Errors=
  
{|
+
{| class="wikitable" width="100%"
 +
! width="110"|Code
 +
|Description
 
|-
 
|-
| valign='top' width='90' | '''Signatures'''
+
|{{Code|delete}}
|<code><b>repo:list</b>() as element(package)*</code><br />
+
|The package cannot be deleted because of dependencies, or because files are missing.
 
|-
 
|-
| valign='top' | '''Summary'''
+
|{{Code|descriptor}}
|Lists the names and versions of all currently installed packages.<br />
+
|The package descriptor is invalid.
 +
|-
 +
|{{Code|installed}}
 +
|The module contained in the package to be installed is already installed as part of another package.
 +
|-
 +
|{{Code|not-found}}
 +
|A package does not exist.
 +
|-
 +
|{{Code|parse}}
 +
|An error occurred while parsing the package.
 +
|-
 +
|{{Code|version}}
 +
|The package version is not supported.
 
|}
 
|}
  
 
=Changelog=
 
=Changelog=
  
===Version 7.2.1===
+
;Version 9.0
 +
 
 +
* Updated: error codes updated; errors now use the module namespace
 +
 
 +
;Version 7.2.1
  
 
* Updated: [[#repo:install|repo:install]]: existing packages will be replaced
 
* Updated: [[#repo:install|repo:install]]: existing packages will be replaced
 
* Updated: [[#repo:delete|repo:delete]]: remove specific version of a package
 
* Updated: [[#repo:delete|repo:delete]]: remove specific version of a package
  
===Version 7.2===
+
;Version 7.2
  
 
* Updated: [[#repo:list|repo:list]] now returns nodes
 
* Updated: [[#repo:list|repo:list]] now returns nodes
  
The module was introduced with {{Version|7.1}}.
+
The module was introduced with Version 7.1.
 
 
[[Category:XQuery]]
 

Revision as of 12:11, 24 May 2018

This XQuery Module contains functions for installing, listing and deleting modules contained in the Repository.

Conventions

All functions and errors in this module are assigned to the http://basex.org/modules/repo namespace, which is statically bound to the repo prefix.

Functions

repo:install

Signatures repo:install($path as xs:string) as empty-sequence()
Summary Installs a package or replaces an existing package. The parameter $path indicates the path to the package.
Errors not-found: a package does not exist.
descriptor: the package descriptor is invalid.
installed: the module contained in the package to be installed is already installed as part of another package.
parse: an error occurred while parsing the package.
version: the package version is not supported.

repo:delete

Signatures repo:delete($pkg as xs:string) as empty-sequence()
Summary Deletes a package. The parameter $pkg indicates the package name, optionally suffixed with a dash and the package version.
Errors not-found: a package does not exist.
delete: the package cannot be deleted.

repo:list

Signatures repo:list() as element(package)*
Summary Lists the names and versions of all currently installed packages.

Errors

Code Description
delete The package cannot be deleted because of dependencies, or because files are missing.
descriptor The package descriptor is invalid.
installed The module contained in the package to be installed is already installed as part of another package.
not-found A package does not exist.
parse An error occurred while parsing the package.
version The package version is not supported.

Changelog

Version 9.0
  • Updated: error codes updated; errors now use the module namespace
Version 7.2.1
  • Updated: repo:install: existing packages will be replaced
  • Updated: repo:delete: remove specific version of a package
Version 7.2

The module was introduced with Version 7.1.