RelaxNG

[Raku LibXML Project] / [LibXML Module] / RelaxNG

class LibXML::RelaxNG

RelaxNG Schema Validation

Synopsis

use LibXML::RelaxNG;
use LibXML;

my $doc = LibXML.new.parse: :file($url);

my LibXML::RelaxNG $rngschema .= new( location => $filename_or_url );
my LibXML::RelaxNG $rngschema .= new( string => $xmlschemastring );
my LibXML::RelaxNG $rngschema .= new( :$doc );
try { $rngschema.validate( $doc ); };
if  $rngschema.is-valid( $doc ) {...}
if $doc ~~ $rngschema { ... }

Description

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

Methods

method new

multi method new( :location($filename_or_url) ) returns LibXML::RelaxNG;
multi method new( :string($xml-schema-string) ) returns LibXML::RelaxNG;
multi method new( LibXML::Document :$doc ) returns LibXML::RelaxNG;

The constructors for 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 :doc parameter allows one to parse the schema from a pre-parsed LibXML::Document.

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

method validate

try { $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 LibXML::Document object. If this function succeeds, it will return 0, otherwise it will throw, reporting the found. Because of this validate() should be always be execute in a try block or in the scope of a CATCH block.

method is-valid

method is-valid(LibXML::Document $doc) returns Bool;
$valid = $doc ~~ $rngschema;

Returns either True or False depending on whether the passed Document is valid or not.

multi method ACCEPTS

multi method ACCEPTS(
    LibXML::Document:D $doc
) returns Bool

Returns True if the document validates against the given schema

Example:

$valid = $doc ~~ $rngschema;

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 terms of the Artistic License 2.0 http://www.perlfoundation.org/artistic_license_2_0.

LibXML v0.6.12

Raku bindings to the libxml2 native library

Authors

  • David Warring

License

Artistic-2.0

Dependencies

File::TempMethod::AlsoW3C::DOM:ver<0.0.2+>XML

Test Dependencies

Provides

  • LibXML
  • LibXML::Attr
  • LibXML::Attr::Map
  • LibXML::CDATA
  • LibXML::Comment
  • LibXML::Config
  • LibXML::Dict
  • LibXML::Document
  • LibXML::DocumentFragment
  • LibXML::Dtd
  • LibXML::Dtd::AttrDecl
  • LibXML::Dtd::ElementContent
  • LibXML::Dtd::ElementDecl
  • LibXML::Dtd::Entity
  • LibXML::Dtd::Notation
  • LibXML::Element
  • LibXML::EntityRef
  • LibXML::Enums
  • LibXML::ErrorHandling
  • LibXML::HashMap
  • LibXML::HashMap::Maker
  • LibXML::InputCallback
  • LibXML::Item
  • LibXML::Namespace
  • LibXML::Node
  • LibXML::Node::List
  • LibXML::Node::Set
  • LibXML::PI
  • LibXML::Parser
  • LibXML::Parser::Context
  • LibXML::Pattern
  • LibXML::PushParser
  • LibXML::Raw
  • LibXML::Raw::DOM::Attr
  • LibXML::Raw::DOM::Document
  • LibXML::Raw::DOM::Element
  • LibXML::Raw::DOM::Node
  • LibXML::Raw::Defs
  • LibXML::Raw::Dict
  • LibXML::Raw::HashTable
  • LibXML::Raw::RelaxNG
  • LibXML::Raw::Schema
  • LibXML::Raw::TextReader
  • LibXML::Reader
  • LibXML::RegExp
  • LibXML::RelaxNG
  • LibXML::SAX
  • LibXML::SAX::Builder
  • LibXML::SAX::Handler
  • LibXML::SAX::Handler::SAX2
  • LibXML::SAX::Handler::SAX2::Locator
  • LibXML::SAX::Handler::XML
  • LibXML::Schema
  • LibXML::Text
  • LibXML::Types
  • LibXML::XPath::Context
  • LibXML::XPath::Expression
  • LibXML::XPath::Object
  • LibXML::_CharacterData
  • LibXML::_DomNode
  • LibXML::_Options
  • LibXML::_ParentNode
  • LibXML::_Validator

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.