PHP中的XSD Schema 1.1验证

时间:2017-04-28 08:54:39

标签: php xml xsd xsd-validation xsd-1.1

我已经弄清楚如何使用此代码在PHP中使用XSD架构验证XML文件,但似乎处理是使用XSD版本1.0完成的。

$dom = new DOMDocument();
$dom->loadXML($xmlString);

$isValid = $dom->schemaValidate($xsdFile);

对于我的情况,我需要将XSD文件视为1.1版。主要原因是我想使用:

<xs:all>
   <xs:element type="xs:string" name="br" minOccurs="0" maxOccurs="unbounded"/>
   <xs:element type="linkType" name="link" minOccurs="0" maxOccurs="unbounded"/>
</xs:all>

请注意maxOccurs="unbounded"只能在版本1.1的<xs:all>内使用。在1.0版中,maxOccurs只能是0或1。

PHP失败并出现一般错误:

Warning: DOMDocument::schemaValidate(): Invalid Schema

1 个答案:

答案 0 :(得分:2)

DOMDocument :: schemaValidate使用Libxml。 Libxml不支持XSD 1.1。