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