Thanks for the research. But as already said, as we'd be working against
the JAXP APIs anyhow, it's up to the user to select a STaX parser of choice.

Werner

建坛林 wrote:
> This is a url comparing the different stax implementations from 
> different company in detail,:
> http://www.xml.com/pub/a/2007/05/09/xml-parser-benchmarks-part-1.html?page=2
> from this article:i think the SUN SJSXP and cohaus Woodstox stax should 
> be our
> choices. between these two, at to the reference materials amount, maybe 
> the former is better.
> 
> 
> 2008/4/7, Werner Guttmann <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>>:
> 
>     Joachim,
> 
>     it used to be with older JAXP releases that one could download
>     separatedly parts of the JAXP implementation classes. Is this not the
>     case anymore ?
> 
> 
>     Werner
> 
> 
>     Joachim Grüneis wrote:
>      > JAXP includes StAX starting from JAXP 1.4 (included in JSE 6) on
>      > JSE 5 (JAXP 1.3) did not include StAX and requires to be included
>     from
>      > another source, e.g. Codehaus StAX
>      > JSE 1.4 (and before) also require a StAX implementation besides JAXP
>      >
>      > Have fun
>      >
>      > Joachim
>      >
>      > On Apr 5, 2008, at 11:07 AM, Werner Guttmann wrote:
>      >>
>      >>
>      >> 建坛林 wrote:
>      >>> another question:There serveral companies that have implements
>     the stax
>      >>> APi.For example, the companies listed below.
>      >>>
>      >>>     * Sun's Implementation - SJSXP <http://sjsxp.dev.java.net/>
>      >>>     * BEA Reference Implementation
>      >>>       <http://dev2dev.bea.com/technologies/stax/index.jsp>
>      >>>     * Oracle StAX Pull Parser Preview
>      >>>      
>     <http://www.oracle.com/technology/tech/xml/xdk/staxpreview.html>
>      >>>     * codehaus StAX
>      >>>       <http://stax.codehaus.org/Download>
>      >>>
>      >>> which API package will we adopt?
>      >> Good question .. ;-). In other words, I don't know yet. I will
>     be part
>      >> of your task to make this deciskion, or find a Java-based
>     standard that
>      >> allows us to plug in any STaX parser.
>      >>
>      >>> 在08-4-4,*Werner Guttmann* <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >>> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>> 写道:
>      >>>
>      >>>
>      >>>
>      >>>     建坛林 wrote:
>      >>>> Hello, Werner.Thanks for your reply and good suggestion.
>      >>>>
>      >>>> the problem you refer to does exists. At the begining, i myself
>      >>>     want to
>      >>>> implements a adapter to bridge the gap between these two Parsers.
>      >>>     So i
>      >>>> offers a much more obvious one. Obviously, it 's not a good one.
>      >>>
>      >>>     Well, it's not that it is a bad idea per se. I am just
>     looking at
>      >>> things
>      >>>     from a different perspective. Well, quite some perspectives
>     .. ;-).
>      >>>
>      >>>     a) If we go for an approach where you build the StAX*
>     classes from
>      >>>     scratch (without relying on existing cod base, that is),
>     you'll b
>      >>>     creating lots of code that already exists in the current e.g.
>      >>>     UnmarshalHandler class(es). Now, I don't really like the
>     idea of
>      >>> code
>      >>>     duplication, but trying to refactor this would clearly make
>     this
>      >>> work
>      >>>     far bigger in size (and thus not really acceptable for the GSoC
>      >>>     program).
>      >>>
>      >>>     b) As already mentioned, there's one thing that should not
>     really
>      >>>     change, i.e. the classes the user interacts with. At least
>     not in an
>      >>>     ideal world. I know that we now and then have to change the
>     public
>      >>>     interfaces, but this should be as limited as possible.
>      >>>
>      >>>     Having said that, one way to improve things for Castor XML
>     in the
>      >>> future
>      >>>     is to introduce interfaces, which currently do not exist on the
>      >>> XML side
>      >>>     of things.
>      >>>
>      >>>     Looking forward to your follow-up.
>      >>>
>      >>>     Werner
>      >>>
>      >>>> I'll
>      >>>> try to read more material to verify your suggestion.
>      >>>> (i will describe it in uml in my next letter)
>      >>>>
>      >>>> and there is another idea we can try as the picture in the
>      >>>     accessory show:
>      >>>> as stax is attractive in filtering our preferable
>     partical(event). we
>      >>>> can first refine the xml by stax  then use the existed
>     SAXhandler to
>      >>>> finish the rest
>      >>>> un~/marshalling work. but is it  a adapter. it seems a bit not.
>      >>>>
>      >>>> 2008/4/3, Werner Guttmann <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >>>     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>
>      >>>
>      >>>> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>>>:
>      >>>
>      >>>>
>      >>>>     Hi Jiantan,
>      >>>>
>      >>>>     looking at your ideas, I wonder whether this approach is a
>      >>>     good one
>      >>>>     (though it is a valid one). Let me try to express  my thoughts
>      >>>>     (slightly unstructured):
>      >>>>
>      >>>>     - Is is really a good idea to expose the technologies we are
>      >>>     using
>      >>>>     internally to parse an XML document to the user. In other
>     words,
>      >>>>     should the user know and explicitely have to use classes that
>      >>>     carry
>      >>>>     names that are linked to a technology such as SAX or STaX ?
>      >>>     Is there
>      >>>>     a way to make this more transparent ?
>      >>>>
>      >>>>     - Would it be possible to layer the approaches ? Personally,
>      >>>     I see
>      >>>>     the main benefits of a STaX parser in the context of XML data
>      >>>>     binding that it would be absolutely easy to restrict the
>     scope of
>      >>>>     processing during e.g. unmarshalling. In other words, within a
>      >>>>     biggish XML document navigate to a (smaller) subset and
>     only use
>      >>>>     this subset as the input for unmarshalling. Such a layering
>      >>>     could be
>      >>>>     achieved by creating an adapter that sits between the StAX
>     parser
>      >>>>     and the UnmarshalHandler (which implements SAX
>      >>>     ContentHandler), and
>      >>>>     translates STaX events into SAX events. This way, we would
>     avoid
>      >>>>     having to completely write a new STaXUnmarshalHandler (and
>      >>>     all the
>      >>>>     logic currently sitting in UnmarshalHandler).
>      >>>>
>      >>>>     Werner
>      >>>>
>      >>>>
>      >>>>     建坛林 wrote:
>      >>>>
>      >>>>         1.introduction  marshalling is the processing of convert a
>      >>>>         Object into xml(or other structured) file, while
>      >>>     unmarshalling
>      >>>>         is the reverse processing of marshalling. This
>     techonology is
>      >>>>         very useful in data binding and data transfering.
>      >>>>         Marshaller/Unmarshaller is the very object that
>      >>>     responsible for
>      >>>>         doing these work. For marshaller/unmarshaller to do the
>      >>>>         marshalling work, it need the help of a xml parser.
>     There are
>      >>>>         two kinds of xml parser nowaday:one is based on dom
>      >>>     model, the
>      >>>>         other is based on stream model.As to the latter one, we
>      >>>     got sax
>      >>>>         and stax. sax is a push parser, while stax is a pull
>      >>>     parser. I
>      >>>>         think castor's purpose of switching between the sax and
>      >>>     stax is
>      >>>>         to make castor more adaptive to different situations.
>      >>>>
>      >>>>         2.solution
>      >>>>
>      >>>>          i think the work should be done to the class
>     Marshaller and
>      >>>>         UnMarshaller in Castor source.
>      >>>>         Make Marshaller.java,UnMarshller
>      >>>>         .java upper class instead of final class
>      >>>>            class Marshaller {
>      >>>>               private int parserType;
>      >>>>               Marshaller marshaller = new SAXMarshaller() ;
>      >>>>               ...
>      >>>>               public static void marshal(Object obj,Writer
>     writer);
>      >>>>               public static void marshal(Object obj,int
>     parserType);
>      >>>>               public static void marshal(Object obj,Marshaller
>      >>>     marshaller);
>      >>>>               ...
>      >>>>               public void setMarshaller(Marshaller marshaller);
>      >>>>               public Marshaller getMarshaller();
>      >>>>               ...
>      >>>>           }
>      >>>>             class UnMarshaller {
>      >>>>               private int parserType;
>      >>>>               UnMarshaller unMarshaller = new SAXUnMarshaller()
>      >>>>               public Object unmarshal(InputSource in){
>      >>>>                       unMarshaller.unmarshal(in);
>      >>>>               }
>      >>>>               public Object unmarshal(InputSource in, int
>      >>>     parserType);
>      >>>>               public Object unmarshal(InputSource in,UnMarshaller
>      >>>>         unmarshaller);
>      >>>>               ...
>      >>>>               public void setUnMarshaller(UnMarshaller
>     unMarshaller);
>      >>>>               public UnMarshaller getUnMarshaller();
>      >>>>               ...
>      >>>>           }
>      >>>>         this Un~/Marshaller keeps the common methods of
>     SAXMarshaller
>      >>>>         and StaxMarshaller,
>      >>>>         default use a SAXMarshller in order to make the
>     existed code
>      >>>>         unchanged;we change the Marshaller by using the specific
>      >>>>         constructor and setUn~/Marshaller method. In this case,
>      >>>>         it's flexible to switch from sax to stax,vice versa.
>     It seems
>      >>>>         this pattern is much more like
>      >>>>         the strategy pattern. we just abstract the algorithm of
>      >>>>         un~/Marshal. and it's flexible to
>      >>>>         switch between these algorithm.
>      >>>>
>      >>>>          the former Marshaller.java can be a SAXMarshller.java and
>      >>>>         SAXUnMarshaller.java.
>      >>>>          class SAXMarshaller extends Marshaller {
>      >>>>          ...
>      >>>>          }
>      >>>>
>      >>>>           class SAXUnMarshaller extends UnMarshaller {
>      >>>>           ...
>      >>>>          }
>      >>>>
>      >>>>          we can add by the following new Implementation of
>     Marshaller
>      >>>>          class StaxMarshaller implements Marshaller {
>      >>>>          ...
>      >>>>          }
>      >>>>
>      >>>>           class StaxUnMarshaller implements UnMarshaller {
>      >>>>           ...
>      >>>>          }
>      >>>>
>      >>>>
>      >>>>         make MarshallingHandler ,UnMarshallingHandler upper class
>      >>>>         instead of final class just like
>      >>>>         we did to Marshaller,UnMarshller
>      >>>>
>      >>>>         the specific work we have to do is in implemented a new
>      >>>>         StaxMarshallerHandler and StaxUnMarshallerHandler
>      >>>>
>      >>>>         to implement the Un~/Marshalling in stax way
>      >>>>
>      >>>>          class SAXMarshallingHandler extends MarshallingHandler {
>      >>>>             }
>      >>>>
>      >>>>          class SAXUnMarshallingHandler extends
>     UnMarshallingHandler {
>      >>>>           }
>      >>>>
>      >>>>          class StaxMarshallingHandler extends MarshallingHandler {
>      >>>>             }
>      >>>>
>      >>>>          class StaxUnMarshallingHandler extends
>      >>>     UnMarshallingHandler {
>      >>>>           }
>      >>>>         And the specific implementation
>     of  StaxMarshallingHandler is
>      >>>>         associated with how to map
>      >>>>         a object to xml(and the reverse process).The detail of
>      >>>     this can
>      >>>>         refer the implementation
>      >>>>         of StaxMarshallingHandler(former  MarshallingHandler).
>      >>>>
>      >>>>         3.self-introduction
>      >>>>
>      >>>     http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>>
>      >>>>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>>>
>      >>>>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>>
>      >>>>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>
>      >>>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en
>     <http://docs.google.com/Doc?docid=dc42tcq9_88gtxts6fv&hl=en>>>>
>      >>>>
>      >>>>
>      >>>>         Jiantan Lin
>      >>>>
>      >>>>
>      >>>>         2008/4/3, Werner Guttmann <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >>>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>      >>>
>      >>>>         <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>      >>>     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >>>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>      >>>
>      >>>>         <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>      >>>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>>>:
>      >>>>
>      >>>>            HI,
>      >>>>
>      >>>>            I have recently asked all the students that have
>      >>>     submitted an
>      >>>>            application to be mentored by one of the existing
>     Castor
>      >>>>         committer
>      >>>>            sto subscribe to this mailing list, so that we can ask
>      >>>     questions
>      >>>>            about their proposal and vice versa.
>      >>>>
>      >>>>            Can I please ask all students to introduce themselves
>      >>>>         briefly, and
>      >>>>            once again describe their proposals. It's especially
>      >>>     the benefits
>      >>>>            for the project that I am personally interested in.
>      >>>>
>      >>>>            Thanks
>      >>>>            Werner
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>     ---------------------------------------------------------------------
>      >>>>            To unsubscribe from this list, please visit:
>      >>>>
>      >>>>              http://xircles.codehaus.org/manage_email
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>      >>>
>      >>>
>     ---------------------------------------------------------------------
>      >>>>     To unsubscribe from this list, please visit:
>      >>>>
>      >>>>       http://xircles.codehaus.org/manage_email
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>      >>>
>      >>>>
>      >>>
>      >>>
>     ------------------------------------------------------------------------
>      >>>>
>      >>>>
>      >>>>
>      >>>
>      >>>
>     ------------------------------------------------------------------------
>      >>>
>      >>>>
>      >>>>
>     ---------------------------------------------------------------------
>      >>>> To unsubscribe from this list, please visit:
>      >>>>
>      >>>>     http://xircles.codehaus.org/manage_email
>      >>>
>      >>>
>      >>>
>      >>>
>     ---------------------------------------------------------------------
>      >>>     To unsubscribe from this list, please visit:
>      >>>
>      >>>         http://xircles.codehaus.org/manage_email
>      >>>
>      >>>
>      >>>
>      >>
>      >>
>      >>
>     ---------------------------------------------------------------------
>      >> To unsubscribe from this list, please visit:
>      >>
>      >>     http://xircles.codehaus.org/manage_email
>      >>
>      >>
>      >
>      >
>      > ---------------------------------------------------------------------
>      > To unsubscribe from this list, please visit:
>      >
>      >    http://xircles.codehaus.org/manage_email
>      >
>      >
>      >
> 
> 
>     ---------------------------------------------------------------------
>     To unsubscribe from this list, please visit:
> 
>         http://xircles.codehaus.org/manage_email
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to