Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Perl中使用XSD验证XML?_Xml_Perl_Xsd - Fatal编程技术网

如何在Perl中使用XSD验证XML?

如何在Perl中使用XSD验证XML?,xml,perl,xsd,Xml,Perl,Xsd,对于大多数Perl程序员来说,这可能是一个简单的问题,到目前为止,我只使用了两周Perl,对Perl包非常不熟悉 我有一个简单的XSD文件,如下所示: <?xml version="1.0" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="el

对于大多数Perl程序员来说,这可能是一个简单的问题,到目前为止,我只使用了两周Perl,对Perl包非常不熟悉

我有一个简单的XSD文件,如下所示:

<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
    <xsd:element name="elementname">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="field1" type="xsd:integer" minOccurs="0" maxOccurs="1"/>
                <xsd:element name="field2" type="xsd:string" minOccurs="0" maxOccurs="1"/>              
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

我希望使用上述XSD验证XML文件,以确保这是一个有效的XML。我应该使用什么Perl模块?我更喜欢在ActivePerl和Perl on*nix上都可用的模块。发布一些代码片段会很有帮助

谢谢

我想你需要CPAN的帮助。以下是要安装的、和:

perl -MCPAN -e 'install XML::Validator::Schema'
具有
验证
方法


另请参阅我对的回答。

@Brian-感谢您的快速回复,我无法在ActivePerl上找到此模块。在ActivePerl上有什么好的替代方案吗?我希望找到一个可以在Windows和Linux上运行的模块。如果您必须在Windows上使用perl,我建议您改用草莓perl。***它比ActivePerl好得多(在包覆盖率方面(以及其他方面)),我提供了一个合适的CPAN工具来安装和编译更多的包。我希望ActivePerl能够支持CPAN,但也许不能。@Nifle-不幸的是,我没有选择切换到strawberryperl。无论如何,感谢您提出这个模块。ActivePerl确实“支持CPAN”,并且这个模块(以及成千上万的其他模块)。它位于Duplicate的列表中:“是否有一个Perl模块根据模式验证XML?”-