是否有一个Perl模块根据模式验证XML?

Thu*_*han 3 xml validation perl schema

我需要验证XML agaist架构.

我试过XML :: SAX :: ParserFactory; XML :: Validator :: Schema和相关模块,但看起来有限.
在某种意义上它不能识别xsd:unique,xsd:group,xsd:keyref,xsd:union和xsd:key等模式元素.

这些xsd:unique等新增功能吗?

感谢您是否可以向我指出一些最新且最重要的Perl模块.

提前致谢.

dra*_*tun 10

看看XML :: LibXML

这使用备受推崇的libxml2库,大多数人都认为它是Expat和基于XML :: Parser的模块的继承者.

对于模式验证,请查看XML :: LibXML :: Schema

use XML::LibXML;
use XML::LibXML::Schema;

my $schema = XML::LibXML::Schema->new(location => 'file.xsd' );
my $parser = XML::LibXML->new;

my $xml    = 'file.xml';
my $doc    = $parser->parse_file( $xml );

eval { $schema->validate( $doc ) };
die $@ if $@;

say "$xml is valid\n";
Run Code Online (Sandbox Code Playgroud)

NB.我仍然主要是一个XML :: Twig用户,几乎没有触及XML模式,所以我不知道XML :: LibXML :: Schema是否能解决你所遇到的问题,但它可能是CPAN上满足你需求的最佳解决方案.