EXPath

A collection of Specifications

Specifications

Archive Module

This proposal provides an API for XPath 2.0 and XPath 3.0 to handle archive data (i.e. collected and possibly compressed sets of files and directories). It defines extension functions to process data from and to such archives files, including creation, determining and setting properties, listing and extracting contents and adding and updating entries. It has been designed to be compatible with XQuery 1.0 and XSLT 2.0, as well as any other XPath 2.0 usage. Some additional features for use in XPath 3.0 are also defined.

Binary Module 1.0

This proposal provides an API for XPath 2.0 to handle binary data. It defines extension functions to process data from binary files, including extracting subparts, searching, basic binary operations and conversion between binary and structured forms. It has been designed to be compatible with XQuery 1.0 and XSLT 2.0, as well as any other XPath 2.0 usage. The module homepage, with more information, is on the EXPath website at http://expath.org/modules/binary/.

Cryptographic Module

This document defines a set of xpath-30 extension functions to perform cryptographic operations. These functions are related to XML Digital Signature, to encryption and decryption, and to hashing and digesting of messages. They have been designed to be compatible with xquery-30 and xslt-30, as well as any other standard based on xpath-30. The functions are defined on the datatypes defined in xmlschema-2 and xpath-datamodel-30. Also, the functions are defined on nodes and node sequences as defined in the xpath-datamodel-30 and are following the good practices inferred from xpath-functions-30.

Facet Module

This proposal defines extension functions and data models to enable Faceted navigation/search support in XQuery.

File Module 1.0

This proposal provides a file system API for XPath. It defines extension functions to perform file system related operations such as listing, reading, or writing files or directories. It has been designed to be compatible with XQuery 1.0 and XSLT 2.0, as well as any other XPath 2.0 usage.

Geo Module

This proposal provides a geospatial API function interface for XPath 2.0. It defines commonly used and implemented function signatures from the Open Geospatial Consortium Simple Features Common Access API version 1.2, and has been designed to be compatible with XQuery 1.0 and XSLT 2.0, as well as any other XPath 2.0 usage.

HTTP Client Module 1.0

This specification defines an HTTP client interface for XPath based languages. The HTTP client interface is provided through a single extension function which performs HTTP requests, and associated error codes which define client error states. It has been designed to be compatible via XPATH20 with XQUERY, and XSLT20. It should also be suitable for any other language which hosts XPath 2.0, such as XPROC.

HTTP Client Module 2.0

This specification defines an HTTP client interface for XPath based languages, such as but not limited to, XQuery, XSLT, and XProc. The HTTP client interface is provided through extension functions which perform HTTP requests, and associated error codes which define client error states. Version 2.0 is backward-compliant with the expath-http-client-10 and has been designed to be compatible via XPATH-31 with XQUERY-31, and XSLT-30.

HTTP Model

This module defines an XML format for HTTP requests and responses, as well as a set of functions to access specific informations of those requests and responses.

MongoDB Module

This module provides an API for accessing the document database MongoDB. It defines functions to connect to the DBMS, retrieve documents from databases and collections, update resources, perform map-reduce queries, and execute server-side JavaScript functions and database commsands. The module has been designed to be compatible with XQuery 3.1 and XPath 3.1, and later versions. It has been inspired by existing mongodb-drivers and the mongodb-meta-driver recommendations. Its initial version was based on mongrel.

Packaging System

This proposal defines a packaging system for various core XML technologies: XSLT, XQuery, and XProc. The goal is to define it in a way generic enough so to adapt it to other technologies in the future (such as XML Schema, XForms, etc.) using the same framework. Besides enabling the delivery of libraries written in standard XSLT, XQuery and XProc, it provides support for extensions specific to some processors, as well as enabling new processors to be supported by using the same framework.

Web Applications

This specification defines how to write web applications on server-side, using XML technologies like XSLT, XQuery and XProc. It also defines their execution context, as well as some functions they can use. Last but not least it defines how to package such webapps, by using the expath-packaging-system.

XParse Module

This proposal provides an API for parsing XPath and XQuery expressions to a standardised parse tree, and the reversal of the process. It has been designed to be compatible with XQuery 3.0+ and XSLT 3.0+, as well as any other XPath 3.0 usage. The module homepage, with more information, is on the EXPath website at http://expath.org/modules/xparse/.

ZIP Module

This proposal defines a set of XPath 2.0 extension functions to handle ZIP files. It defines one function to read ZIP files structure, functions to read actual entry's content, as well as functions to create brand-new ZIP files or to create ZIP files based on existing template files. It has been designed to be compatible with XQuery 1.0 and XSLT 2.0, as well as any other XPath 2.0 usage.