# perldoc > XML::LibXML::RelaxNG

## NAME
    [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown) - RelaxNG Schema Validation

## SYNOPSIS
      use [XML::LibXML](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML/markdown);
      $doc = [XML::LibXML](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML/markdown)->new->parse_file($url);

      $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( location => $filename_or_url );
      $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( string => $xmlschemastring );
      $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( DOM => $doc );
      eval { $rngschema->validate( $doc ); };

## DESCRIPTION
    The [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown) class is a tiny frontend to libxml2's RelaxNG implementation. Currently
    it supports only schema parsing and document validation.

## METHODS
    new
          $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( location => $filename_or_url );
          $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( string => $xmlschemastring );
          $rngschema = [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown)->new( DOM => $doc );

        The constructor of [XML::LibXML::RelaxNG](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ARelaxNG/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ADocument/markdown).

        Note that the constructor will die() if the schema does not meed the constraints of the
        RelaxNG specification.

    validate
          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](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3ADocument/markdown) 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.

## AUTHORS
    Matt Sergeant, Christian Glahn, Petr Pajas

## VERSION
    2.0134

## COPYRIGHT
    2001-2007, AxKit.com Ltd.

    2002-2006, Christian Glahn.

    2006-2009, Petr Pajas.

## LICENSE
    This program is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself.

