[Bug 29990] New: [XSLT30] result documents in temporary trees and in patterns as a result of fn:transform calls

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

            Bug ID: 29990
           Summary: [XSLT30] result documents in temporary trees and in
                    patterns as a result of fn:transform calls
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: major
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

A FO31 bug 29959 comment#8 made me realize that we have carefully crafted rules
for side-effects to *never* happen while evaluating patterns or temporary
result trees.

But I don't think we ever imagined a function fn:transform, which is now part
of FO31. Since use of functions is not restricted, one could write, for
instance:

<xsl:template match="foo/bar[fn:transform(....) = 12]">
   ....
</xsl:template>

If the transformation has a side effect, what would happen? This transformation
could be evaluated once, never, many times, be cached, write messages, result
documents, principal results etc.

I think we either may have to prohibit this, or make sure that result documents
are not created in such cases (for instance by requiring that serialization be
disabled in such execution contexts).

A similar thing applies to xsl:evaluate calling this function, or a dynamic
function call effectively calling this function.

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

Received on Tuesday, 8 November 2016 09:44:46 UTC