---
name: "XML::LibXML::RelaxNG"
section: "3pm"
platform: "linux"
package: "perl-xml-libxml"
version: "2.0213-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XML::LibXML::RelaxNG"
---

# XML::LibXML::RelaxNG(3pm)

RelaxNG Schema Validation

## NAME

XML::LibXML::RelaxNG - RelaxNG Schema Validation

## SYNOPSIS

```
  use XML::LibXML;
  $doc = XML::LibXML->new->parse_file($url);
  $rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url, no_network => 1 );
  $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 );
  $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 );
  eval { $rngschema->validate( $doc ); };
```

## DESCRIPTION

The XML::LibXML::RelaxNG 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->new( location => $filename_or_url, no_network => 1 );
    $rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring, no_network => 1 );
    $rngschema = XML::LibXML::RelaxNG->new( DOM => $doc, no_network => 1 );
  ```

  The constructor of XML::LibXML::RelaxNG needs to be called with list of parameters. At least location, string or DOM parameter is required to specify source of schema. Optional parameter no\_network set to 1 cause that parser would not access network and optional parameter recover set 1 cause that parser would not call **die()** on errors.

  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 (non-HTTPS) 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.

- 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 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\.0213

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