SXPath - SXML Query Language
SXPath 
is a query language for SXML. It treats a location path as a 
composite query over an XPath tree or its branch. A single step is a 
combination of a projection, selection or a transitive closure. Multiple steps 
are combined via join and union operations.
Lower-level SXPath consists of a set of predicates, filters, 
selectors and combinators, and higher-level abbreviated SXPath functions 
which are implemented in terms of lower-level functions.
Higher level SXPath functions are dealing with XPath expressions
which may be represented as a list of steps in the location path 
("native" SXPath):
  (sxpath '(table (tr 3) td @ align))
or as a textual representation of XPath expressions 
which is compatible with W3C XPath recommendation ("textual" SXPath):
 (sxpath "table/tr[3]/td/@align")
An arbitrary converter implemented as a Scheme function may be used as a step
in location path of "native" SXPath, which makes it extremely powerful and flexible 
tool. On other hand, a lot of W3C Recommendations such as XSLT, XPointer, XLink
depends on a textual XPath expressions.
It is possible to combine "native" and "textual" location paths and location step 
functions in one query, constructing an arbitrary XML query far beyond
capabilities of XPath.
For example, the query
 (sxpath `("document/chapter[3]" ,relevant-links  @ author)
makes a use of location step function  relevant-links which implements
an arbitrary algorithm in Scheme.
SXPath may be considered as a compiler from abbreviated XPath (extended 
with native SXPath and location step functions) to SXPath primitives.
Documentation
Tutorial and examples
SSAX-SXML at SourceForge
SXPath is a part of this project
Oleg Kiselyov's page on SXPath
ILC'2002 Paper
XML, XPath, XSLT implementations as SXML, SXPath, and SXSLT
Presentation transcript
Software
SourceForge CVS
Test fixture
PLT Collection 
Bigloo package 
maintained by D. Lizorkin
Gauche module
maintained by Shiro Kawai