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]>:
>
> 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]>> 写道:
> >>>
> >>>
> >>>
> >>>     建坛林 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]>>>:
> >>>
> >>>>
> >>>>     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>>>
> >>>>
> >>>>
> >>>>         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]>>>>:
> >>>>
> >>>>            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
>
>
>

Reply via email to