xsl-list
[Top] [All Lists]

[xsl] Mode in XSLT 3.0

2017-07-22 09:58:07
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
--~--

<Prev in Thread] Current Thread [Next in Thread>