我需要验证XML agaist架构.
我试过XML :: SAX :: ParserFactory; XML :: Validator :: Schema和相关模块,但看起来有限.
在某种意义上它不能识别xsd:unique,xsd:group,xsd:keyref,xsd:union和xsd:key等模式元素.
这些xsd:unique等新增功能吗?
感谢您是否可以向我指出一些最新且最重要的Perl模块.
提前致谢.
看看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";
NB.我仍然主要是一个XML :: Twig用户,几乎没有触及XML模式,所以我不知道XML :: LibXML :: Schema是否能解决你所遇到的问题,但它可能是CPAN上满足你需求的最佳解决方案.