Я выяснил, как проверять XML-файл, используя схему XSD в PHP, используя этот код, но, похоже, обработка выполняется с использованием 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.
Других решений пока нет …