当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《是否有一个Perl模块根据模式验证XML?》经验,为你挑选了1个好方法。

我需要验证XML agaist架构.

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

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

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

提前致谢.



1> draegtun..:

看看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上满足你需求的最佳解决方案.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有