Hi Renin,

While the parser's use of a state-machine for validation does indeed not
entail recursion, there's certainly recursion required to convert the
representation derived from the grammar into a state machine.  So it's
possible that, if the grammar you're using is very complicated, you could
run into stack problems in that phase.

If this is the difficulty though, it would relate to the complexity of your
grammar not to the depth of your DOM tree.  Setting a debugger on your
program might indeed be useful to tell you at least what phase of
processing you're in when the problem occurs.

Cheers,
Neil
Neil Graham
XML Parser Development
IBM Toronto Lab
Phone:  905-413-3519, T/L 969-3519
E-mail:  [EMAIL PROTECTED]




|---------+----------------------------->
|         |           "Renin Jegadeesan"|
|         |           <renin.jegadeesan@|
|         |           smarts.com>       |
|         |                             |
|         |           03/21/2003 12:41  |
|         |           PM                |
|         |           Please respond to |
|         |           xerces-c-dev      |
|         |                             |
|---------+----------------------------->
  
>---------------------------------------------------------------------------------------------------------------------------------------------|
  |                                                                                    
                                                         |
  |       To:       <[EMAIL PROTECTED]>                                                
                                               |
  |       cc:                                                                          
                                                         |
  |       Subject:  RE: XercesDOMParser::parse() - Is this Recursive?                  
                                                         |
  |                                                                                    
                                                         |
  |                                                                                    
                                                         |
  
>---------------------------------------------------------------------------------------------------------------------------------------------|




Hi Dave,
Thanks a lot for the answer.
I figured as much as, the reading the xml document and creating the
DOM Tree would be non-recursive, but i was concerned about the
Validation part.
Unfortunately, my program is crashing if the depth of the DOM Tree
is around 3000. I was thinking this would be a stack overflow.
But if it is not, then i need to build a debug library and debug
it.

Thanks again.
renin.


> -----Original Message-----
> From: David N Bertoni/Cambridge/IBM [mailto:[EMAIL PROTECTED]
> Sent: Friday, March 21, 2003 12:25 PM
> To: [EMAIL PROTECTED]
> Subject: RE: XercesDOMParser::parse() - Is this Recursive?
>
>
>
>
>
>
> Hi Renin,
>
> The parser doesn't traverse a DOM tree.  It parses an XML stream
> and builds
> a DOM from that stream.  Most of the information that maintains the state
> of the parse is not kept on the stack, and the parser is not implemented
> using recursive descent -- it's a state machine.
>
> Dave
>
>
>
>
>
>                       "Renin Jegadeesan"
>
>                       <renin.jegadeesan@         To:
> <[EMAIL PROTECTED]>
>                       smarts.com>                cc:      (bcc:
> David N Bertoni/Cambridge/IBM)
>                                                  Subject: RE:
> XercesDOMParser::parse() - Is this Recursive?
>                       03/21/2003 07:20
>
>                       AM
>
>                       Please respond to
>
>                       xerces-c-dev
>
>
>
>
>
>
> I am sorry i wasn't clear. I understood from the code that it's not
> re-entrant.
>
> what i meant was, does the XercesDOMParser::parse() traverse the DOM
> Tree in a recursive manner?
>
> since my program is multi-threaded, i am worried if this traversing
> is done in a recursive manner, the depth of the DOM tree would be
> constrained by the stack size for this thread, and if the DOM Tree
>  is deep enough, then my program would crash.
>
> Thanks again, for any help.
> renin.
>
>
> > -----Original Message-----
> > From: David N Bertoni/Cambridge/IBM [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, March 20, 2003 7:05 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: XercesDOMParser::parse() - Is this Recursive?
> >
> >
> >
> >
> >
> >
> > HI Renin,
> >
> > If you mean "re-entrant" the answer is no -- a single instance of a
> parser
> > can only parse one document at a time.  See:
> >
> >    http://xml.apache.org/xerces-c/faq-parse.html#faq-7
> >
> > Dave
> >
> >
> >
> >
> >
> >                       "Renin Jegadeesan"
> >
> >                       <renin.jegadeesan@         To:
> > <[EMAIL PROTECTED]>
> >                       smarts.com>                cc:      (bcc:
> > David N Bertoni/Cambridge/IBM)
> >                                                  Subject:
> > XercesDOMParser::parse() - Is this Recursive?
> >                       03/20/2003 03:29
> >
> >                       PM
> >
> >                       Please respond to
> >
> >                       xerces-c-dev
> >
> >
> >
> >
> >
> >
> >
> > Hi,
> > I am a newbie at using Xerces C++. I have written a multi-threaded
> program
> > that uses the XercesDOMParser to parse my xml document.
> >
> > I am wondering if the XercesDOMParser::parse() is recursive? I looked
> > at the source code, and it appears to be non-recursive. But the source
> > code is really complicated, and i would appreciate it, if one of the
> > experts on this mailing list can answer this question for me.
> >
> > Thank you in advance,
> > - Renin
> > (914) 798-8561
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

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





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

Reply via email to