xerces-c-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Bertoni <dbert...@apache.org>
Subject Re: how to validate the input source?
Date Thu, 16 Jul 2009 17:11:55 GMT
caox wrote:
> David Bertoni 写道:
>> caox wrote:
>>> Alberto Massari 写道:
>>>> Have a look at the MemParse sample.
>>>> Alberto
>>>> caox wrote:
>>>>> Hi
>>>>>    I am using the xercesc3.0.1 for xml parsing.
>>>>>    How can I check whether the input source from a byte steam is 
>>>>> well-formed xml format? Since I want my program to raise an 
>>>>> exception when it receives files other than xml.
>>>>>    Appreciate your help.
>>> Thanks a lot. I have tried the sample DOMPrint which could throw an 
>>> exception as expect when encountered a bad-formed xml file.
>>> But when I use xqilla to create a DOMParser, it seems can accept all 
>>> kinds of files. The code is below:
>>> AutoRelease<DOMLSParser> 
>>> parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS,

>>> 0));
>>> And this puzzled me a lot.
>> Did you create a custom ErrorHandler instance and install it in the 
>> parser?
>> Dave
> I didn't.But how to install a ErrorHandler instance in a DOMLSParser 
> instance. I don't find the setXXX() method for this.
OK, you actually need a DOMErrorHandler, rather than an ErrorHandler.

The DOMPrint sample application has an example of setting the correct 
DOMConfiguration property.  To adapt it to your use, just call 
DOMLSParser::getDomConfig() and the set the property:

     DOMErrorHandler* myErrorHandler = new myDOMErrorHandler();
     DOMConfiguration* config = parser->getDomConfig();
     config->setParameter(XMLUni::fgDOMErrorHandler, myErrorHandler);


View raw message