Then, lets have StaAXBuilder implement the next() method with all common handling which is absolutely required for SOAP processing, including comment handling. This is basically what Ashu suggested. The derived classes can call the super.next() and then they can handle it themselves, if required. But i don't think its going to be too fast compared to extending StAXOMBuilder, since the latter adds only two more case statements, but code is lot cleaner.
Also, currently i see lot of code duplication across StAXOMBuilder and StAXSOAPModelBuilder - venkat On 7/28/05, Eran Chinthaka <[EMAIL PROTECTED]> wrote: > > > > Hi Ashu, Venkat and all, > > > > I'm 0- on making StAXOMBuilder extend from StAXOMBuilder. Remember our > intention in "Axis2" is to make a fast and efficient object model for SOAP > processing. We do lot of stuff specific to SOAP in StAXSOAPModelBuilder. And > we know for sure StAXSOAPModelBuilder doesn't need to support full infoset. > > AND, if you look at the code carefully, you might have seen that for each > and every information item creation, I have introduced a method in the > StAXOMBUilder. Example, createOMELement() etc., > > > > So if you wanna share code between SOAP builder and OM builder, please do > put them in StAXBuilder. So perhaps, Ashu you can put your comments creation > stuff in StAXBuilder. > > > > Regards, > > Chinthaka > > > > > ________________________________ > > > From: Shahi, Ashutosh [mailto:[EMAIL PROTECTED] > Sent: Wednesday, July 27, 2005 1:06 PM > To: [email protected] > Subject: [Axis2] staxSOAPModelBuilder > > > > > Hi OMers ;-), > > As part of XML Infoset, there was some code added to next() method in > staxOMBuilder to process comments etc. > > But, we have staxSOAPModelBuilder also, where we do not have any such > capability yet. Now comments can be part of soapMessage as well. > > I have a test soap message : > > "<?xml version='1.0' encoding='UTF-8'?>" + > > "<!-- Comment -->" + > > "<env:Envelope > xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" + > > > "<env:Body><echo><arg0>Hello</arg0></echo></env:Body>" + > > "</env:Envelope>"; > > > > And doing something like: > > stAXSOAPModelBuilder = > > new StAXSOAPModelBuilder( > > XMLInputFactory.newInstance() > > > .createXMLStreamReader(inputStream)); > > Where input stream has soap message with comments gives an OMException. > > > > Now my question is: > > Both StaxSOAPModelBuilder and StaxOMBuilder extend the abstract class > StaxBuilder which has next() as abstract method. Why not put the > functionality in next() method of StaxBuilder itself? Or atleast we should > process comments in StaxSOAPModelBuilder as well. > > > > -Ashutosh > >
