use XML::LibXML; $doc = XML::LibXML->new->parse_file($url); $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url ); $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring ); $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc ); eval { $rngschema->validate( $doc ); };
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url ); $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring ); $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );
The constructor of XML::LibXML::RelaxNG may get called with either one of three parameters. The parameter tells the class from which source it should generate a validation schema. It is important, that each schema only have a single source.
The location parameter allows one to parse a schema from the filesystem or a URL.
The string parameter will parse the schema from the given XML string.
The DOM parameter allows one to parse the schema from a pre-parsed XML::LibXML::Document.
Note that the constructor will die() if the schema does not meed the constraints of the RelaxNG specification.
eval { $rngschema->validate( $doc ); };
This function allows one to validate a (parsed) document against the given RelaxNG schema. The argument of this function should be an XML::LibXML::Document object. If this function succeeds, it will return 0, otherwise it will die() and report the errors found. Because of this validate() should be always evaluated.
2002-2006, Christian Glahn.