Hi France,
I agree that the behavior of the WebDAV service is/was somewhat inconsistent. With the latest stable snapshot [1], all of your whitespaces should be preserved. Note that the CHOP option is not assigned to a database; instead, it’s an XML parser option that is reinterpreted every time a document is stored to disk. I must concede that this is not clearly reflected in our documentation (we’ll probably work at this soon).
A general note on whitespaces, directed to everyone: our CHOP option frequently causes discussions on this list. While the majority of our users would probably prefer to have this option set to »false« by default, we are still hesitant the do this, because a) this would cause incompatibilities with existing applications, and b) the storage of text nodes with whitespaces results in larger databases. Thus, our current plan is to first design and implement better ways for storing whitespace-only text nodes, and then change the default option with the next major release (probably BaseX 8).
Hope this helps, Christian ___________________________
I have made the upgrade to 7.4 and it has resolved the issue. However, it has now poped up in a different context.
Context:
User is working with Oxygen and is connected to BaseX through WebDAV. DB is set with Whitespace chopping: false.
Steps:
User opens a file with content <p>This is <i>mixed</i> content.</p>. User makes a change. Ex. Adds <p>A new paragraph</p> and saves the changes. Users closes and re-opens the file. New p is there, but spaces around <i>mixed</i> have dispappeared.
Since whitespace chopping is false, shouldn't documents saved through webDAV be saved following the default DB settings?
If not, what are our options here?
Regards,
France Baril
On Mon, Jul 23, 2012 at 12:14 PM, France Baril france.baril@architextus.com wrote:
Hi,
I have an issue with spaces in mixed content, when applying the xslt:transform command. I have been working around it for months with a hack in my css that puts the spaces back as   on inline elements, yet I still haven't run upon a clue to help me resolve this for good the clean way.
IN SUMMARY
The xslt applied to my xml outside the BaseX environment (Oxygen + Saxon) gets me right html content (with spaces for inline elements in mixed content) The query, when it returns the XML file from BaseX, shows that the XML file still has its spaces. When the xslt is applied to the XML file from BaseX (Using Saxon), with the BaseX XSLT module, spaces disappear around inline elements in mixed content.
IN DETAILS
I have mixed content in a file. Ex. <p>Text <i>italic</i> more text.</p>.
I have this function:;
declare %rest:path("/how2-html-topic/{$id}/{$menu-id}")
%rest:GET
function topic:html-get-how2-topic($id as xs:string, $menu-id as xs:string) as node()*{
let $x := topic:xml-get-how2-topic($id) let $params := map{ "menucontext" := $menu-id} let $stylesheet := doc(concat($app:xslt_html_topic, 't')) return xslt:transform($x, $stylesheet, $params)
};
My access a web page runs this query. Result (lost spaces):
<p>Text<i>italic</i>more text.</p>
Note: The content has been uploaded with chop spaces = false The xquery module specifies: declare boundary-space preserve; declare option db:chop 'no'
If I get the same content without applying the xslt:transform, I get the xml with all the right spaces:
declare %rest:path("/how2-html-topic/{$id}/{$menu-id}") %rest:GET function topic:html-get-how2-topic($id as xs:string, $menu-id as xs:string) as node()*{ let $x := topic:xml-get-how2-topic($id) let $params := map{ "menucontext" := $menu-id} let $stylesheet := doc(concat($app:xslt_html_topic, 't')) (: return xslt:transform($x, $stylesheet, $params) :) return $x };
Maybe I am missing some config details for the xslt module, in BaseX? In XLST? My xslt sets the output as follow:
<xsl:output indent="yes" method="xml" encoding="UTF-8"/>
Regards,
France
France Baril Architecte documentaire / Documentation architect france.baril@architextus.com (514) 572-0341
-- France Baril Architecte documentaire / Documentation architect france.baril@architextus.com (514) 572-0341
BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk