Actually, i am trying to omit the *namespaces*, not the xml declaration. Sorry for the mistake in my first post, Martin.
So i am looking for something like : *@exclude-result-prefixes* (as found in XSLT 3.0).
And indeed, in BaseX (9.5.1), it seems to be a different behaviour if the xml source is stored in a let variable or in a db. If the xml source is stored in a variable, the exclusion of prefixes is automatic, as in :
declare namespace marc="http://www.loc.gov/MARC21/slim";
let $xml :=
<marc> <marc:record xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <marc:leader>01321nam a22002772a 4500</marc:leader> <c level="item"> <did> <unitid type="division">1808001595</unitid> </did> </c> </marc:record> </marc>
for $record in $xml/marc:record[1]
return $record/c
which gives a nice :
<c level="item"> <did> <unitid type="division">1808001595</unitid> </did> </c>
Le 25/08/2021 à 16:50, Yann NICOLAS (ABES) a écrit :
Le 25/08/2021 à 15:20, Martin Honnen a écrit :
Am 25.08.2021 um 15:12 schrieb Yann NICOLAS (ABES):
Hi all,
I am looking for the equivalent instruction of XSLT attribute @omit-xml-declaration in XQuery.
In the Query prolog you can declare
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method 'xml'; declare option output:omit-xml-declaration 'yes';
Thanks Martin.
In the user interface, it is working when the xml source is stored in a let variable, but it's not when the xml source is retrieved from a BaseX db.
declare namespace marc="http://www.loc.gov/MARC21/slim";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method 'xml'; declare option output:omit-xml-declaration 'yes';
for $record in *db:open('marcxml_full')*//marc:record[1]
return $record/c