Inspection Module

From BaseX Documentation
Revision as of 23:14, 30 May 2013 by CG (talk | contribs)
Jump to navigation Jump to search

This XQuery Module contains functions for generating xqDoc files from XQuery modules.

Introduction

xqDoc provides a simple vendor neutral solution for generating a documentation from XQuery modules. The documentation conventions have been inspired by the JavaDoc standard. Documentation comments begin with (:~ and end with :), and tags start with @. xqDoc comments can be specified for main and library modules, variable declarations and function declarations, as shown in the example below.

Conventions

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

Functions

xqdoc:parse

Signatures xqdoc:parse($input as xs:string) as element(xqdoc:xqdoc)
Summary Parses the specified $input and generates an xqDoc element.

Example

The following example module...

(:~ 
 : This module provides some sample functions to demonstrate
 : the features of the XQDoc Module.
 : @author BaseX Team
 : @see http://docs.basex.org/wiki/XQDoc_Module
 : @version 1.0
 :)
module namespace samples = 'http://basex.org/modules/samples';

(:~ This is a sample number. :)
declare variable $samples:number := 1;

(:~
 : This function simply returns the specified number.
 : @param $number number to return
 : @return specified number
 :)
declare function samples:same($number as xs:integer) as xs:integer {
  $number
};

...will be converted to the following xqDoc file:

<xqdoc:xqdoc xmlns:xqdoc="http://www.xqdoc.org/1.0">
  <xqdoc:control>
    <xqdoc:date>2013-05-31T00:13:02.199+02:00</xqdoc:date>
    <xqdoc:version>1.1</xqdoc:version>
  </xqdoc:control>
  <xqdoc:module type="library">
    <xqdoc:uri>http://basex.org/modules/samples</xqdoc:uri>
    <xqdoc:name>sample.xq</xqdoc:name>
  </xqdoc:module>
  <xqdoc:imports/>
  <xqdoc:variables>
    <xqdoc:variable>
      <xqdoc:name>samples:number</xqdoc:name>
      <xqdoc:comment>
        <xqdoc:description>This is a sample number.</xqdoc:description>
      </xqdoc:comment>
    </xqdoc:variable>
  </xqdoc:variables>
  <xqdoc:functions>
    <xqdoc:function arity="1">
      <xqdoc:comment>
        <xqdoc:description>This function simply returns the specified number.</xqdoc:description>
        <xqdoc:param>$number number to return</xqdoc:param>
        <xqdoc:return>specified number</xqdoc:return>
      </xqdoc:comment>
      <xqdoc:name>samples:same</xqdoc:name>
      <xqdoc:signature>declare function samples:same($number as xs:integer) as xs:integer</xqdoc:signature>
      <xqdoc:parameters>
        <xqdoc:parameter>
          <xqdoc:name>number</xqdoc:name>
          <xqdoc:type>xs:integer</xqdoc:type>
        </xqdoc:parameter>
      </xqdoc:parameters>
      <xqdoc:return>
        <xqdoc:type>xs:integer</xqdoc:type>
      </xqdoc:return>
    </xqdoc:function>
  </xqdoc:functions>
</xqdoc:xqdoc>

Changelog

This module was introduced with Version 7.7.