# about About Saxon

Introduction

Getting Started

Getting started with Saxon on the Java platform

Getting started with Saxon on the .NET platform

What is Saxon?

Choosing a software package

Installation: Java platform

Prerequisites

Obtaining a license key

Troubleshooting license key problems

Installing the software

JAR files included in the product

Installation: .NET platform

Historical Note

Technical Support

Lists and forums for getting help

Bugs and patches

Related Products

# changes Changes in this Release

Version 9.3 (2010-10-30)

Highlights

Installation on .NET

Command line and configuration changes

Extensibility changes

Extensions

XSLT 3.0 changes

Streaming in XSLT

XPath 3.0 changes

XPath 2.0 and XQuery 1.0 changes

XQuery 3.0 and XQuery Update changes

Functions and Operators

XML Schema 1.0 changes

XML Schema 1.1 changes

Changes to the s9api API

Saxon on .NET changes

Serialization

Running Saxon from Ant

The SQL Extension

Internal changes

Version 9.2 (2009-08-05)

Highlights

Installation and Licensing

S9API interface

Saxon on .NET

XSLT

XQuery 1.0

XQuery Updates

XQuery 1.1

XML Schema

Streaming

Functions and Operators

XML Parsing and Serialization

External Object Models

Extensibility

Extensions

Optimizations

Internals

Version 9.1 (2008-07-02)

Highlights

XQuery Updates

XML Schema 1.1

XML Schema 1.0

XSLT 2.0

XQuery 1.0

XQJ (XQuery API for Java)

S9API

JAXP

Extensibility

Extensions

Diagnostics and Tracing

Saxon on .NET

Internal APIs

Serialization

Optimization

Version 9.0 (2007-11-03)

Highlights

New Java API

Command line changes

XSLT changes

XPath changes

Extensions

Schema-related changes

Changes to existing APIs

Pull processing in Java

Serialization

Localization

Optimization

Diagnostics

NamePool changes

Expression tree changes

# conditions Licensing

Introduction

Contributors

Third Party Source Components

Redistributed Components

Published Algorithms and Specifications

# configuration Saxon Configuration

Introduction

Configuration interfaces

JAXP Factory Interfaces

Configuration using s9api

Configuration using the .NET API

Configuration from the command line

Configuration using XQJ

Configuration when running Ant

The Saxon configuration file

The <global> element

The <xslt> element

The <xquery> element

The <xsd> element

The <resources> element

The <collations> element

The <localizations> element

Configuration Features

# using-xsl Using XSLT 2.0

Using XSLT 2.0 Stylesheets

Running XSLT from the Command Line

Compiling a Stylesheet

Running Saxon XSLT transformations from Ant

Invoking XSLT from an application

Using s9api for Transformations

Using JAXP for Transformations

Performance Analysis

XSLT 3.0 Support

# using-xquery Using XQuery

Introduction

Running XQuery from the Command Line

Running Queries from a Java Application

Using s9api for XQuery

Invoking XQuery using the XQJ API

The legacy XQuery API

Using XQuery Update

XQuery 3.0 Support

Try/Catch

Grouping

Multiple where clauses

Declaring the Initial Context Item

Higher Order Functions

Miscellaneous XQuery 3.0 Features

Calling XQuery Functions from Java

Result Format

Compiling Queries to Java code

Limitations

Java Code Generation from the Command Line

Running Compiled Code from the Command Line

Running a Compiled Query as a Servlet

Calling Compiled Queries from an Application

Extensibility

Extensions

Use Cases

# sourcedocs Handling Source Documents

Handling Source Documents

Source Documents on the Command Line

Collections

Building a Source Document from an application

Preloading shared reference documents

Writing input filters

XInclude processing

Saxon and XML 1.1

JAXP Source Types

Third-party Object Models: DOM, JDOM, XOM, and DOM4J

Choosing a Tree Model

The PTree File Format

Validation of Source Documents

Whitespace Stripping in Source Documents

Streaming of Large Documents

Burst-mode streaming

Processing the nodes returned by saxon:stream()

Reading source documents partially

Streamable path expressions

How burst-mode streaming works

Using saxon:stream() with saxon:iterate

Streaming Templates

Document Projection

# schema-processing XML Schema Processing

Introduction

Running Validation from the Command Line

Controlling Validation from Java

Schema Processing using s9api

Schema Processing using JAXP

Running validation from Ant

Schema-Aware XSLT from the Command Line

Schema-Aware XSLT from Java

Schema-Aware XQuery from the Command Line

Schema-Aware XQuery from Java

XML Schema 1.1

Assertions on Complex Types

Assertions on Simple Types

Conditional Type Assignment

All Model Groups

Open Content

Miscellaneous XSD 1.1 Features

Importing and Exporting Schema Component Models

Handling minOccurs and maxOccurs

Saxon extensions to XML Schema 1.1

Messages associated with assertions and other facets

The saxon:preprocess facet

Saxon extensions to XSD uniqueness and referential constraints

# xpath-api XPath API for Java

Introduction

Evaluating XPath Expressions using s9api

The JAXP XPath API

Selecting the XPath implementation

Setting the context item

Return types

Additional Saxon methods

Calling JAXP XPath extension functions

The NodeInfo interface

# dotnet Saxon on .NET

Introduction

Saxon API for .NET

XML Parsing in .NET

# extensibility Extensibility

Introduction

Integrated extension functions

Writing reflexive extension functions in Java

Choosing among overloaded methods

Calling Static Methods in a Java Class

Calling Java Constructors

Calling Java Instance-Level Methods

Converting Arguments to Java Extension Functions

Converting Method Arguments - General Rules

Converting Atomic Values

Converting Nodes

Converting Wrapped Java Objects

Converting the Result of a Java Extension Function

Writing reflexive extension functions for .NET

Calling Static Methods in a .NET Class

Calling .NET Constructors

Calling .NET Instance-Level Methods

Converting Arguments to .NET Extension Functions

Converting Atomic Values and Sequences

Converting Nodes and Sequences of Nodes

Converting Wrapped .NET Objects

Converting the Result of a .NET Extension Function

Writing XSLT extension instructions

Customizing Serialization

Implementing a collating sequence

Localizing numbers and dates

Writing a URI Resolver for Input Files

Writing a URI Resolver for Output Files

# extensions Saxon Extensions

Introduction

EXSLT Extensions

Extension attributes (XSLT only)

saxon:assignable

saxon:explain

saxon:memo-function

saxon:read-once

saxon:threads

Additional serialization parameters

The method attribute

The saxon:base64Binary serialization method

The saxon:hexBinary serialization method

The saxon:ptree serialization method

The saxon:character-representation attribute

The saxon:double-space attribute

The saxon:indent-spaces attribute

The saxon:line-length attribute

The saxon:next-in-chain attribute

The saxon:recognize-binary attribute

The saxon:require-well-formed attribute

The saxon:supply-source-locator attribute

The saxon:suppress-indentation attribute

The saxon:xquery serialization method

User-defined serialization attributes

Extension functions

saxon:adjust-to-civil-time()

saxon:analyze-string()

saxon:base64Binary-to-octets()

saxon:base64Binary-to-string()

saxon:call()

saxon:column-number(node)

saxon:compile-query()

saxon:compile-stylesheet()

saxon:current-mode-name()

saxon:decimal-divide()

saxon:deep-equal()

saxon:discard-document()

saxon:eval()

saxon:evaluate()

saxon:evaluate-node()

saxon:expression()

saxon:find()

saxon:for-each-group()

saxon:format-dateTime()

saxon:format-number()

saxon:function()

saxon:generate-id()

saxon:get-pseudo-attribute()

saxon:has-same-nodes()

saxon:hexBinary-to-octets()

saxon:hexBinary-to-string()

saxon:highest()

saxon:index()

saxon:in-summer-time()

saxon:is-whole-number()

saxon:item-at()

saxon:last-modified()

saxon:leading()

saxon:line-number(node)

saxon:lowest()

saxon:namespace-node()

saxon:stream()

saxon:octets-to-base64Binary()

saxon:octets-to-hexBinary()

saxon:parse()

saxon:parse-html()

saxon:path()

saxon:print-stack()

saxon:query()

saxon:result-document()

saxon:serialize()

saxon:sort()

saxon:string-to-base64Binary()

saxon:string-to-hexBinary()

saxon:string-to-utf8()

saxon:system-id()

saxon:transform()

saxon:try()

saxon:type-annotation()

saxon:unparsed-entities()

The Map Extension

Extension instructions

saxon:assign

saxon:break

saxon:call-template

saxon:catch

saxon:collation

saxon:continue

saxon:doctype

saxon:entity-ref

saxon:finally

saxon:import-query

saxon:iterate

saxon:mode

saxon:script

saxon:try

saxon:while

# samples Sample Saxon Applications

Introduction

Knight's Tour

JAXP Transformation Examples

SaxonServlet

The Book List Stylesheet

Shakespeare Example

The Bible

JDOM Example

Example applications for .NET

# sql-extension The Saxon SQL Extension

Introduction

sql:connect

sql:query

sql:insert and sql:column

sql:update and sql:column

sql:delete

sql:close

Example

sql:execute

A Warning about Side-Effects

A Warning about Security (SQL injection)

# xsl-elements XSLT Elements

Introduction

xsl:analyze-string

xsl:apply-imports

xsl:apply-templates

xsl:attribute

xsl:attribute-set

xsl:call-template

xsl:character-map

xsl:choose

xsl:comment

xsl:copy

xsl:copy-of

xsl:decimal-format

xsl:document

xsl:element

xsl:evaluate

xsl:fallback

xsl:for-each

xsl:for-each-group

xsl:function

xsl:if

xsl:include

xsl:import

xsl:import-schema

xsl:key

xsl:matching-substring

xsl:message

xsl:namespace

xsl:namespace-alias

xsl:next-match

xsl:non-matching-substring

xsl:number

xsl:otherwise

xsl:output

xsl:output-character

xsl:param

xsl:perform-sort

xsl:preserve-space

xsl:processing-instruction

xsl:result-document

xsl:sequence

xsl:sort

xsl:strip-space

xsl:stylesheet

xsl:template

xsl:text

xsl:value-of

xsl:variable

xsl:when

xsl:with-param

Literal Result Elements

XSLT Patterns

Examples of Patterns

Pattern syntax

# expressions XPath 2.0 Expression Syntax

Introduction

Constants

Variable References

Function Calls

Axis steps

Parentheses and operator precedence

Filter expressions

Path expressions

Cast as, Treat as

Set difference and intersection

Union

Arithmetic expressions

Unary plus and minus

Multiplication and division

Addition and subtraction

Range expressions

Comparisons

Instance of and Castable as

Conditional Expressions

Quantified Expressions

For Expressions

Boolean expressions: AND and OR

Sequence expressions

New features in XPath 3.0

# functions Standard functions

Index of functions

# conformance Standards Conformance

Introduction

XSLT 2.0 conformance

XPath 2.0 conformance

XQuery 1.0 Conformance

XML Schema 1.0

XML Schema 1.1

Serialization

XQuery Update 1.0

Conformance with other specifications

Character Encodings Supported

JAXP Conformance

XQJ Conformance

# index-entries Alphabetical Index

Introduction

-

.

1

2

3

9

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Θ