Hi list,
I'm testing to convert XSLT 2.0 stylesheet modules that have
xsl:template with @match attributes to XSLT 3.0 packages. They belong
DITA-OT plug-in and generates XSL-FO from DITA maps and topics.
Most of templates are defined with no @mode attributes which means that
they are defined as default mode.
In XSLT 3.0 package if a template is declared without no @mode
attribute, it is assumed to be "#unnamed" and "#unnamed" mode must be
@visibility="hidden".
Consequently if we want declare templates in a library package as
public, we must declare mode explicitly as following:
<xsl:package name="urn:package:a" default-mode="MODE_NORMAL" version="3.0">
<xsl:mode name="MODE_NORMAL" visibility="public"/>
<xsk:template match="v">…</xsl:template>
<xsk:template match="w">…</xsl:template>
</xsl:package>
<xsl:package name="urn:package:b" default-mode="MODE_NORMAL" version="3.0">
<xsl:mode name="MODE_NORMAL" visibility="public"/>
<xsk:template match="x">…</xsl:template>
<xsk:template match="y">…</xsl:template>
</xsl:package>
The first package:
<xsl:use-package name="urn:package:a"/>
<xsl:use-package name="urn:package:b"/>
However XSLT 3.0 specification says that mode name should be unique
between library packages.
https://www.w3.org/TR/xslt-30/#named-components
"The components which can be declared in one package and referenced in
another are: functions, named templates, attribute sets, modes, and
global variables and parameters."
"[Definition: Two components are said to be homonymous if they have the
same symbolic identifier.]"
"[ERR XTSE3050] It is a static error if the xsl:use-package elements in
a package manifest cause two or more homonymous components to be
accepted with a visibility other than hidden."
According to the specification, I found it is not useful to apply
xsl:package for the XSLT 2.0 modules that have default mode templates.
Is my understanding accurate?
--
/*--------------------------------------------------
Toshihiko Makita
Development Group. Antenna House, Inc. Ina Branch
Web site:
http://www.antenna.co.jp/
http://www.antennahouse.com/
--------------------------------------------------*/
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--