You are viewing a plain text version of this content. The canonical link for it is here.
Posted to p-dev@xerces.apache.org by "Jason E. Stewart" <ja...@gmail.com> on 2007/03/25 19:01:52 UTC

Re: Well-formed v. invalid errors

Hey Stephen,

Stephen Collyer wrote:
> Jason
> 
> I posted this to the Xerces-p mailing list a few days
> ago, but go no response. As I'm pushed for time, is there
> any chance you could let me know if the approach to the
> problem outlined by Alberto Massari is possible with the
> Perl bindings - if not, I'll waste no more time on it.

Sorry - I'm on a sub-optimal email link at the moment...

> I'm forwarding the question below that I posted to the C++
> list, as I'm looking for a Perl solution, though Alberto
> has given me a C++ solution. I'm trying to figure out if
> this can be done in Perl land.
> 
> AFAICS, I'd need to override PerlErrorHandler::fatal_error
> and get access to the errDomain value. However, there
> doesn't seem to be a getter for this provided in XML::Xerces
> so I'm beginning to think I'm out of luck, or perhaps
> unaware of some other way to do this.

Not quite - Alberto suggests creating a new subclass of SAXParser and 
over-riding the error() method on the parser - very messy from Perl land 
at the moment because SWIG doesn't (easily) allow you to make a Perl 
subclass of a C++ from Perl - with Python or Ruby I think you could, but 
the needed functionality is called directors and it hasn't been built 
into SWIG-Perl yet - that is on my todo list, but, well, I haven't done 
it yet. If I could get another SWIG related contract maybe I could swing 
it, but until then it's too big a job.

So the short answer is - I'm afraid this is just not really possible at 
the moment.

Wish I had better news. Cheers, jas.

> -------- Original Message --------
> Subject: Re: Well-formed v. invalid errors
> Date: Mon, 12 Mar 2007 22:50:50 +0100
> From: Alberto Massari <am...@datadirect.com>
> Reply-To: c-users@xerces.apache.org
> To: c-users@xerces.apache.org
> References: <45...@netspinner.co.uk>
> 
> At 20.14 12/03/2007 +0000, Stephen Collyer wrote:
>> This may be a trivial question but I can't see an obvious answer
>> so feel free to flame if I'm being idiotic ..
>>
>> Is there a straightforward way of distinguishing a non-well-formed
>> XML error from an invalid XML error, when running Xerces in validating
>> mode ?
> 
> Hi Steve,
> that isn't a trivial question....
> The only way I can see is that you create a new parser class by
> deriving either XercesDOMParser or SAXParser, and override the
> 
>  error( const unsigned int                code
>       , const XMLCh* const                errDomain
>       , const XMLErrorReporter::ErrTypes  errType
>       , const XMLCh* const                errorText
>       , const XMLCh* const                systemId
>       , const XMLCh* const
>       , const XMLSSize_t                  lineNum
>       , const XMLSSize_t                  colNum)
> 
> method. At that point, if errDomain is XMLUni::fgValidityDomain
> ("http://apache.org/xml/messages/XMLValidity"), it's a validation
> error; if it's XMLUni::fgXMLErrDomain
> ("http://apache.org/xml/messages/XMLErrors") it's a well-formedness error.
> Be sure to call the base class method, in order to preserve the
> original functionality of the parser.
> 
> Hope this helps,
> Alberto
> 
> 
> 

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