Project
  History
  Mission
  Quotes
  License
  News

Related Efforts
  XQuery Style

Quick Start
  General
  MarkLogic
  eXist
  Saxon

Documentation
  Assumptions
  Limitations
  xqDoc Comments
  xqDoc Schema
  xqDoc Conversion
  xqDoc Display
  xqDoc Drivers

Downloads
  Binaries
  Source

Sample Output
  xqDoc Basic
  xqDoc Standard
  xqDoc Enhanced

Credits
  Who We Are

MarkLogic

The following instructions are based on MarkLogic XML Content Server v3.0. However, none of the instructions are specific to this version so it should work for the prior 2.* versions as well as subsequent version 3.* (assuming the proper versions for MarkLogic XDBC .jar files are installed). In the future, we plan to provide a version that will work with the XCC .jar files. But, in the interim, the XDBC approach should work for all versions of MarkLogic.


Setup

Although the following setup instructions do not have to be explicitly followed, they offer a 'clean' approach for configuring a MarkLogic environment for xqDoc.

  1. Create a Forest (named 'xqdoc') for storing xqDoc XML.
  2. Create a Database (named 'xqdoc') for the xqDoc XML and reference the 'xqdoc' Forest previously created.
  3. Create an XDBC server and reference the 'xqdoc' Database previously created. Set the 'library' for imports to 'xqdoc'.
  4. Create an HTTP server and reference the same 'xqdoc' Database previously created. Set the 'root' for the imports to 'xqdoc'.
  5. Immediately under the MarkLogic installation directory, create a directory named 'xqdoc'.
  6. Unzip the xqDoc May2003 presentation scripts into this 'xqdoc' directory.


Software Requirements

The following software packages need to be specified in the Java ClassPath. The helpful links below provide the location(s) for these packages.

xqdoc-conversion-bin-v1_6.zip
Use the xqdoc_conv.jar for the xqDoc conversion package contained in the zip file.

xqdoc-marklogic-driver-bin-v1_0.zip
Use the xqdoc_ml.jar for the MarkLogic drivers contained in the zip file.

antlr-2.7.5.jar
Use the antlr-2.7.5.jar file.

jdom-1.0.zip
Use the jdom.jar contained in the zip file.

xqrunner
Select the appropriate version and use use the xqrunner.jar contained in the zip file.

MarkXDBC
Select the appropriate version and use the xdbc.jar, xdmp.jar, and xeval.jar contained in the zip file.

With MarkLogic properly configured and the necessary .jar files downloaded, it is time to begin executing one of the MarkLogic drivers.


MarkLogicFileDriver

This driver will process XQuery library and main modules from the file system and store the resultant xqDoc XML into a MarkLogic database. The driver expects the following parameters:

  • Either a directory containing library and main modules (ending in .xqy) or an individual module name
  • The Address of the MarkLogic XDBC server that will access and store the xqDoc XML
  • The above MarkLogic XDBC server port number
  • The above MarkLogic XDBC server username
  • The above MarkLogic XDBC server password

So, assuming that ...

  • the necessary .jar files are specified in the ClassPath
  • the library and main modules are available in e:\
  • the MarkLogic XDBC server address is 24.15.60.100
  • the XDBC port is 2000
  • the username is 'darin'
  • the password is 'xqdoc'
the invocation should look as follows ...

java org.xqdoc.drivers.marklogic.MarkLogicFileDriver
e:\
24.15.60.100
2000
darin
xqdoc


MarkLogicModuleDriver

This driver will process XQuery library and main modules stored in a MarkLogic modules database and store the resultant xqDoc XML into a MarkLogic database. The driver expects the following parameters:

  • Address of the MarkLogic XDBC server with access to the modules database
  • The above MarkLogic XDBC server port number
  • The above MarkLogic XDBC server username
  • The above MarkLogic XDBC server password
  • The Address of the MarkLogic XDBC server that will access and store the xqDoc XML
  • The above MarkLogic XDBC server port number
  • The above MarkLogic XDBC server username
  • The above MarkLogic XDBC server password
So, assuming that ...
  • the necessary .jar files are specified in the ClassPath
  • the MarkLogic XDBC server address for the modules database is 24.15.60.100
  • the XDBC port for this server is 4000
  • the username is 'darby'
  • the password is 'modules'
  • the MarkLogic XDBC server address for the xqDoc XML database is 24.15.60.100
  • the XDBC port for this server is 2000
  • the username is 'darin'
  • the password is 'xqdoc'
the invocation should look as follows ...

java org.xqdoc.drivers.marklogic.MarkLogicModuleDriver
24.15.60.100
4000
darby
modules
24.15.60.100
2000
darin
xqdoc


MarkLogicZipDriver

This driver will process all of the xqDoc XML files stored in the 'xqdoc' collection of the XML database and create a static view of the documentation by creating numerous HTML files and placing them into a zip file named xqdoc.zip. This view of xqDoc XML is useful for those people who may not have access to the MarkLogic XML Content Server to dynamically render the content via scripts. Instead, an appointed person can create the .zip file and disseminate to the appropriate people. The driver expects the following parameters:

  • Directory where to place the generated xqdoc.zip file
  • The Address of the MarkLogic XDBC server that will access the xqDoc XML
  • The above MarkLogic XDBC server port number
  • The above MarkLogic XDBC server username
  • The above MarkLogic XDBC server password

So, assuming that ...

  • the necessary .jar files are specified in the ClassPath
  • the xqDoc presentation scripts have installed in the root directory
  • the MarkLogic XDBC server address is 24.15.60.100
  • the XDBC port is 2000
  • the username is 'darin'
  • the password is 'xqdoc'
the invocation should look as follows ...

java org.xqdoc.drivers.marklogic.MarkLogicZipDriver
24.15.60.100
2000
darin
xqdoc


Display

With the xqDoc XML stored in the database, it can now be viewed with the xqDoc presentation scripts.

So, assuming that ...

  • the xqDoc presentation scripts have been unzipped in the MarkLogic HTTP server (with access to the xqDoc XML) root directory
  • the xqDoc XML has been stored into the MarkLogic database with either the File driver or Module driver
  • the address and port for the MarkLogic HTTP server (with access to the xqDoc XML) is 24.15.60.100 and 1000
The xqDoc module home page can be accessed with the following url:

  http://24.15.60.100:1000/default.xqy


Installation Verification

If user-defined XQuery library and main modules are not readily available, the xqDoc display scripts can be used to verify the proper configuration of the MarkLogic environment and usage of the MarkLogic provided drivers. Simply unzip the xqDoc display scripts into a directory and then specify that directory when executing the MarkLogicFileDriver. When the xqDoc presentation output is viewed, it should look very similar to the enhanced output. The main difference will be the W3C XPath Functions and Operators will not be hypertext linked.


Additional Scripts

The following scripts are helpful to enable cross-reference linking to functions defined in the W3C XPath Functions and Operators specification. As mentioned in the script comments, the XHTML documentation for the W3C XPath Functions and Operators specification must first be loaded into the MarkLogic database. Before loading the XHTML into the MarkLogic database, remove the "http://www.w3.org/1999/xhtml" namespace associated with the html element. These XQuery scripts will then translate the XHTML into xqDoc XML and load the generated xqDoc XML into the database.

W3C XPath Functions and Operators specifications translation scripts:

   May 2003 script
   Nov 2003 script
   Oct 2004 script
   Apr 2005 script,
   Sep 2005 script
   Nov 2005 script
   Jan 2007 script

There are certainly more recent drafts available for the W3C XPath Functions and Operators specification to use for the translation scripts, but we are using the May 2003 version since the XML database we are leveraging supports the May 2003 specification. It would be a simple exercise to create a similar translation script for more recent versions of the XPath Functions and Operators specification.