Hi Qi, Please let us know once your finished your first version of code submit job
2011/4/18 Qi Wang <wangqi.aguai.2...@gmail.com> > Hi Jesper, > > Thank you for your interest, I am working for the design details and have > start this implementation job, i will hold the code base and relative > documents in Google Code web site soon, as this is really a huge project, > hoping more guys are participate in this project together :-) > > > 2011/4/18 Jesper Steen Møller <jes...@selskabet.org> > >> Hello Qi Wang >> >> I think this is a really good idea! >> >> I am one of the developers of the XPath2 engine at the Eclipse WTP project >> (in fact I don't know much Xalan-J, actually I just contributed two Xalan-J >> bug fixes which were never picked up) >> >> For the release this summer (Indigo), a new API has been introduced which >> allows pluggable type models, and allows much better access to the XPath2 >> engine without using internal packages. Also, the library uses a better >> structure for separating the parsing and execution of the expression. Also, >> we will now be JRE 1.4 compatible (sigh). >> >> Lots of improvements you can use there. >> >> However, "PsychoPath" (I hate that name) is still bound to using a Level 3 >> DOM, and no, we do not have a streamy front end. The internal tree >> implementation for Xalan would thus have to be wrapped for use with the >> Eclipse XPath2 engine. But for type-sensitive template handling, this might >> not be sufficient anyway. So you will face quite a number of challenges! >> >> Also, I hope you can do all this without having to fork the XPath2 engine, >> since it is also used elsewhere, but we might be able to "semi fork" it and >> work your changes back into the mainline for the next major release. >> >> As for how to work with the Xalan codebase, I cannot provide guidance on >> your overall strategy, I think the Xalan-J people can guide you much better >> there. >> >> Kind regards, >> Jesper Steen Møller >> >> On 17/04/2011, at 16.43, Qi Wang wrote: >> >> Hi all, >> >> All Xalan developer and users, I wan to do something to push XSLT 2.0 >> implemention job for Xalan, i know this topic was discussed in mail list for >> many many times in recent years, so many guys are expecting it come true. >> But due to low activity in Apache Xalan community, no committer to push this >> thing, it is really very regretful. >> >> These days, i submited "Implement XSLT 2.0 and XPath 2.0 for Xalan" >> project proposal as an GSoC[1] project. Now, i need your feedbacks to >> improve the proposal, all the advises, suggestions are welcome :-) >> >> I am not a Xalan committer(alrough i dream to be), but if there is a >> chance, i want to try my best to so something for XSLT 2.0 implemention job >> for Xalan, many i can not finish all the job in the summer, but i will make >> it is available, once wheels start turn, i thing there may be some other >> guys can work together with me to finish this big project. Hoping all the >> comunity can work together for the better future of Xalan. >> >> [1] http://socghop.appspot.com >> >> =========Proposal details of "Implement XSLT 2.0 and XPath 2.0 for >> Xalan"================ >> >> Apache Xalan-Java is a powful XSLT processor for XML transforming based on >> W3C recommendation XSL Transformations (XSLT) Version 1.0 and XML Path >> Language (XPath) Version 1.0, XSL Transformations (XSLT) Version 2.0 >> specification was published on 23 January 2007,this new version give us more >> powful functions, new dat model and serialization etc. >> >> >> >> In my daily work, i use XSLT and XPath to parse XML and change XML >> document to another format, i did this with Xalan.As we know,Xalan support >> XSLT version 1.0 and XPath version 1.0 only.But my XML parse job is so >> complex, and usually, i must use some XPath v2.0 functions to finish my >> parse job. So, i encountered trouble. >> >> >> >> Then I Google keywords with Xalan and XSLT 2.0,i found many developers >> hope that Xalan based XSLT 2.0 could become reality besides me. At the same >> time, i discuss this topic with open source developers in mail list, so many >> guys are interested in implementing complete XSTL 2.0 specification for >> Xalan. We discuss this project deeply, and i got many good ideas and advises >> from the discussion. And also they told me Xalan lost its most active >> contributors a few years ago due to time demands from Real Jobs, and >> development slowed down as a result,but they love to see Xalan tackle it.Due >> to XSLT 2.0 and XPath 2.0 are large specifications that I imagine could take >> the developers years to implement correctly,anyway it need some guy get the >> ball rolling, i want to be this guy. >> >> >> >> Compared with XSLT 1.0, XSLT 2.0 and XPath 2.0 have some important new >> characteristic. >> >> >> >> New features in XPath 2.0: >> >> 1. Sequences, in XPath2.0 everything is sequences >> 2. For expression,in XPath 2.0,we can use for expression to iterator >> every item in the sequence, compute expression value for each item, at last >> return the sequence result by connect all the expression values. >> 3. Condition expression, XPath 2.0's condition expression can be used >> to compute different value on the basis of the condition's true or false >> value. >> 4. Limited expression,limited expression in XPath 2.0 can be used to >> judge that whether every item in the sequence satisfy appointed condition, >> its value is always true of false. There are two kinds of limited >> expression: some expression and every expression. >> 5. Datatype,XPath 2.0's datetype is based on XML Schema, it supports >> all the basic built-in datatype,such as xs:integer,xs:string and xs:date >> ect. >> 6. Date and time, XSLT 1.0 has not date and time datatype, it must use >> string to represent date and time. Due to XPath 2.0 system is based on XML >> schema, so there is date and time data type in XPath 2.0. >> 7. More functions support,XSLT 2.0 specification has more powful >> functions definition.Functions in XPath 2.0 is defined in a special >> recommedation "XQuery 1.0 and XPath 2.0 Functions and Operations", functions >> in this recommendation specification belong to namespace " >> http://www.w3.org/2005/xpath-functions", this namespace is bound with >> prefix "fn". >> >> It includes these serveral types: >> >> * Constructor Functions >> * Functions and Operators on Numerics >> * Functions on Strings >> * Functions on anyURI >> * Functions and Operators on Boolean Values >> * Functions and Operators on Durations, Dates and Times >> * Functions Related to QNames >> * Operators on base64Binary and hexBinary >> * Operators on NOTATION >> * Functions and Operators on Nodes >> * Functions and Operators on Sequences >> * Context Functions >> >> There are also many new features in XSLT 2.0: >> >> 1. Group, basic group syntax,group sort,group-adjacent and >> group-starting-with etc. >> 2. Connotive document node, or we can call it temporary tree >> 3. Element result-document, we can use to generate multi output file in >> XPath 2.0 >> 4. Improvement of element value-of >> 5. Char mapping,XSLT 2.0 supply more flexible solution for us to >> handler specific characters in XML such as '<' and '&' >> 6. Custom stylesheet function,in XSLT 2.0, we can use to create our own >> functions in stylesheet >> 7. Other new features. >> >> In order to implement all the XSLT 2.0 specification,it requires some >> moderately basic data structure changes to track Schema types and to handle >> Sequences which aren't simply nodesets,and also,i must implements all the >> new functions defined in XSLT 2.0,fortunately,there is a open source XPath >> 2.0 processor (http://wiki.eclipse.org/PsychoPathXPathProcessor) which is >> at Eclipse.It is already being used by Xerces-J for XSD 1.1 Assertion >> support.Why re-invent the wheel if we can leverage something that already >> exists ? PsychoPath already is XML Schema Aware, leverages Xerces-J( >> http://xerces.apache.org/xerces2-j) and passes about 99.9% of the Xpath >> 2.0 test suite. It is currently undergoing testing against the the official >> W3C Test Suite. >> >> >> >> So, in order to implement all the XSLT 2.0 specification for Xalan, there >> are two steps: >> >> 1. Merge Xalan codes with PsychoPath codes,this will help us a lot,once >> this job is done, Xalan has implemented all the XPath 2.0 features. There >> are some issues to resolve during this merging process,for example: >> * PsychoPath is not "streamy" yet, nor is Xalan, it is a big >> challenge >> * In PsychoPath,type informations is not part of current >> interfaces,i will have to extend or replace the DTM interfaces to carry the >> additional data >> * XSLTC fit in problem. XSLTC runs against the same data model >> interfaces (DTM), and In Theory implementing compilation should just be a >> matter of generating code equivalent to what the interpreter is doing. In >> practice, it's a lot of detail work. >> 2. Implement all the other XSLT 2.0 features which were described >> before for Xalan. >> >> In my plan, i will hold the whole XSLT 2.0 implemention project as a long >> term open source project under Apache, do it step by step, may be as a GSoC >> project,i can only implement a subset of this capability i was thinking of >> working on,at lease, i will finish the following tasks: >> >> 1. Merge Xalan codes with PsychoPath codes, i will do this first, but >> this is not a simple task,may be it will cost me one month or even more to >> merge it correctly. >> 2. Resolve merge problems between Xalan and PsychoPath >> 3. Implement XSLT 2.0 Group feature for Xalan >> 4. Implement XSLT 2.0 temporary tree feature for Xalan >> 5. Implement Element result-document feature for Xalan >> >> If everything goes well and i have enough time,i will do my best to do >> more job. After the summer, i will continue with this project,try to submit >> my codes to Xalan as proposed changes and try to become one of Apache >> committers,this is my dream.And i know this is a huge project,but where >> there is a will there is a success, I love open source, i will do my best to >> improve it through my attemp and ability. >> >> >> Regards >> >> Victor Wang >> >> >> > -- Best Regards Gui Xun Long (桂训龙)