This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 2388 - Required static error checking unduly constraints implementations
Summary: Required static error checking unduly constraints implementations
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 2.0 (show other bugs)
Version: Working drafts
Hardware: All All
: P2 major
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords: erratum
Depends on:
Blocks:
 
Reported: 2005-10-19 19:42 UTC by Terje Norderhaug
Modified: 2007-04-17 14:33 UTC (History)
0 users

See Also:


Attachments

Description Terje Norderhaug 2005-10-19 19:42:38 UTC
Requiring that conforming XSLT processors must detect and signal static errors before execution 
imposes severe constraints on implementations that will disallow certain optimizations and 
execution models.

For example, some XSLT  implementations may minimize latency (the delay before generating the 
first output) by performing on-demand analysis or compilation of template rules as they are 
applied, or by dynamically evaluate/interpret a simplified stylesheet module without compiling it 
or first performing static analysis.

Proposed solution: Turn static error checking into an optional feature. An XSLT processor with a 
Static Error Checking feature signals all static errors in a style sheet before processing any 
documents. A Basic XSLT processor without static error checking would detect and signal static 
errors at the latest as if they were dynamic errors, but might signal static errors earlier depending 
on the implementation.

Style sheet designers would then be able to use a processor with static error checking during 
debugging, while e.g. web browsers and other optimized real-time processors could bypass static 
error checking for speed and to minimize latency.

-- Terje
Comment 1 Michael Kay 2005-10-19 23:02:00 UTC
Unfortunately this comment comes very late in the day. We've been develoing the
spec for five years, and there have been opportunities to review it every step
along the way. At the moment we're trying to get the final bugs out before we
finish. The comment will be considered by the Working Group, though not during
the Last Call phase which is now closed. I'm recategorizing it as "LATER" which
means it will go on the queue to be looked at in the next round.

Michael Kay
(personal response)
Comment 2 Jim Melton 2007-02-25 23:56:08 UTC
Closing bug because commenter has not objected to the resolution posted and more than two weeks have passed.
Comment 3 Michael Kay 2007-04-03 23:05:06 UTC
Despite Jim Melton's administrative closure of this bug, the WG reviewed it on 15 March 2007 and felt that there was room for further clarification of the text, which the editor was asked to propose.

Proposal:

In 2.9, in the definition of "static error", change "An error that is detected by examining a stylesheet before execution starts" to "An error that can be detected by examining a stylesheet before execution starts".

I feel that this simple change is sufficient to remove any implication that static analysis and error detection must complete before evaluation starts, while retaining the rule that if static errors are present, they must be reported. We already have the rule "If more than one error arises, an implementation is not required to signal any errors other than the first one that it detects. It is implementation-dependent which of the several errors is signaled. This applies both to static errors and to dynamic errors.", which implies that if both static and dynamic errors are present, the system is allowed to report a dynamic error in preference to a static error.
Comment 4 Sharon Adler 2007-04-17 13:50:38 UTC
The WG met on 17 April 2007 at the F2F at Red Hat and reviewed and accepted M. Kay's proposal.
Comment 5 Sharon Adler 2007-04-17 14:33:54 UTC
This completes erratum  E5