This tutorial shows you, step by step, how to configure the MarkLogic support in <oXygen/> XML Editor, browse and edit resources through WebDAV, as well as running XQuery interrogations.
An XDBC application server must be running in order to be able to connect to the MarkLogic server using <oXygen/>. More information about how to configure an XDBC server can be found in MarkLogic documentation: http://xqzone.marklogic.com/pubs/3.2/books/admin.pdf. <oXygen/> uses XCC connector to interact with MarkLogic XDBC server and requires the basic authentication schema to be set. Starting with version MarkLogic 4.0 the default authentication method when you create a HTTP or WebDAV Server is digest, so make sure to change it to basic.
The tutorial assumes that you have a basic knowledge of databases, XML technologies and of <oXygen/> XML Editor tool. The explanations and screen shots are given for the standalone version of <oXygen/> XML Editor. However the same set of features are available in Eclipse plugin version of the product with minor interface differences.
<oXygen/> currently supports MarkLogic version 4.0 or higher. Debugging is available only starting with MarkLogic 4.0 or higher.
To connect <oXygen/> to a MarkLogic database, you need to configure a data source and a connection.
To configure the data source, you need the MarkLogic driver, available at: http://community.marklogic.com/download.
Then go to <oXygen/>'s Preferences->Data Sources and press the New button. Insert an unique data source name and select MarkLogic in the Type dropbox.
More information about configuring a MarkLogic datasource can be found in the user manual: http://www.oxygenxml.com/doc/ug-editor/tasks/configure-marklogic-datasource.html#configure-marklogic-datasource
Once you have created the data source you may proceed further by defining one or more connection based on it. The connections can be configured on the same Preferences->Data Source page.
Start by choosing a unique connection name and set the Data Source combo box to the already configured MarkLogic data source. In the XDBC Host field specify the name or IP address of the XDBC server.
In the WebDAV URL field you can specify an URL pointing to a MarkLogic WebDAV server. This URL will be used for browsing and editing resource. The WebDAV URL has the following structure: http://<host>:<port>.
Sometimes you need to work with two database servers (for example a development sever and a production server) so it makes sense to define a connection on each database server to be further used when executing XQuery or browsing/editing the database resources. If the two database servers have the same version you only need to configure a data source and add two connections for it.
Once we finished the configuration of the connection (and have specified a WebDAV URL) we are able to browse the database content using the Datasource Explorer view from the Database perspective.
MarkLogic supports XQuery interrogations over the stored XML content. For example if you like to create a XQuery to generate a report with the billing contact data from the latest purchase notifications. You can open an XQuery editor (New->XQuery), configure the transformation scenario to match the MarkLogic connection for the transformer field, write the XQuery and then execute it.
When editing MarkLogic XQuery modules, the Content Completion Assistant presents the latest built-in XQuery functions in accordance with the server version.
The new capabilities of <oXygen/> enable debugging of real applications that use XQuery, for example web applications that trigger XQuery executions. <oXygen/> connects to a MarkLogic server, shows you the running XQuery scripts and allows you to debug them. By setting the server in debug mode you will be able to intercept all the XQuery scripts run on that server.
The remote debugging support allows also collaborative debugging, two or more developers can connect to the same debugging session.
When entering in the XQuery Debugging mode <oXygen/> provides a special layout that display the XML source (optional) and the XQuery documents side by side. It can also show the debugging output and specific XQuery debugging views and toolbars that allow you to set breakpoints, inspect variable bindings, evaluate expressions in the request context.
More details about the <oXygen/> Xquery Debugger can be found here: http://www.oxygenxml.com/xquery_debugger.html