What is the difference between JSONiq and XQuery 3.1?

Both JSONiq and XQuery 3.1 extend XQuery 3.0 with JSON support.

How do they differ?

+4
source share
1 answer

General motivation

XQuery 3.1 was designed to support additional data structures (maps, arrays) in memory. These structures are displayed in JSON for input and output. XQuery 3.1 has been a W3C recommendation since March 2017.

JSONiq JSON , . XML Query ( : ), JSON. , .

XQuery 3.1, JSONiq , -, . , XQuery 3.1 , JSONiq JSON.

JSONiq . XQuery 3.1 .

JSONiq ​​ , , , . XQuery 3.1 .

JSONiq . XQuery 3.1 ( ).

XQuery 3.1 , , , XML. JSONiq XML, .

JSONiq JSON.

{ "foo" : [ 1 to 10 ] }

XQuery 3.1 XML node:

map { "foo" : array { 1 to 10 } }

XQuery 3.1 , , , :

[ 1, (1 to 10), 11 ]

XQuery 3.1 ​​:

let $map := map { "foo" : "bar" }
return $map("foo")

let $array := array { 1, 2, 3 }
return $array(2)

? :

let $map := map { "foo" : "bar" }
return $map?foo

let $array := array { 1, 2, 3 }
return $array?2

let $array := array { 1, 2, 3 }
return $array?*

JSONiq ( )

let $map := { "foo" : "bar" }
return $map.foo

let $array := [ 1, 2, 3 ]
return $array[[2]]

let $array := [ 1, 2, 3 ]
return $array[]

(JSONiq XQuery, ).

+5

Source: https://habr.com/ru/post/1680770/


All Articles