XQuery IntelliJ Plugin 1.3
10 Nov 2018
- Added support for the eXist-db XQuery database.
- Initial support for running queries on the BaseX, eXist-db, MarkLogic and Saxon XQuery processors.
- Support for Saxon 9.9 and BaseX 9.1 syntax extensions (see below).
- Support for the BaseX and Saxon built-in functions. Thanks to Bridger Dyson-Smith for adding these.
- Improved resolving imported modules, names, and functions (see below).
Saxon Vendor Extensions:
- Recognise Saxon
UnionType
constructs inTypedMapTest
sequence types. - Support
TupleType
constructs with names only, not associated sequence types. - Support Saxon 9.8 simple inline function expressions.
- Support Saxon 9.9
orElse
andandAlso
logical expressions. - Support Saxon 9.9 optional field names for tuples, and extensible tuples.
- Support
NCName
andURIQualifiedName
types in theunion()
syntax.
BaseX Vendor Extensions:
- Support the BaseX 9.1
TernaryIfExpr
conditional expressions. - Support the BaseX 9.1
ElvisExpr
conditional expressions. - Support the BaseX 9.1 if expressions without else branches.
XQuery Working Draft 02 May 2003 and MarkLogic 0.9-ml Support:
- Support
empty()
syntax forempty-sequence()
.
Invalid Syntax Recovery:
- Recover parsing when the
CompElemConstructor
,CompAttrConstructor
,CompPIConstructor
, orCompNamespaceConstructor
tag name is aStringLiteral
. - Recover parsing when a
SequenceType
is used in aParenthesizedItemType
.
Static Context:
- Add the
sql
namespace to the MarkLogic static context, added in MarkLogic 7.0. - Add support for the BaseX built-in functions and static context. Thanks to Bridger Dyson-Smith for providing the built-in function definitions.
- Add support for the Saxon built-in functions and static context. Thanks to Bridger Dyson-Smith for providing the built-in function definitions.
- Add support for EXPath and EXQuery module functions used by BaseX and Saxon as built-in functions and importable modules.
Module Import Resolution:
- Use project source roots to resolve module import URIs.
- Locate built-in definitions from
http://
-basedURILiteral
nodes. - Resolve all location URIs in a
ModuleImport
, not just the first valid location. - Resolve
ModuleImport
declarations that don’t specifyat
paths.
EQName Resolution:
- Expand
NCName
-basedEQName
nodes, using the default element or function namespaces where appropriate. - Resolve EQNames bound to
NamespaceDecl
declarations. - Resolve EQNames bound to
DefaultNamespaceDecl
declarations. - Resolve EQNames bound to
DirAttributeList
attributes.
Function Resolution:
- Matching statically-known functions against expanded QNames.
- Search the
MainModule
/LibraryModule
prolog for function declarations.
Inspections:
- IJVS0001: Report warnings for constructs that require a different XQuery version.