Hello,
it seems to me there is a couple of issues concerning the handling of indentation (serialization parameter "indent").
a) Using "indent=no" whitespace-only text nodes between element nodes are removed b) Using "indent=yes" the content of elements with xml:space="preserve" is indented, too I suppose both behaviors are in contraction to the spec ( http://www.w3.org/TR/xslt-xquery-serialization/#xml-indent ).
As a particular consequence, (a) seems to preclude making an exact copy of a document (fragment) - all whitespace-only text nodes vanish.
And as a consequence of (b) one has no possibility to locally protect the whitespace used in the source document, as required for example when reusing "programlisting" elements of docbook.
Or did I overlook something?
Kind regards, Hans-Juergen
Hi Hans-Jürgen,
you may need to set the CHOP Option to false before creating a database or document [1]. Do you think this solves the problems? If no, do you have a small example that demonstrates the confusion?
Christian
[1] http://docs.basex.org/wiki/Startup_Options ___________________________
On Wed, Nov 21, 2012 at 3:41 PM, Hans-Juergen Rennau hrennau@yahoo.de wrote:
Hello,
it seems to me there is a couple of issues concerning the handling of indentation (serialization parameter "indent").
a) Using "indent=no" whitespace-only text nodes between element nodes are removed b) Using "indent=yes" the content of elements with xml:space="preserve" is indented, too
I suppose both behaviors are in contraction to the spec ( http://www.w3.org/TR/xslt-xquery-serialization/#xml-indent ).
As a particular consequence, (a) seems to preclude making an exact copy of a document (fragment) - all whitespace-only text nodes vanish.
And as a consequence of (b) one has no possibility to locally protect the whitespace used in the source document, as required for example when reusing "programlisting" elements of docbook.
Or did I overlook something?
Kind regards, Hans-Juergen
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Hi Christian,
thank you very much! So I had overlooked the option -w, which enables the preservation of whitespace-only text nodes. For practical purposes, I can now achieve what I need - an exact copy of a source fragment: using "-w -s indent=no".
Only one issue remains: the indentation does not honour "xml:space='preserve'".
Example: Input: <a xml:space="preserve"><b/></a>
Call: basex -i input.xml -s indent=yes -q.
Result: <a xml:space="preserve"> <b/> </a>
Cordial greetings, Hans-Juergen
________________________________ Von: Christian Grün christian.gruen@gmail.com An: Hans-Juergen Rennau hrennau@yahoo.de CC: BaseX basex-talk@mailman.uni-konstanz.de Gesendet: 15:50 Mittwoch, 21.November 2012 Betreff: Re: [basex-talk] indent parameter
Hi Hans-Jürgen,
you may need to set the CHOP Option to false before creating a database or document [1]. Do you think this solves the problems? If no, do you have a small example that demonstrates the confusion?
Christian
[1] http://docs.basex.org/wiki/Startup_Options ___________________________
Hi Hans-Jürgen,
seven (wow) months ago, you noticed that our serializer did not honor the xml:space attribute. This has finally been fixed in the latest stable snapshot [1].
All the best, Christian
[1] http://files.basex.org/releases/latest/ ___________________________
2012/11/22 Hans-Juergen Rennau hrennau@yahoo.de:
Hi Christian,
thank you very much! So I had overlooked the option -w, which enables the preservation of whitespace-only text nodes. For practical purposes, I can now achieve what I need - an exact copy of a source fragment: using "-w -s indent=no".
Only one issue remains: the indentation does not honour "xml:space='preserve'".
Example: Input: <a xml:space="preserve"><b/></a>
Call: basex -i input.xml -s indent=yes -q.
Result:
<a xml:space="preserve"> <b/> </a>
Cordial greetings, Hans-Juergen
Von: Christian Grün christian.gruen@gmail.com An: Hans-Juergen Rennau hrennau@yahoo.de CC: BaseX basex-talk@mailman.uni-konstanz.de Gesendet: 15:50 Mittwoch, 21.November 2012 Betreff: Re: [basex-talk] indent parameter
Hi Hans-Jürgen,
you may need to set the CHOP Option to false before creating a database or document [1]. Do you think this solves the problems? If no, do you have a small example that demonstrates the confusion?
Christian
[1] http://docs.basex.org/wiki/Startup_Options ___________________________
basex-talk@mailman.uni-konstanz.de