[Bug 29574] Default visibility of accepted components

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

Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Group|                            |XSLXQuery_WG

--- Comment #9 from Michael Kay <mike@saxonica.com> ---
The main change needed to implement this is to change the final sentence of the
second para of 3.5.3.2 which currently reads:

For every component CQ in package Q that is not matched by any xsl:override or
xsl:accept element in the package manifest of P, there will be a corresponding
component CP in package P that has the same symbolic identifier and declaration
as CQ. The visibility of CP will be the same as the visibility of CQ, except
that where the visibility of CQ is private, the visibility of CP will be
hidden.

Now, we have accepted that if CQ is public, CP should be private. This raises
the question of what happens for other values of CQ's visibility.

* If CQ is final, CP should clearly be private.

* If CQ is hidden, CP should clearly be hidden.

* If CQ is abstract, it's not so clear. The status quo, where CP is abstract,
would be quite inconsistent with the handling of public and final components. I
think there are two alternatives: either make it an error if there is an
abstract component in Q that is not matched by any xsl:accept or xsl:override
element; or accept the component as absent. Looking at exactly what happens
with absent components, I think this option probably makes most sense.

* What happens when CQ is absent? And why does the table below this paragraph
have no column for "absent"?

We don't seem to have worked out the full implications of visibility=absent.
For example section 3.5.3 ("The properties of a component are...") says that
the visibility of a component must be one of public, private, final, abstract,
or hidden; "absent" is not mentioned. We repeat this in 3.5.3.1 when we define
"visibility". The section on exposing components doesn't mention absent
components. And yet we clearly say in 3.5.3.2 that <xsl:accept
visibility="absent"/> causes the using package to contain a component whose
visibility is absent.

(Terminology problems here: Is the component absent, or is its visibility
absent? Or is its visibility present with a value of "absent"?)

I think the answer here might be to try and merge visibility="absent" into
visibility="hidden". I'll sleep on this...

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

Received on Thursday, 28 April 2016 22:58:00 UTC