This page was generated
September  12,  2012
6:00  AM
XQuery & XSLT Built-In & Modules Function Reference

Module: Modular Documents - XInclude Functions

This is the XInclude module, which is used with the modular documents CPF application.

To use the XInclude module as part of your own XQuery module, include the following line in your XQuery prolog:

import module namespace xinc = "http://marklogic.com/xinclude" at "/MarkLogic/xinclude/xinclude.xqy";

The library namespace prefix xinc is not predefined in the server.

Function Summary
xinc:link-expand This function performs a single level expansion of a single XInclude reference.
xinc:link-references This function returns a list of all the distinct URIs of documents referenced (either directly or indirectly) in the expansion of the node.
xinc:node-expand This function recursively examines the node for XInclude references and expands them, following the rules of the XInclude specification.
Function Detail
xinc:link-expand(
$context as node(),
$ref as element(xi:include)
)  as   node()*
Summary:

This function performs a single level expansion of a single XInclude reference. XInclude references in the referenced node will not be expanded.

Parameters:
$context : The root node containing the XInclude reference, which is used for the interpretation of relative links with empty href attributes.
$ref : An XInclude include element.

Usage Notes:

Since this function only performs a single-level expansion of a single reference, applications will typically call node-expand instead.

Example:
  xquery version "1.0-ml";
  import module namespace xinc = "http://marklogic.com/xinclude" 
		  at "/MarkLogic/xinclude/xinclude.xqy";

  declare namespace xi="http://www.w3.org/2001/XInclude";

  let $root := fn:doc("http://example.org/mydoc.xml")
  return xinc:link-expand( $root, $root/section[1]/xi:include[1] )
  

xinc:link-references(
$node as node()
)  as   xs:string*
Summary:

This function returns a list of all the distinct URIs of documents referenced (either directly or indirectly) in the expansion of the node.

Parameters:
$node : The node containing XInclude references.

Example:
  xquery version "1.0-ml";
  import module namespace xinc = "http://marklogic.com/xinclude" 
		  at "/MarkLogic/xinclude/xinclude.xqy";

  xinc:link-references(fn:doc("http://example.org/mydoc.xml"))
  

xinc:node-expand(
$node as node()
)  as   node()
Summary:

This function recursively examines the node for XInclude references and expands them, following the rules of the XInclude specification. The result is a node in which all the XInclude references have been resolved, or an error if there were unresolvable references with no fallback specifications.

Parameters:
$node : The node to expand.

Usage Notes:

URI references are resolved against the current database.

Example:
  xquery version "1.0-ml";
  import module namespace xinc = "http://marklogic.com/xinclude" 
		  at "/MarkLogic/xinclude/xinclude.xqy";

  xinc:node-expand( fn:doc("http://example.org/mydoc.xml") )