php - PHP 中的 XSD 架构 1.1 验证

标签 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"只能在<xs:all>内使用与版本1.1。在版本 1.0 中,maxOccurs只能是0或1。

PHP 因一般错误而失败:

Warning: DOMDocument::schemaValidate(): Invalid Schema

最佳答案

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

关于php - PHP 中的 XSD 架构 1.1 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43676069/

相关文章:

php - Laravel:使用 Auth 驱动程序登录,但没有密码

php - 在 PHP 中使用 OOP 从查询中检索数据

java - Spinner onItemSelectedListener 不起作用?

.net - 如何在两台负载平衡的机器上强制自动生成的 WSDL 匹配?

php - 使用 PhpSpreadsheet 从字符串创建 CSV 文件

php - CodeIgniter:项目分页

c# - 实例化 XmlDocument 很昂贵吗?

xml - 如何使用 groovy 脚本循环 XML 子节点

java - UnmarshalException - 命名空间问题?

java - 使用资源在 JAR 中加载 XSD 模式失败