We continuously improve the XQuery compliance ratio of BaseX. In the beginning, we considered the serialization of attributes helpful, but as it contradicted with the serialization spec., we eventually removed this exception and replaced it with the correct behavior.
decided to make BaseX more conformant
Thanks for your answers.
In the earlier versions of BaseX, upto 7.6, the following query was running smoothly -
for $x in doc('docs')//Doc[Year="2014"]/@name order by $x return $x
So, in all of my code, I have used in same manner. But in 7.8.1 and onwards (after 7.6, I directly jumped to 7.8.1), this query results in error !!!
So for this new versions, my above query will be -
for $x in doc('docs')//Doc[Year="2014"]/@name order by $x return $x/string() (: or $x/data() :)
But, then why the earlier versions where supporting the first query ?
On Wed, Apr 2, 2014 at 12:49 PM, Christian Grün christian.gruen@gmail.com wrote:
[SENR0001] Attributes cannot be serialized:db:open-pre("docdb",7).
This is in compliance with the spec, which prevents attributes from being serialized without their elements. A simple example that triggers the error:
<a b="c"/>/@b
This is how you can request the attribute value:
<a b="c"/>/@b/data()
This is how you can request its name:
<a b="c"/>/@b/name()
-- Have a nice day JBest
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk