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 (桂训龙)

Reply via email to