Project Proposal - XSLT Extension For Schema Annotation
=======================================================


INTRODUCTION
------------

The project will implement a couple of XSLT extensions that allows an
XSLT stylesheet to access schema information associated with the document.

This new functionality will allow nice de-coupling of the
transformation logic and vocabulary-specific processing, which
was previously impossible. For example, now you can write a reusable
module of stylesheet that doesn't depend on any particular input document.

The plan is to suppose both RELAX NG and W3C XML Schema for political
correctness. This idea was insprired in Thailand by James Clark.



RESOURCE NEEDED FOR THE PROJECT
-------------------------------

If I can work on this full time, this will probably be 2 to 4 weeks. Since
this is not considered as a high-priority task, I plan to work in between
other tasks and therefore I expect somewhere between 6 to 12 weeks.

Upon the completion, I plan to submit this to the CoolStuff website or XML
developer connection.



TECHNICAL DESIGN
----------------

The extension will work in the following way:

  1. An user specifies a schema by using an extension element.
     
     <ext:useSchema href="foo.xsd" />
     
     This will validate the input document against the specified
     schema, and as a result of the validation, elements/attributes in
     the document are associated with their corresponding schema
     definitions.
     
     
  2. An user will access schema information by using an extension
     XPath function:
     
     <xsl:copy-of select="ext:annotation(.)" />
     
     This function will return the annotations associated with
     the element/attribute passed to the function.
     
     Annotations will be returned as a node set, so you can further
     use XPath to access particular annotation.

This project will be built on top of MSV, the target XSLT processor for
these extensions will be Xalan.
