The SQL Extension examples require the Apache Derby jars. 
The Derby jars are available from http://incubator.apache.org/derby/

The sample batch / script files are configured to look for the 
derby jars java/samples/extensions/sql directory by default. 

If you already have derby installed and want to use that implementation.
You can do one of the following.

1) set the environment variable DERBY_JAR_DIR to point to the location of
   derby.jar and derbytools.jar

2) Have the derby.jar and derbytools.jar in your classpath.


First create the sample database using Derby.

To do this, On Windows execute the command
runDerby.bat createdb.sql

On Unix
sh runDerby.sh createdb.sql

You can use the Derby tools to examine the raw database

To do this on windows execute the command
runDerby.bat

At the lj> prompt type the following commands
lj> connect 'sampleDB';
lj> select * from import1;

To quit the lj session type

lj> quit;


To Start lj on Unix type

sh runDerby.sh


Once the sample database has been created, you can run the sample
stylesheets using the runXalan script.

For some basic examples;

runXalan.bat -XSL basic-connection/DumpSQL.xsl

This example dumps the raw Document that was produced by the query.

runXalan.bat -XSL basic-connection/dbtest.xsl

Shows how to manipulate the raw document to produce HTML output

