db:create, namespaces not stripped when input is variable?
Hello all, Any particular reason behind this observed behaviour? (Basex 8.3).
.............................................................. [1] .............................................................. declare variable $test := <test xmlns:ce="http://www.elsevier.com/xml/ani/common" xmlns="http://www.elsevier.com/xml/ani/ani"> <ce:initials>M.S.</ce:initials> </test>;
db:create('test', $test, 'blah', map {'stripns':true()}).............................................................. [2] ..............................................................
db:open('test')/*.............................................................. [3] ..............................................................
<test xmlns="http://www.elsevier.com/xml/ani/ani" xmlns:ce="http://www.elsevier.com/xml/ani/common">
<ce:initials>M.S.</ce:initials>
</test>I would have expected the namespaces to be shredded ...
Cheers, Constantine
________________________________
Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The Netherlands, Registration No. 33156677, Registered in The Netherlands.
Hello Constantine,
IMHO parsing options only apply when there is actually a parsing phase. I remember having the same problem with whitespace chopping. Would you get expected result by serializing the xml before giving it to the db:create function ?
Best regards, Fabrice
Quoted text · Hondros, Constantine (ELS-AMS) · 28 lines
De : basex-talk-bounces at mailman.uni-konstanz.de [mailto:basex-talk-bounces at mailman.uni-konstanz.de] De la part de Hondros, Constantine (ELS-AMS) Envoyé : jeudi 26 novembre 2015 18:49 À : 'basex-talk at mailman.uni-konstanz.de' <basex-talk at mailman.uni-konstanz.de> Objet : [basex-talk] db:create, namespaces not stripped when input is variable? Hello all, Any particular reason behind this observed behaviour? (Basex 8.3). .............................................................. [1] .............................................................. declare variable $test := <test xmlns:ce="http://www.elsevier.com/xml/ani/common" xmlns="http://www.elsevier.com/xml/ani/ani"> <ce:initials>M.S.</ce:initials> </test>; db:create('test', $test, 'blah', map {'stripns':true()}) .............................................................. [2] .............................................................. db:open('test')/* .............................................................. [3] .............................................................. <test xmlns="http://www.elsevier.com/xml/ani/ani" xmlns:ce="http://www.elsevier.com/xml/ani/common"> <ce:initials>M.S.</ce:initials> </test> I would have expected the namespaces to be shredded ... Cheers, Constantine Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The Netherlands, Registration No. 33156677, Registered in The Netherlands.
Fabrice already gave you the answer (thanks!). As this question has not been asked for the first time, I have updated our documentation [1].
Hope this helps, Christian
Quoted text · Etanchaud Fabrice · 112 lines
On Fri, Nov 27, 2015 at 9:14 AM, Etanchaud Fabrice <Fabrice.Etanchaud at horanet.com> wrote: > Hello Constantine, > > > > IMHO parsing options only apply when there is actually a parsing phase. > > I remember having the same problem with whitespace chopping. > > Would you get expected result by serializing the xml before giving it to the > db:create function ? > > > > Best regards, > > Fabrice > > > > > > De : basex-talk-bounces at mailman.uni-konstanz.de > [mailto:basex-talk-bounces at mailman.uni-konstanz.de] De la part de Hondros, > Constantine (ELS-AMS) > Envoyé : jeudi 26 novembre 2015 18:49 > À : 'basex-talk at mailman.uni-konstanz.de' > <basex-talk at mailman.uni-konstanz.de> > Objet : [basex-talk] db:create, namespaces not stripped when input is > variable? > > > > Hello all, > > Any particular reason behind this observed behaviour? (Basex 8.3). > > > > …………………………………………………….. > > [1] > > …………………………………………………….. > > declare variable $test := > > <test xmlns:ce="http://www.elsevier.com/xml/ani/common" > xmlns="http://www.elsevier.com/xml/ani/ani"> > > <ce:initials>M.S.</ce:initials> > > </test>; > > > > db:create('test', $test, 'blah', map {'stripns':true()}) > > > > …………………………………………………….. > > [2] > > …………………………………………………….. > > > > db:open('test')/* > > > > …………………………………………………….. > > [3] > > …………………………………………………….. > > > > <test xmlns="http://www.elsevier.com/xml/ani/ani" > xmlns:ce="http://www.elsevier.com/xml/ani/common"> > > <ce:initials>M.S.</ce:initials> > > </test> > > > > > > > > I would have expected the namespaces to be shredded … > > > > Cheers, > > Constantine > > > > > > > > ________________________________ > > Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The > Netherlands, Registration No. 33156677, Registered in The Netherlands.
Written for BaseX 8.3. BaseX may have changed since: please check the current documentation.