XML Navigation
Operator
- slash:
/
- descendant axis :
//
- attribute axis:
@attr-name
- atomization:
data(...)
- filter:
[]
, e.g.@code[data(.)="CH"]
- parent abbreviation:
/..
- collections:
collection(...)
Use.
to represent the current element
JSON Navigation
- using
.
as the slash in XML. .countries
is different from.countries[]
- using
$$
to represent the current element.
Construction
- String Escaping
- JSONiq: using the backslash:
\",\n
to replace quote, spare space. - XQuery: using
"$#x000a;
…
- JSONiq: using the backslash:
- Booleans
- JSONiq:
true, false
- XQuery:
true(), false()
- JSONiq:
Basic Operations
- Atomization: XML only:
<a>42</a>+1=42+1=43
- Empty sequence:
()+1=()
- Cardinality:
(3,4)+2
: error - General Comparison: =,<,>,>=,<=, but all the types must be the same
- Value Comparison: le,lt,eq, ne, ge, gt
- logics: conjunction, disjunction, not
- non-booleans
- Parsing: from query to abstract syntax tree
- translating: from AST to Expression tree
- Optimization: Expression Tree
- Code Generation: from Expression Tree to Iterator Tree
Further Reading
XQuery, 2nd Edition Chapter 2, 3, 4, 6, 7, 10, 11,