[xquery-talk] XQuery Update Facility and unwanted whitespace
joewiz at gmail.com
Fri Mar 24 12:06:48 PDT 2017
Have there been any further developments in the area of unwanted
reformatting of entire documents after applying XQuery Update operations to
just a portion of a document? I'm using oXygen 18.1 with Saxon-EE XQuery
220.127.116.11, with "Strip whitespaces" set to "None ("none")", XQuery 3.0
support enabled, and XQuery Update enabled.
For example, lines 1-2 of the source document began as this:
<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:frus="
But after running the XQuery Update, these two lines are now merged onto a
<?xml version="1.0" encoding="UTF-8"?><TEI xmlns="
As you can imagine, this wreaks havoc with diff tools, so I would like to
find a way, if possible, to limit the scope of whitespace changes to just
where the query applies updates.
Apologies if this turns out to be a product-specific question, but I'm not
quite sure how to distinguish in this question between XQuery Update,
Saxon, and oXygen.
On Tue, Jul 10, 2012 at 4:00 AM, Michael Kay <mike at saxonica.com> wrote:
> Andrew has answered the whitespace questions.
> It's a Saxon (not an Oxygen) restriction that XQuery 3.0 and XQuery Update
> can't currently be used together in the same query. It happened that way
> because both are implemented as extensions to the "core" XQuery 1.0 parser,
> built using subclassing. (Done that way partly because of the code
> separation between different Saxon editions). We need to fix this
> mechanism, which is becoming pretty unmanageable with the number of
> different language dialects supported. Ideally, I suppose, we should make a
> complete break and move to a bottom-up table driven parser; but XQuery
> parsing is so fragile with the number of context-dependent decisions that
> need to be made, it's a risky change to contemplate.
> Michael Kay
> On 09/07/2012 19:45, Joe Wicentowski wrote:
>> Hi all,
>> I'm having a problem with query I wrote that makes use of the XQuery
>> Update Facility. The problem is that unwanted whitespace inserted
>> into the results of my query. Here is my source XML (a TEI-like
>> list), the query in question, and the output showing the unwanted
>> <item>See <ref target="#MIDDLEEAST">Middle East</ref></item>
>> <item xml:id="MIDDLEEAST">Middle East <ref
>> let $doc := doc('source.xml')
>> for $item-id at $count in $doc//item/@xml:id
>> let $new-id := concat('in', $count)
>> let $new-target := concat('#', $new-id)
>> let $targets := $doc//ref[@target = concat('#', $item-id)]/@target
>> (: fix @xml:ids :)
>> replace value of node $item-id with $new-id
>> (: fix @targets :)
>> for $target in $targets
>> replace value of node $target with $new-target
>> <item>See <ref target="#in1">Middle East</ref>
>> <item xml:id="in1">Middle East <ref target="#d68">68</ref>
>> Note that while the query only modifies attribute values, the results
>> of the query are somehow re-indented. (Specifically, in the source,
>> there was no whitespace between </ref> and </item>, but in the
>> results, </item> is on a new line.
>> Is this a serialization issue? Is there a way for me to declare some
>> options that will prevent the unwanted whitespace from being inserted?
>> I'm not sure whether this is a general XQuery issue or an
>> implementation-specific issue, so let me know if this isn't the right
>> forum for this question. I'm using oXygen 13 in XQuery Debugger mode
>> with Saxon EE-XQuery 18.104.22.168.
>> (On a related note, I see that XQuery 3.0 has new support for
>> serialization options --
>> http://www.w3.org/TR/xquery-30/#id-serialization -- but oXygen doesn't
>> seem to allow combining XQuery 3.0 with XQuery Update Facility and
>> Saxon EE. This forum post instructs users to disable XQuery 1.1/3.0
>> support in order to use XQUF:
>> talk at x-query.com
> talk at x-query.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the talk