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]