Raju Sunny wrote:
Hei sorry for the completely foolish question..
Isn't this the same question ?
i need to validate an XML file against an xsd in perl IS there any way for doing that using xerces c
Create a parser like this:
my $parser = XML::Xerces::XMLReaderFactory::createXMLReader(); $parser->setFeature("$XML::Xerces::XMLUni::fgSAX2CoreNameSpaces", 1); $parser->setFeature("$XML::Xerces::XMLUni::fgSAX2CoreValidation", 1); $parser->setFeature("$XML::Xerces::XMLUni::fgXercesSchema", 1);
This creates a parser with the features required for schema validation. Then feed this parser XML which specifies a schemaLocation in the root element like e.g.
<myelement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://my.schema.loc/schema file:/schemas/s1.xsd"> You'll have to be prepared to catch and handle validation exceptions in the code:
eval { $parser->parse(XML::Xerces::MemBufInputSource->new($args{xml})); }; if ($@) {
AFAIK, Xerces-C does not allow you to override the schema specified by the XML document via the fgXercesSchemaExternalSchemaLocation feature i.e. you can't create a parser and tell it always to validate against a specific schema; you have to live with what's specified in the document. -- Regards Stephen Collyer Netspinner Ltd --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]