Chapter 2. Extensions
Prev |  | Next

## Chapter 2. 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-*--
        @echo off
        perl.exe %_batchname %$
        goto endofperl
      5 @rem ';

        # Compress mail...

        require 'n:/home/nwalsh/lib/cygnus.pl';
     10 require 'timelocal.pl';
        use Cwd;

        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);
            }
        }
     30
        exit;

| The prologue handles embedding a Perl script in a DOS batch file.
| The `goto` statement, interpreted by the DOS batch file interpreter, skips over the body of the Perl script.
| The `require` statement sources in external program fragments.
| 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.)
| 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.

Prev | Up | Next
Customizing DocBook XSL stylesheets | Home | Xalan Extensions