Difference between revisions of "Inspection Module"
Jump to navigation
Jump to search
m (moved XQDoc Module to Inspection Module) |
|||
| Line 1: | Line 1: | ||
| − | This [[Module Library|XQuery Module]] contains functions for | + | This [[Module Library|XQuery Module]] contains functions for extracting internal information on modules and functions and generating documentation. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=Conventions= | =Conventions= | ||
| − | All functions in this module are assigned to the {{Code|http://basex.org/modules/ | + | All functions in this module are assigned to the {{Code|http://basex.org/modules/inspect}} namespace, which is statically bound to the {{Code|inspect}} prefix.<br/> |
All errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix. | All errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix. | ||
=Functions= | =Functions= | ||
| − | ==xqdoc | + | ==inspect:xqdoc== |
{| width='100%' | {| width='100%' | ||
|- | |- | ||
| width='90' | '''Signatures''' | | width='90' | '''Signatures''' | ||
| − | |{{Func|xqdoc | + | |{{Func|inspect:xqdoc|$uri as xs:string|element(xqdoc:xqdoc)}} |
|- | |- | ||
| '''Summary''' | | '''Summary''' | ||
| − | |Parses the specified {{Code|$input}} and generates an xqDoc element. | + | |Parses the specified {{Code|$input}} and generates an xqDoc element.<br/>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 {{Code|(:~}} and end with {{Code|:)}}, and tags start with {{Code|@}}. xqDoc comments can be specified for main and library modules and variable and function declarations. We have slightly extended the conventions and updated the [http://files.basex.org/etc/xqdoc-1.1.30052013.xsd xqDoc schema]:<br/> |
| + | * an {{Code|<xqdoc:namespaces/>}} node lists all namespaces of a module | ||
| + | * if annotations are attached to variables or functions, an {{Code|<xqdoc:annotations/>}} node is added | ||
| + | * variables now have a name and a type. | ||
| + | |- | ||
| + | | '''Example''' | ||
| + | |An example is [[#Example|shown below]]. | ||
|} | |} | ||
Revision as of 09:11, 31 May 2013
This XQuery Module contains functions for extracting internal information on modules and functions and generating documentation.
Conventions
All functions in this module are assigned to the http://basex.org/modules/inspect namespace, which is statically bound to the inspect prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.
Functions
inspect:xqdoc
| Signatures | inspect:xqdoc($uri as xs:string) as element(xqdoc:xqdoc)
|
| Summary | Parses the specified $input and generates an xqDoc element.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 and variable and function declarations. We have slightly extended the conventions and updated the xqDoc schema:
|
| Example | An example is shown below. |
Example
The query xqdoc:parse('sample.xq') will convert 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 string. :)
declare variable $samples:test-string
as xs:string := 'this is a string';
(:~
: This function simply returns the specified integer.
: @param $number number to return
: @return specified number
:)
declare %private function samples:same(
$number as xs:integer
) as xs:integer {
$number
};
...to the following output:
<xqdoc:xqdoc xmlns:xqdoc="http://www.xqdoc.org/1.0">
<xqdoc:control>
<xqdoc:date>2013-05-31T08:43:05.123+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.xqm</xqdoc:name>
</xqdoc:module>
<xqdoc:imports/>
<xqdoc:namespaces>
<xqdoc:namespace prefix="samples" uri="http://basex.org/modules/samples"/>
</xqdoc:namespaces>
<xqdoc:variables>
<xqdoc:variable>
<xqdoc:name>samples:test-string</xqdoc:name>
<xqdoc:comment>
<xqdoc:description>This is a sample string.</xqdoc:description>
</xqdoc:comment>
<xqdoc:type>xs:string</xqdoc:type>
</xqdoc:variable>
</xqdoc:variables>
<xqdoc:functions>
<xqdoc:function arity="1">
<xqdoc:comment>
<xqdoc:description>This function simply returns the specified integer.</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:annotations>
<xqdoc:annotation name="private"/>
</xqdoc:annotations>
<xqdoc:signature>declare %private 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.