xml — проверка схемы XSD 1.1 в переполнении стека

Я выяснил, как проверять 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

0

Решение

DOMDocument :: schemaValidate использовать Libxml. Libxml не поддерживает XSD 1.1.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]