[Bug 29233] [xslt30ts] package-017: duplicate function declaration

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

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

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

--- Comment #2 from Abel Braaksma <abel.braaksma@xs4all.nl> ---
For some reason I thought that if you have a list of xsl:accepts that it
implies that you only accept the explicitly mentioned components. This test
failed with my implementation for the reasons you mentioned.

I found the rule:

<quote>
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.
</quote>

In other words, the default is that if you don't explicitly hide something,
everything is accepted.

## Package-017

The reason behind making this test was to find out what happens if you have two
xsl:use-package pointing to the same package, whether or not this is possible
at all and if so, how it should behave.

I think the intended effect can be found by writing the stylesheet as follows:

<xsl:use-package name="urn:use-me" package-version="*">
    <xsl:accept component="function" names="pkg:function1"
visibility="public"/>
    <xsl:accept component="function" names="*" visibility="hidden" />
</xsl:use-package>

<xsl:use-package name="urn:use-me" package-version="0.1">
    <xsl:accept component="function" names="pkg:function2"
visibility="public"/>
    <xsl:accept component="function" names="*" visibility="hidden"/>
</xsl:use-package>

Since the wild-card matches components unless a specific match is available, I
think this is legal, and the effect should be that there is no conflict or
error.

## Package-018

A similar effect can be reached with package-018, where the attempt was instead
to try to create two conflicting xsl:accepts that are not really conflicting
(components are not conflicting if they are hidden). Reading the rules again, I
am not sure this is allowed:

<xsl:use-package name="urn:use-me" package-version="*">
    <xsl:accept component="function" names="pkg:function1"
visibility="public"/>
    <xsl:accept component="function" names="pkg:function2"
visibility="hidden"/>
</xsl:use-package>

<xsl:use-package name="urn:use-me" package-version="0.1">        
    <xsl:accept component="function" names="pkg:function2"
visibility="public"/>
    <xsl:accept component="function" names="pkg:function1"
visibility="hidden"/>
</xsl:use-package>

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

Received on Monday, 26 October 2015 15:54:25 UTC