W3C home > Mailing lists > Public > public-qt-comments@w3.org > February 2015

[Bug 28114] [xslt 3.0] Cycles in attribute sets

From: <bugzilla@jessica.w3.org>
Date: Sat, 28 Feb 2015 21:24:36 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-28114-523-nxCE1J2Rh1@http.www.w3.org/Bugs/Public/>

--- Comment #1 from Michael Kay <mike@saxonica.com> ---
We say in 10.2.2

Cycles in attribute sets (that is, where an attribute set directly or
indirectly invokes itself) are not permitted, and are detected statically.

An attribute set A is dependent on an attribute set B if A contains an
attribute set invocation that is bound to B, or if A contains an attribute set
invocation that is bound to an attribute set C that is dependent on B. A cycle
exists if any attribute set is dependent on itself.

Such a cycle is an error even if the attribute set is never invoked, and even
if the cycle is subsequently broken by overriding one or more of the attribute
sets participating in the cycle. As a consequence, it is possible to detect a
cycle during the static analysis of a package, before it is known how the
package will be used.

The problem here is that an attribute set invocation is not bound statically to
an attribute set; our only definition of such binding occurs when packages are
assembled, and takes overrides into account. We could define some kind of
concept of binding within the scope of a single package, but it's not clear how
it would handle references to attribute sets in a used package.

In 9.11 we have a more general treatment of circularities among component
definitions, which includes attribute sets within its scopy, and which deems
all circularities to be dynamic errors, to avoid the kind of problems referred
to above.

I suggest we simply delete section 10.2.2, and rely on the general mechanisms
in 9.11.

You are receiving this mail because:
You are the QA Contact for the bug.
Received on Saturday, 28 February 2015 21:24:38 UTC

This archive was generated by hypermail 2.3.1 : Saturday, 28 February 2015 21:24:39 UTC