On Fri, Aug 03, 2007 at 09:28:49PM +0530, Ashwin wrote:
> 
>    Ok  point  taken, 
 
  :-)
 
>    but  setting aside user defined entities. Something
>    like
> 
>    <element attr1= >missing AttValue in Attribute</element>
> 
>    also  exhibits  the same behaviour. Should it not return error, rather
>    than the character callback being invoked?
 
> paphio:~/XML -> ./testSAX test.xml 
> xmlSAXUserParseFile returned error 39
> SAX.setDocumentLocator()
> SAX.startDocument()
> SAX.error: AttValue: " or ' expected
> SAX.characters(missing AttValue in Attribute, 29)
> SAX.endDocument()
> xmlSAXUserParseFile returned error 39
> paphio:~/XML -> 
 
>  Dohhhh. This should not happen. You need the endDocument() to 
> help the application clear its context, but it should not push characters.
> I will investigate it is probably very easy. Thanks for pointinmg this out
!
 
Hi,
  I am attaching the patch for the above problem..It was a minor fix..
 
Regards
Ashwin

 

 

 

 

 

 

 

 

*** parser.c    2008-01-24 06:50:04.000000000 -0800
--- parserfix.c 2008-02-22 23:01:08.000000000 -0800
*************** get_more_space:
*** 3551,3557 ****
  
                    if ((ctxt->sax != NULL) &&
                        (ctxt->sax->ignorableWhitespace !=
!                        ctxt->sax->characters)) {
                        if (areBlanks(ctxt, tmp, nbchar, 1)) {
                            if (ctxt->sax->ignorableWhitespace != NULL)
                                ctxt->sax->ignorableWhitespace(ctxt->userData,
--- 3551,3557 ----
  
                    if ((ctxt->sax != NULL) &&
                        (ctxt->sax->ignorableWhitespace !=
!                        ctxt->sax->characters) && (!ctxt->disableSAX)) {
                        if (areBlanks(ctxt, tmp, nbchar, 1)) {
                            if (ctxt->sax->ignorableWhitespace != NULL)
                                ctxt->sax->ignorableWhitespace(ctxt->userData,
*************** get_more_space:
*** 3564,3570 ****
                                *ctxt->space = -2;
                        }
                    } else if ((ctxt->sax != NULL) &&
!                              (ctxt->sax->characters != NULL)) {
                        ctxt->sax->characters(ctxt->userData,
                                              tmp, nbchar);
                    }
--- 3564,3570 ----
                                *ctxt->space = -2;
                        }
                    } else if ((ctxt->sax != NULL) &&
!                              (ctxt->sax->characters != NULL) && 
(!ctxt->disableSAX)) {
                        ctxt->sax->characters(ctxt->userData,
                                              tmp, nbchar);
                    }
*************** get_more:
*** 3598,3604 ****
            }
            nbchar = in - ctxt->input->cur;
            if (nbchar > 0) {
!               if ((ctxt->sax != NULL) &&
                    (ctxt->sax->ignorableWhitespace !=
                     ctxt->sax->characters) &&
                    (IS_BLANK_CH(*ctxt->input->cur))) {
--- 3598,3604 ----
            }
            nbchar = in - ctxt->input->cur;
            if (nbchar > 0) {
!               if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
                    (ctxt->sax->ignorableWhitespace !=
                     ctxt->sax->characters) &&
                    (IS_BLANK_CH(*ctxt->input->cur))) {
*************** get_more:
*** 3618,3624 ****
                    }
                      line = ctxt->input->line;
                      col = ctxt->input->col;
!               } else if (ctxt->sax != NULL) {
                    if (ctxt->sax->characters != NULL)
                        ctxt->sax->characters(ctxt->userData,
                                              ctxt->input->cur, nbchar);
--- 3618,3624 ----
                    }
                      line = ctxt->input->line;
                      col = ctxt->input->col;
!               } else if (ctxt->sax != NULL && (!ctxt->disableSAX)) {
                    if (ctxt->sax->characters != NULL)
                        ctxt->sax->characters(ctxt->userData,
                                              ctxt->input->cur, nbchar);
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to