[Bug 29692] xsl:strip-space and packages

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29692

Abel Braaksma <abel.braaksma@xs4all.nl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |abel.braaksma@xs4all.nl

--- Comment #3 from Abel Braaksma <abel.braaksma@xs4all.nl> ---
(In reply to Michael Kay from comment #0)
>  (which I thought we had discussed and agreed) 
In Bug 23326 we say we resolved this by saying that xsl:strip-space and type
annotations are applicable to xsl:stream as well, and only apply to the
relevant package. I did not find a change log entry in the current draft, maybe
it was overlooked and never applied.

In Bug 22663 we concluded (on differences caused by separate compilation, and
the effect of the use of doc() in the static context):

Bug 22663 comment #2
"It was noted that we could require the calls on doc() in different static
contexts to return results that effectively mean the document must only be read
once and then have space stripping applied (ie. disallowing reading a version
of the document that has changed in the interim)"

Then, on the dynamic context we said:

Bug 22663 comment #3
"We should say that the dynamic context for the doc() function depends on which
package the call is contained in, and the mapping from URIs to document nodes
is therefore different for different packages. We could say that these mappings
are permitted to vary ONLY by applying the strip-space and strip-annotations as
modifications to some base mapping which must be common across packages; but
it's simpler to say nothing, which essentially means that implementations have
freedom to allow the mapping in different packages to be completely independent
(one resolver/catalog per package) or not, as they see fit."

Effectively: the intend was to leave it to the implementation by saying
(almost) nothing. 

(In reply to Michael Kay from comment #2)
> In fact generally we don't say anything much about stripping of input 
> nodes other than document nodes

I didn't find former discussion on anything other than document nodes. But we
do say in the spec that it applies to any node (but notice the ambiguity in the
sentence):

Section 4.5:
"For the purposes of this section, the term source tree means the document
containing the global context item if it is a node, any documents containing
nodes present in the initial match selection, any document returned by the
functions document, docFO30, or collectionFO30, and any document read using
xsl:stream"

I read this as: the global context item (which can only be accessed in the
principal package) may be something else than a document. The initial match
selection *must* be a document for it to apply.

Furthermore, the text on xsl:strip-space suggests it only applies to elements,
so a document with a whitespace node child is not effected.

This quote above also suggests that they do apply to all of doc, collection,
document and xsl:stream.

--------

Bottom line: I think all the rules are there, albeit hard to disentangle. We
could be more explicit about it. We could also allow stripping of non-document
nodes. Or explicitly state it is disallowed, for clarity reasons.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Sunday, 12 June 2016 11:39:54 UTC