Tim,

This is a tricky issue because everything sounds OK from the debugger point of view.

Happily, changing the identity template for attributes just into "<xsl:copy/>" instead of "<xsl:attribute..." appears to be working for this testcase.

Thank you for your feedback!

Alain

Le 25/01/2016 04:53, Tim Thompson a écrit :
Using your patch for xsltforms.xsl, I'm running into another SVG issue. I have a graphic that includes a rectangle with a gradient scale. The <rect> element has a @style attribute with a relative reference to the <linearGradient> element where the gradient is defined. It looks like this:

<rect style="fill:url(#linearGradient5615);fill-opacity:1;stroke:#000000;stroke-width:1.00722218;stroke-opacity:1" id="rect5607" width="289.07648" height="39.794155" x="801.64746" y="649.0152" />

When I try to load the image in a page with XSLTForms, the gradient does not render. However, if I revert to the old version of the xsltforms.xsl identity template, it does render. Any idea why the relative URL reference in the SVG is not working? This seems to be the case for both Chrome and Firefox.

You can see the issue here: http://timathom.github.io/florentine.xhtml

And the original image, with properly rendered gradient, here: http://timathom.github.io/img/florentine.svg

Thanks again!
Tim

--
Tim A. Thompson
Metadata Librarian (Spanish/Portuguese Specialty)
Princeton University Library


On Tue, Jan 19, 2016 at 1:08 PM, Alain Couthures <[email protected] <mailto:[email protected]>> wrote:

    Tim,

    Thank you for pointing at this issue!

    XSLTForms stylesheet has to deal with namespaces: the best
    approach for browsers appears to deliver no namespace for HTML.
    Using <xsl:copy> is not a good solution and using <xsl:element>
    and <xsl:attribute> allows to remove the XHTML namespace.

    BTW, with the previous template, Saxon was complaining that
    attributes cannot have attributes...

    So, I prefer improve the current templates with non-HTML
    namespaces support, such as SVG, at least for elements:

    <xsl:template match="*" priority="-2"
    xmlns:xhtml="http://www.w3.org/1999/xhtml";
    <http://www.w3.org/1999/xhtml>
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    <http://www.w3.org/1999/XSL/Transform>>
        <xsl:param name="appearance" select="@appearance"/>
        <xsl:param name="parentworkid"/>
        <xsl:param name="workid"
    select="concat(position(),'_',$parentworkid)"/>
        <xsl:choose>
            <xsl:when test="namespace-uri() != '' and namespace-uri()
    != 'http://www.w3.org/1999/xhtml'">
                <xsl:element name="{local-name()}"
    namespace="{namespace-uri()}">
                    <xsl:apply-templates select="@*"/>
                    <xsl:apply-templates select="node()">
                        <xsl:with-param name="parentworkid"
    select="$workid"/>
                        <xsl:with-param name="appearance"
    select="$appearance"/>
                    </xsl:apply-templates>
                </xsl:element>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="{local-name()}">
                    <xsl:apply-templates select="@*"/>
                    <xsl:apply-templates select="node()">
                        <xsl:with-param name="parentworkid"
    select="$workid"/>
                        <xsl:with-param name="appearance"
    select="$appearance"/>
                    </xsl:apply-templates>
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    I have successfully tested this with Firefox (Firefox is not
    anymore my default browser because of too many conformance,
    performance and freeze issues...).

    Thank you for your feedback!

    --Alain


    Le 19/01/2016 14:11, Tim Thompson a écrit :
    Alain,

    I am hoping to do some work with XForms and SVG and have been
    looking at the current XSLTForms SVG examples. I noticed that,
    since rev. 595 of XSLTForms, none of the SVG examples work in
    Firefox. The reason seems to be the changes made to the fallback
    identity template in xsltforms.xsl.

    In the latest revision, if lines 1203-1228[1] are reverted back
    to the template used prior to rev. 595, then the SVG examples
    will work in Firefox:

    <xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    match="node()|@*" priority="-2">
        <xsl:param name="appearance" select="@appearance"/>
        <xsl:param name="parentworkid"/>
        <xsl:param name="workid"
    select="concat(position(),'_',$parentworkid)"/>
        <xsl:copy>
            <xsl:apply-templates select="@*"/>
            <xsl:apply-templates select="node()">
                <xsl:with-param name="parentworkid" select="$workid"/>
                <xsl:with-param name="appearance" select="$appearance"/>
            </xsl:apply-templates>
        </xsl:copy>
    </xsl:template>

    Is there a reason not to use this more generic template? I tested
    on a range of browsers and did not notice any immediate issues.

    Thanks again!
    Tim

    [1]
    
https://github.com/AlainCouthures/xsltforms/blob/master/build/xsltforms.xsl#L1203


    --
    Tim A. Thompson
    Metadata Librarian (Spanish/Portuguese Specialty)
    Princeton University Library




------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Xsltforms-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xsltforms-support

Reply via email to