PHP-检查xsd是否有效

PHP-检查xsd是否有效,php,xml,xsd,Php,Xml,Xsd,我正在开发一个XMLRPC服务器模块,现在我需要让用户(使用我的模块的开发人员)根据XSD验证xml。这是有很好的文档记录的,没有问题,但是当我试图检查XSD文件是否是有效的XSD时遇到了麻烦。我需要在php内部完成这项工作,这不包括任何在线验证器和其他语言。允许外部模块、库或远程过程调用,或者如果可以通过一个xsd文件来检查xsd本身的有效性,也可以。 问题是: 如何检查XML文件是否是有效的XSDXSD有一个.XSD,还有一个DTD-请参阅 XSD: DTD: 可以使用xmllint进行

我正在开发一个XMLRPC服务器模块,现在我需要让用户(使用我的模块的开发人员)根据XSD验证xml。这是有很好的文档记录的,没有问题,但是当我试图检查XSD文件是否是有效的XSD时遇到了麻烦。我需要在php内部完成这项工作,这不包括任何在线验证器和其他语言。允许外部模块、库或远程过程调用,或者如果可以通过一个xsd文件来检查xsd本身的有效性,也可以。 问题是:


如何检查XML文件是否是有效的XSD

XSD有一个.XSD,还有一个DTD-请参阅

  • XSD:
  • DTD:
可以使用
xmllint
进行验证:

$ xmllint --schema=/path/to/XMLSchema.xsd file.xsd

在此期间,我进行了更深入的研究,并得出了相同的解决方案。除了使用xmllint进行验证之外,因为据我所知,这是一个命令行工具,对我来说很笨拙,我必须编写一个单独的脚本,从某个函数调用它,解析它的输出并继续。然而,这只是一个小问题,替换解决方案有很好的文档记录。所以这个答案是非常正确的,但我还是会在后面添加更多描述。