XQuery表达式之量化表达式(Quantified Expression)
来源:互联网 发布:淘宝新店提取神器 编辑:程序博客网 时间:2024/05/17 03:02
量化表达式比较简单,它类似于SQL中的exists 子句。它的语法如下:
[some | every] $var in expr ($anothervar in anotherexpr)* satisfies test_expr
some或every是量词,也是关键字。in子句可以有多个。
量化表达式的执行结果是一个boolean值,因为它一般做为谓词用在路径表达式中,或做为where子句用在FLWOR表达式中,
FLWOR表达式将在以后的blog中讲到,或做为条件表达式的判断条件使用。
执行时$var被绑定到expr计算出来的序列的每一个项中,对于每一次绑定,test_expr将会被执行,如果量词是some,
则只要存在一次绑定,使得test_expr的执行结果为true,那么整个量化表达式执行结果就为true,反之为false。
而如果量词是every,则必须所有的绑定,使得test_expr的执行结果为true时,整个量化表达式执行结果才为true,反之为false。
下面看几个例子:
1。every $part in /parts/part satisfies $part/@discounted
如果每一个part元素都有discounted属性,则表达式1返回true
2。some $emp in /emps/employee satisfies ($emp/bonus > 0.25 * $emp/salary)
如果至少有一个employee元素满足给定的比较表达式,则表达式2返回true
3。every $x in (1, 2, 3), $y in (2, 3, 4)
satisfies $x + $y = 4
在这个例子,每次绑定时,由(1,2,3)和(2,3,4)各取一项来进行绑定,因为共有3*3=9的绑定,
然后判断给定的比较表达式。该例返回false,如果把量词every换成some,则返回true。
[some | every] $var in expr ($anothervar in anotherexpr)* satisfies test_expr
some或every是量词,也是关键字。in子句可以有多个。
量化表达式的执行结果是一个boolean值,因为它一般做为谓词用在路径表达式中,或做为where子句用在FLWOR表达式中,
FLWOR表达式将在以后的blog中讲到,或做为条件表达式的判断条件使用。
执行时$var被绑定到expr计算出来的序列的每一个项中,对于每一次绑定,test_expr将会被执行,如果量词是some,
则只要存在一次绑定,使得test_expr的执行结果为true,那么整个量化表达式执行结果就为true,反之为false。
而如果量词是every,则必须所有的绑定,使得test_expr的执行结果为true时,整个量化表达式执行结果才为true,反之为false。
下面看几个例子:
1。every $part in /parts/part satisfies $part/@discounted
如果每一个part元素都有discounted属性,则表达式1返回true
2。some $emp in /emps/employee satisfies ($emp/bonus > 0.25 * $emp/salary)
如果至少有一个employee元素满足给定的比较表达式,则表达式2返回true
3。every $x in (1, 2, 3), $y in (2, 3, 4)
satisfies $x + $y = 4
在这个例子,每次绑定时,由(1,2,3)和(2,3,4)各取一项来进行绑定,因为共有3*3=9的绑定,
然后判断给定的比较表达式。该例返回false,如果把量词every换成some,则返回true。
- XQuery表达式之量化表达式(Quantified Expression)
- XQuery表达式之基本表达式(Primary Expression)
- XQuery表达式之路径表达式(Path Expression)
- XQuery表达式之序列表达式(Sequence Expression)
- XQuery表达式之条件表达式(Conditional Expression)
- XQuery表达式之逻辑表达式(Logical Expression)
- XQuery表达式之比较表达式(Comparison Expression)
- XQuery表达式之算术表达式(Arithmetic Expression)
- XQuery表达式之FLWOR表达式(FLWOR Expression)
- XQuery表达式之序列类型表达式(Expressions on SequenceTypes)
- 正则表达式(regular expression)
- 正则表达式(regular expression)
- 正则表达式(Regular Expression)
- 正则表达式(regular expression)
- 正则表达式 regular-expression
- 正则表达式(regular expression)
- 正则表达式(regular expression)
- 正则表达式(regular expression)
- 可以使一个页面显示更多的内容
- 常用JavaScript类库
- 如何在WinForm中对DataGrid进行分页显示
- 采用HttpModules来重写URLs(原理篇+实践)
- 论电子签章(Electronic Signature)在C#中的实现方法
- XQuery表达式之量化表达式(Quantified Expression)
- 这一切的不美好,就像一个个耳光,扇给所有生活在幸福中的人们,而我在挨了良心的一耳光以后,又挨了现实的耳光。
- 去掉树控件的水平滚动条
- project server的安装
- Java 接口和抽象类区别
- C and C++ Common Knowledge
- 下拉菜单和图片的连动性
- com网络资源
- 如何在Spring中使用JasperReport