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"; xmlns:xsl="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