Installing a Custom Transformation
Install the XQuery library module containing your function into the modules database or modules root directory of the XDBC App Server associated with the destination database. For import
operations, this is the App Server identified by -host
and -port
mlcp command line options. For copy
operations, this is the App Server identified by -output_host
and -output_port
mlcp command line options.
Best practice is to install your libraries into the modules database of your XDBC App Server. If you install your module into the modules database, MarkLogic Server automatically makes the implementation available throughout your MarkLogic Server cluster. If you choose to install dependent libraries into the Modules directory of your MarkLogic Server installation, you must manually do so on each node in your cluster.
MarkLogic Server supports several methods for loading modules into the modules database:
Run an XQuery or JavaScript query in Query Console. For example, you can run a query similar to the following to install a module using Query Console. Note: First select your modules database in the Query Console Content Source dropdown.
xquery version "1.0-ml"; xdmp:document-load("/space/mlcp/transform.xqy", <options xmlns="xdmp:document-load"> <uri>/example/mlcp-transform.xqy</uri> <repair>none</repair> <permissions>{xdmp:default-permissions()}</permissions> </options>)
If you use the App Server on port 8000 or have a REST API instance, you can use any of the following Client APIs:
Java:
ResourceExtensionsManager.write
. For details, see Managing Dependent Libraries and Other Assets in the Java Application Developer’s Guide.Node.js:
DatabaseClient.config.extlibs
. For details, see Managing Assets in the Modules Database in the Node.js Application Developer’s Guide.REST:
PUT /v1/ext/{directories}/{asset}
. For details, see Managing Dependent Libraries and Other Assets in the REST Application Developer’s Guide.
If you use the filesystem instead of a modules database, you can manually install your module into the Modules directory. Copy the module into MARKLOGIC_INSTALL_DIR
/Modules
or into a subdirectory of this directory. The default location of this directory is:
Unix:
/opt/MarkLogic/Modules
Windows:
C:\Program Files\MarkLogic\Modules
If your transformation function requires other modules, you should also install the dependent libraries in the modules database or the modules directory.
For a complete example, see Example: Server-Side Content Transformation.