Marklogic学习 由浅入深(C)—— Marklogic的方言XQuery Dialects

来源:互联网 发布:淘宝刀具店 编辑:程序博客网 时间:2024/05/17 01:51

摘要: XQuery规范遵循W3C的标准,Marklogic8遵从了W3C对XQuery1.0的语法建议。为了让Marklogic能最大化的兼容XQuery并通过一个简单的配置就能实现扩充,Marklogic Server支持三种不同的方言。

方言

第一次在编程中接触方言Dialect,是在Hibernate配置中。Hibernate根据你选择的“方言”(DB2Dialect、MySQL5Dialect、OracleDialect),针对每种数据库,作调整,如生成不同的SQL语句等。Marklogic 的方言和这个还是有点不太一样,更像是一种Prologue

XQuery 1.0-ml

Marklogic增强模式方言。可以在xquery文件的第一行用如下声明开启:

xquery version "1.0-ml";
  1. 声明中分号是必须的
  2. 可以使用分号隔离事务
  3. 适用 XQuery 1.0 语法
  4. 支持所有Marklogic内建函数
  5. 增加了try{expression}catch(variable){expression}语法
  6. 增加了validate as语法
  7. 简写的定位语法 Positional Predicate Syntax (1, 2, 3, 4, 5, 5)[1 to 3]
  8. 支持private语法 declare private function ....
  9. 函数映射 function mapping 默认开启
  10. 预定义命名空间:cts、dav、dbg、dir、err、error、fn、local、lock、map、match、prof、prop、sec、sem、spell、xdmp、xml、xmlns、xqe、xqterr、xs

XQuery 0.9-ml

MarkLogic Server 3.2兼容性方言。可以在xquery文件的第一行用如下声明开启:

xquery version "0.9-ml"
  1. 声明不需要分号
  2. MarkLogic Server 4.0适用
  3. 不能使用函数映射 function mapping
  4. 预定义命名空间:cts、dav、dbg、dir、err、error、fn、lock、map、match、prof、prop、sec、spell、xdt、xdmp、xml、xmlns、xqe、xqterr、xs

XQuery 1.0

严格模式方言。可以在xquery文件的第一行用如下声明开启:

xquery version "1.0";
  1. 分号是必须的
  2. 与其他的 XQuery 1.0处理器兼容
  3. 要使用Marklogic内建函数,需要手动指定命名空间declare namespace xdmp = "http://marklogic.com/xdmp";
  4. 函数映射 function mapping 默认关闭,使用declare option xdmp:mapping "false";开启
  5. 预定义命名空间:err、fn、local、xml、xmlns、xs

在构建APP的时候,我们可以选择默认的xquery版本,默认选择的是1.0-ml
default

0 0
原创粉丝点击