# Installing the software

The software is issued in the form of a ZIP file: all you need to do is to create a suitable directory (perhaps `c:\saxon`) and unzip the supplied file.

The executable software will then be installed in the folder `c:\saxon\bin`. The main components are as follows:

File | Contents
saxon9.dll | Basic XSLT 2.0 and XQuery 1.0 processor.
saxon9sa.dll | Schema-aware XSLT 2.0 and XQuery 1.0 processor, and XML Schema processor. Provided in the Saxon-SA product only. This assembly contains the additional components needed to make Saxon schema-aware; it relies on `saxon9.dll` for the basic functionality.
saxon9api.dll | Provides classes implementing Saxon's .NET API
Transform.exe | Command line entry-point for XSLT transformation
Query.exe | Command line entry-point for XQuery evaluation
Validate.exe | Command line entry-point for XML Schema validation
IKVM.Runtime.dll | Run-time library for the IKVM cross-compiler
IKVM.GNU.Classpath.dll | GNU implementation of the Java class library

To develop your own applications, you will want to register the Saxon DLL assemblies in the Global Assembly Cache. To assist in this, a script is provided in the same directory, called `install-gac.cmd`.

It is useful to set the environment variable `SAXON_HOME` to the directory in which Saxon is installed (`c:\saxon` in our example). This is used (a) when locating the Saxon-SA license key (see Obtaining a license key) and (b) by some of the sample applications.

It is also useful to add the `/bin` subdirectory to the `PATH` environment variable. This enables you to use the commands `Transform`, `Query`, and `Validate` without identifying their location explicitly.

Unless you want to use different versions of Saxon in different applications, it is simplest to make these permament settings. Go to `Control Panel / System / Advanced / Environment Variables`. If Saxon is used by multiple users, add a system environment variable `SAXON_HOME`; if there is a single user, make it a user environment variable. At the same time, edit the value of the existing `PATH` variable. You may need to restart applications for the settings to take effect.

If you are new to the product, you will probably want to download the sample C# applications.

Next