=head1 NAME

XML::LibXML::RelaxNG - RelaxNG Schema Validation

=head1 SYNOPSIS

  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 ); };


=head1 DESCRIPTION

The XML::LibXML::RelaxNG class is a tiny frontend to libxml2's RelaxNG
implementation. Currently it supports only schema parsing and document
validation.

=over 4

=item B<new>

  $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 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 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.


=item B<validate>

  eval { $rngschema->validate( $doc ); };

This function allows to validate a (parsed) document against the given RelaxNG
schema. The argument of this function should be a 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.



=back

=head1 AUTHORS

Matt Sergeant, 
Christian Glahn, 
Petr Pajas, 

=head1 VERSION

1.64

=head1 COPYRIGHT

2001-2007, AxKit.com Ltd; 2002-2006 Christian Glahn; 2006-2007 Petr Pajas, All rights reserved.

=cut
