You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Julien Buchanan <ju...@coff.in> on 2007/03/27 14:37:09 UTC

getting element event position (Re: Re: getting position information of html errors)

Thanks for the information.
This indeed gives me the line/col position where Xerces throws the
exception,
which turns out to often be inside the element qname and not at an
element start or end. So:

a) i need to highlight the offending elements and thus need to know
where they start and end. is there a way inside my startElement and
endElement handlers to get the position info too? (i don't have an
exception there that carries the info)

b) is there a way to get an error type id (ideally something numeric) or
do i have to regexp-match each SAXParseException's message against every
known error string to know what type of sax parsing error it is (e.g.
missing end-tag, invalid character, etc.)?

Michael Glavassevich wrote:
> The SAXParseExceptions [1] reported to your ErrorHandler and thrown by the 
> XMLReader contain location information. See getColumnNumber() and 
> getLineNumber().
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-users-help@xerces.apache.org


Re: getting element event position (Re: Re: getting position information of html errors)

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
Julien Buchanan <ju...@coff.in> wrote on 03/27/2007 08:37:09 AM:

> Thanks for the information.
> This indeed gives me the line/col position where Xerces throws the
> exception,
> which turns out to often be inside the element qname and not at an
> element start or end. So:
> 
> a) i need to highlight the offending elements and thus need to know
> where they start and end. is there a way inside my startElement and
> endElement handlers to get the position info too? (i don't have an
> exception there that carries the info)

If there's a well-formedness error within the start-tag the parser will 
stop processing the document before it reaches the end of the start-tag. 
If you turn on the continue-after-fatal-error [1] feature you might be 
able to get the location information you're looking for from the Locator 
[2], though it might be misleading given that the document isn't 
well-formed.

> b) is there a way to get an error type id (ideally something numeric) or
> do i have to regexp-match each SAXParseException's message against every
> known error string to know what type of sax parsing error it is (e.g.
> missing end-tag, invalid character, etc.)?

Not something you can get through SAX. I vaguely remember that there was 
an attempt to define such things in a SAX 2.1 but it never ended up 
happening. Internally, every error message Xerces emits has a unique 
identifier (a tuple of a domain and a key) associated with it. This error 
ID is accessible through XNI. You may want to take a look at 
XMLErrorHandler [1].

> Michael Glavassevich wrote:
> > The SAXParseExceptions [1] reported to your ErrorHandler and thrown by 
the 
> > XMLReader contain location information. See getColumnNumber() and 
> > getLineNumber().
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-users-unsubscribe@xerces.apache.org
> For additional commands, e-mail: j-users-help@xerces.apache.org

[1] 
http://xerces.apache.org/xerces2-j/features.html#continue-after-fatal-error
[2] 
http://xerces.apache.org/xerces2-j/javadocs/api/org/xml/sax/Locator.html
[3] 
http://xerces.apache.org/xerces2-j/javadocs/xni/org/apache/xerces/xni/parser/XMLErrorHandler.html


Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: j-users-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-users-help@xerces.apache.org