Jim, My comments are below.
>> Here are some suggestions: >> 1. Modify the parser to register an additional error handler >> that is used >> by schema traversal to report errors. >.. at first glance I didn't see how to do that. I'll look again but >remember thinking that the Scanner owns the SchemaTraversal instance and >doesn't allow me to hook into it. This one is a little bit tricky, and it will invlove some code changes to the Parser/Scanner/TraverseSchema classes. TraverseSchema indirectly uses the scanner/validator error reporting mechanism. So, before traversing the schema, scanner/validator needs to switch the error handler to be the schema error handler, then switch back after traversal. >> 2. Add a method to the parser to inquire whether any errors were >> encountered during parsing a schema. >er...how? You mean just parse the schema and test for errors and if all >goes well parse the instance with the schema? That might actually work but >I'd like to prevent the double parse if possible. Since I'm caching the >grammar it might not be that bad since the schema only parse happens only >once. You are right. Also, the errors reported during the schema traversal have the same line number. It is the line number of the schema declaration in the instance document. If you do not like to double parse, then you need to add some code so that the parser will have a method to tell you whether any errors were encountered during the schema parsing. You need to modify TraverseSchema so that it keeps a flag of whether it encountered errors during parsing. In the scanner, after the schema traversal, you can get that flag and store it. The new method in the parser will simple ask the scanner for that flag. Regards, Khaled --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
