# Published Algorithms and Specifications

The table below lists published specifications and algorithms that formed a significant intellectual input into the development of the product.

Title of Publication | Usage
Java 2 SE 6 interface specifications | Saxon implements many interfaces defined in the Java 2 SE specifications, notably the JAXP interfaces
W3C specifications for XML 1.0, XSLT 2.0, XPath 2.0, XQuery 1.0 and associated documents | Define the language standards that Saxon implements
Using Finite-State Automata to Implement W3C XML Schema Content Model Validation and Restriction Checking. Henry Thompson and Richard Tobin. XML Europe 2003 | The Saxon-SA schema processor implements this algorithm to validate instance documents
How to Print Floating Point Numbers Accurately. Guy Steele and Jon White. ACM SIGPLAN 1990 | Saxon uses this algorithm to convert floating point numbers to strings
Amélie Marian and Jérôme Siméon. Projecting XML Documents. VLDB'2003, Berlin, Germany, September 2003. | Saxon-SA provides the option of performing document projection (to eliminate parts a a source document that a query cannot reach) using an algorithm similar to the one published in this paper

XQJ (XQuery API for Java). Java Community Process JSR-225. The current Public Draft 0.9 Specification is Copyright (c) 2003, 2006, 2007 Oracle.

The specification includes a license describing the terms under which an implementation of the specification may be made or distributed. Saxon contains a provisional implementation of this specification, provided for users who wish to gain early exposure to this draft API. This is distributed under the terms of the license in the JSR document.

Date calculation algorithms, taken from http://vsg.cape.com/~pbaum/date/jdalg.htm, http://vsg.cape.com/~pbaum/date/jdalg2.htm, and http://www.hermetic.ch/cal_stud/jdn.htm#comp | Saxon implements these published algorithms for converting dates to Julian day numbers and vice versa