<?xml version="1.0"?>
<!DOCTYPE todo
     [<!ENTITY integration-task "Note: Task may be implemented as a result of integrating Xsltc and Xalan 
                                 and using shared code.">
     ]
>

<todo title="Things To Do" project="XSLTC" major-version="1">



  <devs>
   <person name="Tom Amiro" email="Tom.Amiro@Sun.COM" id="TA" expertise="testing">
     Details to be added.
   </person>  
   <person name="Morten J&#216;rgensen" email="morten@xml.apache.org" id="MJ" expertise="code, doc">
     Details to be added.
   </person>
   <person name="G. Todd Miller" email="Glenn.Miller@Sun.COM" id="TM" expertise="code">
     Details to be added.
   </person>
  </devs>
 
  <actions>

   <target-release-description>
    <date>05/18/01</date>
    <level>beta</level>
    <goal type="conformance">XSLT 1.0 compliant 100%.</goal>
    <goal type="performance">Maintain current level.</goal>
    <goal type="stability"> Stable, reasonable.</goal>
    <goal type="api">API Complete.</goal>
    <goal type="documentation">Documentation functionally complete.</goal>
   </target-release-description>
   
  <action context="doc"
          category="documentation"
          who="MJ"
          priority="high">
    Produce documentation on architecture of XSLTC so the larger developer
    community can contribute to the development of XSLT.
  </action>  
    
  <action context="test, packages:org.apache.xalan.xsltc"
          category="tests"
          who="TA, Shane"
          priority="high">
     Integrate tests not already there into the Xalan test suite and begin
      using the Xalan test suite to test XSLTC as a component of XalanJ2.
      (This should wait until #1 is done.)          
   </action>       

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="??"
          priority="high">
       Finish the implementation of id() and key() in patterns.   
   </action>       

  <action context="code, packages:org.apache.xalan.xsltc"
          category="bug"
          who="??"
          priority="high">
      Continue to improve the handling of name spaces. There are a number of
      bugs that are independent of the lack of namespace nodes.  
     (bugzilla 1411, 1472, 1473, 1506, 1517, 1518)    
   </action>       


  <action context="code, packages:org.apache.xalan.xsltc"
          category="bug"
          who="??"
          priority="high">
    Fix bugs that impact the XSLTMark performance benchmark.
    (bugzilla 1498, 1532).          
   </action>
        

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="??"
          priority="high">
     Fix bugs that impact the use of XSLT with DocBook (1404, 1487).          
   </action>

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="MJ"
          priority="high">
     Fix bugs with the handling of variables and parameters (1487, 1408)          
   </action>
          

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="TM"
          priority="high">
       Fix bugs reflecting positional problems (1409, 1410, 1412, 1532).          
   </action>

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="TM"
          priority="high">
      Fix bugs on dealing with XPATH expressions (1407, 1511).          
   </action>       


  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="who"
          priority="medium">
      Fix bugs involving template selection (1503, 1397).
   </action>

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="MJ"
          priority="low">
     Implement name space nodes (bugzilla 1379).
   </action>       

  <action context="code, packages:org.apache.xalan.xsltc"
          category="feature"
          who="??"
          priority="low">
      Look into proper caching algorithms and improve the example given in 
      DocumentCache.java accordingly.          
   </action>


  <action context="code, packages:????"
          category="feature, integration with Xalan"
          who="??"
          priority="medium">
      Implement an extension to support the redirection of output to multiple
      output files from within a stylesheet (equivalent to xalan:redirect or
      saxon:output). &integration-task;
   </action>       


  <action context="code, packages:????"
          category="feature, integration with Xalan"
          who="??"
          priority="medium">
     Implement a node-set extension to convert result tree fragments to
     node-sets. This enables sorting and grouping of nodes assigned to a tree 
     variable. &integration-task;
   </action>       


  <action context="code, packages:????"
          category="feature, integration with Xalan"
          who="??"
          priority="medium">
      Add support for nonstatic external Java functions. &integration-task;
   </action>       


  <action context="code, packages:????"
          category="feature, integration with Xalan"
          who="??"
          priority="medium">
    Fix bugs affecting the correctness of ouput 
    (1403, 1406, 1441, 1489, 1429, 1504,
     1508, 1512, 1513, 1516, 1520, 1521, 1525).  &integration-task;
   </action>       

  <action context="code, AST"
          category="architecture"
          who="??"
          priority="medium">
    Use SAX to build the AST. The DOM builder
   (the real DOM builder, not our quasi-DOM builder) receives SAX
   events when it builds the DOM. The compiler.Parser class could
   possible receive these SAX events directly, and thereby eliminating
   the need for a DOM (saves loads of time and memory).
   </action>
   
   <action context="code, DOM"
           category="architecture"
           who="??"
           priority="medium">
      Consider building a DOM-2-'DOM' converter, perhaps by adding 
      a second DOM builder inner class to our DOM. Then we would have 
      one SAX DOM builder and one DOM DOM builder. I don't know if
      JAXP lets you supply the stylesheet as a DOM. If it doesn't, 
      we should assign this task a very low priority. There is no
      point in spending a lot of time on this if JAXP users will 
      never be able to use this functionality.
    </action>       

  </actions>

  <completed>
     <action context="code, packages: org.apache.xalan.xsltc" 
           category="feature" 
           who="MJ, TM"
           priority="high">           
     Replace all Project X components and APIs with 
     JAXP equivalents (this includes updating compiler's parser 
     to use SAX2/DOM2).
   </action>
  </completed>

</todo>
