Can't format XQuery with group by clause using ":="

Issues related to W3C XQuery.
Martin Honnen
Posts: 26

Can't format XQuery with group by clause using ":="

Mon Oct 16, 2017 2:32 pm

I have the following as an ".xq" file in oXygen XML Editor 19.1, build 2017092911

Code: Select all

for $item in Base/Item
group by $id := $item/Id
order by $id
return <Item>
  <Id>{$id}</Id>
  {for $marked in $item[Mark]
    group by $mark  := $marked/Mark
    return <Marked name="{$mark}">
      {sum($marked/Qty)}
      </Marked>
      }
  <Total>{sum($item/Qty)}</Total>
  </Item>


When I try to format that code with the format and indent button I get an error

Code: Select all

System ID: C:\SomePath\test2017101602.xq
Severity: error
Description: Cannot format the document. Encountered " ":=" ":= "" at line 2, column 14.
Was expecting one of:
    <WS> ...
    "," ...
    "stable" ...
    "order" ...
    "collation" ...
    "count" ...
    "where" ...
    "return" ...
    "as" ...
    "for" ...
    "let" ...
    "group" ...
    ":)" ...
   
Start location: 2:13
Length: 1


Looking at https://www.w3.org/TR/xquery-30/#id-group-by and the grammar

Code: Select all

GroupingSpec      ::=      GroupingVariable (TypeDeclaration? ":=" ExprSingle)? ("collation" URILiteral)?



it appears to me the syntax is fine. And oXygen runs the query without problems, the problem is simply that it does not manage to format it.
Radu
Posts: 5088

Re: Can't format XQuery with group by clause using ":="

Mon Oct 16, 2017 3:45 pm

Hi Martin,

This is a bug in our XQuery format and indent facility, I will log an internal issue for this and we'll update this thread when a fix is available.
Hopefully we'll be able to integrate a fix in a future Oxygen 19.1 minor bug fix release (we make such small bug fix releases about once a month).

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com

Return to “XQuery”

Who is online

Users browsing this forum: No registered users and 0 guests