[relaxng-user] preferred implementation for error reporting

Robin Berjon robin.berjon at expway.fr
Fri Mar 11 13:42:53 ICT 2005


Daniel Veillard wrote:
> On Fri, Mar 11, 2005 at 12:25:27PM +0100, Robin Berjon wrote:
>>So before I go hunting, is there an implementation of RNG that has 
>>precise error reporting?
> 
>  But in general due to the extreme flexibility of Relax-NG it is hard
> to provide the "best" error report. This is mostly due to the choice
> construct, all cases of a choice may fail, the algorithm will usually
> report the error about only one of them, but which one is the "closest"
> in content to the actual content is rather hard to tell, and well
> for example my error report mechanism will complain about the last branch.
> (snip)
>   So I don't have an answer, but I have a potential explanation :-)

Yes, after asking here and some coffee, I thought about it some more and 
came to the same conclusion. In fact, testing with multiple 
implementations that take different approaches is probably one of the 
best ways of figuring out what's wrong :)

In the case of the bug that I was having trouble tracking down it was 
due to user brain damage getting seriously in the way: I had groups of 
attributes pre-declared somewhere and filled in in other modules with 
combine=interleave and the pre-declaration content was notAllowed 
instead of empty so that it would never match. I guess only a rnglint 
could've helped there.

That being said, maybe there's a way that implementations could report 
the pattern they were trying to match when failure occured (eventually 
with a trace)? It wouldn't be foolproof but when dealing with complex 
RNGs every little bit of information can help.

Thanks!

-- 
Robin Berjon
   Research Scientist
   Expway, http://expway.com/




More information about the relaxng-user mailing list