On Wed, 2007-07-25 at 11:58 +0530, Soumya Chatterjee wrote:
> 
> Hi Michael, 
> 
> Do you think SAX is a good alternative for the DOM in this case. We
> can migrate the parsing mechanism to SAX if there is no thread safe
> issue in SAX parser. 

SAX will help you build custom Data model for the XML it is parsing.
Usually SAX parsing of XML file is done only once (inside a method) to
construct the Data model. It is *not* a good idea to start a SAX parser
every time you would like to read something from the XML. (if thats what
you were hinting at in your question above)

You could think of DOM as a "generic" Data model that works for all
XMLs. While using DOM every thing is a Node/Element/Text Node and you
lose out on type safety and domain friendliness a custom Data model
would offer.

Consider the proverbial purchase order xml[1] for example:
You could walk this XML with SAX parser and construct Data model like 

Class PurchaseOrder {
Address getShippingAddress();
Address getBillingAddress();
List<Item> getItemsOrdered();
String getComment();
} //Notice there are not setters 

Where if you were to make DOM of the same XML, you would have to walk 
NodeList list =  purchaseOrderNode.getChildNodes(); //This is not thread
safe

Now is it a good alternative to DOM ?

The answer would depend as always on your use-cases. An immutable Data
object is as thread safe as it can get. And if you are accesses to XML
are read only, constructing a Data model from SAX parsing is worth
considering.

Hope this helps
-Prashant

[1] : http://www.w3.org/TR/xmlschema-0/#po.xml
PS: While you are at exploring options, you could also give JAXB a look
see.
> Thanks,
> Soumya Chatterjee
> Tata Consultancy Services
> Mailto: [EMAIL PROTECTED]
> Website: http://www.tcs.com
> ____________________________________________
> Experience certainty.        IT Services
>                        Business Solutions
>                        Outsourcing
> ____________________________________________ 
> 
> 
> Michael Glavassevich
> <[EMAIL PROTECTED]> 
> 
> 07/24/2007 07:27 PM 
> 
> 
>                To
> Soumya Chatterjee
> <[EMAIL PROTECTED]> 
>                cc
> j-users@xerces.apache.org 
>           Subject
> Re: Got the Issue
> 
> 
> 
> 
> 
> 
> 
> 
> Hi Soumya,
> 
> Xerces' DOM implementation isn't thread-safe. If you try to access
> the 
> same DOM instance from multiple threads without synchronizing it
> you'll 
> run into these problems. You either need to synchronize your code or 
> create an instance of the DOM tree per thread. There's really no way 
> around it.
> 
> Thanks.
> 
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: [EMAIL PROTECTED]
> E-mail: [EMAIL PROTECTED]
> 
> Soumya Chatterjee <[EMAIL PROTECTED]> wrote on 07/24/2007
> 09:42:08 
> AM:
> 
> > Hi Michael, 
> > 
> > I found out the response from you regarding the "xerces DOM 
> > concurrent access" and I think it is the same as our application in 
> > the case.  http://spteam-lists.blogspot.com/2007/04/re-xerces-dom-
> > concurrent-access-and.html 
> > 
> > By the way we were not getting the exception as frequently  in the 
> > weblogic 7.1 ( JDK 1.3) when we are using the following Xerces.
> > 
> > But we are getting the exception in case of weblogic 9.1 much more 
> > frequently which uses JDK1.5 and different version of Xerces. 
> > 
> > Synchronization is not an option in this case because there is a 
> > huge performance issue here. Please let me know if any way we can 
> > get read of this problem without using the Synchronization  block. 
> > 
> > Thanks,
> > Soumya Chatterjee
> > Tata Consultancy Services
> > Mailto: [EMAIL PROTECTED]
> > Website: http://www.tcs.com
> > ____________________________________________
> > Experience certainty.        IT Services
> >                        Business Solutions
> >                        Outsourcing
> > ____________________________________________
> 
> ForwardSourceID:NT00009A82     
> =====-----=====-----=====
> Notice: The information contained in this e-mail
> message and/or attachments to it may contain 
> confidential or privileged information. If you are 
> not the intended recipient, any dissemination, use, 
> review, distribution, printing or copying of the 
> information contained in this e-mail message 
> and/or attachments to it are strictly prohibited. If 
> you have received this communication in error, 
> please notify us by reply e-mail or telephone and 
> immediately and permanently delete the message 
> and any attachments. Thank you
> 
> 
-- 

-Prashant

Don't upload, just share : www.dekoh.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to