Marklogic学习 由浅入深(C)—— Marklogic的方言XQuery Dialects 喜欢ヅ旅行 2022-07-17 02:45 141阅读 0赞 **摘要:** 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][] [default]: /images/20220717/a874d9821ace4273a881d17471998a2a.png
还没有评论,来说两句吧...