您的位置:首页 > 产品设计 > UI/UE

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

2016-08-28 17:22 351 查看
摘要: 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";


声明中分号是必须的

可以使用分号隔离事务

适用 XQuery 1.0 语法

支持所有Marklogic内建函数

增加了
try{expression}catch(variable){expression}
语法

增加了
validate as
语法

简写的定位语法 Positional Predicate Syntax
(1, 2, 3, 4, 5, 5)[1 to 3]


支持
private
语法
declare private function ....


函数映射 function mapping 默认开启

预定义命名空间:
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"


声明不需要分号

MarkLogic Server 4.0适用

不能使用函数映射 function mapping

预定义命名空间:
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";


分号是必须的

与其他的 XQuery 1.0处理器兼容

要使用Marklogic内建函数,需要手动指定命名空间
declare namespace xdmp = "http://marklogic.com/xdmp";


函数映射 function mapping 默认关闭,使用
declare option xdmp:mapping "false";
开启

预定义命名空间:
err、fn、local、xml、xmlns、xs


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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息