EXSLT Submissions

EXSLT is an open community initiative to standardise and document extensions to XSLT. Anyone can contribute to EXSLT... even you. You can contribute by commenting on the things on this site on the mailing list and you can submit your suggestions for extensions, your own implementations and test cases. This page describes how.

There are 2 ways to generate function submissions; manually or use the submission form. Below are links to example xml files which will assist if you are generating the definitions by hand.

Currently we're still just setting up the infrastructure for EXSLT, so please bear with us as we may suffer from a few teething problems at first.

As you might expect, this site is built on XML. When you submit something, we have to update the XML that we have in order to incorporate it in. Then we have to run a batch process to create all the HTML files, and upload them to the server. You can help this process a lot if you make sure that the XML that you submit is correct and give the right names to the files that you submit.

Contents

Submitting Elements

Element submission package

You can submit definitions of extension elements by sending us XML based on element-submission-template.xml. You should name the file in the format:

module-prefix.element-name.submission.xml

You can submit details of vendor implementations and use cases at the same time, but they're given in separate files. If you do this, you don't have to give a meta element if the details are the same as the ones for the general element description.

Once the original description of an element has been submitted, it may be changed by one of the managers after discussion on the EXSLT mailing list. If you have suggestions for changes to particular elements, you should send them to the list. If there are any vendor implementations of the element, then changes that alter the functionality of the element will result in a change to the version number for the element.

Submitting Functions and Templates

Function submission package

The main type of material that this site contains are descriptions of functions and equivalent templates.

You can submit suggestions for functions and templates by sending us XML based on function-submission-template.xml. You should name the file in the format:

module-prefix.function-name.submission.xml

You can submit details of vendor implementations and use cases at the same time, but they're given in separate files. If you do this, you don't have to give a meta element if the details are the same as the ones for the general function description.

Once the original description of a function has been submitted, it may be changed by one of the managers after discussion on the EXSLT mailing list. If you have suggestions for changes to particular functions, you should send them to the list. If there are any implementations of the function, then changes that alter the functionality of the function will result in a change to the version number for the function.

Submitting Implementations

Implementation submission package

If you're a vendor of an XSLT processor that supports any of these functions, please email us letting us know:

  • the name of the processor (as returned by system-property('xsl:vendor'))
  • the URL for the processor (as returned by system-property('xsl:vendor-url'))
  • the version of the processor that supports the functions
  • the functions that the processor supports (including version numbers)

If you have implementations that you want to submit for an existing function, then you can send us XML based on implementation-submission-template.xml. You should include a file giving the implementation of the function. The name of the file should be:

module-prefix.function-name.language-extension

For example, the name of the implementation file for the Javascript version of math:min is math.min.js.

If the implementation is a template, then the name of the file should be:

module-prefix.function-name.template.xsl
   

For example, the name of the implementation file for the template that gives the same functionality as math:min is math.min.template.xml.

If the implementation is in EXSLT - Functions, then the name of the file should be:

module-prefix.function-name.function.xsl

For example, the name of the implementation file for the EXSLT implementation of math:min is math.min.function.xml.

You can submit these implementations by sending us XML based on implementation-submission-template.xml. The name of the XML file should be the same as the file containing the implementation, but with a .xml suffix. For example, the name of the file describing the XSLT template for math:min is math.min.template.xsl.xml.

Once an implementation has been submitted, anyone can submit changes to it if they send a new version of the implementation and a description of the changes they've made. If you supply us with an email address, you'll be contacted to inform you of the changes, and if you say its OK, one of the managers will make the appropriate changes to the description of the implementation. You may also be contacted and asked to make changes to the implementation if the function definition changes. That's to stop the implementations getting out of date.

Submitting Use Cases

Use case submission package

The use cases for the extensions described on this site give valuable test cases for implementers and examples to people who want to use the extensions. We welcome any use cases that you generate, especially ones that test boundary conditions for the extensions.

A use case is made up of three main parts:

Stylesheet
A stylesheet that uses the extension. It may call an extension function or use an extension element or output method.
Data
Some XML that acts as input to the stylesheet. You don't need to supply any data if the stylesheet runs on its own.
Result
Some XML that shows the output that should be generated by the stylesheet. You don't need to supply any output if the stylesheet demonstrates an error condition where no output is generated. Note that the output must be XML - that's just to make it possible to browse the XML on the site.

You can submit supplementary files if you want. You can name any of these files however you like, but we usually use the schemes:

module-prefix.function-name.number.xsl
module-prefix.function-name.data.number.xsl
module-prefix.function-name.result.number.xsl

You can submit a use case by sending us XML based on use-case-submission-template.xml. You should name the file in the format:

module-prefix.element-name.use-case.number.xml

We won't make changes to a use case unless it no longer applies because a function's definition changes such that it's no longer an accurate demonstration of what the function does. If you supply us with an email address, you may be contacted and asked to make these changes.

http://www.exslt.org/submissions/index.html