Chapter 2. Extensions

Table of Contents

Saxon Extensions
Xalan Extensions

Extensions are supported in recent releases of Saxon and Xalan.

These extensions enable callouts, numbered program listings, and the direct inclusion of text:

  1 @rem = '--*-Perl-*--                                       (1)
    @echo off
    perl.exe %_batchname %$
    goto endofperl                                             (2)
  5 @rem ';
    
    # Compress mail...
    
    require 'n:/home/nwalsh/lib/cygnus.pl';                    (3)
 10 require 'timelocal.pl';                                    (3)
    use Cwd;   (4)
    
    select (STDERR); $| = 1;
    select (STDOUT); $| = 1;
 15 
    @DIRS = ("/home/nwalsh/Mail");
    while (@DIRS) {
        $dir = shift @DIRS;
        opendir (DIR, $dir);
 20     while ($fname = readdir(DIR)) {
            $file = "$dir/$fname";
            next if ! -d $file;
            next if $fname =~ /^\.\.?$/;
    
 25         print "$file\n";
            push (@DIRS, $file);
            &compress ($file);                                 (5)
        }
    }
 30 
    exit;
1

The prologue handles embedding a Perl script in a DOS batch file.

2

The goto statement, interpreted by the DOS batch file interpreter, skips over the body of the Perl script.

3

The require statement sources in external program fragments.

4

The use statement is similar, but has additional utility. It is a Perl5 function. (Note that this callout area specifies both a line and a column.)

5

This is a user subroutine call.

Saxon Extensions

The DocBook XSL Stylesheets include a set of Java extensions for Saxon.

Installation

The extensions are included in the distribution in extensions/saxon642.jar and extensions/saxon643.jar. Use the former for Saxon version 6.4.2 and the latter for Saxon 6.4.3 or Saxon 6.4.4. Saxon version 6.4.1 and all prior releases contained a significant bug, they are not supported.

Just make sure that the right jar file is in your CLASSPATH when you run Saxon.

Using the Extensions

For compatibility with other processors, the extensions are disabled by default. To enable the extensions, turn on $saxon.extensions, for example by passing saxon.extensions=1 to Saxon.

For more control over the specific extensions, see HTML Parameter Reference.