Name

<xsl:apply-imports>

Allows you to apply to the current node a template imported from another stylesheet.

Category

Instruction.

Required Attributes

None.

Optional Attributes

None.

Content

[1.0] None. <xsl:apply-imports> is an empty element.

[2.0] In XSLT 2.0, <xsl:apply-imports> can contain zero or more <xsl:with-param> elements to pass parameters to an imported template. If you pass extra parameters to an imported template, they are ignored. However, if you don’t pass a required parameter to an imported template, the XSLT processor throws an error.

Appears in

<xsl:apply-imports> appears inside a template.

Defined in

[1.0] XSLT section 5.6, “Overriding Template Rules.”

[2.0] XSLT section 6.7, “Overriding Template Rules.”

Example

Here is a short XML file we’ll use to illustrate <xsl:apply-imports>:

<?xml version="1.0" encoding="utf-8"?>
<!-- codelisting.xml -->
<chapter>
  <title>Some really great code</title>
  <para>Here is one of my favorite code listings:</para>
  <programlisting>
public class HelloWorld
{
  public static void main(String[] args)
  {
    System.out.println("Hello, World!");
  }
}
  </programlisting>
  <para>I wrote that code all by myself!</para>
</chapter>

Our main stylesheet has template rules for the four DocBook elements (<chapter>, <title>, <para>, and <programlisting>) in our sample document:

<?xml version="1.0"?>
<!-- apply-imports.xsl --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="imported.xsl"/> <xsl:preserve-space elements="programlisting"/> ...

Get XSLT, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.